77 lines
2.6 KiB
PHP
77 lines
2.6 KiB
PHP
<?php
|
|
session_start();
|
|
if (!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true) {
|
|
header("location: ../index.php");
|
|
exit;
|
|
}
|
|
|
|
require_once '../includes/db_assessment.php';
|
|
|
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|
|
|
$cid = $_SESSION['cid'];
|
|
$assess_year = $_POST['assess_year'];
|
|
$fullname = $_POST['fullname'] ?? '';
|
|
$position = $_POST['position'] ?? '';
|
|
$department = $_POST['department'] ?? '';
|
|
$computer_use = $_POST['computer_use'] ?? '2';
|
|
|
|
$rules_json = null;
|
|
$sla_json = null;
|
|
|
|
if ($computer_use == '1') {
|
|
$rules_data = [];
|
|
$sla_data = [];
|
|
|
|
foreach ($_POST as $key => $val) {
|
|
// Check for rules: r_{id}_k, r_{id}_u, r_{id}_p
|
|
if (preg_match('/^r_(\d+)_(k|u|p)$/', $key, $matches)) {
|
|
$id = $matches[1];
|
|
$type = $matches[2];
|
|
$rules_data[$id][$type] = $val;
|
|
}
|
|
// Check for sla: sla_{id}_score, sla_{id}_comment
|
|
elseif (preg_match('/^sla_(\d+)_(score|comment)$/', $key, $matches)) {
|
|
$id = $matches[1];
|
|
$type = $matches[2];
|
|
$sla_data[$id][$type] = $val;
|
|
}
|
|
}
|
|
$rules_json = json_encode($rules_data, JSON_UNESCAPED_UNICODE);
|
|
$sla_json = json_encode($sla_data, JSON_UNESCAPED_UNICODE);
|
|
}
|
|
|
|
$sql = "INSERT INTO it_assessments (assess_year, hr_cid, fullname, position, department, computer_use, rules_data, sla_data)
|
|
VALUES (:assess_year, :hr_cid, :fullname, :position, :department, :computer_use, :rules_data, :sla_data)";
|
|
|
|
$params = [
|
|
':assess_year' => $assess_year,
|
|
':hr_cid' => $cid,
|
|
':fullname' => $fullname,
|
|
':position' => $position,
|
|
':department' => $department,
|
|
':computer_use' => $computer_use,
|
|
':rules_data' => $rules_json,
|
|
':sla_data' => $sla_json
|
|
];
|
|
|
|
try {
|
|
$stmt = $pdo_assess->prepare($sql);
|
|
$stmt->execute($params);
|
|
$_SESSION['success_msg'] = "บันทึกข้อมูลเรียบร้อยแล้ว";
|
|
} catch (PDOException $e) {
|
|
if ($e->errorInfo[1] == 1062) {
|
|
$_SESSION['error_msg'] = "ท่านได้ทำแบบประเมินสำหรับปีนี้ไปแล้ว";
|
|
} else {
|
|
$_SESSION['error_msg'] = "เกิดข้อผิดพลาดในการบันทึกข้อมูล: " . $e->getMessage();
|
|
}
|
|
}
|
|
|
|
header("location: ../form.php");
|
|
exit;
|
|
|
|
} else {
|
|
header("location: ../form.php");
|
|
exit;
|
|
}
|