Aleksmorshen commited on
Commit
e256951
·
verified ·
1 Parent(s): c8eeee8

Update script.js

Browse files
Files changed (1) hide show
  1. script.js +86 -37
script.js CHANGED
@@ -5,13 +5,10 @@ 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 modal = document.getElementById('modal');
9
- const closeModal = document.querySelector('.close');
10
 
11
  let totalSold = 0; // Общее количество проданных товаров
12
  let totalRevenue = 0; // Общая выручка
13
  let cart = []; // Корзина
14
- let selectedProductId = null; // ID выбранного товара
15
 
16
  // Загрузка данных из localStorage при загрузке страницы
17
  loadProducts();
@@ -48,27 +45,6 @@ document.addEventListener('DOMContentLoaded', function () {
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
-
72
  // Функция добавления товара
73
  function addProduct(name, purchasePrice, salePrice, quantity) {
74
  const product = {
@@ -98,6 +74,12 @@ document.addEventListener('DOMContentLoaded', function () {
98
  <td>${product.purchasePrice}</td>
99
  <td>${product.salePrice}</td>
100
  <td>${product.quantity}</td>
 
 
 
 
 
 
101
  `;
102
  }
103
 
@@ -143,24 +125,26 @@ document.addEventListener('DOMContentLoaded', function () {
143
  });
144
  }
145
 
146
- // Обработчик добавления в корзину
147
- window.handleAddToCart = function () {
148
- const quantity = prompt('Введите количество для добавления в корзину:');
149
- if (quantity && !isNaN(quantity) && quantity > 0) {
 
 
150
  const products = JSON.parse(localStorage.getItem('products')) || [];
151
- const product = products.find(p => p.id === selectedProductId);
152
 
153
  if (product && product.quantity >= quantity) {
154
- const cartItem = cart.find(item => item.id === selectedProductId);
155
 
156
  if (cartItem) {
157
- cartItem.quantity += parseInt(quantity);
158
  } else {
159
  cart.push({
160
- id: selectedProductId,
161
  name: product.name,
162
  salePrice: product.salePrice,
163
- quantity: parseInt(quantity)
164
  });
165
  }
166
 
@@ -172,12 +156,77 @@ document.addEventListener('DOMContentLoaded', function () {
172
  } else {
173
  alert('Пожалуйста, введите корректное количество.');
174
  }
175
- modal.style.display = 'none';
176
  };
177
 
178
- // Обработчик прихода товара
179
- window.handleAddStock = function () {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 =>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  const cartTable = document.getElementById('cartTable').getElementsByTagName('tbody')[0];
6
  const totalSoldElement = document.getElementById('totalSold');
7
  const totalRevenueElement = document.getElementById('totalRevenue');
 
 
8
 
9
  let totalSold = 0; // Общее количество проданных товаров
10
  let totalRevenue = 0; // Общая выручка
11
  let cart = []; // Корзина
 
12
 
13
  // Загрузка данных из localStorage при загрузке страницы
14
  loadProducts();
 
45
  }
46
  });
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  // Функция добавления товара
49
  function addProduct(name, purchasePrice, salePrice, quantity) {
50
  const product = {
 
74
  <td>${product.purchasePrice}</td>
75
  <td>${product.salePrice}</td>
76
  <td>${product.quantity}</td>
77
+ <td class="actions">
78
+ <input type="number" min="1" max="${product.quantity}" class="quantity-input" placeholder="Количество">
79
+ <button class="add-to-cart-btn" onclick="addToCart(${product.id})">Добавить в корзину</button>
80
+ <button class="add-stock-btn" onclick="addStock(${product.id})">Приход</button>
81
+ <button class="delete-btn" onclick="deleteProduct(${product.id})">Удалить</button>
82
+ </td>
83
  `;
84
  }
85
 
 
125
  });
126
  }
127
 
128
+ // Функция добавления товара в корзину
129
+ window.addToCart = function (productId) {
130
+ const quantityInput = document.querySelector(`tr[data-id="${productId}"] .quantity-input`);
131
+ const quantity = parseInt(quantityInput.value);
132
+
133
+ if (quantity && quantity > 0) {
134
  const products = JSON.parse(localStorage.getItem('products')) || [];
135
+ const product = products.find(p => p.id === productId);
136
 
137
  if (product && product.quantity >= quantity) {
138
+ const cartItem = cart.find(item => item.id === productId);
139
 
140
  if (cartItem) {
141
+ cartItem.quantity += quantity;
142
  } else {
143
  cart.push({
144
+ id: productId,
145
  name: product.name,
146
  salePrice: product.salePrice,
147
+ quantity: quantity
148
  });
149
  }
150
 
 
156
  } else {
157
  alert('Пожалуйста, введите корректное количество.');
158
  }
 
159
  };
160
 
161
+ // Функция удаления товара из корзины
162
+ window.removeFromCart = function (productId) {
163
+ cart = cart.filter(item => item.id !== productId);
164
+ localStorage.setItem('cart', JSON.stringify(cart));
165
+ updateCartDisplay();
166
+ };
167
+
168
+ // Функция продажи товаров из корзины
169
+ window.sellCart = function () {
170
+ if (cart.length === 0) {
171
+ alert('Корзина пуста.');
172
+ return;
173
+ }
174
+
175
+ const products = JSON.parse(localStorage.getItem('products')) || [];
176
+
177
+ cart.forEach(cartItem => {
178
+ const product = products.find(p => p.id === cartItem.id);
179
+
180
+ if (product && product.quantity >= cartItem.quantity) {
181
+ product.quantity -= cartItem.quantity;
182
+ totalSold += cartItem.quantity;
183
+ totalRevenue += cartItem.quantity * cartItem.salePrice;
184
+ } else {
185
+ alert(`Недостаточно товара "${cartItem.name}" на складе.`);
186
+ }
187
+ });
188
+
189
+ localStorage.setItem('products', JSON.stringify(products));
190
+ localStorage.setItem('stats', JSON.stringify({ totalSold, totalRevenue }));
191
+ localStorage.removeItem('cart');
192
+
193
+ cart = [];
194
+ updateCartDisplay();
195
+ productTable.innerHTML = '';
196
+ loadProducts();
197
+ updateStatsDisplay();
198
+ };
199
+
200
+ // Функция добавления остатков
201
+ window.addStock = function (productId) {
202
  const quantityToAdd = prompt('Введите количество для прихода:');
203
  if (quantityToAdd && !isNaN(quantityToAdd) && quantityToAdd > 0) {
204
  let products = JSON.parse(localStorage.getItem('products')) || [];
205
+ const productIndex = products.findIndex(p => p.id === productId);
206
+
207
+ if (productIndex !== -1) {
208
+ products[productIndex].quantity += parseInt(quantityToAdd);
209
+ localStorage.setItem('products', JSON.stringify(products));
210
+
211
+ // Обновляем таблицу
212
+ productTable.innerHTML = '';
213
+ loadProducts();
214
+ }
215
+ } else {
216
+ alert('Пожалуйста, введите корректное количество.');
217
+ }
218
+ };
219
+
220
+ // Функция удаления товара
221
+ window.deleteProduct = function (productId) {
222
+ if (confirm('Вы уверены, что хотите удалить этот товар?')) {
223
+ let products = JSON.parse(localStorage.getItem('products')) || [];
224
+ products = products.filter(p => p.id !== productId);
225
+ localStorage.setItem('products', JSON.stringify(products));
226
+
227
+ // Обновляем таблицу
228
+ productTable.innerHTML = '';
229
+ loadProducts();
230
+ }
231
+ };
232
+ });