nhance/tests/smoke_abhi_mis_report.php
2026-08-07 10:19:31 +05:30

73 lines
2.1 KiB
PHP

<?php
/**
* Smoke test: ABHI MIS report service.
* Run: php tests/smoke_abhi_mis_report.php [policy_id]
*/
declare(strict_types=1);
define('FCPATH', __DIR__ . '/../public/');
chdir(FCPATH);
require FCPATH . '../app/Config/Paths.php';
$paths = new Config\Paths();
require rtrim($paths->systemDirectory, '\\/ ') . DIRECTORY_SEPARATOR . 'bootstrap.php';
require_once SYSTEMPATH . 'Config/DotEnv.php';
(new CodeIgniter\Config\DotEnv(ROOTPATH))->load();
defined('ENVIRONMENT') || define('ENVIRONMENT', env('CI_ENVIRONMENT', 'development'));
$boot = APPPATH . 'Config/Boot/' . ENVIRONMENT . '.php';
if (is_file($boot)) {
require_once $boot;
}
require_once APPPATH . 'Config/Constants.php';
$policyId = (int) ($argv[1] ?? 0);
$db = \Config\Database::connect();
if ($policyId <= 0) {
$row = $db->query(
"SELECT cr.client_policy_id, COUNT(*) AS cnt
FROM claim_report cr
WHERE cr.source_table = 'claims_dump_abhi'
AND cr.is_active = 1
AND cr.source_row_id IS NOT NULL
GROUP BY cr.client_policy_id
ORDER BY cnt DESC
LIMIT 1"
)->getRowArray();
$policyId = (int) ($row['client_policy_id'] ?? 0);
echo "Auto-selected policy_id: {$policyId}\n";
}
if ($policyId <= 0) {
echo "FAIL: No policy with ABHI claim_report linkage found.\n";
exit(1);
}
$service = new \App\Libraries\AbhiMisReportService();
$built = $service->build($policyId);
if (!$built['status']) {
echo 'FAIL: ' . ($built['message'] ?? 'unknown') . "\n";
exit(1);
}
$data = $built['data'];
$status = $data['status_breakdown']['buckets'] ?? [];
echo "OK policy_id={$policyId}\n";
echo 'Policy: ' . ($data['header']['policy_number'] ?? '') . "\n";
echo 'Dump rows: ' . ($data['dump_row_count'] ?? 0) . "\n";
echo 'Reported: ' . ($status['Reported']['count'] ?? 0) . "\n";
echo 'Settled: ' . ($status['Settled']['count'] ?? 0) . "\n";
echo 'Outstanding: ' . ($status['Outstanding']['count'] ?? 0) . "\n";
echo 'Rejected: ' . ($status['Rejected']['count'] ?? 0) . "\n";
echo 'ICR: ' . ($data['summary']['icr_pct'] ?? 0) . "%\n";
echo 'Incurred: ' . ($data['summary']['claim_paid_outstanding'] ?? 0) . "\n";
exit(0);