diff --git a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx
index fb1ec9a21c..7f9ab3cd53 100644
--- a/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx
+++ b/src/frontend/src/pages/purchasing/PurchaseOrderDetail.tsx
@@ -46,6 +46,7 @@ import {
import { useInstance } from '../../hooks/UseInstance';
import useStatusCodes from '../../hooks/UseStatusCodes';
import { apiUrl } from '../../states/ApiState';
+import { useGlobalSettingsState } from '../../states/SettingsState';
import { useUserState } from '../../states/UserState';
import { AttachmentTable } from '../../tables/general/AttachmentTable';
import ExtraLineItemTable from '../../tables/general/ExtraLineItemTable';
@@ -59,6 +60,7 @@ export default function PurchaseOrderDetail() {
const { id } = useParams();
const user = useUserState();
+ const globalSettings = useGlobalSettingsState();
const {
instance: order,
@@ -74,6 +76,14 @@ export default function PurchaseOrderDetail() {
refetchOnMount: true
});
+ const orderCurrency = useMemo(() => {
+ return (
+ order.order_currency ||
+ order.supplier_detail?.currency ||
+ globalSettings.getSetting('INVENTREE_DEFAULT_CURRENCY')
+ );
+ }, [order, globalSettings]);
+
const purchaseOrderFields = usePurchaseOrderFields();
const editPurchaseOrder = useEditApiFormModal({
@@ -258,6 +268,7 @@ export default function PurchaseOrderDetail() {
@@ -271,6 +282,7 @@ export default function PurchaseOrderDetail() {
diff --git a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx
index 53876e641c..b695521750 100644
--- a/src/frontend/src/pages/sales/ReturnOrderDetail.tsx
+++ b/src/frontend/src/pages/sales/ReturnOrderDetail.tsx
@@ -45,6 +45,7 @@ import {
import { useInstance } from '../../hooks/UseInstance';
import useStatusCodes from '../../hooks/UseStatusCodes';
import { apiUrl } from '../../states/ApiState';
+import { useGlobalSettingsState } from '../../states/SettingsState';
import { useUserState } from '../../states/UserState';
import { AttachmentTable } from '../../tables/general/AttachmentTable';
import ExtraLineItemTable from '../../tables/general/ExtraLineItemTable';
@@ -58,6 +59,8 @@ export default function ReturnOrderDetail() {
const user = useUserState();
+ const globalSettings = useGlobalSettingsState();
+
const {
instance: order,
instanceQuery,
@@ -71,6 +74,14 @@ export default function ReturnOrderDetail() {
}
});
+ const orderCurrency = useMemo(() => {
+ return (
+ order.order_currency ||
+ order.customer_detail?.currency ||
+ globalSettings.getSetting('INVENTREE_DEFAULT_CURRENCY')
+ );
+ }, [order, globalSettings]);
+
const detailsPanel = useMemo(() => {
if (instanceQuery.isFetching) {
return ;
@@ -237,6 +248,7 @@ export default function ReturnOrderDetail() {
@@ -248,6 +260,7 @@ export default function ReturnOrderDetail() {
diff --git a/src/frontend/src/pages/sales/SalesOrderDetail.tsx b/src/frontend/src/pages/sales/SalesOrderDetail.tsx
index 4cdcc186cb..db6dd1ab63 100644
--- a/src/frontend/src/pages/sales/SalesOrderDetail.tsx
+++ b/src/frontend/src/pages/sales/SalesOrderDetail.tsx
@@ -48,6 +48,7 @@ import {
import { useInstance } from '../../hooks/UseInstance';
import useStatusCodes from '../../hooks/UseStatusCodes';
import { apiUrl } from '../../states/ApiState';
+import { useGlobalSettingsState } from '../../states/SettingsState';
import { useUserState } from '../../states/UserState';
import { BuildOrderTable } from '../../tables/build/BuildOrderTable';
import { AttachmentTable } from '../../tables/general/AttachmentTable';
@@ -64,6 +65,8 @@ export default function SalesOrderDetail() {
const user = useUserState();
+ const globalSettings = useGlobalSettingsState();
+
const {
instance: order,
instanceQuery,
@@ -77,6 +80,14 @@ export default function SalesOrderDetail() {
}
});
+ const orderCurrency = useMemo(() => {
+ return (
+ order.order_currency ||
+ order.customer_detail?.currency ||
+ globalSettings.getSetting('INVENTREE_DEFAULT_CURRENCY')
+ );
+ }, [order, globalSettings]);
+
const detailsPanel = useMemo(() => {
if (instanceQuery.isFetching) {
return ;
@@ -271,6 +282,7 @@ export default function SalesOrderDetail() {
diff --git a/src/frontend/src/tables/general/ExtraLineItemTable.tsx b/src/frontend/src/tables/general/ExtraLineItemTable.tsx
index 8eee2b2663..a1befeb168 100644
--- a/src/frontend/src/tables/general/ExtraLineItemTable.tsx
+++ b/src/frontend/src/tables/general/ExtraLineItemTable.tsx
@@ -2,10 +2,8 @@ import { t } from '@lingui/macro';
import { useCallback, useMemo, useState } from 'react';
import { AddItemButton } from '../../components/buttons/AddItemButton';
-import { ApiFormFieldSet } from '../../components/forms/fields/ApiFormField';
import { formatCurrency } from '../../defaults/formatters';
import { ApiEndpoints } from '../../enums/ApiEndpoints';
-import { ModelType } from '../../enums/ModelType';
import { UserRoles } from '../../enums/Roles';
import { extraLineItemFields } from '../../forms/CommonForms';
import {
@@ -28,10 +26,12 @@ import {
export default function ExtraLineItemTable({
endpoint,
orderId,
+ currency,
role
}: {
endpoint: ApiEndpoints;
orderId: number;
+ currency: string;
role: UserRoles;
}) {
const table = useTable('extra-line-item');
@@ -84,7 +84,10 @@ export default function ExtraLineItemTable({
url: endpoint,
title: t`Add Line Item`,
fields: extraLineItemFields(),
- initialData: initialData,
+ initialData: {
+ ...initialData,
+ price_currency: currency
+ },
table: table
});
diff --git a/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx b/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx
index 2e3312491c..415d862899 100644
--- a/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx
+++ b/src/frontend/src/tables/purchasing/PurchaseOrderLineItemTable.tsx
@@ -49,11 +49,13 @@ import { TableHoverCard } from '../TableHoverCard';
export function PurchaseOrderLineItemTable({
order,
orderId,
+ currency,
supplierId,
params
}: {
order: any;
orderId: number;
+ currency: string;
supplierId?: number;
params?: any;
}) {
@@ -247,7 +249,10 @@ export function PurchaseOrderLineItemTable({
url: ApiEndpoints.purchase_order_line_list,
title: t`Add Line Item`,
fields: addPurchaseOrderFields,
- initialData: initialData,
+ initialData: {
+ ...initialData,
+ purchase_price_currency: currency
+ },
table: table
});
diff --git a/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx b/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx
index de93a2945f..6b0c7f9b6b 100644
--- a/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx
+++ b/src/frontend/src/tables/sales/ReturnOrderLineItemTable.tsx
@@ -31,10 +31,12 @@ import { RowDeleteAction, RowEditAction } from '../RowActions';
export default function ReturnOrderLineItemTable({
orderId,
- customerId
+ customerId,
+ currency
}: {
orderId: number;
customerId: number;
+ currency: string;
}) {
const table = useTable('return-order-line-item');
const user = useUserState();
@@ -57,7 +59,8 @@ export default function ReturnOrderLineItemTable({
title: t`Add Line Item`,
fields: newLineFields,
initialData: {
- order: orderId
+ order: orderId,
+ price_currency: currency
},
table: table
});
diff --git a/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx b/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx
index d4dad568e0..a1c20485c3 100644
--- a/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx
+++ b/src/frontend/src/tables/sales/SalesOrderLineItemTable.tsx
@@ -35,10 +35,12 @@ import { TableHoverCard } from '../TableHoverCard';
export default function SalesOrderLineItemTable({
orderId,
+ currency,
customerId,
editable
}: {
orderId: number;
+ currency: string;
customerId: number;
editable: boolean;
}) {
@@ -191,7 +193,10 @@ export default function SalesOrderLineItemTable({
url: ApiEndpoints.sales_order_line_list,
title: t`Add Line Item`,
fields: createLineFields,
- initialData: initialData,
+ initialData: {
+ ...initialData,
+ sale_price_currency: currency
+ },
table: table
});