diff --git a/packages/server/src/api/controllers/Organization.ts b/packages/server/src/api/controllers/Organization.ts
index c746a0484..35c216f89 100644
--- a/packages/server/src/api/controllers/Organization.ts
+++ b/packages/server/src/api/controllers/Organization.ts
@@ -65,6 +65,7 @@ export default class OrganizationController extends BaseController {
check('fiscal_year').exists().isIn(MONTHS),
check('language').exists().isString().isIn(ACCEPTED_LOCALES),
check('date_format').optional().isIn(DATE_FORMATS),
+ check('tax_number').optional({ nullable: true }).isString().trim().escape(),
];
}
diff --git a/packages/server/src/interfaces/Setup.ts b/packages/server/src/interfaces/Setup.ts
index 2a0562238..0ce2d625e 100644
--- a/packages/server/src/interfaces/Setup.ts
+++ b/packages/server/src/interfaces/Setup.ts
@@ -6,6 +6,7 @@ export interface IOrganizationSetupDTO {
fiscalYear: string;
industry: string;
timeZone: string;
+ taxNumber: string;
}
export interface IOrganizationBuildDTO {
@@ -16,6 +17,7 @@ export interface IOrganizationBuildDTO {
timezone: string;
fiscalYear: string;
dateFormat?: string;
+ taxNumber: string;
}
export interface IOrganizationUpdateDTO {
@@ -25,6 +27,7 @@ export interface IOrganizationUpdateDTO {
timezone: string;
fiscalYear: string;
industry: string;
+ taxNumber: string;
}
export interface IOrganizationBuildEventPayload {
diff --git a/packages/server/src/services/Organization/OrganizationService.ts b/packages/server/src/services/Organization/OrganizationService.ts
index 32431a066..814453a35 100644
--- a/packages/server/src/services/Organization/OrganizationService.ts
+++ b/packages/server/src/services/Organization/OrganizationService.ts
@@ -189,6 +189,7 @@ export default class OrganizationService {
tenant.metadata?.baseCurrency
);
await tenant.saveMetadata(organizationDTO);
+ // console.log('organizationDTO', organizationDTO);
if (organizationDTO.baseCurrency !== tenant.metadata?.baseCurrency) {
// Triggers `onOrganizationBaseCurrencyUpdated` event.
diff --git a/packages/server/src/system/migrations/20231012112401_add_tax_number_column_to_tenants_metadata_table.js b/packages/server/src/system/migrations/20231012112401_add_tax_number_column_to_tenants_metadata_table.js
new file mode 100644
index 000000000..ce7de80f0
--- /dev/null
+++ b/packages/server/src/system/migrations/20231012112401_add_tax_number_column_to_tenants_metadata_table.js
@@ -0,0 +1,11 @@
+exports.up = function (knex) {
+ return knex.schema.table('tenants_metadata', (table) => {
+ table.string('tax_number')
+ });
+};
+
+exports.down = function (knex) {
+ return knex.schema.table('tenants_metadata', (table) => {
+ table.dropColumn('tax_number');
+ });
+};
diff --git a/packages/webapp/src/containers/Preferences/General/General.schema.tsx b/packages/webapp/src/containers/Preferences/General/General.schema.tsx
index 249a9c6e9..e118872cd 100644
--- a/packages/webapp/src/containers/Preferences/General/General.schema.tsx
+++ b/packages/webapp/src/containers/Preferences/General/General.schema.tsx
@@ -6,6 +6,9 @@ const Schema = Yup.object().shape({
name: Yup.string()
.required()
.label(intl.get('organization_name_')),
+ tax_number: Yup.string()
+ .nullable()
+ .label(intl.get('organization_tax_number_')),
industry: Yup.string()
.nullable()
.label(intl.get('organization_industry_')),
diff --git a/packages/webapp/src/containers/Preferences/General/GeneralForm.tsx b/packages/webapp/src/containers/Preferences/General/GeneralForm.tsx
index a4eb2e106..d67d0ea65 100644
--- a/packages/webapp/src/containers/Preferences/General/GeneralForm.tsx
+++ b/packages/webapp/src/containers/Preferences/General/GeneralForm.tsx
@@ -59,6 +59,17 @@ export default function PreferencesGeneralForm({ isSubmitting }) {
+ {/* ---------- Organization Tax Number ---------- */}
+ }
+ inline={true}
+ helperText={}
+ fastField={true}
+ >
+
+
+
{/* ---------- Industry ---------- */}
+ {/* ---------- Organization Tax Number ---------- */}
+ }
+ fastField={true}
+ >
+
+
+
{/* ---------- Location ---------- */}