Spaces:
Running
Running
Update script.js
Browse files
script.js
CHANGED
@@ -5,7 +5,8 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
5 |
const cartTable = document.getElementById('cartTable').getElementsByTagName('tbody')[0];
|
6 |
const totalSoldElement = document.getElementById('totalSold');
|
7 |
const totalRevenueElement = document.getElementById('totalRevenue');
|
8 |
-
const
|
|
|
9 |
|
10 |
let totalSold = 0; // Общее количество проданных товаров
|
11 |
let totalRevenue = 0; // Общая выручка
|
@@ -47,22 +48,24 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
47 |
}
|
48 |
});
|
49 |
|
50 |
-
// Открытие
|
51 |
productTable.addEventListener('click', function (e) {
|
52 |
const row = e.target.closest('tr');
|
53 |
if (row) {
|
54 |
selectedProductId = parseInt(row.getAttribute('data-id'));
|
55 |
-
|
56 |
-
contextMenu.style.display = 'block';
|
57 |
-
contextMenu.style.top = `${rect.bottom}px`;
|
58 |
-
contextMenu.style.left = `${rect.left}px`;
|
59 |
}
|
60 |
});
|
61 |
|
62 |
-
// Закрытие
|
63 |
-
|
64 |
-
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
66 |
}
|
67 |
});
|
68 |
|
@@ -169,7 +172,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
169 |
} else {
|
170 |
alert('Пожалуйста, введите корректное количество.');
|
171 |
}
|
172 |
-
|
173 |
};
|
174 |
|
175 |
// Обработчик прихода товара
|
@@ -177,72 +180,4 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
177 |
const quantityToAdd = prompt('Введите количество для прихода:');
|
178 |
if (quantityToAdd && !isNaN(quantityToAdd) && quantityToAdd > 0) {
|
179 |
let products = JSON.parse(localStorage.getItem('products')) || [];
|
180 |
-
const productIndex = products.findIndex(p =>
|
181 |
-
|
182 |
-
if (productIndex !== -1) {
|
183 |
-
products[productIndex].quantity += parseInt(quantityToAdd);
|
184 |
-
localStorage.setItem('products', JSON.stringify(products));
|
185 |
-
|
186 |
-
// Обновляем таблицу
|
187 |
-
productTable.innerHTML = '';
|
188 |
-
loadProducts();
|
189 |
-
}
|
190 |
-
} else {
|
191 |
-
alert('Пожалуйста, введите корректное количество.');
|
192 |
-
}
|
193 |
-
contextMenu.style.display = 'none';
|
194 |
-
};
|
195 |
-
|
196 |
-
// Обработчик удаления товара
|
197 |
-
window.handleDeleteProduct = function () {
|
198 |
-
if (confirm('Вы уверены, что хотите удалить этот товар?')) {
|
199 |
-
let products = JSON.parse(localStorage.getItem('products')) || [];
|
200 |
-
products = products.filter(p => p.id !== selectedProductId);
|
201 |
-
localStorage.setItem('products', JSON.stringify(products));
|
202 |
-
|
203 |
-
// Обновляем таблицу
|
204 |
-
productTable.innerHTML = '';
|
205 |
-
loadProducts();
|
206 |
-
}
|
207 |
-
contextMenu.style.display = 'none';
|
208 |
-
};
|
209 |
-
|
210 |
-
// Функция удаления товара из корзины
|
211 |
-
window.removeFromCart = function (productId) {
|
212 |
-
cart = cart.filter(item => item.id !== productId);
|
213 |
-
localStorage.setItem('cart', JSON.stringify(cart));
|
214 |
-
updateCartDisplay();
|
215 |
-
};
|
216 |
-
|
217 |
-
// Функция продажи товаров из корзины
|
218 |
-
window.sellCart = function () {
|
219 |
-
if (cart.length === 0) {
|
220 |
-
alert('Корзина пуста.');
|
221 |
-
return;
|
222 |
-
}
|
223 |
-
|
224 |
-
const products = JSON.parse(localStorage.getItem('products')) || [];
|
225 |
-
|
226 |
-
cart.forEach(cartItem => {
|
227 |
-
const product = products.find(p => p.id === cartItem.id);
|
228 |
-
|
229 |
-
if (product && product.quantity >= cartItem.quantity) {
|
230 |
-
product.quantity -= cartItem.quantity;
|
231 |
-
totalSold += cartItem.quantity;
|
232 |
-
totalRevenue += cartItem.quantity * cartItem.salePrice;
|
233 |
-
} else {
|
234 |
-
alert(`Недостаточно товара "${cartItem.name}" на складе.`);
|
235 |
-
}
|
236 |
-
});
|
237 |
-
|
238 |
-
localStorage.setItem('products', JSON.stringify(products));
|
239 |
-
localStorage.setItem('stats', JSON.stringify({ totalSold, totalRevenue }));
|
240 |
-
localStorage.removeItem('cart');
|
241 |
-
|
242 |
-
cart = [];
|
243 |
-
updateCartDisplay();
|
244 |
-
productTable.innerHTML = '';
|
245 |
-
loadProducts();
|
246 |
-
updateStatsDisplay();
|
247 |
-
};
|
248 |
-
});
|
|
|
5 |
const cartTable = document.getElementById('cartTable').getElementsByTagName('tbody')[0];
|
6 |
const totalSoldElement = document.getElementById('totalSold');
|
7 |
const totalRevenueElement = document.getElementById('totalRevenue');
|
8 |
+
const modal = document.getElementById('modal');
|
9 |
+
const closeModal = document.querySelector('.close');
|
10 |
|
11 |
let totalSold = 0; // Общее количество проданных товаров
|
12 |
let totalRevenue = 0; // Общая выручка
|
|
|
48 |
}
|
49 |
});
|
50 |
|
51 |
+
// Открытие модального окна при клике на товар
|
52 |
productTable.addEventListener('click', function (e) {
|
53 |
const row = e.target.closest('tr');
|
54 |
if (row) {
|
55 |
selectedProductId = parseInt(row.getAttribute('data-id'));
|
56 |
+
modal.style.display = 'flex';
|
|
|
|
|
|
|
57 |
}
|
58 |
});
|
59 |
|
60 |
+
// Закрытие модального окна
|
61 |
+
closeModal.addEventListener('click', function () {
|
62 |
+
modal.style.display = 'none';
|
63 |
+
});
|
64 |
+
|
65 |
+
// Закрытие модального окна при клике вне его
|
66 |
+
window.addEventListener('click', function (e) {
|
67 |
+
if (e.target === modal) {
|
68 |
+
modal.style.display = 'none';
|
69 |
}
|
70 |
});
|
71 |
|
|
|
172 |
} else {
|
173 |
alert('Пожалуйста, введите корректное количество.');
|
174 |
}
|
175 |
+
modal.style.display = 'none';
|
176 |
};
|
177 |
|
178 |
// Обработчик прихода товара
|
|
|
180 |
const quantityToAdd = prompt('Введите количество для прихода:');
|
181 |
if (quantityToAdd && !isNaN(quantityToAdd) && quantityToAdd > 0) {
|
182 |
let products = JSON.parse(localStorage.getItem('products')) || [];
|
183 |
+
const productIndex = products.findIndex(p =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|