Merge pull request 'added downloading of report' (#33) from paulcortezl5 into main

Reviewed-on: #33
pull/34/head
paul 5 months ago
commit 92db7bd5dc

@ -43,6 +43,14 @@ class MiscLib
return ($key !== false) ? $data[$key] : null;
}
public static function searchFromAsocArrayByKey($key, $data)
{
if(array_key_exists($key, $data))
return $data[$key];
else
return false;
}
public static function getAttFileInfo($name)
{
$fileInfo = [];

@ -71,6 +71,9 @@ $routes->get('payroll/emppaytransrecom/(:num)', 'PayrollController::employeePayr
$routes->post('payroll/saveemppaytransaddinded', 'PayrollController::saveEmpPayTransIncomeDeduction');
$routes->get('payroll/emppaytransdelinded/(:num)/(:num)', 'PayrollController::deleteEmpPayTransIncomeDeduction/$1/$2');
$routes->get('payroll/emppaytransreport/(:num)/(:num)', 'PayrollController::empPayransReport/$1/$2');
$routes->get('payroll/paytransreview/(:num)', 'PayrollController::payrollTransactionsReview/$1');
//$routes->post('t', 'PayrollController::test');

@ -606,8 +606,8 @@ class PayrollController extends BaseController
$empPayTransInDedModel = new EmpPayTransIncomeDeductionModel();
$data['emppaytrans'][] = [
"empPayTrans" => $trans,
"empPayTransInDedIncome" => $empPayTransInDedModel->getEmpPayTransInDedxInDedByEmpTransIdIsIncome($trans->emppaytrans_id, true),
"empPayTransInDedDeduction" => $empPayTransInDedModel->getEmpPayTransInDedxInDedByEmpTransIdIsIncome($trans->emppaytrans_id, false)
"empPayTransInDedIncome" => $empPayTransInDedModel->where(["emppaytrans_id"=>$trans->emppaytrans_id, "is_income"=>true])->findAll(),
"empPayTransInDedDeduction" => $empPayTransInDedModel->where(["emppaytrans_id"=>$trans->emppaytrans_id, "is_income"=>false])->findAll()
];
}
@ -913,6 +913,83 @@ class PayrollController extends BaseController
return redirect()->back()->with('error', 'Failed to delete income or deduction');
}
public function empPayransReport($paytransid, $paygroupid)
{
$data['payTrans'] = (new PayrollTransactionModel())->find($paytransid);
$data['payGroup'] = (new PayrollGroupModel())->find($paygroupid);
$employeePayTransactionModel = new EmployeePayTransactionModel();
$empPayTransInDeds = $employeePayTransactionModel->getEmpPayTransInDedByPayTransIdGroupId($paytransid, $paygroupid);
$empPayTransactions = $employeePayTransactionModel->getEmpPayTransByPayTransIdGroupId($paytransid, $paygroupid);
$empPayTransHTMLTable = new \CodeIgniter\View\Table();
$empPayTransHTMLTable->setTemplate(MiscLib::adminLTEDataTableTemplate('tblEmpPayTransInDed'));
//return view('payroll/emppaytransreportview', $data);
$inDedList = [];
foreach($empPayTransInDeds as $empPayTransInDed)
{
if(!in_array("[".$empPayTransInDed->inded_id."]".$empPayTransInDed->payslip_display, $inDedList))
$inDedList[] = "[".$empPayTransInDed->inded_id."]".$empPayTransInDed->payslip_display;
}
$empInDedList = [];
foreach($empPayTransInDeds as $empPayTransInDed)
{
if(isset($empInDedList[$empPayTransInDed->employee_id.':'.$empPayTransInDed->inded_id]))
$empInDedList[$empPayTransInDed->employee_id.':'.$empPayTransInDed->inded_id] += $empPayTransInDed->amount;
else
$empInDedList[$empPayTransInDed->employee_id.':'.$empPayTransInDed->inded_id] = $empPayTransInDed->amount;
}
$HTMLColumns = [
'ID',
'Name',
'Branch',
'Daily Basic',
'Work Days',
'Income Tax',
'Gross Amt',
'Deduction Amt',
'Net Amt'
];
$HTMLColumns = array_merge($HTMLColumns, $inDedList);
$empPayTransHTMLTable->setHeading($HTMLColumns);
foreach($empPayTransactions as $empPayTrans)
{
$HTMLColValues = [
$empPayTrans->employee_id,
$empPayTrans->last_name . ', ' . $empPayTrans->first_name,
$empPayTrans->branch_code,
$empPayTrans->basic_pay,
$empPayTrans->actual_work_days,
$empPayTrans->income_tax,
$empPayTrans->gross_income,
$empPayTrans->total_deduction,
$empPayTrans->net_pay
];
foreach($inDedList as $inDedId)
{
preg_match_all('/\[(.*?)\]/', $inDedId, $matches);
if(isset($empInDedList[$empPayTrans->employee_id.':'.$matches[1][0]]))
$HTMLColValues = array_merge($HTMLColValues, [$empInDedList[$empPayTrans->employee_id.':'.$matches[1][0]]]);
else
$HTMLColValues = array_merge($HTMLColValues, ['0.00']);
}
$empPayTransHTMLTable->addRow($HTMLColValues);
}
$data['tblEmpPayTransInDed'] = $empPayTransHTMLTable->generate();
return view('payroll/emppaytransreportview', $data);
}
public function payrollTransactionsReview($paytransid)
{
$data['paytransid'] = $paytransid;

@ -65,7 +65,7 @@ class EmpPayTransIncomeDeductionModel extends Model
return $data;
}
public function getEmpPayTransInDedxInDedByEmpTransId($emptransid)
/*public function getEmpPayTransInDedxInDedByEmpTransId($emptransid)
{
$builder = $this->db->table('emp_pay_trans_inded');
$builder->select('*');
@ -84,7 +84,7 @@ class EmpPayTransIncomeDeductionModel extends Model
'emp_pay_trans_inded.is_income' => $isincome,
'emp_pay_trans_inded.deleted_at' => null]);
return $builder->get()->getResult();
}
}*/
public function getTotalIncomeDeduction($emppaytransid, $isincome, $istaxable)
{

@ -103,6 +103,23 @@ class EmployeePayTransactionModel extends Model
'emp_pay_trans.deleted_at' => null]);
return $builder->get()->getResult();
}
public function getEmpPayTransInDedByPayTransIdGroupId($paytransid, $paygroupid)
{
$builder = $this->db->table('emp_pay_trans');
$builder->select('*');
$builder->join('pay_trans', 'pay_trans.paytrans_id = emp_pay_trans.paytrans_id');
$builder->join('company_branch', 'company_branch.branch_code = emp_pay_trans.branch_code');
$builder->join('company_dept', 'company_dept.dept_id = emp_pay_trans.dept_id');
$builder->join('job_title', 'job_title.job_title_id = emp_pay_trans.job_title_id');
$builder->join('pay_group', 'pay_group.pay_group_id = emp_pay_trans.pay_group_id');
$builder->join('emp_status', 'emp_status.emp_status_id = emp_pay_trans.emp_status_id');
$builder->join('employee', 'employee.employee_id = emp_pay_trans.employee_id');
$builder->join('emp_pay_trans_inded', 'emp_pay_trans_inded.emppaytrans_id = emp_pay_trans.emppaytrans_id');
$builder->where(['emp_pay_trans.paytrans_id' => $paytransid,
'emp_pay_trans.pay_group_id' => $paygroupid,
'emp_pay_trans.deleted_at' => null]);
return $builder->get()->getResult();
}
public function changeActualDaysWorked($emppaytransid, $actualworkdays)
{

@ -545,7 +545,7 @@
<a class="btn btn-warning" href="/payroll/emppaytransinit/<?= $payTrans->paytrans_id.'/'.$paygroupid.'/'.$payTrans->paytype_id ?>">Initialize Payroll</a>
<?php endif; ?>
<?php elseif($transactionStatus == 'OPEN'): ?>
<a class="btn btn-primary" href="/payroll/emppaytransinit">View Report Summary</a>
<a class="btn btn-primary" href="/payroll/emppaytransreport/<?= $payTrans->paytrans_id.'/'.$paygroupid ?>">View Report Summary</a>
<a class="btn btn-warning" href="/payroll/emppaytransviewempinit/<?= $payTrans->paytrans_id.'/'.$paygroupid ?>">Initialize Employee</a>
<?php else: ?>
<a class="btn btn-danger" href="/payroll/emppaytransinit/">Re-open Payroll</a>

@ -0,0 +1,91 @@
<!-- Extend area where template is defined -->
<?= $this->extend('templates/adminlte/generalcontent') ?>
<!-- .Extend -->
<!-- Title of the page -->
<?= $this->section('title') ?>Employee Payroll Transaction<?= $this->endSection() ?>
<!-- .Title -->
<!-- CSS of the page -->
<?= $this->section('css') ?>
<!-- DataTables -->
<link rel="stylesheet" href="<?= base_url() ?>adminlte/plugins/datatables-bs4/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="<?= base_url() ?>adminlte/plugins/datatables-responsive/css/responsive.bootstrap4.min.css">
<link rel="stylesheet" href="<?= base_url() ?>adminlte/plugins/datatables-buttons/css/buttons.bootstrap4.min.css">
<?= $this->endSection() ?>
<!-- .CSS -->
<!-- body attribute - class definition -->
<?= $this->section('bodyclass') ?>sidebar-mini<?= $this->endSection() ?>
<!-- .body attribute -->
<!-- Container title -->
<?= $this->section('containertitle') ?>Employee Payroll Transaction<?= $this->endSection() ?>
<!-- .Container title -->
<!-- Active breadcrumb -->
<?= $this->section('breadcrumbs') ?>
<li class="breadcrumb-item"><a href="/payroll/paytrans">Payroll Transaction</a></li>
<li class="breadcrumb-item active"><a href="/payroll/emppaytrans/<?= $payTrans->paytrans_id ?>/?grpid=<?= $payGroup->pay_group_id ?>">Employee Payroll Transaction</a></li>
<li class="breadcrumb-item active">Report</li>
<?= $this->endSection() ?>
<!-- .Active breadcrumb -->
<!-- Main content -->
<?= $this->section('main') ?>
<!-- List of Employee for Payroll -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h3 class="card-title">List of Employee for Payroll <span class="text-muted"><?= $payGroup->pay_group_name ?></span></h3>
</div>
<div class="card-body">
<?= $tblEmpPayTransInDed ?>
</div>
</div>
</div>
</div>
<?= $this->endSection() ?>
<!-- .Main content -->
<!-- Javascript -->
<?= $this->section('js') ?>
<!-- DataTables & Plugins -->
<script src="<?= base_url() ?>adminlte/plugins/datatables/jquery.dataTables.min.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/datatables-bs4/js/dataTables.bootstrap4.min.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/datatables-responsive/js/dataTables.responsive.min.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/datatables-responsive/js/responsive.bootstrap4.min.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/datatables-buttons/js/dataTables.buttons.min.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/datatables-buttons/js/buttons.bootstrap4.min.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/jszip/jszip.min.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/pdfmake/pdfmake.min.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/pdfmake/vfs_fonts.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/datatables-buttons/js/buttons.html5.min.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/datatables-buttons/js/buttons.print.min.js"></script>
<script src="<?= base_url() ?>adminlte/plugins/datatables-buttons/js/buttons.colVis.min.js"></script>
<script>
$(document).ready(function() {
//Initialize Select2 Elements
$("#tblEmpPayTransInDed").DataTable({
"responsive": true, "lengthChange": false, "autoWidth": false,
"buttons": ["copy", "csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#tblEmpPayTransInDed_wrapper .col-md-6:eq(0)');
});
</script>
<?= $this->endSection() ?>
<!-- .Javascript -->

@ -22,6 +22,7 @@
<!-- Active breadcrumb -->
<?= $this->section('breadcrumbs') ?>
<li class="breadcrumb-item"><a href="/payroll/paytrans">Payroll Transaction</a></li>
<li class="breadcrumb-item active">Payroll Transaction Review &amp; Approval</li>
<?= $this->endSection() ?>
<!-- .Active breadcrumb -->

Loading…
Cancel
Save