80 lines
2.2 KiB
PHP
80 lines
2.2 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
|
|
require_once(__DIR__ . '/include/headscript.php');
|
|
|
|
$db = DBHandlerSelect::getInstance();
|
|
$pdo = $db->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()]);
|
|
}
|