Aleksmorshen commited on
Commit
2a46e2b
·
verified ·
1 Parent(s): d4bfc99

Update script.js

Browse files
Files changed (1) hide show
  1. script.js +93 -1
script.js CHANGED
@@ -63,4 +63,96 @@ document.addEventListener('DOMContentLoaded', function () {
63
 
64
  // Функция добавления товара в таблицу
65
  function addProductToTable(product) {
66
- const row
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
 
64
  // Функция добавления товара в таблицу
65
  function addProductToTable(product) {
66
+ const row = productTable.insertRow();
67
+ row.setAttribute('data-id', product.id);
68
+
69
+ row.innerHTML = `
70
+ <td>${product.name}</td>
71
+ <td>${product.purchasePrice}</td>
72
+ <td>${product.salePrice}</td>
73
+ <td>${product.quantity}</td>
74
+ <td class="actions">
75
+ <button class="sell-btn" onclick="sellProduct(${product.id})">Продать</button>
76
+ <button class="add-stock-btn" onclick="addStock(${product.id})">Приход</button>
77
+ <button class="delete-btn" onclick="deleteProduct(${product.id})">Удалить</button>
78
+ </td>
79
+ `;
80
+ }
81
+
82
+ // Функция загрузки товаров из localStorage
83
+ function loadProducts() {
84
+ const products = JSON.parse(localStorage.getItem('products')) || [];
85
+ productTable.innerHTML = ''; // Очищаем таблицу перед загрузкой
86
+ products.forEach(product => addProductToTable(product));
87
+ }
88
+
89
+ // Функция загрузки статистики из localStorage
90
+ function loadStats() {
91
+ const stats = JSON.parse(localStorage.getItem('stats')) || { totalSold: 0, totalRevenue: 0 };
92
+ totalSold = stats.totalSold;
93
+ totalRevenue = stats.totalRevenue;
94
+ updateStatsDisplay();
95
+ }
96
+
97
+ // Функция обновления отображения статистики
98
+ function updateStatsDisplay() {
99
+ totalSoldElement.textContent = totalSold;
100
+ totalRevenueElement.textContent = totalRevenue.toFixed(2);
101
+ }
102
+
103
+ // Функция продажи товара
104
+ window.sellProduct = function (productId) {
105
+ let products = JSON.parse(localStorage.getItem('products')) || [];
106
+ const productIndex = products.findIndex(p => p.id === productId);
107
+
108
+ if (productIndex !== -1 && products[productIndex].quantity > 0) {
109
+ products[productIndex].quantity -= 1; // Уменьшаем количество на 1
110
+ totalSold += 1; // Увеличиваем общее количество проданных товаров
111
+ totalRevenue += products[productIndex].salePrice; // Увеличиваем общую выручку
112
+
113
+ // Сохраняем обновленные данные
114
+ localStorage.setItem('products', JSON.stringify(products));
115
+ localStorage.setItem('stats', JSON.stringify({ totalSold, totalRevenue }));
116
+
117
+ // Обновляем таблицу и статистику
118
+ productTable.innerHTML = '';
119
+ loadProducts();
120
+ updateStatsDisplay();
121
+ } else {
122
+ alert('Товар закончился на складе.');
123
+ }
124
+ };
125
+
126
+ // Функция добавления остатков
127
+ window.addStock = function (productId) {
128
+ const quantityToAdd = prompt('Введите количество для прихода:');
129
+ if (quantityToAdd && !isNaN(quantityToAdd) && quantityToAdd > 0) {
130
+ let products = JSON.parse(localStorage.getItem('products')) || [];
131
+ const productIndex = products.findIndex(p => p.id === productId);
132
+
133
+ if (productIndex !== -1) {
134
+ products[productIndex].quantity += parseInt(quantityToAdd);
135
+ localStorage.setItem('products', JSON.stringify(products));
136
+
137
+ // Обновляем таблицу
138
+ productTable.innerHTML = '';
139
+ loadProducts();
140
+ }
141
+ } else {
142
+ alert('Пожалуйста, введите корректное количество.');
143
+ }
144
+ };
145
+
146
+ // Функция удаления товара
147
+ window.deleteProduct = function (productId) {
148
+ if (confirm('Вы уверены, что хотите удалить этот товар?')) {
149
+ let products = JSON.parse(localStorage.getItem('products')) || [];
150
+ products = products.filter(p => p.id !== productId);
151
+ localStorage.setItem('products', JSON.stringify(products));
152
+
153
+ // Обновляем таблицу
154
+ productTable.innerHTML = '';
155
+ loadProducts();
156
+ }
157
+ };
158
+ });