File: /home/imensosw/www/imenso.co/demo/org-chart/api/getTree.php
<?php
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json');
//header("Access-Control-Allow-Methods: PUT, GET, POST");
header("Access-Control-Allow-Headers: Origin, Content-Type, Accept");
$content = file_get_contents("php://input");
$_POST = json_decode($content, true);
require('dbConfig.php');
$connection = dbConfig();
$result_rows=array();
$tree = array();
$tree_result = array();
$tree_count = 1;
$data = array();
$post_level = "N1";
$defaultLevel = "N2";
function getSubLevel($position_no,$connection,$group,$sub_division,$department){
$getdata=array();
$sqlQuery = "SELECT n_level,position_no,reporting_to_position_code,sub_division_n3,department_n4 from chart_data WHERE reporting_to_position_no ='".$position_no."'";
if($group!="")
{
$sqlQuery .= " AND group_n1='".$group."'";
}
if($sub_division!="")
{
$sqlQuery .= " AND sub_division_n3='".$sub_division."'";
}
if($department!="")
{
$sqlQuery .= " AND department_n4='".$department."'";
}
$result_data = mysqli_query($connection, $sqlQuery);
if(mysqli_num_rows($result_data))
{
while ($rows = mysqli_fetch_assoc($result_data)) {
$level_name = $rows['n_level'].'_'.$rows['position_no'];
$reporting = $rows['reporting_to_position_code'];
$temp_data = getSubLevel($rows['position_no'], $connection,$group,$sub_division,$department);
if ($temp_data != null) {
$getdata[] = array("id"=>$rows['position_no'],"name"=>$rows['sub_division_n3'], "title"=>$rows['department_n4'], "children"=>$temp_data);
} else {
$getdata[] = array("id"=>$rows['position_no'], "level"=>$rows['n_level'], "name"=>$rows['sub_division_n3'], "title"=>$rows['department_n4']);
}
}
return $getdata;
}
else
{
return '';
}
}
if(isset($_POST['level']) && $_POST['level'] != "N1")
{
$defaultLevel = $_POST['level'];
}
$sqlQuery = "SELECT n_level,position_no,reporting_to_position_code,sub_division_n3,department_n4 from chart_data WHERE n_level NOT IN ('Service', 'Support') and n_level in ('".$defaultLevel."') ";
if(isset($_POST['level']))
{
// $sqlQuery .= " AND n_level='".$_POST['level']."'";
}
if(isset($_POST['group']) && $_POST['group']!="")
{
$sqlQuery .= " AND group_n1='".$_POST['group']."'";
}
if(isset($_POST['sub_division']) && $_POST['sub_division']!="")
{
$sqlQuery .= " AND sub_division_n3='".$_POST['sub_division']."'";
}
if(isset($_POST['department']) && $_POST['department']!="")
{
$sqlQuery .= " AND department_n4='".$_POST['department']."'";
}
$result_data = mysqli_query($connection, $sqlQuery);
if(mysqli_num_rows($result_data))
{
while ($rows = mysqli_fetch_assoc($result_data)) {
$level_name = $rows['n_level'].'_'.$rows['position_no'];
$reporting = $rows['reporting_to_position_code'];
$child_data = getSubLevel($rows['position_no'], $connection,$_POST['group'],$_POST['sub_division'],$_POST['department']);
if($child_data != null) {
$data[] = array("id"=>$rows['position_no'], "name"=>$rows['sub_division_n3'], "title"=>$rows['department_n4'], "children"=>$child_data);
} else {
$data[] = array("id"=>$rows['position_no'], "name"=>$rows['sub_division_n3'], "title"=>$rows['department_n4']);
}
}
}
if(isset($_POST['level']))
{
$post_level = $_POST['level'];
}
if($post_level != "N1")
{
$tree = array("id"=>$_POST['level'], "level"=>"level", "children"=>$data);
}
else
{
$sqlQuery = "SELECT n_level,position_no,reporting_to_position_code,sub_division_n3,department_n4 from chart_data WHERE n_level = 'N1'";
$result_data = mysqli_query($connection, $sqlQuery);
$rows = mysqli_fetch_assoc($result_data);
$tree = array("id"=>$rows['position_no'],"name"=>$rows['sub_division_n3'], "title"=>$rows['department_n4'], "children"=>$data);
}
/*print_r($tree);
die();*/
echo json_encode(array("postlevel"=>$defaultLevel,"data"=>$tree));
?>