Spaces:
Running
Running
document.addEventListener('DOMContentLoaded', function () { | |
const productForm = document.getElementById('productForm'); | |
const productTable = document.getElementById('productTable').getElementsByTagName('tbody')[0]; | |
// Загрузка данных из localStorage при загрузке страницы | |
loadProducts(); | |
// Обработка добавления товара | |
productForm.addEventListener('submit', function (e) { | |
e.preventDefault(); | |
const productName = document.getElementById('productName').value; | |
const purchasePrice = parseFloat(document.getElementById('purchasePrice').value); | |
const salePrice = parseFloat(document.getElementById('salePrice').value); | |
const quantity = parseInt(document.getElementById('quantity').value); | |
if (productName && !isNaN(purchasePrice) && !isNaN(salePrice) && !isNaN(quantity)) { | |
addProduct(productName, purchasePrice, salePrice, quantity); | |
productForm.reset(); // Очистка формы после добавления | |
} else { | |
alert('Пожалуйста, заполните все поля корректно.'); | |
} | |
}); | |
// Функция добавления товара | |
function addProduct(name, purchasePrice, salePrice, quantity) { | |
const product = { | |
id: Date.now(), // Уникальный ID на основе времени | |
name, | |
purchasePrice, | |
salePrice, | |
quantity | |
}; | |
// Получаем текущие товары из localStorage | |
let products = JSON.parse(localStorage.getItem('products')) || []; | |
products.push(product); // Добавляем новый товар | |
localStorage.setItem('products', JSON.stringify(products)); // Сохраняем в localStorage | |
// Добавляем товар в таблицу | |
addProductToTable(product); | |
} | |
// Функция добавления товара в таблицу | |
function addProductToTable(product) { | |
const row = productTable.insertRow(); | |
row.setAttribute('data-id', product.id); | |
row.innerHTML = ` | |
<td>${product.name}</td> | |
<td>${product.purchasePrice}</td> | |
<td>${product.salePrice}</td> | |
<td>${product.quantity}</td> | |
<td><button class="sell-btn" onclick="sellProduct(${product.id})">Продать</button></td> | |
`; | |
} | |
// Функция загрузки товаров из localStorage | |
function loadProducts() { | |
const products = JSON.parse(localStorage.getItem('products')) || []; | |
products.forEach(product => addProductToTable(product)); | |
} | |
// Функция продажи товара | |
window.sellProduct = function (productId) { | |
let products = JSON.parse(localStorage.getItem('products')) || []; | |
const productIndex = products.findIndex(p => p.id === productId); | |
if (productIndex !== -1 && products[productIndex].quantity > 0) { | |
products[productIndex].quantity -= 1; // Уменьшаем количество на 1 | |
localStorage.setItem('products', JSON.stringify(products)); // Обновляем localStorage | |
// Обновляем таблицу | |
productTable.innerHTML = ''; | |
loadProducts(); | |
} else { | |
alert('Товар закончился на складе.'); | |
} | |
}; | |
}); |