Petrol Pump Accounting In Excel Sheet Download Guide

// 3. Stock Management Table html += `<h3 style="margin:25px 0 5px 0; color:#1e4a2f;">📦 Stock Summary (Liters / Units)</h3>`; html += `<table id="stockTable"><thead><tr><th>Product</th><th>Opening (Ltr)</th><th>Received (Ltr)</th><th>Sold (Ltr)</th><th>Closing (Ltr)</th><th>Unit Price (₹)</th><th>Stock Value (₹)</th><th></th></tr></thead><tbody>`; for (let i = 0; i < stockData.length; i++) let st = stockData[i]; let stockValue = (st.closing * st.unitPrice).toFixed(2); html += `<tr data-type="stock" data-index="$i"> <td style="background:#faf3e0;">$st.product</td> <td><input type="number" step="0.01" class="stock-opening" value="$st.opening" data-idx="$i"></td> <td><input type="number" step="0.01" class="stock-received" value="$st.received" data-idx="$i"></td> <td><input type="number" step="0.01" class="stock-sold" value="$st.sold" data-idx="$i"></td> <td class="stock-closing">$st.closing.toFixed(2)</td> <td><input type="number" step="0.01" class="stock-price" value="$st.unitPrice" data-idx="$i"></td> <td class="stock-value">$stockValue</td> <td><button class="delRowBtn" data-type="stock" data-idx="$i" style="background:#b33;">🗑️</button></td> </tr>`; html += `<tr><td colspan="7"><button id="addStockRowBtn" style="background:#3c8c40;">+ Add Stock Product</button></td><td></td></tr>`; html += `</tbody></table>`;

let salesData = [ product: "Petrol (MS)", liters: 1250, rate: 102.50, amount: 128125 , product: "Diesel (HSD)", liters: 980, rate: 94.80, amount: 92904 , product: "Premium Petrol", liters: 320, rate: 115.00, amount: 36800 , product: "Engine Oil (Lube)", liters: 45, rate: 850, amount: 38250 ]; petrol pump accounting in excel sheet download

function salesChangeHandler(e) 0; let rate = parseFloat(document.querySelector(`.sales-rate[data-idx='$idx']`)?.value) Stock closing = Opening + Received - Sold

function expenseChangeHandler(e) const idx = parseInt(e.target.getAttribute('data-idx')); if (!isNaN(idx)) h3 style="margin:25px 0 5px 0

function attachAddRowButtons() const addSalesBtn = document.getElementById('addSalesRowBtn'); if (addSalesBtn) addSalesBtn.replaceWith(addSalesBtn.cloneNode(true)); document.getElementById('addSalesRowBtn')?.addEventListener('click', () => salesData.push( product: "New Fuel", liters: 0, rate: 100, amount: 0 ); renderTables(); ); const addExpenseBtn = document.getElementById('addExpenseRowBtn'); if (addExpenseBtn) addExpenseBtn.replaceWith(addExpenseBtn.cloneNode(true)); document.getElementById('addExpenseRowBtn')?.addEventListener('click', () => expensesData.push( date: "New Date", category: "Other", amount: 0 ); renderTables(); ); const addStockBtn = document.getElementById('addStockRowBtn'); if (addStockBtn) addStockBtn.replaceWith(addStockBtn.cloneNode(true)); document.getElementById('addStockRowBtn')?.addEventListener('click', () => stockData.push( product: "New Product", opening: 0, received: 0, sold: 0, closing: 0, unitPrice: 100 ); recomputeStock(); renderTables(); );

function getNetProfit() return getTotalSales() - getTotalExpenses();

<div class="excel-table" id="excelTableContainer"> <!-- dynamic table will be injected --> </div> <div class="footer"> * Double-click any cell to edit. Sales & expenses auto update profit. Stock closing = Opening + Received - Sold. </div> </div>