csrtechnew.ohctech.in/district_script.php
2025-04-14 13:28:09 +05:30

139 lines
4.6 KiB
PHP

<?php
include('includes/config/config.php');
include('includes/auth/auth.php');
include('includes/functions.php');
include('access.php');
error_reporting(E_ERROR | E_PARSE);
// Connect to mysqli database
$page = 1; // The current page
$sortname = 'id'; // Sort column
$sortorder = 'asc'; // Sort order
$qtype = ''; // Search column
$query = ''; // Search string
// Get posted data
if (isset($_POST['page'])) {
$page = mysqli_real_escape_string($conn, $_POST['page']);
}
if (isset($_POST['sortname'])) {
$sortname = mysqli_real_escape_string($conn, $_POST['sortname']);
}
if (isset($_POST['sortorder'])) {
$sortorder = mysqli_real_escape_string($conn, $_POST['sortorder']);
}
if (isset($_POST['qtype'])) {
$qtype = mysqli_real_escape_string($conn, $_POST['qtype']);
}
if (isset($_POST['query'])) {
$query = mysqli_real_escape_string($conn, $_POST['query']);
}
if (isset($_POST['rp'])) {
$rp = mysqli_real_escape_string($conn, $_POST['rp']);
} else {
$rp = 50; // Default records per page
}
$hasReadAccess = isAccessible($_SESSION['RoleId'], $menu_key, 'R');
$hasWriteAccess = isAccessible($_SESSION['RoleId'], $menu_key, 'W');
$hasExecuteAccess = isAccessible($_SESSION['RoleId'], $menu_key, 'E');
// Debugging output
error_log('hasReadAccess: ' . ($hasReadAccess ? 'true' : 'false'));
error_log('hasWriteAccess: ' . ($hasWriteAccess ? 'true' : 'false'));
error_log('hasExecuteAccess: ' . ($hasExecuteAccess ? 'true' : 'false'));
// Setup sort and search SQL using posted data
$sortSql = "ORDER BY $sortname $sortorder";
// $searchSql = ($qtype != '' && $query != '') ? "WHERE UPPER($qtype) LIKE UPPER('%".trim($query)."%')" : '';
// $searchSql = ($qtype != '' && $query != '') ? "where upper(d.$qtype) like upper('%".trim($query)."%')" : '';
$ohc_type_id = "d.ohc_type_id = ".$_SESSION['current_ohcttype'];
error_log("Check_surch : ".$query);
if ($qtype != '' && $query != '') {
if ($qtype == 'name') {
$searchSql = "WHERE d.name like upper('%".trim($query)."%') ";
} else {
$searchSql = "WHERE UPPER($qtype) LIKE UPPER('%" . trim($query) . "%') ";
}
}else{
$searchSql = '';
}
// Fix potential multiple 'WHERE' clause issue
// $searchSql = preg_replace('/AND/', 'WHERE', $searchSql, 1);
// Get total count of records
$sql = "SELECT COUNT(*) FROM districts d JOIN states s ON d.state_id = s.id $searchSql";
error_log("Main SQL: $sql");
$result = mysqli_query($conn, $sql);
if (!$result) {
error_log('Error in counting records: ' . mysqli_error($conn));
die('{"error": "Database query error"}');
}
$row = mysqli_fetch_array($result);
$total = $row[0];
// Setup paging SQL
$pageStart = ($page-1) * $rp;
$limitSql = "LIMIT $pageStart, $rp";
// Return JSON data
$data = array();
$data['page'] = $page;
$data['total'] = $total;
$data['rows'] = array();
$sql1 = "SELECT d.id AS id, d.name AS name, s.name AS state_id FROM districts d JOIN states s ON d.state_id = s.id $searchSql $sortSql $limitSql";
$sql_export = $sql1;
$results_section = mysqli_query($conn, $sql1);
if (!$results_section) {
error_log('Error in fetching records: ' . mysqli_error($conn));
die('{"error": "Database query error"}');
}
$count = ($page - 1) * $rp + 1;
while ($row1 = mysqli_fetch_assoc($results_section)) {
$district_id = $row1['id']; // Corrected to 'id' instead of 'district_id'
$view_link = $edit_link = $delete_link = $links = "";
if ($hasReadAccess) {
$view_link = "<a href=\"#\" class=\"green\" onclick=\"open_section('$district_id', 'V');\"><i class=\"ace-icon fa fa-search-plus bigger-130\"></i></a>";
}
if ($hasWriteAccess) {
$edit_link = "<a href=\"#\" class=\"blue\" onclick=\"open_section('$district_id', 'E');\"><i class=\"ace-icon fa fa-pencil bigger-130\"></i></a>";
}
if ($hasExecuteAccess) {
$delete_link = "<a href=\"#\" class=\"blue\" onclick=\"delete_section('$district_id');\"><i class=\"ace-icon fa fa-trash-o bigger-130\"></i></a>";
}
$space = "&nbsp;&nbsp;&nbsp;";
$links = $view_link . $space . $edit_link . $space . $delete_link;
$data['rows'][] = array(
'id' => $row1['id'], // Corrected to 'id'
'cell' => array($links,$count++, $row1['name'], $row1['state_id'])
);
}
$paramlist = $paramlist ?? '';
// Adding export options as a hidden row
$data['rows'][] = array(
'id' => 'filterkey',
'cell' => array('', "<input type=hidden name='filterkey' id='filterkey' value=\"" . base64_encode($sql_export) . "\">", "<input type=hidden name=paramlist id=paramlist value=\"" . base64_encode($paramlist) . "\">", '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')
);
echo json_encode($data);
?>