diff --git a/public/userarea/production_line_view2.php b/public/userarea/production_line_view2.php index dc4da228..320bbdfc 100644 --- a/public/userarea/production_line_view2.php +++ b/public/userarea/production_line_view2.php @@ -410,6 +410,39 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['create_quick'])) { } +// --- AJAX: mescole collegate a una matrice --- +if (!empty($_GET['mescole_by_matrice'])) { + header('Content-Type: application/json; charset=utf-8'); + $idMatrice = (int)($_GET['id_matrice'] ?? 0); + + if ($idMatrice <= 0) { + echo json_encode(['success' => false, 'rows' => []]); + exit; + } + + $stmt = $pdo->prepare(" + SELECT me.id, me.nome + FROM matrici_mescole mm + JOIN mescole me ON me.id = mm.idmescola + WHERE mm.idmatrice = :idm AND me.is_active = 1 + ORDER BY me.nome + "); + $stmt->execute(['idm' => $idMatrice]); + $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); + + // Linee associate a questa matrice + $stmtL = $pdo->prepare(" + SELECT ml.idlinea AS id + FROM matrici_lines ml + WHERE ml.idmatrice = :idm + "); + $stmtL->execute(['idm' => $idMatrice]); + $lineIds = array_map('intval', $stmtL->fetchAll(PDO::FETCH_COLUMN)); + + echo json_encode(['success' => true, 'rows' => $rows, 'lines' => $lineIds]); + exit; +} + // --- AJAX PRINCIPALE: carica i record della data selezionata --- if (!empty($_GET['ajax'])) { $lineRaw = $_GET['line'] ?? ''; @@ -2455,11 +2488,88 @@ if (!empty($_GET['ajax'])) { width: '100%', closeOnSelect: false }); + $('#qcLinea').select2({ + dropdownParent: $('#quickCreateModal .modal-content'), + placeholder: 'Seleziona linea...', + allowClear: true, + width: '100%' + }); + + // Salvo l'HTML originale delle linee per poterlo ricostruire ad ogni cambio matrice + if (!window._qcLineaOriginalHtml) { + window._qcLineaOriginalHtml = $('#qcLinea').html(); + } + + // Ricostruisce il select linea raggruppando le associate in cima + function rebuildLineSelect(associatedIds) { + const current = $('#qcLinea').val(); + const assocSet = new Set((associatedIds || []).map(String)); + + // Ripristino tutte le option originali + const $tmp = $('