made client data browsable with dropdown and version diffs
This commit is contained in:
@ -11,13 +11,26 @@ case 'GET':
|
||||
try {
|
||||
[$pdo, $tmpDb, $lockFp] = qdb_open(false);
|
||||
|
||||
$clientCode = trim((string)($_GET['clientCode'] ?? ''));
|
||||
if ($clientCode !== '' && !empty($_GET['detail'])) {
|
||||
require_once __DIR__ . '/../lib/submissions.php';
|
||||
$detail = qdb_client_detail($pdo, $tokenRec, $clientCode);
|
||||
qdb_discard($tmpDb, $lockFp);
|
||||
json_success($detail);
|
||||
}
|
||||
|
||||
[$clause, $params] = rbac_client_filter($tokenRec, 'cl');
|
||||
$stmt = $pdo->prepare(
|
||||
"SELECT cl.clientCode, cl.coachID, co.username AS coachUsername
|
||||
"SELECT cl.clientCode, cl.coachID, co.username AS coachUsername,
|
||||
CASE WHEN EXISTS (
|
||||
SELECT 1 FROM completed_questionnaire cq WHERE cq.clientCode = cl.clientCode
|
||||
) OR EXISTS (
|
||||
SELECT 1 FROM questionnaire_submission qs WHERE qs.clientCode = cl.clientCode
|
||||
) THEN 1 ELSE 0 END AS hasResponseData
|
||||
FROM client cl
|
||||
LEFT JOIN coach co ON co.coachID = cl.coachID
|
||||
WHERE $clause
|
||||
ORDER BY cl.clientCode"
|
||||
ORDER BY hasResponseData DESC, cl.clientCode ASC"
|
||||
);
|
||||
foreach ($params as $k => $v) $stmt->bindValue($k, $v);
|
||||
$stmt->execute();
|
||||
@ -98,12 +111,11 @@ case 'DELETE':
|
||||
json_error('NOT_FOUND', 'Client not found or not authorized', 404);
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/../lib/submissions.php';
|
||||
|
||||
$pdo->beginTransaction();
|
||||
$pdo->prepare("DELETE FROM client_answer WHERE clientCode = :cc")
|
||||
->execute([':cc' => $clientCode]);
|
||||
$pdo->prepare("DELETE FROM completed_questionnaire WHERE clientCode = :cc")
|
||||
->execute([':cc' => $clientCode]);
|
||||
$pdo->prepare("DELETE FROM client WHERE clientCode = :cc")
|
||||
qdb_delete_client_response_data($pdo, [$clientCode]);
|
||||
$pdo->prepare('DELETE FROM client WHERE clientCode = :cc')
|
||||
->execute([':cc' => $clientCode]);
|
||||
$pdo->commit();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user