budget +
This commit is contained in:
@@ -6,7 +6,6 @@ require_login();
|
||||
// --- ACTION : SUPPRESSION D'UNE ENTRÉE UNIQUE ---
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'delete_entry') {
|
||||
$owner = $_POST['owner'];
|
||||
$redirectTab = $_POST['redirect_tab'] ?? $owner;
|
||||
$date = $_POST['month_date'];
|
||||
$cat = $_POST['category'];
|
||||
|
||||
@@ -40,7 +39,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'dupli
|
||||
$stmtIns->execute([$owner, $targetDate, 'TOTAL_BANQUE', $newTotal]);
|
||||
|
||||
// 3. Copier toutes les catégories (sauf TOTAL_BANQUE) du mois source
|
||||
// On insère directement avec une requête INSERT SELECT
|
||||
$sqlCopy = "INSERT INTO pf_savings (owner, month_date, category, amount)
|
||||
SELECT owner, ?, category, amount
|
||||
FROM pf_savings
|
||||
@@ -76,30 +74,37 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'delet
|
||||
}
|
||||
|
||||
// --- ACTION : SAUVEGARDE CLASSIQUE (MODALE) ---
|
||||
// (Le code précédent reste ici pour la sauvegarde via le formulaire classique)
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$owner = $_POST['owner'];
|
||||
|
||||
// CORRECTION ICI : On récupère l'onglet de redirection (Nens, Alex ou Laia)
|
||||
$redirectTab = $_POST['redirect_tab'] ?? $owner;
|
||||
|
||||
$dateInput = $_POST['month_date'];
|
||||
$dateObj = new DateTime($dateInput);
|
||||
$monthDate = $dateObj->format('Y-m-01');
|
||||
$values = $_POST['values'] ?? []; // Pour la modale standard
|
||||
$values = $_POST['values'] ?? []; // Tableau généré par nos champs JS: values[Catégorie]
|
||||
|
||||
// ... (Garde ton code précédent de sauvegarde ici) ...
|
||||
// Note : Ajoute ce bloc TRY CATCH si tu ne l'avais pas déjà
|
||||
try {
|
||||
$pdo->beginTransaction();
|
||||
|
||||
// On supprime d'abord les anciennes données du mois pour cet utilisateur
|
||||
$stmtDel = $pdo->prepare("DELETE FROM pf_savings WHERE owner = ? AND month_date = ?");
|
||||
$stmtDel->execute([$owner, $monthDate]);
|
||||
|
||||
// On réinsère les nouvelles données
|
||||
$stmtIns = $pdo->prepare("INSERT INTO pf_savings (owner, month_date, category, amount) VALUES (?, ?, ?, ?)");
|
||||
foreach ($values as $category => $amount) {
|
||||
$amount = floatval($amount);
|
||||
// On enregistre si c'est positif OU si c'est le total banque
|
||||
if ($amount > 0 || $category === 'TOTAL_BANQUE') {
|
||||
$stmtIns->execute([$owner, $monthDate, $category, $amount]);
|
||||
}
|
||||
}
|
||||
$pdo->commit();
|
||||
header("Location: /budget.php?tab=epargne&owner=$redirectTab");
|
||||
|
||||
// Redirection vers le bon onglet
|
||||
header("Location: /budget.php?tab=epargne&owner=" . urlencode($redirectTab));
|
||||
exit;
|
||||
} catch (Exception $e) {
|
||||
$pdo->rollBack();
|
||||
|
||||
Reference in New Issue
Block a user