diff --git a/src/frontend/src/forms/CompanyForms.tsx b/src/frontend/src/forms/CompanyForms.tsx index 8d0ebb6c45..3d442863e7 100644 --- a/src/frontend/src/forms/CompanyForms.tsx +++ b/src/frontend/src/forms/CompanyForms.tsx @@ -18,8 +18,12 @@ import { useMemo } from 'react'; * Field set for SupplierPart instance */ export function useSupplierPartFields({ + manufacturerId, + manufacturerPartId, partId }: { + manufacturerId?: number; + manufacturerPartId?: number; partId?: number; }) { return useMemo(() => { @@ -34,7 +38,9 @@ export function useSupplierPartFields({ } }, manufacturer_part: { + value: manufacturerPartId, filters: { + manufacturer: manufacturerId, part_detail: true, manufacturer_detail: true }, @@ -69,7 +75,7 @@ export function useSupplierPartFields({ }; return fields; - }, [partId]); + }, [manufacturerId, manufacturerPartId, partId]); } export function useManufacturerPartFields() { diff --git a/src/frontend/src/pages/company/CompanyDetail.tsx b/src/frontend/src/pages/company/CompanyDetail.tsx index 54cb0a03fb..228cdc2940 100644 --- a/src/frontend/src/pages/company/CompanyDetail.tsx +++ b/src/frontend/src/pages/company/CompanyDetail.tsx @@ -187,9 +187,7 @@ export default function CompanyDetail(props: Readonly) { label: t`Supplied Parts`, icon: , hidden: !company?.is_supplier, - content: company?.pk && ( - - ) + content: company?.pk && }, { name: 'manufactured-parts', diff --git a/src/frontend/src/pages/company/ManufacturerPartDetail.tsx b/src/frontend/src/pages/company/ManufacturerPartDetail.tsx index dc2924b443..693906af1a 100644 --- a/src/frontend/src/pages/company/ManufacturerPartDetail.tsx +++ b/src/frontend/src/pages/company/ManufacturerPartDetail.tsx @@ -193,9 +193,9 @@ export default function ManufacturerPartDetail() { icon: , content: manufacturerPart?.pk ? ( ) : ( diff --git a/src/frontend/src/pages/company/SupplierPartDetail.tsx b/src/frontend/src/pages/company/SupplierPartDetail.tsx index 8f9bfc2743..eea533cc17 100644 --- a/src/frontend/src/pages/company/SupplierPartDetail.tsx +++ b/src/frontend/src/pages/company/SupplierPartDetail.tsx @@ -198,7 +198,7 @@ export default function SupplierPartDetail() { icon: 'purchase_orders' }, { - type: 'string', + type: 'number', name: 'available', label: t`Supplier Availability`, hidden: !data.availability_updated, @@ -206,7 +206,7 @@ export default function SupplierPartDetail() { icon: 'packages' }, { - type: 'string', + type: 'date', name: 'availability_updated', label: t`Availability Updated`, copy: true, diff --git a/src/frontend/src/pages/part/PartSupplierDetail.tsx b/src/frontend/src/pages/part/PartSupplierDetail.tsx index 4342d4dc50..b41be7313f 100644 --- a/src/frontend/src/pages/part/PartSupplierDetail.tsx +++ b/src/frontend/src/pages/part/PartSupplierDetail.tsx @@ -15,7 +15,7 @@ export default function PartSupplierDetail({ {t`Suppliers`} - + diff --git a/src/frontend/src/pages/purchasing/PurchasingIndex.tsx b/src/frontend/src/pages/purchasing/PurchasingIndex.tsx index 4e77f8ee8b..0101f84f21 100644 --- a/src/frontend/src/pages/purchasing/PurchasingIndex.tsx +++ b/src/frontend/src/pages/purchasing/PurchasingIndex.tsx @@ -91,7 +91,7 @@ export default function PurchasingIndex() { name: 'supplier-parts', label: t`Supplier Parts`, icon: , - content: + content: }, { name: 'manufacturer', diff --git a/src/frontend/src/tables/purchasing/SupplierPartTable.tsx b/src/frontend/src/tables/purchasing/SupplierPartTable.tsx index 9a2531b86a..0e16d5ef33 100644 --- a/src/frontend/src/tables/purchasing/SupplierPartTable.tsx +++ b/src/frontend/src/tables/purchasing/SupplierPartTable.tsx @@ -13,6 +13,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; +import { formatDecimal } from '@lib/functions/Formatting'; import type { TableFilter } from '@lib/types/Filters'; import type { TableColumn } from '@lib/types/Tables'; import { IconPackageImport } from '@tabler/icons-react'; @@ -43,8 +44,16 @@ import { TableHoverCard } from '../TableHoverCard'; */ export function SupplierPartTable({ - params -}: Readonly<{ params: any }>): ReactNode { + manufacturerId, + manufacturerPartId, + partId, + supplierId +}: Readonly<{ + manufacturerId?: number; + manufacturerPartId?: number; + partId?: number; + supplierId?: number; +}>): ReactNode { const table = useTable('supplierparts'); const user = useUserState(); @@ -53,7 +62,7 @@ export function SupplierPartTable({ const tableColumns: TableColumn[] = useMemo(() => { return [ PartColumn({ - switchable: 'part' in params, + switchable: !!partId, part: 'part_detail' }), { @@ -119,7 +128,7 @@ export function SupplierPartTable({ return ( @@ -147,10 +156,10 @@ export function SupplierPartTable({ } } ]; - }, [params]); + }, [partId]); const supplierPartFields = useSupplierPartFields({ - partId: params?.part + partId: partId }); const addSupplierPart = useCreateApiFormModal({ @@ -158,8 +167,9 @@ export function SupplierPartTable({ title: t`Add Supplier Part`, fields: supplierPartFields, initialData: { - part: params?.part, - supplier: params?.supplier + part: partId, + supplier: supplierId, + manufacturer_part: manufacturerPartId }, table: table, successMessage: t`Supplier part created` @@ -167,7 +177,7 @@ export function SupplierPartTable({ const supplierPlugins = usePluginsWithMixin('supplier'); const importPartWizard = ImportPartWizard({ - partId: params?.part + partId: partId }); const tableActions = useMemo(() => { @@ -187,11 +197,11 @@ export function SupplierPartTable({ hidden={ supplierPlugins.length === 0 || !user.hasAddRole(UserRoles.part) || - !params?.part + !partId } /> ]; - }, [user, supplierPlugins]); + }, [user, partId, supplierPlugins]); const tableFilters: TableFilter[] = useMemo(() => { return [ @@ -272,7 +282,10 @@ export function SupplierPartTable({ columns={tableColumns} props={{ params: { - ...params, + manufacturer: manufacturerId, + manufacturer_part: manufacturerPartId, + supplier: supplierId, + part: partId, part_detail: true, supplier_detail: true, manufacturer_detail: true diff --git a/src/frontend/src/tables/stock/StockItemTestResultTable.tsx b/src/frontend/src/tables/stock/StockItemTestResultTable.tsx index fea1ddedcd..569fb5c136 100644 --- a/src/frontend/src/tables/stock/StockItemTestResultTable.tsx +++ b/src/frontend/src/tables/stock/StockItemTestResultTable.tsx @@ -153,19 +153,21 @@ export default function StockItemTestResultTable({ return ( - {!child && ( - - )} - - {!record.templateId && '- '} - {record.test_name ?? record.template_detail?.test_name} - + + {!child && ( + + )} + + {!record.templateId && '- '} + {record.test_name ?? record.template_detail?.test_name} + + {record.results && record.results.length > 1 && (