add tto order
This commit is contained in:
@@ -26,17 +26,7 @@ async function OrderConfirmedPage(props: {
|
|||||||
params: Promise<{ orderId: string }>;
|
params: Promise<{ orderId: string }>;
|
||||||
}) {
|
}) {
|
||||||
const params = await props.params;
|
const params = await props.params;
|
||||||
|
const medusaOrder = await retrieveOrder(params.orderId).catch(() => null);
|
||||||
const order = await getAnalysisOrder({
|
|
||||||
analysisOrderId: Number(params.orderId),
|
|
||||||
}).catch(() => null);
|
|
||||||
if (!order) {
|
|
||||||
redirect(pathsConfig.app.myOrders);
|
|
||||||
}
|
|
||||||
|
|
||||||
const medusaOrder = await retrieveOrder(order.medusa_order_id).catch(
|
|
||||||
() => null,
|
|
||||||
);
|
|
||||||
if (!medusaOrder) {
|
if (!medusaOrder) {
|
||||||
redirect(pathsConfig.app.myOrders);
|
redirect(pathsConfig.app.myOrders);
|
||||||
}
|
}
|
||||||
@@ -46,7 +36,12 @@ async function OrderConfirmedPage(props: {
|
|||||||
<PageHeader title={<Trans i18nKey="cart:order.title" />} />
|
<PageHeader title={<Trans i18nKey="cart:order.title" />} />
|
||||||
<Divider />
|
<Divider />
|
||||||
<div className="small:grid-cols-[1fr_360px] grid grid-cols-1 gap-x-40 gap-y-6 lg:px-4">
|
<div className="small:grid-cols-[1fr_360px] grid grid-cols-1 gap-x-40 gap-y-6 lg:px-4">
|
||||||
<OrderDetails order={order} />
|
<OrderDetails
|
||||||
|
order={{
|
||||||
|
id: medusaOrder.id,
|
||||||
|
created_at: medusaOrder.created_at,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
<Divider />
|
<Divider />
|
||||||
<OrderItems medusaOrder={medusaOrder} />
|
<OrderItems medusaOrder={medusaOrder} />
|
||||||
<CartTotals medusaOrder={medusaOrder} />
|
<CartTotals medusaOrder={medusaOrder} />
|
||||||
|
|||||||
@@ -171,9 +171,11 @@ const TimeSlots = ({
|
|||||||
reservationId,
|
reservationId,
|
||||||
newStartTime: timeSlot.StartTime,
|
newStartTime: timeSlot.StartTime,
|
||||||
newServiceId: Number(syncedService.id),
|
newServiceId: Number(syncedService.id),
|
||||||
timeSlot.UserID,
|
newAppointmentUserId: timeSlot.UserID,
|
||||||
timeSlot.SyncUserID,
|
newSyncUserId: timeSlot.SyncUserID,
|
||||||
booking.selectedLocationId ? booking.selectedLocationId : null,
|
newLocationId: booking.selectedLocationId
|
||||||
|
? booking.selectedLocationId
|
||||||
|
: null,
|
||||||
cartId,
|
cartId,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -4,14 +4,18 @@ import { Trans } from '@kit/ui/trans';
|
|||||||
|
|
||||||
import type { AnalysisOrder } from '~/lib/types/order';
|
import type { AnalysisOrder } from '~/lib/types/order';
|
||||||
|
|
||||||
export default function OrderDetails({ order }: { order: AnalysisOrder }) {
|
export default function OrderDetails({
|
||||||
|
order,
|
||||||
|
}: {
|
||||||
|
order: { id: string; created_at: string | Date };
|
||||||
|
}) {
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-col gap-y-2">
|
<div className="flex flex-col gap-y-2">
|
||||||
<div>
|
<div>
|
||||||
<span className="font-bold">
|
<span className="font-bold">
|
||||||
<Trans i18nKey="cart:orderConfirmed.orderNumber" />:{' '}
|
<Trans i18nKey="cart:orderConfirmed.orderNumber" />:{' '}
|
||||||
</span>
|
</span>
|
||||||
<span>{order.medusa_order_id}</span>
|
<span>{order.id}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -64,7 +64,10 @@ export default function OrderBlock({
|
|||||||
items={itemsTtoService}
|
items={itemsTtoService}
|
||||||
title="orders:table.ttoService"
|
title="orders:table.ttoService"
|
||||||
type="ttoService"
|
type="ttoService"
|
||||||
order={{ status: medusaOrderStatus.toUpperCase() }}
|
order={{
|
||||||
|
status: medusaOrderStatus.toUpperCase(),
|
||||||
|
medusaOrderId,
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<OrderItemsTable
|
<OrderItemsTable
|
||||||
|
|||||||
@@ -42,10 +42,12 @@ export default function OrderItemsTable({
|
|||||||
|
|
||||||
const isAnalysisOrder = type === 'analysisOrder';
|
const isAnalysisOrder = type === 'analysisOrder';
|
||||||
|
|
||||||
const openAnalysisResults = async () => {
|
const openDetailedView = async () => {
|
||||||
if (isAnalysisOrder && order?.medusaOrderId && order?.id) {
|
if (isAnalysisOrder && order?.medusaOrderId && order?.id) {
|
||||||
await logAnalysisResultsNavigateAction(order.medusaOrderId);
|
await logAnalysisResultsNavigateAction(order.medusaOrderId);
|
||||||
router.push(`${pathsConfig.app.analysisResults}/${order.id}`);
|
router.push(`${pathsConfig.app.analysisResults}/${order.id}`);
|
||||||
|
} else {
|
||||||
|
router.push(`${pathsConfig.app.myOrders}/${order.medusaOrderId}`);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -88,13 +90,11 @@ export default function OrderItemsTable({
|
|||||||
/>
|
/>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
|
|
||||||
{isAnalysisOrder && (
|
<TableCell className="px-6 text-right">
|
||||||
<TableCell className="px-6 text-right">
|
<Button size="sm" onClick={openDetailedView}>
|
||||||
<Button size="sm" onClick={openAnalysisResults}>
|
<Trans i18nKey="analysis-results:view" />
|
||||||
<Trans i18nKey="analysis-results:view" />
|
</Button>
|
||||||
</Button>
|
</TableCell>
|
||||||
</TableCell>
|
|
||||||
)}
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
))}
|
))}
|
||||||
</TableBody>
|
</TableBody>
|
||||||
|
|||||||
@@ -61,11 +61,6 @@ export const listOrders = async (
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const createTransferRequest = async (
|
export const createTransferRequest = async (
|
||||||
state: {
|
|
||||||
success: boolean;
|
|
||||||
error: string | null;
|
|
||||||
order: HttpTypes.StoreOrder | null;
|
|
||||||
},
|
|
||||||
formData: FormData,
|
formData: FormData,
|
||||||
): Promise<{
|
): Promise<{
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|||||||
Reference in New Issue
Block a user