<?php
session_start();

include "../../inc/config.php";


$json_response = array();
$jumlah = array();
if ($_POST['total_data']>0) {

		$url_rest = get_service_url('rest');
		$offset = $_POST['offset'];
		$jumlah['offset'] = $offset;
		$token = $_POST['token'];
		$jumlah['token'] = $_POST['token'];

		if ($offset==0) {
			$token = get_token();
		    $jumlah['token'] = $token;
		}
        $sukses_count = 0;
        
        $error_count = 0;
        $error_count_in = 0;

        $error_msg = array();

        

        $update_data = array();
        $update_data_status = array();

        $update_data_er =array();
        $update_data_er_status =array();
        $error_mk = "";

        $data_id_sukses = array();
        $data_id_error= array();

        $all_errors = array();
        $all_error = array();
        $query_not_in = "";
        $id_mk = "";
        $error_mk = "";

        $msg = "";
        $array_aktivitas = array();
        
        $query_jenis = '';
        $query_jurusan = '';
        $all_id = array();

        $sem = "";
        $data_ids = array();
        $data_kls = array();

        $data_akt = array();
		$error_update_data = array();
		$data_id_error = array();
		$update_data = array();
		$data_id_sukses = array();
		$check_akt_exist = array();
		$data_loop = array();
	
		if ($_POST['sem']!='all') {
			$sem = "and aktivitas_mahasiswa.semester='".$_POST['sem']."'";
		}

		if ($_POST['jenis']!='all') {
			$query_jenis = "and trim(id_jenis_akt)='".trim($_POST['jenis'])."'";
		}

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


		$query_not_in = "and unik_id not in(".$_POST['random_number'].")";

		$data = $db->fetch_custom("select aktivitas_mahasiswa.id as id_krs, jenis_akt_mhs.*,aktivitas_mahasiswa.*,id_sms from aktivitas_mahasiswa  inner join jenis_akt_mhs
 on aktivitas_mahasiswa.id_jenis_akt=jenis_akt_mhs.id_jns_akt_mhs
 inner join jurusan on aktivitas_mahasiswa.kode_jurusan=jurusan.kode_jurusan where aktivitas_mahasiswa.id is not null $sem $query_jurusan and status_error!=1 $query_jenis $query_not_in limit 11");

		foreach ($data as $dt_id) {
			$data_loop[] = $dt_id;
			$id_aks = str_replace("'", "", $dt_id->ket);
			$check_akt_exist[] = "('".convert_ascii($dt_id->semester)."','".$dt_id->id_sms."','".$id_aks."')";
		}

			if (!empty($check_akt_exist)) {
				$akt_concat_where = implode(",", $check_akt_exist);
				$data_req_akt = [
					'act' => 'GetListAktivitasMahasiswa',
				    'token' => $token,
				    'filter' => "(id_semester,id_prodi,TRIM(REPLACE(keterangan, '''', ''))) IN ($akt_concat_where)",
				    'order' => "",
				    'limit' => "",
				    'offset' => ""

				];
				$check_akt_exist_json = json_decode($db->run($data_req_akt,$url_rest));
				if (!empty($check_akt_exist_json->data)) {
					foreach ($check_akt_exist_json->data as $akt_data) {
						$id_aks = str_replace("'", "", $akt_data->keterangan);
						$data_akt[$akt_data->id_semester.$akt_data->id_prodi.$id_aks] = $akt_data->id_aktivitas;
					}
				}
			}


		if ($_POST['method']=='in') {
				foreach ($data_loop as $dt) {
				$id_sms = $dt->id_sms;
				$id_aks = str_replace("'", "", $dt->ket);
				if (!in_array(convert_ascii($dt->semester).$dt->id_sms.$id_aks, array_keys($data_akt))) {
					$error_tanggal = "";
					$array_aktivitas_single = array(
			              'id_semester' => $dt->semester,
			              'judul' => $dt->judul,
			              'id_jenis_aktivitas' => $dt->id_jns_akt_mhs,
			              'lokasi' => $dt->lokasi,
			              'sk_tugas' => $dt->nomor_sk,
			              'tanggal_sk_tugas' => validateDate($dt->tanggal_sk)?$dt->tanggal_sk:'',
			              'jenis_anggota' => $dt->jenis_anggota,
			              'keterangan' => $dt->ket,
			              'tanggal_mulai' => validateDate($dt->tanggal_mulai)?$dt->tanggal_mulai:'',
			              'tanggal_selesai' => validateDate($dt->tanggal_selesai)?$dt->tanggal_selesai:'',
			              'id_prodi' => $id_sms
			            );
					if ($dt->a_kegiatan_kampus_merdeka=='1') {
						$array_aktivitas_single['program_mbkm'] = $dt->program_mbkm;
					}
					if (!validateDate($dt->tanggal_mulai) && $dt->tanggal_mulai!="") {
						$error_tanggal = "Format tanggal Mulai Salah, Pastikan Format Sesuai Template";
					} elseif (!validateDate($dt->tanggal_selesai) && $dt->tanggal_selesai!="") {
						$error_tanggal = "Format tanggal Selesai Salah, Pastikan Format Sesuai Template";
					} elseif (!validateDate($dt->tanggal_sk) && $dt->tanggal_sk!="") {
						$error_tanggal = "Format tanggal SK Tugas Salah, Pastikan Format Sesuai Template";
					}
					
					if ($error_tanggal !="") {
						$error_update_data[] = array(
							'keterangan' => $error_tanggal,
							'status_error' => 2
						);
						$data_id_error[] = $dt->id_krs;
					} else {
						$array_aktivitas[] = $array_aktivitas_single;
						$data_ids[] = $dt->id_krs;
					}
					
				} else {
						$error_update_data[] = array(
							'keterangan' => "Error,Aktivitas ini Sudah Ada Di feeder",
							'status_error' => 2
						);
						$data_id_error[] = $dt->id_krs;
				}

				$all_id[] = $dt->id_krs;
			}

		} else {
			foreach ($data_loop as $dt) {
				$id_sms = $dt->id_sms;
				$id_aks = str_replace("'", "", $dt->ket);
				if (in_array(convert_ascii($dt->semester).$dt->id_sms.$id_aks, array_keys($data_akt))) {
					$error_tanggal = "";
					$array_aktivitas_single = array(
			              'id_semester' => $dt->semester,
			              'judul' => $dt->judul,
			              'id_jenis_aktivitas' => $dt->id_jns_akt_mhs,
			              'lokasi' => $dt->lokasi,
			              'sk_tugas' => $dt->nomor_sk,
			              'tanggal_sk_tugas' => validateDate($dt->tanggal_sk)?$dt->tanggal_sk:'',
			              'jenis_anggota' => $dt->jenis_anggota,
			              'keterangan' => $dt->ket,
			              'tanggal_mulai' => validateDate($dt->tanggal_mulai)?$dt->tanggal_mulai:'',
			              'tanggal_selesai' => validateDate($dt->tanggal_selesai)?$dt->tanggal_selesai:'',
			              'id_prodi' => $id_sms
			            );
					if ($dt->a_kegiatan_kampus_merdeka=='1') {
						$array_aktivitas_single['program_mbkm'] = $dt->program_mbkm;
					}
					if (!validateDate($dt->tanggal_mulai) && $dt->tanggal_mulai!="") {
						$error_tanggal = "Format tanggal Mulai Salah, Pastikan Format Sesuai Template";
					} elseif (!validateDate($dt->tanggal_selesai) && $dt->tanggal_selesai!="") {
						$error_tanggal = "Format tanggal Selesai Salah, Pastikan Format Sesuai Template";
					} elseif (!validateDate($dt->tanggal_sk) && $dt->tanggal_sk!="") {
						$error_tanggal = "Format tanggal SK Tugas Salah, Pastikan Format Sesuai Template";
					}
					
					if ($error_tanggal !="") {
						$error_update_data[] = array(
							'keterangan' => $error_tanggal,
							'status_error' => 2
						);
						$data_id_error[] = $dt->id_krs;
					} else {
						$array_aktivitas[] = $array_aktivitas_single;
						$array_key[] = array(
								'id_aktivitas' => $data_akt[convert_ascii($dt->semester).$dt->id_sms.$id_aks]
							);
						$data_ids[] = $dt->id_krs;
					}
					
				} else {
						$error_update_data[] = array(
							'keterangan' => "Error,Tidak bisa update karena Aktivitas ini Belum Ada Di feeder",
							'status_error' => 2
						);
						$data_id_error[] = $dt->id_krs;
				}

				$all_id[] = $dt->id_krs;
			}
		}

		//update error
		if (!empty($error_update_data)) {
			updateMulti('aktivitas_mahasiswa',$error_update_data,'id',$data_id_error);
		}
		$error_update_data = array();
		$data_id_error = array();


		if (!empty($array_aktivitas)) {

		foreach ($array_aktivitas as $key => $akt) {
			// Convert all values (including nested) to string
					array_walk_recursive($akt, function (&$value) {
					    $value = (string)$value;
					});
			if ($_POST['method']=='in') {
				 $data_dic = [
						      'act' => 'InsertAktivitasMahasiswa',
						        'token' => $token,
						        'record' => $akt,
						    ];
			} else {
				$data_dic = [
					      'act' => 'UpdateAktivitasMahasiswa',
					      'key' => $array_key[$key],
					        'token' => $token,
					        'record' => $akt,
					    ];
			}
						 

						   // exit();
							$temp_recs = json_decode($db->run($data_dic,$url_rest));
							
/*							dump($data_dic);
							dump($temp_recs);*/

									$value_data = addslashes($temp_recs->error_desc);
									$data_key = $data_ids[$key];

									if ($value_data!='') {
										$error_update_data[] = array(
											'keterangan' => $value_data,
											'status_error' => 2
										);
										$data_id_error[] = $data_key;
									} else {
										$update_data[] = array(
											'keterangan' => '',
											'status_error' => 1
										);
										$data_id_sukses[] = $data_key;
									}	
				}
		}

		//update error
		if (!empty($error_update_data)) {
			updateMulti('aktivitas_mahasiswa',$error_update_data,'id',$data_id_error);
		}
		$error_update_data = array();
		$data_id_error = array();
		//update sukses
		if (!empty($update_data)) {
			updateMulti('aktivitas_mahasiswa',$update_data,'id',$data_id_sukses);
		}
		$update_data = array();
		$data_id_sukses = array();

		$implode_id = implode(",", $all_id);
		

		$db->fetch_custom("update aktivitas_mahasiswa set unik_id=".$_POST['random_number']." where id in (".$implode_id.")");


	if (isset($_POST['id_data'])) {

		$jml_error_sukses = $db->fetch_custom_single("SELECT COUNT(IF(status_error='1',1,NULL)) AS jml_sukses,COUNT(IF(status_error='2',1,NULL)) AS jml_error FROM aktivitas_mahasiswa where unik_id=".$_POST['random_number']);

		$jumlah_sukses = $jml_error_sukses->jml_sukses;
		$jumlah_error = $jml_error_sukses->jml_error;

		$db->fetch_custom("update aktivitas_mahasiswa set unik_id=0 where  unik_id=".$_POST['random_number']);

	
		$msg =  "<div class=\"alert alert-warning \" role=\"alert\">
		<font color=\"#3c763d\">".$jumlah_sukses." data Aktivitas Mahasiswa berhasil Di Import Ke Feeder DIKTI</font><br />
		<font color=\"#ce4844\" >".$jumlah_error." data tidak bisa Di Import </font>";
		
		if (!$jumlah_error==0) {
			$msg .= "<a data-toggle=\"collapse\" href=\"#collapseExample\" aria-expanded=\"false\" aria-controls=\"collapseExample\">Detail error</a>";
			

			$all_errors = array('Silakan lihat detail error di list data');
			
		}
		//echo "<br />Total: ".$i." baris data";
		$msg .= "<div class=\"collapse\" id=\"collapseExample\">";
				$i=1;
				foreach ($all_errors as $pesan) {
						$msg .= "<div class=\"bs-callout bs-callout-danger\">".$i.". ".$pesan."</div><br />";
					$i++;
					}
		$msg .= "</div>
		</div>";


		$jumlah['last_notif'] = $msg;
	}


} else {
	$msg =  "Tidak ada data yang bisa diproses<p>";
		$jumlah['last_notif'] = $msg;
}

array_push($json_response, $jumlah);
echo json_encode($json_response);
//echo convert(memory_get_usage(true)); // 123 kb