MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/hrms_cafsinfotech_in/application_bk14FEB2026/views/report/manage_07jun2025.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");
	$view_url       = site_url($controller_name ."/view/");
	$import_url     = site_url($controller_name ."/import/");
	$table_col_count= count($table_headers);
	/* PAGE TITLE AND BUTTONS- END */
	/* PAGE FILTER - START */
	$filter_tr_line = "";
	$table_map_list = "";
	$input_ids      = "";
	$date_ids       = "";
	$filter_cond_array = array('' => '--- Select ---','=' => '=','>' => '>','<' => '<','LIKE' => 'LIKE');
	$tr_line = "";
	foreach($fliter_list as $fliter){
		$label_id           = $fliter['label_id'];
		$field_isdefault    = $fliter['field_isdefault'];
		$array_list         = $fliter['array_list'];
		$field_type         = $fliter['field_type'];
		$filter_tbl_val     = $fliter['filter_tbl_val'];
		$label_name         = ucwords(strtolower(str_replace("_"," ",$label_id)));
		$filter_tbl_val     = form_input(array('type'=>'hidden','name' => 'filter_tbl_val[]', 'class' => 'form-control input-sm','value' => $filter_tbl_val));
		$filter_label       = form_input(array('type'=>'hidden','name' => 'filter_label[]', 'class' => 'form-control input-sm','value' => $label_id));
		$filter_type        = form_input(array('type'=>'hidden','name' => 'filter_type[]', 'class' => 'form-control input-sm','value' => $field_isdefault));
		$field_type_input   = form_input(array('type'=>'hidden','name' => 'field_type[]', 'class' => 'form-control input-sm','value' => $field_type));
		$filter_cond        = form_dropdown(array('name' => 'filter_cond[]', "id"=>$label_id."_con",'class' => 'form-control input-sm'), $filter_cond_array);
		if($field_type === 4){							
			$filter_val     = form_input(array( 'name' => 'filter_val[]', "id"=>$label_id, 'class' => 'form-control input-sm datepicker', 'placeholder'=>'Search value','value' => ''));
		}else
		if(((int)$field_type === 5) || ((int)$field_type === 7)){
			$filter_val  = form_dropdown(array('name' => 'filter_val[]', "id"=>$label_id,'multiple class' => 'form-control input-sm select2'), $array_list);
			$readonly = 'readonly';
		}else{
			$filter_val   = form_input(array( 'name' => 'filter_val[]', "id"=>$label_id, 'class' => 'form-control input-sm', 'placeholder'=>'Search value','value' => ''));
			$readonly = '';
		}
		$filter_cond        = form_dropdown(array('name' => 'filter_cond[]', "id"=>$label_id."_con",'class' => 'form-control input-sm',$readonly=>true), $filter_cond_array);
		$tr_line .= "<tr>
						<td class='search_td'>$field_type_input $label_name $filter_label $filter_type $filter_tbl_val</td>
						<td> $filter_cond </td>
						<td> $filter_val </td>
					</tr>";
	}
	$report_filter   = form_input(array('type'=>'hidden','name' => 'report_filter_id','id' => 'report_filter_id', 'class' => 'form-control input-sm','value' => ''));
	$filter_name   = form_input(array('type'=>'hidden','id' => 'filter_name', 'class' => 'form-control input-sm','value' => ''));
	$form_id         = form_input(array( 'name' => 'form_id','id' => 'form_id','type'=>'hidden','class' => 'form-control input-sm','value' => "$form_id"));
	$filter_table    = "$filter_name $report_filter $form_id<table class='fliter_table' style='width:100%;'>$tr_line</table>";
	$table_map_list .= "
						var filter_tbl_val   =  $(\"input[name='filter_tbl_val[]']\").map(function(){return $(this).val();}).get();\n
						var filter_label     =  $(\"input[name='filter_label[]']\").map(function(){return $(this).val();}).get();\n
						var field_type       =  $(\"input[name='field_type[]']\").map(function(){return $(this).val();}).get();\n
						var filter_type      =  $(\"input[name='filter_type[]']\").map(function(){return $(this).val();}).get();
						var filter_cond      =  $(\"select[name='filter_cond[]']\").map(function(){return $(this).val();}).get();
						var filter_val       =  $(\"input[name='filter_val[]'],select[name='filter_val[]']\").map(function(){
								if($(this).val()){
									var return_data = ($(this).val()).toString();;
									return return_data;
								}else{
									return '';
								}
								}).get();
					";
	/* PAGE FILTER - END */
	$column_count     = count(array_column($table_head ?? [], "label_name"))+1;
	$table_map_list  .= "\n data.field_type = field_type;\n\n data.filter_label = filter_label;\n \n data.filter_type = filter_type;\n \n data.filter_tbl_val = filter_tbl_val;\n \n data.filter_cond = filter_cond;\n \n data.filter_val = filter_val;\n \n data.start_date = start_date;\n \n data.end_date   = end_date;\n ";	
?>
<script src="dist/daterangepicker/knockout.js" type="text/javascript"></script>
<link href="dist/daterangepicker/daterangepicker.min.css" rel="stylesheet" type="text/css" />
<script src="dist/daterangepicker/daterangepicker.min.js" type="text/javascript"></script>
<script src="dist/excel_xlsx.full.min.js" type="text/javascript"></script>

<div class='row title_content'>
	<div class='col-md-4 col-xs-4'>
		<h1 class='page_txt'><?php echo strtoupper($report_name) ?></h1>
	</div>
	<div class='col-md-8 col-xs-8'>
		<ol class="breadcrumb">
			<?php 		
				$quick_link = explode(",",$link_info[0]->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){
					echo "<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>";
				}				
			?>		
			<li><a href="<?php echo site_url()?>#Home">Home</a></li>
			<li><a href="<?php echo site_url($controller_name)?>#<?php echo "$controller_name";?>"><?php echo "$page_name";?></a></li>
			<li class="active">List</li>
		</ol>
	</div>
</div>
<div id="toolbar" class="form-inline" style="display: flex;">	
	<div class="form-group" style='width:12% !important;'>
	<?php if((int)$date_filter === 1){ ?>
			<div class="" >
				<label><?php echo "$label_view_name";?><label>
				<input name="daterangepicker" class="daterangepicker-field form-control input-sm" data-bind='daterangepicker: dateRange, daterangepickerOptions: { maxDate: moment()}'></input>
			</div>
	<?php }?>
	</div>
	<?php 
		if($access_search === 1){	 
	?>
		<div id="search_filter_div" class='search_filter' style="display:none;">
			<div style="max-height:250px;overflow: auto;">
				<?php echo $filter_table;?>				
			</div>
			<div class="row" style="margin:0px;margin-top:15px;">
				<div class="col-md-4" style='text-align:left;'>
					<a class="btn btn-xs btn-danger" id="clear_search"> Clear All</a>
				</div>
				<div class="col-md-4" style='text-align:left;'>
					<a class="btn btn-xs btn-warning" id="save_filter">Save Filter</a>
				</div>
				<div class="col-md-4" style='text-align:right;'>	
					<a class="btn btn-xs btn-primary" id="search_submit"> Submit </a>
				</div>
			</div>
		</div>
	<?php 
		}
	?>
	<div class='form-inline col-md-12'>	
		<div class='form-group'>
		<?php
			echo form_dropdown(array( 'name' => 'pre_filter', ' id' => 'pre_filter', 'class' => 'form-control input-sm select2'), $filter_info);
		?>
		</div>
	</div>
</div>
<div id="table_holder">
   	 <table id="table"></table>
</div>
<script type="text/javascript">
$(document).ready(function (){
	var total_tbl_count = '<?php echo $total_tbl_count; ?>';
	var join_tbl_count  = '<?php echo $join_tbl_count; ?>';
	var export_type     = '<?php echo $export_type; ?>';
	if(parseInt(total_tbl_count) !== parseInt(join_tbl_count)){
		toastr.warning('Please Join Table!!!');
		return false;
	}
	var table_col_count = '<?php echo $table_col_count; ?>';
	if(parseInt(table_col_count) <= 1){
		toastr.warning('Please Select multiple Column!!!');
		return false;
	}
	// startDate:"<?php echo $start_date;?>",
 //        endDate:"<?php echo $end_date;?>",
	// var start_date = "<?php echo date('Y-m-d',strtotime('first day of this month')); ?>";
	// var end_date   = "<?php echo date('Y-m-d',strtotime('last day of this month')); ?>";
	var start_date = "<?php echo $start_date; ?>";
	var end_date   = "<?php echo $end_date; ?>";
	$table = $('#table').DataTable({
		// paging: false,
		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,
		language:{
			lengthMenu:"<span style='margin-top:8px;margin-left:10px;'>Display</span> _MENU_ <span style='margin-top:8px;'>Records</span>",
			searchPlaceholder: "Search records",
			search: "",
		},
		ajax:{
			'url': '<?php echo $search_url; ?>',
			'data': function(data){
				<?php echo $table_map_list;?>
				var key       = '<?php echo $key; ?>';
				var encData   = encrypt(key,{data});
				return { Payload: encData };	
			},
			 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_headers as $table){
					$report_tbl_name  = $table->report_tbl_name;
					$label_name  = $table->label_name;
					$view_name   = $table->view_name;
					$field_type  = (int)$table->field_type;		
					if($field_type === 4){
						echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,name:'$report_tbl_name',
								render:function(value) {
									return (value);
								}
							},\n";
					}else
					if($field_type === 13){// [MS 16-07-2024]
						echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,name:'$report_tbl_name',
								render:function(value) {
									if(value){
										if(value === '0000-00-00 00:00:00'){
											return '';
										}else{
											return moment(value).format('DD-MM-YYYY HH:mm');
										}
									}else{
										return '';
									}	
								}
							},\n";
					}else
					if($field_type === 6){
						echo "{title:'$view_name',data: '$label_name',type: 'date',visible:true,name:'$report_tbl_name',
								render:function(value) {
									send_val = 'No';
									if(value === '1'){ send_val = 'No'; }
									return send_val;
								}
							},\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',name:'$report_tbl_name',
								render:function(value) {
									if(value !== ''){
										var image = '$img';	
										image     = image.replace('@URL@', value);										
										return image;
									}else{
										return '';
									}
									
								}
							},\n";
					}else{
						echo "{title:'$view_name',data:'$label_name',visible:true,name:'$report_tbl_name',render:function(value) {
								if(value){
									var val = value.replace(/\~/g,'\"');
									var val = val.replace(/\`/g,'\''); 
									var val = val.replace(/\^/g,'\&');
									return val;
								}else{
									return '';
								}								
							}
						},\n";
					}
					// else{
					// 	echo "{title:'$view_name',data:'$label_name',visible:true,name:'$report_tbl_name',},\n";
					// }
				}
			?>
		],
	});	
	var table_option = "<table><tr><td id='filters' style='padding:8px 2px;'></td><td id='export' style='padding:8px 2px;'></td></tr></table>";
	$("#table_filter").append(table_option);
	var company_name = '<?php echo $company_information->company_name; ?>';
	var company_addr = <?php echo json_encode($company_information->address);?>;
	var report_name  = '<?php echo $report_name;?>';
	var buttons = new $.fn.dataTable.Buttons(table, {
		buttons: [{
			extend: 'collection',
			text: 'Export',
			buttons: [
				/*{extend:'excel',text: 'MS EXCEL',exportOptions:{modifier:{order :'index',page: 'All',search:'none'},columns: ':not(:first-child)'},customizeData: function ( data ) {
	            for (var i=0; i<data.body.length; i++){
	                for (var j=0; j<data.body[i].length; j++ ){
	                	if(data.body[i][j].length > 14){
	                		if(parseInt(export_type) === 1){
								data.body[i][j] = '\u200C' + data.body[i][j].toUpperCase();
							}else{
								data.body[i][j] = data.body[i][j].toUpperCase();
							}
	                	}else{
	                		if(parseInt(export_type) === 1){
	                			data.body[i][j] = data.body[i][j].toUpperCase();
	                		}else{
	                			data.body[i][j] = data.body[i][j];
	                		}
	                	}                         
	                }
	            }
	        },title:company_name,messageTop: report_name+"-"+moment().format('MMMM-YYYY'),filename: report_name+"-"+moment().format('MMMM-YYYY')},*/
	        {text:'<button class="export_btn" style="background-color: #FFFFFF;border: none;" onclick=ms_excel_copy("'+start_date+'","'+end_date+'")><span>MS EXCEL</span></button>'}
			]
		}]
	}).container().appendTo($('#export'));
	var custom_filter = "<button class='btn btn-xs btn-edit fliter' id='search_filter'>Filter <i class='fa fa-filter' aria-hidden='true'></i></button>";
	$("#filters").append(custom_filter);
	$(".buttons-collection").addClass("btn btn-xs btn-edit");
	$('input[type=search]').addClass('form-control input-sm');
	$("select[name='table_length']" ).addClass('form-control input-sm');
	
	
	$("#search_filter_div").hide();
	$("#search_submit").click(function(){
		$("#search_filter_div").toggle();
		$table.draw();
	});
	$("#save_filter").click(function(){
		$("#save_filter").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
		$('#save_filter').attr('disabled','disabled');
		$.confirm({
			title: 'Save Filter',
			content: '' +
			'<form action="" class="formName">' +
			'<div class="form-group">' +
			'<label>Filter Name</label>' +
			'<input type="text" placeholder="Filter Name" name="filter_name"  class="name form-control" required />' +
			'</div>' +
			'</form>',
			buttons: {
				formSubmit: {
					text: 'Add/Update',
					btnClass: 'btn-blue',
					action: function () {
						var filter_name = this.$content.find('.name').val();
						if(!filter_name){
							$.alert('provide a valid filter name');
							return false;
						}
						var form_id          = $('#form_id').val();
						var report_filter_id = $('#report_filter_id').val();
						var filter_tbl_val   =  $("input[name='filter_tbl_val[]']").map(function(){return $(this).val();}).get();
						var filter_label     =  $("input[name='filter_label[]']").map(function(){return $(this).val();}).get();
						var filter_type      =  $("input[name='filter_type[]']").map(function(){return $(this).val();}).get();
						var field_type       =  $("input[name='field_type[]']").map(function(){return $(this).val();}).get();
						var filter_cond      =  $("select[name='filter_cond[]']").map(function(){return $(this).val();}).get();
						var filter_val       =  $("input[name='filter_val[]'],select[name='filter_val[]']").map(function(){
								if($(this).val()){
									var return_data = ($(this).val()).toString();;
									return return_data;
								}else{
									return '';
								}
								}).get();
						var status = false;
						var i= 0;
						$.each($("input[name='filter_val[]'],select[name='filter_val[]']"), function() {
							if($(this).val() && filter_cond[i]){
								status = true;
							}
							i++;
						});
						if(status){
							//Encryption
							var key     = '<?php echo $key; ?>';
							var data    = {report_filter_id:report_filter_id,filter_name:filter_name,form_id:form_id,filter_label:filter_label,filter_tbl_val:filter_tbl_val,field_type:field_type,filter_type:filter_type,filter_cond:filter_cond,filter_val:filter_val};
							var encData = encrypt(key,data);
							$.ajax({
								type: "POST",
								url: '<?php echo site_url($controller_name . "/filter_save"); ?>',
								data:encData,				
								contentType: 'text/plain',
								success: function(response){
									var rslt = JSON.parse(response);
									if(rslt.success){
										var pre_filter = "";
										$.each(rslt.filter_list, function( key, value ) {
										  pre_filter += '<option value="' + key + '">' + value + '</option>';
										});
										$('#pre_filter').html(pre_filter);
										$('#pre_filter').val('');
										$('#pre_filter').select2({
											placeholder: '---- Select ----',
											allowClear: true
										});
										toastr.success(rslt.message);
									}else{
										toastr.error(rslt.message);
									}
									$('#save_filter').attr('disabled',false);
									$("#save_filter").html("Save Filter");
								}
							});
						}else{
							$('#save_filter').attr('disabled',false);
							$("#save_filter").html("Save Filter");
							toastr.error('Filter condition and value is not equal');
						}
					}
				},
				cancel: function () {
					$('#save_filter').attr('disabled',false);
					$("#save_filter").html("Save Filter");
				},
			},
			onContentReady: function () {
				this.$content.find('.name').val($('#filter_name').val());
				// bind to events
				var jc = this;
				this.$content.find('form').on('submit', function (e) {
					// if the user submits the form by pressing enter in the field.
					e.preventDefault();
					jc.$$formSubmit.trigger('click'); // reference the button and click it
				});
			}
		});
	});

	$("#pre_filter").on('change', function(e){
		var pre_filter = $('#pre_filter').val();
		if(pre_filter){
			//Encryption
			var key     = '<?php echo $key; ?>';
			var data    = {report_id:pre_filter};
			var encData = encrypt(key,data);
			$.ajax({
				type: "POST",
				url: '<?php echo site_url($controller_name . "/edit_filter_report"); ?>',
				data:encData,				
				contentType: 'text/plain',
				beforeSend: function(){
					$('.dataTables_processing').html('<span style="color:#CC3366;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Loading...</span>');
				},
				success: function(data) {
					var rslt = JSON.parse(data);
					$("select[name='filter_cond[]']").val('');
					$("input[name='filter_val[]'],select[name='filter_val[]']").val('');
					$("select[name='filter_val[]']").find("option").prop("selected", false);
					$("select[name='filter_val[]']").select2({
						placeholder: '---- Select ----',
						allowClear: true,
						dropdownParent: $('.modal-dialog')
					});
					$.each( rslt.edit_data, function(key,value){
						if(parseInt(value.field_type) === 5 || parseInt(value.field_type) === 7){
							var selectedOptions = (value.filter_val).split(",");
							for(var i in selectedOptions) {
								var val = selectedOptions[i];
								$("#"+value.filter_id).find("option[value="+val+"]").prop("selected", "selected");
							}
							$("#"+value.filter_id).select2({
								placeholder: '---- Select ----',
								allowClear: true,
								dropdownParent: $('.modal-dialog')
							});
						}else{
							$("#"+value.filter_id).val(value.filter_val);
						} 
						$("#"+value.filter_id+"_con").find("option[value='"+value.filter_con+"']").prop("selected", "selected");
						$("#report_filter_id").val(value.report_filter_id);
						$("#filter_name").val(value.filter_name);
					});
					$('.select2').select2({
	                    placeholder: '---- Select ----',
                    });
					$table.draw();
				}
			});
		}
	});	
	$("#search_filter").click(function(){			
		$("#search_filter_div").toggle();
	});		
	$("#clear_search").click(function(){
		$("select[name='filter_cond[]']").val('');
		$("#pre_filter").val('');
		$("input[name='filter_val[]'],select[name='filter_val[]']").val('');
		$('option').attr('selected', false);
		$("#search_filter_div").toggle();
		$('.select2').select2({
			placeholder: '---- Select ----',
		});
		$table.draw();
	});
	$(function (){$(".datepicker").datetimepicker({format: 'DD-MM-YYYY',});});
	$(".datepicker_time").datetimepicker({format: 'DD-MM-YYYY HH:mm:ss',});
	$('.select2').select2({
		placeholder: '---- Select ----',
	});
	

	//date picker new model start mrj -28/02/2020	
	$(".daterangepicker-field").daterangepicker({
		locale: { inputFormat: 'DD/MM/YYYY' },
		forceUpdate: true,
		startDate:start_date,
        endDate:end_date,
		callback: function(startDate, endDate, period){
			var date_filter_type = "<?php echo $date_filter_type;?>";
			if(parseInt(date_filter_type) === 6 || parseInt(date_filter_type) === 7){
				start_date = moment(startDate,'YYYY-MM-DD').format('YYYY-MM');
				end_date   = moment(endDate,'YYYY-MM-DD').format('YYYY-MM');
				if(start_date !== end_date){
					var filter_start_date = "<?php echo $filter_start_date?>";
					var filter_end_date   = "<?php echo $filter_end_date?>";					
					var export_type       = "<?php echo $export_type?>";
					var end_month_data 	  = moment(endDate,'YYYY-MM-DD').format('YYYY-MM-DD');
					var end_month_arr 	  = end_month_data.split('-');
					var end_month 		  = end_month_arr[1];
					var end_year 		  = end_month_arr[0];
					if(end_month === "01"){
						var end_year1 	= end_year-1;
						startDate 	= end_year1+"-12-"+filter_start_date;
					}else{
						var end_month1 = end_month-1;
						startDate 	= end_year+"-"+(end_month1 < 10 ? '0' : '')+end_month1+"-"+filter_start_date;
					}
					endDate 	= end_year+"-"+end_month+"-"+filter_end_date;
				}
			}else
			if(parseInt(date_filter_type) === 8){
				var startDate  = "<?php echo $fin_start_date?>"; //Financial start date
				var endDate    = "<?php echo $fin_end_date?>";   //Financial end date
			}			
			var company_name = '<?php echo $company_information->company_name; ?>';
			var company_addr = <?php echo json_encode($company_information->address);?>;
			var title = moment(startDate,'YYYY-MM-DD').format('DD/MM/YYYY') + ' – ' + moment(endDate,'YYYY-MM-DD').format('DD/MM/YYYY');
			$(this).val(title);
			start_date = moment(startDate,'YYYY-MM-DD').format('YYYY-MM-DD');
			end_date   = moment(endDate,'YYYY-MM-DD').format('YYYY-MM-DD');
			$table.draw();
			var date = moment(startDate,'YYYY-MM-DD').format('MMMM-YYYY').toUpperCase();
			$('#export').html('');
			var buttons = new $.fn.dataTable.Buttons(table, {
				buttons: [{
					extend: 'collection',
					text: 'Export',
					buttons: [
						/*{extend:'csv',exportOptions:{modifier:{order:'index',page:'All',search:'none'},columns:':visible'},title:company_name,messageTop: report_name+"-"+moment().format('MMMM-YYYY'),filename: report_name+"-"+moment().format('MMMM-YYYY')},*/
						/*{extend:'excel',text: 'MS EXCEL',exportOptions:{modifier:{order :'index',page: 'All',search:'none'},columns: ':not(:first-child)'},customizeData: function ( data ) {
			            for (var i=0; i<data.body.length; i++){
			                for (var j=0; j<data.body[i].length; j++ ){
			                	if(data.body[i][j].length > 14){
			                		if(parseInt(export_type) === 1){
										data.body[i][j] = '\u200C' + data.body[i][j].toUpperCase();
									}else{
										data.body[i][j] = data.body[i][j].toUpperCase();
									}
			                	}else{
			                		if(parseInt(export_type) === 1){
			                			data.body[i][j] = data.body[i][j].toUpperCase();
			                		}else{
			                			data.body[i][j] = data.body[i][j];
			                		}
			                	}                        
			                }
			            }
			        },
			        title:company_name+" - "+company_addr,messageTop: report_name+"-"+moment().format('MMMM-YYYY'),filename: report_name+"-"+moment().format('MMMM-YYYY')},*/
			        {text:'<button class="export_btn" style="background-color: #FFFFFF;border: none;" onclick=ms_excel_copy("'+start_date+'","'+end_date+'")><span>MS EXCEL</span></button>'}
					]
				}],
			}).container().appendTo($('#export'));
		}
	});
	//date picker new model end mrj -29/02/2020
});
function view_form_data(action,title,control,form_id){
	$('.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);
		}
	});
}
//GENERATING EXCEL FOR MS EXCEL COPY ->NB[23-08-23] 
function JSONToXLSXConvertor(JSONData, ReportTitle, ShowLabel, company_name,company_addr) {
  var myFile = ReportTitle + ".xlsx";
  var myWorkSheet = XLSX.utils.json_to_sheet(JSONData,{origin: "A3"});
  myWorkSheet["!cols"] = [{ width: 25 },{width:25},{width:25},{width:25},{width:25},{width: 25},{width:25},{width:25}];

//   var companyCellRef = XLSX.utils.encode_cell({ c: 0, r: 0 });   // Set the company name 
//   myWorkSheet[companyCellRef] = { v: company_name, t: "s", s: { font: { bold: true } } };
//   var companyCellRef = XLSX.utils.encode_cell({ c: 0, r: 1 });   // Set the company addr 
//   myWorkSheet[companyCellRef] = { v: company_addr, t: "s", s: { font: { bold: true } } };

  var myWorkBook = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(myWorkBook, myWorkSheet, "Data");
  XLSX.writeFile(myWorkBook, myFile);
  $('.dataTables_processing').hide(); 
}

function ms_excel_copy(start_date,end_date){
	var company_name      = '<?php echo $company_information->company_name; ?>';
	var company_addr      = <?php echo json_encode($company_information->address);?>;
	var table_head_arr    = <?php echo json_encode($table_head_arr);?>;
	var export_type       = "<?php echo $export_type?>";
	$.confirm({
		title: 'Export to Excel',
		content: '' +
		'<form action="" class="formName">' +
		'<div class="form-group">' +
		'<label>Excel Name</label>' +
		'<input type="text" placeholder="Please Enter Excel Name" name="excel_name"  class="name form-control" required />' +
		'</div>' +
		'</form>',
		buttons: {
			formSubmit: {
				text: 'Export',
				btnClass: 'btn-blue',
				action: function () {
					var excel_name = this.$content.find('.name').val();						
					if(!excel_name){
						$.alert('provide a valid Excel name');
						return false;
					}
					var form_id          = $('#form_id').val();
					var search           = $('input[type="search"]').val();	
					var filter_tbl_val   =  $("input[name='filter_tbl_val[]']").map(function(){return $(this).val();}).get();					
					var filter_label     =  $("input[name='filter_label[]']").map(function(){return $(this).val();}).get();
					var filter_type      =  $("input[name='filter_type[]']").map(function(){return $(this).val();}).get();
					var field_type       =  $("input[name='field_type[]']").map(function(){return $(this).val();}).get();
					var filter_cond      =  $("select[name='filter_cond[]']").map(function(){return $(this).val();}).get();
					var filter_val       =  $("input[name='filter_val[]'],select[name='filter_val[]']").map(function(){
							if($(this).val()){
								var return_data = ($(this).val()).toString();;
								return return_data;
							}else{
								return '';
							}
							}).get();		
					var i = 0;
					var filter_count = [];
					$.each($("input[name='filter_val[]'],select[name='filter_val[]']"), function(){
						var filter_value 	= filter_val[i];
						var filter_cond_val	= filter_cond[i];
						if(filter_value === "" && filter_cond_val === ""){
							console.log(filter_value+""+filter_cond_val);
						}else 
						if(filter_value && filter_cond_val){
							console.log(filter_value+""+filter_cond_val);
						}else{
							filter_count.push(i);
						}	
						i++;
					});
					var filter_count_val = filter_count.length;
					// if(parseInt(i) === 0){
					if(parseInt(filter_count_val) === 0){
						$('.dataTables_processing').html('<span style="color:#CC3366;font-weight:bold;"><i class="fa fa-spinner fa-spin fa-2x fa-fw"></i><br/>Processing the Excel Export.. Please Wait... </span>');
						$('.dataTables_processing').show();
						//Encryption
						var key     = '<?php echo $key; ?>';
						var data    = {excel_name:excel_name,form_id:form_id,filter_label:filter_label,field_type:field_type,filter_type:filter_type,filter_cond:filter_cond,filter_val:filter_val,start_date:start_date,end_date:end_date,filter_tbl_val:filter_tbl_val};
						var encData = encrypt(key,data);
						$.ajax({
							type: "POST",
							url: '<?php echo site_url($controller_name . "/export_to_excel"); ?>',
							data:encData,				
							contentType: 'text/plain',
							success: function(response){
								var rslt = JSON.parse(response);
								if(rslt.success){
									var file_name = '<?php echo base_url(); ?>report_excel/'+rslt.file_name;	// Get Filename
									//Download the Excel file from the given path
									fetch(file_name).then(resp => resp.blob()).then(blob => {
										const url = window.URL.createObjectURL(blob);
										const a   = document.createElement('a');
										a.style.display = 'none';
										a.href    = url;
										// the filename you want
										a.download = excel_name+'.xlsx';
										document.body.appendChild(a);
										a.click();
										window.URL.revokeObjectURL(url);
										$('.dataTables_processing').hide();
										toastr.success(rslt.message); // or you know, something with better UX...
									}).catch(() => {
										toastr.error('Please try Aftersometime..!'); 
									});
									// var length = rslt.search_result.length;
									// var form_rslt_data = rslt.form_rslt_data;
									// var result = rslt.search_result.map(function(obj) {
									//   return Object.keys(obj).reduce(function(r, key) {  
									// 	var k = form_rslt_data[key];
									//     if(typeof(k) === "undefined"){
									//     	var k = key.includes('_') ? key.replace(/_/g," ") : key;
									//     }else{
									// 		var k = form_rslt_data[key]['view_name'];
									//    		var field_type = form_rslt_data[key]['field_type'];
									// 	}
									//     if(obj[key]){
									//     	var obj_value = obj[key].replace("<span style='font-weight:bold;color:#f32828;'>","");
									//     	var obj_value = obj_value.replace("</span>","");
									//     	var obj_value = obj_value.replace(/\~/g,'\"');
									// 		var obj_value = obj_value.replace(/\`/g,'\''); 
									// 		var obj_value = obj_value.replace(/\^/g,'\&');
									// 		if(parseInt(export_type) === 1){
									//   			obj_value = obj_value.toUpperCase();
									//   		}
									//   		if(parseInt(field_type) === 1){ //TEXT
									//   			obj_value = obj_value.toString();
									//   			if(obj_value === 'NaN' || !obj_value){
									// 	  			obj_value = "";
									// 	  		}
									//   		}else
									//   		if(parseInt(field_type) === 2){ //DECIMAL
									//   			obj_value = parseFloat(obj_value);
									//   			if(obj_value === 'NaN' || !obj_value){
									// 	  			obj_value = 0.00;
									// 	  		}
									//   		}else
									//   		if(parseInt(field_type) === 3){ //INTEGER
									// 			var obj_value;
									// 			var obj_key = ['approved_ot_mins', 'total_excess_hours','final_total_work_hours'];
									// 			if(obj_key.includes(key)){
									// 				obj_value = obj[key];
									// 				if(obj_value === 'NaN' || !obj_value){
									// 		  			obj_value = 0.00;
									// 		  		}
									// 			}else{
									// 				obj_value = parseInt(obj_value);
									// 				if(obj_value === 'NaN' || !obj_value){
									// 					obj_value = 0;
									// 				}
									// 			}
									//   		}else
									//   		if(parseInt(field_type) === 4){ //DATE								
									// 			obj_value = moment(obj_value,'DD-MM-YYYY').format('DD-MM-YYYY');
									// 			if(obj_value !== 'Invalid date'){
									// 				// obj_value = new Date(obj_value);
									// 				obj_value = obj_value;
									// 			}else{
									// 				obj_value = "";
									// 			}				
									//   		}else{
									//   			if(obj_value === 'NaN' || !obj_value){
									// 	  			obj_value = "";
									// 	  		}
									//   		}	
									//   		r[k] = obj_value;														   	 	
									//     }else{
									//     	r[k] = obj[key];
									//     }							    
									//     return r;
									//   }, {});
									// });	
									// if(parseInt(length) > 0){
									// 	JSONToXLSXConvertor(result, excel_name, true,company_name,company_addr);
									// }else{
									// 	toastr.error('No Data Available...');
									// 	$('.dataTables_processing').hide();
									// }
								}
							}
						});
					}else{
						toastr.error('Filter condition and value is not equal');
					}
				}
			},
			cancel: function(){
				$('.export_btn').attr('disabled',false);
				$(".export_btn").html("MS EXCEL (COPY)");
			},
		},
		onContentReady: function () {
			this.$content.find('.name').val($('#excel_name').val());
			// bind to events
			var jc = this;
			this.$content.find('form').on('submit', function (e) {
				// if the user submits the form by pressing enter in the field.
				e.preventDefault();
				jc.$$formSubmit.trigger('click'); // reference the button and click it
			});
		}
	});
}
</script>
<style>
	body{
		overflow-x: hidden !important;
	}
	.pull-right.search {
		display: none !important;
	}
	.columns.columns-right.btn-group.pull-right {
		display: none !important;
	}
	span.select2-selection.select2-selection--multiple {
		border: 0px;
		border-radius: 0px;
		border-bottom: 1px solid #CCCCCC;
		padding: 0px 5px !important;
		min-height: 35px !important;
	}
	.print_hide{
		display: none !important;
	}
	.fixed-table-pagination{
		display: none !important;
	}
	<?php 
		if($access_search === 1){
			echo ".pull-right.search { display: block !important; }";
		}
		if($access_export === 1){
			echo ".columns.columns-right.btn-group.pull-right{display: block !important;}";
		}
	?>
	.select2-search__field{
		width: 100% !important;
	}
	.search_td{
		width: 100%;
	}
	.select2-hidden-accessible{
		width: 100% !important;
	}
	.select2-container--default{
		width: 100% !important;
	}
	.daterangepicker .custom-range-inputs input {
		width:130px !important;
	}	
	.select2-container--default .select2-search--inline .select2-search__field {
		width:auto !important;
	}
	
	select[readonly].select2 + .select2-container {
		pointer-events: none;
		touch-action: none;
	}
	input[readonly] {
		pointer-events: none;
		touch-action: none;
	}
</style>
<?php $this->load->view("partial/footer"); ?>