<?php
require_once GTFWConfiguration::GetValue( 'application', 'docroot') . 'module/laporan_registrasi_mhs_baru/business/AppLaporanRegistrasMhsBaru.class.php';
require_once GTFWConfiguration::GetValue( 'application', 'docroot') . 'main/function/date.php';

class ViewLaporanRegistrasiMhsBaru extends HtmlResponse{
   function TemplateModule() {
      $this->SetTemplateBasedir(GTFWConfiguration::GetValue( 'application', 'docroot').'module/laporan_registrasi_mhs_baru/template');
      $this->SetTemplateFile('view_laporan_registrasi_mhs_baru.html');
   }
   function ProcessRequest() {
      $lapObj = new AppLaporanRegistrasMhsBaru();
      
      $msg = Messenger::Instance()->Receive(__FILE__);
      $return['Pesan'] = $msg[0][1];
      $return['css'] = $msg[0][2];
      

      
      if($_POST || isset($_GET['cari'])) {
         if((isset($_POST['periode']))or(isset($_POST['jenjang']))or(isset($_POST['jalur']))or(isset($_POST['tanggal']))){
            $periode = $_POST['periode']->Raw();
            $jenjang = $_POST['jenjang']->Raw();
            $jalur = $_POST['jalur']->Raw();
            $tanggal = $_POST['tanggal']->Raw();
         } elseif(isset($_GET['periode'])){
            $periode = Dispatcher::Instance()->Decrypt($_GET['periode']);
            $jenjang = Dispatcher::Instance()->Decrypt($_GET['jenjang']);
            $jalur = Dispatcher::Instance()->Decrypt($_GET['jalur']);
            $tanggal = Dispatcher::Instance()->Decrypt($_GET['tanggal']);
         } else {
            $periode = $dataPeriodeAktif['0']['periode_id'];
            $jenjang = '';
            $jalur = '';
            $tanggal = '';
         }
         //drop parameter seacrh to session
         $_SESSION['periode'] = $periode;
         $_SESSION['jenjang'] = $jenjang;
         $_SESSION['jalur'] = $jalur;
         $_SESSION['tanggal'] = $tanggal;
      }
     
      if($periode=='all'){
         $periode='';
      }  
      if($jenjang=='all'){
         $jenjang='';
      }
      if($jalur=='all'){
         $jalur='';
      }
      
      if($tanggal=='all'){
         $tanggal='';
      }
      
      $dataPeriodeAktif = $lapObj->GetPeriodeAktif();
      $dataPeriode = $lapObj->GetDataPeriode();
      $periode=empty($periode)?$dataPeriode[0]['periode_id']:$periode;
      $dataJenjangAkademik = $lapObj->GetJenjangAkademik();
      $dataJalurMasuk = $lapObj->GetJalurMasuk();
      $dataLaporanRegistrasi = $lapObj->GetRekapMhsBaru($periode,$jalur,$tanggal,$jenjang);
      $dataTanggal = $lapObj->GetTanggalRegistrasiByPeriode($dataPeriodeAktif[0]['periode_id']);


      for($i=0; $i<sizeof($dataTanggal); $i++){
         $dataTanggal[$i]['name'] = IndonesianDate($dataTanggal[$i]['name'],'YYYY-MM-DD');
      }

      $periode=!empty($periode)?$periode:$dataPeriodeAktif[0]['periode_id'];
      Messenger::Instance()->SendToComponent('combobox', 'Combobox', 'view', 'html', 'periode',
         array('periode',$dataPeriode,$periode,'true','onChange="updateComboTanggal();"'), Messenger::CurrentRequest);

      Messenger::Instance()->SendToComponent('combobox', 'Combobox', 'view', 'html', 'jenjang',
         array('jenjang',$dataJenjangAkademik,$jenjang,'true',''), Messenger::CurrentRequest);

      Messenger::Instance()->SendToComponent('combobox', 'Combobox', 'view', 'html', 'jalur',
            array('jalur',$dataJalurMasuk,$jalur,'true',''), Messenger::CurrentRequest);

      Messenger::Instance()->SendToComponent('combobox', 'Combobox', 'view', 'html', 'tanggal',
         array('tanggal',$dataTanggal,$tanggal,'true',''), Messenger::CurrentRequest);
      
      $return['pesan'] = $msg[0][1];
      $return['css'] = $msg[0][2];    
      $return['dataPeriodeAktif'] = $dataPeriodeAktif;
      $return['dataLaporanRegistrasi'] = $dataLaporanRegistrasi;
      $return['tanggal'] = $tanggal;
      
      return $return;
   }

   function ParseTemplate($data = NULL) {
      $tanggalInd =IndonesianDate($data['tanggal'],'YYYY-MM-DD');
      $tanggal =empty($tanggalInd)?'Semua':$tanggalInd;
      $dataLaporanRegistrasi = $data['dataLaporanRegistrasi'];
      $dataPeriodeAktif=$data['dataPeriodeAktif'];

      $this->mrTemplate->AddVar('content', 'URL_SEARCH', 
         Dispatcher::Instance()->GetUrl('laporan_registrasi_mhs_baru', 'laporanRegistrasimhsBaru', 'view', 'html'));
      $this->mrTemplate->AddVar('content', 'URL_EXCEL', 
         Dispatcher::Instance()->GetUrl('laporan_registrasi_mhs_baru', 'ExcelLaporanRegistrasiMhsBaru', 'view', 'xls')
         .'&periode='.$periode.'&jenjang='.$jenjang.'&jalur='.$jalur.'&tanggal='.$tanggal);
      $this->mrTemplate->AddVar('content', 'URL_PRINT', 
         Dispatcher::Instance()->GetUrl('laporan_registrasi_mhs_baru', 'daftarLaporanRegistrasiMhsBaru', 'print', 'html'));

      $this->mrTemplate->AddVar('content', 'TANGGAL', $tanggal);
      $periode=substr($dataPeriodeAktif[0]['periode_id'],0,4);
      $namaPeriode=substr($dataPeriodeAktif[0]['periode_id'],4,1);
      //print($namaPeriode);
      if($namaPeriode==1){
         $namaPeriode="GANJIL";
      }else{
         $namaPeriode="GENAP";
      }
      $periode2=$periode+1;
      $this->mrTemplate->AddVar('content', 'PERIODE',$namaPeriode.' '.$periode.'/'.$periode2);
      
      if($data['pesan']) {
         $this->mrTemplate->SetAttribute('warning_box', 'visibility', 'visible');
         $this->mrTemplate->AddVar('warning_box', 'ISI_PESAN', $data['pesan']);
         $this->mrTemplate->AddVar('warning_box', 'CLASS_PESAN', $data['css']);
      }
      
      if (empty($dataLaporanRegistrasi)) {
         $this->mrTemplate->AddVar('data_laporan_registrasi', 'LAPORAN_EMPTY', 'YES');
      } else {
         $this->mrTemplate->AddVar('data_laporan_registrasi', 'LAPORAN_EMPTY', 'NO');
         $no=0;
         $fakKode='';
         //print_r($dataLaporanRegistrasi);
         for($i=0;$i<sizeOf($dataLaporanRegistrasi);$i++){
            if($fakKode!=$dataLaporanRegistrasi[$i]['fak_kode']){
               $dataLaporan[$no]['fak_nama']=$dataLaporanRegistrasi[$i]['fak_nama'];
               $no++;
             $j=0;
            }
            $dataProdi[$no-1][$j]['prodi_kode']= $dataLaporanRegistrasi[$i]['prodi_kode'];
            $dataProdi[$no-1][$j]['prodi_nama']= $dataLaporanRegistrasi[$i]['prodi_nama'];
            $dataProdi[$no-1][$j]['jml_jk_lk']= $dataLaporanRegistrasi[$i]['jml_lk'];
            $dataProdi[$no-1][$j]['jml_jk_pr']= $dataLaporanRegistrasi[$i]['jml_pr'];
            $dataProdi[$no-1][$j]['jml_jk_na']= $dataLaporanRegistrasi[$i]['jml_na'];
            $dataProdi[$no-1][$j]['jml_mhs']=($dataLaporanRegistrasi[$i]['jml_lk']+$dataLaporanRegistrasi[$i]['jml_pr']+$dataLaporanRegistrasi[$i]['jml_na']);
            $dataLaporan[$no-1]['jml_lk']+=$dataLaporanRegistrasi[$i]['jml_lk'];
            $dataLaporan[$no-1]['jml_pr']+=$dataLaporanRegistrasi[$i]['jml_pr'];
            $dataLaporan[$no-1]['jml_na']+=$dataLaporanRegistrasi[$i]['jml_na'];
            $dataLaporan[$no-1]['jml_tot']+=$dataProdi[$no-1][$j]['jml_mhs'];
            $totalPr+=$dataLaporanRegistrasi[$i]['jml_pr'];
            $totalLk+=$dataLaporanRegistrasi[$i]['jml_lk'];
            $totalNA+=$dataLaporanRegistrasi[$i]['jml_na'];

            $j++;
            $fakKode=$dataLaporanRegistrasi[$i]['fak_kode'];
         }
         #print_r($dataLaporan);
         for($i=0;$i<sizeof($dataLaporan);$i++){
            $this->mrTemplate->clearTemplate('data_prodi_item');
            for($j=0;$j<sizeof($dataProdi[$i]);$j++){
               if ($j % 2 != 0)  $dataProdi[$i][$j]['class_name'] = '';
               else $dataProdi[$i][$j]['class_name'] = 'table-common-even';
               $this->mrTemplate->AddVars('data_prodi_item', $dataProdi[$i][$j], 'P_');
               $this->mrTemplate->parseTemplate('data_prodi_item', 'a');
           }
            $this->mrTemplate->AddVars('data_laporan_registrasi_item', $dataLaporan[$i], '');
            $this->mrTemplate->parseTemplate('data_laporan_registrasi_item', 'a'); 
         }
         
         $this->mrTemplate->AddVar('content', 'TOTAL_PR',$totalPr); 
         $this->mrTemplate->AddVar('content', 'TOTAL_LK',$totalLk); 
         $this->mrTemplate->AddVar('content', 'TOTAL_NA',$totalNA);
         $this->mrTemplate->AddVar('content', 'TOTAL_MHS',$totalPr+$totalLk+$totalNA);
      }
   }
}
?>