diff --git a/locale/defaultMessages.json b/locale/defaultMessages.json index 796678ae6..bafa10e42 100644 --- a/locale/defaultMessages.json +++ b/locale/defaultMessages.json @@ -70,6 +70,10 @@ "context": "draft created from replace event title", "string": "Draft was reissued from order " }, + "event title marked as paid": { + "context": "order marked as paid event title", + "string": "Order was marked as paid by" + }, "event title refunded": { "context": "refunded event title", "string": "Products were refunded by " @@ -3776,6 +3780,10 @@ "context": "order line total price", "string": "Total" }, + "src_dot_orders_dot_components_dot_OrderRefundFulfilledProducts_dot_1097582574": { + "context": "section header returned", + "string": "Fulfillment returned" + }, "src_dot_orders_dot_components_dot_OrderRefundFulfilledProducts_dot_1134347598": { "context": "tabel column header", "string": "Price" @@ -6881,6 +6889,10 @@ "context": "table column header", "string": "Quantity" }, + "transaction reference subtitle": { + "context": "transaction reference subtitle", + "string": "Transaction reference" + }, "voucherDetailsUnassignCategory": { "context": "unassign category from voucher, button", "string": "Unassign" diff --git a/src/orders/components/OrderHistory/ExtendedTimelineEvent.tsx b/src/orders/components/OrderHistory/ExtendedTimelineEvent.tsx index 36bbc5519..c47be5f9b 100644 --- a/src/orders/components/OrderHistory/ExtendedTimelineEvent.tsx +++ b/src/orders/components/OrderHistory/ExtendedTimelineEvent.tsx @@ -78,6 +78,11 @@ export const titles = defineMessages({ defaultMessage: "Products were returned by", description: "returned event title", id: "event title returned" + }, + orderMarkedAsPaid: { + defaultMessage: "Order was marked as paid by", + description: "order marked as paid event title", + id: "event title marked as paid" } }); @@ -96,6 +101,11 @@ export const messages = defineMessages({ defaultMessage: "Shipment was refunded", description: "shipment refund title", id: "shipment refund title" + }, + transactionReference: { + defaultMessage: "Transaction reference", + description: "transaction reference subtitle", + id: "transaction reference subtitle" } }); @@ -115,6 +125,7 @@ const ExtendedTimelineEvent: React.FC = ({ user, lines, amount, + transactionReference, shippingCostsIncluded, relatedOrder } = event; @@ -204,6 +215,19 @@ const ExtendedTimelineEvent: React.FC = ({ )} )} + + {!!transactionReference && ( + <> + + {intl.formatMessage(messages.transactionReference)} + + {transactionReference} + + )} ); }; diff --git a/src/orders/components/OrderHistory/utils.tsx b/src/orders/components/OrderHistory/utils.tsx index 3d1c3030f..c0d166bc5 100644 --- a/src/orders/components/OrderHistory/utils.tsx +++ b/src/orders/components/OrderHistory/utils.tsx @@ -24,7 +24,8 @@ const timelineEventTypes = { OrderEventsEnum.FULFILLMENT_REFUNDED, OrderEventsEnum.FULFILLMENT_REPLACED, OrderEventsEnum.FULFILLMENT_RETURNED, - OrderEventsEnum.DRAFT_CREATED_FROM_REPLACE + OrderEventsEnum.DRAFT_CREATED_FROM_REPLACE, + OrderEventsEnum.ORDER_MARKED_AS_PAID ], linked: [OrderEventsEnum.ORDER_REPLACEMENT_CREATED], note: [OrderEventsEnum.NOTE_ADDED], diff --git a/src/orders/components/OrderRefundFulfilledProducts/OrderRefundFulfilledProducts.tsx b/src/orders/components/OrderRefundFulfilledProducts/OrderRefundFulfilledProducts.tsx index bc464f64b..33cb46f2a 100644 --- a/src/orders/components/OrderRefundFulfilledProducts/OrderRefundFulfilledProducts.tsx +++ b/src/orders/components/OrderRefundFulfilledProducts/OrderRefundFulfilledProducts.tsx @@ -17,6 +17,7 @@ import TableCellAvatar from "@saleor/components/TableCellAvatar"; import { FormsetChange } from "@saleor/hooks/useFormset"; import { renderCollection } from "@saleor/misc"; import { OrderRefundData_order_fulfillments } from "@saleor/orders/types/OrderRefundData"; +import { FulfillmentStatus } from "@saleor/types/globalTypes"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; @@ -91,10 +92,15 @@ const OrderRefundFulfilledProducts: React.FC - {intl.formatMessage({ - defaultMessage: "Fulfillment", - description: "section header" - })} + {fulfillment.status === FulfillmentStatus.RETURNED + ? intl.formatMessage({ + defaultMessage: "Fulfillment returned", + description: "section header returned" + }) + : intl.formatMessage({ + defaultMessage: "Fulfillment", + description: "section header" + })} {fulfillment && ( {`#${orderNumber}-${fulfillment?.fulfillmentOrder}`} diff --git a/src/orders/components/OrderRefundPage/OrderRefundPage.tsx b/src/orders/components/OrderRefundPage/OrderRefundPage.tsx index 676cd399b..7576e2ee8 100644 --- a/src/orders/components/OrderRefundPage/OrderRefundPage.tsx +++ b/src/orders/components/OrderRefundPage/OrderRefundPage.tsx @@ -24,6 +24,11 @@ import OrderRefundForm, { OrderRefundType } from "./form"; +export const refundFulfilledStatuses = [ + FulfillmentStatus.FULFILLED, + FulfillmentStatus.RETURNED +]; + export interface OrderRefundPageProps { order: OrderRefundData_order; defaultType?: OrderRefundType; @@ -48,9 +53,10 @@ const OrderRefundPage: React.FC = props => { const unfulfilledLines = order?.lines.filter( line => line.quantity !== line.quantityFulfilled ); + const fulfilledFulfillemnts = - order?.fulfillments.filter( - fulfillment => fulfillment.status === FulfillmentStatus.FULFILLED + order?.fulfillments.filter(({ status }) => + refundFulfilledStatuses.includes(status) ) || []; return ( diff --git a/src/orders/components/OrderRefundPage/form.tsx b/src/orders/components/OrderRefundPage/form.tsx index 6f95ff7c4..f51e237b1 100644 --- a/src/orders/components/OrderRefundPage/form.tsx +++ b/src/orders/components/OrderRefundPage/form.tsx @@ -4,10 +4,11 @@ import useFormset, { FormsetData } from "@saleor/hooks/useFormset"; import { OrderRefundData_order } from "@saleor/orders/types/OrderRefundData"; -import { FulfillmentStatus } from "@saleor/types/globalTypes"; import handleFormSubmit from "@saleor/utils/handlers/handleFormSubmit"; import React from "react"; +import { refundFulfilledStatuses } from "./OrderRefundPage"; + export enum OrderRefundType { MISCELLANEOUS = "miscellaneous", PRODUCTS = "products" @@ -87,7 +88,7 @@ function useOrderRefundForm( ); const refundedFulfilledProductQuantities = useFormset( order?.fulfillments - .filter(fulfillment => fulfillment.status === FulfillmentStatus.FULFILLED) + .filter(({ status }) => refundFulfilledStatuses.includes(status)) .reduce( (linesQty, fulfillemnt) => linesQty.concat( diff --git a/src/storybook/__snapshots__/Stories.test.ts.snap b/src/storybook/__snapshots__/Stories.test.ts.snap index 3cbf73a2b..2116a822c 100644 --- a/src/storybook/__snapshots__/Stories.test.ts.snap +++ b/src/storybook/__snapshots__/Stories.test.ts.snap @@ -14489,6 +14489,16 @@ exports[`Storyshots Orders / OrderHistory default 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -102510,6 +102520,16 @@ exports[`Storyshots Views / Orders / Order details cancelled 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -104288,6 +104308,16 @@ exports[`Storyshots Views / Orders / Order details default 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -106096,6 +106126,16 @@ exports[`Storyshots Views / Orders / Order details fulfilled 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -108472,6 +108512,16 @@ exports[`Storyshots Views / Orders / Order details no customer note 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -110280,6 +110330,16 @@ exports[`Storyshots Views / Orders / Order details no payment 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -112088,6 +112148,16 @@ exports[`Storyshots Views / Orders / Order details no shipping address 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -113896,6 +113966,16 @@ exports[`Storyshots Views / Orders / Order details partially fulfilled 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -115704,6 +115784,16 @@ exports[`Storyshots Views / Orders / Order details payment confirmed 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -117512,6 +117602,16 @@ exports[`Storyshots Views / Orders / Order details payment error 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -119320,6 +119420,16 @@ exports[`Storyshots Views / Orders / Order details pending payment 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -121128,6 +121238,16 @@ exports[`Storyshots Views / Orders / Order details refunded payment 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -122936,6 +123056,16 @@ exports[`Storyshots Views / Orders / Order details rejected payment 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +
@@ -124744,6 +124874,16 @@ exports[`Storyshots Views / Orders / Order details unfulfilled 1`] = ` > Shipment was refunded +
+ Transaction reference +
+
+ 123 +