Spaces:
Running
Running
File size: 4,811 Bytes
e2876c9 fff872d e2876c9 fff872d e2876c9 fff872d e2876c9 fff872d e2876c9 fff872d e2876c9 fff872d e2876c9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
document.addEventListener('DOMContentLoaded', function () {
const productForm = document.getElementById('productForm');
const productTable = document.getElementById('productTable').getElementsByTagName('tbody')[0];
const totalSoldElement = document.getElementById('totalSold');
const totalRevenueElement = document.getElementById('totalRevenue');
let totalSold = 0; // Общее количество проданных товаров
let totalRevenue = 0; // Общая выручка
// Загрузка данных из localStorage при загрузке страницы
loadProducts();
loadStats();
// Обработка добавления товара
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));
}
// Функция загрузки статистики из localStorage
function loadStats() {
const stats = JSON.parse(localStorage.getItem('stats')) || { totalSold: 0, totalRevenue: 0 };
totalSold = stats.totalSold;
totalRevenue = stats.totalRevenue;
updateStatsDisplay();
}
// Функция обновления отображения статистики
function updateStatsDisplay() {
totalSoldElement.textContent = totalSold;
totalRevenueElement.textContent = totalRevenue.toFixed(2);
}
// Функция продажи товара
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
totalSold += 1; // Увеличиваем общее количество проданных товаров
totalRevenue += products[productIndex].salePrice; // Увеличиваем общую выручку
// Сохраняем обновленные данные
localStorage.setItem('products', JSON.stringify(products));
localStorage.setItem('stats', JSON.stringify({ totalSold, totalRevenue }));
// Обновляем таблицу и статистику
productTable.innerHTML = '';
loadProducts();
updateStatsDisplay();
} else {
alert('Товар закончился на складе.');
}
};
}); |