getConnection(); $input = json_decode(file_get_contents('php://input'), true); $templateId = (int)($input['template_id'] ?? 0); if ($templateId <= 0) { echo json_encode(['success' => false, 'message' => 'Invalid template_id']); exit; } // If already exists, do nothing $stmt = $pdo->prepare("SELECT COUNT(*) FROM template_fixed_mapping WHERE template_id = ?"); $stmt->execute([$templateId]); if ((int)$stmt->fetchColumn() > 0) { echo json_encode(['success' => true, 'created' => 0, 'message' => 'Fixed fields already exist']); exit; } /** * FIXED FIELDS STANDARD (no UI selection) * is_manual always 1 * is_visible_import default 1 */ $fixedFields = [ // fixed_field_key, data_type ['ClienteResponsabile', 'INT'], ['ClienteFornitore', 'INT'], ['ClienteAnalisi', 'INT'], ['MoltiplicatorePrezzo', 'INT'], ['AnagraficaCertestObject', 'INT'], ['AnagraficaCertestService', 'INT'], ['ConsegnaRichiesta', 'DATE'], ]; try { $pdo->beginTransaction(); $ins = $pdo->prepare(" INSERT INTO template_fixed_mapping (template_id, fixed_field_key, is_manual, data_type, is_required, default_value, is_visible_import) VALUES (:template_id, :fixed_field_key, 1, :data_type, 1, NULL, 1) "); foreach ($fixedFields as $f) { $ins->execute([ ':template_id' => $templateId, ':fixed_field_key' => $f[0], ':data_type' => $f[1], ]); } $pdo->commit(); // Return rows (for client render) $stmt = $pdo->prepare(" SELECT id, template_id, fixed_field_key, is_manual, data_type, is_required, default_value, is_visible_import FROM template_fixed_mapping WHERE template_id = ? ORDER BY id ASC "); $stmt->execute([$templateId]); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode(['success' => true, 'created' => count($rows), 'rows' => $rows]); } catch (Exception $e) { if ($pdo->inTransaction()) $pdo->rollBack(); echo json_encode(['success' => false, 'message' => $e->getMessage()]); }