ESH/Hira_Form.php

531 lines
19 KiB
PHP
Raw Permalink Normal View History

2024-10-23 18:28:06 +05:30
<?php include('techsyn_header.php'); ?>
<!-- Main Content Container for side bar and body-->
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try {
ace.settings.loadState('main-container')
} catch (e) {}
</script>
<?php include('techsyn_sidebar.php'); ?>
<!--breadcrumb-->
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="#">Home</a>
</li>
<li class="active">HIRA Form</li>
</ul>
</div>
<!-- End of breadcrumb -->
<div class="page-content">
<div class="box box-primary center" style="padding: 10px; margin: 2px 0px 50px 5px; width: 99.5%; ">
<form id="hazard_form" method="post">
<!-- End box-body-->
<!--End box-footer-->
</form>
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try {
ace.settings.loadState('main-container')
} catch (e) {}
</script>
<!--breadcrumb-->
<div class="main-content">
<div class="main-content-inner">
<!-- End of breadcrumb -->
<div class="page-content" style="margin-top: -47px">
<div id="flexigridDiv" class="table-responsive">
<form name="f1" method="post" id="flex_hira_form" action="hira_excel.php">
<div id="flex1" style="width:100%">
<input type="hidden" name="flex_hira_id" id="flex_hira_id" />
</div>
</form>
<form name="export_form" method="post" id="export_form" action="">
<input type="hidden" name="pdf_actions" id="pdf_actions" value="hira_pdf.php" />
<input type="hidden" name="excel_actions" id="excel_actions" value="hira_excel.php" />
</form>
</div>
</div>
</div>
</div>
</div><!-- /.main-content -->
<script type="text/javascript">
$(function() {
var w = screen.width * .90;
var h = 0;
h = (window.innerHeight - ($("#navbar").height() + $(".breadcrumbs").height())) * .75;
$("#flex1").flexigrid({
url: 'hazard_report_form_script\.php?status=pending',
dataType: 'json',
colModel: [{
display: '',
name: '',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Sr',
name: 'id',
width: w * .04,
sortable: false,
align: 'left'
},
{
display: 'Activity/Situation',
name: 'activity_situation',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Hazard Category',
name: 'hazard_category',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Hazard Identified',
name: 'hazard_identified',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Activity Type',
name: 'activity_type',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Hazard Condition',
name: 'hazard_condition',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Risk Exposure',
name: 'risk_exposure',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Date and Time',
name: 'date_time',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Department',
name: 'department',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Location',
name: 'location',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Identified By',
name: 'identified_by',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Remarks',
name: 'remarks',
width: w * .1,
sortable: true,
align: 'left'
},
{
display: 'Status',
name: 'status',
width: w * .1,
sortable: true,
align: 'left',
},
],
buttons: [
{
name: 'Add New Entry' ,
bclass: 'add',
onpress: add
},
{
name: 'PDF',
bclass: 'print',
onpress: pdf
},
{
separator: true
},
{
name: 'Excel',
bclass: 'print_excel',
onpress: excel
},
{
separator: true
}
],
searchitems: [{
display: 'Hazard Category',
name: 'hazard_category',
isdefault: true
},
{
display: 'Identified By',
name: 'identified_by'
},
{
display: 'Location',
name: 'location'
},
],
sortname: "id",
sortorder: "asc",
usepager: true, //pagination
useRp: true,
rp: 50, //records per page
showTableToggleBtn: false, //toggle button for the whole table
resizable: true,
height: h,
singleSelect: true
});
});
function addDirect() {
location.href = "hazard_report_form.php";
}
function add() {
location.href = "hazard_report_form.php";
}
function delete_hazard(id) {
$("#flex_hira_id").val(id);
BootstrapDialog.confirm('Are you sure to delete the Hazard?', function(result) {
if (result) {
$.ajax({
url: 'delete_hira.php',
type: "POST",
data: {
id: id
}, // Directly sending the id as POST data
success: function(data) {
if (data.indexOf("SUCCESS") != -1) {
BootstrapDialog.alert('Hazard Deleted Successfully.');
$("#flex1").flexReload();
} else {
BootstrapDialog.alert('Error Deleting Hazard');
}
},
error: function(data) {
BootstrapDialog.alert('Error Deleting Hazard');
}
});
}
});
}
function open_hazard(id, action) {
if (action == "V") {
$("#save_button").hide();
} else {
$("#save_button").show();
}
$.ajax({
url: 'select_hira.php?id=' + id,
type: 'POST',
success: function(data) {
var data = $.parseJSON(data);
$("#id").val(data.id);
$("#hazard_category").val(data.hazard_category);
$("#hazard_description").val(data.hazard_description);
$("#location").val(data.location);
$("#identification_date").val(data.identification_date);
$("#likelihood").val(data.likelihood);
$("#severity").val(data.severity);
$("#risk_score").val(data.risk_score);
$("#risk_level").val(data.risk_level);
$("#control_measures").val(data.control_measures);
$("#control_date").val(data.control_date);
$("#review_date").val(data.review_date);
$("#status").val(data.status);
$('#modal-add-hazard').modal("show");
},
error: function(data) {
BootstrapDialog.alert('Error Populating Hazard');
return;
}
});
}
function pdf() {
window.open('hira_pdf.php', 'Report List');
}
function excel() {
window.open('hira_excel.php', 'Report List');
}
$("#new_button").on("click", function() {
$("id").val("");
});
</script>
<?php include('techsyn_footer.php'); ?>
</div>
<!-- End of page-content -->
</div>
</div>
</div>
<script>
function getLikelihoodValue(likelihood) {
switch (likelihood) {
case 'rare':
return 1;
case 'unlikely':
return 2;
case 'possible':
return 3;
case 'likely':
return 4;
case 'almost certain':
return 5;
default:
return 0;
}
}
function getSeverityValue(severity) {
switch (severity) {
case 'negligible':
return 1;
case 'minor':
return 2;
case 'moderate':
return 3;
case 'major':
return 4;
case 'catastrophic':
return 5;
default:
return 0;
}
}
function calculateRiskScore() {
var likelihood = $('#likelihood').val();
var severity = $('#severity').val();
var likelihoodValue = getLikelihoodValue(likelihood);
var severityValue = getSeverityValue(severity);
var riskScore = likelihoodValue * severityValue;
$('#risk_score').val(riskScore);
var riskLevel = getRiskLevel(riskScore);
$('#risk_level').val(riskLevel);
}
function getRiskLevel(riskScore) {
if (riskScore <= 5) return 'Low';
if (riskScore <= 10) return 'Moderate';
if (riskScore <= 15) return 'High';
return 'Very High';
}
function validate() {
var hazard_category = $('#hazard_category').val();
if (hazard_category == '') {
BootstrapDialog.alert('Please Enter Hazard Category.');
return false;
}
var hazard_description = $('#hazard_description').val();
if (hazard_description == '') {
BootstrapDialog.alert('Please Enter Hazard Description.');
return false;
}
var location = $('#location').val();
if (location == '') {
BootstrapDialog.alert('Please Enter Location.');
return false;
}
var identification_date = $('#identification_date').val();
if (identification_date == '') {
BootstrapDialog.alert('Please Enter Identification Date.');
return false;
}
var likelihood = $('#likelihood').val();
if (likelihood == '') {
BootstrapDialog.alert('Please Select Likelihood.');
return false;
}
var severity = $('#severity').val();
if (severity == '') {
BootstrapDialog.alert('Please Select Severity.');
return false;
}
calculateRiskScore(); // Automatically calculate the risk score before submission
var risk_score = $('#risk_score').val();
if (risk_score == '' || risk_score == '0') {
BootstrapDialog.alert('Invalid Risk Score.');
return false;
}
var risk_level = $('#risk_level').val();
if (risk_level == '') {
BootstrapDialog.alert('Invalid Risk Level.');
return false;
}
var control_measures = $('#control_measures').val();
if (control_measures == '') {
BootstrapDialog.alert('Please Enter Control Measures.');
return false;
}
var control_date = $('#control_date').val();
if (control_date == '') {
BootstrapDialog.alert('Please Enter Control Date.');
return false;
}
var review_date = $('#review_date').val();
if (review_date == '') {
BootstrapDialog.alert('Please Enter Review Date.');
return false;
}
var status = $('#status').val();
if (status == '') {
BootstrapDialog.alert('Please Select Status.');
return false;
}
save_hazard();
}
</script>
<style>
#modal-add-hazard {
overflow-y: scroll;
}
</style>
<?php include('techsyn_footer.php'); ?>
<script type="text/javascript">
function save_hazard() {
$.ajax({
url: 'save_hira.php',
type: 'POST',
data: $("#hazard_form").serialize(),
success: function(data) {
BootstrapDialog.alert('Hazard Saved Successfully');
$("#flex1").flexReload(); // Reload data in flex grid, if applicable
return;
},
error: function(data) {
BootstrapDialog.alert('Error Saving Hazard');
return;
}
});
$('.close').click();
}
</script>
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="assets/css/chosen.min.css" />
<link rel="stylesheet" href="assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="assets/css/bootstrap-timepicker.min.css" />
<link rel="stylesheet" href="assets/css/daterangepicker.min.css" />
<link rel="stylesheet" href="assets/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" href="assets/css/bootstrap-colorpicker.min.css" />
<script type="text/javascript" src="js/typeahead.bundle.js"></script>
<script src="assets/js/jquery-ui.custom.min.js"></script>
<script src="assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="assets/js/chosen.jquery.min.js"></script>
<script src="assets/js/spinbox.min.js"></script>
<script src="assets/js/bootstrap-datepicker.min.js"></script>
<script src="assets/js/bootstrap-timepicker.min.js"></script>
<script src="assets/js/jquery.dataTables.min.js"></script>
<script src="assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="assets/js/dataTables.buttons.min.js"></script>
<script src="assets/js/buttons.flash.min.js"></script>
<script src="assets/js/buttons.html5.min.js"></script>
<script src="assets/js/buttons.print.min.js"></script>
<script src="assets/js/buttons.colVis.min.js"></script>
<script src="assets/js/dataTables.select.min.js"></script>
<script src="assets/js/moment.min.js"></script>
<script src="assets/js/daterangepicker.min.js"></script>
<script src="assets/js/bootstrap-datetimepicker.min.js"></script>
<script src="assets/js/bootstrap-colorpicker.min.js"></script>
<script src="assets/js/jquery.knob.min.js"></script>
<script src="assets/js/autosize.min.js"></script>
<script src="assets/js/jquery.inputlimiter.min.js"></script>
<script src="assets/js/jquery.maskedinput.min.js"></script>
<script src="assets/js/bootstrap-tag.min.js"></script>
<script src="assets/js/ace-elements.min.js"></script>