瀏覽代碼

FIX: finished command and fix the report

gdias 4 月之前
父節點
當前提交
10d6da4969
共有 2 個文件被更改,包括 41 次插入49 次删除
  1. 18 18
      src/lib/component/EndCommand.svelte
  2. 23 31
      src/lib/component/Report.svelte

+ 18 - 18
src/lib/component/EndCommand.svelte

@@ -13,6 +13,7 @@
 	let company = null;
 	let orderId = null;
 	let tableIdNum = null;
+	let selectedPaymentMethod = '';
 
 	if (browser) {
 		token = localStorage.getItem('token');
@@ -23,7 +24,6 @@
 
 	let selectedCategory = null;
 	let isPaymentModalOpen = false;
-	let selectedPaymentMethod = null;
 
 	let orderItems = [];
 	let products = [];
@@ -147,17 +147,18 @@
 		const myHeaders = new Headers();
 		myHeaders.append('Authorization', `Bearer ${token}`);
 		myHeaders.append('Content-Type', 'application/json');
-		await fetch('https://dev2.mixtech.dev.br/order/close', {
+		await fetch('https://dev2.mixtech.dev.br/order/update', {
 			method: 'POST',
 			headers: myHeaders,
 			body: JSON.stringify({
 				company_id: company,
 				order_id: orderId,
-				payment_method: selectedPaymentMethod
+				order_flag: selectedPaymentMethod,
+				status_status: 'Finalizada'
 			})
 		});
 		isPaymentModalOpen = false;
-		goto('/tables');
+		goto('/dashboard/tables');
 	}
 </script>
 
@@ -306,25 +307,24 @@
 
 				<h3 class="mb-3 text-lg font-medium">Forma de Pagamento</h3>
 				<div class="mb-6 grid grid-cols-1 gap-3 sm:grid-cols-2">
-					{#each ['CASH', 'PIX', 'DEBIT', 'CREDIT'] as method}
-						<button
-							class="flex flex-col items-center justify-center rounded-lg border-2 p-4 transition-colors {selectedPaymentMethod ===
+					{#each ['Dinheiro', 'PIX', 'Cartão de Débito', 'Cartão de Crédito'] as method}
+						<label
+							class="flex cursor-pointer flex-col items-center justify-center rounded-lg border-2 p-4 transition-colors {selectedPaymentMethod ===
 							method
 								? 'border-emerald-500 bg-emerald-900/20'
 								: 'border-gray-700 hover:border-gray-600'}"
-							on:click={() => (selectedPaymentMethod = method)}
 						>
-							<span
-								>{method === 'CASH'
-									? 'Dinheiro'
-									: method === 'PIX'
-										? 'Pix'
-										: method === 'DEBIT'
-											? 'Cart\u00e3o de D\u00e9bito'
-											: 'Cart\u00e3o de Cr\u00e9dito'}</span
-							>
-						</button>
+							<input
+								type="radio"
+								bind:group={selectedPaymentMethod}
+								value={method}
+								class="hidden"
+							/>
+							<span>{method}</span>
+						</label>
 					{/each}
+
+					<p>Método selecionado: {selectedPaymentMethod}</p>
 				</div>
 
 				<div class="flex space-x-3">

+ 23 - 31
src/lib/component/Report.svelte

@@ -27,7 +27,9 @@
 		myHeaders.append('Content-Type', 'application/json');
 
 		const raw = JSON.stringify({
-			company_id: company
+			company_id: company,
+			page: 1,
+			limit: 20
 		});
 
 		const requestOptions = {
@@ -38,34 +40,26 @@
 		};
 
 		try {
-			const response = await fetch('https://dev2.mixtech.dev.br/order_item/get', requestOptions);
+			const response = await fetch('https://dev2.mixtech.dev.br/reports/get', requestOptions);
 			const result = await response.json();
 			csvDownload = result;
 			console.log(result);
 
 			if (result.status === 'ok' && result.data) {
-				// Agrupar itens por order_id e transformar em formato de sales
-				const itemsByOrder = result.data.reduce((acc, item) => {
-					const orderId = item.order_id;
-					if (!acc[orderId]) {
-						acc[orderId] = [];
-					}
-					acc[orderId].push({
-						productName: item.product_details.product_name,
-						quantity: 1, // Suposição: quantidade fixa de 1
-						priceAtSale: parseFloat(item.product_details.product_price)
-					});
-					return acc;
-				}, {});
-
-				// Converter para o formato de sales
-				sales = Object.entries(itemsByOrder).map(([orderId, items], index) => ({
-					id: parseInt(orderId),
-					timestamp: new Date().toISOString(), // Data atual como padrão
-					tableId: 1, // Valor fixo como padrão
-					items,
-					totalAmount: items.reduce((sum, item) => sum + item.priceAtSale * item.quantity, 0),
-					paymentMethod: 'CASH' // Valor padrão
+				// Converter o formato do endpoint para o formato de sales
+				sales = result.data.map((order) => ({
+					id: order.order_id,
+					timestamp: order.order_finished_at?.trim()
+						? order.order_finished_at
+						: new Date().toISOString(),
+					tableId: order.table_id,
+					items: order.items.map((item) => ({
+						productName: item.product_name,
+						quantity: 1, // Se o endpoint não informa quantidade, assumimos 1
+						priceAtSale: parseFloat(item.product_price)
+					})),
+					totalAmount: order.items.reduce((sum, item) => sum + parseFloat(item.product_price), 0),
+					paymentMethod: order.order_flag // Já vem como "Dinheiro", "PIX" etc.
 				}));
 			} else {
 				console.error('Erro na resposta da API:', result.msg);
@@ -74,7 +68,6 @@
 			console.error('Erro ao buscar dados:', error);
 		}
 	});
-
 	function exportarCSV() {
 		if (!csvDownload.length) return;
 
@@ -339,7 +332,6 @@
 							</button>
 						</th>
 						<th>Pagamento</th>
-						<th class="text-right">Ações</th>
 					</tr>
 				</thead>
 				<tbody class="divide-y divide-gray-700 bg-[#2C2C2E]">
@@ -369,11 +361,11 @@
 									>{getPaymentMethodName(sale.paymentMethod)}</td
 								>
 								<td class="whitespace-nowrap px-6 py-4 text-right">
-									<button
+									<!-- <button
 										on:click|stopPropagation={() => handleCancelSale(sale.id)}
-										class="rounded-lg p-1.5 text-[#FF3B30] hover:bg-[#FF3B30]/20"
+										class="rounded-lg p-1.5 text-white"
 									>
-									</button>
+									</button> basicamente eh um botao para cancelar o item em especifico-->
 								</td>
 							</tr>
 						{/each}
@@ -411,13 +403,13 @@
 								Pagamento: <span class="text-white">{getPaymentMethodName(sale.paymentMethod)}</span
 								>
 							</div>
-							<div class="mt-2 flex justify-end">
+							<!-- <div class="mt-2 flex justify-end">
 								<button
 									on:click|stopPropagation={() => handleCancelSale(sale.id)}
 									class="rounded-lg p-1.5 text-[#FF3B30] hover:bg-[#FF3B30]/20"
 								>
 								</button>
-							</div>
+							</div> -->
 						</div>
 					{/each}
 				{/if}