mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
[PUI] Order Currency (#7918)
* Fix purchase order currency * Fix for sales order tables * Fix return order table
This commit is contained in:
parent
d6218b76ff
commit
453dac6d00
@ -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() {
|
||||
<Accordion.Panel>
|
||||
<PurchaseOrderLineItemTable
|
||||
order={order}
|
||||
currency={orderCurrency}
|
||||
orderId={Number(id)}
|
||||
supplierId={Number(order.supplier)}
|
||||
/>
|
||||
@ -271,6 +282,7 @@ export default function PurchaseOrderDetail() {
|
||||
<ExtraLineItemTable
|
||||
endpoint={ApiEndpoints.purchase_order_extra_line_list}
|
||||
orderId={order.pk}
|
||||
currency={orderCurrency}
|
||||
role={UserRoles.purchase_order}
|
||||
/>
|
||||
</Accordion.Panel>
|
||||
|
@ -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 <Skeleton />;
|
||||
@ -237,6 +248,7 @@ export default function ReturnOrderDetail() {
|
||||
<ReturnOrderLineItemTable
|
||||
orderId={order.pk}
|
||||
customerId={order.customer}
|
||||
currency={orderCurrency}
|
||||
/>
|
||||
</Accordion.Panel>
|
||||
</Accordion.Item>
|
||||
@ -248,6 +260,7 @@ export default function ReturnOrderDetail() {
|
||||
<ExtraLineItemTable
|
||||
endpoint={ApiEndpoints.return_order_extra_line_list}
|
||||
orderId={order.pk}
|
||||
currency={orderCurrency}
|
||||
role={UserRoles.return_order}
|
||||
/>
|
||||
</Accordion.Panel>
|
||||
|
@ -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 <Skeleton />;
|
||||
@ -271,6 +282,7 @@ export default function SalesOrderDetail() {
|
||||
<Accordion.Panel>
|
||||
<SalesOrderLineItemTable
|
||||
orderId={order.pk}
|
||||
currency={orderCurrency}
|
||||
customerId={order.customer}
|
||||
editable={
|
||||
order.status != soStatus.COMPLETE &&
|
||||
@ -287,6 +299,7 @@ export default function SalesOrderDetail() {
|
||||
<ExtraLineItemTable
|
||||
endpoint={ApiEndpoints.sales_order_extra_line_list}
|
||||
orderId={order.pk}
|
||||
currency={orderCurrency}
|
||||
role={UserRoles.sales_order}
|
||||
/>
|
||||
</Accordion.Panel>
|
||||
|
@ -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
|
||||
});
|
||||
|
||||
|
@ -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
|
||||
});
|
||||
|
||||
|
@ -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
|
||||
});
|
||||
|
@ -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
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user