Files
HRM-System/scratch/inspect_legacy_payroll.php

63 lines
3.1 KiB
PHP

<?php
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$kernel->bootstrap();
use Illuminate\Support\Facades\DB;
// 1. Get current employees
$currentEmployees = DB::table('employees')
->leftJoin('users', 'employees.user_id', '=', 'users.id')
->leftJoin('employee_salaries', 'employees.user_id', '=', 'employee_salaries.employee_id')
->select('employees.id as emp_id', 'users.name', 'users.email', 'employees.employee_id as custom_employee_id', 'employees.user_id', 'employee_salaries.pay_frequency', 'employee_salaries.basic_salary')
->get();
echo "=== Current Employees & Salaries ===\n";
foreach ($currentEmployees as $emp) {
echo "ID: {$emp->user_id} | Name: {$emp->name} | Frequency: {$emp->pay_frequency} | Rate/Base: {$emp->basic_salary}\n";
}
// 2. Query legacy database users and payroll records
echo "\n=== Legacy Database Check ===\n";
try {
$legacyUsers = DB::connection('legacy')->table('users')->get();
echo "Legacy Users Count: " . $legacyUsers->count() . "\n";
foreach ($legacyUsers as $lUser) {
// Find match in current
$match = $currentEmployees->first(function($item) use ($lUser) {
return strtolower($item->email) === strtolower($lUser->email) || strtolower($item->name) === strtolower($lUser->name);
});
if ($match) {
echo "\n--------------------------------------------------\n";
echo "Employee: {$lUser->name} (Legacy ID: {$lUser->id}) -> Current ID: {$match->user_id}\n";
// Check legacy payroll records
$records = DB::connection('legacy')->table('payroll_records')
->join('payroll_periods', 'payroll_records.payroll_period_id', '=', 'payroll_periods.id')
->where('payroll_records.user_id', $lUser->id)
->select('payroll_records.*', 'payroll_periods.start_date', 'payroll_periods.end_date', 'payroll_periods.name as period_name')
->get();
echo "Payroll records found in legacy database: " . $records->count() . "\n";
foreach ($records as $rec) {
echo " Period: {$rec->period_name} ({$rec->start_date} to {$rec->end_date})\n";
echo " Expected Hours: {$rec->expected_hours} | Rendered Hours: {$rec->total_rendered_hours} | Days Worked: {$rec->days_worked} | Absents: {$rec->absent_days}\n";
echo " Gross Pay: {$rec->gross_earning} | Net Pay: {$rec->net_pay} | Deductions: {$rec->total_deduction}\n";
// Get record items (earnings/deductions)
$items = DB::connection('legacy')->table('payroll_record_items')
->where('payroll_record_id', $rec->id)
->get();
echo " Items:\n";
foreach ($items as $item) {
echo " - {$item->type}: {$item->salary_component_name} = {$item->amount}\n";
}
}
}
}
} catch (\Exception $e) {
echo "Error querying legacy database: " . $e->getMessage() . "\n";
}