File "add_position.php"

Full Path: /home/humancap/cl.humancap.com.my/assessment/cl-admin/add_position.php
File size: 11.44 KB
MIME-type: text/x-php
Charset: utf-8

<?php
require_once "../include/config.php";

// Start a session to manage user authentication
session_start();

// Check if the user is not authenticated (no session variable)
if (!isset($_SESSION["authenticated"]) || $_SESSION["authenticated"] !== true) {
    // Redirect to the login page
    header("Location: index.php");
    exit;
}

if (!isset($_SESSION['lang'])) {
  $_SESSION['lang'] = 'en';
}

if (isset($_GET['lang'])) {
  $lang = $_GET['lang'];
  if ($lang == 'en') {
    $_SESSION['lang'] = 'en'; 
  } else { 
    $_SESSION['lang'] = 'bm';
  }
} else {
   $lang = "";
}

// Create a database connection
$conn = new mysqli($host, $username, $password, $database);

// Check the connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

 //check for session
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    /* echo "Position Title:" . $_POST["positionTitle"];
    echo "<br>";
    var_dump($_POST["bis"]);
    echo "<br>"; */

    // Get Position Name and add into Assessment Table, then return assessment_id
    $PositionTitle = $_POST["positionTitle"];
    $sql = "INSERT INTO assessment (name, Project_ID) VALUES (?, ?)";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("si", $PositionTitle, $_SESSION["project_id"]); 
    $stmt->execute();

    // Retrieve the ID of the last inserted row
    $lastInsertedID = $conn->insert_id;      

    //echo "lastInsertedID:" . $lastInsertedID;
    //echo "<br>";

    // Loop through bis and insert into assess_bi table.
    foreach ($_POST["bis"] as $value) {
      // Prepare and execute insertion query for each value
      $sql = "INSERT INTO assess_bi (assessment_id, bi_id) VALUES (?, ?)";
      $stmt = $conn->prepare($sql);
      $stmt->bind_param("ii", $lastInsertedID, $value);
      $stmt->execute();
    }

    echo "The position " . $PositionTitle . " has been added. Click <a href='positions.php'>here</a> to return to Positions List";
    $stmt->close();
    $conn->close(); 
    exit();

    /*
    $position = $_POST["position"];
    $assessmentType = $_POST["assessmentType"];

    echo "Position = " . $position . " ";
    echo "assessmentType = " . $assessmentType . " ";

    if ($assessmentType === "self"){
      $candidateEmail = $_POST["candEmail"];
      $candidateName = $_POST["candName"];
      $assName = $candidateName;
      $assEmail = $candidateEmail;
      $assSelfOrExt = 1;
      echo "candidateEmail = " . $candidateEmail . " ";
    echo "candidateName = " . $candidateName . " ";
    } else {
      $candidateName = $_POST["candName2"];
      $assessorName = $_POST["assessorName"];
      $assessorEmail = $_POST["assessorEmail"];
      $assName = $assessorName;
      $assEmail = $assessorEmail;
      $assSelfOrExt = 2;

      echo "assessorName = " . $assessorName  . " ";
      echo "assessorEmail = " . $assessorEmail  . " ";
      echo "candidateName = " . $candidateName  . " ";
    }

      $status = 0;

      $sql = "INSERT INTO assessment_by_assessor (for_candidate_name, assessment_id, name, email, self_or_ext, status) VALUES (?, ?, ?, ?, ?, ?)";
      $stmt = $conn->prepare($sql);
      $stmt->bind_param("ssssii", $candidateName, $position, $assName, $assEmail, $assSelfOrExt, $status);

    if ($stmt->execute()) {
        $stmt->close();
        $conn->close();

        header("Location: assessors.php");
        exit; // Make sure to exit the script after redirection
    } else {
        echo "Error: " . $stmt->error;
        $stmt->close();
        $conn->close();
    } */

} else {
    // GET PROJECT DATA
    $sql = "SELECT name, nama, username FROM project where id = ".$_SESSION["project_id"];
    $project_data = $conn->query($sql);
    $row = $project_data->fetch_assoc();   

    $projectname = $row["name"];
    $projectnama = $row["nama"];
    $projectusername = $row["username"];

    // GET BIs DATA
    $sql2 = "SELECT bi.id, bi.name, bi.nama, bi.competency_id, c.name as competency, c.nama as kompetensi FROM behavioral_indicator as bi 
             INNER JOIN competency as c ON bi.competency_id = c.id ORDER BY competency asc";
    $bi_data = $conn->query($sql2);


    // Get the current URL
    $fullURL = "https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

    // Parse the URL
    $parsedURL = parse_url($fullURL);

    // Rebuild the URL without the query string
    $finalURL = $parsedURL['scheme'] . '://' . $parsedURL['host'] . $parsedURL['path'];

    //echo "Current URL without query string: " . $finalURL;
}
?>

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta content="width=device-width, initial-scale=1.0" name="viewport">

  <title>Add Position</title>
  <meta content="" name="description">
  <meta content="" name="keywords">

  <!-- Favicons -->
  <link href="assets/img/favicon.png" rel="icon">
  <link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">

  <!-- Google Fonts -->
  <link href="https://fonts.gstatic.com" rel="preconnect">
  <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
  
  <!-- Vendor CSS Files -->
 
  <link href="assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
  <link href="assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
  <link href="assets/vendor/quill/quill.snow.css" rel="stylesheet">
  <link href="assets/vendor/quill/quill.bubble.css" rel="stylesheet">
  <link href="assets/vendor/remixicon/remixicon.css" rel="stylesheet">
  <link href="assets/vendor/simple-datatables/style.css" rel="stylesheet">

  <!-- Styles -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.min.css" />
<!-- Or for RTL support -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.rtl.min.css" />

<!-- Scripts -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.0/dist/jquery.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>


  <!-- Template Main CSS File -->
  <link href="assets/css/style.css" rel="stylesheet">
</head>

<body>
  <!-- Initialize the Bootstrap SelectPicker -->
  <script>
    $(document).ready(function() {
          $('.js-example-basic-multiple').select2();
    });
  </script>

  <?php require_once "../include/header.php"; ?>
  <?php require_once "../include/sidebar.php"; ?>

  <main id="main" class="main">

    
    <div class="pagetitle">
      <h1>Add Position</h1>
      <!--<nav>
        <ol class="breadcrumb">
          <li class="breadcrumb-item"><a href="index.html">Position List</a></li>
          <li class="breadcrumb-item active">Add</li>
        </ol>
      </nav>-->
    </div>

    <section class="section">
      <div class="row">
        <div class="col-lg-12">
          <div class="card">
            <div class="card-body">
              <p>&nbsp;</p>
              <!--<h5 class="card-title">Multi Columns Form</h5>-->

              <!-- Multi Columns Form -->
              <form class="row g-6" method="post" onsubmit="return validateEmail()" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                
                <div class="col-md-10">
                  <h2>Add Position</h2>
                  <!-- HTML for the SelectPicker with live search -->
                    <label for="PositionTitle" class="form-label">Behavioral Indicators</label>  
                    <?php if ($lang == 'en'){
                      echo "<small>(Switch to <a href='" . $finalURL . "?lang=bm'>BM</a>)</small>";
                    } else if ($lang == 'bm') {
                      echo "<small>(Switch to <a href='" . $finalURL . "?lang=en'>English</a>)</small>";   
                    } else {
                      echo "<small>(Switch to <a href='" . $finalURL . "?lang=bm'>BM</a>)</small>";
                    }

                    if ($_SESSION['lang'] == 'en') {
                      $placeholder = "Choose behavioral indicators for this position.";
                    } else {
                      $placeholder = "Pilih 'behavioral indicators' untuk jawatan ini.";
                    }
                    ?><br>
                    <select class="js-example-basic-multiple" data-placeholder="<?php echo $placeholder ?>" name="bis[]" multiple="multiple" style="width: 85%">
                    <?php            
                      if ($bi_data->num_rows > 0) {
                          $optgroup = "";
                          $isfirst  = false;

                          while ($row_bi = $bi_data->fetch_assoc()) {
                            if ($_SESSION['lang'] == 'en') {
                              $competency = $row_bi["competency"];
                              $bi         = $row_bi["name"];
                            } else {
                              $competency = $row_bi["kompetensi"];
                              $bi         = $row_bi["nama"];
                            }

                              if ($optgroup != $row_bi["competency"]){
                              if ($isfirst) {
                                echo '</optgroup>';
                              }
                              echo '<optgroup label = "' . $competency . '">';
                              $isfirst = true;
                              }
                              echo '<option value="' . $row_bi["id"] . '">' . $bi . '</option>';

                              $optgroup = $row_bi["competency"];
                          }
                      } else {
                          echo '<option value="">No behavioral indicators available</option>';
                      }
                    ?>
                  </select>
                </div>
                <p>&nbsp;</p>
                <div class="col-md-8" id="positionFields">
                  <label for="PositionTitle" class="form-label">Position Title</label>
                  <input type="text" class="form-control" id="PositionTitle" name="positionTitle"> 
                </div>
                <p>&nbsp;</p>
                <div class="text-center">
                  <button type="submit" class="btn btn-primary">Submit</button>
                </div>                
            </div>
          </div>
        </div>
        </div>
      </div>
    </section>
  </main><!-- End #main -->

  <!-- ======= Footer ======= -->
  <footer id="footer" class="footer">

  </footer><!-- End Footer -->

  <a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>

  <!-- Vendor JS Files -->
  <script src="assets/vendor/apexcharts/apexcharts.min.js"></script>
  <script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
  <script src="assets/vendor/chart.js/chart.umd.js"></script>
  <script src="assets/vendor/echarts/echarts.min.js"></script>
  <script src="assets/vendor/quill/quill.min.js"></script>
  <script src="assets/vendor/simple-datatables/simple-datatables.js"></script>
  <script src="assets/vendor/tinymce/tinymce.min.js"></script>
  <script src="assets/vendor/php-email-form/validate.js"></script>

  <!-- Template Main JS File -->
  <script src="assets/js/main.js"></script>

</body>
</html>