mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Fix currency rendering in order tables (#7066)
* Add "currency" to CompanyBriefSerializer * Fix nav.js bug - potential illegal chars in panel name * Update CUI tables * Update PUI tables * Bump API version
This commit is contained in:
parent
76e1174986
commit
cd53f21120
@ -1,11 +1,14 @@
|
||||
"""InvenTree API version information."""
|
||||
|
||||
# InvenTree API version
|
||||
INVENTREE_API_VERSION = 188
|
||||
INVENTREE_API_VERSION = 189
|
||||
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
|
||||
|
||||
INVENTREE_API_TEXT = """
|
||||
|
||||
v189 - 2024-04-19 : https://github.com/inventree/InvenTree/pull/7066
|
||||
- Adds "currency" field to CompanyBriefSerializer class
|
||||
|
||||
v188 - 2024-04-16 : https://github.com/inventree/InvenTree/pull/6970
|
||||
- Adds session authentication support for the API
|
||||
- Improvements for login / logout endpoints for better support of React web interface
|
||||
|
@ -42,7 +42,9 @@ class CompanyBriefSerializer(InvenTreeModelSerializer):
|
||||
"""Metaclass options."""
|
||||
|
||||
model = Company
|
||||
fields = ['pk', 'url', 'name', 'description', 'image', 'thumbnail']
|
||||
fields = ['pk', 'url', 'name', 'description', 'image', 'thumbnail', 'currency']
|
||||
|
||||
read_only_fields = ['currency']
|
||||
|
||||
url = serializers.CharField(source='get_absolute_url', read_only=True)
|
||||
|
||||
|
@ -21,12 +21,15 @@ function activatePanel(label, panel_name, options={}) {
|
||||
$('.panel-visible').hide();
|
||||
$('.panel-visible').removeClass('panel-visible');
|
||||
|
||||
// Remove illegal chars
|
||||
panel_name = panel_name.replace('/', '');
|
||||
|
||||
// Find the target panel
|
||||
var panel = `#panel-${panel_name}`;
|
||||
var select = `#select-${panel_name}`;
|
||||
|
||||
// Check that the selected panel (and select) exist
|
||||
if ($(panel).length && $(select).length) {
|
||||
if ($(panel).exists() && $(panel).length && $(select).length) {
|
||||
// Yep, both are displayed
|
||||
} else {
|
||||
// Either the select or the panel are not displayed!
|
||||
|
@ -1755,7 +1755,7 @@ function loadPurchaseOrderTable(table, options) {
|
||||
sortable: true,
|
||||
formatter: function(value, row) {
|
||||
return formatCurrency(value, {
|
||||
currency: row.order_currency,
|
||||
currency: row.order_currency ?? row.supplier_detail?.currency,
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -300,7 +300,7 @@ function loadReturnOrderTable(table, options={}) {
|
||||
return '{% trans "Invalid Customer" %}';
|
||||
}
|
||||
|
||||
return imageHoverIcon(row.customer_detail.image) + renderLink(row.customer_detail.name, `/company/${row.customer}/sales-orders/`);
|
||||
return imageHoverIcon(row.customer_detail.image) + renderLink(row.customer_detail.name, `/company/${row.customer}/?display=sales-orders/`);
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -384,7 +384,7 @@ function loadReturnOrderTable(table, options={}) {
|
||||
visible: false,
|
||||
formatter: function(value, row) {
|
||||
return formatCurrency(value, {
|
||||
currency: row.order_currency
|
||||
currency: row.order_currency ?? row.customer_detail?.currency,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -788,7 +788,7 @@ function loadSalesOrderTable(table, options) {
|
||||
return '{% trans "Invalid Customer" %}';
|
||||
}
|
||||
|
||||
return imageHoverIcon(row.customer_detail.image) + renderLink(row.customer_detail.name, `/company/${row.customer}/sales-orders/`);
|
||||
return imageHoverIcon(row.customer_detail.image) + renderLink(row.customer_detail.name, `/company/${row.customer}/?display=sales-orders/`);
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -857,7 +857,7 @@ function loadSalesOrderTable(table, options) {
|
||||
sortable: true,
|
||||
formatter: function(value, row) {
|
||||
return formatCurrency(value, {
|
||||
currency: row.order_currency,
|
||||
currency: row.order_currency ?? row.customer_detail?.currency,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ import { useNavigate } from 'react-router-dom';
|
||||
|
||||
import { AddItemButton } from '../../components/buttons/AddItemButton';
|
||||
import { Thumbnail } from '../../components/images/Thumbnail';
|
||||
import { formatCurrency } from '../../defaults/formatters';
|
||||
import { ApiEndpoints } from '../../enums/ApiEndpoints';
|
||||
import { ModelType } from '../../enums/ModelType';
|
||||
import { UserRoles } from '../../enums/Roles';
|
||||
@ -21,8 +22,7 @@ import {
|
||||
ReferenceColumn,
|
||||
ResponsibleColumn,
|
||||
StatusColumn,
|
||||
TargetDateColumn,
|
||||
TotalPriceColumn
|
||||
TargetDateColumn
|
||||
} from '../ColumnRenderers';
|
||||
import {
|
||||
AssignedToMeFilter,
|
||||
@ -92,7 +92,16 @@ export function PurchaseOrderTable({
|
||||
ProjectCodeColumn(),
|
||||
CreationDateColumn(),
|
||||
TargetDateColumn(),
|
||||
TotalPriceColumn(),
|
||||
{
|
||||
accessor: 'total_price',
|
||||
title: t`Total Price`,
|
||||
sortable: true,
|
||||
render: (record: any) => {
|
||||
return formatCurrency(record.total_price, {
|
||||
currency: record.order_currency ?? record.supplier_detail?.currency
|
||||
});
|
||||
}
|
||||
},
|
||||
ResponsibleColumn()
|
||||
];
|
||||
}, []);
|
||||
|
@ -3,6 +3,7 @@ import { useCallback, useMemo } from 'react';
|
||||
|
||||
import { AddItemButton } from '../../components/buttons/AddItemButton';
|
||||
import { Thumbnail } from '../../components/images/Thumbnail';
|
||||
import { formatCurrency } from '../../defaults/formatters';
|
||||
import { ApiEndpoints } from '../../enums/ApiEndpoints';
|
||||
import { ModelType } from '../../enums/ModelType';
|
||||
import { UserRoles } from '../../enums/Roles';
|
||||
@ -18,8 +19,7 @@ import {
|
||||
ReferenceColumn,
|
||||
ResponsibleColumn,
|
||||
StatusColumn,
|
||||
TargetDateColumn,
|
||||
TotalPriceColumn
|
||||
TargetDateColumn
|
||||
} from '../ColumnRenderers';
|
||||
import {
|
||||
AssignedToMeFilter,
|
||||
@ -81,7 +81,16 @@ export function ReturnOrderTable({ params }: { params?: any }) {
|
||||
CreationDateColumn(),
|
||||
TargetDateColumn(),
|
||||
ResponsibleColumn(),
|
||||
TotalPriceColumn()
|
||||
{
|
||||
accessor: 'total_price',
|
||||
title: t`Total Price`,
|
||||
sortable: true,
|
||||
render: (record: any) => {
|
||||
return formatCurrency(record.total_price, {
|
||||
currency: record.order_currency ?? record.customer_detail?.currency
|
||||
});
|
||||
}
|
||||
}
|
||||
];
|
||||
}, []);
|
||||
|
||||
|
@ -4,6 +4,7 @@ import { useNavigate } from 'react-router-dom';
|
||||
|
||||
import { AddItemButton } from '../../components/buttons/AddItemButton';
|
||||
import { Thumbnail } from '../../components/images/Thumbnail';
|
||||
import { formatCurrency } from '../../defaults/formatters';
|
||||
import { ApiEndpoints } from '../../enums/ApiEndpoints';
|
||||
import { ModelType } from '../../enums/ModelType';
|
||||
import { UserRoles } from '../../enums/Roles';
|
||||
@ -21,8 +22,7 @@ import {
|
||||
ReferenceColumn,
|
||||
ShipmentDateColumn,
|
||||
StatusColumn,
|
||||
TargetDateColumn,
|
||||
TotalPriceColumn
|
||||
TargetDateColumn
|
||||
} from '../ColumnRenderers';
|
||||
import {
|
||||
AssignedToMeFilter,
|
||||
@ -117,7 +117,16 @@ export function SalesOrderTable({
|
||||
CreationDateColumn(),
|
||||
TargetDateColumn(),
|
||||
ShipmentDateColumn(),
|
||||
TotalPriceColumn()
|
||||
{
|
||||
accessor: 'total_price',
|
||||
title: t`Total Price`,
|
||||
sortable: true,
|
||||
render: (record: any) => {
|
||||
return formatCurrency(record.total_price, {
|
||||
currency: record.order_currency ?? record.customer_detail?.currency
|
||||
});
|
||||
}
|
||||
}
|
||||
];
|
||||
}, []);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user