false, 'message' => 'Metodo non consentito' ]); exit; } $id = isset($_POST['id']) ? (int)$_POST['id'] : 0; $idmescola = isset($_POST['idmescola']) ? (int)$_POST['idmescola'] : 0; $idsupplier = isset($_POST['idsupplier']) ? (int)$_POST['idsupplier'] : 0; $supplier_mix_name = trim($_POST['supplier_mix_name'] ?? ''); $lot_code = trim($_POST['lot_code'] ?? ''); $expiry_date = trim($_POST['expiry_date'] ?? ''); $qty = isset($_POST['qty']) ? str_replace(',', '.', trim((string)$_POST['qty'])) : '0'; if ($id <= 0) { echo json_encode([ 'success' => false, 'message' => 'ID record non valido' ]); exit; } if ($idmescola <= 0) { echo json_encode([ 'success' => false, 'message' => 'ID mescola non valido' ]); exit; } if ($idsupplier <= 0) { echo json_encode([ 'success' => false, 'message' => 'Fornitore obbligatorio' ]); exit; } if ($supplier_mix_name === '') { echo json_encode([ 'success' => false, 'message' => 'Il nome mescola fornitore è obbligatorio' ]); exit; } if ($qty === '' || !is_numeric($qty)) { echo json_encode([ 'success' => false, 'message' => 'Quantità non valida' ]); exit; } $qty = (float)$qty; if ($expiry_date === '') { $expiry_date = null; } else { $dt = DateTime::createFromFormat('Y-m-d', $expiry_date); if (!$dt || $dt->format('Y-m-d') !== $expiry_date) { echo json_encode([ 'success' => false, 'message' => 'Data scadenza non valida' ]); exit; } } $db = DBHandlerSelect::getInstance(); $pdo = $db->getConnection(); // Verifica che il record esista $check = $pdo->prepare(" SELECT id FROM mescole_supplier_lots WHERE id = ? LIMIT 1 "); $check->execute([$id]); if (!$check->fetch(PDO::FETCH_ASSOC)) { echo json_encode([ 'success' => false, 'message' => 'Record non trovato' ]); exit; } $sql = " UPDATE mescole_supplier_lots SET idmescola = :idmescola, idsupplier = :idsupplier, supplier_mix_name = :supplier_mix_name, lot_code = :lot_code, expiry_date = :expiry_date, qty = :qty WHERE id = :id LIMIT 1 "; $stmt = $pdo->prepare($sql); $ok = $stmt->execute([ ':idmescola' => $idmescola, ':idsupplier' => $idsupplier, ':supplier_mix_name' => $supplier_mix_name, ':lot_code' => $lot_code !== '' ? $lot_code : null, ':expiry_date' => $expiry_date, ':qty' => $qty, ':id' => $id ]); if ($ok) { echo json_encode([ 'success' => true, 'message' => 'Record aggiornato correttamente' ]); exit; } echo json_encode([ 'success' => false, 'message' => 'Aggiornamento non riuscito' ]); exit; } catch (Throwable $e) { echo json_encode([ 'success' => false, 'message' => 'Errore server: ' . $e->getMessage() ]); exit; }