gdc_cmod/app/Controllers/ApiValidateController.php
2026-01-22 17:02:47 +07:00

51 lines
1.9 KiB
PHP

<?php
namespace App\Controllers;
use CodeIgniter\API\ResponseTrait;
use App\Controllers\BaseController;
class ApiValidateController extends BaseController
{
use ResponseTrait;
/**
* GET /api/requests/unvalidated?date1=...&date2=...
* Fetch requests that have not been validated yet by the current user
*/
public function unvalidated()
{
$date1 = $this->request->getGet('date1');
$date2 = $this->request->getGet('date2');
$userid = session()->get('userid');
if (empty($date1) || empty($date2)) {
return $this->response->setJSON(['status' => 'error', 'message' => 'Date range required']);
}
$db = \Config\Database::connect();
$sql = "SELECT d.*, r.ISVAL1, r.ISVAL2, r.VAL1USER, r.VAL2USER
FROM GDC_CMOD.dbo.V_DASHBOARD_DEV d
LEFT JOIN GDC_CMOD.dbo.CM_REQUESTS r ON r.ACCESSNUMBER = d.SP_ACCESSNUMBER
WHERE d.STATS = 'Fin'
AND d.TESTS LIKE '%[A-Za-z]%'
-- Exclude fully validated (both ISVAL1 and ISVAL2 are 1)
AND (COALESCE(r.ISVAL1, 0) = 0 OR COALESCE(r.ISVAL2, 0) = 0)
-- Exclude requests already validated by current user
AND (r.VAL1USER != '$userid' OR r.VAL1USER IS NULL)
AND (r.VAL2USER != '$userid' OR r.VAL2USER IS NULL)
AND d.REQDATE BETWEEN '$date1 00:00:00' AND '$date2 23:59:59'
ORDER BY d.REQDATE DESC";
$result = $db->query($sql)->getResultArray();
// Format dates
foreach ($result as &$row) {
$row['REQDATE'] = date('Y-m-d H:i', strtotime($row['REQDATE']));
$row['ODR_DDATE'] = date('Y-m-d H:i', strtotime($row['ODR_DDATE']));
$row['COLLECTIONDATE'] = date('Y-m-d H:i', strtotime($row['COLLECTIONDATE']));
}
return $this->response->setJSON(['status' => 'success', 'data' => $result]);
}
}