mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-21 07:10:33 +00:00
feat: Add tax numbers to the organization details (#269)
This commit is contained in:
@@ -31,14 +31,14 @@ export default class OrganizationController extends BaseController {
|
|||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/build',
|
'/build',
|
||||||
this.organizationValidationSchema,
|
this.buildOrganizationValidationSchema,
|
||||||
this.validationResult,
|
this.validationResult,
|
||||||
asyncMiddleware(this.build.bind(this)),
|
asyncMiddleware(this.build.bind(this)),
|
||||||
this.handleServiceErrors.bind(this)
|
this.handleServiceErrors.bind(this)
|
||||||
);
|
);
|
||||||
router.put(
|
router.put(
|
||||||
'/',
|
'/',
|
||||||
this.organizationValidationSchema,
|
this.updateOrganizationValidationSchema,
|
||||||
this.validationResult,
|
this.validationResult,
|
||||||
this.asyncMiddleware(this.updateOrganization.bind(this)),
|
this.asyncMiddleware(this.updateOrganization.bind(this)),
|
||||||
this.handleServiceErrors.bind(this)
|
this.handleServiceErrors.bind(this)
|
||||||
@@ -55,7 +55,7 @@ export default class OrganizationController extends BaseController {
|
|||||||
* Organization setup schema.
|
* Organization setup schema.
|
||||||
* @return {ValidationChain[]}
|
* @return {ValidationChain[]}
|
||||||
*/
|
*/
|
||||||
private get organizationValidationSchema(): ValidationChain[] {
|
private get commonOrganizationValidationSchema(): ValidationChain[] {
|
||||||
return [
|
return [
|
||||||
check('name').exists().trim(),
|
check('name').exists().trim(),
|
||||||
check('industry').optional({ nullable: true }).isString().trim().escape(),
|
check('industry').optional({ nullable: true }).isString().trim().escape(),
|
||||||
@@ -68,6 +68,29 @@ export default class OrganizationController extends BaseController {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build organization validation schema.
|
||||||
|
* @returns {ValidationChain[]}
|
||||||
|
*/
|
||||||
|
private get buildOrganizationValidationSchema(): ValidationChain[] {
|
||||||
|
return [...this.commonOrganizationValidationSchema];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update organization validation schema.
|
||||||
|
* @returns {ValidationChain[]}
|
||||||
|
*/
|
||||||
|
private get updateOrganizationValidationSchema(): ValidationChain[] {
|
||||||
|
return [
|
||||||
|
...this.commonOrganizationValidationSchema,
|
||||||
|
check('tax_number')
|
||||||
|
.optional({ nullable: true })
|
||||||
|
.isString()
|
||||||
|
.trim()
|
||||||
|
.escape(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds tenant database and migrate database schema.
|
* Builds tenant database and migrate database schema.
|
||||||
* @param {Request} req - Express request.
|
* @param {Request} req - Express request.
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ export interface IOrganizationUpdateDTO {
|
|||||||
timezone: string;
|
timezone: string;
|
||||||
fiscalYear: string;
|
fiscalYear: string;
|
||||||
industry: string;
|
industry: string;
|
||||||
|
taxNumber: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IOrganizationBuildEventPayload {
|
export interface IOrganizationBuildEventPayload {
|
||||||
|
|||||||
@@ -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');
|
||||||
|
});
|
||||||
|
};
|
||||||
@@ -6,6 +6,9 @@ const Schema = Yup.object().shape({
|
|||||||
name: Yup.string()
|
name: Yup.string()
|
||||||
.required()
|
.required()
|
||||||
.label(intl.get('organization_name_')),
|
.label(intl.get('organization_name_')),
|
||||||
|
tax_number: Yup.string()
|
||||||
|
.nullable()
|
||||||
|
.label(intl.get('organization_tax_number_')),
|
||||||
industry: Yup.string()
|
industry: Yup.string()
|
||||||
.nullable()
|
.nullable()
|
||||||
.label(intl.get('organization_industry_')),
|
.label(intl.get('organization_industry_')),
|
||||||
|
|||||||
@@ -59,6 +59,17 @@ export default function PreferencesGeneralForm({ isSubmitting }) {
|
|||||||
<FInputGroup medium={'true'} name={'name'} fastField={true} />
|
<FInputGroup medium={'true'} name={'name'} fastField={true} />
|
||||||
</FFormGroup>
|
</FFormGroup>
|
||||||
|
|
||||||
|
{/* ---------- Organization Tax Number ---------- */}
|
||||||
|
<FFormGroup
|
||||||
|
name={'tax_number'}
|
||||||
|
label={<T id={'organization_tax_number'} />}
|
||||||
|
inline={true}
|
||||||
|
helperText={<T id={'shown_on_sales_forms_and_purchase_orders'} />}
|
||||||
|
fastField={true}
|
||||||
|
>
|
||||||
|
<FInputGroup medium={'true'} name={'tax_number'} fastField={true} />
|
||||||
|
</FFormGroup>
|
||||||
|
|
||||||
{/* ---------- Industry ---------- */}
|
{/* ---------- Industry ---------- */}
|
||||||
<FFormGroup
|
<FFormGroup
|
||||||
name={'industry'}
|
name={'industry'}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ const defaultValues = {
|
|||||||
fiscal_year: '',
|
fiscal_year: '',
|
||||||
date_format: '',
|
date_format: '',
|
||||||
timezone: '',
|
timezone: '',
|
||||||
|
tax_number: '',
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
"success": "Success",
|
"success": "Success",
|
||||||
"register_a_new_organization": "Register a New Organization.",
|
"register_a_new_organization": "Register a New Organization.",
|
||||||
"organization_name": "Organization Name",
|
"organization_name": "Organization Name",
|
||||||
|
"organization_tax_number": "Organization Tax Number",
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"email_address": "Email Address",
|
"email_address": "Email Address",
|
||||||
"register": "Register",
|
"register": "Register",
|
||||||
@@ -339,6 +340,7 @@
|
|||||||
"item_type_": "Item type",
|
"item_type_": "Item type",
|
||||||
"item_name_": "Item name",
|
"item_name_": "Item name",
|
||||||
"organization_industry_": "Organization industry",
|
"organization_industry_": "Organization industry",
|
||||||
|
"organization_tax_number_": "Organization tax number",
|
||||||
"base_currency_": "Base currency",
|
"base_currency_": "Base currency",
|
||||||
"date_format_": "Date format",
|
"date_format_": "Date format",
|
||||||
"category_name_": "Category name",
|
"category_name_": "Category name",
|
||||||
|
|||||||
Reference in New Issue
Block a user