51 lines
2.0 KiB
PHP
51 lines
2.0 KiB
PHP
<?php
|
|
ob_start();
|
|
session_start();
|
|
require_once '../../vendor/autoload.php';
|
|
|
|
$response = ['error' => '', 'rows' => [], 'columns' => [], 'template_id' => 0, 'filename' => '', 'excel_data' => []];
|
|
|
|
try {
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$input = json_decode(file_get_contents('php://input'), true);
|
|
$template_id = isset($input['template_id']) ? intval($input['template_id']) : 0;
|
|
$filename = $input['routine_data']['filename'] ?? '';
|
|
$headerrow = $input['routine_data']['headerrow'] ?? 1;
|
|
$excelData = $input['excel_data'] ?? [];
|
|
$routineData = $input['routine_data'] ?? [];
|
|
|
|
if (!$filename || empty($excelData)) {
|
|
throw new Exception("Dati della routine mancanti.");
|
|
}
|
|
|
|
$routineFile = __DIR__ . '/routines/' . $filename;
|
|
if (file_exists($routineFile)) {
|
|
include_once $routineFile;
|
|
$routineData['xls_headers'] = $_SESSION['headers'] ?? [];
|
|
applyRoutine($excelData, $routineData); // Modifica $excelData in place
|
|
error_log("Routine {$routineData['name']} applicata (file: {$filename}) per template {$template_id}, header row: {$headerrow}");
|
|
} else {
|
|
throw new Exception("File della routine non trovato: $routineFile");
|
|
}
|
|
|
|
// Aggiorna la sessione con i dati modificati
|
|
$_SESSION['excel_data'] = $excelData;
|
|
|
|
$response['excel_data'] = $excelData;
|
|
$response['rows'] = array_column($excelData, 'data');
|
|
$response['columns'] = $_SESSION['headers'];
|
|
$response['template_id'] = $template_id;
|
|
$response['filename'] = $input['filename'] ?? '';
|
|
} else {
|
|
$response['error'] = "Richiesta non valida.";
|
|
}
|
|
} catch (Exception $e) {
|
|
$response['error'] = "Errore durante l'applicazione della routine: " . $e->getMessage();
|
|
error_log("Exception in apply_routine.php: " . $e->getMessage());
|
|
}
|
|
|
|
ob_end_clean();
|
|
header('Content-Type: application/json');
|
|
echo json_encode($response);
|
|
exit;
|