Expense issues fixes : ps

This commit is contained in:
VE10-Sanjeev 2024-03-19 12:59:21 +05:30
parent a19d955513
commit c9f450541a
2 changed files with 465 additions and 492 deletions

View File

@ -162,127 +162,108 @@ public function edit_expence($id)
public function edit_rise_expence_request()
{
// Expense primary key
$id = $this->input->post('expense_pid');
$data = $this->input->post('emp_id');
if(!empty($data)){
$emp_id =$this->input->post('emp_id');
}else{
$emp_id = user()->id;
}
$get_manager_id = $this->Expence_model->get_manager_id($emp_id);
if($get_manager_id[0]->manager == null){
// Employee id
$emp_id = (!empty($this->input->post('emp_id'))) ? $this->input->post('emp_id') : user()->id;
$manager = 0;
}else{
// Manager id
$manager = $this->Expence_model->get_manager_id($emp_id);
$manager_id = (!empty($manager)) ? $manager[0]->manager : 0;
$manager = $get_manager_id[0]->manager;
}
// Table Name Declarations
$expense_master_table = "expense";
$expense_child_table = "expense_child";
$data1 = array(
// Array formation for updating the master details
$expense_master_arr = array(
'created_by' => user()->id,
'requested_for' => $emp_id,
'expense_name' => $this->input->post('expense_name'),
'business_reason' => $this->input->post('business_reason'),
'manager_id' => $manager,
'manager_id' => $manager_id,
'business_id' => user()->business_id,
'status' => 'Draft',
);
$table="expense";
$create_Expence = $this->MY_Model->edit_option($data1, $id, $table);
$count = count($this->input->post('date_of_expence'));
for($i=0;$i<$count;$i++)
{
// Update process for master
$update_expense = $this->MY_Model->edit_option($expense_master_arr, $id, $expense_master_table);
log_message('info', "update_expense_master - expense_id => ".$id." is updated == ".$update_expense);
$first = $this->input->post('date_of_expence_new');
$count = (gettype($first) == 'array') ? count($first) : 0;
if ($count > 0) {
for ($i = 0; $i < $count; $i++) {
$expense_child_id = $this->input->post('expense_child_id')[$i];
$data2 = array(
'date_of_expense'=> $this->input->post('date_of_expence')[$i],
$first_child = array(
'date_of_expense' => $this->input->post('date_of_expence_new')[$i],
'amount' => $this->input->post('amount')[$i],
'description' => $this->input->post('description')[$i],
);
$this->load->library('upload');
$config['upload_path'] = APPPATH. '../assets/uploads/Expence_Bill/';
$config['allowed_types'] = 'jpg|png|jpeg|pdf';
$config['max_size'] = 80000;
$config['file_name'] = time(). '_' . $_FILES['bill']['name'][$i];
$_FILES['userfile']['name'] = $_FILES['bill']['name'][$i];
$_FILES['userfile']['type'] = $_FILES['bill']['type'][$i];
$_FILES['userfile']['tmp_name'] = $_FILES['bill']['tmp_name'][$i];
$_FILES['userfile']['error'] = $_FILES['bill']['error'][$i];
$_FILES['userfile']['size'] = $_FILES['bill']['size'][$i];
$this->upload->initialize($config);
if ($this->upload->do_upload('userfile'))
{
$upload_image = $this->upload->data();
$data2['bill'] = $upload_image['file_name'];
$update_expense_list = $this->MY_Model->edit_option($first_child, $expense_child_id, $expense_child_table);
log_message('info', "update_expense_list - expense_id => ".$id." is updated == ".$update_expense_list);
}
else
{
$error = $this->upload->display_errors();
}
$table="expense_child";
$update_expence_list = $this->MY_Model->edit_option($data2, $expense_child_id, $table);
}
if($this->input->post('date_of_expence2'))
{
$count = count($this->input->post('date_of_expence2'));
for($i=0;$i<$count;$i++)
{
$data2 = array(
'expense_id' => $this->input->post('expense_pid'),
// Details gathering from JavaScript new entries
$second = $this->input->post('date_of_expence2');
$additional_count = (gettype($second) == 'array') ? count($second) : 0;
if ($additional_count > 0) {
for ($j = 0; $j < $additional_count; $j++) {
$second_child = array(
'expense_id' => $id,
'emp_id' => $emp_id,
'business_id' => user()->business_id,
'manager_id' => $manager,
'manager_id' => $manager_id,
'status' => 'Draft',
'date_of_expense'=> $this->input->post('date_of_expence2')[$i],
'amount' => $this->input->post('amount2')[$i],
'description' => $this->input->post('description2')[$i],
'date_of_expense' => $this->input->post('date_of_expence2')[$j],
'amount' => $this->input->post('amount2')[$j],
'description' => $this->input->post('description2')[$j],
);
$this->load->library('upload');
$config['upload_path'] = APPPATH. '../assets/uploads/Expence_Bill/';
$config['allowed_types'] = 'jpg|png|jpeg|pdf';
$config['max_size'] = 80000;
$config['file_name'] = time(). '_' . $_FILES['bill2']['name'][$i];
$_FILES['userfile']['name'] = $_FILES['bill2']['name'][$i];
$_FILES['userfile']['type'] = $_FILES['bill2']['type'][$i];
$_FILES['userfile']['tmp_name'] = $_FILES['bill2']['tmp_name'][$i];
$_FILES['userfile']['error'] = $_FILES['bill2']['error'][$i];
$_FILES['userfile']['size'] = $_FILES['bill2']['size'][$i];
$this->upload->initialize($config);
if ($this->upload->do_upload('userfile'))
{
$upload_image = $this->upload->data();
$data2['bill'] = $upload_image['file_name'];
if (!empty($_FILES['bill2']['name'][$j])) {
$upload_result = $this->upload_file($_FILES['bill2'], $j);
if ($upload_result['success']) {
$second_child['bill'] = $upload_result['file_name'];
} else {
log_message('error', $upload_result['error']);
}
else
{
$error = $this->upload->display_errors();
}
$table="expense_child";
$create_expence_list = $this->MY_Model->insert($data2,$table);
//print_r($this->db->last_query()); die;
$create_expense_list = $this->MY_Model->insert($second_child, $expense_child_table);
log_message('info', "create_expense_list - expense_id => ".$id." is created == ".$create_expense_list);
}
}
redirect('Expence/Emp_Expence_List');
}
private function upload_file($file_data, $index)
{
$this->load->library('upload');
$config['upload_path'] = APPPATH . '../assets/uploads/Expense_Bill/';
$config['allowed_types'] = 'jpg|png|jpeg|pdf';
$config['max_size'] = 80000;
$config['file_name'] = time() . '_' . $file_data['name'][$index];
$_FILES['userfile']['name'] = $file_data['name'][$index];
$_FILES['userfile']['type'] = $file_data['type'][$index];
$_FILES['userfile']['tmp_name'] = $file_data['tmp_name'][$index];
$_FILES['userfile']['error'] = $file_data['error'][$index];
$_FILES['userfile']['size'] = $file_data['size'][$index];
$this->upload->initialize($config);
if ($this->upload->do_upload('userfile')) {
$upload_data = $this->upload->data();
return array('success' => true, 'file_name' => $upload_data['file_name']);
} else {
$error = $this->upload->display_errors();
return array('success' => false, 'error' => $error);
}
}
public function expence_list()
{
$business_id = user()->business_id;
@ -504,7 +485,7 @@ public function cancled_expence()
public function remove_row()
{
$get_count_from_child = $this->Expence_model->get_expense_child_data(md5($this->input->post('expence_id')));
$get_count_from_child = $this->Expence_model->get_expense_child_data2($this->input->post('expence_id'));
$count = count($get_count_from_child);
if($count === 1)
{

View File

@ -63,7 +63,6 @@
a:hover {
background-color: skyblue;
}
</style>
<div class="clearfix"></div>
@ -81,12 +80,10 @@
<script>
$(document).ready(function() {
if($('#error').val() == 1 )
{
if ($('#error').val() == 1) {
$('#button').click();
}
})
</script>
<ul class="nav navbar-right panel_toolbox">
@ -97,9 +94,13 @@
<?php if ($expense_data[0]->status == 'Draft') { ?>
Edit Expense - <?php if(isset($expense_data[0]->id)){echo $expense_data[0]->expense_name; } ?>
Edit Expense - <?php if (isset($expense_data[0]->id)) {
echo $expense_data[0]->expense_name;
} ?>
<?php } else { echo $expense_data[0]->expense_name; } ?>
<?php } else {
echo $expense_data[0]->expense_name;
} ?>
</h3>
@ -136,7 +137,9 @@
<label class="control-label col-md-1 col-sm-1 " for="first-name">Expense Name<a style="color:red;">*</a></label>
<div class="col-md-5 col-sm-5 ">
<div class="form-group">
<input type='text' class="form-control" name="expense_name" value="<?php if(isset($expense_data[0]->id)){echo $expense_data[0]->expense_name; } ?>" autocomplete='off' required />
<input type='text' class="form-control" name="expense_name" value="<?php if (isset($expense_data[0]->id)) {
echo $expense_data[0]->expense_name;
} ?>" autocomplete='off' required />
</div>
@ -145,7 +148,9 @@
<label class="control-label col-md-1 col-sm-1 " for="first-name">Business Reason</label>
<div class="col-md-5 col-sm-5 ">
<div class="form-group">
<input type='text' class="form-control" name="business_reason" value="<?php if(isset($expense_data[0]->id)){echo $expense_data[0]->business_reason; } ?>" autocomplete='off'/>
<input type='text' class="form-control" name="business_reason" value="<?php if (isset($expense_data[0]->id)) {
echo $expense_data[0]->business_reason;
} ?>" autocomplete='off' />
<input type="hidden" id="expense_id" name="expense_pid" value="<?php echo $expense_data[0]->id; ?>">
@ -165,26 +170,20 @@
</div><br>
<?php $i=1; foreach ($expense_child_data as $key => $value) { ?>
<?php $i = 1;
foreach ($expense_child_data as $key => $value) { ?>
<div class="item form-group">
<label class="control-label col-md-1 col-sm-1 " for="first-name">Status</label>
<div class="col-md-5 col-sm-5">
<input id="cost" class="form-control" readonly name="middle-name" autocomplete='off' value="
<?php if($value->status == "Approved")
{
<?php if ($value->status == "Approved") {
echo $value->status . ' By ' . $value->approved_by . ' - ' . date('d-m-Y h:i:s', strtotime($value->approved_at));
}
else if($value->status == "Declined")
{
} else if ($value->status == "Declined") {
echo $value->status . ' By ' . $value->decline_by . ' ( ' . $value->decline_reason . ' )';
}
else if($value->status == "Cancelled")
{
} else if ($value->status == "Cancelled") {
echo $value->status . ' at ' . date('d-m-Y h:i:s', strtotime($value->cancelled_at));
}
else
{
} else {
echo $value->status;
}
@ -230,11 +229,12 @@
<div class="col-md-5 col-sm-5 ">
<input id="formFile" name="bill[]" onchange="validateFile(this)" class="typeFile" type="file" value="<?php echo $value->bill ?>" multiple><br>
<a href="<?php echo base_url(); ?>assets/uploads/Expence_Bill/<?php echo $value->bill; ?>" target="_blank" class="float-right" style="font-size: x-small; color: darkblue; margin-top: 7px;"><b>View Recipt(<?php echo $value->bill; ?>)</b></a></div>
<a href="<?php echo base_url(); ?>assets/uploads/Expence_Bill/<?php echo $value->bill; ?>" target="_blank" class="float-right" style="font-size: x-small; color: darkblue; margin-top: 7px;"><b>View Recipt(<?php echo $value->bill; ?>)</b></a>
</div>
<?php if ($expense_data[0]->status == 'Draft') { ?>
<div class="col-12"><button type="button" class="float-right btn btn-danger deleteexpense hidebtn" data-toggle="modal" data-target=".bs-example-modal-sm" id="<?php echo $value->id;?>"><i class="fa fa-trash"></i></button>
<div class="col-12"><?php if($i > 1){ ?><button type="button" class="float-right btn btn-danger deleteexpense hidebtn" data-toggle="modal" data-target=".bs-example-modal-sm" id="<?php echo $value->id; ?>"><i class="fa fa-trash"></i></button> <?php } ?>
<button type="button" id="add-button" onclick="createAndAppendFormGroup()" class="btn btn-primary float-right">Add</button>
@ -245,7 +245,6 @@
<script>
flatpickr($('#ExpenseDate' + <?php echo $i; ?>), {
dateFormat: 'd-m-Y',
changeYear: true,
@ -259,11 +258,11 @@
instance._input.removeAttribute("readonly");
}
});
</script>
<?php $i++; } ?>
<?php $i++;
} ?>
<div id="formContainer"></div>
</div>
@ -300,7 +299,6 @@
<!-- /Body page content -->
<script>
// hide the dropdown arrow
$(document).ready(function() {
@ -316,12 +314,10 @@
});
})
</script>
<script>
// $()
// $('.date').on('click', function() {
@ -358,15 +354,12 @@ function validateFile(input) {
return;
}
}
</script>
<script>
function matchnum(event)
{
function matchnum(event) {
var charcode;
charcode = event.which || event.keyCode;
@ -421,11 +414,9 @@ function matchnum(event)
});
});
</script>
<script>
//get manager id from the dropdown employee assign the value to $("#manager_id") input field
$("#user_dropdown").on("change", function() {
@ -441,6 +432,7 @@ function matchnum(event)
<script>
var i = 1;
function createAndAppendFormGroup() {
var html1 = '';
i++
@ -461,7 +453,7 @@ function createAndAppendFormGroup() {
html1 += '<label class="control-label col-md-1 col-sm-1" required for="first-name">Receipt </label>'
html1 += '<div class="col-md-5 col-sm-5 "><input id="formFile" name="bill2[]" multiple onchange="validateFile(this)" class="typeFile" type="file" value="" ></div>'
html1 += '</div>'
html1 += '<div class="col-12"><button type="button" class="float-right btn btn-danger"" id="remove-button" onclick="removebutton('+i+')"><i class="fa fa-trash"></i></button></div><button type="button" id="add-button" onclick="createAndAppendFormGroup()" class="btn btn-primary float-right">Add</button></div>'
html1 += '<div class="col-12"><button type="button" class="float-right btn btn-danger"" id="remove-button" onclick="removebutton(' + i + ')"><i class="fa fa-trash"></i></button></div><button type="button" id="add-button" onclick="createAndAppendFormGroup()" class="btn btn-primary float-right">Add</button></div></br>'
var formContainer = document.getElementById('formContainer');