37684-vm/api/delete_lpa.php
2026-03-01 00:35:05 +00:00

60 lines
1.7 KiB
PHP

<?php
header('Content-Type: application/json');
session_start();
// 1. Verify Authentication and Authorization
if (!isset($_SESSION["user_id"]) || ($_SESSION["user_role"] ?? '') !== 'Super User') {
echo json_encode(['success' => false, 'error' => 'Unauthorized access.']);
exit;
}
require_once __DIR__ . '/../db/config.php';
// 2. Validate Input
$lpa_id = isset($_POST['id']) ? (int)$_POST['id'] : null;
if (!$lpa_id) {
echo json_encode(['success' => false, 'error' => 'Application ID is missing.']);
exit;
}
try {
$pdo = db();
// 3. Start Transaction
$pdo->beginTransaction();
// 4. Delete related records
// Delete Attorneys
$stmtAttorneys = $pdo->prepare("DELETE FROM lpa_attorneys WHERE lpa_id = ?");
$stmtAttorneys->execute([$lpa_id]);
// Delete Notified Persons
$stmtNotified = $pdo->prepare("DELETE FROM lpa_notified_persons WHERE application_id = ?");
$stmtNotified->execute([$lpa_id]);
// 5. Delete the application itself
$stmtLpa = $pdo->prepare("DELETE FROM lpa_applications WHERE id = ?");
$stmtLpa->execute([$lpa_id]);
if ($stmtLpa->rowCount() === 0) {
$pdo->rollBack();
echo json_encode(['success' => false, 'error' => 'Application not found or already deleted.']);
exit;
}
// 6. Commit Transaction
$pdo->commit();
echo json_encode(['success' => true, 'message' => 'LPA application and all related data deleted successfully.']);
} catch (PDOException $e) {
// Rollback on error
if (isset($pdo)) {
$pdo->rollBack();
}
error_log("Delete LPA Error: " . $e->getMessage());
echo json_encode(['success' => false, 'error' => 'A database error occurred.']);
}