added additional field in parts template e layout
This commit is contained in:
@@ -14,11 +14,57 @@ if (!$iddatadb) {
|
||||
}
|
||||
|
||||
try {
|
||||
$stmt = $pdo->prepare("SELECT id, iddatadb, part_number, part_description, idmatrice, note, dateexpiry FROM identification_parts WHERE iddatadb = :iddatadb ORDER BY part_number ASC");
|
||||
$stmt->execute([':iddatadb' => $iddatadb]);
|
||||
// 1) prendo templateid da datadb
|
||||
$stmtTpl = $pdo->prepare("SELECT templateid FROM datadb WHERE iddatadb = :iddatadb LIMIT 1");
|
||||
$stmtTpl->execute([':iddatadb' => $iddatadb]);
|
||||
$templateid = $stmtTpl->fetchColumn();
|
||||
|
||||
// 2) prendo (max 1) field_id visibile in parts
|
||||
$extraFieldId = null;
|
||||
if ($templateid) {
|
||||
$stmtEF = $pdo->prepare("SELECT field_id FROM template_mapping WHERE template_id = :templateid AND is_visible_parts = 1 ORDER BY id ASC LIMIT 1");
|
||||
$stmtEF->execute([':templateid' => $templateid]);
|
||||
$extraFieldId = $stmtEF->fetchColumn();
|
||||
if ($extraFieldId !== false) $extraFieldId = (int)$extraFieldId;
|
||||
else $extraFieldId = null;
|
||||
}
|
||||
|
||||
// 3) carico parts + join su tabella figlia
|
||||
if ($extraFieldId) {
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT
|
||||
p.id, p.iddatadb, p.part_number, p.part_description, p.idmatrice, p.note, p.dateexpiry,
|
||||
cf.value_id AS extra_value_id,
|
||||
cf.value_text AS extra_value_text
|
||||
FROM identification_parts p
|
||||
LEFT JOIN identification_parts_customfields cf
|
||||
ON cf.part_id = p.id AND cf.field_id = :extraFieldId
|
||||
WHERE p.iddatadb = :iddatadb
|
||||
ORDER BY p.part_number ASC
|
||||
");
|
||||
$stmt->execute([
|
||||
':iddatadb' => $iddatadb,
|
||||
':extraFieldId' => $extraFieldId
|
||||
]);
|
||||
} else {
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT id, iddatadb, part_number, part_description, idmatrice, note, dateexpiry,
|
||||
NULL AS extra_value_id, NULL AS extra_value_text
|
||||
FROM identification_parts
|
||||
WHERE iddatadb = :iddatadb
|
||||
ORDER BY part_number ASC
|
||||
");
|
||||
$stmt->execute([':iddatadb' => $iddatadb]);
|
||||
}
|
||||
|
||||
$parts = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
echo json_encode(['success' => true, 'parts' => $parts]);
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'parts' => $parts,
|
||||
'extra_field_id' => $extraFieldId,
|
||||
'debug_sql' => ($extraFieldId ? 'WITH_CF_JOIN' : 'NO_CF')
|
||||
]);
|
||||
} catch (PDOException $e) {
|
||||
echo json_encode(['success' => false, 'message' => 'Errore nel caricamento: ' . $e->getMessage()]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user