add fields to tto order view

This commit is contained in:
Danel Kungla
2025-10-01 11:55:47 +03:00
parent b967cecb80
commit 8493d0e9ec
15 changed files with 171 additions and 12 deletions

View File

@@ -4,6 +4,7 @@ import CartTotals from '@/app/home/(user)/_components/order/cart-totals';
import OrderDetails from '@/app/home/(user)/_components/order/order-details';
import OrderItems from '@/app/home/(user)/_components/order/order-items';
import { createI18nServerInstance } from '@/lib/i18n/i18n.server';
import { getSupabaseServerClient } from '@/packages/supabase/src/clients/server-client';
import { retrieveOrder } from '@lib/data/orders';
import Divider from '@modules/common/components/divider';
@@ -12,7 +13,6 @@ import { PageBody, PageHeader } from '@kit/ui/page';
import { Trans } from '@kit/ui/trans';
import { withI18n } from '~/lib/i18n/with-i18n';
import { getAnalysisOrder } from '~/lib/services/order.service';
export async function generateMetadata() {
const { t } = await createI18nServerInstance();
@@ -25,11 +25,42 @@ export async function generateMetadata() {
async function OrderConfirmedPage(props: {
params: Promise<{ orderId: string }>;
}) {
const supabaseClient = getSupabaseServerClient();
const params = await props.params;
const medusaOrder = await retrieveOrder(params.orderId).catch(() => null);
if (!medusaOrder) {
redirect(pathsConfig.app.myOrders);
}
const ttoReservationId =
medusaOrder.items &&
(medusaOrder.items.find(
({ metadata }) => !!metadata?.connectedOnlineReservationId,
)?.metadata?.connectedOnlineReservationId as number);
const [{ data: ttoReservation }] = await Promise.all([
ttoReservationId
? await supabaseClient
.schema('medreport')
.from('connected_online_reservation')
.select('*')
.eq('id', ttoReservationId)
.single()
: { data: null },
]);
const [{ data: location }, { data: serviceProvider }] = await Promise.all([
supabaseClient
.schema('medreport')
.from('connected_online_locations')
.select('name,address')
.eq('sync_id', ttoReservation.location_sync_id || 0)
.single(),
supabaseClient
.schema('medreport')
.from('connected_online_providers')
.select('email,phone_number,name')
.eq('id', ttoReservation.clinic_id)
.single(),
]);
return (
<PageBody>
@@ -40,6 +71,8 @@ async function OrderConfirmedPage(props: {
order={{
id: medusaOrder.id,
created_at: medusaOrder.created_at,
location,
serviceProvider,
}}
/>
<Divider />

View File

@@ -66,6 +66,15 @@ async function OrdersPage() {
({ medusa_order_id }) => medusa_order_id === medusaOrder.id,
);
const ttoReservation = ttoOrders.find(({ id }) => {
const connectedOnlineReservationId =
medusaOrder?.items &&
medusaOrder.items.find(
({ metadata }) => !!metadata?.connectedOnlineReservationId,
)?.metadata?.connectedOnlineReservationId;
return id === connectedOnlineReservationId;
});
const medusaOrderItems = medusaOrder.items || [];
const medusaOrderItemsAnalysisPackages = medusaOrderItems.filter(
(item) => item.product_type_id === analysisPackagesTypeId,
@@ -87,6 +96,7 @@ async function OrdersPage() {
<OrderBlock
medusaOrderId={medusaOrder.id}
analysisOrder={analysisOrder}
ttoReservation={ttoReservation}
medusaOrderStatus={medusaOrder.status}
itemsAnalysisPackage={medusaOrderItemsAnalysisPackages}
itemsTtoService={medusaOrderItemsTtoServices}