fixed mescole delete deactivate
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
include('include/headscript.php');
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
|
||||
$id = isset($_POST['id']) ? (int)$_POST['id'] : 0;
|
||||
|
||||
if ($id <= 0) {
|
||||
echo json_encode(['success' => false, 'message' => 'ID mescola non valido']);
|
||||
exit;
|
||||
}
|
||||
|
||||
try {
|
||||
$pdo = DBHandlerSelect::getInstance()->getConnection();
|
||||
|
||||
// Blocca la cancellazione se ci sono dati collegati: meglio disattivare
|
||||
$chk = $pdo->prepare("SELECT COUNT(*) FROM mescole_supplier_lots WHERE idmescola = ?");
|
||||
$chk->execute([$id]);
|
||||
$nLotti = (int)$chk->fetchColumn();
|
||||
|
||||
$chk = $pdo->prepare("SELECT COUNT(*) FROM mescole_files WHERE idmescola = ?");
|
||||
$chk->execute([$id]);
|
||||
$nFile = (int)$chk->fetchColumn();
|
||||
|
||||
if ($nLotti > 0 || $nFile > 0) {
|
||||
$parti = [];
|
||||
if ($nLotti > 0) $parti[] = $nLotti . ' lotto/i fornitore';
|
||||
if ($nFile > 0) $parti[] = $nFile . ' file';
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'message' => 'Impossibile eliminare: la mescola ha ' . implode(' e ', $parti)
|
||||
. '. Rimuovili prima, oppure disattiva la mescola.'
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$pdo->beginTransaction();
|
||||
|
||||
// Le associazioni con le linee non sono dati storici: si possono rimuovere
|
||||
$pdo->prepare("DELETE FROM mescole_lines WHERE idmescola = ?")->execute([$id]);
|
||||
$pdo->prepare("DELETE FROM mescole WHERE id = ?")->execute([$id]);
|
||||
|
||||
$pdo->commit();
|
||||
|
||||
echo json_encode(['success' => true]);
|
||||
} catch (Throwable $e) {
|
||||
if (isset($pdo) && $pdo->inTransaction()) {
|
||||
$pdo->rollBack();
|
||||
}
|
||||
echo json_encode(['success' => false, 'message' => 'Errore database: ' . $e->getMessage()]);
|
||||
}
|
||||
Reference in New Issue
Block a user