'', '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;