<?php
session_start();
$time_start = microtime(true); 
include "../../inc/config.php";
session_check();
require('../../lib/simplexlsx.class.php');
switch ($_GET["act"]) {
   case 'delete_error':
    $db->fetch_custom("delete from krs where status_error=2 and kode_jurusan='".$_POST['id']."'");
    break;
    case 'delete_all':
   
    $status = $_POST['status'];
    if ($status=='all') {
        $status = '';
    } elseif ($status=='0') {
        $status = "and status_error ='0'";
    } elseif ($status=='1') {
        $status = "and status_error ='1'";
    } elseif ($status=='2') {
        $status = "and status_error ='2'";
    }

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

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

     if ($status=="" && $jurusan=="" && $semester=="") {
       if ($_SESSION['level']==1) {
         $db->fetch_custom("TRUNCATE `krs`");
       } else {
          $db->fetch_custom("delete from krs where kode_jurusan='".$_SESSION['jurusan']."'");
       }

    } else {

      $ids = $db->fetch_custom("select id from krs where id!='' $semester $jurusan $status");
      foreach ($ids as $id) {
        $id_delete[] = $id->id;
      }
        $data_id = implode(",", $id_delete);
       $data_mhs_pt = $db->fetch_custom("delete from krs where id!='' $semester $jurusan $status and id in ($data_id)");
    }


    break;

  case 'import':
     if (!is_dir("../../../upload/krs")) {
              mkdir("../../../upload/krs");
            }


   if (!preg_match("/.(xls|xlsx)$/i", $_FILES["semester"]["name"]) ) {

              echo "pastikan file yang anda pilih xls|xlsx";
              exit();

            } else {
              move_uploaded_file($_FILES["semester"]["tmp_name"], "../../../upload/krs/".$_FILES['semester']['name']);
              $semester = array("semester"=>$_FILES["semester"]["name"]);

            }




$error_count = 0;
$error = array();
$sukses = 0;
$values = "";
$array_insert = array();
  
  $Reader = new SimpleXLSX("../../../upload/krs/".$_FILES['semester']['name']);
  foreach( $Reader->rows() as $key => $val ) {
      if ($key>0) {
           if ($val[0]!="") {
               $check = $db->check_exist('krs',
                array(
                  'nim'=> $db->trimmer($val[0]),
                  'kode_mk' => $db->trimmer($val[3]),
                  'semester'=> $db->trimmer($val[2]),
                  'nama_kelas'=> $db->trimmer($val[5]),
                  'kode_jurusan'=> $db->trimmer($val[6]),
                  'kode_jurusan_kelas' => $db->trimmer($val[7])
                ));
                    if ($check==true) {
                      $error_count++;
                      $error[] = $val[0]." ".$val[3]." Sudah Ada";
                    } else {
                      $sukses++;
                        $array_insert[] = array(
                          'nim' => $db->trimmer($val[0]),
                          'nama' => $db->trimmer($val[1]),
                          'semester' => $db->trimmer($val[2]),
                          'kode_mk' => $db->trimmer($val[3]),
                          'nama_mk' => $db->trimmer($val[4]),
                          'nama_kelas' => $db->trimmer($val[5]),
                          'kode_jurusan' => $db->trimmer($val[6]),
                          'kode_jurusan_kelas' => $db->trimmer($val[7])
                        );
                      } 
            }
      }
  }

if (!empty($array_insert)) {
  $db->insertMulti('krs',$array_insert);
  echo $db->getErrorMessage();
}

    unlink("../../../upload/krs/".$_FILES['semester']['name']);
    $msg = '';
$time_end = microtime(true);
$execution_time = ($time_end - $time_start);
if (($sukses>0) || ($error_count>0)) {
  $msg =  "<div class=\"alert alert-warning alert-dismissible\" role=\"alert\" >
  <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">×</button>
      <font color=\"#3c763d\">".$sukses." data Krs baru berhasil di import</font><br />
      <font color=\"#ce4844\" >".$error_count." data tidak bisa ditambahkan </font>";
      if (!$error_count==0) {
        $msg .= "<a data-toggle=\"collapse\" href=\"#collapseExample\" aria-expanded=\"false\" aria-controls=\"collapseExample\">Detail error</a>";
      }
      //echo "<br />Total: ".$i." baris data";
      $msg .= "<div class=\"collapse\" id=\"collapseExample\">";
          $i=1;
          foreach ($error as $pesan) {
              $msg .= "<div class=\"bs-callout bs-callout-danger\">".$i.". ".$pesan."</div><br />";
            $i++;
            }
      $msg .= "</div>
    </div>";
            $msg .= "<p>Total Waktu Import : ". waktu_import($execution_time);
}
  echo $msg;
    break;
  case "in":

  $data = array(
    "nim"=>$_POST["nim"],
    "nama"=>$_POST["nama"],
    "kode_mk"=>$_POST["kode_mk"],
    "nama_mk"=>$_POST["nama_mk"],
    "nama_kelas"=>$_POST["nama_kelas"],
    "semester"=>$_POST["semester"],
    "kode_jurusan"=> $_POST["kode_jurusan"],
    'kode_jurusan_kelas' => $_POST["kode_jurusan_kelas"]
  );




    $in = $db->insert("krs",$data);

    if ($in=true) {
      echo "good";
    } else {
      return false;
    }
    break;
   case 'del_massal':
    $data_ids = $_REQUEST['data_ids'];
       if(trim($data_ids)!="") {
        $delete =  $db->fetch_custom("delete from krs where id in ($data_ids)");
    }
    break;
  case "delete":



    $db->delete("krs","id",$_GET["id"]);
    break;
  case "up":
  $data = array(
    "nim"=>$_POST["nim"],
    "nama"=>$_POST["nama"],
    "kode_mk"=>$_POST["kode_mk"],
    "nama_mk"=>$_POST["nama_mk"],
    "nama_kelas"=>$_POST["nama_kelas"],
    "semester"=>$_POST["semester"],
    "kode_jurusan"=> $_POST["kode_jurusan"],
    'kode_jurusan_kelas' => $_POST["kode_jurusan_kelas"]
  );

    $up = $db->update("krs",$data,"id",$_POST["id"]);
    if ($up=true) {
      echo "good";
    } else {
      return false;
    }
    break;
  default:
    # code...
    break;
}

?>
