Spaces:
Running
Running
Create script.js
Browse files
script.js
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
document.addEventListener('DOMContentLoaded', function () {
|
2 |
+
const productForm = document.getElementById('productForm');
|
3 |
+
const productTable = document.getElementById('productTable').getElementsByTagName('tbody')[0];
|
4 |
+
|
5 |
+
// Загрузка данных из localStorage при загрузке страницы
|
6 |
+
loadProducts();
|
7 |
+
|
8 |
+
// Обработка добавления товара
|
9 |
+
productForm.addEventListener('submit', function (e) {
|
10 |
+
e.preventDefault();
|
11 |
+
|
12 |
+
const productName = document.getElementById('productName').value;
|
13 |
+
const purchasePrice = parseFloat(document.getElementById('purchasePrice').value);
|
14 |
+
const salePrice = parseFloat(document.getElementById('salePrice').value);
|
15 |
+
const quantity = parseInt(document.getElementById('quantity').value);
|
16 |
+
|
17 |
+
if (productName && !isNaN(purchasePrice) && !isNaN(salePrice) && !isNaN(quantity)) {
|
18 |
+
addProduct(productName, purchasePrice, salePrice, quantity);
|
19 |
+
productForm.reset(); // Очистка формы после добавления
|
20 |
+
} else {
|
21 |
+
alert('Пожалуйста, заполните все поля корректно.');
|
22 |
+
}
|
23 |
+
});
|
24 |
+
|
25 |
+
// Функция добавления товара
|
26 |
+
function addProduct(name, purchasePrice, salePrice, quantity) {
|
27 |
+
const product = {
|
28 |
+
id: Date.now(), // Уникальный ID на основе времени
|
29 |
+
name,
|
30 |
+
purchasePrice,
|
31 |
+
salePrice,
|
32 |
+
quantity
|
33 |
+
};
|
34 |
+
|
35 |
+
// Получаем текущие товары из localStorage
|
36 |
+
let products = JSON.parse(localStorage.getItem('products')) || [];
|
37 |
+
products.push(product); // Добавляем новый товар
|
38 |
+
localStorage.setItem('products', JSON.stringify(products)); // Сохраняем в localStorage
|
39 |
+
|
40 |
+
// Добавляем товар в таблицу
|
41 |
+
addProductToTable(product);
|
42 |
+
}
|
43 |
+
|
44 |
+
// Функция добавления товара в таблицу
|
45 |
+
function addProductToTable(product) {
|
46 |
+
const row = productTable.insertRow();
|
47 |
+
row.setAttribute('data-id', product.id);
|
48 |
+
|
49 |
+
row.innerHTML = `
|
50 |
+
<td>${product.name}</td>
|
51 |
+
<td>${product.purchasePrice}</td>
|
52 |
+
<td>${product.salePrice}</td>
|
53 |
+
<td>${product.quantity}</td>
|
54 |
+
<td><button class="sell-btn" onclick="sellProduct(${product.id})">Продать</button></td>
|
55 |
+
`;
|
56 |
+
}
|
57 |
+
|
58 |
+
// Функция загрузки товаров из localStorage
|
59 |
+
function loadProducts() {
|
60 |
+
const products = JSON.parse(localStorage.getItem('products')) || [];
|
61 |
+
products.forEach(product => addProductToTable(product));
|
62 |
+
}
|
63 |
+
|
64 |
+
// Функция продажи товара
|
65 |
+
window.sellProduct = function (productId) {
|
66 |
+
let products = JSON.parse(localStorage.getItem('products')) || [];
|
67 |
+
const productIndex = products.findIndex(p => p.id === productId);
|
68 |
+
|
69 |
+
if (productIndex !== -1 && products[productIndex].quantity > 0) {
|
70 |
+
products[productIndex].quantity -= 1; // Уменьшаем количество на 1
|
71 |
+
localStorage.setItem('products', JSON.stringify(products)); // Обновляем localStorage
|
72 |
+
|
73 |
+
// Обновляем таблицу
|
74 |
+
productTable.innerHTML = '';
|
75 |
+
loadProducts();
|
76 |
+
} else {
|
77 |
+
alert('Товар закончился на складе.');
|
78 |
+
}
|
79 |
+
};
|
80 |
+
});
|