diff --git a/public/userarea/delete_productiondata.php b/public/userarea/delete_productiondata.php new file mode 100644 index 0000000..69ed81d --- /dev/null +++ b/public/userarea/delete_productiondata.php @@ -0,0 +1,18 @@ +getConnection(); + +if (empty($_POST['id'])) { + echo json_encode(['success' => false, 'msg' => 'ID mancante']); + exit; +} + +try { + $stmt = $pdo->prepare("DELETE FROM productiondata WHERE id = :id"); + $stmt->execute(['id' => $_POST['id']]); + echo json_encode(['success' => true]); +} catch (Exception $e) { + echo json_encode(['success' => false, 'msg' => $e->getMessage()]); +} diff --git a/public/userarea/production_dashboard.php b/public/userarea/production_dashboard.php index 0712b03..c462def 100644 --- a/public/userarea/production_dashboard.php +++ b/public/userarea/production_dashboard.php @@ -110,7 +110,7 @@ max-width: 280px; border: none; border-radius: 16px; - padding: 36px 10px; + padding: 24px 10px; color: #2b3e50; font-size: 1.3rem; font-weight: 600; @@ -266,6 +266,7 @@ + diff --git a/public/userarea/produzione_programmazione.php b/public/userarea/produzione_programmazione.php new file mode 100644 index 0000000..f5262fa --- /dev/null +++ b/public/userarea/produzione_programmazione.php @@ -0,0 +1,582 @@ +getConnection(); + +// --- LISTE SELECT --- +$matrici = $pdo->query("SELECT id, nome FROM matrice ORDER BY nome")->fetchAll(); +$mescole = $pdo->query("SELECT id, nome FROM mescole ORDER BY nome")->fetchAll(); +$linee = $pdo->query("SELECT id, line_number, name FROM production_lines ORDER BY line_number")->fetchAll(); +$clienti = $pdo->query("SELECT id, nome FROM clients ORDER BY nome")->fetchAll(); +$status_list = $pdo->query("SELECT id, nome, badge_color, line_color FROM production_status ORDER BY ordinamento, nome")->fetchAll(); + +// --- SALVATAGGIO INLINE --- +if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['action'])) { + $action = $_POST['action']; + $data = [ + 'Data' => $_POST['Data'], + 'idmatrice' => $_POST['idmatrice'], + 'idmescola' => $_POST['idmescola'], + 'id_linea' => $_POST['id_linea'], + 'id_cliente' => $_POST['id_cliente'] ?: null, + 'data_zibo' => $_POST['data_zibo'] ?: null, + 'data_cliente' => $_POST['data_cliente'] ?: null, + 'metri' => $_POST['metri'] ?: 0, + 'kg_sp' => $_POST['kg_sp'] ?: 0, + 'kg_p' => $_POST['kg_p'] ?: 0, + 'ore_previste' => $_POST['ore_previste'] ?: 0, + 'note_extra' => $_POST['note_extra'] ?: null, + 'data_produzione' => $_POST['data_produzione'], + 'id_status' => $_POST['id_status'] ?? 1 + ]; + + try { + if ($action === 'insert') { + $sql = "INSERT INTO productiondata + (Data, idmatrice, idmescola, id_linea, id_cliente, data_zibo, data_cliente, metri, kg_sp, kg_p, ore_previste, note_extra, data_produzione, id_status) + VALUES + (:Data, :idmatrice, :idmescola, :id_linea, :id_cliente, :data_zibo, :data_cliente, :metri, :kg_sp, :kg_p, :ore_previste, :note_extra, :data_produzione, :id_status)"; + $stmt = $pdo->prepare($sql); + $stmt->execute($data); + echo json_encode(['success' => true]); + } elseif ($action === 'update' && !empty($_POST['id'])) { + $data['id'] = $_POST['id']; + $sql = "UPDATE productiondata SET + Data=:Data, idmatrice=:idmatrice, idmescola=:idmescola, id_linea=:id_linea, + id_cliente=:id_cliente, data_zibo=:data_zibo, data_cliente=:data_cliente, + metri=:metri, kg_sp=:kg_sp, kg_p=:kg_p, ore_previste=:ore_previste, + note_extra=:note_extra, data_produzione=:data_produzione, id_status=:id_status + WHERE id = :id"; + $stmt = $pdo->prepare($sql); + $stmt->execute($data); + echo json_encode(['success' => true]); + } + exit; + } catch (Exception $e) { + echo json_encode(['success' => false, 'msg' => $e->getMessage()]); + exit; + } +} +?> + + + + + + Programmazione Produzione - <?= $titlewebsite ?> + + + + + + + + + + + +
+ +
+
+
+
+
Programmazione Produzione
+
+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + query($sql) as $r) { + $lineColor = htmlspecialchars($r['line_color'] ?? '#ffffff'); + $badgeColor = htmlspecialchars($r['badge_color'] ?? '#6c757d'); + $statusName = htmlspecialchars(ucfirst($r['status_nome'] ?? 'N/D')); + + echo " + + + + + + + + + + + + + + + + "; + } + + function selectOptions($arr, $sel = null, $val = 'id', $txt = 'nome') + { + $opt = ''; + foreach ($arr as $a) { + $selected = ($sel !== null && $a[$val] == $sel) ? 'selected' : ''; + $opt .= ""; + } + return $opt; + } + ?> + +
DataMatriceMescolaLineaClienteZiboClientemtkg spkg pOreNoteProd.StatusAzioni
" . date('d/m', strtotime($r['Data'])) . " + {$r['matrice']} + {$r['mescola']} + {$r['linea']} + " . ($r['cliente'] ?? '-') . " + " . ($r['data_zibo'] ? date('d/m', strtotime($r['data_zibo'])) : '-') . " + " . ($r['data_cliente'] ? date('d/m', strtotime($r['data_cliente'])) : '-') . " + {$r['metri']}{$r['kg_sp']}{$r['kg_p']}{$r['ore_previste']}" . htmlspecialchars($r['note_extra'] ?? '') . " + " . date('d/m', strtotime($r['data_produzione'])) . " + + {$statusName} + + + + + + +
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + \ No newline at end of file