Petrol Pump Accounting In Excel Sheet Download – Fully Tested
// Render full editable Excel-style tables function renderTables() const container = document.getElementById("excelTableContainer"); if (!container) return;
function getTotalClosingStockValue() return stockData.reduce((sum, st) => sum + (st.closing * st.unitPrice), 0); petrol pump accounting in excel sheet download
// 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>`; if (!container) return
function attachInputEvents() // Sales liters & rate document.querySelectorAll('.sales-lit, .sales-rate').forEach(inp => inp.removeEventListener('input', salesChangeHandler); inp.addEventListener('input', salesChangeHandler); ); // Expenses amount document.querySelectorAll('.exp-amt').forEach(inp => inp.removeEventListener('input', expenseChangeHandler); inp.addEventListener('input', expenseChangeHandler); ); // Stock fields: opening, received, sold, price document.querySelectorAll('.stock-opening, .stock-received, .stock-sold, .stock-price').forEach(inp => inp.removeEventListener('input', stockChangeHandler); inp.addEventListener('input', stockChangeHandler); ); sum + (st.closing * st.unitPrice)
function salesChangeHandler(e)