Spaces:
Running
Running
Update script.js
Browse files
script.js
CHANGED
@@ -48,6 +48,33 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
48 |
}
|
49 |
});
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
// Функция добавления товара
|
52 |
function addProduct(name, purchasePrice, salePrice, quantity, itemsPerPack) {
|
53 |
const product = {
|
@@ -81,9 +108,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
81 |
<td>${product.itemsPerPack}</td>
|
82 |
<td class="actions">
|
83 |
<input type="number" min="1" max="${product.quantity}" class="quantity-input" placeholder="Количество">
|
84 |
-
<button class="add-to-cart-btn"
|
85 |
-
<button class="add-stock-btn"
|
86 |
-
<button class="delete-btn"
|
87 |
</td>
|
88 |
`;
|
89 |
}
|
@@ -122,22 +149,19 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
122 |
cartTable.innerHTML = ''; // Очищаем корзину перед обновлением
|
123 |
cart.forEach(item => {
|
124 |
const row = cartTable.insertRow();
|
|
|
125 |
row.innerHTML = `
|
126 |
<td>${item.name}</td>
|
127 |
<td>${item.quantity}</td>
|
128 |
<td>${item.salePrice}</td>
|
129 |
<td>${item.quantity * item.salePrice}</td>
|
130 |
-
<td><button class="delete-btn"
|
131 |
`;
|
132 |
});
|
133 |
}
|
134 |
|
135 |
// Функция добавления товара в корзину
|
136 |
-
|
137 |
-
const row = document.querySelector(`tr[data-id="${productId}"]`);
|
138 |
-
const quantityInput = row.querySelector('.quantity-input');
|
139 |
-
const quantity = parseInt(quantityInput.value);
|
140 |
-
|
141 |
if (quantity && quantity > 0) {
|
142 |
const products = JSON.parse(localStorage.getItem('products')) || [];
|
143 |
const product = products.find(p => p.id === productId);
|
@@ -165,14 +189,14 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
165 |
} else {
|
166 |
alert('Пожалуйста, введите корректное количество.');
|
167 |
}
|
168 |
-
}
|
169 |
|
170 |
// Функция удаления товара из корзины
|
171 |
-
|
172 |
cart = cart.filter(item => item.id !== productId);
|
173 |
localStorage.setItem('cart', JSON.stringify(cart));
|
174 |
updateCartDisplay();
|
175 |
-
}
|
176 |
|
177 |
// Функция продажи товаров из корзины
|
178 |
window.sellCart = function () {
|
@@ -208,7 +232,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
208 |
};
|
209 |
|
210 |
// Функция добавления остатков
|
211 |
-
|
212 |
const quantityToAdd = prompt('Введите количество для прихода:');
|
213 |
if (quantityToAdd && !isNaN(quantityToAdd) && quantityToAdd > 0) {
|
214 |
let products = JSON.parse(localStorage.getItem('products')) || [];
|
@@ -225,10 +249,10 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
225 |
} else {
|
226 |
alert('Пожалуйста, введите корректное количество.');
|
227 |
}
|
228 |
-
}
|
229 |
|
230 |
// Функция удаления товара
|
231 |
-
|
232 |
if (confirm('Вы уверены, что хотите удалить этот товар?')) {
|
233 |
let products = JSON.parse(localStorage.getItem('products')) || [];
|
234 |
products = products.filter(p => p.id !== productId);
|
@@ -238,5 +262,5 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
238 |
productTable.innerHTML = '';
|
239 |
loadProducts();
|
240 |
}
|
241 |
-
}
|
242 |
});
|
|
|
48 |
}
|
49 |
});
|
50 |
|
51 |
+
// Делегирование событий для кнопок в таблице товаров
|
52 |
+
productTable.addEventListener('click', function (e) {
|
53 |
+
const target = e.target;
|
54 |
+
const row = target.closest('tr');
|
55 |
+
const productId = parseInt(row.getAttribute('data-id'));
|
56 |
+
|
57 |
+
if (target.classList.contains('add-to-cart-btn')) {
|
58 |
+
const quantityInput = row.querySelector('.quantity-input');
|
59 |
+
const quantity = parseInt(quantityInput.value);
|
60 |
+
addToCart(productId, quantity);
|
61 |
+
} else if (target.classList.contains('add-stock-btn')) {
|
62 |
+
addStock(productId);
|
63 |
+
} else if (target.classList.contains('delete-btn')) {
|
64 |
+
deleteProduct(productId);
|
65 |
+
}
|
66 |
+
});
|
67 |
+
|
68 |
+
// Делегирование событий для кнопок в корзине
|
69 |
+
cartTable.addEventListener('click', function (e) {
|
70 |
+
const target = e.target;
|
71 |
+
if (target.classList.contains('delete-btn')) {
|
72 |
+
const row = target.closest('tr');
|
73 |
+
const productId = parseInt(row.getAttribute('data-id'));
|
74 |
+
removeFromCart(productId);
|
75 |
+
}
|
76 |
+
});
|
77 |
+
|
78 |
// Функция добавления товара
|
79 |
function addProduct(name, purchasePrice, salePrice, quantity, itemsPerPack) {
|
80 |
const product = {
|
|
|
108 |
<td>${product.itemsPerPack}</td>
|
109 |
<td class="actions">
|
110 |
<input type="number" min="1" max="${product.quantity}" class="quantity-input" placeholder="Количество">
|
111 |
+
<button class="add-to-cart-btn">Добавить в корзину</button>
|
112 |
+
<button class="add-stock-btn">Приход</button>
|
113 |
+
<button class="delete-btn">Удалить</button>
|
114 |
</td>
|
115 |
`;
|
116 |
}
|
|
|
149 |
cartTable.innerHTML = ''; // Очищаем корзину перед обновлением
|
150 |
cart.forEach(item => {
|
151 |
const row = cartTable.insertRow();
|
152 |
+
row.setAttribute('data-id', item.id);
|
153 |
row.innerHTML = `
|
154 |
<td>${item.name}</td>
|
155 |
<td>${item.quantity}</td>
|
156 |
<td>${item.salePrice}</td>
|
157 |
<td>${item.quantity * item.salePrice}</td>
|
158 |
+
<td><button class="delete-btn">Удалить</button></td>
|
159 |
`;
|
160 |
});
|
161 |
}
|
162 |
|
163 |
// Функция добавления товара в корзину
|
164 |
+
function addToCart(productId, quantity) {
|
|
|
|
|
|
|
|
|
165 |
if (quantity && quantity > 0) {
|
166 |
const products = JSON.parse(localStorage.getItem('products')) || [];
|
167 |
const product = products.find(p => p.id === productId);
|
|
|
189 |
} else {
|
190 |
alert('Пожалуйста, введите корректное количество.');
|
191 |
}
|
192 |
+
}
|
193 |
|
194 |
// Функция удаления товара из корзины
|
195 |
+
function removeFromCart(productId) {
|
196 |
cart = cart.filter(item => item.id !== productId);
|
197 |
localStorage.setItem('cart', JSON.stringify(cart));
|
198 |
updateCartDisplay();
|
199 |
+
}
|
200 |
|
201 |
// Функция продажи товаров из корзины
|
202 |
window.sellCart = function () {
|
|
|
232 |
};
|
233 |
|
234 |
// Функция добавления остатков
|
235 |
+
function addStock(productId) {
|
236 |
const quantityToAdd = prompt('Введите количество для прихода:');
|
237 |
if (quantityToAdd && !isNaN(quantityToAdd) && quantityToAdd > 0) {
|
238 |
let products = JSON.parse(localStorage.getItem('products')) || [];
|
|
|
249 |
} else {
|
250 |
alert('Пожалуйста, введите корректное количество.');
|
251 |
}
|
252 |
+
}
|
253 |
|
254 |
// Функция удаления товара
|
255 |
+
function deleteProduct(productId) {
|
256 |
if (confirm('Вы уверены, что хотите удалить этот товар?')) {
|
257 |
let products = JSON.parse(localStorage.getItem('products')) || [];
|
258 |
products = products.filter(p => p.id !== productId);
|
|
|
262 |
productTable.innerHTML = '';
|
263 |
loadProducts();
|
264 |
}
|
265 |
+
}
|
266 |
});
|