fixed add instrument

This commit is contained in:
2025-12-05 12:29:33 +01:00
parent 37909e8175
commit 824ae278d1
6 changed files with 717 additions and 51 deletions
+99 -46
View File
@@ -264,31 +264,47 @@ if (!empty($_GET['ajax'])) {
$lineRaw = $_GET['line'] ?? '';
$lineArray = $lineRaw !== '' ? explode(',', $lineRaw) : [];
// --- RECORD IN PRODUZIONE (2,7,8)
// --- RECORD IN PRODUZIONE (2,7,8)
$sql = "SELECT
p.*,
m.nome AS matrice,
m.photo AS matrice_photo,
(
SELECT GROUP_CONCAT(m.nome ORDER BY m.nome SEPARATOR ' | ')
p.*,
m.nome AS matrice,
m.photo AS matrice_photo,
(
SELECT GROUP_CONCAT(mes.nome ORDER BY mes.nome SEPARATOR ' | ')
FROM productiondata_mescole pm
JOIN mescole m ON m.id = pm.id_mescola
JOIN mescole mes ON mes.id = pm.id_mescola
WHERE pm.id_productiondata = p.id
) AS mescole_list,
l.name AS linea,
c.nome AS cliente,
s.nome AS status_nome,
s.badge_color,
s.line_color,
p.tempo_totale_produzione
FROM productiondata p
LEFT JOIN matrice m ON p.idmatrice = m.id
LEFT JOIN production_lines l ON p.id_linea = l.id
LEFT JOIN clients c ON p.id_cliente = c.id
LEFT JOIN production_status s ON p.id_status = s.id
WHERE p.id_status IN (2, 7, 8)
" . (!empty($lineArray) ? " AND p.id_linea IN (" . implode(',', array_map('intval', $lineArray)) . ")" : "") . "
ORDER BY l.line_number, p.Data";
) AS mescole_list,
l.name AS linea,
c.nome AS cliente,
s.nome AS status_nome,
s.badge_color,
s.line_color,
p.tempo_totale_produzione,
-- 🔧 ADD: tools list & count
(
SELECT GROUP_CONCAT(t.name ORDER BY t.name SEPARATOR ' | ')
FROM productiondata_tools pt
JOIN production_tools t ON t.id = pt.tool_id
WHERE pt.productiondata_id = p.id
) AS tools_list,
(
SELECT COUNT(*)
FROM productiondata_tools pt
WHERE pt.productiondata_id = p.id
) AS tools_count
FROM productiondata p
LEFT JOIN matrice m ON p.idmatrice = m.id
LEFT JOIN production_lines l ON p.id_linea = l.id
LEFT JOIN clients c ON p.id_cliente = c.id
LEFT JOIN production_status s ON p.id_status = s.id
WHERE p.id_status IN (2, 7, 8)
" . (!empty($lineArray) ? " AND p.id_linea IN (" . implode(',', array_map('intval', $lineArray)) . ")" : "") . "
ORDER BY l.line_number, p.Data";
$stmt = $pdo->prepare($sql);
$stmt->execute();
@@ -312,30 +328,44 @@ if (!empty($_GET['ajax'])) {
// --- RECORD IN STATO 6 ORDINATI PER PRIORITY
$sql2 = "SELECT
p.*,
m.nome AS matrice,
m.photo AS matrice_photo,
(
SELECT GROUP_CONCAT(m2.nome ORDER BY m2.nome SEPARATOR ' | ')
FROM productiondata_mescole pm
JOIN mescole m2 ON m2.id = pm.id_mescola
WHERE pm.id_productiondata = p.id
) AS mescole_list,
l.name AS linea,
c.nome AS cliente,
s.nome AS status_nome,
s.badge_color,
s.line_color,
p.tempo_totale_produzione
FROM productiondata p
LEFT JOIN matrice m ON p.idmatrice = m.id
LEFT JOIN production_lines l ON p.id_linea = l.id
LEFT JOIN clients c ON p.id_cliente = c.id
LEFT JOIN production_status s ON p.id_status = s.id
WHERE p.id_status = 6
" . (!empty($lineArray) ? " AND p.id_linea IN (" . implode(',', array_map('intval', $lineArray)) . ")" : "") . "
ORDER BY p.priority ASC
";
p.*,
m.nome AS matrice,
m.photo AS matrice_photo,
(
SELECT GROUP_CONCAT(mes.nome ORDER BY mes.nome SEPARATOR ' | ')
FROM productiondata_mescole pm
JOIN mescole mes ON mes.id = pm.id_mescola
WHERE pm.id_productiondata = p.id
) AS mescole_list,
l.name AS linea,
c.nome AS cliente,
s.nome AS status_nome,
s.badge_color,
s.line_color,
p.tempo_totale_produzione,
-- 🔧 ADD: tools list & count
(
SELECT GROUP_CONCAT(t.name ORDER BY t.name SEPARATOR ' | ')
FROM productiondata_tools pt
JOIN production_tools t ON t.id = pt.tool_id
WHERE pt.productiondata_id = p.id
) AS tools_list,
(
SELECT COUNT(*)
FROM productiondata_tools pt
WHERE pt.productiondata_id = p.id
) AS tools_count
FROM productiondata p
LEFT JOIN matrice m ON p.idmatrice = m.id
LEFT JOIN production_lines l ON p.id_linea = l.id
LEFT JOIN clients c ON p.id_cliente = c.id
LEFT JOIN production_status s ON p.id_status = s.id
WHERE p.id_status = 6
" . (!empty($lineArray) ? " AND p.id_linea IN (" . implode(',', array_map('intval', $lineArray)) . ")" : "") . "
ORDER BY p.priority ASC
";
$stmt2 = $pdo->prepare($sql2);
$stmt2->execute();
@@ -479,10 +509,12 @@ if (!empty($_GET['ajax'])) {
#recordsContainer {
flex: 1;
overflow-y: auto;
padding: 1rem 1.5rem;
/* top right bottom left */
padding: 1rem 1.5rem 5rem 1.5rem;
background: #f8fafc;
}
.record-card {
margin-bottom: 1rem;
border-radius: 1rem;
@@ -893,6 +925,11 @@ if (!empty($_GET['ajax'])) {
font-weight: 700;
font-size: 1rem;
}
.photo-tools-row .qc-right {
margin-left: auto;
/* la porta tutta a destra */
}
</style>
</head>
@@ -1260,6 +1297,22 @@ if (!empty($_GET['ajax'])) {
startAllTimers();
setupEventHandlers();
// 🔧 Sposta l'icona qualità all'estrema destra della riga
$('.photo-tools-row').each(function() {
const $row = $(this);
const $qc = $row.find('.qc-btn').last(); // assume che il bottone qualità abbia classe .qc-btn
if ($qc.length) {
// la stacco dal gruppo foto
$qc.detach();
// la ri-attacco come ultimo elemento della riga
$qc.appendTo($row);
// le do la classe che la spinge a destra
$qc.addClass('qc-right');
}
});
$(document).on("click", ".photo-btn", function(e) {
e.stopPropagation();