File: /home/cafsindia/.trash/application.1/views/overtime_request/form.php
<?php
$logged_user_role = $this->session->userdata('logged_user_role');
$logged_emp_code = $this->session->userdata('logged_emp_code');
$db_name = $this->config->item("db_name");
$prime_id = "prime_".$controller_name."_id";
$form_id = $controller_name."_form";
$access_data = $this->session->userdata('access_data');
$access_deletess = (int)$access_data[$controller_name]['access_delete'];
$count = 0;
$date_exist = false;
$date_time_exist = false;
$drop_exist = false;
$view_count = 0;
$view_content = "";
$document_load_script = "";
$validation_rule = "";
$postvalue = array();
foreach($view_info as $view){
$prime_form_view_id = (int)$view->prime_form_view_id;
$prime_view_module_id = $view->prime_view_module_id;
$form_view_type = (int)$view->form_view_type;
$form_view_type_mode = (int)$view->form_view_type_mode;
$form_view_label_name = $view->form_view_label_name;
$form_view_heading = ucwords($view->form_view_heading);
$input_box = "";
$row_check_input = "";
$row_prime_id = "prime_".$controller_name."_".$form_view_label_name."_id";
$row_send_data = "view_id:'$prime_form_view_id',module_id:'$prime_view_module_id',row_label_name:'$form_view_label_name',row_prime_id:$('#$row_prime_id').val(),prime_id:$('#$prime_id').val(),";
$row_clear_data = "$('#$row_prime_id').val(0);\n";
foreach($form_info as $setting){
$prime_form_id = (int)$setting->prime_form_id;
$field_type = $setting->field_type;
$label_id = $setting->label_name;
$label_name = ucwords($setting->view_name);
$mandatory_field = $setting->mandatory_field;
$input_for = (int)$setting->input_for;
$field_isdefault = (int)$setting->field_isdefault;
$default_value = $setting->default_value;
$file_type = $setting->file_type;
$extension = $setting->upload_extension;
$upload_filesize = $setting->upload_file_size;
$pick_table = $setting->pick_table;
$pick_list = $setting->pick_list;
$input_view_type = (int)$setting->input_view_type;
$input_for = (int)$setting->input_for;
$field_length = $setting->field_length;
$text_type = (int)$setting->text_type;
$date_type = (int)$setting->date_type;
$edit_read = (int)$setting->edit_read;
$depen_pick_list = (int)$setting->dependent_pick_list;
$depen_pick_input= $setting->dependent_pick_input;
$table_column1 = $setting->table_column1;
$table_column2 = $setting->table_column2;
$prime_module_id = $setting->prime_module_id;
$read = '';
if(((int)$edit_read === 1) && ((int)$form_view->$prime_id)){
//if($setting->$label_id){
$read = 'readonly';
//}
}
$required = "";
if((int)$mandatory_field === 1){
$required = "required";
}
if($form_view->$label_id){
$input_value = $form_view->$label_id;
}else{
$input_value = $default_value;
}
if($prime_form_view_id === $input_for){
/*=================== FORM INPUT PROCESS - START ===================*/
$form_label = form_label($label_name, $label_id, array('class' => "control-label $required"));
$valid_class = "alpha";
if(((int)$field_type === 3) ||((int)$field_type === 11)){
$valid_class = "number";
}
if((int)$field_type === 2){
$valid_class = "decimal_no";
}
//TEXT BOX
if((int)$field_type === 1){
if($text_type === 1){
$valid_class = "alpha_text";
}else
if($text_type === 2){
$valid_class = "alpha";
}else
if($text_type === 3){
$valid_class = "number";
}
$input_value = str_replace('^',"'",$input_value);
$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name, $read=>true,"class"=>"form-control input-sm $valid_class"));
$input_box .= "<div class='form-group'>$form_label $form_input</div>";
}else
//DECIMALS
if((int)$field_type === 2){
$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name, $read=>true, "class"=>"form-control input-sm $valid_class"));
$input_box .= "<div class='form-group'>$form_label $form_input</div>";
}else
//INTEGER
if((int)$field_type === 3){
$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name, $read=>true, "class"=>"form-control input-sm $valid_class"));
$input_box .= "<div class='form-group'>$form_label $form_input</div>";
}else
//DATE
if((int)$field_type === 4){
$date_exist = true;
$date = "";
if($input_value){
if((int)$date_type === 1){
$date = date('d-m-Y',strtotime($input_value));
if($date === "01-01-1970" || $date ==="30-11--0001"){
$date = "";
}
}else{
$date = $input_value;
}
}else{
if($label_id === "applied_on"){
$date = date("d-m-Y");
}
}
if((int)$date_type === 1){
$datepicker = "datepicker";
}else
if((int)$date_type === 2){
$datepicker = "datepicker_month";
}else
if((int)$date_type === 3){
$datepicker = "datepicker_year";
}
$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$date,"placeholder"=>$label_name, $read=>true, "class"=>"form-control input-sm $datepicker"));
$input_box .= "<div class='form-group'>$form_label $form_input</div>";
}else
//PICKLIST
if((int)$field_type === 5){
$drop_exist = true;
$drop_down_array = array("name" => $label_id,"id" => $label_id,"class" =>'form-control input-sm select2');
if($read){
$drop_down_array['readonly'] = 'readonly';
}
$form_dropdown = form_dropdown($drop_down_array,$all_pick[$label_id]['array_list'] ,$input_value);
$input_box .= "<div class='form-group'>$form_label $form_dropdown</div>";
$postvalue[$label_id]= $input_value;
$json_data = json_encode($postvalue);
}else
//CHECKBOX
if((int)$field_type === 6){
$checkbox_array = array("name" => $label_id,"id" => $label_id, "value"=> 1, "checked" => ($input_value) ? 1 : 0);
if($read){
$checkbox_array['disabled'] = 'true';
}
$form_checkbox = form_checkbox($checkbox_array);
$input_box .= "<div class='form-group'> <label class='checkbox-inline'> $form_checkbox $form_label </label></div>";
}else
//MULTI PICKLIST
if((int)$field_type === 7){
$drop_exist = true;
$multi_name = $label_id."[]";
$multi_pick[$label_id] = $multi_name;
$multi_select = explode(',',$input_value);
$drop_down_array = array("name" => $multi_name,"multiple id" => $label_id,"class" =>'form-control input-sm select2');
if($read){
$drop_down_array['readonly'] = 'readonly';
}
$form_dropdown = form_dropdown($drop_down_array,$all_pick[$label_id]['array_list'] ,$multi_select);
$input_box .= "<div class='form-group'> $form_label $form_dropdown</div>";
}else
//TEXT AREA
if((int)$field_type === 8){
$value = str_replace("~",'"',$input_value);
$value = str_replace("`","'",$value);
$value = str_replace("^","&",$value);
$input_box .= "<div class='form-group'> $form_label <textarea name='$label_id' id='$label_id' class='form-control' rows='4' placeholder='$label_name' $read = true>$value</textarea></div>";
}else
//AUTOCOMPLETE
if((int)$field_type === 9){
$hidden_id = $label_id."_hidden_".$prime_form_id;
$hidden_value = $all_pick[$label_id]['array_list'][$input_value];
if($depen_pick_list === 1){
$hidden_value = $auto_pick[$label_id][$input_value];
}
$autocomplete_array = array("name"=>$hidden_id, "id"=>$hidden_id,"value"=>$hidden_value,"placeholder"=>"Search ".$label_name, "class"=>"form-control input-sm");
if($read){
$autocomplete_array['readonly'] = 'readonly';
}
$form_input = form_input($autocomplete_array);
$hidden_input = form_input( array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"type"=>"hidden"));
$input_box .= "<div class='form-group'>$form_label $hidden_input $form_input</div>";
}else
//FILE UPLOAD
if((int)$field_type === 10){
$value = $input_value;
$upload_id = "upload_".$label_id;
$tabel_id = "table_".$label_id;
$upload_old = "old_".$label_id;
$proof = base_url("$value");
$form_upload = form_upload(array('name' => $upload_id,'id' => $upload_id,'class' => 'form-control input-sm','value' => $input_value,'accept' => $file_type ));
$remove_btn = "";
$view_btn = "";
if($value){
$file_name = explode("/",$value);
$file_name = $file_name[2];
if((int)$mandatory_field !== 1){
$remove_btn = "<a onclick=remove_file('$prime_id','$field_isdefault','$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(),";
$input_box .= "<div class='form-group'>
$form_label
<input type='hidden' id='$label_id' name='$label_id' value='$value'>
<input type='hidden' id='$upload_old' name='$upload_old' value='$value'>
$form_upload
<table style='width: 100%;' id='$tabel_id'>
<tr>
<td colspan='2'><div class='progress_bar' id='div_$label_id' style='display:none;'><div class='process_percent' id='process_$label_id'>10%</div></div></td></tr>
<tr>
<td>$remove_btn</td>
<td style='text-overflow: ellipsis; overflow: hidden; white-space: nowrap; max-width: 100px;'>$view_btn</td>
</tr>
</table>
</div>";
}else
//MOBILE NUMBER
if((int)$field_type === 11){
$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name,$read=>true,"class"=>"form-control input-sm $valid_class"));
$input_box .= "<div class='form-group'>$form_label $form_input</div>";
$postvalue[$label_id]= $input_value;
$json_data = json_encode($postvalue);
}else
//EMAIL
if((int)$field_type === 12){
$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name,$read=>true, "class"=>"form-control input-sm $valid_class"));
$input_box .= "<div class='form-group'>$form_label $form_input</div>";
}else
//DATE & TIME
if((int)$field_type === 13){
$date_time_exist = true;
$date = "";
if($input_value){
$date = "";
if($input_value){
$input_value = date('d-m-Y H:i:s',strtotime($input_value));
$date = $input_value;
if($date === "01-01-1970"){
$date = "";
}
}
}
$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$date,"placeholder"=>$label_name,$read=>true, "class"=>"form-control input-sm datepicker_time"));
$input_box .= "<div class='form-group'>$form_label $form_input</div>";
}else
//READ ONLY
if((int)$field_type === 14){
$read = '';
if((int)$form_view->$label_id > 0){
$read = 'readonly';
}
$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name, $read => 'true',"class"=>"form-control input-sm $valid_class"));
$input_box .= "<div class='form-group'>$form_label $form_input</div>";
}else
// TIME ONLY
if((int)$field_type === 15){
if($input_value){
$time = $input_value;
}else{
$time = "00:00";
}
$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$time,"placeholder"=>$label_name, $read=>true, "class"=>"form-control input-sm only_time"));
$input_box .= "<div class='form-group'>$form_label $form_input</div>";
}
/*=================== FORM INPUT PROCESS - END ===================*/
/*================ FORM VALIDATION SCRIPT - START ================*/
$len = "";
if($field_length){
$len = "maxlength: $field_length,";
}
$required = "";
if((int)$mandatory_field === 1){
$required = "required: true,";
}
if(($input_view_type === 1) || ($input_view_type === 2)){
if((int)$field_type === 1){ //TEXT
$validation_rule .= "$label_id:{ $required $len },";
}else
if((int)$field_type === 2){ //DECIMALS
$validation_rule .= "$label_id:{ $required number: true, $len },";
}else
if((int)$field_type === 3){ //INTEGER
$validation_rule .= "$label_id:{ $required number: true, $len },";
}else
if((int)$field_type === 4){ //DATE
$validation_rule .= "$label_id:{ $required $len },";
}else
if((int)$field_type === 5){ //PICKLIST
$validation_rule .= "$label_id:{ $required $len },";
}else
if((int)$field_type === 6){ //CHECKBOX
$validation_rule .= "$label_id:{ $required $len },";
}else
if((int)$field_type === 7){ //MULTI PICKLIST
$multi_name = $label_id."[]";
$validation_rule .= '"'.$multi_name.'":"required",'."\n";
}else
if((int)$field_type === 8){ //SUMMARY BOX
$validation_rule .= "$label_id:{ $required $len },";
}else
if((int)$field_type === 9){ //AUTO COMPLETE BOX
$hidden_id = $label_id."_hidden_".$prime_form_id;
$validation_rule .= "$hidden_id:{ $required $len },";
}else
if((int)$field_type === 10){ //FILE UPLOAD BOX
$validation_rule .= "$label_id:{ $required $len },";
}else
if((int)$field_type === 11){ //MOBILE NUMBER
$validation_rule .= "$label_id:{ $required number: true, minlength:$field_length, maxlength:$field_length },";
}else
if((int)$field_type === 12){ //EMAIL
$validation_rule .= "$label_id:{ $required email: true, $len },";
}else
if((int)$field_type === 13){ //DATE & TIME
$validation_rule .= "$label_id:{ $required $len },";
}else
if((int)$field_type === 14){ //READ ONLY
$validation_rule .= "$label_id:{ $required $len },";
}else
if((int)$field_type === 15){ //DATE
$validation_rule .= "$label_id:{ $required $len },";
}
}
/*================= FORM VALIDATION SCRIPT - END =================*/
/*================= DOCUMENT LOAD SCRIPT - START =================*/
//ON-LOAD SCRIPT MULTI SELECT REMOVE EMPTY
if((int)$field_type === 5){
$get_depend = json_encode($get_depend_prime_id);
if (in_array($label_id, $depend_label_id ?? [])) {
$change_label_id = $label_id;
}
if($depen_pick_list === 1){
$new_span = $label_id.'_span';
$dep_url = site_url("$controller_name/dependent_data_set");
//DR CODE FOR EDIT BUTTON CLICK AFTER DEPENDENT DROPDOWN FETCH(UPDATE)
$document_load_script .= "var depen_select_val = $('#$depen_pick_input').val();
if(depen_select_val){
$.ajax({
url: '$dep_url',
type: 'post',
data: {prime_module_id:'$prime_module_id',depen_select:depen_select_val,depen_pick_input:'$depen_pick_input',table_column1:'$table_column1',table_column2:'$table_column2',label_id:'$label_id',pick_table:'$pick_table',pick_list:'$pick_list',pick_display_val:'$pick_display_val'},
beforeSend: function () {
$('#$label_id').next('span').attr('id', '$new_span');
$('#$new_span').html('<span style=\"color:#CC3366\";><i class=\"fa fa-spinner fa-spin fa-2x fa-fw\"></i><br/>Loading...</span>');
},
success: function(result_data){
$('#$new_span').empty();
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
//dropdownParent: $('.modal-dialog')
});
var select_data = $('#$label_id').val();
$('#$label_id').html(result_data);
$('#$label_id').val(select_data);
}
});
}\n";
//DR CODE FOR DEPENDENT ON CHANGE CONDITION
$document_load_script .= "$('#$depen_pick_input').change(function(e) {
var depen_select_val = $('#$depen_pick_input').val();
$.ajax({
url: '$dep_url',
type: 'post',
data: {prime_module_id:'$prime_module_id',depen_select:depen_select_val,depen_pick_input:'$depen_pick_input',table_column1:'$table_column1',table_column2:'$table_column2',label_id:'$label_id',pick_table:'$pick_table',pick_list:'$pick_list',pick_display_val:'$pick_display_val'},
beforeSend: function () {
$('#$label_id').next('span').attr('id', '$new_span');
$('#$new_span').html('<span style=\"color:#CC3366\";><i class=\"fa fa-spinner fa-spin fa-2x fa-fw\"></i><br/>Loading...</span>');
},
success: function(result_data){
// $('#$new_span').empty();
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
//dropdownParent: $('.modal-dialog')
});
var get_depend = JSON.parse('$get_depend');
$.each(get_depend, function(key, value) {
var label_id = '$label_id';
var depand_val = value['dependent_pick_input'];
var depand_prime= value['prime_form_id'];
if((depand_val) && ('$depen_pick_input' !== key)){
var depand_prime_id = key+'_hidden_'+depand_prime;
var depen_key_val = '';
if('$depen_pick_input' === depand_val){
$('#'+key).val('');
$('#'+depand_prime_id).val('');
var depen_key_val = key;
}
$.each(get_depend, function(keys, values) {
var depand_vals = values['dependent_pick_input'];
if((depen_key_val === depand_vals) && depen_key_val !== ''){
var depand_labels = get_depend[keys]['prime_form_id'];
var depand_keys = keys+'_hidden_'+depand_labels;
$('#'+depand_keys).val('');
$('#'+keys).val('');
}
});
// select_option();
}
});
$('#$label_id').val('');
$('#$label_id').html(result_data);
$(function(){
setTimeout(function() {
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
}, 0);
});
}
});
});\n";
if($change_label_id){
$document_load_script .= "$('#$change_label_id').change(function(e) {
var get_depend = JSON.parse('$get_depend');
$.each(get_depend, function(key, value) {
var label_id = '$label_id';
var depand_val = value['dependent_pick_input'];
var depand_prime= value['prime_form_id'];
if((depand_val) && ('$label_id' !== key)){
var depand_prime_id = key+'_hidden_'+depand_prime;
var depen_key_val = '';
if('$label_id' === depand_val){
$('#'+key).val('');
$('#'+depand_prime_id).val('');
var depen_key_val = key;
}
$.each(get_depend, function(keys, values) {
var depand_vals = values['dependent_pick_input'];
if((depen_key_val === depand_vals) && depen_key_val !== ''){
var depand_labels = get_depend[keys]['prime_form_id'];
var depand_keys = keys+'_hidden_'+depand_labels;
$('#'+depand_keys).val('');
$('#'+keys).val('');
}
});
// select_option();
$(function(){
setTimeout(function() {
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
}, 0);
});
}
});
});\n";
}
}else
if($depen_pick_list === 2){
$depen_pick_inputs = '#'.$label_id;
$document_load_script .= "$(document).on('change', '$depen_pick_inputs',function(){
var get_depend = JSON.parse('$get_depend');
$.each(get_depend, function(key, value) {
var label_id = '$label_id';
var depand_val = value['dependent_pick_input'];
var depand_prime= value['prime_form_id'];
if((depand_val) && ('$depen_pick_input' !== key)){
var depand_prime_id = key+'_hidden_'+depand_prime;
var depen_key_val = '';
if('$label_id' === depand_val){
$('#'+key).val('');
$('#'+depand_prime_id).val('');
var depen_key_val = key;
}
$.each(get_depend, function(keys, values) {
var depand_vals = values['dependent_pick_input'];
if((depen_key_val === depand_vals) && depen_key_val !== ''){
var depand_labels = get_depend[keys]['prime_form_id'];
var depand_keys = keys+'_hidden_'+depand_labels;
$('#'+depand_keys).val('');
$('#'+keys).val('');
}
});
// select_option();
$(function(){
setTimeout(function() {
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
}, 0);
});
}
});
});\n";
if($change_label_id){
$document_load_script .= "$('#$change_label_id').change(function(e) {
var get_depend = JSON.parse('$get_depend');
$.each(get_depend, function(key, value) {
var label_id = '$label_id';
var depand_val = value['dependent_pick_input'];
var depand_prime= value['prime_form_id'];
if((depand_val) && ('$label_id' !== key)){
var depand_prime_id = key+'_hidden_'+depand_prime;
var depen_key_val = '';
if('$label_id' === depand_val){
$('#'+key).val('');
$('#'+depand_prime_id).val('');
var depen_key_val = key;
}
$.each(get_depend, function(keys, values) {
var depand_vals = values['dependent_pick_input'];
if((depen_key_val === depand_vals) && depen_key_val !== ''){
var depand_labels = get_depend[keys]['prime_form_id'];
var depand_keys = keys+'_hidden_'+depand_labels;
$('#'+depand_keys).val('');
$('#'+keys).val('');
}
});
// select_option();
$(function(){
setTimeout(function() {
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
}, 0);
});
}
});
});\n";
}
}
}
//ON-LOAD SCRIPT MULTI SELECT REMOVE EMPTY
if((int)$field_type === 7){
if(!$form_view->$label_id){
$document_load_script .= "$('#$label_id option:selected').removeAttr('selected');\n";
}
}
//ON-LOAD SCRIPT FOR SINGLE AUTOCOMPLET BOX
if((int)$field_type === 9){
$hidden_id = $label_id."_hidden_".$prime_form_id;
$auto_id = "#$label_id";
$hidden_id = $label_id."_hidden_".$prime_form_id;
$auto_id = "#$label_id";
$auto_url = site_url("$controller_name/suggest");
$document_load_script .= "$('#$hidden_id').autocomplete({
minChars:2,
autoFocus: true,
delay:10,
appendTo: '.modal-content',
source: function (request, response) {
var key = '$encKey';
var encData = encrypt(key,{term:request.term,prime_form_id:'$prime_form_id'});
$.ajax({
url : '$auto_url',
type: 'POST',
data: encData,
success: function (data) {
var rslt = JSON.parse(data);
response($.map(rslt, function (el) {
if(el.value === '0'){
$('#$hidden_id').val('');
}else{
return {
value: el.value,
label: el.label,
display_name:el.display_name
};
}
}));
}
});
},
select: function(e, ui) {
e.preventDefault();
$('$auto_id').val(ui.item.value);
$('#$hidden_id').val(ui.item.display_name);
},
change: function(event, ui) {
if (ui.item === null || ui.item === '' || ui.item === 'null') {
$('$auto_id').val('');
$('#$hidden_id').val('');
}
}
});\n";
}
//ON-LOAD SCRIPT FILE UPLOAD INPUT BOX
if((int)$field_type === 10){
$upload_id = "upload_".$label_id;
$check_size = 2;
$send_url = base_url("$controller_name/upload_files");
$document_load_script .= "$('#$upload_id').change(function() {
var file_data = $('#$upload_id').prop('files')[0];
var fileName = file_data.name;
var size = file_data.size;
var type = file_data.type;
var key = '$encKey';
// Ensure a file was selected
if (!file_data) {
toastr.error('No file selected..');
return;
}
const reader = new FileReader();
reader.onload = function(e) {
const str = e.target.result.split(',')[1]; // Get Base64 without MIME prefix
var encData = encrypt(key,{file_data:str,send_from:'$controller_name',label_id:'$label_id',fileName:fileName,type:type,size:size,send_for:'upload'});
$.ajax({
url: '$send_url',
cache: false,
contentType: 'text/plain',
processData: false,
data: encData,
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('');
}
}
});
};
reader.onerror = function(error) {
console.error('Error reading file:', error);
};
reader.readAsDataURL(file_data); // Read the file as Data URL (Base64)
});\n";
}
//ON-LOAD SCRIPT FOR ROW SET AUTO SAVE PRIMARY FORM
if(((int)$input_view_type === 3) && ((int)$form_view->$prime_id === 0) && ((int)$view_count === 0)){
$view_count++;
$change_event = "focusout";
$auto_save_id = $label_id;
if(((int)$field_type === 4)|| ((int)$field_type === 13)){
$change_event = "dp.hide";
$auto_save_id = $label_id;
}else
if(((int)$field_type === 5)|| ((int)$field_type === 7)){
$change_event = "change";
$auto_save_id = $label_id;
}else
if((int)$field_type === 9){
$hidden_id = $label_id."_hidden_".$prime_form_id;
$auto_save_id = $hidden_id;
}
$document_load_script .= "$('#$auto_save_id').bind('$change_event', function(e) {
e.preventDefault();
if($(form_id).valid()){
$(form_id).submit();
}else{
$('#$auto_save_id').val('');
toastr.clear();
toastr.error('Please fill all required in previous tab');
$('.row_btn').hide();
}
});\n";
}
//ON-LOAD SCRIPT FOR ROW SET AUTO SAVE
if((int)$input_view_type === 3){
if((int)$mandatory_field === 1){
$check_input_id = $label_id;
if((int)$field_type === 9){
$hidden_id = $label_id."_hidden_".$prime_form_id;
$check_input_id = $label_id;
}
$row_check_input .= "#$check_input_id,";
}
$row_send_data .= "$label_id:$('#$label_id').val(),";
if((int)$field_type === 6){
$row_clear_data .= "$('#$label_id').prop('checked', false);\n";
}else
if((int)$field_type === 7){
$row_clear_data .= "$('#$label_id option:selected').removeAttr('selected');\n";
}else
if((int)$field_type === 10){
$row_clear_data .= "$('#$label_id').val('');\n";
$row_clear_data .= "$('#table_$label_id').html('');\n";
$row_clear_data .= "$('#upload_$label_id').val('');\n";
}else{
$row_clear_data .= "$('#$label_id').val('');\n";
}
}
/*================== DOCUMENT LOAD SCRIPT - END ==================*/
}
}
$input_box .="<input type ='hidden' name='previous_pick_value' id='previous_pick_value' value='$json_data'>";
if($form_view_type === 1){
$view_content .= "<h4 class='block_head'>$form_view_heading</h4>
<div id='$form_view_label_name' class='block_content pd8'>
$input_box
</div>";
}else
if($form_view_type === 2){
$count++;
$tab_active = "";
$content_active = "";
if((int)$count === 1){
$tab_active = "active";
$content_active = "in active";
$view_content .= "<div class='block_content'>
<ul class='nav nav-tabs' data-tabs='tabs'>
@TABLI
</ul>
<div class='tab-content' style='padding:8px;'>
@TABCONTENT
</div>
</div>";
}
$tab_li .= "<li role='presentation' class='$tab_active'>
<a data-toggle='tab' href='#$form_view_label_name'>$form_view_heading</a>
</li>";
$tab_content .= "<div class='tab-pane fade $content_active' id='$form_view_label_name' >
<h4 class='tab_head'>$form_view_heading</h4>
$input_box
</div>";
}else
if($form_view_type === 3){
$div_id = $row_view_list[$prime_form_view_id]['div_id'];
$table_id = $row_view_list[$prime_form_view_id]['table_id'];
$row_set_view = $row_view_list[$prime_form_view_id]['row_set_view'];
$style = "";
if((int)$form_view->$prime_id === 0){
$style = "style='display:none;'";
}
$submit_btn_id = "row_save_$prime_form_view_id";
$cancel_btn_id = "row_cancel_$prime_form_view_id";
$row_prime_inupt = form_input( array("name"=>$row_prime_id, "id"=>$row_prime_id,"value"=>0,"type"=>"hidden"));
$final_div = "";
if($input_box){
$final_div = "$row_prime_inupt
$input_box
<div class='form-group'>
<a class='btn btn-primary btn-sm row_btn' id='$submit_btn_id' $style>Add/Update</a>
<a class='btn btn-danger btn-sm row_btn' id='$cancel_btn_id' $style>Cancel</a>
</div>
<div id='$div_id' class='row_set_div'>
$row_set_view
</div>";
}
if($form_view_type_mode === 1){
$view_content .= "<h4 class='block_head'>$form_view_heading</h4>
<div class='block_content pd8'>
$final_div
</div>";
}else
if($form_view_type_mode === 2){
$tab_active = "active";
$content_active = "in active";
if((int)$count >= 1){
$tab_active = "";
$content_active = "";
}
$tab_li .= "<li role='presentation' class='$tab_active' id='li_$form_view_label_name'>
<a data-toggle='tab' href='#$form_view_label_name'>$form_view_heading</a>
</li>";
$tab_content .= "<div class='tab-pane fade $content_active' id='$form_view_label_name' >
<h4 class='tab_head'>$form_view_heading</h4>
$final_div
</div>";
}
$send_url = site_url("$this->control_name/rowset_save");
$row_check_input = rtrim($row_check_input,',');
$row_clear_data = rtrim($row_clear_data,',');
$row_send_data = "{".rtrim($row_send_data,',')."}";
if($row_check_input){
$row_check_input = "var isValid = true;
$('$row_check_input').each(function() {
if ($(this).val() === '') {
isValid = false;
toastr.error('Please fill all required field');
$(this).addClass('error');
}else{
$(this).removeClass('error');
}
});
var key = '$encKey';
var encData = encrypt(key,$row_send_data);
if(isValid){
$.ajax({
type: 'POST',
url: '$send_url',
data:encData,
success: function(data) {
var rslt = JSON.parse(data);
if(rslt.success){
toastr.success(rslt.message);
}else{
toastr.error(rslt.message);
}
$('#'+rslt.row_set_data.div_id).html(rslt.row_set_data.row_set_view);
$row_clear_data
$(function(){
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
});
$('#'+rslt.row_set_data.table_id).DataTable();
}
});
}";
}else{
$row_check_input = "var key = '$encKey';
var encData = encrypt(key,$row_send_data);
$.ajax({
type: 'POST',
url: '$send_url',
data:encData,
success: function(data) {
var rslt = JSON.parse(data);
toastr.success(rslt.message);
$('#'+rslt.row_set_data.div_id).html(rslt.row_set_data.row_set_view);
$row_clear_data
$(function(){
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
});
$('#'+rslt.row_set_data.table_id).DataTable();
}
});";
}
$document_load_script .= "$('#$submit_btn_id').click(function(){
$row_check_input
});\n
$('#$cancel_btn_id').click(function(){
$row_clear_data
$(function(){
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
});
});\n
$('#$table_id').DataTable();\n";
}
}
$view_content = str_replace("@TABLI",$tab_li,$view_content);
$view_content = str_replace("@TABCONTENT",$tab_content,$view_content);
$form_open = form_open("$controller_name/save/".$primeId,array("id"=>$form_id,"class"=>"form-inline"));
$form_close = form_close();
$prime_inupt = form_input( array("name"=>$prime_id, "id"=>$prime_id,"value"=>$primeId,"type"=>"hidden"));
echo "<table id='ttt' style='width:100%' class='table table-hover'>
<thead>
<tr style='color: #FFFFFF;'>
<th style='text-align:center;'>Employee Code</th>
<th style='text-align:center;'>Component Value</th>
<th style='text-align:center;'>Date Of Joining</th>
<th style='text-align:center;'>Department</th>
<th style='text-align:center;'>Leave Approve Type</th>
<th style='text-align:center;'>First Level Approval</th>
<th style='text-align:center;'>HR Approval</th>
</tr></thead><tbody id='emp_body'>
$empdata
</tbody>
</table>$form_open
<fieldset id='FundBasicInfo' style='margin:0px;padding:8px;background-color:#f2f2f2;'>
$prime_inupt
$view_content
</fieldset>
$form_close";
//User Role Based Condition BSK
$user_read_only = "";
if($role_based_condition){
foreach ($role_based_condition as $key => $condition) {
if($key === "readonly"){
if($condition !== ""){
$condition = str_replace(",", ",#", $condition);
$user_read_only = "$('#".$condition."').attr('readonly','readonly');";
}
}
}
}
?>
<?php
$app_mode = $this->config->item('environment');
if($app_mode === 'PRODUCTION'){
$url=$this->config->item('unauthurl');
?>
<script>
!function() {
function detectDevTool(allow) {
if(isNaN(+allow)) allow = 100;
var start = +new Date();
debugger;
var end = +new Date();
if(isNaN(start) || isNaN(end) || end - start > allow) {
var url = '<?php echo $url; ?>';
window.location.href = url;
}
}
if(window.attachEvent) {
if (document.readyState === "complete" || document.readyState === "interactive") {
detectDevTool();
window.attachEvent('onresize', detectDevTool);
window.attachEvent('onmousemove', detectDevTool);
window.attachEvent('onfocus', detectDevTool);
window.attachEvent('onblur', detectDevTool);
} else {
setTimeout(argument.callee, 0);
}
} else {
window.addEventListener('load', detectDevTool);
window.addEventListener('resize', detectDevTool);
window.addEventListener('mousemove', detectDevTool);
window.addEventListener('focus', detectDevTool);
window.addEventListener('blur', detectDevTool);
}
}();
</script>
<?php } ?>
<script type="text/javascript">
$(document).ready(function(){
// VIEW INFO PROCESS QUERY ERROR THROWING
var module_sts = <?php echo json_encode($module_sts); ?>;
if(!module_sts){
toastr.warning('View Info Query Process Error...!');
return false;
}
// PAGE INFO PROCESS QUERY ERROR THROWING
var prime_id = "#<?php echo $prime_id;?>";
var form_id = "#<?php echo $form_id;?>";
var date_exist = "<?php echo $date_exist;?>";
var db_name = "<?php echo $db_name;?>";
var date_time_exist = "<?php echo $date_time_exist;?>";
var logged_user_role = "<?php echo $logged_user_role;?>";
var logged_emp_code = "<?php echo $logged_emp_code;?>";
var view_id = $(prime_id).val();
<?php echo $user_read_only; ?>
var approval_type = parseInt($('#approval_type').val());
//Remove special ot except Timo HR's
if(parseInt(logged_user_role) !== 1 && parseInt(logged_user_role) !== 8 && parseInt(logged_user_role) !== 10){
$("#ot_type option[value='3']").remove();
}
//default hide function
default_hide();
//approval based hide and show
if(approval_type){
approval_wise_hide(approval_type);
}
var approval_sts = parseInt($('#approval_status').val());
if(approval_sts === 2){
$('#approved_date').parent().show();
}else
if(approval_sts === 3){
$('#rejected_reason').parent().show();
$('#rejected_reason').removeClass('ignore');
}
//For date restriction based on payroll process
var salary_start_date = "<?php echo $salary_start_date;?>";
var salary_end_date = "<?php echo $salary_end_date;?>";
var date_of_joining = "<?php echo $date_of_joining;?>";
select_date_validate(salary_start_date,salary_end_date,view_id,date_of_joining);
if(!view_id){
$('#cancellation_request').parent().hide();
$('#cancellation_request').addClass('ignore');
if(parseInt(logged_user_role) !== 1){
$('#employee_code').val(logged_emp_code);
}
var first_approval_sts = $('#first_approval_status').val();
var second_approval_sts = $('#second_approval_status').val();
var approval_sts = $('#approval_status').val();
if(first_approval_sts === '0' || first_approval_sts === ''){
$('#first_approval_status').val(1);
}
if(second_approval_sts === '0' || second_approval_sts === ''){
$('#second_approval_status').val(1);
}
if(approval_sts === '0' || approval_sts === ''){
$('#approval_status').val(1);
}
var employee_code = $('#employee_code').val();
var view_id = $(prime_id).val();
if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
get_employee_details(employee_code,view_id);
}
}else{
var cancel_request = parseInt($('#cancellation_request').val());
if(cancel_request === 1){
$('#cancellation_request').attr("readonly","readonly");
}
var ot_type = $('#ot_type').val();
if(ot_type){
ottype_based_hideshow(ot_type);
}
}
//DR leave cancellation function
//$('#cancellation_request').parent().hide();
$('#cancellation_reason').parent().hide();
$('#cancellation_reason').addClass('ignore');
var ot_type = $('#ot_type').val();
if(($('#approval_status').val() === "2" || $('#cancellation_request').val() === "1")){
//&& parseInt(ot_type) !== 4
$('#cancellation_request').parent().show();
//$('#employee_code').attr('readonly','readonly');
var first_cancel_status = $('#first_approval_cancel_status').val();
var second_cancel_status = $('#second_approval_cancel_status').val();
if(first_cancel_status === '0' || first_cancel_status === ''){
$('#first_approval_cancel_status').val(1);
}
if(second_cancel_status === '0' || second_cancel_status === ''){
$('#second_approval_cancel_status').val(1);
}
}else{
//$('#cancellation_request').parent().hide();
}
$('#cancellation_request').on('change', function() {
if($('#cancellation_request').val() === "1" || $('#approval_status').val() === "2"){
$('#cancellation_reason').parent().show();
$('#cancellation_reason').removeClass('ignore');
// $('#submit').attr("data-btn-submit", "Submit");
$('#approval_status').val(1);
$('#submit').attr('disabled',false);
}else{
$('#approval_status').val(2);
$('#cancellation_reason').parent().hide();
$('#cancellation_reason').addClass('ignore');
$('#cancellation_reason').val('');
$('#submit').attr('disabled','disabled');
}
select_call();
});
//DR LEAVE CANCELLATION REQUEST HIDE AND SHOW
if($('#cancellation_request').val() === "1" && ($('#approval_type').val() === "1" || $('#approval_type').val() === "2")){
$('#first_approval_cancel_status,#second_approval_cancel_status').parent().show();
$('#first_approval_cancel_status,#second_approval_cancel_status').removeClass('ignore');
}else
if($('#cancellation_request').val() === "1" && $('#approval_type').val() === "3"){
$('#first_approval_cancel_status').parent().show();
$('#first_approval_cancel_status').removeClass('ignore');
$('#second_approval_cancel_status').parent().hide();
$('#second_approval_cancel_status').addClass('ignore');
}else
if($('#cancellation_request').val() === "1" && $('#approval_type').val() === "4"){
$('#second_approval_cancel_status').parent().show();
$('#second_approval_cancel_status').removeClass('ignore');
$('#first_approval_cancel_status').parent().hide();
$('#first_approval_cancel_status').addClass('ignore');
}else{
/*$('#first_approval_cancel_status,#second_approval_cancel_status').parent().hide();
$('#first_approval_cancel_status,#second_approval_cancel_status').addClass('ignore');*/
}
select_call();
if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
$('#employee_code').on('change', function(){
var employee_code = $('#employee_code').val();
var view_id = $(prime_id).val();
// $('#leave_type').val('');
$("#entry_date").val("");
if(employee_code){
get_employee_details(employee_code,view_id);
}
});
}
$('#entry_date').on("dp.hide",function(e){
var entry_date = $('#entry_date').val();
if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
var employee_code = $('#employee_code').val();
if(!employee_code){
toastr.error("Please choose the Employee Code First...");
$('#entry_date').val('');
return false;
}
}else{
var employee_code = logged_emp_code;
}
check_time_entry(employee_code,entry_date);
});
$('#ot_type').on('change', function(){
var ot_type = $('#ot_type').val();
//var employee_code = $('#employee_code').val();
//var category = $('#category').val();
ottype_based_hideshow(ot_type);
});
$('#ot_in_time,#ot_out_time').on('dp.hide', function(){
var from = $(this).attr('id');
ot_in_out_time_valid(from);
});
if(date_exist === "1"){
$(function () {
$("#date_of_joining").datetimepicker({
format: 'DD-MM-YYYY',
//debug: true
});
$(".datepicker_month").datetimepicker({
format: 'MM-YYYY',
//debug: true
});
$(".datepicker_year").datetimepicker({
format: 'YYYY',
//debug: true
});
});
}
$('.only_time').datetimepicker({
format: 'HH:mm',
});
if(date_time_exist === "1"){
$(function () {
$(".datepicker_time").datetimepicker({
format: 'DD-MM-YYYY HH:mm:ss',
//debug: true
});
});
}
var drop_exist = "<?php echo $drop_exist;?>";
if(drop_exist === "1"){
$(function(){
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
});
}
$('textarea').on('keyup keypress', function(e) {
if(e.keyCode === 13) {
e.stopPropagation();
}else
if(e.shiftKey){
e.stopPropagation();
}
});
$(".number").bind('keyup', function(e) {
this.value = this.value.replace(/[^0-9]/g,'');
});
$(".decimal_no").bind('keyup', function(e) {
this.value = this.value.replace(/[^0-9_.]/g,'');
});
$('.alpha').bind('keypress', function (event) {
var regex = new RegExp("^[a-zA-Z0-9\-_.@\/\\s]+$");
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
});
$(".alpha_text").keypress(function(event){
var regex = new RegExp("^[a-zA-Z\\s]+$");
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
});
$.validator.setDefaults({ignore:[]});
$.validator.addMethod("alphanumeric", function(value, element) {
return this.optional(element) || /^[a-z0-9\-\s]+$/i.test(value);
}, "Allow only letters, numbers, or dashes.");
$(form_id).submit(function(event){ event.preventDefault(); }).validate({
ignore: ".ignore",
invalidHandler: function(e, validator){
if(validator.errorList.length)
$('.nav-tabs a[href="#' + $(validator.errorList[0].element).closest(".tab-pane").attr('id') + '"]').tab('show');
},
rules:{
<?php echo $validation_rule; ?>
},
submitHandler: function (form){
//Encrypted
let formData = new FormData(form);
// Convert FormData to JSON object
let jsonData = Object.fromEntries(formData.entries());
var key = '<?php echo $encKey; ?>';
<?php echo $json_multi; ?>;
var encData = encrypt(key,jsonData);
$("#submit").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
$('#submit').attr('disabled','disabled');
$.ajax({
url : $(form).attr('action'),
type : 'POST',
contentType : 'text/plain',
data : encData,
success: function (response){
$('#submit').attr('disabled',false);
$("#submit").html("Submit");
if(response.success){
$(prime_id).val(response.insert_id);
$('.row_btn').show();
$('.modal').modal('hide');
toastr.success(response.message);
// location.reload(true);
//GLOBAL VARIABLES FROM MANAGE MODULE FOR DATATABLE EDIT VIEW AND CANCEL BUTTON VALIDATE
emp_cancel_arr = response.emp_cancel_arr;
ot_status = response.ot_status_arr;
ot_cancel = response.ot_cancel_arr;
//DATATABLE CALLING
$('#table').DataTable().ajax.reload();
}else{
toastr.error(response.message);
}
},
dataType: 'json'
});
}
});
/* LOAD SCRIPT AND CONDITION LOAD */
<?php
echo "$document_load_script";
foreach($condition_list as $list){
echo $list;
}
?>
/* LOAD SCRIPT AND CONDITION LOAD */
});
function ot_in_out_time_valid(from){
var category = $('#category').val();
var employee_code = $('#employee_code').val();
var entry_date = $('#entry_date').val();
var early_coming = $('#early_coming').val();
var excess_out = $('#excess_out').val();
var shift_name = $('#shift_name').val();
var ot_type = $('#ot_type').val();
var shift_status = parseInt($('#shift_status').val());
var shift_start = parseInt($('#shift_start').val());
var shift_end = parseInt($('#shift_end').val());
var import_in_time = moment($('#import_in_time').val(), 'HH:mm').format('HH:mm');
var import_out_time = moment($('#import_out_time').val(), 'HH:mm').format('HH:mm');
var from_time = moment($('#shift_from_time').val(), 'HH:mm').format('HH:mm');
var to_time = moment($('#shift_to_time').val(), 'HH:mm').format('HH:mm');
var in_time = moment($('#in_time').val(), 'HH:mm').format('HH:mm');
var out_time = moment($('#out_time').val(), 'HH:mm').format('HH:mm');
var ot_in_time = moment($('#ot_in_time').val(), 'HH:mm').format('HH:mm');
var ot_out_time = moment($('#ot_out_time').val(), 'HH:mm').format('HH:mm');
var db_name = "<?php echo $db_name;?>";
var from_date = "";
var to_date = "";
var in_date = "";
var out_date = "";
var ot_in_date = "";
var ot_out_date = "";
var import_in_date = moment(entry_date+" "+import_in_time, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DD HH:mm');
var import_out_date = moment(entry_date+" "+import_out_time, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DD HH:mm');
var from_date = moment(entry_date+" "+from_time, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DD HH:mm');
var to_date = moment(entry_date+" "+to_time, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DD HH:mm');
var in_date = moment(entry_date+" "+in_time, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DD HH:mm');
var out_date = moment(entry_date+" "+out_time, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DD HH:mm');
if(ot_in_time !== "" || ot_in_time !== "00:00"){
var ot_in_date = moment(entry_date+" "+ot_in_time, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DD HH:mm');
}
if(ot_out_time !== "" || ot_out_time !== "00:00"){
var ot_out_date = moment(entry_date+" "+ot_out_time, 'DD-MM-YYYY HH:mm').format('YYYY-MM-DD HH:mm');
}
if(shift_start === 2){
import_in_date = moment(entry_date+" "+import_in_time, 'DD-MM-YYYY HH:mm').add(+1, 'days').format('YYYY-MM-DD HH:mm');
in_date = moment(entry_date+" "+in_time, 'DD-MM-YYYY HH:mm').add(+1, 'days').format('YYYY-MM-DD HH:mm');
if(ot_in_time !== "" || ot_in_time !== "00:00"){
ot_in_date = moment(entry_date+" "+ot_in_time, 'DD-MM-YYYY HH:mm').add(+1, 'days').format('YYYY-MM-DD HH:mm');
// console.log('2'+ new Date(ot_in_date));
}
}else
if(shift_start === 3){
import_in_date = moment(entry_date+" "+import_in_time, 'DD-MM-YYYY HH:mm').add(-1, 'days').format('YYYY-MM-DD HH:mm');
if(import_in_time <= in_time){
in_date = moment(entry_date+" "+in_time, 'DD-MM-YYYY HH:mm').add(-1, 'days').format('YYYY-MM-DD HH:mm');
}
if(ot_in_time !== "" || ot_in_time !== "00:00"){
if(import_in_time <= ot_in_time){
ot_in_date = moment(entry_date+" "+ot_in_time, 'DD-MM-YYYY HH:mm').add(-1, 'days').format('YYYY-MM-DD HH:mm');
// console.log('3'+ new Date(ot_in_date));
}
}
}
if(shift_end === 2){
import_out_date = moment(entry_date+" "+import_out_time, 'DD-MM-YYYY HH:mm').add(+1, 'days').format('YYYY-MM-DD HH:mm');
if(import_out_time >= out_time){
out_date = moment(entry_date+" "+out_time, 'DD-MM-YYYY HH:mm').add(+1, 'days').format('YYYY-MM-DD HH:mm');
}
if(ot_out_time !== "" || ot_out_time !== "00:00"){
if(import_out_time >= ot_out_time){
ot_out_date = moment(entry_date+" "+ot_out_time, 'DD-MM-YYYY HH:mm').add(+1, 'days').format('YYYY-MM-DD HH:mm');
}
}
}else
if(shift_end === 3){
import_out_date = moment(entry_date+" "+import_out_time, 'DD-MM-YYYY HH:mm').add(-1, 'days').format('YYYY-MM-DD HH:mm');
out_date = moment(entry_date+" "+out_time, 'DD-MM-YYYY HH:mm').add(-1, 'days').format('YYYY-MM-DD HH:mm');
if(ot_out_time !== "" || ot_out_time !== "00:00"){
ot_out_date = moment(entry_date+" "+ot_out_time, 'DD-MM-YYYY HH:mm').add(-1, 'days').format('YYYY-MM-DD HH:mm');
}
}
if(shift_status === 3){
from_date = moment(entry_date+" "+from_time, 'DD-MM-YYYY HH:mm').add(+1, 'days').format('YYYY-MM-DD HH:mm');
to_date = moment(entry_date+" "+to_time, 'DD-MM-YYYY HH:mm').add(+1, 'days').format('YYYY-MM-DD HH:mm');
}else
if(shift_status === 2){
to_date = moment(entry_date+" "+to_time, 'DD-MM-YYYY HH:mm').add(+1, 'days').format('YYYY-MM-DD HH:mm');
//IMPORT START DATE CURRENT DATE
if(shift_start === 1){
//SHIFT IN TIME CURRENT DATE AND SHIFT OUT TIME NEXT DATE(REQUEST SEND IN DATE WAS NEXT DATE SO TAKE ON SHIFT IN DATE WAS NEXT DATE)
if(in_time > out_time && in_time > ot_in_time){
ot_in_date = moment(entry_date+" "+ot_in_time, 'DD-MM-YYYY HH:mm').add(+1, 'days').format('YYYY-MM-DD HH:mm');
}
}
}
if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
if(!employee_code){
toastr.error("Please choose the Employee Code First...");
$('#ot_in_time,#ot_out_time,#excess_work').val('00:00');
return false;
}
}
if(!entry_date){
toastr.error("Please choose the Attendance Date First...");
$('#ot_in_time,#ot_out_time,#excess_work').val('00:00');
return false;
}else
if(from === "ot_in_time"){
$('#ot_out_time,#excess_work').val('00:00');
if(ot_in_time === "" || ot_in_time === "00:00"){
toastr.error("Ot In Time Should not Empty..!");
$('#ot_in_time,#excess_work').val('00:00');
return false;
}else{
if(parseInt(ot_type) !== 3){
if(in_date > ot_in_date || out_date <= ot_in_date){
toastr.error("Ot In Time Should be Between Punch In Time and Out Time..!");
$('#ot_in_time,#excess_work').val('00:00');
return false;
}
// if(in_date > ot_in_date && out_date < ot_in_date){
// toastr.error("Ot In Time Should be Between Punch In Time and Out Time..!");
// $('#ot_in_time,#excess_work').val('00:00');
// return false;
// }
}
}
}else
if(from === "ot_out_time"){
if(ot_out_time === "" || ot_out_time === "00:00"){
toastr.error("Ot Out Time Should not Empty..!");
$('#ot_in_time,#excess_work').val('00:00');
return false;
}else{
if(parseInt(ot_type) !== 3){
if(in_date >= ot_out_date){
toastr.error("Ot Out Time Should not be less than Punch In Time..!");
$('#ot_out_time,#excess_work').val('00:00');
return false;
}else
if(out_date < ot_out_date){
toastr.error("Ot Out Time Should not be Greater than Punch Out Time..!");
$('#ot_out_time,#excess_work').val('00:00');
return false;
}
}
}
}
//Check total time Calculation
if((ot_in_time !== "" && ot_in_time !== "00:00") && (ot_out_time !== "" && ot_out_time !== "00:00")){
total_time_cal(category,employee_code,ot_in_time,ot_out_time,ot_in_date,ot_out_date,early_coming,excess_out,shift_name,ot_type,entry_date,shift_status);
}
}
//DEFAULT HIDE FUNCTION
function default_hide(){
$('#rejected_reason,#approved_date,#shift_status,#ot_approved_form,#device_code,#request_date').parent().hide();
$('#rejected_reason,#shift_status,#ot_approved_form,#request_date').addClass('ignore');
}
function total_time_cal(category,employee_code,ot_in_time,ot_out_time,ot_in_date,ot_out_date,early_coming,excess_out,shift_name,ot_type,entry_date,shift_status){
if(ot_in_date >= ot_out_date){
toastr.error("OT Out Time Should be Greater than OT In Time..!");
$('#ot_out_time,#excess_work').val('00:00');
return false;
}
var total_hours = "00:00";
//date difference get hours based
var total_hours = moment.utc(moment(ot_out_date,'DD-MM-YYYY HH:mm:ss').diff(moment(ot_in_date,'DD-MM-YYYY HH:mm:ss'))).format("HH:mm:ss");
if(parseInt(ot_type) !== 3){
if(total_hours){
var key = '<?php echo $encKey; ?>';
var data = {category:category,employee_code:employee_code,total_hours:total_hours,shift_name:shift_name,ot_type:ot_type,entry_date:entry_date};
var encData = encrypt(key,data);
$.ajax({
type: "POST",
url: '<?php echo site_url("$controller_name/check_total_time"); ?>',
data:encData,
contentType: 'text/plain',
success: function(data){
var rslt = JSON.parse(data);
if(rslt.success){
toastr.success("proceed");
$("#ot_hours").val(rslt.total_hours);
$("#break_deduction").val(rslt.break_deduction);
$("#excess_work").val(rslt.final_hours);
}else{
toastr.error(rslt.message);
$('#ot_out_time').val("00:00");
$('#excess_work').val("00:00");
$('#break_deduction').val("00:00");
$('#ot_hours').val("00:00");
}
select_call();
}
});
}
}else{
$("#excess_work").val(total_hours);
}
}
//GET EMPLOYEE DETAILS
function get_employee_details(employee_code,view_id){
var send_url = '<?php echo site_url("$controller_name/get_employee_details"); ?>';
if(employee_code){
var key = '<?php echo $encKey; ?>';
var data = {emp_code:employee_code};
var encData = encrypt(key,data);
$.ajax({
type: "POST",
url: send_url,
data:encData,
contentType: 'text/plain',
success: function(data) {
var rslt = JSON.parse(data);
if(rslt.success){
$("#date_of_joining").val(rslt.date_of_joining);
$("#department").val(rslt.department);
$("#category").val(rslt.category);
$("#device_code").val(rslt.device_code);
$("#approval_type").val(rslt.approve_type);
$("#first_level_approval").val(rslt.first_level_approval);
$("#second_level_approval").val(rslt.second_level_approval);
var salary_start_date = rslt.salary_start_date;
var salary_end_date = rslt.salary_end_date;
var fin_start_date = rslt.fin_start_date;
var fin_end_date = rslt.fin_end_date;
//FOR DATE VALIDATION BASED ON LEAVE EXPORT TABLE
//FOR DATE VALIDATION BASED ON SALARY START DATE AND COMPANY INFORMATION DATE INPUT
var date_of_joining = moment(rslt.date_of_joining, "DD-MM-YYYY").format("YYYY-MM-DD");
select_date_validate(salary_start_date,salary_end_date,view_id,date_of_joining);
}else{
toastr.error(rslt.message);
$('.modal').modal("toggle");
}
select_call();
}
});
}
}
function approval_wise_hide(approval_type){
if(approval_type === 1 || approval_type === 2){
$('#first_approval_status,#second_approval_status,#first_approval_cancel_status,#second_approval_cancel_status').parent().show();
$('#first_approval_status,#second_approval_status,#first_approval_cancel_status,#second_approval_cancel_status').removeClass('ignore');
}else
if(approval_type === 3){
$('#first_approval_status,#first_approval_cancel_status').parent().show();
$('#second_approval_status,#second_approval_cancel_status').parent().hide();
$('#first_approval_status,#first_approval_cancel_status').removeClass('ignore');
$('#second_approval_status,#second_approval_cancel_status').addClass('ignore');
}else{
$('#second_approval_status,#second_approval_cancel_status').parent().show();
$('#first_approval_status,#first_approval_cancel_status').parent().hide();
$('#second_approval_status,#second_approval_cancel_status').removeClass('ignore');
$('#first_approval_status,#first_approval_cancel_status').addClass('ignore');
}
}
//FOR DATE VALIDATION BASED ON LEAVE EXPORT TABLE
function select_date_validate(salary_start_date,salary_end_date,view_id,date_of_joining){
var user_role = "<?php echo $logged_user_role;?>";
var start_date = "";
var end_date = "";
var start_date = moment(salary_start_date, 'DD-MM-YYYY').format('YYYY-MM-DD');
var end_date = moment(salary_end_date, 'DD-MM-YYYY').format('YYYY-MM-DD');
//GET MAX DATE AND USER RIGH BASED(MULTI PICKLIST) FROM COMPANY INFORMATION
var max_allow_date = parseInt(<?php echo $max_allow_date;?>);
var max_date_based = "<?php echo $max_date_based;?>";
max_date_based = max_date_based.split(',');
//MAX DATE AND USER RIGH BASED(MULTI PICKLIST FROM COMPANY INFORMATION) DATE VALIDATION
if(max_allow_date > 0 && ($.inArray(user_role, max_date_based) !== -1)){
var max_allow_date = moment(new Date(), "DD-MM-YYYY").add("-"+max_allow_date, "days").format("YYYY-MM-DD");
if(max_allow_date > start_date){
start_date = max_allow_date;
}
}
//DATE OF JOINING BASED DATE VALIDATION
if(date_of_joining){
if(date_of_joining > start_date){
start_date = date_of_joining;
}
}
//FOR ADD(INSERT PROCESS)
if(!view_id){
$(function () {
//FOR MIN AND MAX DATE SET IN BEFORE ALREADY ADDED DATETIMEPICKER REMOVE IT
var date_inputs = $('.datepicker').not('#date_of_joining,#request_date,#applied_on,#approved_date');
$(date_inputs).each(function() {
var date_input_id = $(this).attr('id');
$('#'+date_input_id).val('');
$('#'+date_input_id).datetimepicker();
$('#'+date_input_id).datetimepicker('destroy');
});
$(".datepicker").datetimepicker({
format: 'DD-MM-YYYY',
minDate: moment(start_date),
maxDate: moment(end_date),
//debug: true
});
});
}else{
$(function () {
$(".datepicker").datetimepicker({
format: 'DD-MM-YYYY',
//debug: true
});
});
}
}
//Check Time Entry
function check_time_entry(employee_code,entry_date){
var ot_type = $('#ot_type').val();
if(entry_date){
var key = '<?php echo $encKey; ?>';
var encData = encrypt(key,{employee_code:employee_code,entry_date:entry_date,ot_type:ot_type});
var send_url = '<?php echo site_url("$controller_name/check_time_entry"); ?>';
$.ajax({
type: "POST",
url: send_url,
data:encData,
contentType: 'text/plain',
success: function(data){
var rslt = JSON.parse(data);
if(rslt.success){
if(parseInt(ot_type) !== 3){
if(rslt.total_excess_hours === "0" || rslt.total_excess_hours === "00:00"){
toastr.error("Total OT Hours Should not Empty or Zero...!");
$("#entry_date,shift_name").val("");
$("in_time,out_time,early_coming,excess_out,excess_work").val("00:00");
}else{
$("#in_time").val(rslt.punch_in);
$("#out_time").val(rslt.punch_out);
$("#ot_in_time").val(rslt.punch_in);
$("#ot_out_time").val(rslt.punch_out);
$("#shift_name").val(rslt.shift_id);
$("#early_coming").val(rslt.early_in);
$("#excess_out").val(rslt.excess_out);
$("#excess_work").val(rslt.total_excess_hours);
$("#shift_status").val(rslt.shift_status);
$("#break_deduction").val(rslt.break_deduction);
$("#ot_in_time").val(rslt.punch_in);
$("#ot_out_time").val(rslt.punch_out);
$('<input>').attr({
type: 'hidden',
id: 'shift_from_time',
name: 'shift_from_time',
value: rslt.shift_from_time
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'shift_to_time',
name: 'shift_from_time',
value: rslt.shift_to_time
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'shift_start',
name: 'shift_start',
value: rslt.shift_start
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'shift_end',
name: 'shift_end',
value: rslt.shift_end
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'import_in_time',
name: 'import_in_time',
value: rslt.import_in_time
}).appendTo('form');
$('<input>').attr({
type: 'hidden',
id: 'import_out_time',
name: 'import_out_time',
value: rslt.import_out_time
}).appendTo('form');
//validation check
if(rslt.punch_in && rslt.punch_out){
ot_in_out_time_valid("ot_out_time");
}
}
}else{
$("#in_time").val(rslt.punch_in);
$("#out_time").val(rslt.punch_out);
$("#shift_name").val(rslt.shift_id);
$("#early_coming").val(rslt.early_in);
$("#excess_out").val(rslt.excess_out);
$("#shift_status").val(rslt.shift_status);
$("#ot_in_time").val(rslt.punch_in);
$("#ot_out_time").val(rslt.punch_out);
}
select_call();
}else{
if(parseInt(ot_type) !== 3){ //Donot Validate if Special OT
toastr.error(rslt.message);
$("#entry_date").val("");
}
}
}
});
}
}
// FILE UPLOAD REMOVE
function remove_file(prime_id,is_defult,input_name){
var prime_id_val = $("#"+prime_id).val();
var input_val = $("#"+input_name).val();
var send_url = '<?php echo site_url("$controller_name/remove_file"); ?>';
if(confirm('Are sure delete the file?')){
var key = '<?php echo $encKey; ?>';
var encData = encrypt(key,{prime_id:prime_id,prime_id_val:prime_id_val,is_defult:is_defult,input_name:input_name,input_val:input_val});
$.ajax({
type: "POST",
url: send_url,
data:encData,
contentType:'text/plain',
success: function(data) {
var rslt = JSON.parse(data);
$("#"+input_name).val("");
$("#table_"+input_name).attr("style", "display:none");
}
});
}
}
//PROGRESS STATUS FILE UPLOAD
function progress_bar(id) {
i = 0;
var elem = document.getElementById("process_"+id+"");
var width = 0;
var internal = setInterval(frame, 10);
function frame() {
if (width >= 100) {
clearInterval(internal);
i = 0;
$('#div_'+id+'').hide();
$('#submit').attr('disabled',false);
$('#submit').html('Submit');
} else {
width++;
elem.style.width = width + "%";
elem.innerHTML = width + "%";
}
}
}
//CHECK FILE SIZE FOR UPLOAD
function check_upload_size(size){
size = (size / 1024 / 1024).toFixed(2);
if(parseInt(size) <= 2){
return true;
}else{
return false;
}
}
function row_set_edit(row_id,table_name,view_id){
if((row_id !== "") && (table_name !== "")){
var send_url = '<?php echo site_url("$controller_name/row_set_edit"); ?>';
var key = '<?php echo $encKey; ?>';
var encData = encrypt(key,{row_id:row_id,table_name:table_name,view_id:view_id});
$.ajax({
type: "POST",
url: send_url,
data:encData,
contentType:'text/plain',
success: function(data) {
var rslt = JSON.parse(data);
var table_name_set = rslt.table_name;
$.each( rslt.row_result, function(key,value){
if(value.field_type === "6"){
$('#'+key).prop('checked', false);
if(value.input_value === "1"){
$('#'+key).prop('checked', true);
}
}else
if((value.field_type === "5") || (value.field_type === "7")){
var selectedOptions = value.input_value.split(",");
for(var i in selectedOptions) {
var optionVal = selectedOptions[i];
$("#"+key).find("option[value='"+optionVal+"']").prop("selected", "selected");
}
$(function(){
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
dropdownParent: $('.modal-dialog')
});
$('.select2-tags').select2({
tags: true,
tokenSeparators: [',']
});
});
}else
if(value.field_type === "10"){
var access_delete = "<?php echo $access_deletess;?>";
var result=value.input_value.split("/");
var file_name = result[2];
var prime_id = "<?php echo $prime_id;?>";
var upload_id = "upload_"+key;
var tabel_id = "table_"+key;
var proof = "<?php echo base_url();?>"+value.input_value;
var proofs = proof.split(/\s/).join('');
var field_isdefault = "<?php echo $field_isdefault;?>";
if(parseInt(access_delete)===0){
var remove_btn = "";
}else{
var remove_btn = "<a onclick=rowset_remove_file('"+row_id+"','"+table_name_set+"','"+key+"','"+view_id+"','"+primes_id+"'); style='color: red; cursor: pointer;'><i class='fa fa-times' aria-hidden='true'></i></a>";
}
var view_btn = "<a href='"+proof+"' target='_blank' style='cursor: pointer;'>"+file_name+"</a>";
var input_box = "<input type='hidden' id="+key+" name="+key+" value="+file_name+"><table style='width: 100%;' id='"+tabel_id+"'><tr><td colspan='2'><div class='progress_bar' id='div_"+key+"' style='display:none;'><div class='process_percent' id='process_"+key+"'>10%</div></div></td></tr><tr><td>"+remove_btn+"</td><td style='text-overflow: ellipsis; overflow: hidden; white-space: nowrap; max-width: 100px;'>"+view_btn+"</td></tr></table>";
if(value.input_value===""){
$("#table_"+key).html("");
}else{
$("#table_"+key).html(input_box);
$("#table_"+key).css("display", "");
$("#"+key).attr('value', value.input_value);
}
}
else{
$('#'+key).val(value.input_value);
}
});
}
});
}
}
function row_set_remove(row_id,table_name,view_id,prime_id){
if((row_id !== "") && (table_name !== "")){
if (confirm('Are you sure want to delete this record?')) {
var send_url = '<?php echo site_url("$controller_name/row_set_remove"); ?>';
var key = '<?php echo $encKey; ?>';
var encData = encrypt(key,{row_id:row_id,table_name:table_name,view_id:view_id,prime_id});
$.ajax({
type: "POST",
url: send_url,
data:encData,
contentType:'text/plain',
success: function(data) {
var rslt = JSON.parse(data);
toastr.success(rslt.msg);
$('#'+rslt.row_set_data.div_id).html(rslt.row_set_data.row_set_view);
$('#'+rslt.row_set_data.table_id).DataTable();
}
});
}
}
}
function rowset_remove_file(row_id,table_name_set,input_name,view_id,primes_id){
var send_url = '<?php echo site_url("$controller_name/rowset_remove_file"); ?>';
if(confirm('Are sure delete the file?')){
var key = '<?php echo $encKey; ?>';
var encData = encrypt(key,{row_id:row_id,table_name_set:table_name_set,input_name:input_name,view_id:view_id,primes_id:primes_id});
$.ajax({
type: "POST",
url: send_url,
data:encData,
contentType:'text/plain',
success: function(data) {
var rslt = JSON.parse(data);
$("#"+input_name).val("");
$("#table_"+input_name).attr("style", "display:none");
$('#'+rslt.div_id).html(rslt.row_set_view);
$('#'+rslt.table_id).DataTable();
}
});
}
}
function ottype_based_hideshow(ot_type){
if(parseInt(ot_type) === 3){
$('#shift_name,#in_time,#out_time,#ot_approved_form').parent().hide();
$('#shift_name,#in_time,#out_time,#ot_approved_form').addClass('ignore');
$('#ot_approved_form').parent().show();
$('#ot_approved_form').removeClass('ignore');
}else
if(parseInt(ot_type) === 4){
$('#shift_name,#in_time,#out_time,#ot_approved_form').parent().show();
$('#shift_name,#in_time,#out_time,#ot_approved_form').removeClass('ignore');
$('#ot_approved_form').parent().hide();
$('#ot_approved_form').addClass('ignore');
$("label[for = ot_hours]").text("Coff Hours");
$("label[for = excess_work]").text("Total Coff Hours");
$("label[for = ot_in_time]").text("Coff In Time");
$("label[for = ot_out_time]").text("Coff Out Time");
$("label[for = over_time]").text("Approved Coff Hours");
}else{
$("label[for = ot_hours]").text("OT Hours");
$("label[for = excess_work]").text("Total OT Hours");
$("label[for = ot_in_time]").text("OT In Time");
$("label[for = ot_out_time]").text("OT Out Time");
$("label[for = over_time]").text("Approved OT Hours");
$('#shift_name,#in_time,#out_time,#ot_approved_form').parent().show();
$('#shift_name,#in_time,#out_time,#ot_approved_form').removeClass('ignore');
$('#ot_approved_form').parent().hide();
$('#ot_approved_form').addClass('ignore');
}
}
function select_call(){
setTimeout(function(){
$(function(){
$('.select2').select2({
placeholder: '---- Select ----',
allowClear: true,
dropdownParent: $('.modal-dialog'),
maximumInputLength : 15
});
$('.select2-tags').select2({
tags: true,
allowClear: true,
tokenSeparators: [',']
});
});
}, 500);
}
</script>