36293-vm/save_override.php
2025-11-26 16:27:58 +00:00

49 lines
1.6 KiB
PHP

<?php
require_once __DIR__ . '/db/config.php';
header('Content-Type: application/json');
$response = ['success' => false, 'error' => 'Invalid request'];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$project_id = $_POST['projectId'] ?? null;
$month = $_POST['month'] ?? null;
$metrics = [
'wip' => $_POST['wip'] ?? null,
'opening_balance' => $_POST['openingBalance'] ?? null,
'billings' => $_POST['billings'] ?? null,
'expenses' => $_POST['expenses'] ?? null,
];
if ($project_id && $month && !in_array(null, $metrics, true)) {
try {
$pdo = db();
$sql = "INSERT INTO projectFinanceMonthly (projectId, month, metricName, value, is_overridden)
VALUES (:pid, :m, :metric, :val, 1)
ON DUPLICATE KEY UPDATE value = :val, is_overridden = 1";
$stmt = $pdo->prepare($sql);
foreach ($metrics as $metricName => $value) {
$processedValue = ($value === '' || $value === null) ? 0.00 : $value;
$stmt->execute([
':pid' => $project_id,
':m' => $month,
':metric' => $metricName,
':val' => $processedValue
]);
}
$response = ['success' => true];
} catch (PDOException $e) {
$response['error'] = 'Database error: ' . $e->getMessage();
error_log($e->getMessage());
}
} else {
$response['error'] = 'Missing required fields.';
}
}
echo json_encode($response);