mirror of
https://github.com/bitwarden/web
synced 2025-12-15 15:53:18 +00:00
Collect tax info for payments
This commit is contained in:
@@ -18,10 +18,10 @@ import { OrganizationResponse } from 'jslib/models/response/organizationResponse
|
||||
|
||||
import { ModalComponent } from '../../modal.component';
|
||||
import { PurgeVaultComponent } from '../../settings/purge-vault.component';
|
||||
import { TaxInfoComponent } from '../../settings/tax-info.component';
|
||||
import { ApiKeyComponent } from './api-key.component';
|
||||
import { DeleteOrganizationComponent } from './delete-organization.component';
|
||||
import { RotateApiKeyComponent } from './rotate-api-key.component';
|
||||
import { OrganizationTaxInfoUpdateRequest } from 'jslib/models/request/organizationTaxInfoUpdateRequest';
|
||||
|
||||
@Component({
|
||||
selector: 'app-org-account',
|
||||
@@ -32,21 +32,12 @@ export class AccountComponent {
|
||||
@ViewChild('purgeOrganizationTemplate', { read: ViewContainerRef }) purgeModalRef: ViewContainerRef;
|
||||
@ViewChild('apiKeyTemplate', { read: ViewContainerRef }) apiKeyModalRef: ViewContainerRef;
|
||||
@ViewChild('rotateApiKeyTemplate', { read: ViewContainerRef }) rotateApiKeyModalRef: ViewContainerRef;
|
||||
@ViewChild(TaxInfoComponent) taxInfo: TaxInfoComponent;
|
||||
|
||||
loading = true;
|
||||
canUseApi = false;
|
||||
org: OrganizationResponse;
|
||||
formPromise: Promise<any>;
|
||||
taxInfo: any = {
|
||||
taxId: null,
|
||||
line1: null,
|
||||
line2: null,
|
||||
city: null,
|
||||
state: null,
|
||||
postalCode: null,
|
||||
country: 'US',
|
||||
includeTaxId: false,
|
||||
};
|
||||
|
||||
private organizationId: string;
|
||||
private modal: ModalComponent = null;
|
||||
@@ -62,23 +53,6 @@ export class AccountComponent {
|
||||
try {
|
||||
this.org = await this.apiService.getOrganization(this.organizationId);
|
||||
this.canUseApi = this.org.useApi;
|
||||
const taxInfo = await this.apiService.getOrganizationTaxInfo(this.organizationId);
|
||||
if (taxInfo) {
|
||||
this.taxInfo.taxId = taxInfo.taxId;
|
||||
this.taxInfo.state = taxInfo.state;
|
||||
this.taxInfo.line1 = taxInfo.line1;
|
||||
this.taxInfo.line2 = taxInfo.line2;
|
||||
this.taxInfo.city = taxInfo.city;
|
||||
this.taxInfo.state = taxInfo.state;
|
||||
this.taxInfo.postalCode = taxInfo.postalCode;
|
||||
this.taxInfo.country = taxInfo.country;
|
||||
this.taxInfo.includeTaxId = taxInfo.country !== 'US' && (
|
||||
!!taxInfo.taxId
|
||||
|| !!taxInfo.line1
|
||||
|| !!taxInfo.line2
|
||||
|| !!taxInfo.city
|
||||
|| !!taxInfo.state);
|
||||
}
|
||||
} catch { }
|
||||
});
|
||||
this.loading = false;
|
||||
@@ -100,16 +74,7 @@ export class AccountComponent {
|
||||
}
|
||||
|
||||
async submitTaxInfo() {
|
||||
const request = new OrganizationTaxInfoUpdateRequest();
|
||||
request.taxId = this.taxInfo.taxId;
|
||||
request.state = this.taxInfo.state;
|
||||
request.line1 = this.taxInfo.line1;
|
||||
request.line2 = this.taxInfo.line2;
|
||||
request.city = this.taxInfo.city;
|
||||
request.state = this.taxInfo.state;
|
||||
request.postalCode = this.taxInfo.postalCode;
|
||||
request.country = this.taxInfo.country;
|
||||
this.formPromise = this.apiService.putOrganizationTaxInfo(this.organizationId, request);
|
||||
this.formPromise = this.taxInfo.submitTaxInfo();
|
||||
await this.formPromise;
|
||||
this.analytics.eventTrack.next({ action: 'Updated Organization Tax Info' });
|
||||
this.toasterService.popAsync('success', null, this.i18nService.t('taxInfoUpdated'));
|
||||
@@ -175,15 +140,4 @@ export class AccountComponent {
|
||||
this.modal = null;
|
||||
});
|
||||
}
|
||||
|
||||
changeCountry() {
|
||||
if (this.taxInfo.country === 'US') {
|
||||
this.taxInfo.includeTaxId = false;
|
||||
this.taxInfo.taxId = null;
|
||||
this.taxInfo.line1 = null;
|
||||
this.taxInfo.line2 = null;
|
||||
this.taxInfo.city = null;
|
||||
this.taxInfo.state = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user