File: /home/cafsindia/uds.cafsinfotech.in/application/views_bk/bonus_and_leave_wage/manage.php
<?php
$this->load->view("partial/header");
$access_data = $this->session->userdata('access_data');
$access_add = (int)$access_data[$controller_name]['access_add'];
$access_update = (int)$access_data[$controller_name]['access_update'];
$access_delete = (int)$access_data[$controller_name]['access_delete'];
$access_search = (int)$access_data[$controller_name]['access_search'];
$access_export = (int)$access_data[$controller_name]['access_export'];
$access_import = (int)$access_data[$controller_name]['access_import'];
$page_name = ucwords(str_replace("_"," ",$controller_name));
$prime_id = "prime_".$controller_name."_id";
$search_url = site_url($controller_name ."/search");
/* PAGE TITLE AND BUTTONS- START */
$breadcrumb .="<li><a href='$site_url#Home'>Home</a></li>
<li><a href='".site_url($controller_name)."#$controller_name'>$page_name</a></li>
<li class='active'>List</li>";
?>
<style>
html, body{
margin: 0; height: 100%;
overflow-x: hidden;
}
.display th, .display td {
white-space: nowrap !important;
max-width: 500px !important;
}
</style>
<div class='row title_content'>
<div class='col-md-2 col-xs-4'>
<h1 class='page_txt'><?php echo $page_name;?></h1>
</div>
<div class='col-md-10 col-xs-8'>
<ol class="breadcrumb">
<?php echo $breadcrumb; ?>
</ol>
</div>
</div>
<div id="toolbar" class="form-inline">
<div class="col-md-12">
<?php echo form_open("$controller_name/bonus_leave_wage_data",array('id'=>'bonus_leave_wage_form')); ?>
<div class="form-group">
<?php
$pay_type_list = array('Bonus' => 'Bonus','Leave' => 'Leave');
echo form_label('Payment Type', 'pay_type', array('class' => 'required'));
echo form_dropdown(array( 'name' => 'pay_type', 'id' => 'pay_type', 'class' => 'form-control input-sm select2'), $pay_type_list);
?>
</div>
<div class="form-group">
<?php
echo form_label('From Period', 'from_period', array('class' => "control-label required"));
echo form_input(array("name"=>'from_period', "id"=>'from_period',"value"=>'',"placeholder"=>"From Period", "class"=>"form-control input-sm datepicker"));
?>
</div>
<div class="form-group">
<?php
echo form_label('To Period', 'to_period', array('class' => "control-label required"));
echo form_input(array("name"=>'to_period', "id"=>'to_period',"value"=>'',"placeholder"=>"To Period", "class"=>"form-control input-sm datepicker"));
?>
</div>
<div class="form-group">
<?php
echo form_label('Personal Area', 'personal_code', array('class' => 'required'));
echo form_dropdown(array( 'name' => 'personal_code', 'id' => 'personal_code', 'class' => 'form-control input-sm select2'), $per_area_list);
?>
</div>
<div class="form-group">
<?php
echo form_label('Project', 'project');
echo form_dropdown(array( 'name' => 'project', 'id' => 'project', 'class' => 'form-control input-sm select2'));
?>
</div>
<div class="form-group">
<?php
echo form_label('Wbs Element', 'wbs_element');
echo form_dropdown(array( 'name' => 'wbs_element', 'id' => 'wbs_element', 'class' => 'form-control input-sm select2'));
?>
</div>
<div class="form-group">
<button class='btn btn-primary btn-sm' id="process"><i class='fa fa-send-o' aria-hidden='true'></i> Process </button>
</div>
<?php
echo form_close();
?>
</div>
</div>
<div class="row" style='margin:0px;overflow:auto;width: 100%;'>
<div class='col-md-12' id='table_div' style='padding:8px;min-height: 400px;display: none;' >
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#bonus_leave"> Leave Entry</a></li>
<li><a data-toggle="tab" href="#reimbursement"> Reimbursement Entry</a></li>
</ul>
<div class="tab-content">
<div id="bonus_leave" class="tab-pane fade in active">
<table class='table-hover display' id='bonus_leave_table' style='width:100% !important;'></table>
</div>
<div id="reimbursement" class="tab-pane fade">
<table class='table-hover display' id='reimbursement_table' style='width:100% !important;'></table>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function (){
$('.modal-dialog').draggable({ handle: ".modal-header" });
$(".datepicker").datetimepicker({format: 'MM-YYYY',});
$(".datepicker_time").datetimepicker({format: 'DD-MM-YYYY HH:mm:ss',});
//SELECT2 FUNCTION
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
});
//FROM AND TO PERIOD ONCHANGE CONDITION
$('#from_period,#to_period').on('dp.hide',function(e) {
let change_id = $(this).attr('id');
let from_period = $('#from_period').val();
let to_period = $('#to_period').val();
$('#personal_code').val('');
select_option();
/*if(change_id === "from_period"){
let from_check = moment(from_period, 'MM-YYYY').format('YYYY-MM');
if(to_period){
let to_check = moment(to_period, 'MM-YYYY').format('YYYY-MM');
if(from_check > to_check){
toastr.error("From Period should not Greater than To Period.!");
return false;
}
}
}else
if(change_id === "to_period"){
let to_check = moment(to_period, 'MM-YYYY').format('YYYY-MM');
if(!from_period){
toastr.error("From Period should not Empty.!");
return false;
}else{
let from_check = moment(from_period, 'MM-YYYY').format('YYYY-MM');
if(from_check > to_check){
toastr.error("From Period should not Greater than To Period.!");
return false;
}
}
}*/
});
//DR CODE FOR PROJECT ID FETCH BASED ON PERSONAL CODE START
$('#personal_code').on('change',function(e) {
let personal_code = $('#personal_code').val();
let from_period = $('#from_period').val();
let to_period = $('#to_period').val();
if(!from_period || !to_period){
toastr.error("From To Period should not Empty.!");
return false;
}else{
let from_check = moment(from_period, 'MM-YYYY').format('YYYY-MM');
let to_check = moment(to_period, 'MM-YYYY').format('YYYY-MM');
if(from_check > to_check){
toastr.error("From Period should not Greater than To Period.!");
return false;
}else{
project_id_fetch(personal_code,from_period,to_period);
}
}
});
//DR CODE FOR PROJECT ID FETCH BASED ON PERSONAL CODE END
//DR CODE FOR PROJECT BASED WBS FETCH 13OCT22 START
$('#project').on('change',function(e) {
let personal_code = $('#personal_code').val();
let project = $('#project').val();
wbs_fetch(personal_code,project);
});
//DR CODE FOR PROJECT BASED WBS FETCH 13OCT22 END
//CODE FOR SELECT A BONUS LEAVE WAGE DETAILS FORM REVENUE TABLE 130CT22 START
//FROM PERIOD AND TO PERIOD VALIDATION 130CT22 START
jQuery.validator.addMethod("lesserThan", function(value, element, params) {
value = moment(value, 'MM-YYYY').format('YYYY-MM');
var check_value = moment($(params).val(), 'MM-YYYY').format('YYYY-MM');
if (!/Invalid|NaN/.test(value)) {
return value <= check_value;
}
},'Must be lesser than or Equal to To Period.');
//TO DATE VALIDATION
jQuery.validator.addMethod("greaterThan", function(value, element, params) {
value = moment(value, 'MM-YYYY').format('YYYY-MM');
var check_value = moment($(params).val(), 'MM-YYYY').format('YYYY-MM');
if (!/Invalid|NaN/.test(value)) {
return value >= check_value;
}
},'Must be Greater than or Equal to From Period.');
//FROM PERIOD AND TO PERIOD VALIDATION 130CT22 END
$('#bonus_leave_wage_form').submit(function(event){ event.preventDefault(); }).validate({
ignore: ".ignore",
rules:{
pay_type:{required: true },
personal_code:{required: true },
// project:{required: true },
// wbs_element:{required: true },
from_period:{
required: true,
lesserThan: "#to_period",
},
to_period:{
required: true,
greaterThan: "#from_period",
},
},
submitHandler: function (form){
$('#process').html("<i class='fa fa-spinner fa-spin'></i> Processing...");
$('#process').attr('disabled','disabled');
//Encrypted
let formData = new FormData(form);
// Convert FormData to JSON object
let jsonData = Object.fromEntries(formData.entries());
var encKey = '<?php echo $encKey; ?>';
var encData = encrypt(encKey,jsonData);
$.ajax({
type: "POST",
url: '<?php echo site_url($controller_name . "/bonus_leave_wage_data"); ?>',
data:encData,
contentType: 'text/plain',
success: function (response){
var pay_type = $('#pay_type').val();
if(response.success){
$("#table_div li:first > a").text(pay_type+" Entry");
$("#table_div").show();
toastr.success(response.message);
//BONUS LEAVE TAB TABLE BASED DATATABLE CALL
data_table_call_fun("bonus_leave_table",response.bonus_leave_rslt);
//REIMBURSEMENT TAB TABLE BASED DATATABLE CALL
data_table_call_fun("reimbursement_table",response.reimburse_rslt);
}else{
$("#table_div").hide();
toastr.error(response.message);
}
$('#process').attr('disabled',false);
$('#process').html("Process");
},
dataType: 'json',
});
}
});
//CODE FOR SELECT A BONUS LEAVE WAGE DETAILS FORM REVENUE TABLE 130CT22 END
});
// ------------------------------------- FUNCTION CODE START ----------------------------------------------------
//FUNCTION FOR SELECT A BONUS LEAVE WAGE DETAILS FORM REVENUE TABLE 130CT22 START
//DATATABLE CALL FUNCTION START
function data_table_call_fun(table_name,table_rslt){
//FOR CONVERT OBJECT OF OBJECT TO ARRAY OF OBJECT
var table_arr = Object.entries(table_rslt).map((e) => {
return e[1] } );
//DATATABLE
$("#"+table_name).DataTable({
processing: true,
destroy: true,
lengthMenu: [[10,25,50,100,500,1000,-1],[10,25,50,100,500,1000,"All"]],
scrollY: 510,
scrollX: true,
scrollCollapse: true,
fixedHeader: true,
language:{
lengthMenu:"<span style='margin-top:8px;margin-left:10px;'>Display</span> _MENU_ <span style='margin-top:8px;'>Records</span>",
searchPlaceholder: "Search Records",
search: "",
processing: '<div style="text-align: center; padding: 50px;color:#4b6fa2;z-index:999999999;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</div>',
},
data:table_arr,
columns:[
{title: 'Pay Type', data:'pay_type'},
{title: 'Cycle From', data:'cycle_from'},
{title: 'Cycle To', data:'cycle_to'},
{title: 'Period From', data: 'period_from'},
{title: 'Period To', data: 'period_to'},
{title: 'Personal Code', data: 'personal_code'},
{title: 'Project Id', data: 'project_id'},
{title: 'Project Desc', data: 'project_desc'},
{title: 'Wbs Element', data: 'wbs_id'},
{title: 'Wbs Desc', data: 'wbs_desc'},
{title: 'Network', data: 'network_id'},
{title: 'Act Id', data: 'activity_id'},
{title: 'Act Desc', data: 'activity_desc'},
{title: 'Sal Comp', data: 'sal_comp'},
{title: 'Cond Type', data: 'cond_type'},
{title: 'Cond Val', data: 'cond_val'},
{title: 'Fixed Amt', data: 'fixed_amt'},
{title: 'Cond Based', data: 'cond_based'},
{title: 'Status', data: 'wage_status'},
// {title: 'Remarks', data: 'remarks'},
],
});
$("input[type=search],select[name="+table_name+"_length]").addClass('form-control input-sm');
$("#"+table_name+"_length > label").css("display", "flex");
}
//DATATABLE CALL FUNCTION END
//PROJECT ID FETCH DEPENDES ON PERSONAL CODE
function project_id_fetch(personal_code,from_period,to_period){
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {personal_code:personal_code,from_period:from_period,to_period:to_period};
var encData = encrypt(encKey,data);
$.ajax({
type: 'POST',
url: '<?php echo site_url("$this->control_name/project_id_fetch");?>',
data:encData,
contentType: 'text/plain',
beforeSend: function () {
$('#project').next('span').attr('id', 'project_span');
$('#project_span').html('<span style=\"color:#CC3366\";><i class=\"fa fa-spinner fa-spin fa-2x fa-fw\"></i><br/>Loading...</span>');
},
success: function(data){
let rslt = JSON.parse(data);
$('#project_span').empty();
let option = '<option value>--- Select Project---</option>';
$.each(rslt, function(key, value) {
option += '<option value='+value.pro_id+'>'+value.pro_id+' - '+value.pro_desc+'</option>';
});
$('#project').html(option);
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
});
}
});
}
//PROJECT ID FETCH DEPENDES ON PERSONAL CODE END
//DR CODE FOR WBS ELEMENT FILTER START 13OCT22
function wbs_fetch(personal_code,project){
// Encryption
var encKey = '<?php echo $encKey; ?>';
var data = {personal_code:personal_code,project:project};
var encData = encrypt(encKey,data);
$.ajax({
url : '<?php echo site_url("$this->control_name/wbs_fetch");?>',
type: 'POST',
dataType: "html",
data:encData,
contentType: 'text/plain',
beforeSend: function () {
$('#wbs_element').next('span').attr('id', 'wbs_element_span');
$('#wbs_element_span').html('<span style=\"color:#CC3366\";><i class=\"fa fa-spinner fa-spin fa-2x fa-fw\"></i><br/>Loading...</span>');
},
success: function(data){
let rslt = JSON.parse(data);
let option = '<option value>--- Select Wbs Element---</option>';
//LOOP FOR OPTION VALUE FETCH IN SELECT DROPDOWN FILED
$.each(rslt, function(key, value) {
option += '<option value='+value.wbs_id+'>'+value.wbs_id+'~'+value.wbs_desc+'</option>';
});
$('#wbs_element').html(option);
$('#wbs_element_span').empty();
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
});
}
});
}
//DR CODE WBS FETCH FUNCTION END 13OCT22
function select_option(){
$(function(){
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
// dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
});
}
</script>
<?php $this->load->view("partial/footer"); ?>