diff --git a/src/fragments/errors.ts b/src/fragments/errors.ts index a45f97292..36154150f 100644 --- a/src/fragments/errors.ts +++ b/src/fragments/errors.ts @@ -104,3 +104,10 @@ export const webhookErrorFragment = gql` field } `; + +export const invoiceErrorFragment = gql` + fragment InvoiceErrorFragment on InvoiceError { + code + field + } +`; diff --git a/src/fragments/orders.ts b/src/fragments/orders.ts index a1c638adc..b67a2beb0 100644 --- a/src/fragments/orders.ts +++ b/src/fragments/orders.ts @@ -69,6 +69,7 @@ export const fragmentInvoice = gql` number createdAt url + status } `; diff --git a/src/fragments/types/OrderDetailsFragment.ts b/src/fragments/types/OrderDetailsFragment.ts index 433914eca..48fbcb7ae 100644 --- a/src/fragments/types/OrderDetailsFragment.ts +++ b/src/fragments/types/OrderDetailsFragment.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL fragment: OrderDetailsFragment @@ -252,6 +252,7 @@ export interface OrderDetailsFragment_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderDetailsFragment { diff --git a/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx b/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx index f31cfbc57..034b2e035 100644 --- a/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx +++ b/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx @@ -65,6 +65,8 @@ export interface OrderDetailsPageProps extends UserPermissionProps { onNoteAdd(data: HistoryFormData); onProfileView(); onInvoiceClick(invoice: InvoiceFragment); + onInvoiceGenerate(); + onInvoiceSend(invoice: InvoiceFragment); } const OrderDetailsPage: React.FC = (props) => { @@ -85,6 +87,8 @@ const OrderDetailsPage: React.FC = (props) => { onShippingAddressEdit, onProfileView, onInvoiceClick, + onInvoiceGenerate, + onInvoiceSend, } = props; const classes = useStyles(props); @@ -186,6 +190,8 @@ const OrderDetailsPage: React.FC = (props) => { order.customerNote)} /> diff --git a/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx b/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx index 8f95f79fc..003ee2232 100644 --- a/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx +++ b/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx @@ -37,9 +37,9 @@ const useStyles = makeStyles( interface OrderInvoiceListProps { invoices: InvoiceFragment[]; - onInvoiceGenerate?: () => void; - onInvoiceClick?: (invoice: InvoiceFragment) => void; - onInvoiceSend?: (invoice: InvoiceFragment) => void; + onInvoiceGenerate: () => void; + onInvoiceClick: (invoice: InvoiceFragment) => void; + onInvoiceSend: (invoice: InvoiceFragment) => void; } const OrderInvoiceList: React.FC = (props) => { @@ -49,6 +49,10 @@ const OrderInvoiceList: React.FC = (props) => { const intl = useIntl(); + const generatedInvoices = invoices?.filter( + (invoice) => invoice.status === "SUCCESS" + ); + return ( = (props) => { ) } /> - - {!invoices ? ( + + {!generatedInvoices ? ( - ) : !invoices?.length ? ( + ) : !generatedInvoices?.length ? ( @@ -95,7 +101,7 @@ const OrderInvoiceList: React.FC = (props) => { - {invoices?.map((invoice) => ( + {generatedInvoices.map((invoice) => ( ; + orderInvoiceRequest: PartialMutationProviderOutput< + InvoiceRequest, + InvoiceRequestVariables + >; }) => React.ReactNode; onOrderFulfillmentCancel: (data: OrderFulfillmentCancel) => void; onOrderFulfillmentUpdate: (data: OrderFulfillmentUpdateTracking) => void; @@ -145,6 +154,7 @@ interface OrderOperationsProps { onOrderLineDelete: (data: OrderLineDelete) => void; onOrderLinesAdd: (data: OrderLinesAdd) => void; onOrderLineUpdate: (data: OrderLineUpdate) => void; + onInvoiceRequest: (data: InvoiceRequest) => void; } const OrderOperations: React.FC = ({ @@ -164,7 +174,8 @@ const OrderOperations: React.FC = ({ onDraftFinalize, onOrderFulfillmentCancel, onOrderFulfillmentUpdate, - onOrderMarkAsPaid + onOrderMarkAsPaid, + onInvoiceRequest }) => ( {(...orderVoid) => ( @@ -233,58 +244,71 @@ const OrderOperations: React.FC = ({ > {( ...markAsPaid - ) => - children({ - orderAddNote: getMutationProviderData( - ...addNote - ), - orderCancel: getMutationProviderData( - ...orderCancel - ), - orderDraftCancel: getMutationProviderData( - ...cancelDraft - ), - orderDraftFinalize: getMutationProviderData( - ...finalizeDraft - ), - orderDraftUpdate: getMutationProviderData( - ...updateDraft - ), - orderFulfillmentCancel: getMutationProviderData( - ...cancelFulfillment - ), - orderFulfillmentUpdateTracking: getMutationProviderData( - ...updateTrackingNumber - ), - orderLineDelete: getMutationProviderData( - ...deleteOrderLine - ), - orderLineUpdate: getMutationProviderData( - ...updateOrderLine - ), - orderLinesAdd: getMutationProviderData( - ...addOrderLine - ), - orderPaymentCapture: getMutationProviderData( - ...paymentCapture - ), - orderPaymentMarkAsPaid: getMutationProviderData( - ...markAsPaid - ), - orderPaymentRefund: getMutationProviderData( - ...paymentRefund - ), - orderShippingMethodUpdate: getMutationProviderData( - ...updateShippingMethod - ), - orderUpdate: getMutationProviderData( - ...update - ), - orderVoid: getMutationProviderData( - ...orderVoid - ) - }) - } + ) => ( + + {( + ...invoiceRequest + ) => + children({ + orderAddNote: getMutationProviderData( + ...addNote + ), + orderCancel: getMutationProviderData( + ...orderCancel + ), + orderDraftCancel: getMutationProviderData( + ...cancelDraft + ), + orderDraftFinalize: getMutationProviderData( + ...finalizeDraft + ), + orderDraftUpdate: getMutationProviderData( + ...updateDraft + ), + orderFulfillmentCancel: getMutationProviderData( + ...cancelFulfillment + ), + orderFulfillmentUpdateTracking: getMutationProviderData( + ...updateTrackingNumber + ), + orderInvoiceRequest: getMutationProviderData( + ...invoiceRequest + ), + orderLineDelete: getMutationProviderData( + ...deleteOrderLine + ), + orderLineUpdate: getMutationProviderData( + ...updateOrderLine + ), + orderLinesAdd: getMutationProviderData( + ...addOrderLine + ), + orderPaymentCapture: getMutationProviderData( + ...paymentCapture + ), + orderPaymentMarkAsPaid: getMutationProviderData( + ...markAsPaid + ), + orderPaymentRefund: getMutationProviderData( + ...paymentRefund + ), + orderShippingMethodUpdate: getMutationProviderData( + ...updateShippingMethod + ), + orderUpdate: getMutationProviderData( + ...update + ), + orderVoid: getMutationProviderData( + ...orderVoid + ) + }) + } + + )} )} diff --git a/src/orders/mutations.ts b/src/orders/mutations.ts index 3819a5276..48f4456a9 100644 --- a/src/orders/mutations.ts +++ b/src/orders/mutations.ts @@ -1,5 +1,8 @@ import { fragmentAddress } from "@saleor/fragments/address"; -import { orderErrorFragment } from "@saleor/fragments/errors"; +import { + invoiceErrorFragment, + orderErrorFragment +} from "@saleor/fragments/errors"; import { fragmentOrderDetails, fragmentOrderEvent @@ -9,6 +12,10 @@ import gql from "graphql-tag"; import { TypedMutation } from "../mutations"; import { FulfillOrder, FulfillOrderVariables } from "./types/FulfillOrder"; +import { + InvoiceRequest, + InvoiceRequestVariables +} from "./types/InvoiceRequest"; import { OrderAddNote, OrderAddNoteVariables } from "./types/OrderAddNote"; import { OrderCancel, OrderCancelVariables } from "./types/OrderCancel"; import { OrderCapture, OrderCaptureVariables } from "./types/OrderCapture"; @@ -448,3 +455,22 @@ export const useOrderFulfill = makeMutation< FulfillOrder, FulfillOrderVariables >(fulfillOrder); + +const invoiceRequestMutation = gql` + ${invoiceErrorFragment} + ${fragmentInvoice} + mutation InvoiceRequest($orderId: ID!) { + requestInvoice(orderId: $orderId) { + errors: invoiceErrors { + ...InvoiceErrorFragment + } + invoice { + ...InvoiceFragment + } + } + } +`; +export const TypedInvoiceRequestMutation = TypedMutation< + InvoiceRequest, + InvoiceRequestVariables +>(invoiceRequestMutation); diff --git a/src/orders/types/FulfillOrder.ts b/src/orders/types/FulfillOrder.ts index e0b396123..60798da5c 100644 --- a/src/orders/types/FulfillOrder.ts +++ b/src/orders/types/FulfillOrder.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderFulfillInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderFulfillInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: FulfillOrder @@ -260,6 +260,7 @@ export interface FulfillOrder_orderFulfill_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface FulfillOrder_orderFulfill_order { diff --git a/src/orders/types/InvoiceErrorFragment.ts b/src/orders/types/InvoiceErrorFragment.ts new file mode 100644 index 000000000..6f7fdd502 --- /dev/null +++ b/src/orders/types/InvoiceErrorFragment.ts @@ -0,0 +1,15 @@ +/* tslint:disable */ +/* eslint-disable */ +// This file was automatically generated and should not be edited. + +import { InvoiceErrorCode } from "./../../types/globalTypes"; + +// ==================================================== +// GraphQL fragment: InvoiceErrorFragment +// ==================================================== + +export interface InvoiceErrorFragment { + __typename: "InvoiceError"; + code: InvoiceErrorCode; + field: string | null; +} diff --git a/src/orders/types/InvoiceFragment.ts b/src/orders/types/InvoiceFragment.ts index a75d56517..1959df4ab 100644 --- a/src/orders/types/InvoiceFragment.ts +++ b/src/orders/types/InvoiceFragment.ts @@ -2,6 +2,8 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. +import { JobStatusEnum } from "./../../types/globalTypes"; + // ==================================================== // GraphQL fragment: InvoiceFragment // ==================================================== @@ -12,4 +14,5 @@ export interface InvoiceFragment { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } diff --git a/src/orders/types/InvoiceRequest.ts b/src/orders/types/InvoiceRequest.ts new file mode 100644 index 000000000..62befd0fc --- /dev/null +++ b/src/orders/types/InvoiceRequest.ts @@ -0,0 +1,38 @@ +/* tslint:disable */ +/* eslint-disable */ +// This file was automatically generated and should not be edited. + +import { InvoiceErrorCode, JobStatusEnum } from "./../../types/globalTypes"; + +// ==================================================== +// GraphQL mutation operation: InvoiceRequest +// ==================================================== + +export interface InvoiceRequest_requestInvoice_errors { + __typename: "InvoiceError"; + code: InvoiceErrorCode; + field: string | null; +} + +export interface InvoiceRequest_requestInvoice_invoice { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; + status: JobStatusEnum; +} + +export interface InvoiceRequest_requestInvoice { + __typename: "RequestInvoice"; + errors: InvoiceRequest_requestInvoice_errors[]; + invoice: InvoiceRequest_requestInvoice_invoice | null; +} + +export interface InvoiceRequest { + requestInvoice: InvoiceRequest_requestInvoice | null; +} + +export interface InvoiceRequestVariables { + orderId: string; +} diff --git a/src/orders/types/OrderCancel.ts b/src/orders/types/OrderCancel.ts index 75913d2da..ad93b33e3 100644 --- a/src/orders/types/OrderCancel.ts +++ b/src/orders/types/OrderCancel.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderCancel @@ -258,6 +258,7 @@ export interface OrderCancel_orderCancel_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderCancel_orderCancel_order { diff --git a/src/orders/types/OrderCapture.ts b/src/orders/types/OrderCapture.ts index 0fc2cbb9b..fe727a08e 100644 --- a/src/orders/types/OrderCapture.ts +++ b/src/orders/types/OrderCapture.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderCapture @@ -258,6 +258,7 @@ export interface OrderCapture_orderCapture_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderCapture_orderCapture_order { diff --git a/src/orders/types/OrderDetails.ts b/src/orders/types/OrderDetails.ts index 4089a2956..48e16314c 100644 --- a/src/orders/types/OrderDetails.ts +++ b/src/orders/types/OrderDetails.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, WeightUnitsEnum } from "./../../types/globalTypes"; +import { OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum, WeightUnitsEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL query operation: OrderDetails @@ -252,6 +252,7 @@ export interface OrderDetails_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderDetails_order { diff --git a/src/orders/types/OrderDraftCancel.ts b/src/orders/types/OrderDraftCancel.ts index d80ffbf74..3320b9017 100644 --- a/src/orders/types/OrderDraftCancel.ts +++ b/src/orders/types/OrderDraftCancel.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderDraftCancel @@ -258,6 +258,7 @@ export interface OrderDraftCancel_draftOrderDelete_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderDraftCancel_draftOrderDelete_order { diff --git a/src/orders/types/OrderDraftFinalize.ts b/src/orders/types/OrderDraftFinalize.ts index ed71eec2c..db0658998 100644 --- a/src/orders/types/OrderDraftFinalize.ts +++ b/src/orders/types/OrderDraftFinalize.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderDraftFinalize @@ -258,6 +258,7 @@ export interface OrderDraftFinalize_draftOrderComplete_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderDraftFinalize_draftOrderComplete_order { diff --git a/src/orders/types/OrderDraftUpdate.ts b/src/orders/types/OrderDraftUpdate.ts index 5950d7219..ec5873bae 100644 --- a/src/orders/types/OrderDraftUpdate.ts +++ b/src/orders/types/OrderDraftUpdate.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { DraftOrderInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { DraftOrderInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderDraftUpdate @@ -258,6 +258,7 @@ export interface OrderDraftUpdate_draftOrderUpdate_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderDraftUpdate_draftOrderUpdate_order { diff --git a/src/orders/types/OrderFulfillmentCancel.ts b/src/orders/types/OrderFulfillmentCancel.ts index 7e2859f99..276d099b5 100644 --- a/src/orders/types/OrderFulfillmentCancel.ts +++ b/src/orders/types/OrderFulfillmentCancel.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { FulfillmentCancelInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { FulfillmentCancelInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderFulfillmentCancel @@ -258,6 +258,7 @@ export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderFulfillmentCancel_orderFulfillmentCancel_order { diff --git a/src/orders/types/OrderFulfillmentUpdateTracking.ts b/src/orders/types/OrderFulfillmentUpdateTracking.ts index a6090bf49..0652c972d 100644 --- a/src/orders/types/OrderFulfillmentUpdateTracking.ts +++ b/src/orders/types/OrderFulfillmentUpdateTracking.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { FulfillmentUpdateTrackingInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { FulfillmentUpdateTrackingInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderFulfillmentUpdateTracking @@ -258,6 +258,7 @@ export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_o number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order { diff --git a/src/orders/types/OrderLineDelete.ts b/src/orders/types/OrderLineDelete.ts index 828960c5b..e8dcdada6 100644 --- a/src/orders/types/OrderLineDelete.ts +++ b/src/orders/types/OrderLineDelete.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderLineDelete @@ -258,6 +258,7 @@ export interface OrderLineDelete_draftOrderLineDelete_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderLineDelete_draftOrderLineDelete_order { diff --git a/src/orders/types/OrderLineUpdate.ts b/src/orders/types/OrderLineUpdate.ts index 59176d0c0..25db5e22a 100644 --- a/src/orders/types/OrderLineUpdate.ts +++ b/src/orders/types/OrderLineUpdate.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderLineInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderLineInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderLineUpdate @@ -258,6 +258,7 @@ export interface OrderLineUpdate_draftOrderLineUpdate_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderLineUpdate_draftOrderLineUpdate_order { diff --git a/src/orders/types/OrderLinesAdd.ts b/src/orders/types/OrderLinesAdd.ts index f08b11176..75d8d50bc 100644 --- a/src/orders/types/OrderLinesAdd.ts +++ b/src/orders/types/OrderLinesAdd.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderLineCreateInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderLineCreateInput, OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderLinesAdd @@ -258,6 +258,7 @@ export interface OrderLinesAdd_draftOrderLinesCreate_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderLinesAdd_draftOrderLinesCreate_order { diff --git a/src/orders/types/OrderMarkAsPaid.ts b/src/orders/types/OrderMarkAsPaid.ts index e0cc7c827..f9b985df0 100644 --- a/src/orders/types/OrderMarkAsPaid.ts +++ b/src/orders/types/OrderMarkAsPaid.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderMarkAsPaid @@ -258,6 +258,7 @@ export interface OrderMarkAsPaid_orderMarkAsPaid_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderMarkAsPaid_orderMarkAsPaid_order { diff --git a/src/orders/types/OrderRefund.ts b/src/orders/types/OrderRefund.ts index 3f90ae00f..36acf30ac 100644 --- a/src/orders/types/OrderRefund.ts +++ b/src/orders/types/OrderRefund.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderRefund @@ -258,6 +258,7 @@ export interface OrderRefund_orderRefund_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderRefund_orderRefund_order { diff --git a/src/orders/types/OrderVoid.ts b/src/orders/types/OrderVoid.ts index 95f4e6ba7..41c348242 100644 --- a/src/orders/types/OrderVoid.ts +++ b/src/orders/types/OrderVoid.ts @@ -2,7 +2,7 @@ /* eslint-disable */ // This file was automatically generated and should not be edited. -import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes"; +import { OrderErrorCode, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction, JobStatusEnum } from "./../../types/globalTypes"; // ==================================================== // GraphQL mutation operation: OrderVoid @@ -258,6 +258,7 @@ export interface OrderVoid_orderVoid_order_invoices { number: string | null; createdAt: any; url: string | null; + status: JobStatusEnum; } export interface OrderVoid_orderVoid_order { diff --git a/src/orders/views/OrderDetails/index.tsx b/src/orders/views/OrderDetails/index.tsx index 5c915c21e..f17073016 100644 --- a/src/orders/views/OrderDetails/index.tsx +++ b/src/orders/views/OrderDetails/index.tsx @@ -148,6 +148,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { onDraftFinalize={orderMessages.handleDraftFinalize} onDraftCancel={orderMessages.handleDraftCancel} onOrderMarkAsPaid={orderMessages.handleOrderMarkAsPaid} + onInvoiceRequest={() => null} > {({ orderAddNote, @@ -166,6 +167,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { orderDraftCancel, orderDraftFinalize, orderPaymentMarkAsPaid, + orderInvoiceRequest, }) => ( <> {order?.status !== OrderStatus.DRAFT ? ( @@ -233,6 +235,12 @@ export const OrderDetails: React.FC = ({ id, params }) => { onInvoiceClick={(invoice) => window.open(invoice.url, "_blank") } + onGenerateInvoice={() => + orderInvoiceRequest.mutate({ + orderId: id, + }) + } + onSendInvoice={() => null} />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -68199,55 +68156,12 @@ exports[`Storyshots Views / Orders / Order details default 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -69335,55 +69249,12 @@ exports[`Storyshots Views / Orders / Order details fulfilled 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -71090,55 +70961,12 @@ exports[`Storyshots Views / Orders / Order details no customer note 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -72226,55 +72054,12 @@ exports[`Storyshots Views / Orders / Order details no payment 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -73362,55 +73147,12 @@ exports[`Storyshots Views / Orders / Order details no shipping address 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -74498,55 +74240,12 @@ exports[`Storyshots Views / Orders / Order details partially fulfilled 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -75634,55 +75333,12 @@ exports[`Storyshots Views / Orders / Order details payment confirmed 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -76770,55 +76426,12 @@ exports[`Storyshots Views / Orders / Order details payment error 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -77906,55 +77519,12 @@ exports[`Storyshots Views / Orders / Order details pending payment 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -79042,55 +78612,12 @@ exports[`Storyshots Views / Orders / Order details refunded payment 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -80178,55 +79705,12 @@ exports[`Storyshots Views / Orders / Order details rejected payment 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -81314,55 +80798,12 @@ exports[`Storyshots Views / Orders / Order details unfulfilled 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
diff --git a/src/types/globalTypes.ts b/src/types/globalTypes.ts index bc350efb4..50c6b6515 100644 --- a/src/types/globalTypes.ts +++ b/src/types/globalTypes.ts @@ -380,6 +380,23 @@ export enum FulfillmentStatus { FULFILLED = "FULFILLED", } +export enum InvoiceErrorCode { + EMAIL_NOT_SET = "EMAIL_NOT_SET", + INVALID_STATUS = "INVALID_STATUS", + NOT_FOUND = "NOT_FOUND", + NOT_READY = "NOT_READY", + NUMBER_NOT_SET = "NUMBER_NOT_SET", + REQUIRED = "REQUIRED", + URL_NOT_SET = "URL_NOT_SET", +} + +export enum JobStatusEnum { + DELETED = "DELETED", + FAILED = "FAILED", + PENDING = "PENDING", + SUCCESS = "SUCCESS", +} + export enum LanguageCodeEnum { AR = "AR", AZ = "AZ",