mirror of
https://github.com/inventree/InvenTree.git
synced 2025-07-18 02:36:31 +00:00
feat: add tax_id field to Company model and related forms (#9673)
* feat: add tax_id field to Company model and related forms * Update 0075_company_tax_id.py to fix typo * Update models.py to fix typo * Update tests.py to increment 'column_mappings.count()' to 15 * Update api_version.py
This commit is contained in:
@@ -1,12 +1,16 @@
|
|||||||
"""InvenTree API version information."""
|
"""InvenTree API version information."""
|
||||||
|
|
||||||
# InvenTree API version
|
# InvenTree API version
|
||||||
INVENTREE_API_VERSION = 367
|
INVENTREE_API_VERSION = 368
|
||||||
|
|
||||||
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
|
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
|
||||||
|
|
||||||
INVENTREE_API_TEXT = """
|
INVENTREE_API_TEXT = """
|
||||||
|
|
||||||
|
v368 -> 2025-07-11 : https://github.com/inventree/InvenTree/pull/9673
|
||||||
|
- Adds 'tax_id' to company model
|
||||||
|
- Adds 'tax_id' to search fields in the 'CompanyList' API endpoint
|
||||||
|
|
||||||
v367 -> 2025-07-10 : https://github.com/inventree/InvenTree/pull/10001
|
v367 -> 2025-07-10 : https://github.com/inventree/InvenTree/pull/10001
|
||||||
- Adds OAuth2 scopes for importer sessions
|
- Adds OAuth2 scopes for importer sessions
|
||||||
|
|
||||||
|
@@ -60,7 +60,7 @@ class CompanyList(DataExportViewMixin, ListCreateAPI):
|
|||||||
'active',
|
'active',
|
||||||
]
|
]
|
||||||
|
|
||||||
search_fields = ['name', 'description', 'website']
|
search_fields = ['name', 'description', 'website', 'tax_id']
|
||||||
|
|
||||||
ordering_fields = ['active', 'name', 'parts_supplied', 'parts_manufactured']
|
ordering_fields = ['active', 'name', 'parts_supplied', 'parts_manufactured']
|
||||||
|
|
||||||
|
@@ -0,0 +1,23 @@
|
|||||||
|
# Generated by Django 4.2.21 on 2025-05-17 17:16
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("company", "0074_alter_manufacturerpart_link"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="company",
|
||||||
|
name="tax_id",
|
||||||
|
field=models.CharField(
|
||||||
|
blank=True,
|
||||||
|
help_text="Company Tax ID",
|
||||||
|
max_length=50,
|
||||||
|
verbose_name="Tax ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
@@ -106,6 +106,7 @@ class Company(
|
|||||||
is_supplier: boolean value, is this company a supplier
|
is_supplier: boolean value, is this company a supplier
|
||||||
is_manufacturer: boolean value, is this company a manufacturer
|
is_manufacturer: boolean value, is this company a manufacturer
|
||||||
currency_code: Specifies the default currency for the company
|
currency_code: Specifies the default currency for the company
|
||||||
|
tax_id: Tax ID for the company
|
||||||
"""
|
"""
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@@ -224,6 +225,13 @@ class Company(
|
|||||||
validators=[InvenTree.validators.validate_currency_code],
|
validators=[InvenTree.validators.validate_currency_code],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
tax_id = models.CharField(
|
||||||
|
max_length=50,
|
||||||
|
blank=True,
|
||||||
|
verbose_name=_('Tax ID'),
|
||||||
|
help_text=_('Company Tax ID'),
|
||||||
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def address(self):
|
def address(self):
|
||||||
"""Return the string representation for the primary address.
|
"""Return the string representation for the primary address.
|
||||||
|
@@ -52,6 +52,7 @@ class CompanyBriefSerializer(InvenTreeModelSerializer):
|
|||||||
'image',
|
'image',
|
||||||
'thumbnail',
|
'thumbnail',
|
||||||
'currency',
|
'currency',
|
||||||
|
'tax_id',
|
||||||
]
|
]
|
||||||
read_only_fields = ['currency']
|
read_only_fields = ['currency']
|
||||||
|
|
||||||
@@ -145,6 +146,7 @@ class CompanySerializer(
|
|||||||
'remote_image',
|
'remote_image',
|
||||||
'address_count',
|
'address_count',
|
||||||
'primary_address',
|
'primary_address',
|
||||||
|
'tax_id',
|
||||||
]
|
]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@@ -39,7 +39,7 @@ class ImporterTest(ImporterMixin, InvenTreeTestCase):
|
|||||||
|
|
||||||
session.extract_columns()
|
session.extract_columns()
|
||||||
|
|
||||||
self.assertEqual(session.column_mappings.count(), 14)
|
self.assertEqual(session.column_mappings.count(), 15)
|
||||||
|
|
||||||
# Check some of the field mappings
|
# Check some of the field mappings
|
||||||
for field, col in [
|
for field, col in [
|
||||||
|
@@ -125,6 +125,7 @@ export function companyFields(): ApiFormFieldSet {
|
|||||||
email: {
|
email: {
|
||||||
icon: <IconAt />
|
icon: <IconAt />
|
||||||
},
|
},
|
||||||
|
tax_id: {},
|
||||||
is_supplier: {},
|
is_supplier: {},
|
||||||
is_manufacturer: {},
|
is_manufacturer: {},
|
||||||
is_customer: {},
|
is_customer: {},
|
||||||
|
@@ -87,6 +87,7 @@ import {
|
|||||||
IconStack2,
|
IconStack2,
|
||||||
IconStatusChange,
|
IconStatusChange,
|
||||||
IconTag,
|
IconTag,
|
||||||
|
IconTax,
|
||||||
IconTestPipe,
|
IconTestPipe,
|
||||||
IconTool,
|
IconTool,
|
||||||
IconTools,
|
IconTools,
|
||||||
@@ -181,6 +182,7 @@ const icons: InvenTreeIconType = {
|
|||||||
admin: IconUserBolt,
|
admin: IconUserBolt,
|
||||||
system: IconSettings,
|
system: IconSettings,
|
||||||
license: IconLicense,
|
license: IconLicense,
|
||||||
|
tax_id: IconTax,
|
||||||
|
|
||||||
// Part Icons
|
// Part Icons
|
||||||
active: IconCheck,
|
active: IconCheck,
|
||||||
|
@@ -114,6 +114,13 @@ export default function CompanyDetail(props: Readonly<CompanyDetailProps>) {
|
|||||||
label: t`Email Address`,
|
label: t`Email Address`,
|
||||||
copy: true,
|
copy: true,
|
||||||
hidden: !company.email
|
hidden: !company.email
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'text',
|
||||||
|
name: 'tax_id',
|
||||||
|
label: t`Tax ID`,
|
||||||
|
copy: true,
|
||||||
|
hidden: !company.tax_id
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user