From d31377420592e21c082598f1067d8ee2752950b6 Mon Sep 17 00:00:00 2001 From: Robert Koch Date: Thu, 12 Oct 2023 12:42:36 +1100 Subject: [PATCH] adds tax number to organization --- packages/server/src/api/controllers/Organization.ts | 1 + packages/server/src/interfaces/Setup.ts | 3 +++ .../src/services/Organization/OrganizationService.ts | 1 + ...add_tax_number_column_to_tenants_metadata_table.js | 11 +++++++++++ .../containers/Preferences/General/General.schema.tsx | 3 +++ .../containers/Preferences/General/GeneralForm.tsx | 11 +++++++++++ .../Preferences/General/GeneralFormPage.tsx | 1 + .../src/containers/Setup/SetupOrganizationForm.tsx | 9 +++++++++ packages/webapp/src/lang/en/index.json | 2 ++ 9 files changed, 42 insertions(+) create mode 100644 packages/server/src/system/migrations/20231012112401_add_tax_number_column_to_tenants_metadata_table.js 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 ---------- */}