Invoice Software

Retail Management System

Inventory Management

Product Name Stock Price Actions

Point of Sale (POS)

Product Quantity Price Total Actions
body { font-family: Arial, sans-serif; background-color: #f5f5f5; margin: 0; padding: 0; } #app { max-width: 1200px; margin: auto; padding: 20px; background-color: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } h1 { text-align: center; color: #333; } h2 { color: #555; } table { width: 100%; border-collapse: collapse; margin-bottom: 20px; } th, td { border: 1px solid #ddd; padding: 8px; text-align: left; } th { background-color: #f2f2f2; } button { background-color: #4CAF50; color: white; padding: 10px 20px; border: none; cursor: pointer; margin: 5px 0; } button:hover { background-color: #45a049; } input { padding: 5px; margin: 5px 0; } let inventory = [ { name: 'Product 1', stock: 10, price: 100 }, { name: 'Product 2', stock: 5, price: 200 } ]; let cart = []; function displayInventory() { const inventoryTable = document.getElementById('inventoryTable').getElementsByTagName('tbody')[0]; inventoryTable.innerHTML = ''; inventory.forEach((item, index) => { let row = inventoryTable.insertRow(); row.insertCell(0).innerText = item.name; row.insertCell(1).innerText = item.stock; row.insertCell(2).innerText = item.price; let actionsCell = row.insertCell(3); let editButton = document.createElement('button'); editButton.innerText = 'Edit'; editButton.onclick = () => editInventoryItem(index); actionsCell.appendChild(editButton); let addButton = document.createElement('button'); addButton.innerText = 'Add to Cart'; addButton.onclick = () => addToCart(item.name); actionsCell.appendChild(addButton); }); } function addInventoryItem() { let newItem = { name: prompt('Enter product name:'), stock: parseInt(prompt('Enter stock quantity:')), price: parseFloat(prompt('Enter price:')) }; if (newItem.name && !isNaN(newItem.stock) && !isNaN(newItem.price)) { inventory.push(newItem); displayInventory(); } } function editInventoryItem(index) { let item = inventory[index]; let newName = prompt('Enter new product name:', item.name); let newStock = parseInt(prompt('Enter new stock quantity:', item.stock)); let newPrice = parseFloat(prompt('Enter new price:', item.price)); if (newName && !isNaN(newStock) && !isNaN(newPrice)) { inventory[index] = { name: newName, stock: newStock, price: newPrice }; displayInventory(); } } function displayPOS() { const posTable = document.getElementById('posTable').getElementsByTagName('tbody')[0]; posTable.innerHTML = ''; cart.forEach((item, index) => { let row = posTable.insertRow(); row.insertCell(0).innerText = item.name; row.insertCell(1).innerText = item.quantity; row.insertCell(2).innerText = item.price; row.insertCell(3).innerText = item.quantity * item.price; let actionsCell = row.insertCell(4); let removeButton = document.createElement('button'); removeButton.innerText = 'Remove'; removeButton.onclick = () => removeFromCart(index); actionsCell.appendChild(removeButton); }); } function addToCart(productName) { let product = inventory.find(item => item.name === productName); if (product) { let cartItem = cart.find(item => item.name === productName); if (cartItem) { cartItem.quantity++; } else { cart.push({ name: product.name, quantity: 1, price: product.price }); } displayPOS(); } } function removeFromCart(index) { cart.splice(index, 1); displayPOS(); } function processTransaction() { // Implement the transaction processing logic here alert('Transaction processed successfully!'); cart = []; displayPOS(); } displayInventory(); displayPOS();

Comments