File manager - Edit - /home2/zetasolve/crm.shayantraders.com/pages/billing.html
Back
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="icon" type="image/png" href="../assets/favicon.png"> <title>Billing & Sales - Shayan Food</title> <link rel="stylesheet" href="../styles/index.css"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> </head> <body> <div class="app-container"> <!-- Sidebar Navigation --> <aside class="sidebar"> <div class="logo"> <img src="../assets/logo.png" alt="Shayan Food Logo" class="logo-img"> <p>Inventory Management</p> </div> <nav class="nav-menu"> <a href="../index.html" class="nav-item"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z" /> </svg> <span>Dashboard</span> </a> <a href="inventory.html" class="nav-item"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2zm-5 12H9v-2h6v2zm5-7H4V4h16v3z" /> </svg> <span>Inventory</span> </a> <a href="billing.html" class="nav-item" class="nav-item active"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z" /> </svg> <span>Billing</span> </a> <a href="invoices.html" class="nav-item"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z" /> </svg> <span>Invoices</span> </a> <a href="returns.html" class="nav-item"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-9.83-3.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.11-.25-.25z" /> </svg> <span>Returns</span> </a> <a href="damage_items.html" class="nav-item"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" /> </svg> <span>Damage Items</span> </a> <a href="credit.html" class="nav-item"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z" /> </svg> <span>Credit Ledger</span> </a> <a href="expenses.html" class="nav-item"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z" /> </svg> <span>Expenses</span> </a> <a href="reports.html" class="nav-item" id="reportsLink" style="display: none;"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z" /> </svg> <span>Reports</span> </a> <!-- Admin Link (Dynamically shown) --> <a href="admin.html" class="nav-item" id="adminLink" style="display: none;"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M12 12c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6-1.8C18 6.57 15.35 4 12 4s-6 2.57-6 6.2c0 2.34 1.95 5.44 6 9.14 4.05-3.7 6-6.8 6-9.14zM12 2c4.2 0 8 3.22 8 8.2 0 3.32-2.67 7.25-8 11.8-5.33-4.55-8-8.48-8-11.8C4 5.22 7.8 2 12 2z" /> </svg> <span>Administrator</span> </a> <a href="#" onclick="app.logout(); return false;" class="nav-item" style="margin-top: auto; color: var(--danger); border-top: 1px solid var(--border-color);"> <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z" /> </svg> <span>Logout</span> </a> </nav> </aside> <!-- Main Content --> <main class="main-content"> <header class="page-header"> <h2>Billing & Sales</h2> <div class="header-actions"> <button class="btn btn-secondary" onclick="viewSalesHistory()"> <span>Sales History</span> </button> </div> </header> <div style="display: grid; grid-template-columns: 2fr 1fr; gap: 1.5rem;"> <!-- Left: New Bill Form --> <div class="card"> <h3>New Sale</h3> <form id="billingForm" onsubmit="processSale(event)"> <div class="form-group"> <label>Transaction Date</label> <input type="date" class="form-control" id="transactionDate" required> </div> <div class="form-group"> <label>Customer Name (Optional)</label> <input type="text" class="form-control" id="customerName" placeholder="Walk-in Customer"> </div> <!-- Discount Input (Visible only for authorized users) --> <div class="form-group" id="discountGroup" style="display: none;"> <label>Discount (%)</label> <div style="display: flex; gap: 0.5rem; align-items: center;"> <input type="number" class="form-control" id="discountPercentage" min="0" max="100" step="0.1" placeholder="Enter discount % (0-100)" onchange="updateDiscountAmount()"> <span id="discountAmountDisplay" style="color: var(--success); font-weight: 600; min-width: 100px;"></span> <button type="button" class="btn btn-secondary" onclick="clearDiscount()" style="padding: 0.5rem 0.75rem; font-size: 0.875rem;">Clear</button> </div> <div style="font-size: 0.875rem; color: var(--text-muted); margin-top: 0.25rem;"> Manual discount only - no automatic discounts applied </div> </div> <div class="form-group"> <label>Amount Paid (Cash)</label> <input type="number" class="form-control" id="amountPaid" min="0" step="0.01" placeholder="Enter amount paid by customer"> </div> <hr style="border: none; border-top: 1px solid var(--glass-border); margin: 1.5rem 0;"> <h4 style="margin-bottom: 1rem;">Add Items</h4> <div style="display: grid; grid-template-columns: 2fr 1fr auto; gap: 0.5rem; align-items: end; margin-bottom: 1rem;"> <div class="form-group" style="margin: 0;"> <label>Select Product</label> <select class="form-control" id="skuSelect"> <option value="">Loading products...</option> </select> </div> <div class="form-group" style="margin: 0;"> <label>Quantity</label> <input type="number" class="form-control" id="itemQuantity" min="1" value="1"> </div> <button type="button" class="btn btn-primary" onclick="addItemToCart()" style="height: 42px;"> Add </button> </div> <div id="cartItems" style="margin-top: 1.5rem;"> <p class="text-muted" style="text-align: center; padding: 2rem;">No items added yet</p> </div> <div style="margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--glass-border); display: flex; gap: 0.5rem;"> <button type="button" class="btn btn-secondary" onclick="previewInvoiceFromCart()" style="flex: 1; padding: 1rem; font-size: 1rem;" id="previewInvoiceBtn" disabled> Preview Invoice </button> <button type="submit" class="btn btn-success" style="flex: 1; padding: 1rem; font-size: 1rem;" id="submitBtn" disabled> Complete Sale </button> </div> </form> </div> <!-- Right: Bill Summary --> <div> <div class="card" style="position: sticky; top: 1.5rem;"> <h3>Bill Summary</h3> <div id="billSummary" style="margin-top: 1rem;"> <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--glass-border);"> <span>Items:</span> <strong id="summaryItemCount">0</strong> </div> <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--glass-border);"> <span>Subtotal:</span> <strong id="summarySubtotal">PKR 0</strong> </div> <div style="display: flex; justify-content: space-between; padding: 0.75rem 0; border-bottom: 1px solid var(--glass-border);"> <span>Discount:</span> <strong id="summaryDiscount">PKR 0</strong> </div> <div style="display: flex; justify-content: space-between; padding: 1rem 0; margin-top: 0.5rem;"> <span style="font-size: 1.25rem; font-weight: 600;">Total:</span> <strong id="summaryTotal" style="font-size: 1.5rem; color: var(--danger);">PKR 0</strong> </div> </div> </div> </div> </div> <!-- Sales History Section --> <div id="salesHistorySection" style="display: none; margin-top: 2rem;"> <div class="card"> <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem;"> <h3>Sales History</h3> <button class="btn btn-secondary" onclick="closeSalesHistory()">Close</button> </div> <div style="display: flex; gap: 1rem; margin-bottom: 1rem;"> <div class="form-group" style="margin: 0; flex: 1;"> <label>From Date</label> <input type="date" class="form-control" id="filterStartDate"> </div> <div class="form-group" style="margin: 0; flex: 1;"> <label>To Date</label> <input type="date" class="form-control" id="filterEndDate"> </div> <button class="btn btn-primary" onclick="filterSalesHistory()" style="align-self: flex-end; height: 42px;"> Filter </button> <button class="btn btn-secondary" onclick="exportTransactionsToExcel(document.getElementById('filterStartDate').value, document.getElementById('filterEndDate').value)" style="align-self: flex-end; height: 42px;"> <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 1rem; height: 1rem; vertical-align: middle; margin-right: 0.25rem;"> <path d="M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67l2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z" /> </svg> Export </button> </div> <div class="table-container"> <table> <thead> <tr> <th>Date</th> <th>Customer</th> <th>Total Amount</th> <th>Actions</th> </tr> </thead> <tbody id="salesHistoryBody"> <tr> <td colspan="5" class="loading">Loading sales history...</td> </tr> </tbody> </table> </div> </div> </div> </main> </div> <!-- Transaction Details Modal --> <div class="modal" id="transactionDetailsModal"> <div class="modal-content"> <div class="modal-header"> <h3>Transaction Details</h3> <button class="close-modal" onclick="closeTransactionDetails()">×</button> </div> <div id="transactionDetailsContent"> <p class="loading">Loading...</p> </div> </div> </div> <script src="../scripts/main.js"></script> <script src="../scripts/excel-export.js"></script> <script src="../scripts/billing.js"></script> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 8.2.31 | Generation time: 0.09 |
proxy
|
phpinfo
|
Settings