|
@@ -719,18 +719,32 @@ async function handleSavePost() {
|
|
|
} catch (err: any) { toast.error(err.message); }
|
|
} catch (err: any) { toast.error(err.message); }
|
|
|
}
|
|
}
|
|
|
async function handleSaveOrder() {
|
|
async function handleSaveOrder() {
|
|
|
- if (!editingOrder.value) return;
|
|
|
|
|
|
|
+ const order = editingOrder.value;
|
|
|
|
|
+ if (!order) return;
|
|
|
|
|
+
|
|
|
try {
|
|
try {
|
|
|
- await adminUpdateOrder(editingOrder.value.id, orderForm);
|
|
|
|
|
- // Optimistic local update
|
|
|
|
|
- editingOrder.value.invoice_amount = orderForm.total_price;
|
|
|
|
|
- const idx = orders.value.findIndex(o => o.id === editingOrder.value.id);
|
|
|
|
|
- if (idx !== -1) orders.value[idx].invoice_amount = orderForm.total_price;
|
|
|
|
|
|
|
+ await adminUpdateOrder(order.id, orderForm);
|
|
|
|
|
+
|
|
|
|
|
+ // Optimistic local update with safety checks
|
|
|
|
|
+ if (editingOrder.value && editingOrder.value.id === order.id) {
|
|
|
|
|
+ editingOrder.value.invoice_amount = orderForm.total_price;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const idx = orders.value.findIndex(o => o.id === order.id);
|
|
|
|
|
+ if (idx !== -1) {
|
|
|
|
|
+ orders.value[idx].invoice_amount = orderForm.total_price;
|
|
|
|
|
+ orders.value[idx].quantity = orderForm.quantity;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
closeModals();
|
|
closeModals();
|
|
|
- setTimeout(fetchData, 500); // Slight delay to ensure DB consistency
|
|
|
|
|
toast.success("Order updated");
|
|
toast.success("Order updated");
|
|
|
- } catch (err: any) { toast.error(err.message); }
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // Refresh to be sure
|
|
|
|
|
+ setTimeout(fetchData, 300);
|
|
|
|
|
+ } catch (err: any) {
|
|
|
|
|
+ console.error("Save order error:", err);
|
|
|
|
|
+ toast.error(err.message || "Failed to save order");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
async function handleSaveUser() { try { await adminCreateUser(userForm); closeModals(); fetchUsers(); } catch (err: any) { toast.error(err.message); } }
|
|
async function handleSaveUser() { try { await adminCreateUser(userForm); closeModals(); fetchUsers(); } catch (err: any) { toast.error(err.message); } }
|