Commit e23d5df3 authored by Mahmoud Aglan's avatar Mahmoud Aglan

ho

parent d0a7d335
...@@ -105,10 +105,10 @@ final class GLSyncService ...@@ -105,10 +105,10 @@ final class GLSyncService
]; ];
$optionalTables = [ $optionalTables = [
'fines' => "SELECT MIN(imposed_date) as min_date, MAX(imposed_date) as max_date FROM fines WHERE is_archived = 0", 'fines' => "SELECT MIN(created_at) as min_date, MAX(created_at) as max_date FROM fines",
'sales' => "SELECT MIN(sale_date) as min_date, MAX(sale_date) as max_date FROM sales WHERE status = 'completed'", 'sales' => "SELECT MIN(sale_date) as min_date, MAX(sale_date) as max_date FROM sales WHERE status = 'completed'",
'hr_payroll_runs' => "SELECT MIN(payment_date) as min_date, MAX(payment_date) as max_date FROM hr_payroll_runs WHERE status = 'paid'", 'hr_payroll_runs' => "SELECT MIN(paid_at) as min_date, MAX(paid_at) as max_date FROM hr_payroll_runs WHERE status = 'paid'",
'installment_plans' => "SELECT MIN(created_at) as min_date, MAX(created_at) as max_date FROM installment_plans WHERE is_archived = 0", 'installment_plans' => "SELECT MIN(created_at) as min_date, MAX(created_at) as max_date FROM installment_plans",
]; ];
foreach ($optionalTables as $table => $query) { foreach ($optionalTables as $table => $query) {
...@@ -218,15 +218,15 @@ final class GLSyncService ...@@ -218,15 +218,15 @@ final class GLSyncService
if (!$tableExists) return; if (!$tableExists) return;
$fines = $db->select( $fines = $db->select(
"SELECT f.id, f.member_id, f.amount, f.imposed_date, f.status "SELECT f.id, f.member_id, f.amount, f.status
FROM fines f FROM fines f
WHERE f.penalty_type = 'fine' AND f.amount > 0 AND f.is_archived = 0 WHERE f.penalty_type = 'fine' AND f.amount > 0
AND NOT EXISTS ( AND NOT EXISTS (
SELECT 1 FROM journal_entries je SELECT 1 FROM journal_entries je
WHERE je.reference_type = 'fine' AND je.reference_id = f.id WHERE je.reference_type = 'fine' AND je.reference_id = f.id
AND je.is_archived = 0 AND je.status != 'reversed' AND je.is_archived = 0 AND je.status != 'reversed'
) )
ORDER BY f.imposed_date ASC, f.id ASC" ORDER BY f.created_at ASC, f.id ASC"
); );
foreach ($fines as $f) { foreach ($fines as $f) {
...@@ -260,7 +260,7 @@ final class GLSyncService ...@@ -260,7 +260,7 @@ final class GLSyncService
$plans = $db->select( $plans = $db->select(
"SELECT ip.id, ip.member_id, ip.total_amount, ip.created_at "SELECT ip.id, ip.member_id, ip.total_amount, ip.created_at
FROM installment_plans ip FROM installment_plans ip
WHERE ip.is_archived = 0 AND ip.total_amount > 0 WHERE ip.total_amount > 0
AND NOT EXISTS ( AND NOT EXISTS (
SELECT 1 FROM journal_entries je SELECT 1 FROM journal_entries je
WHERE je.reference_type = 'installment_plan' AND je.reference_id = ip.id WHERE je.reference_type = 'installment_plan' AND je.reference_id = ip.id
...@@ -341,7 +341,7 @@ final class GLSyncService ...@@ -341,7 +341,7 @@ final class GLSyncService
if (!$tableExists) return; if (!$tableExists) return;
$runs = $db->select( $runs = $db->select(
"SELECT pr.id, pr.period_id, pr.payment_date "SELECT pr.id, pr.period_id, pr.paid_at
FROM hr_payroll_runs pr FROM hr_payroll_runs pr
WHERE pr.status = 'paid' WHERE pr.status = 'paid'
AND NOT EXISTS ( AND NOT EXISTS (
...@@ -349,7 +349,7 @@ final class GLSyncService ...@@ -349,7 +349,7 @@ final class GLSyncService
WHERE je.reference_type = 'payroll' AND je.reference_id = pr.id WHERE je.reference_type = 'payroll' AND je.reference_id = pr.id
AND je.is_archived = 0 AND je.status != 'reversed' AND je.is_archived = 0 AND je.status != 'reversed'
) )
ORDER BY pr.payment_date ASC, pr.id ASC" ORDER BY pr.paid_at ASC, pr.id ASC"
); );
foreach ($runs as $run) { foreach ($runs as $run) {
...@@ -357,7 +357,7 @@ final class GLSyncService ...@@ -357,7 +357,7 @@ final class GLSyncService
AccountingIntegrationService::onPayrollPaid([ AccountingIntegrationService::onPayrollPaid([
'payroll_run_id' => (int) $run['id'], 'payroll_run_id' => (int) $run['id'],
'period_id' => (int) $run['period_id'], 'period_id' => (int) $run['period_id'],
'payment_date' => $run['payment_date'] ?? date('Y-m-d'), 'payment_date' => $run['paid_at'] ? substr($run['paid_at'], 0, 10) : date('Y-m-d'),
]); ]);
$result['payroll']++; $result['payroll']++;
} catch (\Throwable $e) { } catch (\Throwable $e) {
......
...@@ -30,10 +30,10 @@ return function (Database $db): void { ...@@ -30,10 +30,10 @@ return function (Database $db): void {
// Optional tables — only query if they exist // Optional tables — only query if they exist
$optionalTables = [ $optionalTables = [
'fines' => "SELECT MIN(imposed_date) as min_date, MAX(imposed_date) as max_date FROM fines WHERE is_archived = 0", 'fines' => "SELECT MIN(created_at) as min_date, MAX(created_at) as max_date FROM fines",
'sales' => "SELECT MIN(sale_date) as min_date, MAX(sale_date) as max_date FROM sales WHERE status = 'completed'", 'sales' => "SELECT MIN(sale_date) as min_date, MAX(sale_date) as max_date FROM sales WHERE status = 'completed'",
'hr_payroll_runs' => "SELECT MIN(payment_date) as min_date, MAX(payment_date) as max_date FROM hr_payroll_runs WHERE status = 'paid'", 'hr_payroll_runs' => "SELECT MIN(paid_at) as min_date, MAX(paid_at) as max_date FROM hr_payroll_runs WHERE status = 'paid'",
'installment_plans' => "SELECT MIN(created_at) as min_date, MAX(created_at) as max_date FROM installment_plans WHERE is_archived = 0", 'installment_plans' => "SELECT MIN(created_at) as min_date, MAX(created_at) as max_date FROM installment_plans",
]; ];
foreach ($optionalTables as $table => $query) { foreach ($optionalTables as $table => $query) {
...@@ -70,7 +70,7 @@ return function (Database $db): void { ...@@ -70,7 +70,7 @@ return function (Database $db): void {
echo " Fiscal year range needed: {$minYear}{$maxYear}\n"; echo " Fiscal year range needed: {$minYear}{$maxYear}\n";
// Clear stale is_current flags // Clear stale is_current flags
$db->execute("UPDATE fiscal_years SET is_current = 0 WHERE is_current = 1"); $db->query("UPDATE fiscal_years SET is_current = 0 WHERE is_current = 1");
$created = 0; $created = 0;
for ($year = $minYear; $year <= $maxYear; $year++) { for ($year = $minYear; $year <= $maxYear; $year++) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment