File: /home/cafsindia/hrms_patroniss_com/application/views/monthly_input/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");
$import_url = site_url($controller_name ."/import/");
/* PAGE TITLE AND BUTTONS- START */
$breadcrumb .= "<li>
<a class='btn btn-xs btn-primary import' data-btn-submit= 'Submit' title='Import $page_name' href='$import_url' data_form='$controller_name' > <span class='fa fa-cloud-upload'> </span> Import $page_name
</a>
</li>";
$quick_link = explode(",",$quick_link->quicklink);
$link_li_line = "";
foreach($quick_link as $link){
if($link){
$url = site_url("$link");
$name = ucwords(str_replace("_"," ",$link));
$link_li_line .= "<li><a href='$url'> <i class='fa fa-angle-double-right fa-lg' aria-hidden='true'></i> $name</a></li>";
}
}
if($link_li_line){
$breadcrumb .= "<li class='dropdown'>
<a class='btn btn-xs btn-primary dropdown-toggle' type='button' id='dropdownMenu2' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>
<i class='fa fa-plus-circle' aria-hidden='true'></i> Quick Links
</a>
<ul class='dropdown-menu dropdown-menu-left' aria-labelledby='dropdownMenu2'>
$link_li_line
</ul>
</li>";
}
$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>";
/* PAGE TITLE AND BUTTONS- END */
/* PAGE FILTER - START */
$filter_tr_line = "";
$table_map_list = "";
$input_ids = "";
$date_ids = "";
foreach($fliter_list as $fliter){
$label_id = "filter_".$fliter['label_id'];
$lable = $fliter['label_id'];
$label_name = $fliter['label_name'];
$field_isdefault = (int)$fliter['field_isdefault'];
$array_list = $fliter['array_list'];
$field_type = (int)$fliter['field_type'];
if($field_type === 4){
$filter_box = form_input(array("name"=>$label_id, "id"=>$label_id,"placeholder"=>$label_name, "class"=>"form-control input-sm datepicker"));
$filter_tr_line .= "<tr>
<td class='search_td'> $label_name</td>
<td> $filter_box </td>
</tr>";
}else
if(((int)$field_type === 5) || ((int)$field_type === 7)){
$filter_box = form_dropdown(array("name" =>$label_id,"multiple id" => $label_id,"class" =>'form-control input-sm select2'),$array_list);
$filter_tr_line .= "<tr>
<td class='search_td'> $label_name</td>
<td>$filter_box</td>
</tr>";
}else
if((int)$field_type === 6){
$form_checkbox = form_checkbox(array("name" => $label_id,"id" => $label_id, "value"=> 1, "checked" => ($input_value) ? 1 : 0));
$filter_box .= "<label class='checkbox-inline'> $form_checkbox $form_label </label>";
$filter_tr_line .= "<tr>
<td class='search_td'> $label_name</td>
<td colspan='2'>$filter_box</td>
</tr>";
}else
if($field_type === 13){
$filter_box = form_input(array("name"=>$label_id, "id"=>$label_id,"placeholder"=>$label_name, "class"=>"form-control input-sm datepicker_time"));
$filter_tr_line .= "<tr>
<td class='search_td'> $label_name</td>
<td> $filter_box </td>
</tr>";
}else{
if($field_type !== 9){
$filter_box = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>'',"placeholder"=>$label_name, "class"=>"form-control input-sm"));
$filter_tr_line .= "<tr>
<td class='search_td'> $label_name</td>
<td> $filter_box </td>
</tr>";
}
}
$table_map_list .= "var $label_id = $('#$label_id').val(); \n data.$lable = $label_id;\n";
if($field_type === 4){
$date_ids .= "#".$label_id.",";
}else{
$input_ids .= "#".$label_id.",";
}
}
$table_map_list .= "var category = $('#category').val(); \n data.category = category;\n";
$table_map_list .= "var search_month = $('#search_month').val(); \n data.search_month = search_month;\n";
$table_map_list .= "var process_mode = $('#process_mode').val(); \n data.process_mode = process_mode;\n";
$date_ids = rtrim($date_ids,",");
$input_ids = rtrim($input_ids,",");
$filter_table = "<table class='fliter_table'>$filter_tr_line</table>";
/* PAGE FILTER - END */
$column_count = count(array_column($table_head, "label_name"))+1;
?>
<style type="text/css">
.form-inline .form-group {
display: inline-block;
vertical-align: middle;
margin-left: 30px;
margin-bottom: 10px;
width: 16.5%;
}
</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-9">
<div class="form-group" style="width: 25% !important;">
<?php
echo form_label($this->lang->line('category'), 'category', array('class' => 'required'));
echo form_dropdown(array( 'name' => 'category', 'id' => 'category', 'class' => 'form-control input-sm'), $category_list);
?>
</div>
<div class="form-group">
<?php
echo form_label($this->lang->line('select_month'), 'select_month', array('class' => 'required'));
$today = date('m-Y');
echo form_input(array('name' => 'search_month', 'id' => 'search_month', 'class' => 'form-control input-sm datepicker', 'value'=>''));
?>
</div>
<div class="form-group">
<?php
$process_mode = array(""=>"---- Select Type ----","1"=>"Process","2"=>"Delete");
echo form_label("Process Mode", 'process_mode', array('class' => 'required'));
echo form_dropdown(array("name" =>'process_mode',"id" =>'process_mode',"class" =>'form-control input-sm'),$process_mode);
?>
</div>
<div class="form-group">
<button class='btn btn-primary btn-sm' id="search">Submit</button>
</div>
</div>
</fieldset>
</div>
<div class="row" style='margin:0px;overflow:auto;width: 100%;'>
<div class='col-md-12' style='padding:8px;min-height: 400px;' >
<table id="table" class='table table-striped table-hover' style='width:100% !important;'></table>
</div>
</div>
<script type="text/javascript">
$(document).ready(function (){
$('.modal-dialog').draggable({ handle: ".modal-header" });
var a = <?php echo json_encode($master_pick); ?>;
var prime_id = "<?php echo $prime_id; ?>";
$table = $('#table').DataTable( {
processing: true,
serverSide: true,
serverMethod: 'post',
lengthMenu: [[10,25,50,100,500,1000,-1],[10,25,50,100,500,1000,"All"]],
fixedColumns:{leftColumns: 3},
scrollX: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>',
},
ajax:{
'url': '<?php echo $search_url; ?>',
'data': function(data){
<?php echo $table_map_list; ?>
//var rslt = JSON.parse(data);
/*if(rslt.success){
alert(rslt.message);
}else{
alert(rslt.message);
} */
},
beforeSend: function(){
$('.dataTables_processing').html('<span style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
},
},
columns: [{
title:'<input type="checkbox" name="select_all" class="select_all">',
data: '<?php echo $prime_id; ?>',
type: 'html',
orderable: false,
className: 'select-checkbox',
searchable:false,
width:'1%',
render:function (value) {
return '<input type="checkbox" value="'+value+'" name="select_one" class="select_one">';
}
},
<?php
foreach($table_head as $table){
$label_name = $table->label_name;
$view_name = $table->view_name;
$field_type = (int)$table->field_type;
$lock_status = $lock_result[$label_name];
if($field_type === 4){
echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,
render:function(value) {
if(value){
if (value === null) return '';
return moment(value).format('DD/MM/YYYY');
}else{
return '';
}
}
},\n";
}else
if(($field_type === 5)||($field_type === 9)){
echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,
render:function(value) {
if(value in a['$label_name']){
if(value === '0' || value === ''){
return '';
}else{
return a['$label_name'][value];
}
} else {
return value;
}
}
},\n";
}else
if($field_type === 6){
echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,
render:function(value) {
send_val = 'No';
if(value === '1'){ send_val = 'No'; }
return send_val;
}
},\n";
}else
if($field_type === 7){
echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,
render:function(value) {
if(value !== ''){
var rslt = '';
var multi_val = value.split(',');
var count = 0
$.each(multi_val,function(i){
count++;
var multi_key = multi_val[i];
if(multi_key in a['$label_name']){
if(count === 1){
rslt += a['$label_name'][multi_key];
}else{
rslt += ' , '+a['$label_name'][multi_key];
}
}
});
return rslt;
}else {
return '-';
}
}
},\n";
}else
if($field_type === 10){
$img = '<img src="@URL@" alt="img" height="30" width="30">';
echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,sClass: 'center',
render:function(value) {
if(value !== ''){
var image = '$img';
image = image.replace('@URL@', value);
return image;
}else{
return '';
}
}
},\n";
}else{
if($label_name === "employee_code" || $label_name === "emp_name" || $label_name === "process_month"){
echo "{title:'$view_name',data:'$label_name',visible:true,},\n";
}else
if($label_name === "supplementary_status"){
$function = 'onchange=update_table($(this).closest("tr"),this.name,this.value,this.checked)';
$input = '<input type="checkbox" '.$function.' name="'.$label_name.'" id="'.$label_name.'" class="form-control" value="@val@">';
echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,sClass: 'center',
render:function(value){
if($.isNumeric(value)){
if(value !== ''){
var input = '$input';
input = input.replace('@val@', value);
return input;
}
}else{
return value;
}
}
},\n";
}else{
$function = 'onchange=update_table($(this).closest("tr"),this.name,this.value)';
$readonly = '';
if($lock_status === '2'){
$readonly = 'readonly';
}
$input = '<input type="text" '.$function.' name="'.$label_name.'" id="'.$label_name.'" class="form-control" value="@val@" '.$readonly.'>';
echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,sClass: 'center',
render:function(value){
if($.isNumeric(value)){
if(value !== ''){
var input = '$input';
input = input.replace('@val@', value);
return input;
}
}else{
return value;
}
}
},\n";
}
}
}
?>
],
});
$("<?php echo $input_ids;?>").bind('keyup change', function(e) {
$table.draw();
});
$("<?php echo $date_ids;?>").on("dp.hide",function (e) {
$table.draw();
});
$("#search").on('click', function(e){
var category = $('#category').val();
var search_month = $('#search_month').val();
var process_mode = $('#process_mode').val();
if(category.length === 0){
toastr.error('Please choose category?');
return false;
}
if(search_month.length === 0){
toastr.error('Please choose month?');
return false;
}
if(process_mode.length === 0){
toastr.error('Please choose mode?');
return false;
}
$.ajax({
type: "POST",
url: '<?php echo site_url("$controller_name/check_monthly_input"); ?>',
data:{category:category,search_month:search_month,process_mode:process_mode},
success: function(data){
var rslt = JSON.parse(data);
if(rslt.success){
toastr.success(rslt.message);
$table.draw();
}else{
toastr.error(rslt.message);
}
}
});
});
$('input[type=search]').addClass('form-control input-sm');
$("a.import").click(function(event){
event.preventDefault();
var action = $(this).attr('data-btn-submit');
var title = $(this).attr('title');
var control = $(this).attr('href');
var form_id = "save_import";
$('.modal').modal({backdrop: 'static', keyboard: false});
$('.modal-body').html('<div style="text-align: center;padding:50px;color:#4b6fa2;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Please wait processing....</div>');
$.ajax({
type: 'POST',
url: control,
dataType: "html",
success: function (response){
$('.modal-title').html('<h4 class="modal-title">'+title+'</h4>');
$('.modal-body').html(response);
var btn_info = '<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>';
if(action === "Submit"){
btn_info += '<button class="btn btn-primary" id="submit" style="margin-left: 15px;">Submit</button>';
}
btn_info = '<div class="col-md-12" style="background-color:#FFFFFF;padding: 10px 20px; text-align: right; border-top: 1px solid #e5e5e5;">'+btn_info+'</div>';
$('#'+form_id).append(btn_info);
}
});
});
/* DELETE PROCESS - START*/
var delete_btn = "<button class='btn btn-xs btn-danger fliter disabled' id='delete_btn' style='margin-top:7px'><i class='fa fa-trash' aria-hidden='true'></i> Delete</button>";
$("#table_length").prepend(delete_btn);
$("#table_length").css("display", "-webkit-inline-box");
$('.select-checkbox').on('click', "input[name='select_all']", function(){
if(this.checked) {
$('.select_one').prop('checked', true);
$("#delete_btn").removeClass("disabled");
}else{
$('.select_one').prop('checked', false);
$("#delete_btn").addClass("disabled");
}
});
$table.on('change','.select_one',function(event){
var delete_ids = [];
$.each($("input[name='select_one']:checked"), function(){
if($(this).val()){
delete_ids.push($(this).val());
}
});
if(delete_ids.length > 0) {
$("#delete_btn").removeClass("disabled");
}else{
$("#delete_btn").addClass("disabled");
}
});
$("#delete_btn").click(function(event){
if(confirm("Are you sure. you want delete select records??")){
var delete_ids = [];
$.each($("input[name='select_one']:checked"), function(){
delete_ids.push($(this).val());
});
//do ajax process
if(delete_ids){
$.ajax({
type: "POST",
url: '<?php echo site_url("$controller_name/delete_month_input"); ?>',
data:{delete_ids:delete_ids},
success: function(data) {
var rslt = JSON.parse(data);
if(rslt.success){
toastr.success(rslt.message);
$('.select_all').prop('checked', false);
$('.select_one').prop('checked', false);
$("#delete_btn").addClass("disabled");
$table.draw();
}else{
toastr.error(rslt.message);
}
}
});
}
}else{
$('.select_all').prop('checked', false);
$('.select_one').prop('checked', false);
$("#delete_btn").addClass("disabled");
}
});
$("#search_filter_div").hide();
$("#search_filter").click(function(){
$("#search_filter_div").toggle();
});
$("#search_close").click(function(){
$("#search_filter_div").toggle();
});
$("#clear_search").click(function(){
$('input').val('');
$('option').attr('selected', false);
$("#search_filter_div").toggle();
$table.draw();
$('.select2').select2({placeholder: '---- Select ----',});
});
$(function (){$(".datepicker").datetimepicker({format: 'MM-YYYY',});});
$(".datepicker_time").datetimepicker({format: 'DD-MM-YYYY HH:mm:ss',});
$('.select2').select2({placeholder: '---- Select ----',});
$(document).on('keyup', '.number', function(e) {
this.value = this.value.replace(/[^0-9_.]/g,'');
});
});
function update_table(closest_row,label_name,value,checked){
var data = $table.row(closest_row).data();
var row_id = data['<?php echo $prime_id; ?>'];
var hid_doj = data['date_of_joining'];
var hid_process_month = $('#search_month').val();
var category = $('#category').val();
if(label_name === "supplementary_status"){
if(checked == true){
value = 1;
}else{
value = 0;
}
}
if(hid_process_month){
$.ajax({
type: 'POST',
url: '<?php echo site_url("$this->control_name/update_table");?>',
data:{prime_id:row_id,hid_doj:hid_doj,hid_process_month:hid_process_month,category:category,label_name:label_name,value:value},
success: function(data){
var rslt = JSON.parse(data);
if(rslt.success){
toastr.success(rslt.message);
}else{
if(rslt.status === "DOJ"){
$(this).prop( "checked", false);
toastr.error(rslt.message);
}else{
toastr.error(rslt.message);
}
}
}
});
}
}
function delete_column(label_name){
if(label_name){
$("#delete_btn_"+label_name).html("<i class='fa fa-spinner fa-spin'></i> Processing...");
$('#delete_btn_'+label_name).attr('disabled','disabled');
var category = $('#category').val();
var search_month = $('#search_month').val();
var process_mode = $('#process_mode').val();
str = label_name.toLowerCase().replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
str = str.replace(/_/g, '');
var content = "Are you sure to delete whole column of "+str+" on process month of "+search_month;
$.confirm({
title: 'Confirm!',
content: content,
type: 'red',
typeAnimated: true,
buttons: {
tryAgain: {
text: 'Ok',
btnClass: 'btn-red',
action: function(){
$.ajax({
type: 'POST',
url: '<?php echo site_url("$this->control_name/delete_column");?>',
data:{category:category,search_month:search_month,label_name:label_name},
success: function(data){
var rslt = JSON.parse(data);
if(rslt.success){
toastr.success(rslt.message);
$('#table_holder').html(rslt.table_content);
$('#detail_list').DataTable({
dom: 'Bfrtip',
fixedColumns:{leftColumns: 2},
scrollX:true,
buttons: [{
extend: 'excelHtml5',
className: 'btn-info',
title: 'Payroll Report_'+ moment(new Date()).format('DD-MM-YYYY'),
}],
language:{
searchPlaceholder: "Search",
search: "",
},
"aaSorting": [],
});
$('#delete_month').show();
}else{
toastr.error(rslt.message);
}
$('#delete_btn_'+label_name).attr('disabled',false);
$('#delete_btn_'+label_name).html("Delete");
}
});
$table.draw();
}
},
close: function () {
$('#delete_btn_'+label_name).attr('disabled',false);
$('#delete_btn_'+label_name).html("Delete");
}
}
});
}
}
</script>
<?php $this->load->view("partial/footer"); ?>