<?php
include('includes/config/config.php');
include('includes/functions.php');
include('log_entry.php');
error_log("Start Printing Request Attributes");
foreach ($_REQUEST as $key => $value) {
    error_log($key . " : " . $value . "\n");
}
error_log("End Printing Request Attributes");
error_log("inside data eval");

$arr = array();
$arr = array();
$chart_id = $_REQUEST['chart_id'];
$ohc_type_id = $_REQUEST['ohc_type_id'];

error_log("ohc_type_id " . $ohc_type_id);
error_log("chart_id " . $chart_id);

$sql0 = "select * from rule_chart where chart_id='" . $chart_id . "'";
error_log("selecting everything from rule_chart table " . $sql0);
$result0 = mysqli_query($conn, $sql0);
$row0 = mysqli_fetch_array($result0);
$checkup_section = $row0['checkup_section'];
error_log("checkup_section " . $checkup_section);
if ($_REQUEST['rule_result'] == "") {
    $sql11 = 'select distinct result_disp from rule_equation where rule_eq_id in (' . $row0['rule_equation_ids'] . ')';
    error_log("selecting result_disp from rule_equation " . $sql11);
    $result11 = mysqli_query($conn, $sql11);
    $i = 0;
    while ($row11 = mysqli_fetch_array($result11)) {
        $arr['par'][$i] = $row11['result_disp'];
        $arr['genm'][$i] = 0;
        $arr['genf'][$i] = 0;
        $arr['total'][$i] = 0;
        $i++;
    }
    $n = $i;
} else {
    if ($_REQUEST['chart_type_id'] == "") {
        $sql12 = "select * from rule_age_range where age_batch_id=" . $row0['age_batch_id'] . "";
        error_log("selecting everything from rule_age_range " . $sql12);
        $result12 = mysqli_query($conn, $sql12);
        $i = 0;
        while ($row12 = mysqli_fetch_array($result12)) {
            $arr['agerange'][$i][0] = $row12['rule_age_start'];
            error_log("arr " . $arr['agerange'][$i][0]);
            $arr['agerange'][$i][1] = $row12['rule_age_end'];
            error_log("arr " . $arr['agerange'][$i][1]);
            $arr['genm'][$i] = 0;
            $arr['genf'][$i] = 0;
            $arr['total'][$i] = 0;
            $i++;
        }
        $n = $i;
    } else {
        if ($_REQUEST['chart_type_id'] == "department") {
            $sql13 = "select * from department";
        } else if ($_REQUEST['chart_type_id'] == "designation") {
            $sql13 = "select * from designation";
        } else if ($_REQUEST['chart_type_id'] == "client") {
            $sql13 = "select * from client_master";
        }
        $result13 = mysqli_query($conn, $sql13);
        $i = 0;
        while ($row13 = mysqli_fetch_array($result13)) {
            if ($_REQUEST['chart_type_id'] == "department") {
                $arr['par'][$i] = $row13['dept_name'];
            } else if ($_REQUEST['chart_type_id'] == "designation") {
                $arr['par'][$i] = $row13['designation_name'];
            } else if ($_REQUEST['chart_type_id'] == "client") {
                $arr['par'][$i] = $row13['client_name'];
            }
            error_log("par dep" . $arr['par'][$i]);
            $arr['genm'][$i] = 0;
            $arr['genf'][$i] = 0;
            $arr['total'][$i] = 0;
            $i++;
        }
        $n = $i;
    }
}




$sql1 = 'select * from checkup_form a left join patient_master b on b.id=a.emp_id where 1';
if (($_REQUEST['rule_start_date'] != "") && ($_REQUEST['rule_end_date'])) {
    $sql1 .= ' and ((checkup_date <' . $_REQUEST['rule_end_date'] . ') and (checkup_date >' . $_REQUEST['rule_start_date'] . '))';
}
if ($_REQUEST['dept'] != "") {
    $sql1 .= ' and dept_id=' . $_REQUEST['dept'] . '';
}
if ($_REQUEST['desig'] != "") {
    $sql1 .= ' and designation_id=' . $_REQUEST['desig'] . '';
}
if ($_REQUEST['cli'] != "") {
    $sql1 .= ' and client_id=' . $_REQUEST['cli'] . '';
}
if ($_REQUEST['ohc_type_id'] != "") {
    $sql1 .= ' and b.ohc_type_id=' . $_REQUEST['ohc_type_id'] . '';
}
error_log("query formed acc to selected filters " . $sql1);
$result1 = mysqli_query($conn, $sql1);

while ($row1 = mysqli_fetch_array($result1)) {

    $checkup_section_ids = explode(",", $row1['checkup_section_ids']);
    error_log("arrtype " . $checkup_section_ids);

    if (in_array($checkup_section, $checkup_section_ids)) {
        $today = date("Y-m-d");
        $age = ($today - $row1['dob']);
        $gender = $row1['gender'];
        if ($_REQUEST['chart_type_id'] == "department") {
            $leo = getTableFieldValue('department', 'dept_name', 'dept_id', $row1['dept_id']);
        } else if ($_REQUEST['chart_type_id'] == "designation") {
            $leo = getTableFieldValue('designation', 'designation_name', 'designation_id', $row1['designation_id']);
        } else if ($_REQUEST['chart_type_id'] == "client") {
            $leo = getTableFieldValue('client_master', 'client_name', 'client_id', $row1['client_id']);
        }

        error_log('leo' . $leo);
        $sql3 = 'select * from rule_equation where rule_eq_id in (' . $row0['rule_equation_ids'] . ')';
        error_log("again running the query for rule_equation " . $sql3);
        if ($_REQUEST['rule_result'] != "") {
            $sql3 .= "and result_disp='" . $_REQUEST['rule_result'] . "'";
        }
        error_log("query formed by adding result value  " . $sql3);
        $result3 = mysqli_query($conn, $sql3);
        while ($row3 = mysqli_fetch_array($result3)) {
            $flag = 0;
            $equation = "";
            $rule_eq_id = $row3['rule_eq_id'];
            error_log("rule_eq_id " . $rule_eq_id);
            error_log("age " . $age);
            $xresult = $row3['result_disp'];
            if (!(($row3['rule_gender'] == null) || ($row3['rule_gender'] == ""))) {
                $a = 1;
                if ($gender != $row3['rule_gender']) {
                    error_log("inside if gender");
                    continue;
                }
            }
            if (($row3['rule_age_start'] > $age) && ($row3['rule_age_end'] < $age)) {
                $b = 1;
                error_log("inside if age");
                continue;
            }

            error_log("age " . $age);
            $sql4 = "select * from rule_save where equation_rule_id = '" . $row3['rule_eq_id'] . "'";
            error_log("selecting everything from rule save  " . $sql4);
            $result4 = mysqli_query($conn, $sql4);
            while ($row4 = mysqli_fetch_array($result4)) {
                $checkup_parameter = getTableFieldValue('checkup_parameter', 'column_name', 'checkup_parameter_id', $row4['checkup_parameter']);
                error_log("checkup_parameter " . $checkup_parameter);
                $condition = getTableFieldValue('rule_condition', 'condition_sy', 'rule_condition_id', $row4['condition_id']);
                error_log("condition " . $condition);
                $joiner = getTableFieldValue('rule_joiner', 'joiner_sy', 'rule_joiner_id', $row4['joiner_id']);
                error_log("joiner " . $joiner);
                //need change
                // $abc=$_REQUEST[$checkup_parameter];
                $sql5 = "select * from checkup_form_key_value where checkup_form_id = '" . $row1['checkup_id'] . "' and checkup_form_key = '" . $checkup_parameter . "'";
                error_log("sql6 " . $sql5);
                $result5 = mysqli_query($conn, $sql5);
                $row5 = mysqli_fetch_array($result5);

                $abc = $row5['checkup_form_value'];
                error_log("value " . $abc);
                if ($abc == "") {
                    $flag = 1;
                    break;
                } else {
                    $equation = $equation . $joiner . $row4['op_br'] . $abc . $condition . $row4['rule_s_val'] . $row4['cl_br'];
                    // error_log("equation " . $equation);
                }
            }
            if ($flag == 0) {
                error_log("equation " . $equation);
                error_log("arrtype " . gettype($equation));
                eval('$resultr = (' . $equation . ');');
                error_log("result " . $resultr);

                if ($resultr == true || $resultr == 1) {
                    if ($_REQUEST['rule_result'] == "") {
                        for ($i = 0; $i < $n; $i++) {
                            if ($arr['par'][$i] == $xresult) {
                                error_log('inside if par');
                                if ($gender == 'M') {
                                    $arr['genm'][$i] += 1;
                                } else if ($gender == 'F') {
                                    $arr['genf'][$i] += 1;
                                }
                                $arr['total'][$i] += 1;
                                error_log('tot' . $arr['total'][$j]);
                            }
                        }
                    } else {
                        if ($_REQUEST['chart_type_id'] == "") {
                            for ($i = 0; $i < $n; $i++) {
                                if ((($arr['agerange'][$i][0] <= $age) && ($arr['agerange'][$i][1] >= $age))) {
                                    error_log('age' . $age);
                                    error_log("arr " . $arr['agerange'][$i][0]);
                                    error_log("arr " . $arr['agerange'][$i][1]);
                                    error_log("calculate results");
                                    if ($gender == 'M') {
                                        $arr['genm'][$i] += 1;
                                    } else if ($gender == 'F') {
                                        $arr['genf'][$i] += 1;
                                    }
                                    $arr['total'][$i] += 1;
                                }
                            }
                        } else if (($_REQUEST['chart_type_id'] == "department") || ($_REQUEST['chart_type_id'] == "designation") || ($_REQUEST['chart_type_id'] == "client")) {
                            for ($i = 0; $i < $n; $i++) {
                                if ($arr['par'][$i] == $leo) {
                                    error_log('inside dep par' . $arr['par'][$i]);
                                    if ($gender == 'M') {
                                        $arr['genm'][$i] += 1;
                                    } else if ($gender == 'F') {
                                        $arr['genf'][$i] += 1;
                                    }
                                    $arr['total'][$i] += 1;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

$data = array();
if ($_REQUEST['rule_result'] == "") {
    if ($_POST["rule_gender"] == "") {
        for ($m = 0; $m < $n; $m++) {
            error_log('par' . $arr['par'][$m]);
            error_log('par' . $arr['total'][$m]);
            $data[] = array(
                'language'      =>  $arr['par'][$m],
                'total'         =>  $arr['total'][$m],
                'color'         =>  '#' . rand(100000, 999999) . ''
            );
        }
    } else if ($_POST["rule_gender"] == "M") {
        for ($m = 0; $m < $n; $m++) {
            $data[] = array(
                'language'      =>  $arr['par'][$m],
                'total'         =>  $arr['genm'][$m],
                'color'         =>  '#' . rand(100000, 999999) . ''
            );
        }
    } else if ($_POST["rule_gender"] == "F") {
        for ($m = 0; $m < $n; $m++) {
            $data[] = array(
                'language'      =>  $arr['par'][$m],
                'total'         =>  $arr['genf'][$m],
                'color'         =>  '#' . rand(100000, 999999) . ''
            );
        }
    }
} else {
    if ($_REQUEST['chart_type_id'] == "") {
        $sig = '-';
        if ($_POST["rule_gender"] == "") {
            for ($m = 0; $m < $n; $m++) {
                $data[] = array(
                    'language'      =>  $arr['agerange'][$m][0] . $sig . $arr['agerange'][$m][1],
                    'total'         =>  $arr['total'][$m],
                    'color'         =>  '#' . rand(100000, 999999) . ''
                );
            }
        }
        if ($_POST["rule_gender"] == "M") {
            for ($m = 0; $m < $n; $m++) {
                $data[] = array(
                    'language'      =>  $arr['agerange'][$m][0] . $sig . $arr['agerange'][$m][1],
                    'total'         =>  $arr['genm'][$m],
                    'color'         =>  '#' . rand(100000, 999999) . ''
                );
            }
        } else if ($_POST["rule_gender"] == "F") {
            for ($m = 0; $m < $n; $m++) {
                $data[] = array(
                    'language'      =>  $arr['agerange'][$m][0] . $sig . $arr['agerange'][$m][1],
                    'total'         =>  $arr['genf'][$m],
                    'color'         =>  '#' . rand(100000, 999999) . ''
                );
            }
        }
    } else if (($_REQUEST['chart_type_id'] == "department") || ($_REQUEST['chart_type_id'] == "designation") || ($_REQUEST['chart_type_id'] == "client")) {
        if ($_POST["rule_gender"] == "") {
            for ($m = 0; $m < $n; $m++) {
                error_log('par' . $arr['par'][$m]);
                error_log('par' . $arr['total'][$m]);
                $data[] = array(
                    'language'      =>  $arr['par'][$m],
                    'total'         =>  $arr['total'][$m],
                    'color'         =>  '#' . rand(100000, 999999) . ''
                );
            }
        } else if ($_POST["rule_gender"] == "M") {
            for ($m = 0; $m < $n; $m++) {
                $data[] = array(
                    'language'      =>  $arr['par'][$m],
                    'total'         =>  $arr['genm'][$m],
                    'color'         =>  '#' . rand(100000, 999999) . ''
                );
            }
        } else if ($_POST["rule_gender"] == "F") {
            for ($m = 0; $m < $n; $m++) {
                $data[] = array(
                    'language'      =>  $arr['par'][$m],
                    'total'         =>  $arr['genf'][$m],
                    'color'         =>  '#' . rand(100000, 999999) . ''
                );
            }
        }
    }
}




error_log("years" . $years[0]);
error_log("years" . $years[1]);





echo json_encode($data);