<?php
// index served started as 1 for array
//fetching table of cols from marksheeet_data

ini_set('display_errors', 1);

// Include necessary files
require_once '../../base_path_include.php';
require_once $base_path_to_learning_resources  . "includes/connect.php";
require_once $base_path_to_learning_resources . 'lib/function.php';
require_once $base_path_to_learning_resources . 'lib/validate_api_signature.php';
require_once $base_path_to_learning_resources . 'lib/validate_function.php';
require_once $base_path_to_learning . 'user_management/authenticate.php';
require_once $base_path_to_learning . 'admin_api/academic_session/functions/validate_faculty.php';
require_once $base_path_to_learning . 'admin_api/academic_session/functions/functions.php';
require_once $base_path_to_learning . 'functions/common_functions.php';
require_once $base_path_to_learning_resources . 'includes/specific_db_config.php';
require_once $base_path_to_learning . "vendor/autoload.php";
require_once $base_path_to_learning_resources . 'lib/bucket_functions/bucket_functions.php';
require_once $base_path_to_learning_resources . 'includes/aws_bucket_config.php';
// require_once $base_path_to_learning . 'admin_api/modules/marksheet_template/template5/students_info.php';

// require_once $base_path_to_learning .'admin_api/modules/marksheet_template/template5/template5_marks_upload.php';

// Decode JSON input data
// $postdata = json_decode(file_get_contents("php://input"), true);
$postdata = $_GET;








// Validate required fields
if (
	!isset($postdata['institution_id']) || !checkIfIssetAndNotEmpty($postdata['institution_id']) ||
	!isset($postdata['student_id']) || !checkIfIssetAndNotEmpty($postdata['student_id']) ||
	!isset($postdata['marksheet_id']) || !checkIfIssetAndNotEmpty($postdata['marksheet_id']) or
	!isset($postdata['api_signature']) or !checkIfIssetAndNotEmpty($postdata['api_signature']) or
	!isset($postdata['jwt_token']) or  !checkIfIssetAndNotEmpty($postdata['jwt_token'])
) {
	errorreturn("All * fields are required.");
}
validateApiSignature($postdata['api_signature']); // Authenticate JWT token
$jwttoken = $postdata['jwt_token'];
$jwt_validate = authenticate_jwt($jwttoken);

// Extract user details from JWT token
$userid = $jwt_validate->data->id;
$workspace_id = $jwt_validate->data->workspace_id;
$username = $jwt_validate->data->username;
$role = $jwt_validate->data->role;

// Validate user access and get specific database name
$specific_db_name = validateUserAccess($conn_rjllearning, $userid, $role, $workspace_id, ["superadmin", "admin", "principal", "teacher"], null);
if (!$specific_db_name) {
	errorreturn('Access denied.');
} else {
	$conn_rjllearning_specific = dynamicDbConnection($specific_db_name);
}
$api_signature = $postdata['api_signature'];
$institution_id = $postdata['institution_id'];
$student_id = $postdata['student_id'];
$marksheet_id = $postdata['marksheet_id'];


$ExecuteSqlTemplate = $conn_rjllearning_specific->prepare("SELECT * FROM students WHERE institution_id = ? and id=?");
$ExecuteSqlTemplate->execute([$institution_id, $student_id]);
$Resultstudents = $ExecuteSqlTemplate->fetch(PDO::FETCH_ASSOC);

if (!$Resultstudents) {
	errorreturn("student does not exist.");
}

$branch_id = $Resultstudents['branch_id'];

$class_id = $Resultstudents['class_id'];

$section_id = $Resultstudents['section_id'];
// Prepare the SQL statement

$class_info = getClass($conn_rjllearning_specific, $institution_id, $class_id);
$section_info = getSection($conn_rjllearning_specific, $institution_id, $section_id);


$SqlTemplate = "SELECT * FROM academic_session WHERE institution_id = ? AND active_academic_session = ?";
$StmtTemplate = $conn_rjllearning_specific->prepare($SqlTemplate);
$StmtTemplate->execute([$institution_id, 1]);
$result = $StmtTemplate->fetchAll(PDO::FETCH_ASSOC); // Make sure to fetch associative array

if (count($result) < 1) {
	errorreturn("Academic session not found. Contact admin.");
}

// Fetch institution information
$institutions = getInstitution($conn_rjllearning, $institution_id);

// Define additional data fields
$additional_data = ['branch_code', 'address', 'pincode', 'contact_number', 'email'];

// Fetch branch information
$branch = getBranchInfo($conn_rjllearning_specific, $institution_id, $branch_id, $additional_data);

$ExecuteSqlTemplate = $conn_rjllearning_specific->prepare("SELECT examination_name,template_id, academic_session FROM marksheet WHERE institution_id = ? and id=?");
$ExecuteSqlTemplate->execute([$institution_id, $marksheet_id]);
$ResultTemplates = $ExecuteSqlTemplate->fetch(PDO::FETCH_ASSOC);

if (!$ResultTemplates) {
	errorreturn("examination_name does not exist.");
}

$examination = $ResultTemplates['examination_name'];
$template_id = $ResultTemplates['template_id'];
$academic_session = $ResultTemplates['academic_session'];


$ExecuteSqlTemplate = $conn_rjllearning->prepare("SELECT cols, template_name FROM template_info WHERE id = ? ");
$ExecuteSqlTemplate->execute([$template_id]);
$ResultTemplate = $ExecuteSqlTemplate->fetch(PDO::FETCH_ASSOC);

if (!$ResultTemplate) {
	errorreturn("Marksheet Template does not exist.");
}
$cols = $ResultTemplate['cols'];


// Fetching marksheet data
$stmt = $conn_rjllearning_specific->prepare("SELECT data FROM student_marksheet_data WHERE student_id = ? AND marksheet_id = ? AND institution_id = ?");
$stmt->execute([$student_id, $marksheet_id, $institution_id]);
$fetchmarksheet_data = $stmt->fetch(PDO::FETCH_ASSOC);

if ($fetchmarksheet_data) {
	// Unserialize the 'data' column
	$arrayfetch = json_decode($fetchmarksheet_data['data'], true);

	// Check the number of columns in the fetched data
	if (count($arrayfetch) != $cols) {
		// Deleting any pre-existing entries
		$deleteExistingData = $conn_rjllearning_specific->prepare("DELETE FROM student_marksheet_data WHERE student_id = ? AND marksheet_id = ?");
		if (!$deleteExistingData->execute([$student_id, $marksheet_id])) {
			errorreturn("Failed to delete existing data.");
		}
		for ($i = 1; $i <= $cols; $i++) {
			$array[$i] = 0;
		}
		$array[10] = "";
		$array[11] = "";
	} else {
		$array = array();
		$counter = 1;
		foreach ($arrayfetch as $element) {
			$array[$counter] = $element;
			$counter++;
		}
	}
} else {
	$deleteExistingData = $conn_rjllearning_specific->prepare("DELETE FROM student_marksheet_data WHERE student_id = ? AND marksheet_id = ?");
	if (!$deleteExistingData->execute([$student_id, $marksheet_id])) {
		errorreturn("Failed to delete existing data.");
	}
	for ($i = 1; $i <= $cols; $i++) {
		$array[$i] = 0;
	}
	$array[10] = "";
	$array[11] = "";
}
?>
<!doctype html>
<html>

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>MARKS UPLOAD</title>
	<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
	<link href="<?php echo 'https://rejoicebilldesk.in/rjllearning_development/resources/marksheet_template/template4/style_template4.css?key=' . time(); ?>" type="text/css" rel="stylesheet">

</head>

<body>
	<div class="container_marksheet_template1">

		<div class="border_template1"><!--border template is not being used-->

			<div class="content_container_template1">

				<!--template 3 logo-->
				<div class="fullstretch header_template1" align="center">
					<div class="logo_div_img_template1">
						<!--<div class="logo_left_template1" align="left">--><img class="images" src="<?php echo $institutions['logo']; ?>"><!--</div>-->
					</div>
					<div class="header_institution">
						<span class="heading_template1"><?php echo $institutions['institution_name']; ?></span><br>
						<span class="heading_code_info_template1"><?php echo $branch['branch_code']; ?></span><?php if ($branch['branch_code'] != "") {
																												?><br><?php
																												}
			?>
						<span class="heading_address_template1"><?php echo $branch['address'];
																if ($branch['pincode'] != "") {
																	echo " - " . $branch['pincode'];
																}
																?></span><br><span class="contact_template1" style="text-transform: lowercase;"><?php echo $branch['contact_number'];
																									if ($branch['email'] != "") {
																										echo ", &nbsp;" . strtolower($branch['email']);
																									}
																									?></span>
					</div>
				</div>

				<div class=" fullstretch header_info_container" align="center">
					<div class="fullstretch heading_report_template1">Progress Report</div>
					<div class="year_template1">Academic Session <?php echo $academic_session; ?></div>
				</div>

				<!--template 1 student info-->
				<div class="fullstretch" align="center">
					<div class="student_info_template1">
						<table class="student_info_table_template1">
							<tr>
								<td>Name</td>
								<td></td>
								<td><?php echo $Resultstudents['name']; ?></td>
							</tr>
							<tr>
								<td>Class</td>
								<td></td>
								<td><?php echo $class_info['class_name']; ?></td>
							</tr>
							<tr>
								<td>Father's Name</td>
								<td></td>
								<td><?php echo $Resultstudents['fathername']; ?></td>
							</tr>
						</table>
					</div>
					<div class="student_info_template1">
						<table class="student_info_table_template1">
							<tr>
								<td>Admission Number</td>
								<td></td>
								<td><?php echo $Resultstudents['admission_number']; ?></td>
							</tr>
							<tr>
								<td>Section</td>
								<td></td>
								<td><?php echo $section_info['section_name']; ?></td>
							</tr>
							<tr>
								<td>Mother's Name</td>
								<td></td>
								<td><?php echo $Resultstudents['mothername']; ?></td>
							</tr>
						</table>
					</div>
				</div>
				<div class="section">
					<form name="upload_student_marksheet" action="" method="post" id="upload_student_marksheet">
						<input type="hidden" name="marksheet_id" value="<?php echo $marksheet_id; ?>">
						<input type="hidden" name="institution_id" value="<?php echo $institution_id; ?>">
						<input type="hidden" name="student_id" value="<?php echo $student_id; ?>">
						<input type="hidden" name="jwt_token" value="<?php echo $jwttoken; ?>">
						<input type="hidden" name="api_signature" value="<?php echo $api_signature; ?>">
						<div class="table_container fullstretch table_padding">
							<table id="template_table_edit" class="table table-striped">

								<tr align="left">
									<th>Subject</th>
									<th>*Unit* Examination (20)</th>
								</tr>

								<tr>
									<th class="texttransformupper alignleft">English</th>
									<td class="code"><input type="number" min="0" max="20" autofocus required name="3" id="col3" class="columns_number" value="<?php echo $array[3]; ?>"></td>
								</tr>

								<tr>
									<th class="texttransformupper alignleft">Mathematics</th>
									<td class="code"><input type="number" min="0" max="20" autofocus required name="4" id="col4" class="columns_number" value="<?php echo $array[4]; ?>"></td>
								</tr>

								<tr>
									<th class="texttransformupper alignleft">Science</th>
									<td class="code"><input type="number" min="0" max="20" autofocus required name="5" id="col5" class="columns_number" value="<?php echo $array[5]; ?>"></td>
								</tr>

								<tr>
									<th class="texttransformupper alignleft">Social Science</th>
									<td class="code"><input type="number" min="0" max="20" autofocus required name="6" id="col6" class="columns_number" value="<?php echo $array[6]; ?>"></td>
								</tr>

								<tr>
									<th class="texttransformupper alignleft"><input type="text" id="col1" name="1" class="forms_cp_inputtext mb-2" value="<?php echo $array[1]; ?>" placeholder="Subject" required><br>(Compulsory)</th>
									<td class="code"><input type="number" min="0" max="20" autofocus required name="7" id="col7" class="columns_number" value="<?php echo $array[7]; ?>"></td>
								</tr>

								<tr>
									<th class="texttransformupper alignleft"><input type="text" id="col2" name="2" class="forms_cp_inputtext mb-2" value="<?php echo $array[2]; ?>" required placeholder="Add. Subject"><br>(Additional)</th>
									<td class="code"><input type="number" min="0" max="20" autofocus required name="8" id="col8" class="columns_number" value="<?php echo $array[8]; ?>"></td>
								</tr>

								<tr>
									<th class="texttransformupper alignleft">Information Technology<br>(Add.)</th>
									<td class="code"><input type="number" min="0" max="20" autofocus required name="9" id="col9" class="columns_number" required value="<?php echo $array[9]; ?>"></td>
								</tr>

							</table>
						</div>
						<label>Add Remarks</label><br>
						<select class="form-control modern-select" id="remarks_marksheet" required name="11">
							<?php if ($array[11] == "") {
							?><option disabled selected value="">Select</option><?php
															} else {
																?><option value="<?php echo $array[11]; ?>" selected><?php echo $array[11]; ?></option><?php
																																			}
																																				?>
							<option value="Excellent">Excellent</option>
							<option value="Good">Good</option>
							<option value="Keep it up">Keep it up</option>
							<option value="Dedicated">Dedicated</option>
							<option value="Worked hard">Worked hard</option>
							<option value="Capable of achieving a higher grade">Capable of achieving a higher grade</option>
							<option value="Completes his/her work carefully and on time">Completes his/her work carefully and on time</option>
							<option value="Good conceptual clarity">Good conceptual clarity</option>
							<option value="Needs to focus a little more on concepts">Needs to focus a little more on concepts</option>
						</select><br><br>
						<button type="submit" id="submit_marksheet" class="btn-upload">Upload Marksheet</button>
					</form><br>
					<!--display homework success error-->
					<div id="error_div" style="display:none;">
						<span id="error_message"></span>
					</div>
				<div id="displayadd_homework_success">
                    <div class="success-badge">
                        <span id="success_message">Upload Successful!</span>
                    </div>
                </div>

					<!--div loading image for fetching-->

				</div>
				<div class="fullstretch margintop50" align="center">
					<div class="student_info_template1">
						<table class="student_info_table_template1">
							<tr>
								<td>Class Incharge</td>
							</tr>
						</table>
					</div>
					<div class="student_info_template1">
						<table class="student_info_table_template1">
							<tr>
								<td>Principal / Headmistress</td>
							</tr>
						</table>
					</div>
				</div>

				<div class="date_footer fullstretch margintop50" align="left">
					<?php echo date('Y-m-d'); ?>
				</div>
				<div class="fullstretch margintop20" align="center" style="color:red;font-size:10pt;">* Incase of any discrepancies in marksheet, please contact school administration.</div>
			</div>
</body>

</html>
<script>
	$(document).ready(function() {
		$("#upload_student_marksheet").on('submit', function(e) {
			e.preventDefault(); // Prevent the default form submission

			$.ajax({
				type: 'POST',
				url: 'https://rejoicebilldesk.in/rjllearning_development/resources/marksheet_template/template4/process.php', // Directly using the URL
				data: new FormData(this), // Capture all form data including file uploads
				contentType: false,
				cache: false,
				processData: false,
				beforeSend: function() {
					// Disable form fields and the submit button
					$(".columns_number").attr('readonly', true);
					$("#remarks_marksheet").attr('readonly', true);
					$("#attendance_marksheet").attr('readonly', true);
					$("#submit_marksheet").prop('disabled', true); // Ensure you're targeting the correct button

					// Append loader to the submit button
					$("#submit_marksheet").html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Uploading...');
				},
				error: function(xhr, status, error) {
					// Re-enable form fields and submit button in case of error
					$(".columns_number").attr('readonly', false);
					$("#remarks_marksheet").attr('readonly', false);
					$("#attendance_marksheet").attr('readonly', false);
					$("#submit_marksheet").prop('disabled', false);
					$("#submit_marksheet").html('Upload Marksheet'); // Reset submit button text

					// Show error message
					$("#error_message").text('Marks upload failed, please try again later.');
					$("#error_div").css('color', 'red').fadeIn(300);
					setTimeout(function() {
						$("#error_div").fadeOut(300);
					}, 5000);
				},
				success: function(resp) {
					try {
						var response = JSON.parse(resp);

						if (response.status === 1) { // Success
							// Re-enable form fields and submit button
							$(".columns_number").attr('readonly', false);
							$("#remarks_marksheet").attr('readonly', false);
							$("#attendance_marksheet").attr('readonly', false);
							$("#submit_marksheet").prop('disabled', false);
							$("#submit_marksheet").html('Upload Marksheet'); // Reset submit button text

							// Show success message
							$("#success_message").text("Upload successful.");
							$("#displayadd_homework_success").fadeIn(300);
							setTimeout(function() {
								$("#displayadd_homework_success").fadeOut(300);
							}, 3000);
						} else { // Failure response from the server
							throw new Error(response.response || 'Unknown error');
						}
					} catch (e) {
						// If there's an error parsing or in the response
						$(".columns_number").attr('readonly', false);
						$("#remarks_marksheet").attr('readonly', false);
						$("#attendance_marksheet").attr('readonly', false);
						$("#submit_marksheet").prop('disabled', false);
						$("#submit_marksheet").html('Upload Marksheet'); // Reset submit button text

						// Show server error message
						$("#error_message").text(e.message || 'Upload failed.');
						$("#error_div").css('color', 'red').fadeIn(300);
						setTimeout(function() {
							$("#error_div").fadeOut(300);
						}, 5000);
					}
				}
			});
		});
	});
</script>