92 lines
2.4 KiB
PHP
92 lines
2.4 KiB
PHP
<?php
|
|
include('include/headscript.php');
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
try {
|
|
$db = DBHandlerSelect::getInstance();
|
|
$pdo = $db->getConnection();
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
throw new Exception('Metodo non valido');
|
|
}
|
|
|
|
$photoId = isset($_POST['photo_id']) ? (int)$_POST['photo_id'] : 0;
|
|
$field = isset($_POST['field']) ? trim($_POST['field']) : '';
|
|
$value = isset($_POST['value']) ? (int)$_POST['value'] : 0;
|
|
|
|
if ($photoId <= 0) {
|
|
throw new Exception('photo_id mancante o non valido');
|
|
}
|
|
|
|
$allowedFields = ['StampaNelRapporto', 'PrimaPagina'];
|
|
if (!in_array($field, $allowedFields, true)) {
|
|
throw new Exception('Campo non consentito');
|
|
}
|
|
|
|
$value = $value === 1 ? 1 : 0;
|
|
|
|
// Recupera la foto per sapere a quale record padre appartiene
|
|
$stmt = $pdo->prepare("
|
|
SELECT id, iddatadb, idquotations
|
|
FROM datadb_photos
|
|
WHERE id = ?
|
|
LIMIT 1
|
|
");
|
|
$stmt->execute([$photoId]);
|
|
$photo = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if (!$photo) {
|
|
throw new Exception('Foto non trovata');
|
|
}
|
|
|
|
$iddatadb = !empty($photo['iddatadb']) ? (int)$photo['iddatadb'] : null;
|
|
$idquotations = !empty($photo['idquotations']) ? (int)$photo['idquotations'] : null;
|
|
|
|
$pdo->beginTransaction();
|
|
|
|
if ($field === 'PrimaPagina' && $value === 1) {
|
|
// Solo una foto può essere PrimaPagina per lo stesso record padre
|
|
if ($iddatadb) {
|
|
$stmtReset = $pdo->prepare("
|
|
UPDATE datadb_photos
|
|
SET PrimaPagina = 0
|
|
WHERE iddatadb = ?
|
|
");
|
|
$stmtReset->execute([$iddatadb]);
|
|
} elseif ($idquotations) {
|
|
$stmtReset = $pdo->prepare("
|
|
UPDATE datadb_photos
|
|
SET PrimaPagina = 0
|
|
WHERE idquotations = ?
|
|
");
|
|
$stmtReset->execute([$idquotations]);
|
|
}
|
|
}
|
|
|
|
$stmtUpdate = $pdo->prepare("
|
|
UPDATE datadb_photos
|
|
SET {$field} = ?
|
|
WHERE id = ?
|
|
");
|
|
$stmtUpdate->execute([$value, $photoId]);
|
|
|
|
$pdo->commit();
|
|
|
|
echo json_encode([
|
|
'success' => true,
|
|
'photo_id' => $photoId,
|
|
'field' => $field,
|
|
'value' => $value
|
|
]);
|
|
} catch (Exception $e) {
|
|
if (isset($pdo) && $pdo->inTransaction()) {
|
|
$pdo->rollBack();
|
|
}
|
|
|
|
echo json_encode([
|
|
'success' => false,
|
|
'message' => $e->getMessage()
|
|
]);
|
|
}
|