File "a_users_view.php"

Full Path: /home/ccipcixf/public_html/hirepro/admin/a_users_view.php
File size: 24.34 KB
MIME-type: text/x-php
Charset: utf-8

<?php
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

if (isset($_SESSION['company_a_role']) && $_SESSION['company_a_role'] !== "A") {
    header("location:index.php");
    exit(); // Add an exit to stop further execution after redirection
}

// Include your database connection code
include "config.php";
include "menu.php";

// Define competency or heading names for each position
$competencies = [
    "Junior Level" => [
        "Communication Skills",
        "Problem Solving",
        "Adaptability",
        "Loyalty and Ethics",
        "Short & Long Term Orientation",
        "Criminal Intent"
    ],
    "Mid Level" => [
        "Leadership Skills",
        "Communication Skills",
        "Team Collaboration",
        "Loyalty and Ethics",
        "Short & Long Term Orientation",
        "Criminal Intent"
    ],
    "Senior Level" => [
        "Leadership Skills",
        "Strategic Thinking",
        "Communication Skills",
        "Loyalty and Ethics",
        "Short & Long Term Orientation",
        "Criminal Intent"
    ]
];



$user_id = $_GET["id"];

$query = "SELECT * FROM a_questionnaire WHERE id = '{$user_id}'";
$result = mysqli_query($conn, $query);

if (mysqli_num_rows($result)) {
    $row = mysqli_fetch_assoc($result);

    // Calculate the average rating for each heading
    $average_ratings = [];
    $bar_color = ""; // Define $bar_color outside the loop

    // Added an array to store the heading variables
    $headings = [];

    // Fetch the current position level
    $position_level = $row["position_level"];
    $headingNames = $competencies[$position_level];

    for ($headingIndex = 1; $headingIndex <= count($headingNames); $headingIndex++) {
        $heading_key = "heading{$headingIndex}";
        $average_rating_heading = 0;

        // Debugging statements
        // echo "Heading Index: $headingIndex<br>";
        // echo "Total Questions: {$total_questions_per_position[$position_level]}<br>";

        $questionsPerIndex = ($position_level === "Junior Level") ? 5 : 3;

        for ($questionIndex = 1; $questionIndex <= $questionsPerIndex; $questionIndex++) {
            $question_key = "rating_" . (($headingIndex - 1) * $questionsPerIndex + $questionIndex);

            // Debugging statements
            // echo "Question Index: $questionIndex, Question Key: $question_key<br>";

            if (isset($row[$question_key])) {
                $average_rating_heading += $row[$question_key];
            } else {
                // Handle the case when the key is not set in $row
                // You can choose to skip the question or set a default value
                echo "No data for key $question_key<br>";
            }
        }

        $average_ratings[$heading_key] = number_format(($average_rating_heading * 100) / ($questionsPerIndex * 6), 2);

        // More debugging statements
        // echo "Average Rating Heading: $average_rating_heading<br>";
        // echo "Average Rating: {$average_ratings[$heading_key]}<br>";

        // Define bar color based on heading
        switch ($headingIndex) {
            case 1:
                $bar_color = "bg-info";
                break;
            case 2:
                $bar_color = "bg-success";
                break;
            case 3:
                $bar_color = "bg-primary";
                break;
            case 4:
                $bar_color = "bg-warning";
                break;
            case 5:
            case 6:
                $bar_color = "bg-danger"; // Add more cases for additional headings
                break;
            default:
                $bar_color = "bg-warning";
        }

        // Store the heading variables in an array, including the index
        $headings[] = [
            'index' => $headingIndex,
            'name' => $headingNames[$headingIndex - 1],
            'average_rating' => $average_ratings[$heading_key],
            'bar_color' => $bar_color,
        ];
    }

?>

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

    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- Tell the browser to be responsive to screen width -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="description" content="">
        <meta name="author" content="">

        <title>Hirepro - Admin</title>

        <!-- Favicon icon -->
        <link rel="icon" type="image/x-icon" href="../assets//images/big/w2.png" />
        <!-- Custom CSS -->
        <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
        <script src="../assets/extra-libs/knob/jquery.knob.min.js"></script>
    </head>

    <style>
        .page-breadcrumb {
            padding: 30px 35px 0;
        }

        .page-wrapper {
            position: relative;
            display: none;
            box-shadow: none;
            border-top-left-radius: 0px;
            border-top-right-radius: 0px;
        }

        .col-lg-2.col-md-3.col-sm-6.p-auto.align-self-center {
            text-align: right;
        }

        /* Add styles for elements after the "Scenario" field */
        /* Adjust as needed */
        .form-actions {
            text-align: right;
        }

        .form-actions button {
            margin-left: 10px;
        }

        .text-right {
            text-align: right !important;
        }

        .card,
        .card-group {
            margin-bottom: 30px;
        }

        .selecteds {
            background-color: gray;
            color: white;
        }
    </style>

    <body>
        <div id="main-wrapper" data-theme="light" data-layout="vertical" data-navbarbg="skin6" data-sidebartype="full" data-sidebar-position="fixed" data-header-position="fixed" data-boxed-layout="full">

            <div class="page-wrapper" style="display: block;">
                <!-- ============================================================== -->
                <!-- Bread crumb and right sidebar toggle -->
                <!-- ============================================================== -->
                <div class="page-breadcrumb">

                    <div class="row mb-4">
                        <div class="col-lg-10 col-md-9 col-sm-6 align-self-center">
                            <h4 class="page-title text-truncate text-dark font-weight-medium mb-1">Result view</h4>
                            <div class="d-flex align-items-center">
                                <nav aria-label="breadcrumb">
                                    <ol class="breadcrumb m-0 p-0">
                                        <li class="breadcrumb-item"><a href="user.php" class="text-muted">Result Details</a></li>
                                        <li class="breadcrumb-item text-muted active" aria-current="page"><a href="user_view.php">Result view</a></li>
                                    </ol>
                                </nav>
                            </div>
                        </div>
                        <div class="col-lg-2 col-md-3 col-sm-6 p-auto align-self-center">
                            <div class="customize-input float-right">
                                <a href="a_users.php">
                                    <button class="btn btn-primary" style="border-radius: 50px; 
                                        background: linear-gradient(to right,#0052D4, #2B32B2); border: 1px solid #7f72ea">
                                        <span class=" me-3">Result</span><i class="bx bx-arrow-back"></i></button>
                                </a>
                            </div>
                        </div>
                    </div>

                </div>
                <div class="container-fluid">
                    <!-- ============================================================== -->
                    <!-- Start Page Content -->
                    <!-- ============================================================== -->
                    <form action="<?php echo $_SERVER["PHP_SELF"] . "?id=" . $_GET["id"]; ?>" method="POST" enctype="multipart/form-data">
                        <div class="row ">
                            <div class="col-sm-12 col-md-6 col-lg-12">
                                <div class="card">
                                    <div class="card-body">

                                        <div class="form-group">
                                            <h6><span>Name:</span> <?php echo $row["name"] ?></h6>
                                            <h6><span>Email:</span> <?php echo $row["email"] ?></h6>
                                            <h6><span>Designation:</span> <?php echo $row["designation"] ?></h6>
                                            <h6><span>Position:</span> <?php echo $row["position_level"] ?></h6>
                                        </div>
                                    </div>
                                </div>
                            </div>

                            <div class="container">
                                <div class="row text-start align-items-stretch">
                                    <div class="col-md-6 card p-2">
                                        <h4 class="p-2">Competancies</h4>
                                        <?php for ($headingIndex = 1; $headingIndex <= count($headingNames); $headingIndex++) : ?>
                                            <?php
                                            // Determine the total number of questions for each position
                                            $total_questions_per_position = [
                                                "Junior Level" => 30,
                                                "Mid Level" => 18,
                                                "Senior Level" => 18
                                            ];

                                            $heading_key = "heading{$headingIndex}";
                                            $average_rating_heading = 0;

                                            // Determine the total questions for the current heading
                                            $total_questions_per_heading = ($position_level === "Junior Level") ? 5 : 3;

                                            // Calculate the total rating for each competency dynamically
                                            $total_rating_per_competency = $total_questions_per_heading * 3; // Assuming 3 as the rating per question

                                            for ($questionIndex = 1; $questionIndex <= $total_questions_per_heading; $questionIndex++) {
                                                $question_key = "rating_" . ($headingIndex - 1) * $total_questions_per_heading + $questionIndex;
                                                $average_rating_heading += $row[$question_key];
                                            }

                                            $average_ratings[$heading_key] = number_format(($average_rating_heading * 100) / $total_rating_per_competency, 2);
                                            // echo "Average Rating Heading: $average_rating_heading<br>";
                                            // echo "Total Rating Per Competency: $total_rating_per_competency<br>";
                                            // Define bar color based on heading
                                            $bar_color = ""; // Reset $bar_color for each heading
                                            switch ($headingIndex) {
                                                case 1:
                                                    $bar_color = "bg-info";
                                                    break;
                                                case 2:
                                                    $bar_color = "bg-success";
                                                    break;
                                                case 3:
                                                    $bar_color = "bg-primary";
                                                    break;
                                                case 4:
                                                    $bar_color = "bg-warning";
                                                    break;
                                                case 5:
                                                case 6:
                                                    $bar_color = "bg-danger"; // Add more cases for additional headings
                                                    break;
                                                default:
                                                    $bar_color = "bg-warning";
                                            }
                                            ?>
                                            <div class="row mb-3 align-items-center mt-1 m-1">
                                                <div class="col-4 text-left">
                                                    <span class="text-dark font-14 fw-bold"><?php echo $headingNames[$headingIndex - 1]; ?></span>
                                                </div>
                                                <div class="col-5">
                                                    <div class="progress" style="height: 20px;">
                                                        <div class="progress-bar <?php echo $bar_color; ?>" role="progressbar" style="width: <?php echo $average_ratings[$heading_key]; ?>%" aria-valuenow="<?php echo $average_ratings[$heading_key]; ?>" aria-valuemin="0" aria-valuemax="100"></div>
                                                    </div>
                                                </div>
                                                <div class="col-3 text-right">
                                                    <span class="mb-0 font-14 text-dark font-weight-medium"><?php echo $average_ratings[$heading_key]; ?>%</span>
                                                </div>
                                            </div>
                                        <?php endfor; ?>
                                    </div>


                                    <div class="col-md-6">
                                        <!-- Total Points -->
                                        <div style="height: 380px;" class="card p-2">
                                            <h4 class="p-2">Overall Result</h4>
                                            <div class="card-body d-flex flex-column align-items-center justify-content-center">
                                                <?php
                                                $total_questions_per_position = [
                                                    'Junior Level' => 30,
                                                    'Mid Level' => 18,
                                                    'Senior Level' => 18,
                                                ];

                                                // User ID
                                                $user_id = $_GET["id"];

                                                // Fetch the position level from the database
                                                $queryPosition = "SELECT position_level FROM a_questionnaire WHERE id = '{$user_id}'";
                                                $resultPosition = mysqli_query($conn, $queryPosition);

                                                if ($resultPosition && mysqli_num_rows($resultPosition) > 0) {
                                                    $rowPosition = mysqli_fetch_assoc($resultPosition);
                                                    $position_level = $rowPosition['position_level'];

                                                    // Assuming total rating for each competency is calculated based on the total questions per competency
                                                    $total_rating_per_competency = $total_questions_per_position[$position_level];

                                                    // Query to calculate the total rating for the specific user
                                                    $totalRatingQuery = "SELECT 
                    SUM(" . implode(" + ", array_map(function ($index) {
                                                        return "COALESCE(`rating_$index`, 0)";
                                                    }, range(1, $total_rating_per_competency))) . ") AS totalRating 
                    FROM `a_questionnaire` 
                    WHERE id = '{$user_id}'";

                                                    $resultTotalRating = mysqli_query($conn, $totalRatingQuery);

                                                    if ($resultTotalRating && mysqli_num_rows($resultTotalRating) > 0) {
                                                        $rowTotalRating = mysqli_fetch_assoc($resultTotalRating);

                                                        $totalRating = $rowTotalRating['totalRating'];

                                                        // Calculate overall rating percentage
                                                        $overallRatingPercentage = ($totalRating * 100) / ($total_rating_per_competency * 3);
                                                ?>
                                                        <div class="text-center pb-3">
                                                            <input data-plugin="knob" data-width="230" data-height="230" data-linecap="round" data-fgColor="red" value="<?php echo number_format($overallRatingPercentage, 2) ?>" data-skin="tron" data-angleOffset="180" data-readOnly=true data-thickness=".2" />
                                                        </div>
                                                        <h2 class='text-dark mb-1 font-weight-medium'><?php echo number_format($overallRatingPercentage, 2) ?>%</h2>
                                                <?php
                                                    } else {
                                                        echo "<h2 class='text-dark mb-1 font-weight-medium'>0%</h2>";
                                                    }
                                                } else {
                                                    echo "<h2 class='text-dark mb-1 font-weight-medium'>Position level not found</h2>";
                                                }
                                                ?>
                                            </div>
                                        </div>
                                        <!-- Total Points -->
                                    </div>


                                </div>
                            </div>




                            <!-- ADDITION -->
                            <div class="container ">
                                <hr class="mt-3">
                            </div>

                            <div class="container">
                                <div class="row">
                                    <div class="col-md-12">
                                        <h2 class="p-2">Scores:</h2>
                                    </div>
                                </div>
                            </div>

                            <?php foreach ($headings as $heading) : ?>
                                <div class="container mb-3">
                                    <div class="row">
                                        <div class="col-lg-12 col-md-12">
                                            <div class="card">
                                                <div class="card-body">
                                                    <h4 class="card-title mb-4 text-dark fw-bolder"><?php echo $heading['name']; ?></h4>

                                                    <?php
                                                    $total_questions_per_heading = ($position_level === "Junior Level") ? 5 : 3;


                                                    // Display questions for the current heading
                                                    for ($i = 1; $i <= $total_questions_per_heading; $i++) :
                                                        $question_index = ($heading['index'] - 1) * $total_questions_per_heading + $i;
                                                        $question_key = "question_${question_index}_text";
                                                        $averageRating = $row["rating_${question_index}"];
                                                    ?>
                                                        <div class="row mb-3 align-items-center mt-1">
                                                            <div class="col-10 text-start">
                                                                <span class="font-14 fw-bolder text-dark">Question <?php echo $i; ?>:</span>
                                                                <span class="text-dark font-14"><?php echo $row[$question_key]; ?></span>
                                                            </div>
                                                            <div class="col-2 text-right">
                                                                <span class="mb-0 font-14 text-dark bg-dark text-white p-1 font-weight-medium"><?php echo $averageRating; ?> Marks</span>
                                                            </div>
                                                        </div>
                                                    <?php endfor; ?>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            <?php endforeach; ?>



                            <!-- ADDITION -->
                            <div class="container mb-3">
                                <hr class="mt-3">
                            </div>
                            <!-- <div class="form-actions ml-auto">
                                <div class="text-right">
                                    <button type="submit" class="btn btn-info" style="background: linear-gradient(to right,#0052D4, #2B32B2); border:none;" name="submit">Update</button>
                                </div>
                            </div> -->
                        </div>
                    </form>

                </div>
                <!-- ============================================================== -->
                <!-- End Page wrapper  -->
                <!-- ============================================================== -->
            </div>
            <!-- All Jquery -->
            <!-- ============================================================== -->
            <script src="../assets/libs/jquery/dist/jquery.min.js"></script>
            <!-- Bootstrap tether Core JavaScript -->
            <script src="../assets/libs/popper.js/dist/umd/popper.min.js"></script>
            <script src="../assets/libs/bootstrap/dist/js/bootstrap.min.js"></script>
            <!-- apps -->
            <!-- apps -->
            <script src="../dist/js/app-style-switcher.js"></script>
            <script src="dist/js/feather.min.js"></script>
            <!-- slimscrollbar scrollbar JavaScript -->
            <script src="../assets/libs/perfect-scrollbar/dist/perfect-scrollbar.jquery.min.js"></script>
            <script src="../assets/extra-libs/sparkline/sparkline.js"></script>
            <!--Wave Effects -->
            <!-- themejs -->
            <!--Menu sidebar -->
            <script src="../dist/js/sidebarmenu.js"></script>
            <!--Custom JavaScript -->
            <script src="../dist/js/custom.min.js"></script>
            <script src="../assets/extra-libs/knob/jquery.knob.min.js"></script>
            <script>
                $(function() {
                    $('[data-plugin="knob"]').knob();

                });
            </script>
    </body>

    </html>
<?php
}
?>