Adityadn commited on
Commit
4ed20f5
·
verified ·
1 Parent(s): c6448b0

Upload 7 files

Browse files
Files changed (1) hide show
  1. javascript/search.js +100 -102
javascript/search.js CHANGED
@@ -113,13 +113,19 @@ document.addEventListener("DOMContentLoaded", async function () {
113
  const userData = await getUserData();
114
  const transactions = userData.transactions ? userData.transactions : {};
115
 
116
- if (transactions && Object.keys(transactions).length !== 0) {
117
- const entries = Object.entries(transactions).sort(
118
- (a, b) => {
119
- const parseDateFromKey = (key) => {
120
- const [year, month, day, hour, minute, second, ms] =
121
- key.split("_");
122
- return new Date(
 
 
 
 
 
 
123
  year,
124
  month - 1,
125
  day,
@@ -129,111 +135,103 @@ document.addEventListener("DOMContentLoaded", async function () {
129
  ms
130
  );
131
  };
132
- return parseDateFromKey(b[0]) - parseDateFromKey(a[0]);
133
- }
134
- );
135
-
136
- const filteredTransactions = entries.filter(
137
- ([key, transaction]) => {
138
- const td = formatTransactionDate(key);
139
- const pm = transaction.payment_method;
140
- const total = transaction.total.toString();
141
-
142
- return (
143
- key.includes(transactionQuery) ||
144
- td[0].includes(transactionQuery) ||
145
- td[1].includes(transactionQuery) ||
146
- pm.includes(transactionQuery) ||
147
- total.includes(transactionQuery) ||
148
- Object.values(productCount)
149
- .join(",")
150
- .includes(transactionQuery)
151
- );
152
- }
153
- );
154
 
155
- if (filteredTransactions.length > 0) {
156
- createHeader("Transaksi");
157
 
158
- filteredTransactions.forEach(
159
- ([transactionKey, transaction]) => {
160
- const col = document.createElement("div");
161
- col.className =
162
  "transactions-body col-lg-4 col-md-6 col-sm-12 mt-4";
163
 
164
- const card = document.createElement("div");
165
- card.className = "card h-100";
166
-
167
- const cardBody = document.createElement("div");
168
- cardBody.className = "card-body d-flex flex-column";
169
- cardBody.style.position = "relative";
170
-
171
- let total = 0;
172
-
173
- transaction.products.forEach((product) => {
174
- total += product.price * product.total;
175
- });
176
-
177
- const td = formatTransactionDate(transactionKey);
178
-
179
- let paymentIcon = "";
180
- switch (transaction.payment_method) {
181
- case "bank":
182
- paymentIcon = "bi-building";
183
- break;
184
- case "qr":
185
- paymentIcon = "bi-qr-code";
186
- break;
187
- case "card":
188
- paymentIcon = "bi-credit-card";
189
- break;
190
- default:
191
- paymentIcon = "bi-currency-dollar";
192
- }
193
-
194
- cardBody.innerHTML = `
195
- <div class="payment-icon-bg">
196
- <i class="bi ${paymentIcon}" style="font-size: 2.5rem;"></i>
197
- <span class="m-2">Metode: ${
198
- transaction.payment_method
199
- ? transaction.payment_method
200
- : "N/A"
201
- }</span>
 
 
 
 
 
202
  </div>
203
- <div class="content">
204
- <div class="d-flex justify-content-between align-items-center">
205
- <div class="transaction-total fw-bold">
206
- Total: ${formatRupiah(total)}
207
- </div>
208
- </div>
209
- <div class="d-flex justify-content-between align-items-center mt-auto">
210
- <div class="transaction-date">
211
- Tanggal: ${td[0]} <br> Waktu: ${td[1]}
212
- </div>
213
- </div>
214
  </div>
215
- `;
 
 
216
 
217
- card.appendChild(cardBody);
218
- col.appendChild(card);
219
  resultList.appendChild(col);
220
-
221
- col.addEventListener("click", () => {
222
- window.location.href = `transaction.html?date=${transactionKey}`;
223
- });
224
- }
225
- );
226
- } else {
227
- const messageElem = document.createElement("p");
228
- messageElem.textContent = "Transaksi tidak ditemukan.";
229
- messageElem.className = "text-center";
230
- alert(messageElem.textContent, false);
231
- resultList.appendChild(messageElem);
232
- }
233
  } else {
234
  const messageElem = document.createElement("p");
235
- messageElem.textContent = "Anda belum melakukan transaksi apapun. Silahkan beli produk terlebih dahulu.";
236
- messageElem.className = "text-center";
237
  alert(messageElem.textContent, false);
238
  resultList.appendChild(messageElem);
239
  }
 
113
  const userData = await getUserData();
114
  const transactions = userData.transactions ? userData.transactions : {};
115
 
116
+ if (!transactions && Object.keys(transactions).length === 0) {
117
+ const messageElem = document.createElement("p");
118
+ messageElem.textContent = "Anda belum melakukan transaksi apapun. Silahkan beli produk terlebih dahulu.";
119
+ messageElem.className = "text-center";
120
+ resultList.appendChild(messageElem);
121
+ alert(messageElem.textContent, false);
122
+ }
123
+
124
+ const entries = Object.entries(transactions).sort(
125
+ (a, b) => {
126
+ const parseDateFromKey = (key) => {
127
+ const [year, month, day, hour, minute, second, ms] = key.split("_");
128
+ return new Date(
129
  year,
130
  month - 1,
131
  day,
 
135
  ms
136
  );
137
  };
138
+ return parseDateFromKey(b[0]) - parseDateFromKey(a[0]);
139
+ }
140
+ );
141
+
142
+ const filteredTransactions = entries.filter(
143
+ ([key, transaction]) => {
144
+ const td = formatTransactionDate(key);
145
+ const pm = transaction.payment_method;
146
+ const total = transaction.total.toString();
147
+
148
+ return (
149
+ key.includes(transactionQuery) ||
150
+ td[0].includes(transactionQuery) ||
151
+ td[1].includes(transactionQuery) ||
152
+ pm.includes(transactionQuery) ||
153
+ total.includes(transactionQuery) ||
154
+ Object.values(productCount)
155
+ .join(",")
156
+ .includes(transactionQuery)
157
+ );
158
+ }
159
+ );
160
 
161
+ if (filteredTransactions.length > 0) {
162
+ createHeader("Transaksi");
163
 
164
+ filteredTransactions.forEach(
165
+ ([transactionKey, transaction]) => {
166
+ const col = document.createElement("div");
167
+ col.className =
168
  "transactions-body col-lg-4 col-md-6 col-sm-12 mt-4";
169
 
170
+ const card = document.createElement("div");
171
+ card.className = "card h-100";
172
+
173
+ const cardBody = document.createElement("div");
174
+ cardBody.className = "card-body d-flex flex-column";
175
+ cardBody.style.position = "relative";
176
+
177
+ let total = 0;
178
+
179
+ transaction.products.forEach((product) => {
180
+ total += product.price * product.total;
181
+ });
182
+
183
+ const td = formatTransactionDate(transactionKey);
184
+
185
+ let paymentIcon = "";
186
+ switch (transaction.payment_method) {
187
+ case "bank":
188
+ paymentIcon = "bi-building";
189
+ break;
190
+ case "qr":
191
+ paymentIcon = "bi-qr-code";
192
+ break;
193
+ case "card":
194
+ paymentIcon = "bi-credit-card";
195
+ break;
196
+ default:
197
+ paymentIcon = "bi-currency-dollar";
198
+ }
199
+
200
+ cardBody.innerHTML = `
201
+ <div class="payment-icon-bg">
202
+ <i class="bi ${paymentIcon}" style="font-size: 2.5rem;"></i>
203
+ <span class="m-2">Metode: ${
204
+ transaction.payment_method
205
+ ? transaction.payment_method
206
+ : "N/A"
207
+ }</span>
208
+ </div>
209
+ <div class="content">
210
+ <div class="d-flex justify-content-between align-items-center">
211
+ <div class="transaction-total fw-bold">
212
+ Total: ${formatRupiah(total)}
213
  </div>
214
+ </div>
215
+ <div class="d-flex justify-content-between align-items-center mt-auto">
216
+ <div class="transaction-date">
217
+ Tanggal: ${td[0]} <br> Waktu: ${td[1]}
 
 
 
 
 
 
 
218
  </div>
219
+ </div>
220
+ </div>
221
+ `;
222
 
223
+ card.appendChild(cardBody);
224
+ col.appendChild(card);
225
  resultList.appendChild(col);
226
+ col.addEventListener("click", () => {
227
+ window.location.href = `transaction.html?date=${transactionKey}`;
228
+ });
229
+ }
230
+ );
 
 
 
 
 
 
 
 
231
  } else {
232
  const messageElem = document.createElement("p");
233
+ messageElem.textContent = "Transaksi tidak ditemukan.";
234
+ messageElem.className = "text-center";
235
  alert(messageElem.textContent, false);
236
  resultList.appendChild(messageElem);
237
  }