csrtechnew.ohctech.in/vendor_quotation_list_script.php
2025-08-29 16:30:39 +05:30

267 lines
11 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 MySQL database
$page = 1; // The current page
$sortname = 'indent_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']);
}
// Setup sort and search SQL using posted data
//echo $menu_key=$_REQUEST['pagekey'];
$hasReadAccess = isAccessible($_SESSION['RoleId'], $menu_key, 'R');
$hasWriteAccess = isAccessible($_SESSION['RoleId'], $menu_key, 'W');
$hasExecuteAccess = isAccessible($_SESSION['RoleId'], $menu_key, 'E');
$role_id = $_SESSION['RoleId'];
$role_code = getTableFieldValue('role_master', 'role_code', 'role_id', $role_id);
error_log('rolecode..' . $role_code);
$status = '';
if ($role_code == 'HPUS') {
$status .= "indent_id in ( select indent_id from quotation_list where status='SUP_APPROVED')";
} elseif ($role_code == 'HOD') {
$status .= "indent_id in ( select indent_id from quotation_list where status='HSUP_APPROVED')";
} else {
$status .= "indent_id in ( select indent_id from quotation_list where ( status='DRAFT_VENDOR_RATE' or status='APPROVED_VENDOR_RATE' ))";
}
$sortSql = "order by $sortname $sortorder";
$searchSql = ($qtype != '' && $query != '') ? " and upper($qtype) like upper('%$query%')" : '';
// if ($searchSql != '') {
// if ($qtype == 'indent_date') {
// $searchSql = " and date_format(date(indent_date),'%Y-%m-%d')=str_to_date('$query','%d/%m/%Y') ";
// //echo $searchSql;
// }
// }
// Get total count of records
// $searchSql=preg_replace('/and/', 'where', $searchSql, 1);
/*$user_id=$_SESSION['user_id'];
$ohc_type=getTableFieldValue('tbl_users','ohc_type','user_id',$user_id);*/
// Get total count of records
//$searchSql=preg_replace('/and/', 'where', $searchSql, 1);
$sql = "select count(*) from indent_master where $status $searchSql $sortSql";
//echo $sql;
$result = mysqli_query($conn, $sql);
//echo $result;
$row = mysqli_fetch_array($result);
$total = $row[0];
if (!isset($rp)) {
$rp = 10;
}
// Setup paging SQL
//$rp=1;
$pageStart = ($page - 1) * $rp;
$limitSql = "limit $pageStart, $rp";
// Return JSON data
$data = array();
$data['page'] = $page;
$data['total'] = $total;
$data['rows'] = array();
$sql1 = "select indent_id,indent_ref_no,indent_date,remarks,status,approval_date,approval_remarks,ohc_type_id from indent_master where $status";
error_log('sup q pending ' . $sql1);
$sql_export = $sql1;
$sql1 .= " $searchSql $sortSql $limitSql ";
$sql_export .= " $searchSql $sortSql ";
//echo $sql1;
$results = mysqli_query($conn, $sql1);
//echo $results;
//echo mysqli_error($results);
$count = ($page - 1) * $rp + 1;
//echo $sql_ailment;
//echo $access_level;
while ($row1 = mysqli_fetch_assoc($results)) {
$id = $row1['indent_id'];
$ohc_location = getFieldFromTable('ohc_type_name', 'ohc_type', 'ohc_type_id', $row1['ohc_type_id']);
//echo $Department_id;
$view_link = "";
$edit_link = "";
$delete_link = "";
$status_update_link = "";
$links = "";
$pdf_link = '';
if ($row1['status'] == 'APPROVED_VENDOR_RATE' || $row1['status'] == 'SUP_APPROVED') {
$task = 'R';
} else $task = 'E';
if ($hasExecuteAccess) {
//echo "shubham";
$pdf_link = $space . "<a href=\"#\" class=\"red\" title=\"Quotation Comparison Report\" onclick=\"exporttopdf_common('" . $row1['indent_id'] . "');\"><i class=\"fa fa-file-pdf-o\" style=\"font-size: 15px;\"></i></a>";
$edit_link = "<a href=\"#\"class=\"red\" onclick=\"open_requisition('" . $id . "','" . $task . "');\"><i class=\"ace-icon fa fa-edit bigger-130\"></i></a>";
}
$sup_doc = "";
$sup_not_approved_item = 0;
$items_status = array();
$sql_sup = "select indent_doc_id,indent_doc_des from indent_doc where indent_id='" . $row1['indent_id'] . "'";
error_log("indent po_sql" . $sql_sup);
$result_sup = mysqli_query($conn, $sql_sup);
while ($row_sup = mysqli_fetch_assoc($result_sup)) {
$title_doc = $row_sup['indent_doc_des'];
$sup_doc .= "<a target=\"_blank\" title=\"$title_doc\" href='getSupDocLink.php?id=" . $row_sup['indent_doc_id'] . "' class=\"red\"><i class=\"ace-icon fa fa-file-pdf-o bigger-130\"></i></a>" . $space;
}
$app_rem = $row1['approval_remarks'];
$total_price = 0;
$item_desc = "";
$item_qty = "";
$sup_not_approved_item = 0;
$items_status = array();
$indent_ref_no = "<a href=\"#\" class=\"blue\" onclick=\"open_indent_items_pdf('" . $id . "');\">" . $row1['indent_ref_no'] . "</a>";
$sql_q = "select * from indent_items where indent_id='" . $row1['indent_id'] . "'";
error_log("indent sql" . $sql_q);
$result = mysqli_query($conn, $sql_q);
$rfq_arr = array();
$rfq_no = '';
while ($row2 = mysqli_fetch_assoc($result)) {
array_push($rfq_arr, $row2['item_rfq_no']);
$item_qty = $row2['indent_qty'];
$item_id = $row2['item_id'];
$rate = getTableFieldValue('item_rate', 'item_rate', 'item_id', $item_id);
$unit = getTableFieldValue('item_rate', 'unit', 'item_id', $item_id);
if ($unit == 0 || $unit == '') {
$ratePerUnit = 0;
} else {
$ratePerUnit = round($rate / $unit, 2);
}
$total_price += ($ratePerUnit * $item_qty);
}
$space = "&nbsp;&nbsp;&nbsp;";
$rfq_arr = array_unique($rfq_arr);
error_log('rrr' . print_r($rfq_arr, true));
for ($r = 0; $r < count($rfq_arr); $r++) {
$rfq_no .= "<a href=\"#\" class=\"green\" onclick=\"open_rfq_items_pdf('" . $rfq_arr[$r] . "','" . $contractor_id . "');\">" . $rfq_arr[$r] . "</a>&nbsp;&nbsp;&nbsp;&nbsp";
}
$qts = '';
$sql_qt = "SELECT DISTINCT(`quotation_no`) as quotation_no,a.status,a.`vendor_id`,b.employer_contractor_name FROM `quotation_list` a left join employer_contractor b on a.vendor_id=b.id where a.indent_id='" . $row1['indent_id'] . "' ";
error_log("indent qt" . $sql_qt);
$result_qt = mysqli_query($conn, $sql_qt);
while ($row_qt = mysqli_fetch_assoc($result_qt)) {
if ($row_qt['quotation_no'] != '' && $row_qt['quotation_no'] != null) {
array_push($items_status, $row_qt['status']);
$qts .= "<a href=\"#\" class=\"green\" onclick=\"open_qt_items_pdf('" . $row_qt['quotation_no'] . "','" . $row_qt['vendor_id'] . "');\">" . $row_qt['quotation_no'] . " ( " . $row_qt['employer_contractor_name'] . " )" . '<br>' . "</a>";
if ($row_qt['status'] == 'APPROVED_VENDOR_RATE') {
$sup_not_approved_item++;
}
}
}
$items_status = array_unique($items_status);
error_log('nonsup' . $sup_not_approved_item);
error_log(' stst ' . print_r($items_status, true));
$fit = "";
if (count($items_status) == 1) {
if ($items_status[0] == 'APPROVED_LEVEL_2') {
$fit = "<span class='green'>PENDING </i></span>";
} else if ($items_status[0] == 'APPROVED_VENDOR_RATE' && $sup_not_approved_item != 0) {
$fit = "<span class='green'>PENDING QUOTATION APPROVAL </i></span>";
} else if ($items_status[0] == 'SUP_APPROVED' && $sup_not_approved_item >= 0) {
if ($role_code == 'HPUS') {
$fit = "<span class='green'>PENDING QUOTATION APPROVAL </i></span>";
} else {
$fit = "<span class='green'>SENT TO HEAD For APPROVAL </i></span>";
}
} else if ($items_status[0] == 'HSUP_APPROVED' && $sup_not_approved_item >= 0) {
if ($role_code == 'HOD') {
$fit = "<span class='green'>PENDING QUOTATION APPROVAL </i></span>";
} else {
$fit = "<span class='green'>SENT TO HEAD For APPROVAL </i></span>";
}
} else {
$fit = "<span class='lighter red'>REJECTED</i></span>";
}
} else {
for ($s = 0; $s < count($items_status); $s++) {
if ($items_status[$s] == 'APPROVED_LEVEL_2' || $items_status[$s] == '') {
$fit .= "<span class='green'>Some ARE PENDING FOR RFQ, </i></span>";
} else if ($items_status[$s] == 'PENDING_RATE' && $sup_not_approved_item != 0) {
$fit .= "<span class='green'>Some ARE PENDING On RFQ </i></span>";
} else if ($items_status[$s] == 'APPROVED_VENDOR_RATE' && $sup_not_approved_item != 0) {
$fit .= "<span class='green'>Some ARE PENDING QUOTATION APPROVAL </i></span>";
} else if ($items_status[$s] == 'SUP_APPROVED' && $sup_not_approved_item >= 0) {
if ($role_code == 'HPUS') {
$fit .= "<span class='green'>Some Are PENDING QUOTATION APPROVAL </i></span>";
} else {
$fit .= "<span class='green'>Some Are SENT TO HEAD For APPROVAL </i></span>";
}
} else if ($items_status[$s] == 'HSUP_APPROVED' && $sup_not_approved_item >= 0) {
if ($role_code == 'HOD') {
$fit .= "<span class='green'>Some Are PENDING QUOTATION APPROVAL </i></span>";
} else {
$fit .= "<span class='green'>Some Are SENT TO HEAD For APPROVAL </i></span>";
}
} else {
$fit .= "<span class='lighter red'>Some Are REJECTED</i></span>";
}
$fit .= $space;
}
}
$links = $edit_link . $space . $pdf_link;
$status = $fit;
$data['rows'][] = array(
'id' => $row1['indent_id'],
'cell' => array($count++, $links, $sup_doc, $ohc_location, date_format(date_create($row1['indent_date']), "d-M-Y "), $indent_ref_no, $qts, round($total_price, 2), $row1['remarks'], $status)
);
}
$data['rows'][] = array(
'id' => $row['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);