MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 8.0.30
Disabled: exec,passthru,shell_exec,system
Upload Files
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));

?>