45 lines
1.6 KiB
PHP
45 lines
1.6 KiB
PHP
<?php
|
|
require_once 'includes/session.php';
|
|
require_once 'db/config.php';
|
|
|
|
// Check if ID is provided
|
|
if (isset($_GET['id'])) {
|
|
$id = $_GET['id'];
|
|
$client_id = $_SESSION['client_id'];
|
|
$pdo = db();
|
|
|
|
// First, find the macro area to get its slug
|
|
$stmt = $pdo->prepare("SELECT slug FROM macro_areas WHERE id = ? AND client_id = ?");
|
|
$stmt->execute([$id, $client_id]);
|
|
$macro_area = $stmt->fetch();
|
|
|
|
// If the macro area exists, proceed with checks and deletion
|
|
if ($macro_area) {
|
|
$slug = $macro_area['slug'];
|
|
|
|
// Check for dependent expenses
|
|
$stmt = $pdo->prepare("SELECT COUNT(*) FROM expenses WHERE category = ? AND client_id = ?");
|
|
$stmt->execute([$slug, $client_id]);
|
|
$expense_count = $stmt->fetchColumn();
|
|
|
|
if ($expense_count > 0) {
|
|
// Dependencies found, set error message and redirect
|
|
$_SESSION['error_message'] = "Não é possível excluir a macro área. Existem {$expense_count} despesas associadas.";
|
|
} else {
|
|
// No dependencies, proceed with deletion
|
|
$stmt = $pdo->prepare("DELETE FROM macro_areas WHERE id = ? AND client_id = ?");
|
|
$stmt->execute([$id, $client_id]);
|
|
$_SESSION['success_message'] = "Macro área excluída com sucesso.";
|
|
}
|
|
}
|
|
// If the macro area was not found, we just redirect without any message.
|
|
|
|
} else {
|
|
// ID not specified in URL
|
|
$_SESSION['error_message'] = "ID da macro área não especificado.";
|
|
}
|
|
|
|
// Redirect back to the list in all cases
|
|
header('Location: /Backend/macro_areas.php');
|
|
exit;
|
|
?>
|