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/.trash/application.1/views/module_setting/module_view.php
<style>
	.sortable {list-style-type:none;margin:0;padding:0;width: auto;}
	.sortable li{margin: 2px 20px 15px 0; padding: 8px; width: 23%; height: auto; font-size: inherit; box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2); background-color: #FFFFFF; border: 0px; border-radius: 2px; cursor: pointer;display: inline-block;}	
	button.dt-button {
		color: #FFFFFF;
		font-weight: 500;
		background-color:#fd8a13 !important;
	}
	.select2-container {
		min-width: 100% !important;
	}
	table tfoot {
		display: table-header-group;
	}
	/* Static Css for switch on off checkbox */
	.switch {
		position: relative;
		display: inline-block;
		width: 60px;
		height: 34px;
	}

	.switch input { 
		opacity: 0;
		width: 0;
		height: 0;
	}

	.slider {
		position: absolute;
		cursor: pointer;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background-color: #ccc;
		-webkit-transition: .4s;
		transition: .4s;
	}

	.slider:before {
		position: absolute;
		content: "";
		height: 26px;
		width: 26px;
		left: 4px;
		bottom: 4px;
		background-color: white;
		-webkit-transition: .4s;
		transition: .4s;
	}

	input:checked + .slider {
		background-color: #2196F3;
	}

	input:focus + .slider {
		box-shadow: 0 0 1px #2196F3;
	}

	input:checked + .slider:before {
		-webkit-transform: translateX(26px);
		-ms-transform: translateX(26px);
		transform: translateX(26px);
	}

	/* Rounded sliders */
	.slider.round {
		border-radius: 34px;
	}

	.slider.round:before {
		border-radius: 50%;
	}
</style>
<ul class="nav nav-tabs" data-tabs="tabs">
	<li class="active" role="presentation">
		<a data-toggle="tab" href="#module_info">Module Information</a>
	</li>
	<li role="presentation">
		<a data-toggle="tab" href="#query_info">Basic Search Query</a>
	</li>
	<?php if($prime_module_id === "employees") {?>
	<li role="presentation">
		<a data-toggle="tab" href="#payroll_info">Payroll Formula</a>
	</li>
	<li role="presentation">
		<a data-toggle="tab" href="#payroll_function">Payroll Function</a>
	</li>
	<li role="presentation">
		<a data-toggle="tab" href="#column_mapping" id='col_mapping'>Function Column Mapping</a>
	</li>
	<li role="presentation">
		<a data-toggle="tab" href="#formula_transfer">Formula Transfer</a>
	</li>
	<?php }?>
	<li role="presentation">
		<a data-toggle="tab" href="#print_map">Print Map</a>
	</li>
	</ul>
	
<div class="tab-content">
	<div class="tab-pane fade in active" id="module_info">
		<?php echo form_open('module_setting/save_module/' . $prime_module_id,array('id'=>'save_module','class'=>'form-inline')); ?>
			<div class="form-group">
				<?php			
					echo form_label($this->lang->line('module_id'), 'module_id', array('class' => 'required'));
					echo form_input(array('name'=>'prime_module_id', 'id'=>'prime_module_id', 'type'=>'Hidden','value'=>$prime_module_id));
					echo form_input(array('name'=> 'module_id', 'id' => 'module_id', 'class' => 'form-control input-sm', "placeholder"=>$this->lang->line('module_id'),'value' => ucwords(str_replace("_"," ",$module_info->module_id))));
				?>
			</div>
			<div class="form-group">
				<?php			
					echo form_label($this->lang->line('module_name'), 'module_name', array('class' => 'required'));
					echo form_input( array('name'=>'prime_module_id', 'id'=>'prime_module_id', 'type'=>'Hidden','value'=>$prime_module_id));
					echo form_input(array('name'=> 'module_name', 'id' => 'module_name', 'class' => 'form-control input-sm', "placeholder"=>$this->lang->line('module_name'),'value' => ucwords(str_replace("_"," ",$module_info->module_name))));
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('rights_to'), 'rights_to', array('class' => 'required'));
					$rights_to_val = "";
					if($module_info->rights_to){
						$rights_to_val = explode(",",$module_info->rights_to);
					}
					$rights_to_array =  array(""=>"---- Rights to ----",1=>"Admin Module",2=>"Customer Module");
					echo form_dropdown(array('name' => 'rights_to[]','multiple id' =>'rights_to','class' => 'form-control input-sm select2'), $rights_to_array,$rights_to_val);
					echo "<label><input name='rights_to_select' id='rights_to_select' type='checkbox'> Select All</label>";
				?>
			</div>	
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('module_for'), 'module_for', array('class' => 'required'));
					$module_for_val = "";
					if($module_info->module_for){
						$module_for_val = explode(",",$module_info->module_for);
					}
					echo form_dropdown(array('name' => 'module_for[]','multiple id' =>'module_for','class' => 'form-control input-sm select2'), $module_for,$module_for_val);
					echo "<label><input name='module_for_select' id='module_for_select' type='checkbox'> Select All</label>";
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('map_menu_to'), 'map_menu_to', array('class' => 'required'));
					echo form_dropdown(array('name' => 'map_menu_to','id' =>'map_menu_to','class' => 'form-control input-sm'), $map_menu_to,$module_info->menu_id);
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('sub_map_menu_to'), 'sub_map_menu_to', array('class' => 'required'));
					echo form_dropdown(array('name' => 'sub_map_menu_to','id' =>'sub_map_menu_to','class' => 'form-control input-sm'), $sub_map_menu_to,$module_info->sub_menu_id);
				?>
			</div>
			<div class="form-group">
				<?php
					$module_type = array(""=>"--- Select Module Type ---","dynamic"=>"dynamic","partially_dynamic"=>"PARTIALLY DYNAMIC","custome"=>"CUSTOME");
					$module_type_id = $module_info->module_type;
					echo form_label($this->lang->line('module_type'), 'module_type', array('class' => 'required'));
					echo form_dropdown(array('name' => 'module_type','id' =>'module_type','class' => 'form-control input-sm'), $module_type,$module_type_id);
				?>
			</div>
			<div class="form-group">
				<?php
					$menu_types = array(""=>"--- Icon Based ---","1"=>"Yes","2"=>"No");
					$menu_type = $module_info->menu_type;
					echo form_label("Icon Based", 'menu_type', array('class' => 'required'));
					echo form_dropdown(array('name' => 'menu_type','id' =>'menu_type','class' => 'form-control input-sm'), $menu_types,$menu_type);
				?>
			</div>
			<div class="form-group" style="display:none;">
			<?php
				$label_id    = "menu_icon";
				$value       = $module_info->menu_icon;
				$upload_id   = "upload_$label_id";
				$tabel_id    = "table_$label_id";
				$proof       = base_url("$value"); //accept need to be added 
				echo form_label("Choose Icon", 'upload_menu_icon', array('class' => 'required'));
				echo form_upload(array('name' => $upload_id,'id' => $upload_id,'class' => 'form-control input-sm','value' => $input_value ));
				
				$remove_btn = "";
				$view_btn = "";
				if($value){
					$file_name = explode("/",$value);
					$file_name = $file_name[2];
					$remove_btn = "<a onclick=remove_file('$prime_module_id','$label_id'); style='color: red; cursor: pointer;'><i class='fa fa-times' aria-hidden='true'></i></a>";
					$view_btn   = "<a href='$proof' target='_blank' style='cursor: pointer;'>$file_name</a>";
				}
				$row_send_data  .= "$upload_old:$('#$upload_old').val(),";
				
				echo "<input type='hidden' id='$label_id' name='$label_id' value='$value'>
						<table style='width: 100%;' id='$tabel_id'>								
								<tr>
									<td>$remove_btn</td>
									<td style='text-overflow: ellipsis; overflow: hidden; white-space: nowrap; max-width: 100px;'>$view_btn</td>
								</tr>
							</table>";
				$upload_id   = "upload_".$label_id;
				$check_size  = 2;
				$send_url	 = base_url("upload_files/upload.php?send_from=$controller_name&send_for=$upload_id&extension=png,pdf,jpg,jpeg");
				$document_load_script = "$('#$upload_id').change(function() {
					var file_data = $('#$upload_id').prop('files')[0];
					var size = file_data.size;
						if(file_data){
							var form_data = new FormData();
							form_data.append('$upload_id', file_data);
							$.ajax({
								url: '$send_url',
								cache: false,
								contentType: false,
								processData: false,
								data: form_data,
								beforeSend: function(){
								  $('#div_$label_id').show();
								  $('#submit').html('<i class=\"fa fa-spinner fa-spin\"></i> Processing...');
								  $('#submit').attr('disabled','disabled');
								  //progress_bar('$label_id');
								},
								type: 'post',
								success: function(result_data){
									var rslt = JSON.parse(result_data);
									if(rslt['success']){
										$('#$label_id').val(rslt['path']);
									}else{
										toastr.error(rslt['msg']);
										$('#$upload_id').val('');
									}
								}
							});							 
						}else{
							toastr.error('Please select file to upload');
						}
				});" ?>
			</div>
		<?php if($prime_module_id !== 0){ ?>
			<div class="form-group">
				<?php
					$left_freeze = array(""=>"--- Select ---","1"=>"1","2"=>"2","3"=>"3","4"=>"4","5"=>"5","6"=>"6","7"=>"7","8"=>"8");
					$left_freeze_id = $module_info->left_freeze;
					echo form_label($this->lang->line('left_freeze'), 'left_freeze', array('class' => 'required'));
					echo form_dropdown(array('name' => 'left_freeze','id' =>'left_freeze','class' => 'form-control input-sm'), $left_freeze,$left_freeze_id);
				?>
			</div>
			<div class="form-group">
				<?php
					$right_freeze = array(""=>"--- Select ---","1"=>"1","2"=>"2","3"=>"3","4"=>"4","5"=>"5","6"=>"6","7"=>"7","8"=>"8");
					$right_freeze_id = $module_info->right_freeze;
					echo form_label($this->lang->line('right_freeze'), 'right_freeze', array('class' => 'required'));
					echo form_dropdown(array('name' => 'right_freeze','id' =>'right_freeze','class' => 'form-control input-sm'), $right_freeze,$right_freeze_id);
				?>
			</div>
		<?php } ?>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('quicklink'), 'quicklink', array('class' => ''));
					$quicklink_val = "";
					if($module_info->quicklink){
						$quicklink_val = explode(",",$module_info->quicklink);
					}
					echo form_dropdown(array('name' => 'quicklink[]','multiple id' =>'quicklink','class' => 'form-control input-sm select2'), $quicklink_list,$quicklink_val);
				?>
			</div>
			<div class="form-group">
				<label class="checkbox-inline">
					<?php
						echo form_checkbox(array(
						'name' => 'show_module',
						'id' => 'show_module',
						'value' => 1,
						'checked' => ($module_info->show_module) ? 1 : 0)
						);
					?>
					<?php echo form_label("Show Module", 'show_module', array('class' => '')); ?>
				</label>
			</div>
			<div class="form-group">
				<label class="checkbox-inline">
					<?php
						echo form_checkbox(array(
						'name' => 'import_module',
						'id' => 'import_module',
						'value' => 1,
						'checked' => ($module_info->import_module) ? 1 : 0)
						);
					?>
					<?php echo form_label("Import for Module", 'import_module', array('class' => '')); ?>
				</label>
			</div>
			<div class="form-group">
				<label class="checkbox-inline">
					<?php
						echo form_checkbox(array(
						'name' => 'pdf_module',
						'id' => 'pdf_module',
						'value' => 1,
						'checked' => ($module_info->pdf_module) ? 1 : 0)
						);
					?>
					<?php echo form_label("PDF for Module", 'pdf_module', array('class' => '')); ?>
				</label>
			</div>
			<div class="form-group">
				<label class="checkbox-inline">
					<?php
						echo form_checkbox(array(
						'name' => 'custom_module',
						'id' => 'custom_module',
						'value' => 1,
						'checked' => ($module_info->custom_module) ? 1 : 0)
						);
					?>
					<?php echo form_label("Custom Design", 'custom_module', array('class' => '')); ?>
				</label>
			</div>
			<div class="form-group">
				<label class="checkbox-inline">
					<?php
						echo form_checkbox(array(
						'name' => 'email_setting',
						'id' => 'email_setting',
						'value' => 1,
						'checked' => ($module_info->email_setting) ? 1 : 0)
						);
					?>
					<?php echo form_label("Email Setting", 'email_setting', array('class' => '')); ?>
				</label>
			</div>
			<div class="form-group">
				<label class="checkbox-inline">
					<?php
						echo form_checkbox(array(
						'name' => 'sms_setting',
						'id' => 'sms_setting',
						'value' => 1,
						'checked' => ($module_info->sms_setting) ? 1 : 0)
						);
					?>
					<?php echo form_label("Sms Setting", 'sms_setting', array('class' => '')); ?>
				</label>
			</div>

			<?php
				$temp_style = '';
				if($prime_module_id === 0){
					$temp_style = 'style="display:none;"';
				}
			?>
			<div class="form-group" <?php echo $temp_style;?>>
				<label class="checkbox-inline switch">
					<?php
						echo form_checkbox(array(
						'name' => 'temp_mand',
						'id' => 'temp_mand',
						'value' => 1,
						'checked' => ($module_info->temp_mand || $prime_module_id === 0) ? 1 : 0)
						);
					?>
					<span class="slider round"></span>
				</label>
				<?php 
					echo form_label("Mandatory", 'temp_mand', array('class' => '')); 
				?>
			</div>
			<div class="form-group">
				<button class='btn btn-primary btn-sm' id="module_submit">Add/Update</button>
			</div>
		<?php echo form_close(); ?>
	</div>
	<div class="tab-pane fade" id="query_info">
		<?php echo form_open('module_setting/save_query_info/' . $prime_module_id,array('id'=>'save_query_info','class'=>'form-inline')); ?>
			<div class="form-group">
				<?php
					echo form_input( array('name'=>'prime_table_id', 'id'=>'prime_table_id', 'type'=>'Hidden','value'=>0));
					echo form_input( array('name'=>'query_module_id', 'id'=>'query_module_id', 'type'=>'Hidden','value'=>$prime_module_id));
					echo form_input( array('name'=>'query_type', 'id'=>'query_type', 'type'=>'Hidden','value'=>''));
					echo form_label($this->lang->line('query_for'), 'field_for', array('class' => 'required'));
					echo form_dropdown(array('name' => 'query_for','id' =>'query_for','class' => 'form-control input-sm'), $user_field_for);
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('query_column_list'), 'pick_list', array('class' => 'required'));
					echo form_dropdown(array('name' => 'query_column_list','id' =>'query_column_list','class' => 'form-control input-sm'), $column_list);
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('picklist_type'), 'query_type', array('class' => 'required'));
					$query_type_array = array(''=>"--- Select Get Value from ---","1"=>"Get From Picklist ","2"=>"Get From Session");
					echo form_dropdown(array('name' => 'picklist_type','id' =>'picklist_type','class' => 'form-control input-sm'), $query_type_array);
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('pick_list'), 'pick_list', array('class' => 'required'))."<br/>";
					echo form_dropdown(array('name' => 'pick_list[]','multiple id' =>'pick_list','class' => 'form-control input-sm select2'));
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('session_list'), 'session_list', array('class' => 'required'));
					echo form_dropdown(array('name' => 'session_list','id' =>'session_list','class' => 'form-control input-sm'));
				?>
			</div>
			<div class="form-group">
				<a class='btn btn-edit btn-sm' id="apply_condition">Apply to Condition</a>
			</div>
			<br/>
			<div style='padding: 15px 0px; background-color: #efefef;'>
				<div class="form-group" style="width:75% !important;margin-bottom: 0px !important;">
					<textarea name='where_condition' id='where_condition' style='text-transform: lowercase !important;' class='form-control' rows='4'  placeholder='Write Condition with out where' >and</textarea>
				</div>
				<div class="form-group">
					<button class='btn btn-primary btn-sm' id="save_query_btn">Add/Update</button>
				</div>
			</div>
		<?php echo form_close(); ?>
		<div id='table_query_list'>
			<?php
				echo $table_query_list;
			?>
		</div>
	</div>
	<div class="tab-pane fade" id="payroll_info">
		<?php echo form_open('module_setting/save_payroll_info/' . $prime_module_id,array('id'=>'save_payroll_info','class'=>'form-inline')); ?>
		<div class="form-group">
			<?php
				echo form_input( array('name'=>'prime_payroll_id', 'id'=>'prime_payroll_id', 'type'=>'Hidden','value'=>0));
				echo form_label($this->lang->line('formula_for'), 'formula_for', array('class' => 'required'));
				echo form_dropdown(array('name' => 'formula_for','id' =>'formula_for','class' => 'form-control input-sm select2'), $field_for);
			?>
		</div>
		<div class="form-group">
			<?php
				echo form_label($this->lang->line('formula_type'), 'formula_type', array('class' => 'required'));
				$formula_type_list = array(""=>"--- Select Type ---",1=>"Earnings",2=>"Deductions");
				echo form_dropdown(array('name' => 'formula_type','id' =>'formula_type','class' => 'form-control input-sm select2'), $formula_type_list);
			?>
		</div>
		<div class="form-group">
			<?php
				echo form_label($this->lang->line('formula_mode'), 'formula_mode', array('class' => 'required'));
				$formula_mode_list = array(""=>"--- Formula Mode ---","1"=>"Direct Input","2"=>"Formula Input","3"=>"Condition Input");
				echo form_dropdown(array('name' => 'formula_mode','id' =>'formula_mode','class' => 'form-control input-sm select2'), $formula_mode_list);
			?>
		</div>
		<div class="form-group">
			<?php
				echo form_label($this->lang->line('out_column'), 'out_column', array('class' => 'required'));
				echo form_dropdown(array('name' => 'out_column','id' =>'out_column','class' => 'form-control input-sm select2'), $out_column_list);
			?>
		</div>
		<div class="form-group">
			<?php
				echo form_label($this->lang->line('earn_column'), 'earn_column', array('class' => ''));
				echo form_dropdown(array('name' => 'earn_column','id' =>'earn_column','class' => 'form-control input-sm select2'), $earn_column_list);
			?>
		</div>
		<div class="form-group">
			<?php
				echo form_label($this->lang->line('ded_column'), 'ded_column', array('class' => ''));
				echo form_dropdown(array('name' => 'ded_column','id' =>'ded_column','class' => 'form-control input-sm select2'), $ded_column_list);
			?>
		</div>
		<div class="form-group">
			<?php
				echo form_label($this->lang->line('round_value'), 'round_value', array('class' => ''));
				$rounding_list = array(""=>"--- Rounding Value ---","0.1"=>"Normal","0.5"=>"50 Paise",">0.5"=>"> 50 Paise","<0.5"=>"< 50 Paise","1"=>"1 Rupee",">1"=>"> 1 Rupee","<1"=>"< 1 Rupee","5"=>"5 Rupee","10"=>"10 Rupee","50"=>"50 Rupee","100"=>"100 Rupee");
				echo form_dropdown(array('name' => 'round_value','id' =>'round_value','class' => 'form-control input-sm select2'), $rounding_list);
			?>
		</div>
		<div class = "col-md-12">
			<div class="col-md-6">
					<textarea name='payroll_formula' style='text-transform: lowercase !important;' id='payroll_formula' class='form-control' rows='4' placeholder='Write Condition'></textarea>
			</div>			
			<div class="col-md-2" style = "display:none;">
				<?php
					echo form_label('Order By', 'order_by', array('class' => 'required'));
					echo form_input(array( 'name' => 'order_by', 'id' => 'order_by', 'class' => 'form-control input-sm number', 'placeholder'=>'Order By','value' => ''));
				?>
			</div>
			<div class="col-md-2" style = "padding:21px;">
				<label>
					<input name='fandf_only' id='fandf_only' type="checkbox"> F and F Only
				</label>
			</div>
			<div class="col-md-2" style = "padding:21px;">
				<button class='btn btn-primary btn-sm' id="save_payroll_btn">Add/Update</button>
				<a class='btn btn-danger btn-sm' id="payroll_cancel">Cancel</a>
			</div>
		</div>
		<?php echo form_close(); ?>
		<div id='formula_content' style="padding:10px; height: 450px !important; overflow: auto;">
			<?php
				echo $formula_content;
			?>
		</div>
	</div>
	<!-- 01MARCH2018--MRJ start -->
	<div class="tab-pane fade" id="payroll_function">
		<?php echo form_open('module_setting/save_payroll_function/' . $prime_module_id,array('id'=>'save_payroll_function','class'=>'form-inline')); ?>
			<div class="form-group">
				<?php
				echo form_input( array('name'=>'input_count', 'id'=>'input_count', 'type'=>'Hidden','value'=>0));
					echo form_input( array('name'=>'payroll_function_id', 'id'=>'payroll_function_id', 'type'=>'Hidden','value'=>0));
					echo form_label($this->lang->line('statutory_name'), 'statutory_name', array('class' => 'required'));
					echo form_dropdown(array('name' => 'statutory_name','id' =>'statutory_name','class' => 'form-control input-sm select2'), $statutory_name_list);
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('map_column'), 'map_column', array('class' => 'required'));
					echo form_dropdown(array('name' => 'map_column','id' =>'map_column','class' => 'form-control input-sm select2'), $trans_column_list);
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('input_column'), 'input_column', array('class' => 'required'));
					echo "<br/>";
					echo form_dropdown(array('name' => 'input_column[]','multiple id' =>'input_column','class' => 'form-control input-sm select2'), $trans_column_list);
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('function_name'), 'function_name', array('class' => 'required'));
					echo form_dropdown(array('name' => 'function_name','id' =>'function_name','class' => 'form-control input-sm select2'), $statutory_function_list);
				?>
			</div>
			<div class="form-group">
				<button class='btn btn-primary btn-sm' id="save_payroll_function_btn">Add/Update</button>
				<a class='btn btn-danger btn-sm' id="function_cancel">Cancel</a>
			</div>
		<?php echo form_close(); ?>
		<div class='row' style="margin-left: 30px;"><h5 style="color:red; font-weight: bold;">Note : Input Column Order </h5> <p class='info_tag'></p>
		</div>
		
		<div id='function_list'  style='padding:20px;'>
			<?php
				echo $function_list;
			?>
		</div>
	</div>
	<!-- 01MARCH2018--MRJ start -->
	<div class="tab-pane fade" id="column_mapping">
		<?php echo form_open('module_setting/save_column_mapping/' . $prime_module_id,array('id'=>'save_column_mapping','class'=>'form-inline')); ?>
			<div class="form-group">
				<?php
				echo form_input( array('name'=>'payroll_column_map_id', 'id'=>'payroll_column_map_id', 'type'=>'Hidden','value'=>0));
				$loc_column_list = array(""=>"-- Select Column --","pt_gross"=>"PT Gross","earned_gross"=>"Earned Gross","fixed_gross"=>"Fixed Gross","fixed_basic"=>"Fixed Basic","paid_days"=>"Paid Days","month_days"=>"Month Days","lop_days"=>"Lop Days","professional_tax_amount"=>"Professional Tax","esi_loc"=>"ESI Location","esi_elig"=>"ESI Eligibility","supp_month_days"=>"Supplementary Month days","supp_paid_days"=>"Supplementary Paid days","arrear_gross"=>"Arrear Gross","arrear_pf_gross"=>"Arrear PF Gross","arrear_pf"=>"Arrear PF","earned_basic"=>"Earned Basic","father_name"=>"Father Name","role"=>"Category","emp_name"=>"Employee Name","department"=>"Department","designation"=>"Designation","date_of_birth"=>"Date Of Birth","gender"=>"Gender","date_of_joining"=>"Date Of Joining","pf_account_number"=>"PF Account Number","prime_employees_id"=>"Prime Employees Id","admin_charge"=>"Admin Charge","inspections_charge"=>"Inspections Charge","edli_charge"=>"Edli Charge","pf_gross"=>"PF Gross","pf"=>"PF","fpf"=>"FPF","epf"=>"EPF","vpf"=>"VPF","last_working_date"=>"Last Working Date","separation_reason"=>"Separation Reason","employee_code"=>"Employee Code","transactions_month"=>"Transactions Month","earning_range_from" =>"Earning Range From","earning_range_to"=>"Earning Range To","esi_number"=>"ESI Number","gross_salary"=>"Gross Salary","emp_con"=>"Emp Contribution","days_worked"=>"Days Worked","fixed_pf_gross"=>"Fixed Pf Gross","fixed_esi_gross"=>"Fixed Esi Gross","fixed_pt_gross"=>"Fixed Pt Gross","pf_limit"=>"Pf Limit","esi_limit"=>"Esi Limit","fixed_pf"=>"Fixed PF Amount","one_time_tds"=>"One Time TDS","monthly_tds"=>"Monthly TDS","fixed_ctc"=>"Fixed CTC");
					echo form_label("Column Name", 'loc_name', array('class' => 'required'));
					echo form_dropdown(array('name' => 'loc_name','id' =>'loc_name','class' => 'form-control input-sm select2'), $loc_column_list);
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label("DB Column", 'db_column', array('class' => 'required'));
					echo form_dropdown(array('name' => 'db_column','id' =>'db_column','class' => 'form-control input-sm select2'), $trans_column_list);
				?>
			</div>
			<div class="form-group">
				<button class='btn btn-primary btn-sm' id="save_column_mapping_btn">Add/Update</button>
			</div>
		<?php echo form_close(); ?>
		<div id='mapping'  style='padding:20px;'>
			<?php
				echo $mapping_list;
			?>
		</div>
	</div>
	<!-- 01MARCH2018--MRJ end -->
	<!-- 10APRIL2019--MRJ start -->
	<div class="tab-pane fade" id="formula_transfer">
	<?php echo form_open('module_setting/save_formula_transfer/' . $prime_module_id,array('id'=>'save_formula_transfer','class'=>'form-inline')); ?>
		<div class="form-group">
			<?php
				echo form_label('Select Category', 'select_category', array('class' => 'required'));
				echo form_dropdown(array('name' => 'select_category','id' =>'select_category','class' => 'form-control input-sm'), $formula_role_for);
			?>
		</div>		
		<div class="form-group">
			<?php
				echo form_label('Formula Transfer', 'formula_transfer_to', array('class' => 'required'));
				echo form_dropdown(array('name' => 'formula_transfer_to','id' =>'formula_transfer_to','class' => 'form-control input-sm'), $noformula_role_for);
			?>
		</div>
		<div class="form-group">
			<button class='btn btn-primary btn-sm' id="save_formula_transfer_btn">Submit</button>
		</div>
	<?php echo form_close(); ?>
	</div>
	<!-- 10APRIL2019--MRJ end -->
	<div class="tab-pane fade" id="print_map">
		<?php echo form_open('module_setting/save_print_map/' . $prime_module_id,array('id'=>'save_print_map','class'=>'form-inline')); ?>
			<div class="form-group">
				<?php
					echo form_input( array('name'=>'prime_print_map_id', 'id'=>'prime_print_map_id', 'type'=>'Hidden','value'=>0));
					echo form_input( array('name'=>'print_map_module_id', 'id'=>'print_map_module_id', 'type'=>'Hidden','value'=>$prime_module_id));
					echo form_label($this->lang->line('print_map_for'), 'print_map_for', array('class' => 'required'));
					$print_map_for_line = array("0"=>"-- Select Print For --","1"=>"Payslip Formates","2"=>"F&F Payslip Formates","3"=>"Form M","4"=>"PF Challan","5"=>"ESI","6"=>"Professional TAX","7"=>"Bonus");
					echo form_dropdown(array('name' => 'print_map_for','id' =>'print_map_for','class'=>'form-control input-sm'), $print_map_for_line);
				?>
			</div>
			<div class="form-group">
				<?php
					echo form_label($this->lang->line('print_mapping'), 'print_mapping', array('class' => 'required'));
					echo form_dropdown(array('name' => 'print_mapping[]','multiple id' =>'print_mapping','class'=>'form-control input-sm select2'), $print_map_list);
				?>
			</div>
			<div class="form-group">
				<button class='btn btn-primary btn-sm' id="save_print_map_btn">Add/Update</button>
			</div>
		<?php echo form_close(); ?>
		<div id='print_info_list' style="padding:10px;">
			<?php echo $print_info_list;?>
		</div>
	</div>
</div> 

<script type="text/javascript">
$(document).ready(function(){

	var menu_type = $("#menu_type").val();
	icon_upload_hide_show(menu_type);
	$('#menu_type').change(function(){
		var menu_type = $("#menu_type").val();
		icon_upload_hide_show(menu_type);
	});
	//icon upload hide & show
	function icon_upload_hide_show(menu_type){
		if(parseInt(menu_type) === 1){
			$('#upload_menu_icon').removeClass('ignore');
			$('#upload_menu_icon').parent().show();
		}else{
			$('#upload_menu_icon').parent().hide();
			$('#upload_menu_icon').addClass('ignore');
		}
	}
	var menu_icon = $("#menu_icon").val();
	menu_icon_hide_show(menu_icon);
	$('#menu_type').change(function(){
		var menu_icon = $("#menu_icon").val();
		menu_icon_hide_show(menu_icon);
	});
	function menu_icon_hide_show(menu_icon){
		if(menu_icon){
			$('#upload_menu_icon').removeClass('required');
		}else{
			$('#upload_menu_icon').addClass('required');
		}
	}
	//sorting word in ascending order
	$("#out_column").html($('#out_column option').sort(function(x, y) {
		 return $(x).text().toUpperCase() < $(y).text().toUpperCase() ? -1 : 1;
	}));
	$("#earn_column").html($('#earn_column option').sort(function(x, y) {
		 return $(x).text().toUpperCase() < $(y).text().toUpperCase() ? -1 : 1;
	}));
	$("#ded_column").html($('#ded_column option').sort(function(x, y) {
		 return $(x).text().toUpperCase() < $(y).text().toUpperCase() ? -1 : 1;
	}));
	$("#map_column").html($('#map_column option').sort(function(x, y) {
		 return $(x).text().toUpperCase() < $(y).text().toUpperCase() ? -1 : 1;
	}));
	$("#input_column").html($('#input_column option').sort(function(x, y) {
		 return $(x).text().toUpperCase() < $(y).text().toUpperCase() ? -1 : 1;
	}));
	
	empty_all();
	call_select();
	$("#rights_to_select").click(function(){
		if($("#rights_to_select").is(':checked') ){
			$("#rights_to > option").prop("selected","selected");
			$("#rights_to").trigger("change");
		}else{
			$("#rights_to > option").removeAttr("selected");
			$("#rights_to").trigger("change");
		}
		$('#rights_to option').filter(function(){
			return !this.value || $.trim(this.value).length == 0;
		}).remove();
	});
	$("#module_for_select").click(function(){
		if($("#module_for_select").is(':checked') ){
			$("#module_for > option").prop("selected","selected");
			$("#module_for").trigger("change");
		}else{
			$("#module_for > option").removeAttr("selected");
			$("#module_for").trigger("change");
		}
		$('#module_for option').filter(function(){
			return !this.value || $.trim(this.value).length == 0;
		}).remove();
	});
	var prime_module_id = '<?php echo $prime_module_id; ?>';
	if(prime_module_id !== "0"){
		$('#module_id').attr('readonly', true);
	}
	var rights_to_val  = '<?php echo $rights_to_val; ?>';
	if(rights_to_val === ""){
		$('#rights_to option:selected').removeAttr('selected');
	}
	var pick_list  = $("#pick_list").val();
	if(pick_list === ""){
		$('#pick_list option:selected').removeAttr('selected');
	}
	var module_for_val  = '<?php echo $module_for_val; ?>';
	if(module_for_val === ""){
		$('#module_for option:selected').removeAttr('selected');
	}
	var quicklink_val   = '<?php echo $quicklink_val; ?>';
	if(quicklink_val === ""){
		$('#quicklink option:selected').removeAttr('selected');
	}	
	
	$('#where_condition').bind('keyup blur change', function(e) {
		where_condition = $("#where_condition").val();
		if(where_condition === ""){
			$("#where_condition").val("and");
		}
	});

	//Freeze Count check
	var left_freeze_old 	= $("#left_freeze").val();
	var right_freeze_old 	= $("#right_freeze").val();
	var freeze_count 		= "<?php echo $freeze_count;?>";
	$("#left_freeze,#right_freeze").change(function(){
		var left_freeze 	= $("#left_freeze").val();
		var right_freeze 	= $("#right_freeze").val();
		if(parseInt(left_freeze) > parseInt(freeze_count)){
			$("#left_freeze").val(left_freeze_old);
			toastr.error("Please Check Your Table Count");
		}
		if(parseInt(right_freeze) > parseInt(freeze_count)){
			$("#right_freeze").val(right_freeze_old);
			toastr.error("Please Check Your Table Count");
		}

	});
	
	//GET SUB MENU FOR MAIN MENU
	var prime_menu_id 	  = $("#map_menu_to").val();
	$('#map_menu_to').on('change',function(){
		var prime_menu_id = parseInt($('#map_menu_to').val());
		get_sub_menu(prime_menu_id);
	});
	get_sub_menu(prime_menu_id);
	
	$('#picklist_type,#pick_list,#session_list').parent().hide();
	$("#query_column_list").change(function(){
		query_column    = $("#query_column_list").val();
		query_module_id = $("#query_module_id").val();
		if(query_column){
			$.ajax({
				type: "POST",
				url: '<?php echo site_url($controller_name . "/get_column_info"); ?>',
				data: {query_column:query_column,query_module_id:query_module_id},
				success: function(data) {
					var rslt = JSON.parse(data);
					$('#pick_list').empty();
					$('#session_list').empty();
					$('#picklist_type,#pick_list,#session_list').parent().hide();
					if(rslt.success){
						if(rslt.type === "pick_list"){
							var pick_option ="";
							$.each(rslt.pick_list, function( key, value ) {
							  pick_option += '<option value="' + key + '">' + value + '</option>';
							});
							$('#pick_list').append(pick_option);
							
							var session_option ="";
							$.each(rslt.session_list, function( key, value ) {
							  session_option += '<option value="' + key + '">' + value + '</option>';
							});
							$('#session_list').append(session_option);
							$('#picklist_type').parent().show();
						}else
						if(rslt.type === "session_list"){
							var option ="";
							$.each(rslt.session_list, function( key, value ) {
							  option += '<option value="' + key + '">' + value + '</option>';
							});
							$('#session_list').append(option);
							$('#session_list').parent().show();
						}					
						$("#query_type").val(rslt.type);
					}else{
						toastr.error(rslt.msg);
					}
				},
			});
		}
	});
	$("#picklist_type").change(function(){
		$('#pick_list,#session_list').parent().hide();
		picklist_type = $("#picklist_type").val();
		if(picklist_type === "1"){
			$('#pick_list').parent().show();
		}else
		if(picklist_type === "2"){
			$('#session_list').parent().show();
		}
	});
	$("#apply_condition").click(function(){
		query_column = $("#query_column_list").val();
		query_type   = $("#query_type").val();
		var fill_val = "";
		if(query_column){
			if(query_type === "pick_list"){
				picklist_type = $("#picklist_type").val();
				if(picklist_type === "1"){
					sub_value     = $("#pick_list").val();
					if(sub_value){
						fill_val = query_column + " in(^"+sub_value+"^) ";
					}else{
						toastr.error("Please select pick list value");
						return false;
					}
				}else
				if(picklist_type === "2"){
					sub_value = $("#session_list").val();
					sub_value = sub_value.split('|');
					sub_value = sub_value[1];
					if(sub_value){
						fill_val = query_column + " in(^@"+sub_value+"@^)";
					}else{
						toastr.error("Please select session value");
						return false;
					}
				}
			}else
			if(query_type === "session_list"){
				sub_value = $("#session_list").val();
				sub_value = sub_value.split('|');
				sub_value = sub_value[1];
				if(sub_value){
					fill_val = query_column + " = ^@"+sub_value+"@^";
				}else{
					toastr.error("Please select session value");
					return false;
				}
			}else{
				toastr.error("Invalid column");
				return false;
			}
		}else{
			toastr.error("Please select column value");
			return false;
		}
		if(fill_val){
			where_condition = $("#where_condition").val();
			fill_val = where_condition +" "+fill_val;
			$("#where_condition").val(fill_val);
		}
	});

	$(".number").bind('keyup', function(e){
		this.value = this.value.replace(/[^0-9_.]/g,'');
	});
	$.validator.addMethod("alphanumeric", function(value, element) {
        return this.optional(element) || /^[a-zA-Z0-9 ]*$/i.test(value);
    }, "Must contain only letters and numbers");
	$.validator.addMethod("space_check", function(value, element) {
        return this.optional(element) || /^(\w+\s?)*\s*$/i.test(value);
    }, "Must contain single space");
	
	jQuery.validator.addMethod("notEqual", function (value, element, param) { // Adding rules for Amount(Not equal to zero)
		return this.optional(element) || value != 'and';
	}, "Write Condition after and");
	
	$('#save_module').validate($.extend({
		submitHandler: function (form){
			$("#module_submit").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#module_submit').attr('disabled','disabled');
			$(form).ajaxSubmit({
				success: function (response){
					$('#module_submit').attr('disabled',false);
					$("#module_submit").html("Add/Update");
					if(response.success){
						toastr.success(response.message);
						table_support.refresh();
						$('.modal').modal('hide');
					}else{
						toastr.error(response.message);
					}
				},
				dataType: 'json'
			});
		},
		rules:{
			module_id: {
				required: true,
				alphanumeric:true,
				space_check:true,
			},
			module_name: {
				required: true,
				alphanumeric:true,
				space_check:true,
			},
			menu_type:"required",
			map_menu_to: "required",
			module_type: "required",
			"module_for[]": "required",
			"rights_to[]": "required",
		}
	}));
	
	$('#save_query_info').validate($.extend({
		submitHandler: function (form){
			$("#save_query_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#save_query_btn').attr('disabled','disabled');
			$(form).ajaxSubmit({
				success: function (response){
					$('#save_query_btn').attr('disabled',false);
					$("#save_query_btn").html("Add/Update");
					if(response.success){
						toastr.success(response.message);
						$("#table_query_list").html(response.table_query_list);
						document.getElementById("save_query_info").reset();
						$("#prime_table_id").val(0);
					}else{
						toastr.error(response.message);
					}
				},
				dataType: 'json'
			});
		},
		rules:{
			query_for: "required",
			where_condition: {
				required:true,
				notEqual: true,
			}
		}
	}));
	
	//08MAY2019--MRJ and GS Updates
	//Front validation start
	//1. outcolumn not equal to formula input formula_mode(formula,condition)
	
	var formula_mode_check_value = 1;
	$('#earn_column,#ded_column').change(function(event){
		var formula_mode = $('#formula_mode').val();
		if((parseInt(formula_mode) === 2) || (parseInt(formula_mode) === 3)){			
			if($(this).val()==$("#out_column").val()){
				formula_mode_check_value=0;
				toastr.error("Your Out Column should not be Input");
			}else{
				formula_mode_check_value=1;
			}
		}
	});

	//formula and conditions checking for front end validations.
	$("#payroll_formula").on('input propertychange paste', function(){
		var formula_mode    = $('#formula_mode').val();
		var payroll_formula = $.trim($('#payroll_formula').val());
		if((parseInt(formula_mode) === 1) || (parseInt(formula_mode) === 2)){
			if((payroll_formula.indexOf("if(") >= 0) || (payroll_formula.indexOf("if (") >= 0)){
				toastr.error("Direct and Formula input is not allowed if functions?");
				$('#payroll_formula').val('');
			}
		}
     });
	 

	$('#round_value').parent().show();
	$('#order_by').parent().hide();
	var earn_column_arr = <?php echo json_encode($earn_column_arr); ?>;
	var formula_mode    = parseInt($('#formula_mode').val());
	var formula_for     = parseInt($('#formula_for').val());
	if(formula_mode === 3){
		$('#round_value').parent().hide();
		$('#round_value').val('');
		earning_column_drop_list(formula_mode);
	}else{
		//dr code for order by input hide and show
		$('#earn_column').html(earn_column_arr);
		if(formula_mode === 1){
			$('#order_by').parent().show();
		}
		// else
		// if(formula_mode === 2){
		// 	already_added_out_col_fetch(formula_for);
		// }
	}
		
	$('#formula_mode').change(function(event){
		var formula_mode = parseInt($('#formula_mode').val());
		var formula_for  = parseInt($('#formula_for').val());
		$('#order_by').parent().hide();
		if(formula_for){
			// && formula_mode !== 2
			out_column_drop_fetch(formula_for);
		}
		if(formula_mode === 3){
			$('#round_value').parent().hide();
			$('#round_value').val('');
			earning_column_drop_list(formula_mode);
		}else{
			$('#earn_column').html(earn_column_arr);
			$('#round_value').parent().show();
			//dr code for order by input hide and show
			if(formula_mode === 1){
				$('#order_by').parent().show();
			}
			// else
			// if(formula_mode === 2){
			// 	already_added_out_col_fetch(formula_for);
			// }
		}
	});
	 
	//@@ error throwing validations and direct formula field is validated
	$('#save_payroll_btn').click(function(){
		var formula_mode    = $("#formula_mode").val();
		var payroll_formula = $.trim($("#payroll_formula").val());
		var at_count        = (payroll_formula.match(/@/g) || []).length;
		if(payroll_formula.indexOf("@@") != -1){
		toastr.error("Please check formula double at(@@) is present, check it?");
		return false;
		}
		
		if(parseInt(formula_mode) === 1){
			if(parseInt(at_count) > 2){
				toastr.error("Direct formula allowed one field only?");
				return false;
			}
		}
		 
		if((parseInt(at_count) === 0) || (parseInt(at_count) === 1)){//@ count checking
			toastr.error("Please check your formula?");
			return false;
		}
		 
		//Payroll formula error checking
		var s = payroll_formula.replace(/@/g, "");	
		var res = balanced(s);
		if(res){
			//DR FUNCTION FOR ONLY PENDING COLUMN LIST FETCH IN OUT COLUMN DROPDOWN
			var formula_for    = parseInt($('#formula_for').val());
			var formula_mode   = parseInt($('#formula_mode').val());
			// if(formula_for){
				// && formula_mode !== 2
			// 	out_column_drop_fetch(formula_for);
			// }
			// else
			// if(formula_for && formula_mode === 2){
			// 	already_added_out_col_fetch(formula_for);
			// }
			return true;
		}else{
			toastr.error("Error");
			return false;
		}
	});
	
	//payroll formula save
	$('#save_payroll_info').validate($.extend({
		submitHandler: function (form){
			$("#save_payroll_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#save_payroll_btn').attr('disabled','disabled');
			$(form).ajaxSubmit({
				success: function (response){
					$('#save_payroll_btn').attr('disabled',false);
					$("#save_payroll_btn").html("Add/Update");
					if(response.success){
						toastr.success(response.message);
						$("#formula_content").html(response.formula_content);
						//document.getElementById("save_payroll_info").reset();
						$("#prime_payroll_id").val(0);
						var table = $('#detail_list').DataTable({
							dom: 'Bfrtip',
							"lengthChange": false,
							"order": [[ 1, "desc" ]],
							"stateSave": true,
							buttons: [{
								extend: 'excelHtml5',
							}],
						});
						footer(table);
						empty_all();
						//DR FUNCTION FOR ONLY PENDING COLUMN LIST FETCH IN OUT COLUMN DROPDOWN
						var formula_for    = parseInt($('#formula_for').val());
						var formula_mode   = parseInt($('#formula_mode').val());
						if(formula_for){
							// && formula_mode !== 2
							out_column_drop_fetch(formula_for);
						}
					}else{
						toastr.error(response.message);
					}
				},
				dataType: 'json'
			});
		},
		rules:{
			formula_for: "required",
			formula_type: "required",
			out_column: "required",
			payroll_formula: "required",
			formula_mode: "required",
		}
	}));
	
	
	//Table string Check with column for variable and table data
	//08MAY2019--MRJ and GS Updates Start
	/*$('#ded_column').change(function(event){
		if(formula_mode_check_value===1){
			var ded_column       = titleCase($(this).find("option:selected").text());
			var ded_column_name  = $('#ded_column').val();
			if(ded_column_name !== ""){
				check_result = "@"+ded_column_name+"@";
				$("#payroll_formula").val(function(i, val) {
						return val += check_result;
				});
			}
		}
	});*/
	
	//DR FUNCTION FOR ONLY PENDING COLUMN LIST FETCH IN OUT COLUMN DROPDOWN
	$('#formula_for').change(function(event){
		var formula_for    = parseInt($('#formula_for').val());
		var formula_mode   = parseInt($('#formula_mode').val());
		if(formula_for){
			// && formula_mode !== 2
			out_column_drop_fetch(formula_for);
		}
		// else
		// if(formula_for && formula_mode === 2){
		// 	already_added_out_col_fetch(formula_for);
		// }
	});

	$('#ded_column').change(function(event){
		if(formula_mode_check_value===1){
			var ded_column       = titleCase($(this).find("option:selected").text());
			var ded_column_name  = $('#ded_column').val();
			if(ded_column_name !== ""){
				check_result = "@"+ded_column_name+"@";
				var start = $('#payroll_formula').prop("selectionStart");
				var payroll_formula   = $('#payroll_formula').val();
				var output = [payroll_formula.slice(0, start), check_result, payroll_formula.slice(start)].join('');
				$("#payroll_formula").val(output);
				/* $("#payroll_formula").val(function(i, val) {
						return val += check_result;
				}); */
			}
		}
	});
	
	/*$('#earn_column').change(function(event){
		if(formula_mode_check_value===1){
			var earn_column      = titleCase($(this).find("option:selected").text());
			var earn_column_name = $('#earn_column').val();
			if(earn_column_name !== ""){
				check_result = "@"+earn_column_name+"@";
				$("#payroll_formula").val(function(i, val) {
						return val += check_result;
				});
			}
		}
	});*/

	// Changed by Neha on 28APR2020
	$('#earn_column').change(function(event){
		if(formula_mode_check_value===1){
			var earn_column      = titleCase($(this).find("option:selected").text());
			var earn_column_name = $('#earn_column').val();
			if(earn_column_name !== ""){
				check_result         = "@"+earn_column_name+"@";
				var start            = $('#payroll_formula').prop("selectionStart");
				var payroll_formula  = $('#payroll_formula').val();

				var output = [payroll_formula.slice(0, start), check_result, payroll_formula.slice(start)].join('');
				$("#payroll_formula").val(output);
					/* $("#payroll_formula").val(function(i, val) {
							return val += check_result;
					}); */
			}
		}
	});	
	//08MAY2019--MRJ and GS Updates End	
	//01MARCH2019--MRJ
	//Statutory function name save details
	$('#save_payroll_function').validate($.extend({
		submitHandler: function (form){
			$("#save_payroll_function_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#save_payroll_function_btn').attr('disabled','disabled');
			$(form).ajaxSubmit({
				success: function (response){
					$('#save_payroll_function_btn').attr('disabled',false);
					$("#save_payroll_function_btn").html("Add/Update");
					empty_all();
					if(response.success){
						toastr.success(response.message);
						$("#function_list").html(response.function_list);
						document.getElementById("save_payroll_function").reset();
						$("#payroll_function_id").val(0);
					}else{
						toastr.error(response.message);
					}
				},
				dataType: 'json'
			});
		},
		rules:{
			statutory_name: "required",
			map_column: "required",
			input_column: "required",
			function_name: "required"
		}
	}));
	
	$('#save_column_mapping').validate($.extend({
		submitHandler: function (form){
			$("#save_column_mapping_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#save_column_mapping_btn').attr('disabled','disabled');
			$(form).ajaxSubmit({
				success: function (response){
					$('#save_column_mapping_btn').attr('disabled',false);
					$("#save_column_mapping_btn").html("Add/Update");
					if(response.success){
						$("#mapping").html(response.mapping_list);
						//document.getElementById("save_column_mapping").reset();
						$("#payroll_column_map_id").val(0);
						$("#mapping_list").dataTable();
						toastr.success(response.message);
					}else{
						toastr.error(response.message);
					}
					empty_all();
				},
				dataType: 'json'
			});
		},
		rules:{
			loc_name: "required",
			db_column: "required",
		}
	}));
	
	$('#save_print_map').validate($.extend({
		submitHandler: function (form){
			$("#save_print_map_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#save_print_map_btn').attr('disabled','disabled');
			$(form).ajaxSubmit({
				success: function (response){
					$('#save_print_map_btn').attr('disabled',false);
					$("#save_print_map_btn").html("Add/Update");					
					if(response.success){
						document.getElementById("save_print_map").reset();
						$("#prime_print_map_id").val(0);
						$('#print_map option:selected').removeAttr('selected');
						call_select();
						$("#print_info_list").html(response.print_info_list);
						toastr.success(response.message);
					}else{
						toastr.error(response.message);
					}
				},
				dataType: 'json'
			});
		},
		rules:{
			print_map_for:{
				required: true,
				min:1,
			},
			"print_mapping[]": "required",
		}
	}));
	
	//Save Formula Transfer call
	$('#save_formula_transfer').validate($.extend({
		submitHandler: function (form){
			$("#save_formula_transfer_btn").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#save_formula_transfer_btn').attr('disabled','disabled');
			$(form).ajaxSubmit({
				success: function (response){
					$('#save_formula_transfer_btn').attr('disabled',false);
					$("#save_formula_transfer_btn").html("Submit");
					if(response.success){
						toastr.success(response.message);
					}else{
						toastr.error(response.message);
					}
					$('.modal').modal('hide');
				},
				dataType: 'json'
			});
		},
		rules:{
			select_category:"required",
			formula_transfer_to:"required",
		}
	}));
	
	$("#payroll_cancel").click(function(){
		empty_all();
		//DR FUNCTION FOR ONLY PENDING COLUMN LIST FETCH IN OUT COLUMN DROPDOWN
		var formula_for    = parseInt($('#formula_for').val());
		var formula_mode   = parseInt($('#formula_mode').val());
		if(formula_for){
			// && formula_mode !== 2
			out_column_drop_fetch(formula_for);
		}
		// else
		// if(formula_for && formula_mode === 2){
		// 	already_added_out_col_fetch(formula_for);
		// }
	});
	
	$("#function_cancel").click(function(){
		empty_all();
	});
	
	$("#search_filter").on('change',function(){
		var search_filter = $('#search_filter').val();
	});
	
	//Data filter search dropdown dynamically updates
	 var table = $('#detail_list').DataTable({
		 dom: 'Bfrtip',
		 "lengthChange": false,
		"order": [[ 1, "desc" ]],
		buttons: [{
			extend: 'excelHtml5',
		}],
	});
	//FOR CREATE A FOOTER PICKLIST
	footer(table);
  //   $("#detail_list tfoot td").each(function(i){
		// if ($(this).text() !== '') {
	 //        var isStatusColumn = (($(this).text() == 'Status') ? true : false);
		// 	var select = $('<select><option value="">-- Select One --</option></select>')
	 //            .appendTo( $(this).empty())
	 //            .on( 'change', function (){
	 //                var val = $(this).val();
	 //                table.column( i )
	 //                    .search( val ? '^'+$(this).val()+'$' : val, true, false )
	 //                    .draw();
	 //            });
		// 	if (isStatusColumn){
		// 		var statusItems = [];
		// 		table.column(i).nodes().to$().each( function(d, j){
		// 			var thisStatus = $(j).attr("data-filter");
		// 			if($.inArray(thisStatus, statusItems) === -1) statusItems.push(thisStatus);
		// 		});
		// 		statusItems.sort();			
		// 		$.each( statusItems, function(i, item){
		// 		    select.append( '<option value="'+item+'">'+item+'</option>' );
		// 		});
		// 	}
		// 	else {
		// 		table.column(i).data().unique().sort().each(function (d, j) {  
		// 			select.append('<option value="'+d+'">'+d+'</option>');
		//         });	
		// 	}
		// }
  //   });
	
	//Default setting for all functions --18JULY2019
	$("#statutory_name").change(function(){
		var statutory_name   = $('#statutory_name').val();
		var default_arr = [];
		$("#input_column").val("");
		$("#function_name").val("");		
		$('#input_column option:selected').removeAttr('selected');
		var th_line = "";
		var input_count = 0;
			if(parseInt(statutory_name) === 8){//total works default settings
				default_arr = ["role","transactions_month"];
				$("#function_name").val(5);
				input_count = default_arr.length;
				$.each(default_arr, function(i, val){
					$("#input_column").find("option[value='"+val+"']").prop("selected", "selected");
					th_line += "<span>"+val+",</span>";
				});				
			}else
			if(parseInt(statutory_name) === 3){//PT Amount default settings
				default_arr = ["employee_code","professional_tax_location","fpt_gross","total_earnings","transactions_month"];
				$("#function_name").val(3);
				input_count = default_arr.length;
				$.each(default_arr, function(i, val){
					$("#input_column").find("option[value='"+val+"']").prop("selected", "selected");
					th_line += "<span>"+val+",</span>";
				});
			}else
			if(parseInt(statutory_name) === 7){//Staff Loan amount default settings
				default_arr = ["employee_code","transactions_month"];
				input_count = default_arr.length;
				$("#function_name").val(4);
				$.each(default_arr, function(i, val){
					$("#input_column").find("option[value='"+val+"']").prop("selected", "selected");
					th_line += "<span>"+val+",</span>";
				});
			}else
			if(parseInt(statutory_name) === 9){//Difference Date default settings
				default_arr = ["employee_code","role","transactions_month"];
				input_count = default_arr.length;
				$("#function_name").val(8);
				$.each(default_arr, function(i, val){
					$("#input_column").find("option[value='"+val+"']").prop("selected", "selected");
					th_line += "<span>"+val+",</span>";
				});
			}else
			if(parseInt(statutory_name) === 10){//Separation date default settings
				default_arr = ["employee_code","role","transactions_month"];
				input_count = default_arr.length;
				$("#function_name").val(9);
				$.each(default_arr, function(i, val){
					$("#input_column").find("option[value='"+val+"']").prop("selected", "selected");
					th_line += "<span>"+val+",</span>";
				});
			}else
			if(parseInt(statutory_name) === 11){//Gratuity default settings
				default_arr = ["role","employee_code"];
				input_count = default_arr.length;
				$("#function_name").val(10);
				$.each(default_arr, function(i, val){
					$("#input_column").find("option[value='"+val+"']").prop("selected", "selected");
					th_line += "<span>"+val+",</span>";
				});
			}			
			$('#input_count').val(input_count);
			$('.info_tag').html(th_line);
			$('#input_column').select2({allowClear: false});
			$('#function_name').select2({allowClear: false});
			$('.select2').on("select2:select", function (evt) {
			  var element = evt.params.data.element;
			  var $element = $(element); 			  
			  $element.detach();
			  $(this).append($element);
			  $(this).trigger("change");
			});
	});
	//Jai Sir Changes
	$("#out_column").change(function(){
		var formula_type = $('#formula_type').val();
		var out_column   = $('#out_column').val();
		var formula_mode = $('#formula_mode').val();
		if(formula_mode === '1'){
			if(formula_type === '1'){
				$("#earn_column").find("option[value='"+out_column+"']").prop("selected", "selected");
				$('#earn_column').trigger('change');
				$('#ded_column').val('');
			}else{
				$("#ded_column").find("option[value='"+out_column+"']").prop("selected", "selected");
				$('#earn_column').val('');
				$('#ded_column').trigger('change');
			}
			$('#out_column').select2({
				placeholder: '---- Select ----',
				allowClear: true,
				dropdownParent: $('.modal-dialog')
			});
		}		
	});

	//on click function for column mapping datatable
	$('#col_mapping').on('click',function(){
		datatable_call("mapping_list")
	})
	/* upload icons */
	<?php echo $document_load_script; ?>
	/* upload icons */

	// if(prime_module_id === "0"){
	// 	$('#temp_mand').parent().hide();
	// }
});
//DR FUNCTION FOR ONLY FORMULA ADD PENDING LABEL FETCH IN OUT COLUMN DROPDOWN
function out_column_drop_fetch(formula_for){
	var out_column    = $("#out_column").val();
	var prime_id      = $('#prime_payroll_id').val();
	if(formula_for && parseInt(prime_id) === 0){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/out_column_drop_fetch"); ?>',
			data: {formula_for:formula_for},
			success: function(data) {
				var rslt = JSON.parse(data);
				if(rslt.success){					
					$("#out_column").html(rslt.out_column_list);
					$("#out_column").val(out_column);
					call_select();
				}
				// else{
				// 	toastr.error(rslt.message);
				// }
			},
		});
	}
}
//DR CODE FOR ALREADY ADDED OUT COLUMN ONLY FETCH(THIS CONDITION ONLY FOR APPLICABLE IN FORMULA MODE 2)
function already_added_out_col_fetch(formula_for){
	var out_column    = $("#out_column").val();
	if(formula_for){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/already_added_out_col_fetch"); ?>',
			data: {formula_for:formula_for},
			success: function(data) {
				var rslt = JSON.parse(data);
				if(rslt.success){
					$("#out_column").html(rslt.out_column_list);
					$("#out_column").val(out_column);
					call_select();
				}else{
					toastr.error(rslt.message);
				}
			},
		});
	}
}

//DR CODE FOR IF FORMULA MODE HAS BEEN CONDITION THEN SHOW A BASIC AND EARNINGS INFORMATION(only picklist input)
function earning_column_drop_list(formula_mode){
	if(formula_mode){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/earning_col_drop_list"); ?>',
			data: {formula_mode:formula_mode},
			success: function(data) {
				var rslt = JSON.parse(data);
				if(rslt.success){
					$("#earn_column").html(rslt.earn_column_list);
				}else{
					toastr.error(rslt.message);
				}
			},
		});
		call_select();
	}
}
 //Payroll formula error checking - START
function balanced(s){
	var pairs = {
	'}':'{',
	']':'[',
	};
	var stack = [];
	for(var i = 0;i < s.length;++i){
		switch(s.charAt(i)){
			case '[': case '{':
				stack.push(s.charAt(i));
			break;
			case ']': case '}':
				if(isStackEmpty(stack) || peek(stack) !== pairs[s.charAt(i)]) return false;
				stack.pop();
			break;
			case '"':
				if(isStackEmpty(stack) || peek(stack) !== s.charAt(i)){
					stack.push(s.charAt(i));
				}else{
					stack.pop();
				}
		}
	}
	return isStackEmpty(stack);
}
function isStackEmpty(s){
	return s.length === 0;
}
function peek(s){
	return s[s.length-1];
}
 //Payroll formula error checking END
function edit_print_map(prime_print_map_id){
	if(prime_print_map_id){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/edit_print_map"); ?>',
			data: {prime_print_map_id:prime_print_map_id},
			success: function(data) {
				$('#print_mapping option:selected').removeAttr('selected');
				call_select();
				var rslt = JSON.parse(data);
				if(rslt.success){					
					$("#prime_print_map_id").val(rslt.print_info.prime_print_map_id);
					$("#print_map_module_id").val(rslt.print_info.print_map_module_id);
					$("#print_map_for").val(rslt.print_info.print_map_for);
					if(rslt.print_info.print_map){
						var print_map = rslt.print_info.print_map.split(",");
						for(var i in print_map) {
							var print_map_val = print_map[i];
							$("#print_mapping").find("option[value='"+print_map_val+"']").prop("selected", "selected");
						}
						call_select();
					}
				}else{
					toastr.error(rslt.message);
				}
			},
		});
	}
}

//Title Case Changed out column
function titleCase(str) {
	var splitStr = str.toLowerCase().split(' ');
	for (var i = 0; i < splitStr.length; i++) {
		splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);     
	}
	return splitStr.join(' '); 
}

function edit_query(prime_table_id){
	if(prime_table_id){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/get_edit_info"); ?>',
			data: {prime_table_id:prime_table_id},
			success: function(data) {
				var rslt = JSON.parse(data);
				if(rslt.success){
					$("#query_for").val(rslt.query_for);
					$("#where_condition").val(rslt.where_condition);
					$("#prime_table_id").val(rslt.prime_table_id);
				}else{
					toastr.error(rslt.message);
				}
			},
		});
	}
}

function remove_query(prime_table_id){
	query_module_id = $("#query_module_id").val();
	if(confirm("Are you sure to delete!")){
		if(prime_table_id){
			$.ajax({
				type: "POST",
				url: '<?php echo site_url($controller_name . "/remove_query_info"); ?>',
				data: {prime_table_id:prime_table_id,query_module_id:query_module_id},
				success: function(data) {
					var rslt = JSON.parse(data);
					if(rslt.success){
						$("#table_query_list").html(rslt.table_query_list);
						toastr.success(rslt.message);
					}else{
						toastr.error(rslt.message);
					}
				},
			});
		}
	}
}

//MRJ Start 07-01-2018
//edit formula
function get_formula_edit(prime_payroll_id){
	if(prime_payroll_id > 0){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/get_formula_edit_info"); ?>',
			data: {prime_payroll_id:prime_payroll_id},
			success: function(data) {
				var rslt = JSON.parse(data);
				if(rslt.success){
					$("#formula_for").val(rslt.formula_for);
					$("#formula_type").val(rslt.formula_type);
					$("#out_column").html(rslt.out_column_list);
					$("#out_column").val(rslt.out_column);
					$("#payroll_formula").val(rslt.payroll_formula);
					$("#formula_mode").val(rslt.formula_mode);
					$("#order_by").val(rslt.order_by);
					$("#round_value").val(rslt.round_value);
					if(rslt.fandf_only === "1"){
						$('#fandf_only').prop('checked', true);
					}else{
						$('#fandf_only').prop('checked', false);
					}
					$("#prime_payroll_id").val(rslt.prime_payroll_id);
					call_select();
					
					$('#order_by').parent().hide();
					var earn_column_arr = <?php echo json_encode($earn_column_arr); ?>;
					$('#earn_column').html(earn_column_arr);
					if(parseInt(rslt.formula_mode) === 1){
						$('#order_by,#round_value').parent().show();
					}else
					if(parseInt(rslt.formula_mode) === 3){
						$('#round_value').parent().hide();
						$('#round_value').val('');
						earning_column_drop_list(parseInt(rslt.formula_mode));
					}
					$("#out_column").attr('readonly','readonly');
				}else{
					toastr.error(rslt.message);
				}
			},
		});
	}
}

//edit mapping column
function get_mapping_edit(payroll_column_map_id){
	if(payroll_column_map_id){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/get_mapping_edit"); ?>',
			data: {payroll_column_map_id:payroll_column_map_id},
			success: function(data) {
				var rslt = JSON.parse(data);
				if(rslt.success){
					$("#loc_name").val(rslt.edit_result.loc_name);
					$("#db_column").val(rslt.edit_result.db_column);
					$("#payroll_column_map_id").val(rslt.edit_result.payroll_column_map_id);
				
				}else{
					toastr.error(rslt.message);
				}
				call_select();
			},
		});
	}
}

function remove_mapping_function(payroll_column_map_id){
	if(confirm("Are you sure to delete!")){
		if(prime_table_id){
			$.ajax({
				type: "POST",
				url: '<?php echo site_url($controller_name . "/remove_mapping_function"); ?>',
				data: {payroll_column_map_id:payroll_column_map_id},
				success: function(data) {
					var rslt = JSON.parse(data);
					if(rslt.success){
						$("#mapping").html(rslt.mapping_list);
						toastr.success(rslt.message);
					}else{
						toastr.error(rslt.message);
					}
				},
			});
		}
	}
}

function empty_all(){
	//$("#formula_for").val("");
	//$("#formula_type").val("");
	//$("#formula_mode").val("");
	$("#out_column").val("");
	$("#earn_column").val("");
	$("#ded_column").val("");
	$("#payroll_formula").val("");
	$("#round_value").val("");
	$("#order_by").val("");
	$("#statutory_name").val("");
	$("#map_column").val("");
	$("#input_column").val("");
	$("#function_name").val("");
	$('#input_column option:selected').removeAttr('selected');
	$("#loc_name").val("");
	$("#db_column").val("");
	$("#out_column").attr("readonly",false);
	call_select();
}

function footer(table){
	$("#detail_list tfoot td").each(function(i){
		if ($(this).text() !== '') {
	        var isStatusColumn = (($(this).text() == 'Status') ? true : false);
			var select = $('<select><option value="">-- Select One --</option></select>')
	            .appendTo( $(this).empty())
	            .on( 'change', function (){
	                var val = $(this).val();
	                table.column( i )
	                    .search( val ? '^'+$(this).val()+'$' : val, true, false )
	                    .draw();
	            });
			if(isStatusColumn){
				var statusItems = [];
				table.column(i).nodes().to$().each( function(d, j){
					var thisStatus = $(j).attr("data-filter");
					if($.inArray(thisStatus, statusItems) === -1) statusItems.push(thisStatus);
				});
				statusItems.sort();			
				$.each( statusItems, function(i, item){
				    select.append( '<option value="'+item+'">'+item+'</option>' );
				});
			}
			else {
				table.column(i).data().unique().sort().each(function (d, j) {  
					select.append('<option value="'+d+'">'+d+'</option>');
		        });	
			}
		}
    });
}
//payroll function edit part
function get_function_edit(payroll_function_id){
	empty_all();
	if(payroll_function_id){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/get_function_edit"); ?>',
			data: {payroll_function_id:payroll_function_id},
			success: function(data) {
				var rslt = JSON.parse(data);
				$("#payroll_function_id").val(rslt.edit_result.prime_payroll_function_id);
				$("#statutory_name").val(rslt.edit_result.statutory_name);
				$("#map_column").val(rslt.edit_result.map_column);
				$("#function_name").val(rslt.edit_result.function_name);
				if(rslt.edit_result.input_column){
					var input_column_options = rslt.edit_result.input_column.split(',');
					for(var i in input_column_options) {
						var optionVal = input_column_options[i];
						$("#input_column").find("option[value='"+optionVal+"']").prop("selected", "selected");
					}
				}
				call_select();
				// $('.select2').on("select2:select", function (evt) {
				//   var element = evt.params.data.element;
				//   var $element = $(element); 			  
				//   $element.detach();
				//   $(this).append($element);
				//   $(this).trigger("change");
				// });
			}
		});
	}
}

//payroll function remove part
//delete formula
function remove_function(payroll_function_id){
	if(confirm("Are you sure to delete!")){
		if(payroll_function_id){
			$.ajax({
				type: "POST",
				url: '<?php echo site_url($controller_name . "/remove_payroll_function"); ?>',
				data: {payroll_function_id:payroll_function_id},
				success: function(data) {
					var rslt = JSON.parse(data);
					if(rslt.success){
						toastr.success(rslt.message);
						$("#function_list").html(rslt.function_list);
					}else{
						toastr.error(rslt.message);
					}
				},
			});
		}
	}
}

//allowclear is added to update to deselect of select.
// SELECT2 UI UPDATE
function call_select(){
	$(function(){
		$('.select2').select2({
			placeholder: '---- Select ----',
			allowClear: true,
			dropdownParent: $('.modal-dialog')
		});
		$('.select2-tags').select2({
			tags: true,
			tokenSeparators: [',']
		});
	});	
}
//Get sub menu
function get_sub_menu(prime_menu_id){
	if(prime_menu_id){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/get_sub_menu"); ?>',
			data: {prime_menu_id:prime_menu_id},
			success: function(data) {
				var rslt = JSON.parse(data);
				var test = "<?php echo $module_info->sub_menu_id;?>";
				$('#sub_map_menu_to').empty();
				if(rslt.success){
					var sub_menu_option ="";
				$.each(rslt.message, function( key, value ) {
					sub_menu_option += '<option value="' + key + '">' + value + '</option>';
				});
				$('#sub_map_menu_to').append(sub_menu_option);
				$("#sub_map_menu_to").find("option[value='"+parseInt(test)+"']").prop("selected", "selected");
					$('#sub_map_menu_to').select2({
						placeholder: '---- Select ----',
						allowClear: true,
						dropdownParent: $('.modal-dialog')
					});
				}
			}
		});
	}
}
//MRJ End 08-01-2018
// FILE UPLOAD REMOVE
function remove_file(prime_id,input_name){
	var input_val    = $("#"+input_name).val();
	var send_url = '<?php echo site_url("$controller_name/remove_file"); ?>';
	if(confirm('Are sure delete the file?')){
        $.ajax({
            type: "POST",
            url: send_url,
            data:{prime_id:prime_id,input_name:input_name,input_val:input_val},
            success: function(data) {
                    var rslt = JSON.parse(data);
                    $("#"+input_name).val("");
                    $("#table_"+input_name).attr("style", "display:none");
            }
        });
	}
}

function datatable_call(table_id){
	$('#'+table_id).DataTable({
			destroy: true,
			ordering: false,
			processing: true,
			// paging: false,
			lengthMenu: [[10,25,50,100,500,1000,-1],[10,25,50,100,500,1000,"All"]],
			language:{
				lengthMenu:"<span style='margin-top:8px;margin-left:10px;'>Display</span> _MENU_ <span style='margin-top:8px;'>Records</span>",
				searchPlaceholder: "Search records",
				search: "",
			},
			dom: 'Blfrtip',
			buttons: [{
			// float:none; 	
			text:'left',
			extend: 'collection',
			text: 'Export',
			buttons: [
				{extend:'excel',title: 'column_mapping_'+ moment(new Date()).format('DD-MM-YYYY'),},
				]
			}],
		});
		$('input[type=search]').addClass('form-control input-sm');
}
</script>
<style>
select[readonly].select2 + .select2-container {
  pointer-events: none;
  touch-action: none;
}
input[readonly] {
  pointer-events: none;
  touch-action: none;
}
/* @media (min-width: 992px) and (max-width: 3500px) */
.form-inline .form-group {
    display: inline-block;
    vertical-align: middle;
    margin-left: 30px;
    margin-bottom: 10px;
    width: 11.0%;
}
</style>