<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Peserta extends CI_Controller {

	//load model
	public function __construct()
	{
    parent::__construct();
    $this->load->model('peserta_model');
    $this->load->model('biodata_model');
    $this->simple_login->check_login();
		//proteksi admin dan peserta
		if($this->session->userdata('level') !='Administrator') 
		{
			if($this->session->userdata('level') !='Operator') 
			{
				if($this->session->userdata('level') !='CS') 
				{
					//kalau bukan adamin, lempar ke login
					$this->session->set_flashdata('warning', 'Hak akses anda tidak diijinkan mengakses menu pendaftar');
					redirect(base_url('login'),'refresh');	
				}	
			}  
		}
	}

	public function index()
	{
		$peserta = $this->peserta_model->listing();
		$total = $this->peserta_model->total();
   
		$data = array(	 'title'		=> 'Data Keseluruhan Pendaftar [ '.$total->total.' ]',
						 'peserta'		=> $peserta,
						 'content' 		=> 'peserta/index'						 
						);
		$this->load->view('layout/wrapper', $data, FALSE);	
	}

	//detail pasien
	public function detail($no_pendaftaran)
	{
		$peserta = $this->peserta_model->detail($no_pendaftaran);

		$data = array(	 'title'	=> 'Biodata Pendaftar : '.$peserta->nama_lengkap.'',
						 'peserta'	=> $peserta,
						 'content' 	=> 'peserta/detail'
						);
		$this->load->view('layout/wrapper', $data, FALSE);	
	}

  //Edit peserta
  public function edit($no_pendaftaran)
  {
    //panggil data user yang akan diedit
    $peserta = $this->peserta_model->detail($no_pendaftaran);
    

    //validasi input
    $valid = $this->form_validation;
    //check nama
    $valid->set_rules('nama_lengkap','Nama Peserta','required',
      array( 'required'   => '%s harus diisi'));
    
    //jika sudah dicek dan error
    if($valid->run()===FALSE) {
    //end validasi

      $data= array( 'title'   => 'Edit Data Peserta, No. Pendaftaran : '.$peserta->no_pendaftaran,
                    'peserta'  => $peserta,
                    'content'   => 'peserta/edit'
            );
      $this->load->view('layout/wrapper', $data, FALSE);  
    //jika validasi oke, masuk database
    }else{
      $inp  = $this->input;
      $data = array(  'no_pendaftaran'        => $no_pendaftaran,                             
                      'nama_lengkap'          => $inp->post('nama_lengkap'),
                      'nama_panggilan'        => $inp->post('nama_panggilan'),
                      'jkelamin'              => $inp->post('jkelamin'),
                      'nik'                   => $inp->post('nik'),
                      'nisn'                  => $inp->post('nisn'),
                      'tempat_lahir'          => $inp->post('tempat_lahir'),
                      'tgl_lahir'             => date('Y-m-d',strtotime($inp->post('tgl_lahir'))),
                      'agama'                 => $inp->post('agama'),
                      'kewarganegaraan'       => $inp->post('kewarganegaraan'),
                      'anak_ke'               => $inp->post('anak_ke'),
                      'jml_saudara'           => $inp->post('jml_saudara'),
                      'kandung'               => $inp->post('kandung'),
                      'tiri'                  => $inp->post('tiri'),
                      'angkat'                => $inp->post('angkat'),
                      'status_keluarga'       => $inp->post('status_keluarga'),
                      'bhs_dirumah'           => $inp->post('bhs_dirumah'),
                      'kemeja'                => $inp->post('kemeja'),
                      'celana'                => $inp->post('celana'),
                      'alamat_siswa'          => $inp->post('alamat_siswa'),
                      'no_rmh'                => $inp->post('no_rmh'),
                      'rt'                    => $inp->post('rt'),
                      'rw'                    => $inp->post('rw'),
                      'kelurahan'             => $inp->post('kelurahan'),
                      'kecamatan'             => $inp->post('kecamatan'),
                      'kota'                  => $inp->post('kota'),
                      'provinsi'              => $inp->post('provinsi'),
                      'kode_pos'              => $inp->post('kode_pos'),
                      'no_tlp_rmh'            => $inp->post('no_tlp_rmh'),
                      'no_hp'                 => $inp->post('no_hp'),
                      'email'                 => $inp->post('email'),
                      'tinggal_dengan'        => $inp->post('tinggal_dengan'),
                      'sekolah_dengan'        => $inp->post('sekolah_dengan'),
                      'jarak_rmh_kesekolah'   => $inp->post('jarak_rmh_kesekolah'),
                      'berat_badan'           => $inp->post('berat_badan'),
                      'tinggi_badan'          => $inp->post('tinggi_badan'),
                      'gol_darah'             => $inp->post('gol_darah'),
                      'penyakit'              => $inp->post('penyakit'),
                      'kelainan_jasmani'      => $inp->post('kelainan_jasmani'),
                      'usia_tahun'            => $inp->post('usia_tahun'),
                      'usia_bulan'            => $inp->post('usia_bulan'),
                      'sekolah_asal'          => $inp->post('sekolah_asal'),
                      'npsn2'                  => $inp->post('npsn2'),
                      'nisn2'                 => $inp->post('nisn2'),
                      'sekolah_jln'           => $inp->post('sekolah_jln'),
                      'sekolah_kel'           => $inp->post('sekolah_kel'),
                      'sekolah_kec'           => $inp->post('sekolah_kec'),
                      'sekolah_kota'          => $inp->post('sekolah_kota'),
                      'sekolah_prov'          => $inp->post('sekolah_prov'),
                      'Ijazah_tgl'            => date('Y-m-d',strtotime($inp->post('Ijazah_tgl'))),
                      'Ijazah_no'             => $inp->post('Ijazah_no'),
                      'nama_ayah'             => $inp->post('nama_ayah'),
                      'tmpt_lahir_ayah'       => $inp->post('tmpt_lahir_ayah'),
                      'tgl_lahir_ayah'        => date('Y-m-d',strtotime($inp->post('tgl_lahir_ayah'))),
                      'agama_ayah'            => $inp->post('agama_ayah'),
                      'kewarganegaraan_ayah'  => $inp->post('kewarganegaraan_ayah'),
                      'pendidikan_ayah'       => $inp->post('pendidikan_ayah'),
                      'pekerjaan_ayah'        => $inp->post('pekerjaan_ayah'),
                      'penghasilan_ayah'      => $inp->post('penghasilan_ayah'),
                      'alamat_ayah'           => $inp->post('alamat_ayah'),
                      'tlp_ayah'              => $inp->post('tlp_ayah'),
                      'nama_ibu'              => $inp->post('nama_ibu'),
                      'tmpt_lahir_ibu'        => $inp->post('tmpt_lahir_ibu'),
                      'tgl_lahir_ibu'         => date('Y-m-d',strtotime($inp->post('tgl_lahir_ibu'))),
                      'agama_ibu'             => $inp->post('agama_ibu'),
                      'kewarganegaraan_ibu'   => $inp->post('kewarganegaraan_ibu'),
                      'pendidikan_ibu'        => $inp->post('pendidikan_ibu'),
                      'pekerjaan_ibu'         => $inp->post('pekerjaan_ibu'),
                      'penghasilan_ibu'       => $inp->post('penghasilan_ibu'),
                      'alamat_ibu'            => $inp->post('alamat_ibu'),
                      'tlp_ibu'               => $inp->post('tlp_ibu'),
                      'nama_wali'             => $inp->post('nama_wali'),
                      'tmpt_lahir_wali'       => $inp->post('tmpt_lahir_wali'),
                      'tgl_lahir_wali'        => date('Y-m-d',strtotime($inp->post('tgl_lahir_wali'))),
                      'agama_wali'            => $inp->post('agama_wali'),
                      'kewarganegaraan_wali'  => $inp->post('kewarganegaraan_wali'),
                      'pendidikan_wali'       => $inp->post('pendidikan_wali'),
                      'pekerjaan_wali'        => $inp->post('pekerjaan_wali'),
                      'penghasilan_wali'      => $inp->post('penghasilan_wali'),
                      'alamat_wali'           => $inp->post('alamat_wali'),
                      'tlp_wali'              => $inp->post('tlp_wali'),
                      'iq'                    => $inp->post('iq'),
                      'tgl_tes_iq'            => date('Y-m-d',strtotime($inp->post('tgl_tes_iq'))),
                      'disiplin'              => $inp->post('disiplin'),
                      'prakarsa'              => $inp->post('prakarsa'),
                      'tanggung_jwb'          => $inp->post('tanggung_jwb'),
                      'penyesuaian_diri'      => $inp->post('penyesuaian_diri'),
                      'kemantapan_emosi'      => $inp->post('kemantapan_emosi'),
                      'kerjasama'             => $inp->post('kerjasama'),
                      'iptek'                 => $inp->post('iptek'),
                      'iptek_tingkat'         => $inp->post('iptek_tingkat'),
                      'olahraga'              => $inp->post('olahraga'),
                      'olahraga_tingkat'      => $inp->post('olahraga_tingkat'),
                      'kesenian'              => $inp->post('kesenian'),
                      'kesenian_tingkat'      => $inp->post('kesenian_tingkat'),
                      'keagamaan'             => $inp->post('keagamaan'),
                      'keagamaan_tingkat'     => $inp->post('keagamaan_tingkat'),
                      'keterampilan'          => $inp->post('keterampilan'),
                      'keterampilan_tingkat'  => $inp->post('keterampilan_tingkat'),
                      'lainnya'               => $inp->post('lainnya'),
                      'lainnya_tingkat'       => $inp->post('lainnya_tingkat'),
                      'beasiswa1_thn'         => $inp->post('beasiswa1_thn'),
                      'beasiswa1_dari'        => $inp->post('beasiswa1_dari'),
                      'beasiswa2_thn'         => $inp->post('beasiswa2_thn'),
                      'beasiswa2_dari'        => $inp->post('beasiswa2_dari')

                      /*''             => $inp->post(''),*/
            );
      //proses oleh model
      $this->peserta_model->edit($data);
      //notifikasi dan redirect
      $this->session->set_flashdata('sukses', 'Data Peserta Nomor Pendaftar : <b>'.$peserta->no_pendaftaran.'</b> Telah Diupdate !');
      redirect(base_url('peserta'),'refresh');
    }
    //end masuk database
  }

  //Edit peserta
  public function editjur($no_pendaftaran)
  {
    //panggil data user yang akan diedit
    $peserta = $this->peserta_model->detail($no_pendaftaran);
    

    //validasi input
    $valid = $this->form_validation;
    //check nama
    $valid->set_rules('kd_kompetensi','Program keahlian peserta','required',
      array( 'required'   => '%s harus diisi'));
    
    //jika sudah dicek dan error
    if($valid->run()===FALSE) {
    //end validasi

      $data= array( 'title'   => 'Edit Data Peserta, No. Pendaftaran : '.$peserta->no_pendaftaran,
                    'peserta'  => $peserta,
                    'content'   => 'peserta/editjur'
            );
      $this->load->view('layout/wrapper', $data, FALSE);  
    //jika validasi oke, masuk database
    }else{
      $inp  = $this->input;
      $query = $this->db->get('data_siswa'); 
      $jurusan = $query->row(); // Mengambil baris pertama sebagai objek
      // Ambil data yang dikirimkan dari form
      $kd_kompetensi = $this->input->post('kd_kompetensi');
      $jurusan ="";
      if ($kd_kompetensi == "TJKT") {
        $jurusan= "Teknik Jaringan Komputer & Telekomunikasi";
      } elseif ($kd_kompetensi == "MPLB") {
        $jurusan= "Manajemen Perkantoran & Layanan Bisnis";
      } elseif ($kd_kompetensi == "ANIMASI") {
        $jurusan= "Animasi";
      } else {
        $jurusan = "Kuliner";
      }
      $data = array(  'no_pendaftaran'    => $no_pendaftaran,                             
                      'kd_kompetensi'     => $inp->post('kd_kompetensi'),
                      'kompetensi'        => $jurusan
                     
            );
      //proses oleh model
      $this->peserta_model->editjur($data);
      //notifikasi dan redirect
      $this->session->set_flashdata('sukses', 'Data Peserta Nomor Pendaftar : <b>'.$peserta->no_pendaftaran.'</b> Telah Diupdate !');
      redirect(base_url('peserta'),'refresh');
    }
    //end masuk database
  }

	//EXPORT GEL ALL KE EXCEL
	public function export(){
    // Load plugin PHPExcel nya
    include APPPATH.'third_party/PHPExcel/PHPExcel.php';
    
    // Panggil class PHPExcel nya
    $excel = new PHPExcel();
    // Settingan awal fil excel
    $excel->getProperties()->setCreator('By : 415 DIL')
                 ->setLastModifiedBy('By : 415 DIL')
                 ->setTitle("Data Berkas")
                 ->setSubject("Berkas")
                 ->setDescription("Laporan Data Berkas")
                 ->setKeywords("Data Berkas");
    // Buat sebuah variabel untuk menampung pengaturan style dari header tabel
    $style_col = array(
      'font' => array('bold' => true), // Set font nya jadi bold
      'alignment' => array(
        'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, // Set text jadi ditengah secara horizontal (center)
        'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER // Set text jadi di tengah secara vertical (middle)
      ),
      'borders' => array(
        'top' => array('style'  => PHPExcel_Style_Border::BORDER_THIN), // Set border top dengan garis tipis
        'right' => array('style'  => PHPExcel_Style_Border::BORDER_THIN),  // Set border right dengan garis tipis
        'bottom' => array('style'  => PHPExcel_Style_Border::BORDER_THIN), // Set border bottom dengan garis tipis
        'left' => array('style'  => PHPExcel_Style_Border::BORDER_THIN) // Set border left dengan garis tipis
      )
    );
    // Buat sebuah variabel untuk menampung pengaturan style dari isi tabel
    $style_row = array(
      'alignment' => array(
        'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER // Set text jadi di tengah secara vertical (middle)
      ),
      'borders' => array(
        'top' => array('style'  => PHPExcel_Style_Border::BORDER_THIN), // Set border top dengan garis tipis
        'right' => array('style'  => PHPExcel_Style_Border::BORDER_THIN),  // Set border right dengan garis tipis
        'bottom' => array('style'  => PHPExcel_Style_Border::BORDER_THIN), // Set border bottom dengan garis tipis
        'left' => array('style'  => PHPExcel_Style_Border::BORDER_THIN) // Set border left dengan garis tipis
      )
    );
    $excel->setActiveSheetIndex(0)->setCellValue('A1', "DATA KESELURUHAN PENDAFTAR PPDB SMK AL-MUHTADIN DEPOK"); // Set kolom A1 dengan tulisan "DATA SISWA"
    $excel->getActiveSheet()->mergeCells('A1:K1'); // Set Merge Cell pada kolom A1 sampai E1
    $excel->getActiveSheet()->getStyle('A1')->getFont()->setBold(TRUE); // Set bold kolom A1
    $excel->getActiveSheet()->getStyle('A1')->getFont()->setSize(15); // Set font size 15 untuk kolom A1
    $excel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // Set text center untuk kolom A1
    // Buat header tabel nya pada baris ke 3
    $excel->setActiveSheetIndex(0)->setCellValue('A3', "NO."); // Set kolom A3 dengan tulisan "NO"
    $excel->setActiveSheetIndex(0)->setCellValue('B3', "NO. PEND"); // Set kolom B3 dengan tulisan "NO.PEND"
    $excel->setActiveSheetIndex(0)->setCellValue('C3', "NAMA LENGKAP"); // Set kolom C3 dengan tulisan "NAMA"
    $excel->setActiveSheetIndex(0)->setCellValue('D3', "JENIS KELAMIN"); // Set kolom D3 dengan tulisan "JENIS KELAMIN"
    $excel->setActiveSheetIndex(0)->setCellValue('E3', "TEMPAT LAHIR"); // Set kolom E3 dengan tulisan "TEMPAT LAHIR"
    $excel->setActiveSheetIndex(0)->setCellValue('F3', "TGL. LAHIR");
    $excel->setActiveSheetIndex(0)->setCellValue('G3', "SEKOLAH ASAL");
    $excel->setActiveSheetIndex(0)->setCellValue('H3', "KOMPETENSI");
    $excel->setActiveSheetIndex(0)->setCellValue('I3', "GELOMBANG");
    $excel->setActiveSheetIndex(0)->setCellValue('J3', "NO. HANDPHONE");
    $excel->setActiveSheetIndex(0)->setCellValue('K3', "TGL. DAFTAR");   
      
    // Apply style header yang telah kita buat tadi ke masing-masing kolom header
    $excel->getActiveSheet()->getStyle('A3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('B3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('C3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('D3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('E3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('F3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('G3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('H3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('I3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('J3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('K3')->applyFromArray($style_col);
       
    // Panggil function view yang ada di formulir_model untuk menampilkan semua data formulirnya
    $peserta  = $this->peserta_model->ViewUrutAll();
    $no = 1; // Untuk penomoran tabel, di awal set dengan 1
    $numrow = 4; // Set baris pertama untuk isi tabel adalah baris ke 4
    foreach($peserta  as $data){ // Lakukan looping pada variabel formulir
      $excel->setActiveSheetIndex(0)->setCellValue('A'.$numrow, $no);
      $excel->setActiveSheetIndex(0)->setCellValue('B'.$numrow, $data->no_pendaftaran);
      $excel->setActiveSheetIndex(0)->setCellValue('C'.$numrow, $data->nama_lengkap);
      $excel->setActiveSheetIndex(0)->setCellValue('D'.$numrow, $data->jkelamin);
      $excel->setActiveSheetIndex(0)->setCellValue('E'.$numrow, $data->tempat_lahir);
      $excel->setActiveSheetIndex(0)->setCellValue('F'.$numrow, $data->tgl_lahir);
      $excel->setActiveSheetIndex(0)->setCellValue('G'.$numrow, $data->sekolah_asal);
      $excel->setActiveSheetIndex(0)->setCellValue('H'.$numrow, $data->kd_kompetensi);
      $excel->setActiveSheetIndex(0)->setCellValue('I'.$numrow, $data->gelombang);
      $excel->setActiveSheetIndex(0)->setCellValue('J'.$numrow, $data->no_hp);
      $excel->setActiveSheetIndex(0)->setCellValue('K'.$numrow, $data->tgl_trans);
          
      
      // Apply style row yang telah kita buat tadi ke masing-masing baris (isi tabel)
      $excel->getActiveSheet()->getStyle('A'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('B'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('C'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('D'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('E'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('F'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('G'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('H'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('I'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('J'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('K'.$numrow)->applyFromArray($style_row);
           
      
      $no++; // Tambah 1 setiap kali looping
      $numrow++; // Tambah 1 setiap kali looping
    }
    // Set width kolom
    $excel->getActiveSheet()->getColumnDimension('A')->setWidth(5); // Set width kolom A
    $excel->getActiveSheet()->getColumnDimension('B')->setWidth(12); // Set width kolom B
    $excel->getActiveSheet()->getColumnDimension('C')->setWidth(35); // Set width kolom C
    $excel->getActiveSheet()->getColumnDimension('D')->setWidth(15); // Set width kolom D
    $excel->getActiveSheet()->getColumnDimension('E')->setWidth(20); // Set width kolom E
    $excel->getActiveSheet()->getColumnDimension('F')->setWidth(14);
    $excel->getActiveSheet()->getColumnDimension('G')->setWidth(35);
    $excel->getActiveSheet()->getColumnDimension('H')->setWidth(14);
    $excel->getActiveSheet()->getColumnDimension('I')->setWidth(14);
    $excel->getActiveSheet()->getColumnDimension('J')->setWidth(18);
    $excel->getActiveSheet()->getColumnDimension('K')->setWidth(14);
      
    // Set height semua kolom menjadi auto (mengikuti height isi dari kolommnya, jadi otomatis)
    $excel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(-1);
    // Set orientasi kertas jadi LANDSCAPE
    $excel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
    // Set judul file excel nya
    $excel->getActiveSheet(0)->setTitle("Data Keseluruhan Pendaftar");
    $excel->setActiveSheetIndex(0);
    // Proses file excel
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment; filename="Data Pendaftar Keseluruhan PPDB.xlsx"'); // Set nama file excel nya
    header('Cache-Control: max-age=0');
    $write = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
    $write->save('php://output');
  }

  public function cetakpeserta($no_pendaftaran)
	{
		$data['data'] = $this->db->get_where('v_rpt_trans_formulir_web',['no_pendaftaran'=>$no_pendaftaran])->row();
    $this->load->view('peserta/cetak_peserta',$data);
	}

}

/* End of file Peserta.php */
/* Location: ./application/controllers/Peserta.php */