<?php
session_start();
include "../../inc/config.php";

require_once '../Writer.php';

    
      $jurusan = trim($_POST['jur_filter']);
      if ($jurusan=='all') {
          $jurusan = "";
          if ($_SESSION['level']!=1) {
            $jurusan = "and trim(kode_jurusan)='".$_SESSION['jurusan']."'";
            if ($_SESSION['jurusan']=='0') {
                $jurusan = '';
            }
          }

          $nama_jurusan = "Semua_Mhs";
      } else {
          $jurusan = "and trim(kode_jurusan)='$jurusan'";

        $nama_jurusan = $db->fetch_custom_single("select nama_jurusan from jurusan where id!='' $jurusan");
        $nama_jurusan = $nama_jurusan->nama_jurusan;
        $nama_jurusan = str_replace(" ", "_", $nama_jurusan);

      }

       if (isset($_POST['sem_filter'])) {
          
        if ($_POST['sem_filter']=='all') {
            $semester = '';
            $nama_semester = "";
        } else {
            $semester = "and mulai_smt='".$_POST['sem_filter']."'";
            $nama_semester = $_POST['sem_filter'];
        }
       
        if ($_POST['status']=='all') {
            $status = '';
        } else {
            $status = "and status_error='".$_POST['status']."'";
        }

        if ($_POST['id_jns_daftar']=='all') {
          $id_jns_daftar = '';
        } else {
          $id_jns_daftar = " and id_jns_daftar='".$_POST['id_jns_daftar']."'";
        }

        }


        $filter_mhs = "where id is not null $semester $jurusan $id_jns_daftar $status";

$writer = new XLSXWriter();
$style =
        array (
                      array(
              'border' => array(
                'style' => 'thin',
                'color' => '000000'
                ),
            'allfilleddata' => true
            ),
            array(
                'fill' => array(
                    'color' => 'ff0000'
                    ),
                'cells' => array(
                    'A1',
                    'B1',
                    'C1',
                    'D1',
                    'E1',
                    'F1',
                    'G1',
                    'H1',
                    'I1',
                    'K1',
                    'L1',
                    'M1',
                    'N1',
                    'S1',
                    'T1',
                     'Y1',
                    'Z1',
                    'AA1',
                    'AJ1',
                     'AU1',
                    'AT1',
                    'AV1',
                    

                    ),
                'border' => array(
                    'style' => 'thin',
                    'color' => '000000'
                    ),
                'verticalAlign' => 'center',
                'horizontalAlign' => 'center',
            ),
                        array(
                'fill' => array(
                    'color' => '91d24a'
                    ),
                'cells' => array(
                    'J1',
                    'O1',
                    'P1',
                    'Q1',
                    'R1',
                    'U1',
                    'V1',
                    'W1',
                    'X1',
                   
                    'AB1',
                    'AC1',
                    'AD1',
                    'AE1',
                    'AF1',
                    'AG1',
                    'AH1',
                    'AI1',
                    'AK1',
                    'AL1',
                    'AM1',
                    'AN1',
                    'AO1',
                    'AP1',
                    'AQ1',
                    'AR1',
                    'AS1',
                    'AZ1',
                    'AY1'
                    ),
                #2f74b5
                'border' => array(
                    'style' => 'thin',
                    'color' => '000000'
                    ),
                'verticalAlign' => 'center',
                'horizontalAlign' => 'center',
                ),

              array(
                'fill' => array(
                    'color' => '2f74b5'
                    ),
                'cells' => array(
                    'AW1',
                    'AX1',
                    ),
                'border' => array(
                    'style' => 'thin',
                    'color' => '000000'
                    ),
                'verticalAlign' => 'center',
                'horizontalAlign' => 'center'
                )
            );

//column width
$col_width = array(
  1 => 16,
  2 => 26,
  3 => 13,
  4 => 16,
  5 => 15,
  6 => 18,
  7 => 10,
  8 => 11,
  9 => 20,
  10 => 13,
  11 => 17,
  12 => 20,
  13 => 16,
  14 => 15,
 15 => 11,
  16 => 9,
  17 => 9,
  18 => 12,
  19 => 12,
  20 => 12,
  21 => 14,
  22 => 12,
  23 => 17,
  24 => 13,
  25 => 13,
  26 => 23,
  27 => 13,
  28 => 11,
  29 => 11,
  30 => 17,
 31=> 13,
  32 => 16,
  33 => 15,
  34 => 17,
  35 => 17,
  36 => 19,
  37 => 17,
  38 => 16,
  
  39 => 17,
  40 => 18,
  41 => 20,
  42 => 17,
  43 => 17,
  44 => 19,
  45 => 22,
  46 => 13,
  47 => 18,
  48 => 21,
  49 => 24,
  50 => 22,
  51 => 70
  );

$writer->setColWidth($col_width);
//$writer->setWrapText(1);

$header = array(
            'NIM' =>'string',
             'NAMA' =>'string',
             'Tempat Lahir' =>'string',
             'Tanggal Lahir' =>'string',
             'Jenis Kelamin' =>'string',
             'NIK' =>'string',
             'Agama' =>'string',
             'NISN' =>'string',
             'Jalur Pendaftaran' =>'string',
             'NPWP' =>'string',
             'Kewarganegaraan' =>'string',
             'Jenis Pendaftaran' =>'string',
             'Tgl Masuk Kuliah' =>'string',
             'Mulai Semester' =>'string',
             'Jalan' =>'string',
             'RT' =>'string',
             'RW' =>'string',
             'Nama Dusun' =>'string',
             'Kelurahan' =>'string',
             'Kecamatan' =>'string',
             'Kode Pos' =>'string',
             'Jenis Tinggal' =>'string',
             'Alat Transportasi' =>'string',
             'Telp Rumah' =>'string',
             'No HP' =>'string',
             'Email' =>'string',
             'Terima KPS' =>'string',
            'No KPS' =>'string',
             'NIK Ayah' =>'string',
             'Nama Ayah' =>'string',
             'Tgl Lahir Ayah' =>'string',
             'Pendidikan Ayah' =>'string',
             'Pekerjaan Ayah' =>'string',
             'Penghasilan Ayah' =>'string',
             'NIK Ibu' =>'string',
             'Nama Ibu' =>'string',
             'Tanggal Lahir Ibu' =>'string',
             'Pendidikan Ibu' =>'string',
             'Pekerjaan Ibu' =>'string',
             'Penghasilan Ibu' =>'string',
             'Nama Wali' =>'string',
             'Tanggal Lahir wali' =>'string',
             'Pendidikan Wali' =>'string',
             'Pekerjaan Wali' =>'string',
             'Penghasilan Wali' =>'string',
             'Kode Prodi' => 'string',
             'Jenis Pembiayaan' => 'string',
             'Biaya Masuk Kuliah' => 'string',
             'Asal Perguruan Tinggi' => 'string',
             'Asal Program Studi' => 'string',
             'Keterangan' =>'string'
);
   

$no=2;
$index = 2;

$data_rec = array();
$array_style_row = array();
        $order_by = "order by nipd ASC";

        $temp_record = $db->fetch_custom("select * from mhs $filter_mhs $order_by");
  //  echo "<pre>";

                    foreach ($temp_record as $key) {

                        if ($key->status_error==0) {
                            $ket = "Belum diproses";
                        } elseif ($key->status_error==1) {
                            $ket = "Sukses";
                        } else {
                            $ket = $key->keterangan;
                        }
                          

                        $data_rec[] = array(
                                    $key->nipd,
                          $key->nm_pd,
                          $key->tmpt_lahir,
                          $key->tgl_lahir,
                          $key->jk,
                          $key->nik,
                          $key->id_agama,
                          $key->nisn,
                          $key->id_jalur_masuk,
                          $key->npwp,
                          $key->kewarganegaraan,
                          $key->id_jns_daftar,
                          $key->tgl_masuk_sp,
                          $key->mulai_smt,
                          $key->jln,
                          $key->rt,
                          $key->rw,
                          $key->nm_dsn,
                          $key->ds_kel,
                          $key->id_wil,
                          $key->kode_pos,
                          $key->id_jns_tinggal,
                          $key->id_alat_transport,
                          $key->no_tel_rmh,
                          $key->no_hp,
                          $key->email,
                          $key->a_terima_kps,
                         $key->no_kps,
                          $key->nik_ayah,
                          $key->nm_ayah,
                          $key->tgl_lahir_ayah,
                          $key->id_jenjang_pendidikan_ayah,
                          $key->id_pekerjaan_ayah,
                          $key->id_penghasilan_ayah,
                          $key->nik_ibu,
                          $key->nm_ibu_kandung,
                          $key->tgl_lahir_ibu,
                          $key->id_jenjang_pendidikan_ibu,
                          $key->id_pekerjaan_ibu,
                          $key->id_penghasilan_ibu,
                          $key->nm_wali,
                          $key->tgl_lahir_wali,
                          $key->id_jenjang_pendidikan_wali,

                          $key->id_pekerjaan_wali,
                          $key->id_penghasilan_wali,
                          $key->kode_jurusan,
                          $key->id_pembiayaan,
                          $key->biaya_masuk_kuliah,
                          $key->kode_pt_asal,
                          $key->kode_prodi_asal,
                          $ket
                        );

                        if (!in_array($key->status_error, array(0,1))) {
                        $array_style_row[] = 
                                                  array(
                                          'cells' => array(
                                              'AY'.$no
                                              ),
                                          'border' => array(
                                              'style' => 'thin',
                                              'color' => '000000'
                                              ),
                                              'font' => array(
                                                  'name' => 'Calibri',
                                                  'size' => '10',
                                                  'color' => 'FF0000',
                                                  'bold' => true,
                                                  'italic' => false,
                                                  'underline' => false),
                                          'verticalAlign' => 'left',
                                          'wrapText' => 1,
                                          'horizontalAlign' => 'left'
                                          );
                        }


                        
                        
                         $index++;
                         $no++;
                    }
$style = array_merge($style,$array_style_row);

//jalur pendaftaran
$data_jalur = $db->fetch_custom("select * from jalur_masuk");
foreach ($data_jalur as $jalur) {
  $jalur_masuk[] = $jalur->id." : ".$jalur->jalur;
}
//jenis pendaftaran
$data_jenisdaftar = $db->fetch_custom("select * from jenis_pendaftaran");
foreach ($data_jenisdaftar as $jenis) {
  $jenis_pendaftaran[] = $jenis->id_jns_daftar." : ".$jenis->nm_jns_daftar;
}
//jenis pendaftaran
$data_tinggal = $db->fetch_custom("select * from jenis_tinggal");
foreach ($data_tinggal as $tinggal) {
  $jenis_tinggal[] = $tinggal->id_jns_tinggal." : ".$tinggal->nm_jns_tinggal;
}
//jenis data_transportasi
$data_transportasi = $db->fetch_custom("select * from data_transportasi");
foreach ($data_transportasi as $trf) {
  $alat_transportasi[] = $trf->id_alat_transport." : ".$trf->nm_alat_transport;
}
//jenjang pendidikan
$data_jenjang_pendidikan = $db->fetch_custom("select * from jenjang_pendidikan");
foreach ($data_jenjang_pendidikan as $jenjang) {
  $jenjang_pendidikan[] = $jenjang->id_jenj_didik." : ".$jenjang->nm_jenj_didik;
}
//pekerjaan
$data_pekerjaan = $db->fetch_custom("select * from pekerjaan");
foreach ($data_pekerjaan as $kerjaan) {
  $pekerjaan[] = $kerjaan->id_pekerjaan." : ".$kerjaan->nm_pekerjaan;
}

//pekerjaan
$data_penghasilan = $db->fetch_custom("select * from penghasilan");
foreach ($data_penghasilan as $hasil) {
  $penghasilan[] = $hasil->id_penghasilan." : ".$hasil->nm_penghasilan;
}

$comments = array(
'A1' => 'NIM / NIPD Mahasiswa

info : wajib disi',
'B1' => 'Nama Mahasiswa

Info : Wajib Diisi',
'C1' => 'Tempat Lahir

Info : Wajib Diisi',
'D1' => 'Tanggal Lahir Mahasiswa

Info : Wajib Diisi',
'E1' => 'L : Laki-laki, 
P : Perempuan,

Info : Wajib Diisi',
'F1' => 'NIK Mahasiswa harus 16 Digit

Info : Wajib Diisi',
'G1' => 'Id Agama
1 : Islam
2 : Kristen
3 : Katholik
4 : Hindu
5 : Budha
6 : Konghuchu
99 : lainya

Info : Wajib Diisi',
'H1' => 'NISN WAJIB 10 DIGIT
Info : WAJIB ISI',
'I1' => 'Isi sesuai id dibawah
'.implode("\n", $jalur_masuk).'

Info : Wajib Diisi
',
'J1' => 'Nomor pokok wajib pajak

Info : Boleh kosong',
'K1' => 'Lihat pada menu master ->  data Negara, untuk lengkapnya

ID : Indonesia

Info : Wajib Diisi',
'L1' => 'Isi sesuai id dibawah
'.implode("\n", $jenis_pendaftaran).'
Info : Wajib Diisi',
'M1' => '
Info : Wajib Diisi',
'N1' => 'Peride Masuk Kuliah/Angkatan
tahun+semester
1 : ganjil, 2 genap, 
20221 berarti angakatan 2022 ganjil
Info : Wajib Diisi',
'O1' => 'Boleh Kosong Kalau Belum Ada',
'P1' => 'Boleh Kosong Kalau Belum Ada',
'Q1' => 'Boleh Kosong Kalau Belum Ada',
'R1' => 'Boleh Kosong Kalau Belum Ada',
'S1' => 'isi dengan - aja kalau belum ada

Info : Wajib Diisi',
'T1' => 'Lihat data kecamatan di aplikasi, masuk ke master data -> data wilayah 
masukan id Kecamatan nya disini 
Info : Wajib Diisi, 
jika tidak ada isi dengan 999999',
'U1' => 'Boleh Kosong Kalau Belum Ada',
'V1' => 'Isi sesuai id dibawah
'.implode("\n", $jenis_tinggal).'

Boleh Kosong Kalau Belum Ada',
'W1' => 'Isi sesuai id dibawah
'.implode("\n", $alat_transportasi).'

Boleh Kosong Kalau Belum Ada',
'X1' => 'Boleh Kosong Kalau Belum Ada',
'Y1' => 'WAJIB ISI',
'Z1' => 'WAJIB ISI',
'AA1' => 'Kartu Perlindungan Sosial

1 : Ya
0 : tidak

Info : Wajib Diisi',
'AB1' => 'Boleh Kosong Kalau tidak Ada',
'AC1' => 'No KTP Ayah

Boleh Kosong Kalau Belum Ada',
'AD1' => 'Boleh Kosong Kalau Belum Ada',
'AE1' => 'Boleh Kosong Kalau Belum Ada',
'AF1' => 'Isi sesuai id dibawah
'.implode("\n", $jenjang_pendidikan).'

Boleh Kosong Kalau Belum Ada',
'AG1' => 'Isi sesuai id dibawah
'.implode("\n", $pekerjaan).'

Boleh Kosong Kalau Belum Ada',
'AH1' => 'Isi sesuai id dibawah
'.implode("\n", $penghasilan).'

Boleh Kosong Kalau Belum Ada',
'AI1' => 'No KTP Ibu

Info : Wajib Diisi',
'AJ1' => 'Nama Ibu

Info : Wajib Diisi',
'AK1' => 'Boleh Kosong Kalau Belum Ada',
'AL1' => 'Isi sesuai id dibawah
'.implode("\n", $jenjang_pendidikan).'

Boleh Kosong Kalau Belum Ada',
'AM1' => 'Isi sesuai id dibawah
'.implode("\n", $pekerjaan).'

Boleh Kosong Kalau Belum Ada',
'AN1' => 'Isi sesuai id dibawah
'.implode("\n", $penghasilan).'

Boleh Kosong Kalau Belum Ada',
'AO1' => 'Boleh Kosong Kalau Belum Ada',
'AP1' => 'format tahun-bulan-tanggal
contoh : 1987-07-02
Boleh Kosong Kalau tidak Ada',
'AQ1' => 'Isi sesuai id dibawah
'.implode("\n", $jenjang_pendidikan).'

Boleh Kosong Kalau tidak Ada',
'AR1' => 'Isi sesuai id dibawah
'.implode("\n", $pekerjaan).'

Boleh Kosong Kalau tidak Ada',
'AS1' => 'Isi sesuai id dibawah
'.implode("\n", $penghasilan).'

Boleh Kosong Kalau tidak Ada',
'AT1' => 'Lihat di menu master data -> jurusan

Info : Wajib Diisi',
'AU1' => 'Ket : Jenis Pembiayaan
id ket 
1  Mandiri
2  Beasiswa Tidak Penuh
3  Beasiswa Penuh

Info :Wajib diisi',
'AV1' => 'Ket : Jumlah Biaya Masuk Mahasiswa, isi tanpa koma atau titik.
contoh : 5000000
Info : Wajib Diisi',
'AW1' => 'Jika Jenis Pendaftaran BUKAN Peserta Didik Baru
Maka Kode Asal Perguruan Tinggi  Wajib diisi',
'AX1' => 'Jika Jenis Pendaftaran BUKAN Peserta Didik Baru
Maka Kode Asal Program Studi  Wajib diisi',
);
$writer->setComment($comments);




$filename = $nama_jurusan.$nama_semester.'.xlsx';

header('Content-disposition: attachment; filename="'.XLSXWriter::sanitize_filename($filename).'"');
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');

$writer->writeSheet($data_rec,'Data Mahasiswa'.$nama_semester, $header, $style);
$writer->writeToStdOut();
exit(0);
?>