76 lines
2.5 KiB
PHP
76 lines
2.5 KiB
PHP
<?php
|
|
session_start();
|
|
require_once 'db/config.php';
|
|
|
|
if (!isset($_SESSION['user_id']) || !in_array($_SESSION['user_role'], ['Administrador', 'admin'])) {
|
|
http_response_code(403);
|
|
echo json_encode(['error' => 'Acceso no autorizado.']);
|
|
exit;
|
|
}
|
|
|
|
$data = json_decode(file_get_contents('php://input'), true);
|
|
|
|
if (!$data || !isset($data['id']) || !isset($data['field']) || !isset($data['value'])) {
|
|
http_response_code(400);
|
|
echo json_encode(['error' => 'Datos incompletos.']);
|
|
exit;
|
|
}
|
|
|
|
$video_id = $data['id'];
|
|
$field = $data['field'];
|
|
$value = $data['value'];
|
|
|
|
// Campos permitidos
|
|
$allowed_fields = [
|
|
'costo_producto', 'costo_fijo_film', 'comision_asesora', 'delivery',
|
|
'costo_publicitario', 'promo_1', 'promo_2', 'promo_3',
|
|
'comision_asesora_provincia', 'delivery_provincia'
|
|
];
|
|
if (!in_array($field, $allowed_fields)) {
|
|
http_response_code(400);
|
|
echo json_encode(['error' => 'Campo no permitido.']);
|
|
exit;
|
|
}
|
|
|
|
try {
|
|
$pdo = db();
|
|
|
|
// Verificar si existe el registro en costos V3
|
|
$stmt = $pdo->prepare("SELECT id FROM marketing_costos_v3 WHERE video_id = ?");
|
|
$stmt->execute([$video_id]);
|
|
$exists = $stmt->fetch();
|
|
|
|
if ($exists) {
|
|
$sql = "UPDATE marketing_costos_v3 SET $field = ?, updated_at = CURRENT_TIMESTAMP WHERE video_id = ?";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute([$value, $video_id]);
|
|
} else {
|
|
$sql = "INSERT INTO marketing_costos_v3 (video_id, $field) VALUES (?, ?)";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute([$video_id, $value]);
|
|
}
|
|
|
|
// Recalcular inversion_total (Local)
|
|
$stmt = $pdo->prepare("SELECT costo_producto, costo_fijo_film, comision_asesora, delivery, costo_publicitario FROM marketing_costos_v3 WHERE video_id = ?");
|
|
$stmt->execute([$video_id]);
|
|
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
$total = floatval($row['costo_producto'] ?? 0) +
|
|
floatval($row['costo_fijo_film'] ?? 0) +
|
|
floatval($row['comision_asesora'] ?? 0) +
|
|
floatval($row['delivery'] ?? 0) +
|
|
floatval($row['costo_publicitario'] ?? 0);
|
|
|
|
$stmt = $pdo->prepare("UPDATE marketing_costos_v3 SET inversion_total = ? WHERE video_id = ?");
|
|
$stmt->execute([$total, $video_id]);
|
|
|
|
echo json_encode([
|
|
'success' => true,
|
|
'message' => 'Actualizado en V3',
|
|
'new_total' => $total
|
|
]);
|
|
} catch (PDOException $e) {
|
|
http_response_code(500);
|
|
echo json_encode(['error' => 'Error: ' . $e->getMessage()]);
|
|
}
|
|
?>
|