Add transaction reference input at order page (#837)

* Add transaction reference input at order page

* Add spacer between cards in order details

Co-authored-by: Karolina Kuźniewicz <karolina.kuzniewicz@mirumee.com>
Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com>
This commit is contained in:
Karolka 2020-11-24 17:02:50 +01:00 committed by GitHub
parent ba1c06d999
commit 2970e203ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 1431 additions and 975 deletions

View file

@ -3311,10 +3311,18 @@
"context": "order line total price", "context": "order line total price",
"string": "Total" "string": "Total"
}, },
"src_dot_orders_dot_components_dot_OrderHistory_dot_1154330234": {
"context": "transaction reference",
"string": "Transaction Reference {transactionReference}"
},
"src_dot_orders_dot_components_dot_OrderHistory_dot_1230178536": { "src_dot_orders_dot_components_dot_OrderHistory_dot_1230178536": {
"context": "order history message", "context": "order history message",
"string": "Order address was updated" "string": "Order address was updated"
}, },
"src_dot_orders_dot_components_dot_OrderHistory_dot_1463685940": {
"context": "order history message",
"string": "Order was marked as paid"
},
"src_dot_orders_dot_components_dot_OrderHistory_dot_1521936480": { "src_dot_orders_dot_components_dot_OrderHistory_dot_1521936480": {
"context": "order history message", "context": "order history message",
"string": "Fulfilled {quantity} items" "string": "Fulfilled {quantity} items"
@ -3379,10 +3387,6 @@
"context": "order history message", "context": "order history message",
"string": "Payment was authorized" "string": "Payment was authorized"
}, },
"src_dot_orders_dot_components_dot_OrderHistory_dot_3328124376": {
"context": "order history message",
"string": "Marked order as paid"
},
"src_dot_orders_dot_components_dot_OrderHistory_dot_3453124210": { "src_dot_orders_dot_components_dot_OrderHistory_dot_3453124210": {
"context": "order history message", "context": "order history message",
"string": "Shipping tracking number was sent to customer" "string": "Shipping tracking number was sent to customer"
@ -3512,8 +3516,15 @@
"src_dot_orders_dot_components_dot_OrderList_dot_898333473": { "src_dot_orders_dot_components_dot_OrderList_dot_898333473": {
"string": "No orders found" "string": "No orders found"
}, },
"src_dot_orders_dot_components_dot_OrderMarkAsPaidDialog_dot_2823153104": { "src_dot_orders_dot_components_dot_OrderMarkAsPaidDialog_dot_1739834732": {
"string": "Are you sure you want to mark this order as paid?" "context": "transaction reference",
"string": "Transaction reference"
},
"src_dot_orders_dot_components_dot_OrderMarkAsPaidDialog_dot_1758712563": {
"string": "Please provide a transaction reference using the input below:"
},
"src_dot_orders_dot_components_dot_OrderMarkAsPaidDialog_dot_2105685861": {
"string": "You're going to mark this order as paid."
}, },
"src_dot_orders_dot_components_dot_OrderMarkAsPaidDialog_dot_4196844912": { "src_dot_orders_dot_components_dot_OrderMarkAsPaidDialog_dot_4196844912": {
"context": "dialog header", "context": "dialog header",

View file

@ -2646,7 +2646,7 @@ type Mutation {
orderFulfill(input: OrderFulfillInput!, order: ID): OrderFulfill orderFulfill(input: OrderFulfillInput!, order: ID): OrderFulfill
orderFulfillmentCancel(id: ID!, input: FulfillmentCancelInput!): FulfillmentCancel orderFulfillmentCancel(id: ID!, input: FulfillmentCancelInput!): FulfillmentCancel
orderFulfillmentUpdateTracking(id: ID!, input: FulfillmentUpdateTrackingInput!): FulfillmentUpdateTracking orderFulfillmentUpdateTracking(id: ID!, input: FulfillmentUpdateTrackingInput!): FulfillmentUpdateTracking
orderMarkAsPaid(id: ID!): OrderMarkAsPaid orderMarkAsPaid(id: ID!, transactionReference: String): OrderMarkAsPaid
orderRefund(amount: PositiveDecimal!, id: ID!): OrderRefund orderRefund(amount: PositiveDecimal!, id: ID!): OrderRefund
orderUpdate(id: ID!, input: OrderUpdateInput!): OrderUpdate orderUpdate(id: ID!, input: OrderUpdateInput!): OrderUpdate
orderUpdateShipping(order: ID!, input: OrderUpdateShippingInput): OrderUpdateShipping orderUpdateShipping(order: ID!, input: OrderUpdateShippingInput): OrderUpdateShipping
@ -2962,6 +2962,7 @@ type OrderEvent implements Node {
lines: [OrderEventOrderLineObject] lines: [OrderEventOrderLineObject]
fulfilledItems: [FulfillmentLine] fulfilledItems: [FulfillmentLine]
warehouse: Warehouse warehouse: Warehouse
transactionReference: String
} }
type OrderEventCountableConnection { type OrderEventCountableConnection {

View file

@ -10,6 +10,15 @@ import { DateTime } from "../Date";
const useStyles = makeStyles( const useStyles = makeStyles(
theme => ({ theme => ({
container: {
alignItems: "center",
display: "flex",
flexDirection: "column",
justifyContent: "space-between",
marginBottom: theme.spacing(),
marginLeft: theme.spacing(3),
width: "100%"
},
date: { date: {
color: theme.typography.caption.color color: theme.typography.caption.color
}, },
@ -31,8 +40,6 @@ const useStyles = makeStyles(
alignItems: "center", alignItems: "center",
display: "flex", display: "flex",
justifyContent: "space-between", justifyContent: "space-between",
marginBottom: theme.spacing(),
marginLeft: theme.spacing(3),
width: "100%" width: "100%"
}, },
panel: { panel: {
@ -57,6 +64,11 @@ const useStyles = makeStyles(
marginBottom: theme.spacing(3), marginBottom: theme.spacing(3),
position: "relative", position: "relative",
width: "100%" width: "100%"
},
secondaryTitle: {
color: "#9e9e9e",
fontSize: 14,
marginTop: theme.spacing(2)
} }
}), }),
{ name: "TimelineEvent" } { name: "TimelineEvent" }
@ -65,11 +77,12 @@ const useStyles = makeStyles(
interface TimelineEventProps { interface TimelineEventProps {
children?: React.ReactNode; children?: React.ReactNode;
date: string; date: string;
secondaryTitle?: string;
title: string; title: string;
} }
export const TimelineEvent: React.FC<TimelineEventProps> = props => { export const TimelineEvent: React.FC<TimelineEventProps> = props => {
const { children, date, title } = props; const { children, date, secondaryTitle, title } = props;
const classes = useStyles(props); const classes = useStyles(props);
@ -87,11 +100,20 @@ export const TimelineEvent: React.FC<TimelineEventProps> = props => {
</ExpansionPanelDetails> </ExpansionPanelDetails>
</ExpansionPanel> </ExpansionPanel>
) : ( ) : (
<div className={classes.noExpander}> <div className={classes.container}>
<Typography>{title}</Typography> <div className={classes.noExpander}>
<Typography className={classes.date}> <Typography>{title}</Typography>
<DateTime date={date} /> <Typography className={classes.date}>
</Typography> <DateTime date={date} />
</Typography>
</div>
{secondaryTitle && (
<div className={classes.noExpander}>
<Typography className={classes.secondaryTitle}>
{secondaryTitle}
</Typography>
</div>
)}
</div> </div>
)} )}
</div> </div>

View file

@ -13,6 +13,7 @@ export const fragmentOrderEvent = gql`
invoiceNumber invoiceNumber
message message
quantity quantity
transactionReference
type type
user { user {
id id
@ -171,5 +172,6 @@ export const fragmentOrderDetails = gql`
name name
currencyCode currencyCode
} }
isPaid
} }
`; `;

View file

@ -58,6 +58,7 @@ export interface OrderDetailsFragment_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderDetailsFragment_events_user | null; user: OrderDetailsFragment_events_user | null;
} }
@ -320,4 +321,5 @@ export interface OrderDetailsFragment {
discount: OrderDetailsFragment_discount | null; discount: OrderDetailsFragment_discount | null;
invoices: (OrderDetailsFragment_invoices | null)[] | null; invoices: (OrderDetailsFragment_invoices | null)[] | null;
channel: OrderDetailsFragment_channel; channel: OrderDetailsFragment_channel;
isPaid: boolean | null;
} }

View file

@ -24,6 +24,7 @@ export interface OrderEventFragment {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderEventFragment_user | null; user: OrderEventFragment_user | null;
} }

View file

@ -213,11 +213,9 @@ const OrderDetailsPage: React.FC<OrderDetailsPageProps> = props => {
onRefund={onPaymentRefund} onRefund={onPaymentRefund}
onVoid={onPaymentVoid} onVoid={onPaymentVoid}
/> />
<CardSpacer />
<Metadata data={data} onChange={changeMetadata} /> <Metadata data={data} onChange={changeMetadata} />
<OrderHistory <OrderHistory history={order?.events} onNoteAdd={onNoteAdd} />
history={maybe(() => order.events)}
onNoteAdd={onNoteAdd}
/>
</div> </div>
<div> <div>
<OrderCustomer <OrderCustomer

View file

@ -166,7 +166,7 @@ const getEventMessage = (event: OrderDetails_order_events, intl: IntlShape) => {
}); });
case OrderEventsEnum.ORDER_MARKED_AS_PAID: case OrderEventsEnum.ORDER_MARKED_AS_PAID:
return intl.formatMessage({ return intl.formatMessage({
defaultMessage: "Marked order as paid", defaultMessage: "Order was marked as paid",
description: "order history message" description: "order history message"
}); });
case OrderEventsEnum.OTHER: case OrderEventsEnum.OTHER:
@ -288,6 +288,23 @@ const OrderHistory: React.FC<OrderHistoryProps> = props => {
/> />
); );
} }
if (event.type === OrderEventsEnum.ORDER_MARKED_AS_PAID) {
return (
<TimelineEvent
date={event.date}
title={getEventMessage(event, intl)}
secondaryTitle={intl.formatMessage(
{
defaultMessage:
"Transaction Reference {transactionReference}",
description: "transaction reference"
},
{ transactionReference: event.transactionReference }
)}
key={event.id}
/>
);
}
return ( return (
<TimelineEvent <TimelineEvent
date={event.date} date={event.date}

View file

@ -1,4 +1,5 @@
import DialogContentText from "@material-ui/core/DialogContentText"; import DialogContentText from "@material-ui/core/DialogContentText";
import TextField from "@material-ui/core/TextField";
import ActionDialog from "@saleor/components/ActionDialog"; import ActionDialog from "@saleor/components/ActionDialog";
import { ConfirmButtonTransitionState } from "@saleor/components/ConfirmButton"; import { ConfirmButtonTransitionState } from "@saleor/components/ConfirmButton";
import FormSpacer from "@saleor/components/FormSpacer"; import FormSpacer from "@saleor/components/FormSpacer";
@ -12,16 +13,20 @@ export interface OrderMarkAsPaidDialogProps {
confirmButtonState: ConfirmButtonTransitionState; confirmButtonState: ConfirmButtonTransitionState;
errors: OrderErrorFragment[]; errors: OrderErrorFragment[];
open: boolean; open: boolean;
transactionReference: string;
onClose: () => void; onClose: () => void;
onConfirm: () => void; onConfirm: () => void;
handleTransactionReference: (e: React.ChangeEvent<HTMLInputElement>) => void;
} }
const OrderMarkAsPaidDialog: React.FC<OrderMarkAsPaidDialogProps> = ({ const OrderMarkAsPaidDialog: React.FC<OrderMarkAsPaidDialogProps> = ({
confirmButtonState, confirmButtonState,
errors: apiErrors, errors: apiErrors,
handleTransactionReference,
onClose, onClose,
onConfirm, onConfirm,
open open,
transactionReference
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
const errors = useModalDialogErrors(apiErrors, open); const errors = useModalDialogErrors(apiErrors, open);
@ -38,8 +43,20 @@ const OrderMarkAsPaidDialog: React.FC<OrderMarkAsPaidDialogProps> = ({
onConfirm={onConfirm} onConfirm={onConfirm}
> >
<DialogContentText> <DialogContentText>
<FormattedMessage defaultMessage="Are you sure you want to mark this order as paid?" /> <FormattedMessage defaultMessage="You're going to mark this order as paid." />
<br />
<FormattedMessage defaultMessage="Please provide a transaction reference using the input below:" />
</DialogContentText> </DialogContentText>
<TextField
fullWidth
name="transactionReference"
label={intl.formatMessage({
defaultMessage: "Transaction reference",
description: "transaction reference"
})}
value={transactionReference}
onChange={handleTransactionReference}
/>
{errors.length > 0 && ( {errors.length > 0 && (
<> <>
<FormSpacer /> <FormSpacer />

View file

@ -832,6 +832,7 @@ export const order = (placeholder: string): OrderDetails_order => ({
invoiceNumber: null, invoiceNumber: null,
message: null, message: null,
quantity: 1, quantity: 1,
transactionReference: "123",
type: OrderEventsEnum.FULFILLMENT_FULFILLED_ITEMS, type: OrderEventsEnum.FULFILLMENT_FULFILLED_ITEMS,
user: { user: {
__typename: "User", __typename: "User",
@ -849,6 +850,7 @@ export const order = (placeholder: string): OrderDetails_order => ({
invoiceNumber: null, invoiceNumber: null,
message: "This is note", message: "This is note",
quantity: null, quantity: null,
transactionReference: "124",
type: OrderEventsEnum.NOTE_ADDED, type: OrderEventsEnum.NOTE_ADDED,
user: null user: null
}, },
@ -862,6 +864,7 @@ export const order = (placeholder: string): OrderDetails_order => ({
invoiceNumber: null, invoiceNumber: null,
message: "This is note", message: "This is note",
quantity: null, quantity: null,
transactionReference: "125",
type: OrderEventsEnum.NOTE_ADDED, type: OrderEventsEnum.NOTE_ADDED,
user: null user: null
}, },
@ -875,6 +878,7 @@ export const order = (placeholder: string): OrderDetails_order => ({
invoiceNumber: null, invoiceNumber: null,
message: "Note from external service", message: "Note from external service",
quantity: null, quantity: null,
transactionReference: "126",
type: OrderEventsEnum.EXTERNAL_SERVICE_NOTIFICATION, type: OrderEventsEnum.EXTERNAL_SERVICE_NOTIFICATION,
user: null user: null
}, },
@ -888,6 +892,7 @@ export const order = (placeholder: string): OrderDetails_order => ({
invoiceNumber: null, invoiceNumber: null,
message: null, message: null,
quantity: null, quantity: null,
transactionReference: "127",
type: OrderEventsEnum.EMAIL_SENT, type: OrderEventsEnum.EMAIL_SENT,
user: null user: null
}, },
@ -901,6 +906,7 @@ export const order = (placeholder: string): OrderDetails_order => ({
invoiceNumber: null, invoiceNumber: null,
message: null, message: null,
quantity: null, quantity: null,
transactionReference: "128",
type: OrderEventsEnum.EMAIL_SENT, type: OrderEventsEnum.EMAIL_SENT,
user: null user: null
}, },
@ -914,6 +920,7 @@ export const order = (placeholder: string): OrderDetails_order => ({
invoiceNumber: null, invoiceNumber: null,
message: null, message: null,
quantity: null, quantity: null,
transactionReference: "129",
type: OrderEventsEnum.PAYMENT_AUTHORIZED, type: OrderEventsEnum.PAYMENT_AUTHORIZED,
user: null user: null
} }
@ -1023,6 +1030,7 @@ export const order = (placeholder: string): OrderDetails_order => ({
url: "invoice1" url: "invoice1"
} }
], ],
isPaid: true,
lines: [ lines: [
{ {
__typename: "OrderLine", __typename: "OrderLine",
@ -1190,6 +1198,7 @@ export const draftOrder = (placeholder: string): OrderDetails_order => ({
url: "invoice1" url: "invoice1"
} }
], ],
isPaid: false,
lines: [ lines: [
{ {
__typename: "OrderLine" as "OrderLine", __typename: "OrderLine" as "OrderLine",

View file

@ -185,8 +185,8 @@ export const TypedOrderVoidMutation = TypedMutation<
const orderMarkAsPaidMutation = gql` const orderMarkAsPaidMutation = gql`
${fragmentOrderDetails} ${fragmentOrderDetails}
${orderErrorFragment} ${orderErrorFragment}
mutation OrderMarkAsPaid($id: ID!) { mutation OrderMarkAsPaid($id: ID!, $transactionReference: String) {
orderMarkAsPaid(id: $id) { orderMarkAsPaid(id: $id, transactionReference: $transactionReference) {
errors: orderErrors { errors: orderErrors {
...OrderErrorFragment ...OrderErrorFragment
} }

View file

@ -66,6 +66,7 @@ export interface FulfillOrder_orderFulfill_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: FulfillOrder_orderFulfill_order_events_user | null; user: FulfillOrder_orderFulfill_order_events_user | null;
} }
@ -328,6 +329,7 @@ export interface FulfillOrder_orderFulfill_order {
discount: FulfillOrder_orderFulfill_order_discount | null; discount: FulfillOrder_orderFulfill_order_discount | null;
invoices: (FulfillOrder_orderFulfill_order_invoices | null)[] | null; invoices: (FulfillOrder_orderFulfill_order_invoices | null)[] | null;
channel: FulfillOrder_orderFulfill_order_channel; channel: FulfillOrder_orderFulfill_order_channel;
isPaid: boolean | null;
} }
export interface FulfillOrder_orderFulfill { export interface FulfillOrder_orderFulfill {

View file

@ -30,6 +30,7 @@ export interface OrderAddNote_orderAddNote_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderAddNote_orderAddNote_order_events_user | null; user: OrderAddNote_orderAddNote_order_events_user | null;
} }

View file

@ -64,6 +64,7 @@ export interface OrderCancel_orderCancel_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderCancel_orderCancel_order_events_user | null; user: OrderCancel_orderCancel_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderCancel_orderCancel_order {
discount: OrderCancel_orderCancel_order_discount | null; discount: OrderCancel_orderCancel_order_discount | null;
invoices: (OrderCancel_orderCancel_order_invoices | null)[] | null; invoices: (OrderCancel_orderCancel_order_invoices | null)[] | null;
channel: OrderCancel_orderCancel_order_channel; channel: OrderCancel_orderCancel_order_channel;
isPaid: boolean | null;
} }
export interface OrderCancel_orderCancel { export interface OrderCancel_orderCancel {

View file

@ -64,6 +64,7 @@ export interface OrderCapture_orderCapture_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderCapture_orderCapture_order_events_user | null; user: OrderCapture_orderCapture_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderCapture_orderCapture_order {
discount: OrderCapture_orderCapture_order_discount | null; discount: OrderCapture_orderCapture_order_discount | null;
invoices: (OrderCapture_orderCapture_order_invoices | null)[] | null; invoices: (OrderCapture_orderCapture_order_invoices | null)[] | null;
channel: OrderCapture_orderCapture_order_channel; channel: OrderCapture_orderCapture_order_channel;
isPaid: boolean | null;
} }
export interface OrderCapture_orderCapture { export interface OrderCapture_orderCapture {

View file

@ -58,6 +58,7 @@ export interface OrderDetails_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderDetails_order_events_user | null; user: OrderDetails_order_events_user | null;
} }
@ -320,6 +321,7 @@ export interface OrderDetails_order {
discount: OrderDetails_order_discount | null; discount: OrderDetails_order_discount | null;
invoices: (OrderDetails_order_invoices | null)[] | null; invoices: (OrderDetails_order_invoices | null)[] | null;
channel: OrderDetails_order_channel; channel: OrderDetails_order_channel;
isPaid: boolean | null;
} }
export interface OrderDetails_shop_countries { export interface OrderDetails_shop_countries {

View file

@ -64,6 +64,7 @@ export interface OrderDraftCancel_draftOrderDelete_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderDraftCancel_draftOrderDelete_order_events_user | null; user: OrderDraftCancel_draftOrderDelete_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderDraftCancel_draftOrderDelete_order {
discount: OrderDraftCancel_draftOrderDelete_order_discount | null; discount: OrderDraftCancel_draftOrderDelete_order_discount | null;
invoices: (OrderDraftCancel_draftOrderDelete_order_invoices | null)[] | null; invoices: (OrderDraftCancel_draftOrderDelete_order_invoices | null)[] | null;
channel: OrderDraftCancel_draftOrderDelete_order_channel; channel: OrderDraftCancel_draftOrderDelete_order_channel;
isPaid: boolean | null;
} }
export interface OrderDraftCancel_draftOrderDelete { export interface OrderDraftCancel_draftOrderDelete {

View file

@ -64,6 +64,7 @@ export interface OrderDraftFinalize_draftOrderComplete_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderDraftFinalize_draftOrderComplete_order_events_user | null; user: OrderDraftFinalize_draftOrderComplete_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderDraftFinalize_draftOrderComplete_order {
discount: OrderDraftFinalize_draftOrderComplete_order_discount | null; discount: OrderDraftFinalize_draftOrderComplete_order_discount | null;
invoices: (OrderDraftFinalize_draftOrderComplete_order_invoices | null)[] | null; invoices: (OrderDraftFinalize_draftOrderComplete_order_invoices | null)[] | null;
channel: OrderDraftFinalize_draftOrderComplete_order_channel; channel: OrderDraftFinalize_draftOrderComplete_order_channel;
isPaid: boolean | null;
} }
export interface OrderDraftFinalize_draftOrderComplete { export interface OrderDraftFinalize_draftOrderComplete {

View file

@ -64,6 +64,7 @@ export interface OrderDraftUpdate_draftOrderUpdate_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderDraftUpdate_draftOrderUpdate_order_events_user | null; user: OrderDraftUpdate_draftOrderUpdate_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderDraftUpdate_draftOrderUpdate_order {
discount: OrderDraftUpdate_draftOrderUpdate_order_discount | null; discount: OrderDraftUpdate_draftOrderUpdate_order_discount | null;
invoices: (OrderDraftUpdate_draftOrderUpdate_order_invoices | null)[] | null; invoices: (OrderDraftUpdate_draftOrderUpdate_order_invoices | null)[] | null;
channel: OrderDraftUpdate_draftOrderUpdate_order_channel; channel: OrderDraftUpdate_draftOrderUpdate_order_channel;
isPaid: boolean | null;
} }
export interface OrderDraftUpdate_draftOrderUpdate { export interface OrderDraftUpdate_draftOrderUpdate {

View file

@ -64,6 +64,7 @@ export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderFulfillmentCancel_orderFulfillmentCancel_order_events_user | null; user: OrderFulfillmentCancel_orderFulfillmentCancel_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderFulfillmentCancel_orderFulfillmentCancel_order {
discount: OrderFulfillmentCancel_orderFulfillmentCancel_order_discount | null; discount: OrderFulfillmentCancel_orderFulfillmentCancel_order_discount | null;
invoices: (OrderFulfillmentCancel_orderFulfillmentCancel_order_invoices | null)[] | null; invoices: (OrderFulfillmentCancel_orderFulfillmentCancel_order_invoices | null)[] | null;
channel: OrderFulfillmentCancel_orderFulfillmentCancel_order_channel; channel: OrderFulfillmentCancel_orderFulfillmentCancel_order_channel;
isPaid: boolean | null;
} }
export interface OrderFulfillmentCancel_orderFulfillmentCancel { export interface OrderFulfillmentCancel_orderFulfillmentCancel {

View file

@ -64,6 +64,7 @@ export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_o
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_events_user | null; user: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_o
discount: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_discount | null; discount: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_discount | null;
invoices: (OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_invoices | null)[] | null; invoices: (OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_invoices | null)[] | null;
channel: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_channel; channel: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_channel;
isPaid: boolean | null;
} }
export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking { export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking {

View file

@ -64,6 +64,7 @@ export interface OrderLineDelete_draftOrderLineDelete_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderLineDelete_draftOrderLineDelete_order_events_user | null; user: OrderLineDelete_draftOrderLineDelete_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderLineDelete_draftOrderLineDelete_order {
discount: OrderLineDelete_draftOrderLineDelete_order_discount | null; discount: OrderLineDelete_draftOrderLineDelete_order_discount | null;
invoices: (OrderLineDelete_draftOrderLineDelete_order_invoices | null)[] | null; invoices: (OrderLineDelete_draftOrderLineDelete_order_invoices | null)[] | null;
channel: OrderLineDelete_draftOrderLineDelete_order_channel; channel: OrderLineDelete_draftOrderLineDelete_order_channel;
isPaid: boolean | null;
} }
export interface OrderLineDelete_draftOrderLineDelete { export interface OrderLineDelete_draftOrderLineDelete {

View file

@ -64,6 +64,7 @@ export interface OrderLineUpdate_draftOrderLineUpdate_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderLineUpdate_draftOrderLineUpdate_order_events_user | null; user: OrderLineUpdate_draftOrderLineUpdate_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderLineUpdate_draftOrderLineUpdate_order {
discount: OrderLineUpdate_draftOrderLineUpdate_order_discount | null; discount: OrderLineUpdate_draftOrderLineUpdate_order_discount | null;
invoices: (OrderLineUpdate_draftOrderLineUpdate_order_invoices | null)[] | null; invoices: (OrderLineUpdate_draftOrderLineUpdate_order_invoices | null)[] | null;
channel: OrderLineUpdate_draftOrderLineUpdate_order_channel; channel: OrderLineUpdate_draftOrderLineUpdate_order_channel;
isPaid: boolean | null;
} }
export interface OrderLineUpdate_draftOrderLineUpdate { export interface OrderLineUpdate_draftOrderLineUpdate {

View file

@ -64,6 +64,7 @@ export interface OrderLinesAdd_draftOrderLinesCreate_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderLinesAdd_draftOrderLinesCreate_order_events_user | null; user: OrderLinesAdd_draftOrderLinesCreate_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderLinesAdd_draftOrderLinesCreate_order {
discount: OrderLinesAdd_draftOrderLinesCreate_order_discount | null; discount: OrderLinesAdd_draftOrderLinesCreate_order_discount | null;
invoices: (OrderLinesAdd_draftOrderLinesCreate_order_invoices | null)[] | null; invoices: (OrderLinesAdd_draftOrderLinesCreate_order_invoices | null)[] | null;
channel: OrderLinesAdd_draftOrderLinesCreate_order_channel; channel: OrderLinesAdd_draftOrderLinesCreate_order_channel;
isPaid: boolean | null;
} }
export interface OrderLinesAdd_draftOrderLinesCreate { export interface OrderLinesAdd_draftOrderLinesCreate {

View file

@ -64,6 +64,7 @@ export interface OrderMarkAsPaid_orderMarkAsPaid_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderMarkAsPaid_orderMarkAsPaid_order_events_user | null; user: OrderMarkAsPaid_orderMarkAsPaid_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderMarkAsPaid_orderMarkAsPaid_order {
discount: OrderMarkAsPaid_orderMarkAsPaid_order_discount | null; discount: OrderMarkAsPaid_orderMarkAsPaid_order_discount | null;
invoices: (OrderMarkAsPaid_orderMarkAsPaid_order_invoices | null)[] | null; invoices: (OrderMarkAsPaid_orderMarkAsPaid_order_invoices | null)[] | null;
channel: OrderMarkAsPaid_orderMarkAsPaid_order_channel; channel: OrderMarkAsPaid_orderMarkAsPaid_order_channel;
isPaid: boolean | null;
} }
export interface OrderMarkAsPaid_orderMarkAsPaid { export interface OrderMarkAsPaid_orderMarkAsPaid {
@ -340,4 +342,5 @@ export interface OrderMarkAsPaid {
export interface OrderMarkAsPaidVariables { export interface OrderMarkAsPaidVariables {
id: string; id: string;
transactionReference?: string | null;
} }

View file

@ -64,6 +64,7 @@ export interface OrderRefund_orderRefund_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderRefund_orderRefund_order_events_user | null; user: OrderRefund_orderRefund_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderRefund_orderRefund_order {
discount: OrderRefund_orderRefund_order_discount | null; discount: OrderRefund_orderRefund_order_discount | null;
invoices: (OrderRefund_orderRefund_order_invoices | null)[] | null; invoices: (OrderRefund_orderRefund_order_invoices | null)[] | null;
channel: OrderRefund_orderRefund_order_channel; channel: OrderRefund_orderRefund_order_channel;
isPaid: boolean | null;
} }
export interface OrderRefund_orderRefund { export interface OrderRefund_orderRefund {

View file

@ -64,6 +64,7 @@ export interface OrderUpdate_orderUpdate_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderUpdate_orderUpdate_order_events_user | null; user: OrderUpdate_orderUpdate_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderUpdate_orderUpdate_order {
discount: OrderUpdate_orderUpdate_order_discount | null; discount: OrderUpdate_orderUpdate_order_discount | null;
invoices: (OrderUpdate_orderUpdate_order_invoices | null)[] | null; invoices: (OrderUpdate_orderUpdate_order_invoices | null)[] | null;
channel: OrderUpdate_orderUpdate_order_channel; channel: OrderUpdate_orderUpdate_order_channel;
isPaid: boolean | null;
} }
export interface OrderUpdate_orderUpdate { export interface OrderUpdate_orderUpdate {

View file

@ -64,6 +64,7 @@ export interface OrderVoid_orderVoid_order_events {
invoiceNumber: string | null; invoiceNumber: string | null;
message: string | null; message: string | null;
quantity: number | null; quantity: number | null;
transactionReference: string | null;
type: OrderEventsEnum | null; type: OrderEventsEnum | null;
user: OrderVoid_orderVoid_order_events_user | null; user: OrderVoid_orderVoid_order_events_user | null;
} }
@ -326,6 +327,7 @@ export interface OrderVoid_orderVoid_order {
discount: OrderVoid_orderVoid_order_discount | null; discount: OrderVoid_orderVoid_order_discount | null;
invoices: (OrderVoid_orderVoid_order_invoices | null)[] | null; invoices: (OrderVoid_orderVoid_order_invoices | null)[] | null;
channel: OrderVoid_orderVoid_order_channel; channel: OrderVoid_orderVoid_order_channel;
isPaid: boolean | null;
} }
export interface OrderVoid_orderVoid { export interface OrderVoid_orderVoid {

View file

@ -91,6 +91,7 @@ export const OrderDetails: React.FC<OrderDetailsProps> = ({ id, params }) => {
updatePrivateMetadataOpts updatePrivateMetadataOpts
] = usePrivateMetadataUpdate({}); ] = usePrivateMetadataUpdate({});
const notify = useNotifier(); const notify = useNotifier();
const [transactionReference, setTransactionReference] = React.useState("");
const [openModal, closeModal] = createDialogActionHandlers< const [openModal, closeModal] = createDialogActionHandlers<
OrderUrlDialog, OrderUrlDialog,
@ -325,10 +326,15 @@ export const OrderDetails: React.FC<OrderDetailsProps> = ({ id, params }) => {
onClose={closeModal} onClose={closeModal}
onConfirm={() => onConfirm={() =>
orderPaymentMarkAsPaid.mutate({ orderPaymentMarkAsPaid.mutate({
id id,
transactionReference
}) })
} }
open={params.action === "mark-paid"} open={params.action === "mark-paid"}
transactionReference={transactionReference}
handleTransactionReference={({ target }) =>
setTransactionReference(target.value)
}
/> />
<OrderPaymentVoidDialog <OrderPaymentVoidDialog
confirmButtonState={orderVoid.opts.status} confirmButtonState={orderVoid.opts.status}

File diff suppressed because it is too large Load diff

View file

@ -10,9 +10,11 @@ import Decorator from "../../Decorator";
const props: OrderMarkAsPaidDialogProps = { const props: OrderMarkAsPaidDialogProps = {
confirmButtonState: "default", confirmButtonState: "default",
errors: [], errors: [],
handleTransactionReference: () => undefined,
onClose: () => undefined, onClose: () => undefined,
onConfirm: () => undefined, onConfirm: () => undefined,
open: true open: true,
transactionReference: ""
}; };
storiesOf("Orders / OrderMarkAsPaidDialog", module) storiesOf("Orders / OrderMarkAsPaidDialog", module)