diff --git a/app/ClassLib/MiscLib.php b/app/ClassLib/MiscLib.php index c26a816..679879d 100644 --- a/app/ClassLib/MiscLib.php +++ b/app/ClassLib/MiscLib.php @@ -26,4 +26,11 @@ class MiscLib return $template; } + + public static function searchFromAsocArray($column, $value, $data) + { + $key = array_search($value, array_column($data, $column)); + + return ($key !== false) ? $data[$key] : null; + } } \ No newline at end of file diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 1629c91..9459df9 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -66,6 +66,8 @@ $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/paytransreview/(:num)', 'PayrollController::payrollTransactionsReview/$1'); + //$routes->post('t', 'PayrollController::test'); diff --git a/app/Controllers/PayrollController.php b/app/Controllers/PayrollController.php index f0684ad..eb585fb 100644 --- a/app/Controllers/PayrollController.php +++ b/app/Controllers/PayrollController.php @@ -17,6 +17,7 @@ use App\Models\PayrollScheduleModel; use App\Models\PayrollTransactionModel; use App\Models\EmployeePayTransactionModel; use App\Models\EmpPayTransIncomeDeductionModel; +use App\Models\AttendanceSummaryModel; // Entities @@ -31,6 +32,7 @@ use App\Entities\PayrollSchedule; use App\Entities\PayrollTransaction; use App\Entities\EmployeePayTransaction; use App\Entities\EmpPayTransIncomeDeduction; +use App\Entities\AttendanceSummary; // Class Library use App\ClassLib\MiscLib; @@ -476,9 +478,10 @@ class PayrollController extends BaseController foreach($payTrans as $trans) { + $iconView = ''; $iconEdit = ''; - $payTransHTMLTable->addRow($trans->paytrans_id, $trans->payroll_from, $trans->payroll_to, $trans->no_of_days, $trans->is_open ? 'Open' : ' Closed', $trans->remarks, $iconEdit); + $payTransHTMLTable->addRow($trans->paytrans_id, $trans->payroll_from, $trans->payroll_to, $trans->no_of_days, $trans->is_open ? 'Open' : ' Closed', $trans->remarks, $iconView.' '.$iconEdit); } $data['tblPayTrans'] = $payTransHTMLTable->generate(); @@ -524,15 +527,20 @@ class PayrollController extends BaseController if($empPayTrans == null) { - $empPayTrans = (new EmployeePayrollInfoModel())->getEmpPayInfoXEmpPayTypeByPayGrpId($paytransid, $data['paygroupid'], $payTrans->paytype_id); - $data['showInitBtn'] = true; + $empPayTrans = (new EmployeePayrollInfoModel())->getEmpPayInfoXEmpPayTypeByPayGrpId($data['paygroupid'], $payTrans->paytype_id); + $attSummary = (new AttendanceSummaryModel())->where('paytrans_id', $paytransid)->findAll(); $empPayTransHTMLTable->setHeading('ID', 'Company ID', 'Name', 'Branch', 'Daily Basic', 'Work Days'); - foreach($empPayTrans as $trans) + if($empPayTrans != null) { - - $empPayTransHTMLTable->addRow($trans->employee_id, $trans->company_issued_id, $trans->last_name . ', ' . $trans->first_name, $trans->branch_code, $trans->basic_monthly_pay, $trans->att_work_days); + $data['showInitBtn'] = true; + + foreach($empPayTrans as $trans) + { + $empAttSum = MiscLib::searchFromAsocArray('employee_id', $trans->employee_id, $attSummary); + $empPayTransHTMLTable->addRow($trans->employee_id, $trans->company_issued_id, $trans->last_name . ', ' . $trans->first_name, $trans->branch_code, $trans->basic_monthly_pay, ($empAttSum === null) ? 0 : $empAttSum->att_work_days); + } } $data['tblEmpPayTrans'] = $empPayTransHTMLTable->generate(); @@ -563,13 +571,15 @@ class PayrollController extends BaseController public function empPayTransInitializePayroll($paytransid, $paygroupid, $transtypid) { - $empPayInfos = (new EmployeePayrollInfoModel())->getEmpPayInfoXEmpPayTypeByPayGrpId($paytransid, $paygroupid, $transtypid); + $empPayInfos = (new EmployeePayrollInfoModel())->getEmpPayInfoXEmpPayTypeByPayGrpId($paygroupid, $transtypid); + $attSummary = (new AttendanceSummaryModel())->where('paytrans_id', $paytransid)->findAll(); $payTrans = (new PayrollTransactionModel())->where('paytrans_id', $paytransid)->first(); $empPayTransactionModel = new EmployeePayTransactionModel(); foreach($empPayInfos as $empPayInfo) { $empPayTransaction = new EmployeePayTransaction(); + $empAttSum = MiscLib::searchFromAsocArray('employee_id', $empPayInfo->employee_id, $attSummary); $empPayTransaction->fill( ['paytrans_id' => $paytransid, @@ -598,7 +608,7 @@ class PayrollController extends BaseController 'has_hdmf' => $empPayInfo->has_hdmf, 'has_sss' => $empPayInfo->has_sss, 'has_gsis' => $empPayInfo->has_gsis, - 'actual_work_days' => $empPayInfo->att_work_days, + 'actual_work_days' => ($empAttSum === null) ? 0 : $empAttSum->att_work_days, 'basic_pay' => 0, 'gross_income' => 0, 'taxable_income' => 0, @@ -752,4 +762,23 @@ class PayrollController extends BaseController else return redirect()->back()->with('error', 'Failed to delete income or deduction'); } + + public function payrollTransactionsReview($paytransid) + { + $data['paytransid'] = $paytransid; + + $payTransModel = new PayrollTransactionModel(); + $data['payTrans'] = $payTransModel->getPayTransXPayTypeXPaySchedByPayTransId($paytransid); + + $data['totalEmp'] = 0; + $data['totalGross'] = 0; + $data['totalDeduction'] = 0; + $data['totalNet'] = 0; + $data['totalSSSContri'] = 0; + $data['totalPhilhealthContri'] = 0; + $data['totalPagibigContri'] = 0; + $data['totalTax'] = 0; + + return view('payroll/paytransactionreview', $data); + } } diff --git a/app/Controllers/TKController.php b/app/Controllers/TKController.php index cbfcdeb..a31b893 100644 --- a/app/Controllers/TKController.php +++ b/app/Controllers/TKController.php @@ -203,8 +203,8 @@ class TKController extends BaseController fclose($fileHandle); - if($rawAttLogModel->addBatchData($batchRawAttLog, true)) - return redirect()->back()->with('message', 'Raw attendance log uploaded.'); + if(!empty($batchRawAttLog) && $rawAttLogModel->addBatchData($batchRawAttLog, true)) + return redirect()->back()->with('message', 'Raw attendance log uploaded. Please check the file if it matches selected date range.'); else return redirect()->back()->with('error', 'Error uploading raw attendance log.'); } diff --git a/app/Models/EmployeePayrollInfoModel.php b/app/Models/EmployeePayrollInfoModel.php index 798ab19..1c0ac7d 100644 --- a/app/Models/EmployeePayrollInfoModel.php +++ b/app/Models/EmployeePayrollInfoModel.php @@ -88,16 +88,14 @@ class EmployeePayrollInfoModel extends Model return $builder->get()->getRow(); } - public function getEmpPayInfoXEmpPayTypeByPayGrpId($paytransid, $payGroupId, $payTypeId) + public function getEmpPayInfoXEmpPayTypeByPayGrpId($payGroupId, $payTypeId) { $builder = $this->db->table('emp_pay_info'); $builder->select('*'); $builder->join('employee', 'employee.employee_id = emp_pay_info.employee_id'); $builder->join('pay_type', 'pay_type.paytype_id = emp_pay_info.paytype_id'); - $builder->join('att_log_summary', 'att_log_summary.employee_id = emp_pay_info.employee_id'); $builder->where(['employee.pay_group_id' => $payGroupId, 'emp_pay_info.paytype_id' => $payTypeId, - 'att_log_summary.paytrans_id' => $paytransid, 'emp_pay_info.deleted_at' => null]); return $builder->get()->getResult(); } diff --git a/app/Models/PayrollTransactionModel.php b/app/Models/PayrollTransactionModel.php index 302fdac..3c474b0 100644 --- a/app/Models/PayrollTransactionModel.php +++ b/app/Models/PayrollTransactionModel.php @@ -59,4 +59,17 @@ class PayrollTransactionModel extends Model $data['data']['updated_by'] = auth()->user()->employee_id; return $data; } + + public function getPayTransXPayTypeXPaySchedByPayTransId($paytransid) + { + $builder = $this->db->table('pay_trans'); + $builder->select('*'); + $builder->join('pay_type', 'pay_type.paytype_id = pay_trans.paytype_id'); + $builder->join('pay_schedule', 'pay_schedule.payschedule_id = pay_trans.payschedule_id'); + $builder->where(['pay_trans.paytrans_id' => $paytransid, + 'pay_trans.deleted_at' => null]); + $query = $builder->get(); + + return $query->getRow(); + } } diff --git a/app/Views/payroll/emppaytransactionview.php b/app/Views/payroll/emppaytransactionview.php index c15285d..6762d9d 100644 --- a/app/Views/payroll/emppaytransactionview.php +++ b/app/Views/payroll/emppaytransactionview.php @@ -535,12 +535,8 @@ diff --git a/app/Views/payroll/paytransactionreview.php b/app/Views/payroll/paytransactionreview.php new file mode 100644 index 0000000..933c202 --- /dev/null +++ b/app/Views/payroll/paytransactionreview.php @@ -0,0 +1,191 @@ + +extend('templates/adminlte/generalcontent') ?> + + + +section('title') ?>Pay Trans Review & ApprovalendSection() ?> + + + +section('css') ?> + +endSection() ?> + + + +section('bodyclass') ?>sidebar-miniendSection() ?> + + + +section('containertitle') ?>Payroll Transaction Review & ApprovalendSection() ?> + + + +section('breadcrumbs') ?> + +endSection() ?> + + + +section('main') ?> + + + + +is_open): ?> +
+
+
+
+

Information of Payroll Transaction

+
+
+

Payroll Period: payroll_from ?> to payroll_to ?> [Total Days: no_of_days ?>]

+

Payroll Type: paytype_name ?>

+

Schedule: sched_name ?>

+

Total Employee: total_emp ?>

+

Total Gross: total_gross ?>

+

Status: is_open) ? 'Open' : 'Closed' ?>

+ + + + + + + + + + + + + + + + + + + + + +
Total EmployeeTotal GrossTotal DeductionTotal NetTotal SSS ContributionTotal Philhealth ContributionTotal Pagibig ContributionTotal Tax
+ +
+ +
+
+
+ +
+
+
+
+

Information of Payroll Transaction

+
+
+

Payroll Period: payroll_from ?> to payroll_to ?> [Total Days: no_of_days ?>]

+

Payroll Type: paytype_name ?>

+

Schedule: sched_name ?>

+

Total Employee: total_emp ?>

+

Total Gross: total_gross ?>

+

Status: is_open) ? 'Open' : 'Closed' ?>

+ + + + + + + + + + + + + + + + + + + + + +
Total EmployeeTotal GrossTotal DeductionTotal NetTotal SSS ContributionTotal Philhealth ContributionTotal Pagibig ContributionTotal Tax
+ +
+ +
+
+
+ + +endSection() ?> + + + + +section('js') ?> + + + +endSection() ?> + + \ No newline at end of file