<?php
include('includes/config/config.php');
include('includes/functions.php');
include('log_entry.php');
error_reporting(E_ERROR | E_PARSE);

$ohc_type = $_REQUEST['ohc_location'];
$patient_category = $_REQUEST['patient_category'];
$dept = $_REQUEST['dept'];
$emp_designation = $_REQUEST['emp_designation'];
$emp_cadre = $_REQUEST['emp_cadre'];
$employer_contractor = $_REQUEST['employer_contractor'];
$gender = $_REQUEST['gender'];
$start_date = $_REQUEST['startDate'];
$end_date = $_REQUEST['endDate'];
$year = implode(',', $_REQUEST['year']);
$month = implode(',', $_REQUEST['month']);

$year2 = implode(',', $_REQUEST['year']);

$year1 = explode(',', $year);

// $year1 = array(2020,2021,2018);


error_log("values::" . $ohc_location . "   " . $patient_category . "  " . $dept . "   " . $emp_designation . "   " . $emp_cadre . "  " . $employer_contractor . "   " . $gender . "   " . $start_date . "   " . $end_date . "  " . $year . "  " . $month);


$qry_filter1 = "";
$qry_filter = "";
$qry_date = "";
$qry_date1 = "";

if (isset($dept) && $dept != '') {
    $qry_filter1 .= " where dept_id ='" . $dept . "' ";
}


if (isset($ohc_type) && $ohc_type != '') {
    $qry_filter .= " and ohc_type_id ='" . $ohc_type . "' ";
}

if (isset($gender) && $gender != '') {
    $qry_filter .= " and gender ='" . $gender . "' ";
}

if (isset($patient_category) && $patient_category != '') {
    $qry_filter .= " and emp_cat_id ='" . $patient_category . "' ";
}

if (isset($emp_designation) && $emp_designation != '') {
    $qry_filter .= " and designation_id ='" . $emp_designation . "' ";
}

if (isset($emp_cadre) && $emp_cadre != '') {
    $qry_filter .= " and emp_cadre ='" . $emp_cadre . "' ";
}

if (isset($employer_contractor) && $employer_contractor != '') {
    $qry_filter .= " and employer_contractor_id ='" . $employer_contractor . "' ";
}

if (isset($start_date) && $start_date != '') {
    $qry_date1 .= " and date(checkup_date) >=str_to_date('" . $start_date . "','%d-%m-%Y') ";
}
if (isset($end_date) && $end_date != '') {
    $qry_date1 .= " and date(checkup_date) <=str_to_date('" . $end_date . "','%d-%m-%Y') ";
}

if (isset($month) && $month != '') {
    $qry_date1 .= " and month(checkup_date) in (" . $month . ")";
}


$i = 0;
$record = array();

if (isset($year) && $year != '' && sizeof($year1) > 1) {

    $designation_query = "select designation_id, designation_name from designation $qry_filter1";

    $result_dept = mysqli_query($conn, $designation_query);

    $percentage_emp_per_dept = 0;

    $total = 0;

    while ($designation_row = mysqli_fetch_assoc($result_dept)) {

        for ($j = 0; $j < sizeof($year1); $j++) {
            $qry_date = "";
            $qry_doj = "";

            $qry_date .= " and year(checkup_date) ='" . $year1[$j] . "'";
            $qry_doj .= " and year(doj) <= '" . $year1[$j] . "'";

            $count_query = "select count(*) as total FROM patient_master where status = 'Active' and designation_id = '" . $designation_row['designation_id'] . "' $qry_filter $qry_doj";

            $count_result = mysqli_query($conn, $count_query);

            error_log("count_query::" . $count_query);

            $row_count = mysqli_fetch_assoc($count_result);

            $count_health_index = "SELECT max(checkup_id),health_index from checkup_form where emp_id in (SELECT id FROM patient_master where designation_id = '" . $designation_row['designation_id'] . "' and status='Active' $qry_filter $qry_doj ORDER by id asc) $qry_date1 $qry_date GROUP by emp_id";

            $health_index_result = mysqli_query($conn, $count_health_index);
            error_log("count_health_index::" . $count_health_index);

            $k = 0;
            $data = [];
            if (mysqli_num_rows($health_index_result)) {
                while ($row_health_index = mysqli_fetch_assoc($health_index_result)) {
                    $data[$k] = $row_health_index['health_index'];
                    $k++;
                }
            }

            $avg = 0;
            if (count($data)) {
                $avg = round(array_sum($data) / count($data), 2);
            }
            error_log("avg:" . $avg);

            $record[$designation_row['designation_name']][$year1[$j]]['health_index'] = $avg;
        }
    }
} else {
    if (isset($year2) && $year2 != '') {
        $qry_date .= " and year(checkup_date) ='" . $year2 . "'";
        $qry_filter .= " and year(doj) <= '" . $year2 . "'";
    }

    $designation_query = "select designation_id, designation_name from designation $qry_filter1";

    $result_dept = mysqli_query($conn, $designation_query);
    $total = 0;
    while ($designation_row = mysqli_fetch_assoc($result_dept)) {

        $count_query = "select count(*) as total FROM patient_master where status = 'Active' and designation_id = '" . $designation_row['designation_id'] . "' $qry_filter";

        $count_result = mysqli_query($conn, $count_query);

        error_log("count_query::" . $count_query);

        if (mysqli_num_rows($count_result) > 0) {
            $row_count = mysqli_fetch_assoc($count_result);
            $record[$i]['key'] = $designation_row['designation_name'];
            $record[$i]['total'] = $row_count['total'];
        }

        $count_health_index = "SELECT max(checkup_id),health_index from checkup_form where emp_id in (SELECT id FROM patient_master where designation_id = '" . $designation_row['designation_id'] . "' and status='Active' $qry_filter ORDER by id asc) $qry_date1 $qry_date GROUP by emp_id";

        $health_index_result = mysqli_query($conn, $count_health_index);
        error_log("count_health_index::" . $count_health_index);

        $j = 0;
        $data = [];
        if (mysqli_num_rows($health_index_result)) {
            while ($row_health_index = mysqli_fetch_assoc($health_index_result)) {
                $data[$j] = $row_health_index['health_index'];
                $j++;
            }
        }

        $avg = 0;
        if (count($data)) {
            $avg = round(array_sum($data) / count($data), 2);
        }
        error_log("avg:" . $avg);
        $record[$i]['health_index_total'] = $avg;
        $i++;
    }
}

echo json_encode($record);