Skip to content

Instantly share code, notes, and snippets.

@moda253
Created August 30, 2022 13:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moda253/900fdd79f73b06cead370e3dd01e8fbb to your computer and use it in GitHub Desktop.
Save moda253/900fdd79f73b06cead370e3dd01e8fbb to your computer and use it in GitHub Desktop.
update and delete operations not working
<?
require "../validation/session.php";
$section = 'Dispatch-View Employee Vehicle Route Link';
require "../validation/section_check.php";
require "../functions/dbconn.php";
/* ******** Grid4PHP ******** */
//require_once("../gridphp-free-latest/config.php");
require_once("../gridphp-full-v2.8/config.php");
// include and create object
//include(PHPGRID_LIBPATH."inc/jqgrid_dist.php");
include("../gridphp-full-v2.8/lib/inc/jqgrid_dist.php");
$db_conf = array(
"type" => PHPGRID_DBTYPE,
"server" => PHPGRID_DBHOST,
"user" => PHPGRID_DBUSER,
"password" => PHPGRID_DBPASS,
"database" => PHPGRID_DBNAME
);
$g = new jqgrid($db_conf);
// set few params
$opt["caption"] = "Employee Vehicle Route Link";
$opt["sortname"] = "e.lname ASC,e.fname ASC,e.middle_initial";
$opt["sortorder"] = "asc";
$opt["add_options"]["success_msg"] = "Link added";
$opt["delete_options"]["success_msg"] = "Link updated";
//for default filter
$opt["search"] = true;
$opt["postData"] = array("filters" => $sarr );
$opt["rowNum"] = 99999;
$g->set_options($opt);
if (in_array('Dispatch-View Employee Vehicle Route Link', $_SESSION['sections_list']))
{ $g->set_actions(array("view"=>true));
}else{
$g->set_actions(array("view"=>false));
}
if (in_array('Dispatch-Add Employee Vehicle Route Link', $_SESSION['sections_list']))
{ $g->set_actions(array("add"=>true));
}else{
$g->set_actions(array("add"=>false));
}
if (in_array('Dispatch-Edit Employee Vehicle Route Link', $_SESSION['sections_list']))
{ $g->set_actions(array("edit"=>true));
}else{
$g->set_actions(array("edit"=>false));
}
if (in_array('Dispatch-Delete Employee Vehicle Route Link', $_SESSION['sections_list']))
{ $g->set_actions(array("delete"=>true));
}else{
$g->set_actions(array("delete"=>false));
}
$g->set_actions(array(
"clone"=>false,
"bulkedit"=>false,
"rowactions"=>false,
"bulkedit"=>false,
"export_excel"=>true,
"export_pdf"=>true,
"export_csv"=>true,
"import"=>false,
"autofilter" => true,
"search" => "simple",
"inlineadd" => false,
"showhidecolumns" => true
));
// set database table for CRUD operations
$g->table = "employee_vehicle_route_link";
$g->select_command = "
select
evrl.employee_sak,
evrl.vehicle_sak,
evrl.routes_sak,
e.fname,
e.lname,
e.middle_initial,
concat(lname,', ',fname,' ',middle_initial) as concat_name,
v.vehicle_id,
r.route_name,
r.route_number
from
employee_vehicle_route_link evrl
inner join employee e
on evrl.employee_sak = e.employee_sak
inner join vehicles v
on evrl.vehicle_sak = v.vehicle_sak
inner join routes r
on evrl.routes_sak = r.routes_sak
";
//EMPLOYEE_VEHICLE_LINK_SAK
$col = array();
$col["title"] = "Employee Vehicle Link Sak"; // caption of column, can use HTML tags too
$col["name"] = "employee_vehicle_link_sak"; // grid column name, same as db field or alias from sql
$col["show"] = array("list"=>false, "add"=>false, "edit"=>false, "view"=>true, "bulkedit"=>false);
$col["editable"] = true;
$col["hidden"] = true;
$col["hidedlg"] = true;
$col["export"] = false;
$cols[] = $col;
//URL
$col = array();
$col["title"] = "Name (search lname)"; // caption of column, can use HTML tags too
$col["name"] = "concat_name"; // grid column name, same as db field or alias from sql
$col["dbname"] = "concat(lname,', ',fname,' ',middle_initial)";
$col["show"] = array("list"=>true, "add"=>false, "edit"=>false, "view"=>true, "bulkedit"=>false);
$col["template"] = "<a href='#' onclick='goEmployeeProfile({employee_sak})'>{concat_name}</a>";
$col["editable"] = false;
$col["search"] = true;
$col["export"] = false;
$cols[] = $col;
//EMPLOYEE_SAK
$col = array();
$col["title"] = "Employee"; // caption of column, can use HTML tags too
$col["name"] = "employee_sak"; // grid column name, same as db field or alias from sql
$col["show"] = array("list"=>false, "add"=>true, "edit"=>true, "view"=>false, "bulkedit"=>false);
$col["editable"] = true;
$col["editrules"] = array("required"=>true);
$col["hidden"] = false;
$col["hidedlg"] = false;
$col["edittype"] = "lookup";
//$col["editoptions"]["sql"] = "select employee_sak as k, concat(lname,', ',fname) as v from employee where status = 'Active' order by lname, fname";
# on change, update other dropdown
$str = $g->get_dropdown_values("select employee_sak as k, concat(lname,', ',fname) as v from employee where status = 'Active' order by lname, fname");
$col["editoptions"] = array(
"value"=>":;".$str,
"onchange" => array( "sql"=>"
select distinct
vehicle_sak as k,
concat(vehicle_id,' - ', type) as v
from
vehicles
inner join vehicle_types
on vehicles.type = vehicle_types.type_name
inner join role_types
on vehicle_types.type_name = role_types.vehicle_type_name
inner join roles
on role_types.role_type_sak = roles.role_type_sak
inner join employee
on roles.employee_sak = employee.employee_sak
WHERE
employee.employee_sak = '{employee_sak}'
order by vehicles.vehicle_id ASC",
"update_field" => "vehicle_sak" )
);
$col["formatter"] = "select"; // display label, not value
/*
$col["stype"] = "select"; // enable dropdown search
$col["searchoptions"] = array("value" => ":;".$str);
*/
$col["search"] = true;
$opt["responsive"] = true;
$col["export"] = false;
$cols[] = $col;
//VEHICLE_SAK
$col = array();
$col["title"] = "Vehicle"; // caption of column, can use HTML tags too
$col["name"] = "vehicle_sak"; // grid column name, same as db field or alias from sql
$col["dbname"] = "evrl.vehicle_sak"; // grid column name, same as db field or alias from sql
$col["show"] = array("list"=>true, "add"=>true, "edit"=>true, "view"=>false, "bulkedit"=>false);
$col["editable"] = true;
$col["hidden"] = false;
$col["hidedlg"] = false;
$col["edittype"] = "lookup";
$col["editrules"] = array("required"=>true);
$col["editoptions"]["sql"] = "select vehicle_sak as k, concat(vehicle_id,' ',type) as v from vehicles order by vehicle_id";
$col["export"] = false;
$cols[] = $col;
//ROUTE_SAK
$col = array();
$col["title"] = "Route"; // caption of column, can use HTML tags too
$col["name"] = "routes_sak"; // grid column name, same as db field or alias from sql
$col["dbname"] = "evrl.routes_sak"; // grid column name, same as db field or alias from sql
$col["show"] = array("list"=>true, "add"=>true, "edit"=>true, "view"=>false, "bulkedit"=>false);
$col["editable"] = true;
$col["hidden"] = false;
$col["hidedlg"] = false;
$col["edittype"] = "lookup";
$col["editrules"] = array("required"=>true);
$col["editoptions"]["sql"] = "select routes_sak as k, concat(route_number,' ',route_name) as v from routes order by route_number";
$col["export"] = false;
$cols[] = $col;
// pass the cooked columns to grid
$g->set_columns($cols);
// Transactions operations
// add transaction after insert
$e["on_after_insert"] = array("insert_add_transaction", null, true);
$g->set_events($e);
function insert_add_transaction($data)
{
global $g;
$g->execute_query("INSERT INTO transactions
(item_sak
, item_type
,transtype
,transcode
,trans_date
,trans_detail
, performed_by)
VALUES
((select max(employee_vehicle_link_sak) from employee_vehicle_link)
, 'dispatch'
, 'EVRL'
, '001'
, NOW()
, 'Employee Sak = {$data['params']['employee_sak']},
Vehicle Sak = {$data['params']['vehicle_sak']},
Route Sak = {$data['params']['route_sak']}'
, $_SESSION[accounts_sak]
)"
);
}
//add transaction record after update
$e["on_update"] = array("insert_edit_transaction", null, true);
$g->set_events($e);
function insert_edit_transaction($data)
{
global $g;
$g->execute_query("INSERT INTO transactions
(item_sak
, item_type
,transtype
,transcode
,trans_date
,trans_detail
, performed_by)
VALUES
({$data["employee_vehicle_link_sak"]}
, 'dispatch'
, 'EVRL'
, '002'
, NOW()
, 'Employee Sak = {$data['params']['employee_sak']},
Vehicle Sak = {$data['params']['vehicle_sak']},
Route Sak = {$data['params']['vehicle_sak']}'
, $_SESSION[accounts_sak]
)"
);
}
//add transaction record after delete
$e["on_delete"] = array("insert_delete_transaction", null, true);
$g->set_events($e);
function insert_delete_transaction($data)
{
global $g;
$g->execute_query("INSERT INTO transactions
(item_sak
, item_type
,transtype
,transcode
,trans_date
,trans_detail
, performed_by)
VALUES
({$data["employee_vehicle_link_sak"]}
, 'dispatch'
, 'EVRL'
, '003'
, NOW()
, 'Item was deleted'
, $_SESSION[accounts_sak]
)"
);
}
// render grid and get html/js output
$out = $g->render("list");
/* ******** Grid4PHP ******** */
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Lake Country Transportation Management Tools</title>
<link href="../css/style.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.1/css/all.css">
<link href="../css/div_table_style.css" rel="stylesheet" type="text/css">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<!-- these css and js files are required by php grid -->
<link rel="stylesheet" href="../gridphp-full-v2.8/lib/js/themes/smoothness/jquery-ui.custom.css"></link>
<link rel="stylesheet" href="../gridphp-full-v2.8/lib/js/jqgrid/css/ui.jqgrid.css"></link>
<script src="../gridphp-full-v2.8/lib/js/jquery.min.js" type="text/javascript"></script>
<script src="../gridphp-full-v2.8/lib/js/jqgrid/js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="../gridphp-full-v2.8/lib/js/jqgrid/js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="../gridphp-full-v2.8/lib/js/themes/jquery-ui.custom.min.js" type="text/javascript"></script>
<!-- these css and js files are required by php grid -->
<style>
/* error message */
.error_display {
color: red;
}
/* next three lines are for phpgrid */
.ui-jqgrid tr.ui-row-ltr td { border-right-style:inherit !important; }
.ui-jqgrid tr.ui-row-rtl td { border-left-style:inherit !important; }
.ui-jqgrid .ui-jqgrid-pager .ui-pager-control > .ui-pg-table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1) {display:none};
</style>
<script>
function goEmployeeProfile(whichId){
//alert(whichId);
document.getElementById('employee_sak').value=whichId;
document.employee.submit();
}
</script>
</head>
<body class="loggedin">
<?
print '
<form name="employee" method="post" action="ViewEmployeeProfile.php">
<input type="hidden" name="nav_loc" value="Employee">
<input type="hidden" name="section_loc" value="ViewEmployeeProfile">
<input type="hidden" name="employee_sak" id="employee_sak" value="">
<input type="hidden" name="concat_name" id="concat_name" value="">
<input type="hidden" name="employee_id" id="employee_id" value="">
</form>';
// Display the Navbar
include("../navigation/navbar.php");
// container div for the page
echo '<div style="margin-left:2.5%;margin-right:2.5%;margin-bottom:2.5%;">';
?>
<div style="height: 7%">
<?
echo $out;
?>
</div>
<?
echo "</div>"
?>
</body>
</html>
<?
$con->close();
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment