D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home3
/
encodto1
/
inventory.tapaslights.com
/
tapaslights
/
Filename :
edit_project.php
back
Copy
<?php require 'config.php'; $error_message = ''; $success_message = ''; $project = []; $steps = ['Foundation', 'Base Floor', 'Ground Floor', 'First Floor', 'Second Floor']; $completed_steps = []; if (!isset($_GET['id']) || !is_numeric($_GET['id'])) { die('Invalid project ID.'); } $project_id = (int) $_GET['id']; // Fetch project data $stmt = $conn->prepare("SELECT * FROM projects WHERE id = ?"); $stmt->bind_param("i", $project_id); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows === 0) { die('Project not found.'); } $project = $result->fetch_assoc(); $stmt->close(); // Fetch completed steps $step_stmt = $conn->prepare("SELECT step_name FROM project_progress_steps WHERE project_id = ? AND is_completed = 1"); $step_stmt->bind_param("i", $project_id); $step_stmt->execute(); $step_result = $step_stmt->get_result(); while ($row = $step_result->fetch_assoc()) { $completed_steps[] = $row['step_name']; } $step_stmt->close(); // Handle form submission if ($_SERVER['REQUEST_METHOD'] == 'POST') { $project_name = $_POST['project_name']; $location = $_POST['location']; $contact_person_name = $_POST['contact_person_name']; $contact_person_phone = $_POST['contact_person_phone']; $contact_person_email = $_POST['contact_person_email']; $project_engineer_name = $_POST['project_engineer_name']; $project_engineer_phone = $_POST['project_engineer_phone']; $project_engineer_email = $_POST['project_engineer_email']; $estimate_project_value = $_POST['estimate_project_value']; $project_start_amount = $_POST['project_start_amount']; $no_of_labours = $_POST['no_of_labours']; $project_start_date = $_POST['project_start_date']; $project_deadline = $_POST['project_deadline']; $completed_steps = $_POST['completed_steps'] ?? []; $list_of_works = $_POST['list_of_works']; $project_progress = round((count($completed_steps) / 5) * 100); $sql = "UPDATE projects SET project_name=?, location=?, contact_person_name=?, contact_person_phone=?, contact_person_email=?, project_engineer_name=?, project_engineer_phone=?, project_engineer_email=?, estimate_project_value=?, project_start_amount=?, no_of_labours=?, project_start_date=?, project_deadline=?, project_progress=?, list_of_works=? WHERE id=?"; $stmt = $conn->prepare($sql); $stmt->bind_param( "ssssssssddissssi", $project_name, $location, $contact_person_name, $contact_person_phone, $contact_person_email, $project_engineer_name, $project_engineer_phone, $project_engineer_email, $estimate_project_value, $project_start_amount, $no_of_labours, $project_start_date, $project_deadline, $project_progress, $list_of_works, $project_id ); if ($stmt->execute()) { foreach ($steps as $step) { $is_completed = in_array($step, $completed_steps) ? 1 : 0; $step_update = $conn->prepare("UPDATE project_progress_steps SET is_completed=? WHERE project_id=? AND step_name=?"); $step_update->bind_param("iis", $is_completed, $project_id, $step); $step_update->execute(); $step_update->close(); } $success_message = "Project updated successfully!"; } else { $error_message = "Error: " . $stmt->error; } $stmt->close(); } ?> <!DOCTYPE html> <html lang="en"> <head> <title>Edit Project</title> <?php include 'style.php'; ?> <style> /* Progress Steps */ .step-card { border: 2px solid #dee2e6; transition: all 0.2s ease-in-out; border-radius: 10px; text-align: left; position: relative; overflow: hidden; } .step-card:hover { border-color: #adb5bd; box-shadow: 0 0 10px rgba(0,0,0,0.1); } .step-card.selected { background-color: #e8f5e9; border-color: #4caf50; } .step-card.selected::after { content: "✓"; position: absolute; top: 5px; right: 10px; color: #4caf50; font-weight: bold; } .step-number { width: 25px; height: 25px; background: #f8f9fa; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; border: 1px solid #dee2e6; } /* Circular Progress */ .circular-chart { display: block; margin: 0 auto; max-width: 100%; max-height: 100%; } .circle-bg { fill: none; stroke: #eee; stroke-width: 3.8; } .circle { fill: none; stroke-width: 2.8; stroke-linecap: round; stroke: #4caf50; transition: all 0.6s ease; } .percentage { fill: #666; font-family: sans-serif; font-size: 0.5em; text-anchor: middle; font-weight: bold; } /* Progress Bar */ .progress-bar { font-weight: bold; transition: width 0.6s ease; } /* Layout */ .progress-visualization { background: #f8f9fa; border-radius: 10px; padding: 20px; margin-bottom: 20px; } .progress-container { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; } .progress-item { flex: 1; min-width: 200px; } </style> </head> <body> <div class="main-wrapper"> <?php include 'header.php'; ?> <?php include 'sidebar.php'; ?> <div class="page-wrapper"> <div class="content container-fluid"> <div class="row"> <div class="col-lg-12"> <div class="card"> <div class="card-header"> <h5 class="card-title">Edit Project</h5> <?php if ($success_message): ?> <div class="alert alert-success"><?php echo $success_message; ?></div> <?php elseif ($error_message): ?> <div class="alert alert-danger"><?php echo $error_message; ?></div> <?php endif; ?> </div> <div class="card-body"> <form action="" method="post"> <!-- Project Name --> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Project Name</label> <div class="col-md-10"> <input type="text" name="project_name" class="form-control" required value="<?= htmlspecialchars($project['project_name']) ?>"> </div> </div> <!-- Location --> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Location</label> <div class="col-md-10"> <input type="text" name="location" class="form-control" value="<?= htmlspecialchars($project['location']) ?>"> </div> </div> <!-- Contact Person --> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Contact Person Name</label> <div class="col-md-10"> <input type="text" name="contact_person_name" class="form-control" value="<?= htmlspecialchars($project['contact_person_name']) ?>"> </div> </div> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Contact Person Phone</label> <div class="col-md-10"> <input type="text" name="contact_person_phone" class="form-control" value="<?= htmlspecialchars($project['contact_person_phone']) ?>"> </div> </div> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Contact Person Email</label> <div class="col-md-10"> <input type="email" name="contact_person_email" class="form-control" value="<?= htmlspecialchars($project['contact_person_email']) ?>"> </div> </div> <!-- Project Engineer --> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Engineer Name</label> <div class="col-md-10"> <input type="text" name="project_engineer_name" class="form-control" value="<?= htmlspecialchars($project['project_engineer_name']) ?>"> </div> </div> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Engineer Phone</label> <div class="col-md-10"> <input type="text" name="project_engineer_phone" class="form-control" value="<?= htmlspecialchars($project['project_engineer_phone']) ?>"> </div> </div> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Engineer Email</label> <div class="col-md-10"> <input type="email" name="project_engineer_email" class="form-control" value="<?= htmlspecialchars($project['project_engineer_email']) ?>"> </div> </div> <!-- Estimate Values --> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Estimated Project Value</label> <div class="col-md-10"> <input type="number" name="estimate_project_value" class="form-control" value="<?= htmlspecialchars($project['estimate_project_value']) ?>"> </div> </div> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Start Amount</label> <div class="col-md-10"> <input type="number" name="project_start_amount" class="form-control" value="<?= htmlspecialchars($project['project_start_amount']) ?>"> </div> </div> <!-- Labours and Dates --> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">No. of Labours</label> <div class="col-md-10"> <input type="number" name="no_of_labours" class="form-control" value="<?= htmlspecialchars($project['no_of_labours']) ?>"> </div> </div> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Start Date</label> <div class="col-md-10"> <input type="date" name="project_start_date" class="form-control" value="<?= htmlspecialchars($project['project_start_date']) ?>"> </div> </div> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Deadline</label> <div class="col-md-10"> <input type="date" name="project_deadline" class="form-control" value="<?= htmlspecialchars($project['project_deadline']) ?>"> </div> </div> <!-- Progress Steps --> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">Project Steps</label> <div class="col-md-10 row g-3"> <?php foreach ($steps as $i => $step): ?> <div class="col-md-4"> <div class="form-check card p-3 step-card <?= in_array($step, $completed_steps) ? 'selected' : '' ?>"> <input class="form-check-input d-none progress-step" type="checkbox" name="completed_steps[]" value="<?= $step ?>" id="step-<?= $i ?>" <?= in_array($step, $completed_steps) ? 'checked' : '' ?>> <label class="form-check-label w-100 fw-semibold" for="step-<?= $i ?>"> <div class="d-flex align-items-center"> <div class="step-number me-2"><?= $i + 1 ?></div> <div><?= $step ?></div> </div> </label> </div> </div> <?php endforeach; ?> </div> </div> <!-- List of Works --> <div class="input-block mb-3 row"> <label class="col-form-label col-md-2">List of Works</label> <div class="col-md-10"> <textarea class="form-control" name="list_of_works" rows="4"><?= htmlspecialchars($project['list_of_works']) ?></textarea> </div> </div> <!-- Submit --> <div class="input-block mb-3 mb-0 row"> <div class="col-md-10 offset-md-2"> <div class="d-flex justify-content-end"> <button class="btn btn-primary m-2" type="submit">Update</button> <a class="btn btn-secondary m-2" href="project_list.php">Back</a> </div> </div> </div> </form> </div><!-- card-body --> </div><!-- card --> </div><!-- col-lg-12 --> </div><!-- row --> </div><!-- content --> </div><!-- page-wrapper --> <?php include 'footer.php'; ?> </div><!-- main-wrapper --> <script> document.addEventListener('DOMContentLoaded', function () { document.querySelectorAll('.step-card').forEach(card => { card.addEventListener('click', function () { const checkbox = this.querySelector('input.progress-step'); checkbox.checked = !checkbox.checked; this.classList.toggle('selected', checkbox.checked); }); }); }); </script> </body> </html>