add refund logic and fix books inventory logic
Deploy to Shared Hosting / Shared hosting deploy (push) Failing after 47s
Tests / PHPUnit (push) Failing after 1m20s

This commit is contained in:
root
2026-08-22 13:44:25 -04:00
parent 23d1cbb64c
commit d906a915d6
45 changed files with 4711 additions and 442 deletions
+8
View File
@@ -122,6 +122,12 @@ $routes->get('administrator/financial-aid', 'Administrator\FinancialAidControlle
$routes->get('administrator/financial-aid/(:num)', 'Administrator\FinancialAidController::show/$1', ['filter' => 'auth:admin|administrator|principal|oversee_financial_aid']);
$routes->post('administrator/financial-aid/(:num)/approve', 'Administrator\FinancialAidController::approve/$1', ['filter' => 'auth:admin|administrator|principal|oversee_financial_aid']);
$routes->post('administrator/financial-aid/(:num)/deny', 'Administrator\FinancialAidController::deny/$1', ['filter' => 'auth:admin|administrator|principal|oversee_financial_aid']);
$withdrawalFinancialFilter = 'auth:update_invoice|view_financial_reports|administrator|administrative staff|principal';
$routes->get('administrator/withdrawals/(:num)/review', 'Administrator\WithdrawalFinancialController::review/$1', ['filter' => $withdrawalFinancialFilter]);
$routes->post('administrator/withdrawals/(:num)/recalculate', 'Administrator\WithdrawalFinancialController::recalculate/$1', ['filter' => $withdrawalFinancialFilter . ',update']);
$routes->post('administrator/withdrawal-calculations/(:num)/confirm', 'Administrator\WithdrawalFinancialController::confirm/$1', ['filter' => $withdrawalFinancialFilter . ',update']);
$routes->get('administrator/withdrawal-calculations/(:num)', 'Administrator\WithdrawalFinancialController::calculation/$1', ['filter' => $withdrawalFinancialFilter]);
$routes->get('administrator/invoices/(:num)/withdrawal-calculations', 'Administrator\WithdrawalFinancialController::invoiceSummary/$1', ['filter' => $withdrawalFinancialFilter]);
// API for report card meta (students, class sections, school years)
$routes->get('api/printables/report-card/meta', 'View\ReportCardsController::reportCardMeta', ['filter' => 'auth']);
$routes->get('api/printables/report-card/completeness', 'View\ReportCardsController::reportCardCompleteness', ['filter' => 'auth']);
@@ -944,6 +950,8 @@ $routes->group('inventory', ['filter' => 'auth:view_inventory|administrator|admi
$routes->get('summary-all', 'View\InventoryController::summaryAll');
$routes->get('adjust/(:num)', 'View\InventoryController::adjustForm/$1');
$routes->post('adjust/(:num)', 'View\InventoryController::adjustStore/$1', ['filter' => 'auth:update_inventory|administrator|administrative staff|principal,update']);
$routes->get('book-prices', 'View\InventoryController::bookPrices');
$routes->post('book-prices', 'View\InventoryController::updateBookPrices', ['filter' => 'auth:update_inventory|administrator|administrative staff|principal,update']);
$routes->get('books/distribute', 'View\InventoryController::teacherDistributeForm');
$routes->post('books/distribute', 'View\InventoryController::teacherDistributeStore', ['filter' => 'auth:update_inventory|administrator|administrative staff|principal,update']);
$routes->get('classroom/audit/(:num)', 'View\InventoryController::auditClassroomForm/$1');
+17
View File
@@ -505,4 +505,21 @@ class Services extends BaseService
model(\App\Models\StudentYearStatusModel::class)
);
}
public static function withdrawalFinancial(bool $getShared = true): \App\Services\WithdrawalFinancialService
{
if ($getShared) {
return static::getSharedInstance('withdrawalFinancial');
}
$db = \Config\Database::connect();
return new \App\Services\WithdrawalFinancialService(
$db,
new \App\Services\WithdrawalRefundCalculator(),
new \App\Services\StudentBookIssueService($db),
new \App\Libraries\InvoiceLedgerService(),
new \App\Libraries\RefundEligibilityService()
);
}
}