Файловый менеджер - Редактировать - /home/d46091/invoice.ecogenix.in/add_reports.php
Назад
<?php require_once('includes/connection.php'); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $form_date = $_POST['form_date']; $company_id = $_POST['company_name']; $item_name = $_POST['item_name']; $value = $_POST['value']; $loading_expenses = $_POST['loading_expenses']; $office_expenses = $_POST['office_expenses']; $total_cost = $_POST['total_cost']; $vehicle_id = $_POST['vehicle_no']; $vehicle_capacity = $_POST['vehicle_capacity']; $vehicle_insurance_validy = $_POST['vehicle_insurance_validy']; $broker = $_POST['broker']; $driver_id = $_POST['driver_name']; $mobile_no = $_POST['mobile_no']; $total_fair = $_POST['total_fair']; $advance_fair = $_POST['advance_fair']; $demorage = $_POST['demorage']; $balance_payable = $_POST['balance_payable']; $reporting = $_POST['reporting']; $sold_to = $_POST['sold_to']; $sold_value = $_POST['sold_value']; $unloading_expenses = $_POST['unloading_expenses']; $road_expenses = $_POST['road_expenses']; $parking_charge = $_POST['parking_charge']; $del_total_cost = $_POST['del_total_cost']; $unloading = $_POST['unloading']; // 2) Lookup company_name $stmts = $conn->prepare("SELECT company_name FROM vendor_master WHERE id = ?"); $stmts->bind_param("i", $company_id); $stmts->execute(); $stmts->bind_result($company_name); $stmts->fetch(); $stmts->close(); // 3) Lookup vehicle_no $stmtt = $conn->prepare("SELECT vehicle_no FROM vehicle_master WHERE id = ?"); $stmtt->bind_param("i", $vehicle_id); $stmtt->execute(); $stmtt->bind_result($vehicle_no); $stmtt->fetch(); $stmtt->close(); // 4) Lookup driver_name $stmtp = $conn->prepare("SELECT driver_name FROM driver_master WHERE id = ?"); $stmtp->bind_param("i", $driver_id); $stmtp->execute(); $stmtp->bind_result($driver_name); $stmtp->fetch(); $stmtp->close(); // 5) Calculate duration between reporting and unloading $dtReport = new DateTime($reporting); $dtUnload = new DateTime($unloading); $interval = $dtReport->diff($dtUnload); $total_duration = $interval->format('%a days, %h hours, %i minutes'); $created_at = date("Y-m-d H:i:s"); // 6) Insert into reports $stmt = $conn->prepare(" INSERT INTO reports ( form_date, company_name, item_name, value, loading_expenses, office_expenses, total_cost, vehicle_no, vehicle_capacity, vehicle_insurance_validy, total_fair, advance_fair, demorage, balance_payable, broker, driver_name, mobile_no, reporting, sold_to, sold_value, unloading_expenses, road_expenses, parking_charge, del_total_cost, unloading, total_duration, created_at ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) "); $stmt->bind_param( "sssssssssssssssssssssssssss", $form_date, $company_name, $item_name, $value, $loading_expenses, $office_expenses, $total_cost, $vehicle_no, $vehicle_capacity, $vehicle_insurance_validy, $total_fair, $advance_fair, $demorage, $balance_payable, $broker, $driver_name, $mobile_no, $reporting, $sold_to, $sold_value, $unloading_expenses, $road_expenses, $parking_charge, $del_total_cost, $unloading, $total_duration, $created_at ); if ($stmt->execute()) { echo "<script> alert('Consignment saved successfully!'); window.location.href = 'reports.php'; </script>"; } else { error_log("MySQL Error: " . $stmt->error); echo "<script>alert('Error saving consignment. Please try again.');</script>"; } $stmt->close(); } require_once('includes/header.php'); ?> <div class="content mt-5"> <div class="card shadow-sm rounded-4"> <div class="card-body"> <form action="" method="POST"> <div class="card-header bg-primary text-white fw-semibold"> <i class="bi bi-file-earmark-plus me-2"></i> Purchase </div> <div class="row g-3"> <div class="col-md-4"> <label for="date">Date</label> <input type="date" name="form_date" class="form-control" required> </div> <div class="col-md-4"> <label for="company_name" class="form-label">Vendor Name</label> <select class="form-select" id="company_name" name="company_name" required> <option value="" selected disabled>--Select Vendor Name--</option> <?php $vendor_query = "SELECT `id`, `company_name` FROM `vendor_master` WHERE `status` = 1"; $result = $conn->query($vendor_query); if ($result && $result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<option value='" . htmlspecialchars($row['id']) . "'>" . htmlspecialchars($row['company_name']) . "</option>"; } } ?> </select> </div> <div class="col-md-4"> <label for="item_name">Item Name</label> <select class="form-select" id="item_name" name="item_name" required> <option value="" selected disabled>--Select Item Name--</option> <?php $vendor_query = "SELECT `item_name` FROM `item_master` WHERE `status` = 1"; $result = $conn->query($vendor_query); if ($result && $result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<option value='" . htmlspecialchars($row['item_name']) . "'>" . htmlspecialchars($row['item_name']) . "</option>"; } } ?> </select> </div> <div class="col-md-4"> <label for="value">Value</label> <input type="text" step="0.01" id="value" name="value" class="form-control only-number" required> </div> <div class="col-md-4"> <label for="loading_expenses">Loading Expenses</label> <input type="text" step="0.01" id="loading_expenses" name="loading_expenses" class="form-control only-number" required> </div> <div class="col-md-4"> <label for="office_expenses">Office Expenses</label> <input type="text" step="0.01" id="office_expenses" name="office_expenses" class="form-control only-number" required> </div> <div class="col-md-4"> <label for="total_cost">Total Cost</label> <input type="text" step="0.01" id="total_cost" name="total_cost" class="form-control only-number" readonly> </div> <div class="card-header bg-primary text-white fw-semibold"> <i class="bi bi-file-earmark-plus me-2"></i> Transporter </div> <div class="col-md-3"> <label for="vehicle_no">Vehicle No</label> <select class="form-select" id="vehicle_no" name="vehicle_no" required> <option value="" selected disabled>--Select Vehicle Number--</option> <?php $vehicle_query = "SELECT * FROM `vehicle_master` WHERE `status` = 1"; $vehicle_result = $conn->query($vehicle_query); if ($vehicle_result && $vehicle_result->num_rows > 0) { while ($row = $vehicle_result->fetch_assoc()) { echo "<option value='" . $row['id'] . "'>" . htmlspecialchars($row['vehicle_no']) . "</option>"; } } ?> </select> </div> <!-- Vehicle Capacity --> <div class="col-md-3"> <label for="vehicle_capacity">Vehicle Capacity</label> <input type="text" name="vehicle_capacity" id="vehicle_capacity" class="form-control" readonly> </div> <!-- Insurance Validity --> <div class="col-md-3"> <label for="vehicle_insurance_validy">Vehicle Insurance Expiry Date</label> <input type="text" name="vehicle_insurance_validy" id="vehicle_insurance_validy" class="form-control" readonly> </div> <!-- Broker --> <div class="col-md-3"> <label for="broker">Broker</label> <select class="form-select" id="broker" name="broker" required> <option value="" selected disabled>--Select Broker--</option> </select> </div> <div class="col-md-3"> <label for="driver_name">Driver Name</label> <select class="form-select" id="driver_name" name="driver_name" required> <option value="" selected disabled>--Select Driver--</option> <?php $driver_query = "SELECT * FROM `driver_master`"; $driver_result = $conn->query($driver_query); if ($driver_result && $driver_result->num_rows > 0) { while ($row = $driver_result->fetch_assoc()) { echo "<option value='" . $row['id'] . "'>" . htmlspecialchars($row['driver_name']) . "</option>"; } } ?> </select> </div> <div class="col-md-3"> <label for="mobile_no">Mobile No</label> <input type="text" name="mobile_no" id="mobile_no" class="form-control" readonly> </div> <div class="col-md-3"> <label for="total_fair">Total Fare</label> <input type="text" step="0.01" id="total_fair" name="total_fair" class="form-control only-number" required> </div> <div class="col-md-3"> <label for="advance_fair">Advance Fare</label> <input type="text" step="0.01" id="advance_fair" name="advance_fair" class="form-control only-number" required> </div> <div class="col-md-3"> <label for="demorage">Demurrage</label> <input type="text" step="0.01" id="demorage" name="demorage" class="form-control only-number" required> </div> <div class="col-md-3"> <label for="balance_payable">Balance Payable</label> <input type="text" step="0.01" id="balance_payable" name="balance_payable" class="form-control only-number" readonly> </div> <div class="card-header bg-primary text-white fw-semibold"> <i class="bi bi-file-earmark-plus me-2"></i> Seller </div> <div class="col-md-3"> <label for="reporting">Reporting</label> <input type="datetime-local" name="reporting" id="reporting" class="form-control"> </div> <div class="col-md-3"> <label for="sold_to">Sold To</label> <select class="form-select" id="sold_to" name="sold_to" required> <option value="" selected disabled>--Select Customer--</option> <?php $vehicle_query = "SELECT * FROM `customer_master` WHERE `status` = 1"; $vehicle_result = $conn->query($vehicle_query); if ($vehicle_result && $vehicle_result->num_rows > 0) { while ($row = $vehicle_result->fetch_assoc()) { echo "<option value='" . $row['cus_name'] . "'>" . htmlspecialchars($row['cus_name']) . "</option>"; } } ?> </select> </div> <div class="col-md-3"> <label for="sold_value">Sold Value</label> <input type="text" step="0.01" name="sold_value" id="sold_value" class="form-control only-number" required> </div> <div class="col-md-3"> <label for="unloading_expenses">Unloading Expenses</label> <input type="text" step="0.01" name="unloading_expenses" id="unloading_expenses" class="form-control only-number" required> </div> <div class="col-md-3"> <label for="office_expenses">Office Expenses</label> <input type="text" step="0.01" name="office_expenses" id="office_expenses" class="form-control only-number" required> </div> <div class="col-md-3"> <label for="road_expenses">Road Expenses</label> <input type="text" step="0.01" name="road_expenses" id="road_expenses" class="form-control only-number" required> </div> <div class="col-md-3"> <label for="parking_charge">Parking Charge</label> <input type="text" step="0.01" name="parking_charge" id="parking_charge" class="form-control only-number" required> </div> <div class="col-md-3"> <label for="del_total_cost">Total Cost</label> <input type="text" step="0.01" name="del_total_cost" id="del_total_cost" class="form-control only-number" readonly> </div> <div class="col-md-3"> <label for="unloading">Unloading</label> <input type="datetime-local" name="unloading" id="unloading" class="form-control" required> </div> <div class="col-12 mt-3"> <button type="submit" class="btn btn-success"> <i class="bi bi-save me-1"></i> Save Consign </button> <a href="reports.php" class="btn btn-secondary ms-2">Cancel</a> </div> </div> </form> </div> </div> </div> <?php require_once('includes/footer.php'); ?> <script> document.getElementById("vehicle_no").addEventListener("change", function() { const vehicleId = this.value; fetch('get_vehicle_data.php?vehicle_id=' + vehicleId) .then(response => response.json()) .then(data => { // Populate fields document.getElementById("vehicle_capacity").value = data.vehicle_capacity; document.getElementById("vehicle_insurance_validy").value = data.vehicle_insurance_validy; // Populate broker dropdown const brokerSelect = document.getElementById("broker"); brokerSelect.innerHTML = "<option disabled selected>--Select Broker--</option>"; data.brokers.forEach(broker => { const opt = document.createElement("option"); opt.value = broker.transporter_name; opt.textContent = broker.transporter_name; brokerSelect.appendChild(opt); }); }) .catch(error => console.error('Error:', error)); }); document.getElementById("driver_name").addEventListener("change", function() { const driverId = this.value; fetch("get_driver_mobile.php?driver_id=" + driverId) .then(response => response.json()) .then(data => { document.getElementById("mobile_no").value = data.mobile_no || ''; }) .catch(error => { console.error("Error fetching driver mobile:", error); }); }); // grab the inputs const valueInput = document.getElementById('value'); const loadInput = document.getElementById('loading_expenses'); const officeInput = document.getElementById('office_expenses'); const totalInput = document.getElementById('total_cost'); // calculation function function updateTotal() { // parseFloat returns NaN if empty or invalid, so we fallback to 0 const v = parseFloat(valueInput.value) || 0; const l = parseFloat(loadInput.value) || 0; const o = parseFloat(officeInput.value) || 0; const sum = v + l + o; // fix to 2 decimals (optional) totalInput.value = sum.toFixed(2); } // listen for changes on each field [valueInput, loadInput, officeInput].forEach(el => { el.addEventListener('input', updateTotal); }); // initialize on page load document.addEventListener('DOMContentLoaded', updateTotal); const soldValue = document.getElementById('sold_value'); const unloading = document.getElementById('unloading_expenses'); const office = document.getElementById('office_expenses'); const road = document.getElementById('road_expenses'); const parking = document.getElementById('parking_charge'); const total = document.getElementById('del_total_cost'); function calculateTotal() { const values = [ parseFloat(soldValue.value) || 0, parseFloat(unloading.value) || 0, parseFloat(office.value) || 0, parseFloat(road.value) || 0, parseFloat(parking.value) || 0 ]; const sum = values.reduce((a, b) => a + b, 0); total.value = sum.toFixed(2); } [soldValue, unloading, office, road, parking].forEach(input => { input.addEventListener('input', calculateTotal); }); document.addEventListener('DOMContentLoaded', calculateTotal); const totalFairInput = document.getElementById('total_fair'); const advanceFairInput = document.getElementById('advance_fair'); const demorageInput = document.getElementById('demorage'); const balanceInput = document.getElementById('balance_payable'); function updateBalance() { const total = parseFloat(totalFairInput.value) || 0; const advance = parseFloat(advanceFairInput.value) || 0; const demorage = parseFloat(demorageInput.value) || 0; const balance = total - advance + demorage; balanceInput.value = balance.toFixed(2); } [totalFairInput, advanceFairInput, demorageInput].forEach(input => { input.addEventListener('input', updateBalance); }); document.addEventListener('DOMContentLoaded', updateBalance); </script>
| ver. 1.4 |
Github
|
.
| PHP 8.1.32 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка