taxtank-core 0.32.121 → 0.32.124
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/db/Models/bank/bank-account.mjs +1 -1
- package/esm2022/lib/db/Models/client/annual-client-details.mjs +1 -1
- package/esm2022/lib/db/Models/incomeSource/income-source-forecast.mjs +1 -1
- package/esm2022/lib/db/Models/incomeSource/salary-forecast.mjs +1 -1
- package/esm2022/lib/db/Models/property/property-forecast.mjs +1 -1
- package/esm2022/lib/db/Models/sole/sole-business-loss.mjs +1 -1
- package/esm2022/lib/db/Models/sole/sole-forecast.mjs +1 -1
- package/esm2022/lib/forms/client/annual-client-details.form.mjs +1 -2
- package/esm2022/lib/forms/client/capital-loss.form.mjs +13 -0
- package/esm2022/lib/forms/client/index.mjs +2 -1
- package/esm2022/lib/models/client/annual-client-details.mjs +1 -1
- package/esm2022/lib/models/client/capital-loss.interface.mjs +2 -0
- package/esm2022/lib/models/client/capital-loss.mjs +19 -0
- package/esm2022/lib/models/client/index.mjs +3 -1
- package/esm2022/lib/models/endpoint/endpoints.const.mjs +5 -1
- package/esm2022/lib/models/income-source/salary-forecast.mjs +5 -1
- package/esm2022/lib/models/income-source/sole-forecast.mjs +5 -1
- package/esm2022/lib/models/property/property-forecast.mjs +6 -2
- package/esm2022/lib/models/sole/sole-business-loss.mjs +5 -1
- package/esm2022/lib/services/http/client/annual-client-details.service.mjs +23 -0
- package/esm2022/lib/services/http/client/capital-loss/capital-loss-messages.enum.mjs +7 -0
- package/esm2022/lib/services/http/client/capital-loss/capital-loss.service.mjs +23 -0
- package/esm2022/lib/services/http/client/capital-loss/index.mjs +3 -0
- package/esm2022/lib/services/http/client/index.mjs +3 -2
- package/esm2022/lib/services/http/property/property.service.mjs +2 -1
- package/fesm2022/taxtank-core.mjs +846 -783
- package/fesm2022/taxtank-core.mjs.map +1 -1
- package/lib/db/Models/client/annual-client-details.d.ts +0 -1
- package/lib/db/Models/incomeSource/income-source-forecast.d.ts +1 -0
- package/lib/db/Models/incomeSource/salary-forecast.d.ts +2 -0
- package/lib/db/Models/property/property-forecast.d.ts +2 -0
- package/lib/db/Models/sole/sole-business-loss.d.ts +2 -0
- package/lib/db/Models/sole/sole-forecast.d.ts +2 -0
- package/lib/forms/client/capital-loss.form.d.ts +6 -0
- package/lib/forms/client/index.d.ts +1 -0
- package/lib/models/client/annual-client-details.d.ts +0 -1
- package/lib/models/client/capital-loss.d.ts +11 -0
- package/lib/models/client/capital-loss.interface.d.ts +6 -0
- package/lib/models/client/index.d.ts +2 -0
- package/lib/models/income-source/salary-forecast.d.ts +2 -0
- package/lib/models/income-source/sole-forecast.d.ts +2 -0
- package/lib/models/property/property-forecast.d.ts +2 -0
- package/lib/models/sole/sole-business-loss.d.ts +2 -0
- package/lib/services/http/client/{capital-gain/annual-client-details.service.d.ts → annual-client-details.service.d.ts} +4 -4
- package/lib/services/http/client/capital-loss/capital-loss-messages.enum.d.ts +5 -0
- package/lib/services/http/client/capital-loss/capital-loss.service.d.ts +12 -0
- package/lib/services/http/client/capital-loss/index.d.ts +2 -0
- package/lib/services/http/client/index.d.ts +2 -1
- package/package.json +1 -1
- package/esm2022/lib/services/http/client/capital-gain/annual-client-details.service.mjs +0 -23
@@ -20,9 +20,9 @@ import orderBy from 'lodash/orderBy';
|
|
20
20
|
import uniq from 'lodash/uniq';
|
21
21
|
import moment from 'moment';
|
22
22
|
import { DateRange } from 'moment-range';
|
23
|
+
import { Validators, FormGroup, FormArray, UntypedFormControl, UntypedFormArray, UntypedFormGroup, FormControl } from '@angular/forms';
|
23
24
|
import ceil from 'lodash/ceil';
|
24
25
|
import range from 'lodash/range';
|
25
|
-
import { Validators, FormGroup, FormArray, UntypedFormControl, UntypedFormArray, UntypedFormGroup, FormControl } from '@angular/forms';
|
26
26
|
import compact from 'lodash/compact';
|
27
27
|
import concat from 'lodash/concat';
|
28
28
|
import cloneDeep$1 from 'lodash/cloneDeep';
|
@@ -3728,679 +3728,280 @@ var SalaryForecastFrequencyEnum;
|
|
3728
3728
|
SalaryForecastFrequencyEnum[SalaryForecastFrequencyEnum["WEEKLY"] = 52] = "WEEKLY";
|
3729
3729
|
})(SalaryForecastFrequencyEnum || (SalaryForecastFrequencyEnum = {}));
|
3730
3730
|
|
3731
|
-
|
3732
|
-
|
3733
|
-
|
3734
|
-
|
3735
|
-
|
3736
|
-
|
3737
|
-
|
3738
|
-
|
3739
|
-
|
3740
|
-
|
3741
|
-
|
3742
|
-
|
3743
|
-
|
3744
|
-
|
3745
|
-
|
3746
|
-
|
3747
|
-
|
3748
|
-
|
3749
|
-
|
3731
|
+
var MyAccountHistoryInitiatedByEnum;
|
3732
|
+
(function (MyAccountHistoryInitiatedByEnum) {
|
3733
|
+
MyAccountHistoryInitiatedByEnum[MyAccountHistoryInitiatedByEnum["OWNER"] = 0] = "OWNER";
|
3734
|
+
MyAccountHistoryInitiatedByEnum[MyAccountHistoryInitiatedByEnum["ACCOUNTANT"] = 1] = "ACCOUNTANT";
|
3735
|
+
})(MyAccountHistoryInitiatedByEnum || (MyAccountHistoryInitiatedByEnum = {}));
|
3736
|
+
|
3737
|
+
var MyAccountHistoryStatusEnum;
|
3738
|
+
(function (MyAccountHistoryStatusEnum) {
|
3739
|
+
MyAccountHistoryStatusEnum[MyAccountHistoryStatusEnum["SUCCESS"] = 0] = "SUCCESS";
|
3740
|
+
MyAccountHistoryStatusEnum[MyAccountHistoryStatusEnum["ERROR"] = 1] = "ERROR";
|
3741
|
+
})(MyAccountHistoryStatusEnum || (MyAccountHistoryStatusEnum = {}));
|
3742
|
+
|
3743
|
+
var MyAccountHistoryTypeEnum;
|
3744
|
+
(function (MyAccountHistoryTypeEnum) {
|
3745
|
+
MyAccountHistoryTypeEnum[MyAccountHistoryTypeEnum["REVIEW"] = 0] = "REVIEW";
|
3746
|
+
MyAccountHistoryTypeEnum[MyAccountHistoryTypeEnum["UPGRADE_PLAN"] = 1] = "UPGRADE_PLAN";
|
3747
|
+
MyAccountHistoryTypeEnum[MyAccountHistoryTypeEnum["UPLOAD_DOCUMENT"] = 2] = "UPLOAD_DOCUMENT";
|
3748
|
+
})(MyAccountHistoryTypeEnum || (MyAccountHistoryTypeEnum = {}));
|
3749
|
+
|
3750
|
+
class MyAccountHistory {
|
3750
3751
|
}
|
3751
|
-
__decorate([
|
3752
|
-
Type(() => Number)
|
3753
|
-
], SalaryForecast.prototype, "tax", void 0);
|
3754
|
-
__decorate([
|
3755
|
-
Type(() => Number)
|
3756
|
-
], SalaryForecast.prototype, "netPay", void 0);
|
3757
|
-
__decorate([
|
3758
|
-
Type(() => IncomeSource)
|
3759
|
-
], SalaryForecast.prototype, "incomeSource", void 0);
|
3760
3752
|
|
3761
|
-
class
|
3762
|
-
get netPay() {
|
3763
|
-
return this.amount;
|
3764
|
-
}
|
3753
|
+
class Occupation extends Occupation$1 {
|
3765
3754
|
}
|
3766
|
-
__decorate([
|
3767
|
-
Type(() => IncomeSource)
|
3768
|
-
], SoleForecast.prototype, "incomeSource", void 0);
|
3769
3755
|
|
3770
|
-
var
|
3771
|
-
(function (
|
3772
|
-
|
3773
|
-
|
3774
|
-
|
3775
|
-
|
3776
|
-
|
3777
|
-
|
3778
|
-
|
3779
|
-
|
3780
|
-
|
3781
|
-
|
3782
|
-
|
3783
|
-
|
3756
|
+
var UserRolesEnum;
|
3757
|
+
(function (UserRolesEnum) {
|
3758
|
+
UserRolesEnum["FIRM_OWNER"] = "ROLE_FIRM_OWNER";
|
3759
|
+
UserRolesEnum["FIRM_MANAGER"] = "ROLE_FIRM_MANAGER";
|
3760
|
+
UserRolesEnum["FIRM_TOP_MANAGER"] = "ROLE_FIRM_TOP_MANAGER";
|
3761
|
+
UserRolesEnum["CLIENT"] = "ROLE_CLIENT";
|
3762
|
+
UserRolesEnum["EMPLOYEE"] = "ROLE_EMPLOYEE";
|
3763
|
+
UserRolesEnum["ACCOUNTANT"] = "ROLE_ACCOUNTANT";
|
3764
|
+
UserRolesEnum["ADVISOR"] = "ROLE_ADVISOR";
|
3765
|
+
UserRolesEnum["USER"] = "ROLE_USER";
|
3766
|
+
UserRolesEnum["SUBSCRIPTION"] = "ROLE_USER_SUBSCRIPTION";
|
3767
|
+
UserRolesEnum["WORK_TANK"] = "ROLE_USER_WORK";
|
3768
|
+
UserRolesEnum["PROPERTY_TANK"] = "ROLE_USER_PROPERTY";
|
3769
|
+
UserRolesEnum["SOLE_TANK"] = "ROLE_USER_SOLE";
|
3770
|
+
UserRolesEnum["HOLDING_TANK"] = "ROLE_USER_HOLDING";
|
3771
|
+
UserRolesEnum["SWITCH_USER"] = "IS_IMPERSONATOR";
|
3772
|
+
})(UserRolesEnum || (UserRolesEnum = {}));
|
3784
3773
|
|
3785
|
-
|
3786
|
-
|
3787
|
-
|
3788
|
-
|
3789
|
-
|
3790
|
-
|
3791
|
-
|
3792
|
-
|
3774
|
+
/**
|
3775
|
+
* role hierarchy
|
3776
|
+
*/
|
3777
|
+
const USER_ROLES = {
|
3778
|
+
ROLE_FIRM_OWNER: [UserRolesEnum.FIRM_OWNER, UserRolesEnum.FIRM_MANAGER, UserRolesEnum.ACCOUNTANT, UserRolesEnum.ADVISOR],
|
3779
|
+
ROLE_FIRM_MANAGER: [UserRolesEnum.FIRM_MANAGER, UserRolesEnum.ACCOUNTANT, UserRolesEnum.ADVISOR],
|
3780
|
+
ROLE_EMPLOYEE: [UserRolesEnum.ACCOUNTANT, UserRolesEnum.ADVISOR],
|
3781
|
+
ROLE_ACCOUNTANT: [UserRolesEnum.ACCOUNTANT],
|
3782
|
+
ROLE_ADVISOR: [UserRolesEnum.ADVISOR],
|
3783
|
+
// @TODO makes no sense, these roles can't be hierarchical
|
3784
|
+
ROLE_CLIENT: [UserRolesEnum.CLIENT],
|
3785
|
+
ROLE_USER_SUBSCRIPTION: [UserRolesEnum.SUBSCRIPTION],
|
3786
|
+
ROLE_USER_WORK: [UserRolesEnum.WORK_TANK],
|
3787
|
+
ROLE_USER_PROPERTY: [UserRolesEnum.PROPERTY_TANK],
|
3788
|
+
ROLE_USER_SOLE: [UserRolesEnum.SOLE_TANK],
|
3789
|
+
ROLE_USER_HOLDING: [UserRolesEnum.HOLDING_TANK],
|
3790
|
+
ROLE_PREVIOUS_ADMIN: [UserRolesEnum.SWITCH_USER],
|
3791
|
+
};
|
3793
3792
|
|
3794
|
-
|
3795
|
-
|
3796
|
-
|
3797
|
-
|
3793
|
+
/**
|
3794
|
+
* Class with basic information about registering user
|
3795
|
+
*/
|
3796
|
+
class UserToRegister {
|
3797
|
+
}
|
3798
3798
|
|
3799
|
-
|
3800
|
-
|
3801
|
-
|
3802
|
-
|
3803
|
-
|
3804
|
-
IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["PENSIONS_AND_ALLOWANCES"] = 5] = "PENSIONS_AND_ALLOWANCES";
|
3805
|
-
IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["SUPERANNUATION"] = 8] = "SUPERANNUATION";
|
3806
|
-
IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["ATTRIBUTED_P_S_I"] = 11] = "ATTRIBUTED_P_S_I";
|
3807
|
-
})(IncomeSourceTypeListWorkEnum || (IncomeSourceTypeListWorkEnum = {}));
|
3799
|
+
const USER_WORK_POSITION = {
|
3800
|
+
[UserRolesEnum.EMPLOYEE]: 'Employee',
|
3801
|
+
[UserRolesEnum.FIRM_MANAGER]: 'Manager',
|
3802
|
+
[UserRolesEnum.FIRM_OWNER]: 'Firm Owner'
|
3803
|
+
};
|
3808
3804
|
|
3809
|
-
var
|
3810
|
-
(function (
|
3811
|
-
|
3812
|
-
|
3813
|
-
|
3814
|
-
|
3815
|
-
IncomeSourceTypeListHoldingEnum[IncomeSourceTypeListHoldingEnum["PARTNERSHIPS"] = 12] = "PARTNERSHIPS";
|
3816
|
-
})(IncomeSourceTypeListHoldingEnum || (IncomeSourceTypeListHoldingEnum = {}));
|
3805
|
+
var UserStatusEnum;
|
3806
|
+
(function (UserStatusEnum) {
|
3807
|
+
UserStatusEnum[UserStatusEnum["INACTIVE"] = 0] = "INACTIVE";
|
3808
|
+
UserStatusEnum[UserStatusEnum["ON_BOARDING"] = 1] = "ON_BOARDING";
|
3809
|
+
UserStatusEnum[UserStatusEnum["ACTIVE"] = 2] = "ACTIVE";
|
3810
|
+
})(UserStatusEnum || (UserStatusEnum = {}));
|
3817
3811
|
|
3818
|
-
class
|
3819
|
-
|
3820
|
-
|
3821
|
-
|
3822
|
-
|
3823
|
-
|
3824
|
-
|
3825
|
-
|
3826
|
-
|
3812
|
+
class ClientDetails extends ClientDetails$1 {
|
3813
|
+
/**
|
3814
|
+
* reminder to sign basiq consent after x days before the expiration
|
3815
|
+
*/
|
3816
|
+
static { this.consentExpiryReminderDays = 30; }
|
3817
|
+
get taxFileNumberMasked() {
|
3818
|
+
const maskedLength = this.taxFileNumber.length - 4;
|
3819
|
+
const maskedPart = '*'.repeat(maskedLength);
|
3820
|
+
const lastFour = this.taxFileNumber.slice(-4);
|
3821
|
+
return maskedPart + lastFour;
|
3827
3822
|
}
|
3828
|
-
|
3829
|
-
|
3823
|
+
isBasiqConsentExpiring() {
|
3824
|
+
if (!this.basiqConsentExpiryDate || this.isBasiqConsentExpired()) {
|
3825
|
+
return false;
|
3826
|
+
}
|
3827
|
+
const reminderDate = new Date(this.basiqConsentExpiryDate);
|
3828
|
+
reminderDate.setDate(this.basiqConsentExpiryDate.getDate() - ClientDetails.consentExpiryReminderDays);
|
3829
|
+
return new Date() >= reminderDate;
|
3830
3830
|
}
|
3831
|
-
|
3832
|
-
return
|
3831
|
+
isBasiqConsentExpired() {
|
3832
|
+
return this.basiqConsentExpiryDate && new Date() >= this.basiqConsentExpiryDate;
|
3833
3833
|
}
|
3834
3834
|
}
|
3835
|
+
__decorate([
|
3836
|
+
Type(() => Date)
|
3837
|
+
], ClientDetails.prototype, "basiqConsentExpiryDate", void 0);
|
3835
3838
|
|
3836
|
-
class
|
3839
|
+
class AnnualClientDetails extends AbstractModel {
|
3837
3840
|
constructor() {
|
3838
3841
|
super(...arguments);
|
3839
|
-
this.
|
3840
|
-
this.
|
3841
|
-
this.isTaxFree = false;
|
3842
|
-
}
|
3843
|
-
/**
|
3844
|
-
* Sometimes Income source has Salary & Income source forecasts,
|
3845
|
-
* and we need these fields to work with Income source forecasts like with Salary Forecasts
|
3846
|
-
*/
|
3847
|
-
get netPay() {
|
3848
|
-
return this.amount;
|
3842
|
+
this.spouseAnnualIncome = 0;
|
3843
|
+
this.financialYear = new FinancialYear().year;
|
3849
3844
|
}
|
3850
|
-
get
|
3851
|
-
return this.
|
3845
|
+
get spouseMonthlyIncome() {
|
3846
|
+
return this.spouseAnnualIncome / 12;
|
3852
3847
|
}
|
3853
|
-
|
3854
|
-
|
3848
|
+
}
|
3849
|
+
__decorate([
|
3850
|
+
Type(() => ClientDetails)
|
3851
|
+
], AnnualClientDetails.prototype, "clientDetails", void 0);
|
3852
|
+
|
3853
|
+
var ClientInviteStatusEnum;
|
3854
|
+
(function (ClientInviteStatusEnum) {
|
3855
|
+
ClientInviteStatusEnum[ClientInviteStatusEnum["PENDING"] = 1] = "PENDING";
|
3856
|
+
ClientInviteStatusEnum[ClientInviteStatusEnum["REJECTED"] = 2] = "REJECTED";
|
3857
|
+
})(ClientInviteStatusEnum || (ClientInviteStatusEnum = {}));
|
3858
|
+
|
3859
|
+
var ClientInviteTypeEnum;
|
3860
|
+
(function (ClientInviteTypeEnum) {
|
3861
|
+
ClientInviteTypeEnum[ClientInviteTypeEnum["FROM_CLIENT"] = 1] = "FROM_CLIENT";
|
3862
|
+
ClientInviteTypeEnum[ClientInviteTypeEnum["FROM_EMPLOYEE"] = 2] = "FROM_EMPLOYEE";
|
3863
|
+
})(ClientInviteTypeEnum || (ClientInviteTypeEnum = {}));
|
3864
|
+
|
3865
|
+
class RegistrationInvite extends RegistrationInvite$1 {
|
3866
|
+
get fullName() {
|
3867
|
+
return `${this.firstName} ${this.lastName}`;
|
3855
3868
|
}
|
3856
3869
|
}
|
3857
3870
|
__decorate([
|
3858
|
-
Type(() =>
|
3859
|
-
],
|
3871
|
+
Type(() => AppFile)
|
3872
|
+
], RegistrationInvite.prototype, "file", void 0);
|
3860
3873
|
__decorate([
|
3861
|
-
Type(() =>
|
3862
|
-
],
|
3874
|
+
Type(() => User)
|
3875
|
+
], RegistrationInvite.prototype, "user", void 0);
|
3863
3876
|
|
3864
|
-
|
3865
|
-
|
3866
|
-
|
3867
|
-
|
3868
|
-
|
3869
|
-
|
3877
|
+
var PhoneTypeEnum;
|
3878
|
+
(function (PhoneTypeEnum) {
|
3879
|
+
PhoneTypeEnum[PhoneTypeEnum["MOBILE"] = 1] = "MOBILE";
|
3880
|
+
PhoneTypeEnum[PhoneTypeEnum["OFFICE"] = 2] = "OFFICE";
|
3881
|
+
})(PhoneTypeEnum || (PhoneTypeEnum = {}));
|
3882
|
+
|
3883
|
+
class Phone extends Phone$1 {
|
3884
|
+
constructor() {
|
3885
|
+
super(...arguments);
|
3886
|
+
this.country = Country.australia;
|
3887
|
+
this.type = PhoneTypeEnum.MOBILE;
|
3870
3888
|
}
|
3871
|
-
|
3872
|
-
return this.
|
3873
|
-
}
|
3874
|
-
isHolding() {
|
3875
|
-
return this.type === IncomeSourceTypeEnum.HOLDING;
|
3876
|
-
}
|
3877
|
-
/**
|
3878
|
-
* Get salary and other income forecasts
|
3879
|
-
*/
|
3880
|
-
get forecasts() {
|
3881
|
-
return [...this.salaryForecasts, ...this.incomeSourceForecasts, ...this.soleForecasts];
|
3882
|
-
}
|
3883
|
-
/**
|
3884
|
-
* Get actual (1st from the list) forecast
|
3885
|
-
*/
|
3886
|
-
get actualForecast() {
|
3887
|
-
return this.forecasts[0];
|
3888
|
-
}
|
3889
|
-
/**
|
3890
|
-
* Check if user was working in month taken by the index
|
3891
|
-
* @param monthIndex by which month should be taken
|
3892
|
-
*/
|
3893
|
-
isWorkedInMonth(monthIndex) {
|
3894
|
-
const monthDate = new FinancialYear().getMonthDate(monthIndex);
|
3895
|
-
return (!this.dateFrom || monthDate >= this.dateFrom) && (!this.dateTo || monthDate < this.dateTo);
|
3889
|
+
toString() {
|
3890
|
+
return `+${this.country.callingCode} ${this.number}`;
|
3896
3891
|
}
|
3897
3892
|
}
|
3898
3893
|
__decorate([
|
3899
|
-
Type(() =>
|
3900
|
-
],
|
3894
|
+
Type(() => Country)
|
3895
|
+
], Phone.prototype, "country", void 0);
|
3896
|
+
|
3897
|
+
class Firm extends Firm$1 {
|
3898
|
+
isAccountant() {
|
3899
|
+
return this.type === FirmTypeEnum.ACCOUNTANT;
|
3900
|
+
}
|
3901
|
+
}
|
3901
3902
|
__decorate([
|
3902
|
-
Type(() =>
|
3903
|
-
],
|
3903
|
+
Type(() => User)
|
3904
|
+
], Firm.prototype, "owner", void 0);
|
3904
3905
|
__decorate([
|
3905
|
-
Type(() =>
|
3906
|
-
],
|
3906
|
+
Type(() => Address)
|
3907
|
+
], Firm.prototype, "address", void 0);
|
3907
3908
|
__decorate([
|
3908
|
-
Type(() =>
|
3909
|
-
],
|
3909
|
+
Type(() => Phone)
|
3910
|
+
], Firm.prototype, "phone", void 0);
|
3910
3911
|
__decorate([
|
3911
|
-
Type(() =>
|
3912
|
-
],
|
3912
|
+
Type(() => AppFile)
|
3913
|
+
], Firm.prototype, "file", void 0);
|
3913
3914
|
|
3914
|
-
|
3915
|
-
|
3916
|
-
|
3917
|
-
|
3918
|
-
constructor(forecastedIncomeAmount, transactions) {
|
3919
|
-
this.forecastedIncomeAmount = forecastedIncomeAmount;
|
3920
|
-
this.transactions = transactions;
|
3921
|
-
}
|
3922
|
-
/**
|
3923
|
-
* Get prepared data for income sources chart
|
3924
|
-
*/
|
3925
|
-
get() {
|
3926
|
-
const chartData = [{
|
3927
|
-
id: 'actualIncome',
|
3928
|
-
name: 'Actual Income',
|
3929
|
-
data: [],
|
3930
|
-
// display future actual incomes with dash line and past actual incomes with solid line
|
3931
|
-
zones: [{
|
3932
|
-
// line style after current month
|
3933
|
-
value: new FinancialYear().getMonthDate(new Date().getMonth()).getTime(),
|
3934
|
-
dashStyle: 'Solid'
|
3935
|
-
}, {
|
3936
|
-
// default line style
|
3937
|
-
dashStyle: 'Dash'
|
3938
|
-
}]
|
3939
|
-
}, {
|
3940
|
-
id: 'forecastedIncome',
|
3941
|
-
name: 'Forecasted Income',
|
3942
|
-
data: [],
|
3943
|
-
}];
|
3944
|
-
for (const key in MonthNameShortEnum) {
|
3945
|
-
if (MonthNameShortEnum.hasOwnProperty(key)) {
|
3946
|
-
// transaction collection for provided month
|
3947
|
-
const monthTransactionCollection = this.transactions.getByMonth(+MonthNumberEnum[key]);
|
3948
|
-
chartData[0].data.push([new FinancialYear().getMonthDate(+MonthNumberEnum[key]).getTime(), monthTransactionCollection.amount]);
|
3949
|
-
chartData[1].data.push([new FinancialYear().getMonthDate(+MonthNumberEnum[key]).getTime(), this.forecastedIncomeAmount / 12]);
|
3950
|
-
}
|
3951
|
-
}
|
3952
|
-
return chartData;
|
3915
|
+
class FirmBranch extends AbstractModel {
|
3916
|
+
constructor() {
|
3917
|
+
super(...arguments);
|
3918
|
+
this.isMain = false;
|
3953
3919
|
}
|
3954
3920
|
}
|
3921
|
+
__decorate([
|
3922
|
+
Type(() => Firm)
|
3923
|
+
], FirmBranch.prototype, "firm", void 0);
|
3924
|
+
__decorate([
|
3925
|
+
Type(() => Address)
|
3926
|
+
], FirmBranch.prototype, "address", void 0);
|
3927
|
+
__decorate([
|
3928
|
+
Type(() => Phone)
|
3929
|
+
], FirmBranch.prototype, "phone", void 0);
|
3955
3930
|
|
3956
|
-
|
3957
|
-
|
3958
|
-
|
3959
|
-
|
3960
|
-
|
3961
|
-
|
3962
|
-
class AllocationRuleTransaction extends AllocationRuleTransaction$1 {
|
3963
|
-
constructor() {
|
3964
|
-
super(...arguments);
|
3965
|
-
this.claimPercent = 100;
|
3966
|
-
this.tax = 0;
|
3967
|
-
this.amount = null;
|
3931
|
+
class ClientInvite extends ClientInvite$1 {
|
3932
|
+
/**
|
3933
|
+
* Check if client invite status is pending
|
3934
|
+
*/
|
3935
|
+
isPending() {
|
3936
|
+
return this.status === ClientInviteStatusEnum.PENDING;
|
3968
3937
|
}
|
3969
|
-
|
3970
|
-
|
3938
|
+
/**
|
3939
|
+
* Check if client invite status is accepted
|
3940
|
+
*/
|
3941
|
+
isAccepted() {
|
3942
|
+
return !this.isPending() && !this.isRejected();
|
3971
3943
|
}
|
3972
|
-
|
3973
|
-
|
3974
|
-
|
3975
|
-
|
3976
|
-
|
3977
|
-
// Property claim (ownership% x shared%) for property expenses, taxable percent for others
|
3978
|
-
if (this.chartAccounts?.isProperty() && this.property) {
|
3979
|
-
if (this.chartAccounts.isPropertyExpense() && this.chartAccounts.id !== ChartAccountsListEnum.PLATFORM_FEES) {
|
3980
|
-
claimPercent *= this.property?.claimCoefficient;
|
3981
|
-
}
|
3982
|
-
}
|
3983
|
-
return claimPercent;
|
3944
|
+
/**
|
3945
|
+
* Check if client invite status is rejected
|
3946
|
+
*/
|
3947
|
+
isRejected() {
|
3948
|
+
return this.status === ClientInviteStatusEnum.REJECTED;
|
3984
3949
|
}
|
3985
3950
|
/**
|
3986
|
-
*
|
3951
|
+
* Check if client invite initiated by firm
|
3987
3952
|
*/
|
3988
|
-
|
3989
|
-
return
|
3953
|
+
isFromEmployee() {
|
3954
|
+
return this.type === ClientInviteTypeEnum.FROM_EMPLOYEE;
|
3990
3955
|
}
|
3991
3956
|
/**
|
3992
|
-
*
|
3957
|
+
* Check if client invite initiated by client
|
3993
3958
|
*/
|
3994
|
-
|
3995
|
-
|
3996
|
-
|
3997
|
-
|
3998
|
-
|
3999
|
-
|
4000
|
-
|
4001
|
-
|
4002
|
-
|
4003
|
-
|
4004
|
-
|
4005
|
-
business: this.business,
|
4006
|
-
source: TransactionSourceEnum.BANK_TRANSACTION,
|
4007
|
-
operation: TransactionOperationEnum.ALLOCATE,
|
4008
|
-
transactions: [],
|
4009
|
-
});
|
4010
|
-
// split allocation
|
4011
|
-
if (this.amountPercent) {
|
4012
|
-
transaction.amount = bankTransaction.amount * this.amountPercentCoefficient / this.gstCoefficient;
|
4013
|
-
}
|
4014
|
-
// child transactions inherit most of the fields from parent transaction
|
4015
|
-
this.childTransactions.forEach((childRuleTransaction) => {
|
4016
|
-
const childTransaction = childRuleTransaction.toTransaction();
|
4017
|
-
childTransaction.amount = childRuleTransaction.amount;
|
4018
|
-
childTransaction.setParent(transaction);
|
4019
|
-
transaction.transactions.push(childTransaction);
|
4020
|
-
});
|
4021
|
-
return transaction;
|
3959
|
+
isFromClient() {
|
3960
|
+
return this.type === ClientInviteTypeEnum.FROM_CLIENT;
|
3961
|
+
}
|
3962
|
+
get firstName() {
|
3963
|
+
return this.client ? this.client.firstName : this.registrationInvite?.firstName;
|
3964
|
+
}
|
3965
|
+
get fullName() {
|
3966
|
+
return this.client ? this.client.fullName : this.registrationInvite?.fullName;
|
3967
|
+
}
|
3968
|
+
get email() {
|
3969
|
+
return this.client ? this.client.email : this.registrationInvite?.email;
|
4022
3970
|
}
|
4023
3971
|
}
|
4024
3972
|
__decorate([
|
4025
|
-
Type(() =>
|
4026
|
-
|
4027
|
-
,
|
4028
|
-
Transform(({ value }) => ({ id: value.id }), { toPlainOnly: true })
|
4029
|
-
], AllocationRuleTransaction.prototype, "chartAccounts", void 0);
|
4030
|
-
__decorate([
|
4031
|
-
Type(() => Property),
|
4032
|
-
Transform(({ value }) => value ? { id: value.id } : null, { toPlainOnly: true })
|
4033
|
-
], AllocationRuleTransaction.prototype, "property", void 0);
|
4034
|
-
__decorate([
|
4035
|
-
Type(() => Loan),
|
4036
|
-
Transform(({ value }) => value ? { id: value.id } : null, { toPlainOnly: true })
|
4037
|
-
], AllocationRuleTransaction.prototype, "loan", void 0);
|
4038
|
-
__decorate([
|
4039
|
-
Type(() => IncomeSource),
|
4040
|
-
Transform(({ value }) => value ? { id: value.id } : null, { toPlainOnly: true })
|
4041
|
-
], AllocationRuleTransaction.prototype, "incomeSource", void 0);
|
3973
|
+
Type(() => Date)
|
3974
|
+
], ClientInvite.prototype, "sentOn", void 0);
|
4042
3975
|
__decorate([
|
4043
|
-
Type(() =>
|
4044
|
-
|
4045
|
-
], AllocationRuleTransaction.prototype, "business", void 0);
|
3976
|
+
Type(() => Date)
|
3977
|
+
], ClientInvite.prototype, "updatedAt", void 0);
|
4046
3978
|
__decorate([
|
4047
|
-
Type(() =>
|
4048
|
-
],
|
3979
|
+
Type(() => User)
|
3980
|
+
], ClientInvite.prototype, "client", void 0);
|
4049
3981
|
__decorate([
|
4050
|
-
Type(() =>
|
4051
|
-
],
|
3982
|
+
Type(() => User)
|
3983
|
+
], ClientInvite.prototype, "employee", void 0);
|
4052
3984
|
__decorate([
|
4053
|
-
Type(() =>
|
4054
|
-
],
|
3985
|
+
Type(() => RegistrationInvite)
|
3986
|
+
], ClientInvite.prototype, "registrationInvite", void 0);
|
4055
3987
|
__decorate([
|
4056
|
-
Type(() =>
|
4057
|
-
],
|
3988
|
+
Type(() => Firm)
|
3989
|
+
], ClientInvite.prototype, "firm", void 0);
|
4058
3990
|
__decorate([
|
4059
|
-
Type(() =>
|
4060
|
-
],
|
4061
|
-
|
4062
|
-
var TransactionTypeEnum;
|
4063
|
-
(function (TransactionTypeEnum) {
|
4064
|
-
TransactionTypeEnum[TransactionTypeEnum["DEBIT"] = 1] = "DEBIT";
|
4065
|
-
TransactionTypeEnum[TransactionTypeEnum["CREDIT"] = 2] = "CREDIT";
|
4066
|
-
})(TransactionTypeEnum || (TransactionTypeEnum = {}));
|
3991
|
+
Type(() => FirmBranch)
|
3992
|
+
], ClientInvite.prototype, "firmBranch", void 0);
|
4067
3993
|
|
4068
|
-
class
|
4069
|
-
|
4070
|
-
return
|
3994
|
+
class ClientMovement extends ClientMovement$1 {
|
3995
|
+
get firm() {
|
3996
|
+
return this.firmBranch.firm;
|
4071
3997
|
}
|
4072
3998
|
}
|
4073
|
-
|
4074
|
-
|
4075
|
-
|
4076
|
-
|
4077
|
-
|
4078
|
-
|
4079
|
-
], AssetSale.prototype, "date", void 0);
|
4080
|
-
|
4081
|
-
class PropertySale extends AssetSale {
|
4082
|
-
get saleCostsTotalAmount() {
|
4083
|
-
return this.commission + this.legalFees + this.otherCost;
|
4084
|
-
}
|
4085
|
-
/**
|
4086
|
-
* CGT is not applicable for sales with "Principle place of residence" exemption type.
|
4087
|
-
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form ("Capital gains or losses" section)
|
4088
|
-
*/
|
4089
|
-
isCGTApplicable() {
|
4090
|
-
return this.taxExemption?.id !== TaxExemptionEnum.PPR;
|
4091
|
-
}
|
4092
|
-
get netPrice() {
|
4093
|
-
return this.price - this.saleCostsTotalAmount;
|
4094
|
-
}
|
4095
|
-
}
|
4096
|
-
__decorate([
|
4097
|
-
Type(() => Number)
|
4098
|
-
], PropertySale.prototype, "holdingCosts", void 0);
|
4099
|
-
__decorate([
|
4100
|
-
Type(() => Number)
|
4101
|
-
], PropertySale.prototype, "structuralImprovementsWDV", void 0);
|
4102
|
-
__decorate([
|
4103
|
-
Type(() => Number)
|
4104
|
-
], PropertySale.prototype, "buildingAtCostClaimed", void 0);
|
4105
|
-
__decorate([
|
4106
|
-
Type(() => Number)
|
4107
|
-
], PropertySale.prototype, "price", void 0);
|
4108
|
-
__decorate([
|
4109
|
-
Type(() => Number)
|
4110
|
-
], PropertySale.prototype, "commission", void 0);
|
4111
|
-
__decorate([
|
4112
|
-
Type(() => Number)
|
4113
|
-
], PropertySale.prototype, "legalFees", void 0);
|
4114
|
-
__decorate([
|
4115
|
-
Type(() => Number)
|
4116
|
-
], PropertySale.prototype, "otherCost", void 0);
|
4117
|
-
__decorate([
|
4118
|
-
Type(() => Date)
|
4119
|
-
], PropertySale.prototype, "settlementDate", void 0);
|
4120
|
-
__decorate([
|
4121
|
-
Type(() => Date)
|
4122
|
-
], PropertySale.prototype, "date", void 0);
|
4123
|
-
__decorate([
|
4124
|
-
Type(() => TaxExemption)
|
4125
|
-
], PropertySale.prototype, "taxExemption", void 0);
|
4126
|
-
__decorate([
|
4127
|
-
Type(() => PropertySaleTaxExemptionMetaField$1)
|
4128
|
-
], PropertySale.prototype, "taxExemptionMetaFields", void 0);
|
4129
|
-
|
4130
|
-
var MyAccountHistoryInitiatedByEnum;
|
4131
|
-
(function (MyAccountHistoryInitiatedByEnum) {
|
4132
|
-
MyAccountHistoryInitiatedByEnum[MyAccountHistoryInitiatedByEnum["OWNER"] = 0] = "OWNER";
|
4133
|
-
MyAccountHistoryInitiatedByEnum[MyAccountHistoryInitiatedByEnum["ACCOUNTANT"] = 1] = "ACCOUNTANT";
|
4134
|
-
})(MyAccountHistoryInitiatedByEnum || (MyAccountHistoryInitiatedByEnum = {}));
|
4135
|
-
|
4136
|
-
var MyAccountHistoryStatusEnum;
|
4137
|
-
(function (MyAccountHistoryStatusEnum) {
|
4138
|
-
MyAccountHistoryStatusEnum[MyAccountHistoryStatusEnum["SUCCESS"] = 0] = "SUCCESS";
|
4139
|
-
MyAccountHistoryStatusEnum[MyAccountHistoryStatusEnum["ERROR"] = 1] = "ERROR";
|
4140
|
-
})(MyAccountHistoryStatusEnum || (MyAccountHistoryStatusEnum = {}));
|
4141
|
-
|
4142
|
-
var MyAccountHistoryTypeEnum;
|
4143
|
-
(function (MyAccountHistoryTypeEnum) {
|
4144
|
-
MyAccountHistoryTypeEnum[MyAccountHistoryTypeEnum["REVIEW"] = 0] = "REVIEW";
|
4145
|
-
MyAccountHistoryTypeEnum[MyAccountHistoryTypeEnum["UPGRADE_PLAN"] = 1] = "UPGRADE_PLAN";
|
4146
|
-
MyAccountHistoryTypeEnum[MyAccountHistoryTypeEnum["UPLOAD_DOCUMENT"] = 2] = "UPLOAD_DOCUMENT";
|
4147
|
-
})(MyAccountHistoryTypeEnum || (MyAccountHistoryTypeEnum = {}));
|
4148
|
-
|
4149
|
-
class MyAccountHistory {
|
4150
|
-
}
|
4151
|
-
|
4152
|
-
class Occupation extends Occupation$1 {
|
4153
|
-
}
|
4154
|
-
|
4155
|
-
var UserRolesEnum;
|
4156
|
-
(function (UserRolesEnum) {
|
4157
|
-
UserRolesEnum["FIRM_OWNER"] = "ROLE_FIRM_OWNER";
|
4158
|
-
UserRolesEnum["FIRM_MANAGER"] = "ROLE_FIRM_MANAGER";
|
4159
|
-
UserRolesEnum["FIRM_TOP_MANAGER"] = "ROLE_FIRM_TOP_MANAGER";
|
4160
|
-
UserRolesEnum["CLIENT"] = "ROLE_CLIENT";
|
4161
|
-
UserRolesEnum["EMPLOYEE"] = "ROLE_EMPLOYEE";
|
4162
|
-
UserRolesEnum["ACCOUNTANT"] = "ROLE_ACCOUNTANT";
|
4163
|
-
UserRolesEnum["ADVISOR"] = "ROLE_ADVISOR";
|
4164
|
-
UserRolesEnum["USER"] = "ROLE_USER";
|
4165
|
-
UserRolesEnum["SUBSCRIPTION"] = "ROLE_USER_SUBSCRIPTION";
|
4166
|
-
UserRolesEnum["WORK_TANK"] = "ROLE_USER_WORK";
|
4167
|
-
UserRolesEnum["PROPERTY_TANK"] = "ROLE_USER_PROPERTY";
|
4168
|
-
UserRolesEnum["SOLE_TANK"] = "ROLE_USER_SOLE";
|
4169
|
-
UserRolesEnum["HOLDING_TANK"] = "ROLE_USER_HOLDING";
|
4170
|
-
UserRolesEnum["SWITCH_USER"] = "IS_IMPERSONATOR";
|
4171
|
-
})(UserRolesEnum || (UserRolesEnum = {}));
|
4172
|
-
|
4173
|
-
/**
|
4174
|
-
* role hierarchy
|
4175
|
-
*/
|
4176
|
-
const USER_ROLES = {
|
4177
|
-
ROLE_FIRM_OWNER: [UserRolesEnum.FIRM_OWNER, UserRolesEnum.FIRM_MANAGER, UserRolesEnum.ACCOUNTANT, UserRolesEnum.ADVISOR],
|
4178
|
-
ROLE_FIRM_MANAGER: [UserRolesEnum.FIRM_MANAGER, UserRolesEnum.ACCOUNTANT, UserRolesEnum.ADVISOR],
|
4179
|
-
ROLE_EMPLOYEE: [UserRolesEnum.ACCOUNTANT, UserRolesEnum.ADVISOR],
|
4180
|
-
ROLE_ACCOUNTANT: [UserRolesEnum.ACCOUNTANT],
|
4181
|
-
ROLE_ADVISOR: [UserRolesEnum.ADVISOR],
|
4182
|
-
// @TODO makes no sense, these roles can't be hierarchical
|
4183
|
-
ROLE_CLIENT: [UserRolesEnum.CLIENT],
|
4184
|
-
ROLE_USER_SUBSCRIPTION: [UserRolesEnum.SUBSCRIPTION],
|
4185
|
-
ROLE_USER_WORK: [UserRolesEnum.WORK_TANK],
|
4186
|
-
ROLE_USER_PROPERTY: [UserRolesEnum.PROPERTY_TANK],
|
4187
|
-
ROLE_USER_SOLE: [UserRolesEnum.SOLE_TANK],
|
4188
|
-
ROLE_USER_HOLDING: [UserRolesEnum.HOLDING_TANK],
|
4189
|
-
ROLE_PREVIOUS_ADMIN: [UserRolesEnum.SWITCH_USER],
|
4190
|
-
};
|
4191
|
-
|
4192
|
-
/**
|
4193
|
-
* Class with basic information about registering user
|
4194
|
-
*/
|
4195
|
-
class UserToRegister {
|
4196
|
-
}
|
4197
|
-
|
4198
|
-
const USER_WORK_POSITION = {
|
4199
|
-
[UserRolesEnum.EMPLOYEE]: 'Employee',
|
4200
|
-
[UserRolesEnum.FIRM_MANAGER]: 'Manager',
|
4201
|
-
[UserRolesEnum.FIRM_OWNER]: 'Firm Owner'
|
4202
|
-
};
|
4203
|
-
|
4204
|
-
var UserStatusEnum;
|
4205
|
-
(function (UserStatusEnum) {
|
4206
|
-
UserStatusEnum[UserStatusEnum["INACTIVE"] = 0] = "INACTIVE";
|
4207
|
-
UserStatusEnum[UserStatusEnum["ON_BOARDING"] = 1] = "ON_BOARDING";
|
4208
|
-
UserStatusEnum[UserStatusEnum["ACTIVE"] = 2] = "ACTIVE";
|
4209
|
-
})(UserStatusEnum || (UserStatusEnum = {}));
|
4210
|
-
|
4211
|
-
class ClientDetails extends ClientDetails$1 {
|
4212
|
-
/**
|
4213
|
-
* reminder to sign basiq consent after x days before the expiration
|
4214
|
-
*/
|
4215
|
-
static { this.consentExpiryReminderDays = 30; }
|
4216
|
-
get taxFileNumberMasked() {
|
4217
|
-
const maskedLength = this.taxFileNumber.length - 4;
|
4218
|
-
const maskedPart = '*'.repeat(maskedLength);
|
4219
|
-
const lastFour = this.taxFileNumber.slice(-4);
|
4220
|
-
return maskedPart + lastFour;
|
4221
|
-
}
|
4222
|
-
isBasiqConsentExpiring() {
|
4223
|
-
if (!this.basiqConsentExpiryDate || this.isBasiqConsentExpired()) {
|
4224
|
-
return false;
|
4225
|
-
}
|
4226
|
-
const reminderDate = new Date(this.basiqConsentExpiryDate);
|
4227
|
-
reminderDate.setDate(this.basiqConsentExpiryDate.getDate() - ClientDetails.consentExpiryReminderDays);
|
4228
|
-
return new Date() >= reminderDate;
|
4229
|
-
}
|
4230
|
-
isBasiqConsentExpired() {
|
4231
|
-
return this.basiqConsentExpiryDate && new Date() >= this.basiqConsentExpiryDate;
|
4232
|
-
}
|
4233
|
-
}
|
4234
|
-
__decorate([
|
4235
|
-
Type(() => Date)
|
4236
|
-
], ClientDetails.prototype, "basiqConsentExpiryDate", void 0);
|
4237
|
-
|
4238
|
-
class AnnualClientDetails extends AbstractModel {
|
4239
|
-
constructor() {
|
4240
|
-
super(...arguments);
|
4241
|
-
this.spouseAnnualIncome = 0;
|
4242
|
-
this.financialYear = new FinancialYear().year;
|
4243
|
-
}
|
4244
|
-
get spouseMonthlyIncome() {
|
4245
|
-
return this.spouseAnnualIncome / 12;
|
4246
|
-
}
|
4247
|
-
}
|
4248
|
-
__decorate([
|
4249
|
-
Type(() => ClientDetails)
|
4250
|
-
], AnnualClientDetails.prototype, "clientDetails", void 0);
|
4251
|
-
|
4252
|
-
var ClientInviteStatusEnum;
|
4253
|
-
(function (ClientInviteStatusEnum) {
|
4254
|
-
ClientInviteStatusEnum[ClientInviteStatusEnum["PENDING"] = 1] = "PENDING";
|
4255
|
-
ClientInviteStatusEnum[ClientInviteStatusEnum["REJECTED"] = 2] = "REJECTED";
|
4256
|
-
})(ClientInviteStatusEnum || (ClientInviteStatusEnum = {}));
|
4257
|
-
|
4258
|
-
var ClientInviteTypeEnum;
|
4259
|
-
(function (ClientInviteTypeEnum) {
|
4260
|
-
ClientInviteTypeEnum[ClientInviteTypeEnum["FROM_CLIENT"] = 1] = "FROM_CLIENT";
|
4261
|
-
ClientInviteTypeEnum[ClientInviteTypeEnum["FROM_EMPLOYEE"] = 2] = "FROM_EMPLOYEE";
|
4262
|
-
})(ClientInviteTypeEnum || (ClientInviteTypeEnum = {}));
|
4263
|
-
|
4264
|
-
class RegistrationInvite extends RegistrationInvite$1 {
|
4265
|
-
get fullName() {
|
4266
|
-
return `${this.firstName} ${this.lastName}`;
|
4267
|
-
}
|
4268
|
-
}
|
4269
|
-
__decorate([
|
4270
|
-
Type(() => AppFile)
|
4271
|
-
], RegistrationInvite.prototype, "file", void 0);
|
4272
|
-
__decorate([
|
4273
|
-
Type(() => User)
|
4274
|
-
], RegistrationInvite.prototype, "user", void 0);
|
4275
|
-
|
4276
|
-
var PhoneTypeEnum;
|
4277
|
-
(function (PhoneTypeEnum) {
|
4278
|
-
PhoneTypeEnum[PhoneTypeEnum["MOBILE"] = 1] = "MOBILE";
|
4279
|
-
PhoneTypeEnum[PhoneTypeEnum["OFFICE"] = 2] = "OFFICE";
|
4280
|
-
})(PhoneTypeEnum || (PhoneTypeEnum = {}));
|
4281
|
-
|
4282
|
-
class Phone extends Phone$1 {
|
4283
|
-
constructor() {
|
4284
|
-
super(...arguments);
|
4285
|
-
this.country = Country.australia;
|
4286
|
-
this.type = PhoneTypeEnum.MOBILE;
|
4287
|
-
}
|
4288
|
-
toString() {
|
4289
|
-
return `+${this.country.callingCode} ${this.number}`;
|
4290
|
-
}
|
4291
|
-
}
|
4292
|
-
__decorate([
|
4293
|
-
Type(() => Country)
|
4294
|
-
], Phone.prototype, "country", void 0);
|
4295
|
-
|
4296
|
-
class Firm extends Firm$1 {
|
4297
|
-
isAccountant() {
|
4298
|
-
return this.type === FirmTypeEnum.ACCOUNTANT;
|
4299
|
-
}
|
4300
|
-
}
|
4301
|
-
__decorate([
|
4302
|
-
Type(() => User)
|
4303
|
-
], Firm.prototype, "owner", void 0);
|
4304
|
-
__decorate([
|
4305
|
-
Type(() => Address)
|
4306
|
-
], Firm.prototype, "address", void 0);
|
4307
|
-
__decorate([
|
4308
|
-
Type(() => Phone)
|
4309
|
-
], Firm.prototype, "phone", void 0);
|
4310
|
-
__decorate([
|
4311
|
-
Type(() => AppFile)
|
4312
|
-
], Firm.prototype, "file", void 0);
|
4313
|
-
|
4314
|
-
class FirmBranch extends AbstractModel {
|
4315
|
-
constructor() {
|
4316
|
-
super(...arguments);
|
4317
|
-
this.isMain = false;
|
4318
|
-
}
|
4319
|
-
}
|
4320
|
-
__decorate([
|
4321
|
-
Type(() => Firm)
|
4322
|
-
], FirmBranch.prototype, "firm", void 0);
|
4323
|
-
__decorate([
|
4324
|
-
Type(() => Address)
|
4325
|
-
], FirmBranch.prototype, "address", void 0);
|
4326
|
-
__decorate([
|
4327
|
-
Type(() => Phone)
|
4328
|
-
], FirmBranch.prototype, "phone", void 0);
|
4329
|
-
|
4330
|
-
class ClientInvite extends ClientInvite$1 {
|
4331
|
-
/**
|
4332
|
-
* Check if client invite status is pending
|
4333
|
-
*/
|
4334
|
-
isPending() {
|
4335
|
-
return this.status === ClientInviteStatusEnum.PENDING;
|
4336
|
-
}
|
4337
|
-
/**
|
4338
|
-
* Check if client invite status is accepted
|
4339
|
-
*/
|
4340
|
-
isAccepted() {
|
4341
|
-
return !this.isPending() && !this.isRejected();
|
4342
|
-
}
|
4343
|
-
/**
|
4344
|
-
* Check if client invite status is rejected
|
4345
|
-
*/
|
4346
|
-
isRejected() {
|
4347
|
-
return this.status === ClientInviteStatusEnum.REJECTED;
|
4348
|
-
}
|
4349
|
-
/**
|
4350
|
-
* Check if client invite initiated by firm
|
4351
|
-
*/
|
4352
|
-
isFromEmployee() {
|
4353
|
-
return this.type === ClientInviteTypeEnum.FROM_EMPLOYEE;
|
4354
|
-
}
|
4355
|
-
/**
|
4356
|
-
* Check if client invite initiated by client
|
4357
|
-
*/
|
4358
|
-
isFromClient() {
|
4359
|
-
return this.type === ClientInviteTypeEnum.FROM_CLIENT;
|
4360
|
-
}
|
4361
|
-
get firstName() {
|
4362
|
-
return this.client ? this.client.firstName : this.registrationInvite?.firstName;
|
4363
|
-
}
|
4364
|
-
get fullName() {
|
4365
|
-
return this.client ? this.client.fullName : this.registrationInvite?.fullName;
|
4366
|
-
}
|
4367
|
-
get email() {
|
4368
|
-
return this.client ? this.client.email : this.registrationInvite?.email;
|
4369
|
-
}
|
4370
|
-
}
|
4371
|
-
__decorate([
|
4372
|
-
Type(() => Date)
|
4373
|
-
], ClientInvite.prototype, "sentOn", void 0);
|
4374
|
-
__decorate([
|
4375
|
-
Type(() => Date)
|
4376
|
-
], ClientInvite.prototype, "updatedAt", void 0);
|
4377
|
-
__decorate([
|
4378
|
-
Type(() => User)
|
4379
|
-
], ClientInvite.prototype, "client", void 0);
|
4380
|
-
__decorate([
|
4381
|
-
Type(() => User)
|
4382
|
-
], ClientInvite.prototype, "employee", void 0);
|
4383
|
-
__decorate([
|
4384
|
-
Type(() => RegistrationInvite)
|
4385
|
-
], ClientInvite.prototype, "registrationInvite", void 0);
|
4386
|
-
__decorate([
|
4387
|
-
Type(() => Firm)
|
4388
|
-
], ClientInvite.prototype, "firm", void 0);
|
4389
|
-
__decorate([
|
4390
|
-
Type(() => FirmBranch)
|
4391
|
-
], ClientInvite.prototype, "firmBranch", void 0);
|
4392
|
-
|
4393
|
-
class ClientMovement extends ClientMovement$1 {
|
4394
|
-
get firm() {
|
4395
|
-
return this.firmBranch.firm;
|
4396
|
-
}
|
4397
|
-
}
|
4398
|
-
__decorate([
|
4399
|
-
Type(() => User)
|
4400
|
-
], ClientMovement.prototype, "client", void 0);
|
4401
|
-
__decorate([
|
4402
|
-
Type(() => User)
|
4403
|
-
], ClientMovement.prototype, "employee", void 0);
|
3999
|
+
__decorate([
|
4000
|
+
Type(() => User)
|
4001
|
+
], ClientMovement.prototype, "client", void 0);
|
4002
|
+
__decorate([
|
4003
|
+
Type(() => User)
|
4004
|
+
], ClientMovement.prototype, "employee", void 0);
|
4404
4005
|
__decorate([
|
4405
4006
|
Type(() => Date)
|
4406
4007
|
], ClientMovement.prototype, "dateFrom", void 0);
|
@@ -4487,6 +4088,19 @@ class ClientPortfolioChartData {
|
|
4487
4088
|
class ClientPortfolioReport extends AbstractModel {
|
4488
4089
|
}
|
4489
4090
|
|
4091
|
+
class CapitalLoss extends AbstractModel {
|
4092
|
+
constructor() {
|
4093
|
+
super(...arguments);
|
4094
|
+
this.financialYear = new FinancialYear().year;
|
4095
|
+
}
|
4096
|
+
}
|
4097
|
+
__decorate([
|
4098
|
+
Type(() => ClientDetails)
|
4099
|
+
], CapitalLoss.prototype, "clientDetails", void 0);
|
4100
|
+
__decorate([
|
4101
|
+
Type(() => User)
|
4102
|
+
], CapitalLoss.prototype, "updatedBy", void 0);
|
4103
|
+
|
4490
4104
|
class EmployeeDetails extends EmployeeDetails$1 {
|
4491
4105
|
get firmBranchNames() {
|
4492
4106
|
return this.firmBranches.map(branch => branch.name).join(', ');
|
@@ -4922,6 +4536,15 @@ __decorate([
|
|
4922
4536
|
__decorate([
|
4923
4537
|
Type(() => SoleBusinessLossOffsetRule)
|
4924
4538
|
], SoleBusinessLoss.prototype, "offsetRule", void 0);
|
4539
|
+
__decorate([
|
4540
|
+
Type(() => User)
|
4541
|
+
], SoleBusinessLoss.prototype, "updatedBy", void 0);
|
4542
|
+
|
4543
|
+
var TransactionSourceEnum;
|
4544
|
+
(function (TransactionSourceEnum) {
|
4545
|
+
TransactionSourceEnum[TransactionSourceEnum["CASH"] = 1] = "CASH";
|
4546
|
+
TransactionSourceEnum[TransactionSourceEnum["BANK_TRANSACTION"] = 2] = "BANK_TRANSACTION";
|
4547
|
+
})(TransactionSourceEnum || (TransactionSourceEnum = {}));
|
4925
4548
|
|
4926
4549
|
var SoleInvoiceTaxTypeEnum;
|
4927
4550
|
(function (SoleInvoiceTaxTypeEnum) {
|
@@ -5449,228 +5072,627 @@ class BasReport extends BasReport$1 {
|
|
5449
5072
|
if (!this.id) {
|
5450
5073
|
return 0;
|
5451
5074
|
}
|
5452
|
-
return this.incomeGST + this.expenseGST + this.taxWithheldTotal + this.paygTaxInstalment - this.fuelTaxCredit;
|
5075
|
+
return this.incomeGST + this.expenseGST + this.taxWithheldTotal + this.paygTaxInstalment - this.fuelTaxCredit;
|
5076
|
+
}
|
5077
|
+
}
|
5078
|
+
__decorate([
|
5079
|
+
Type(() => Date)
|
5080
|
+
], BasReport.prototype, "dateFrom", void 0);
|
5081
|
+
__decorate([
|
5082
|
+
Type(() => Date)
|
5083
|
+
], BasReport.prototype, "dateTo", void 0);
|
5084
|
+
|
5085
|
+
class SetupItem extends AbstractModel {
|
5086
|
+
}
|
5087
|
+
|
5088
|
+
/**
|
5089
|
+
* Enum list of all possible account setup items ids. Using with [ACCOUNT_SETUP_ITEMS]{@link ACCOUNT_SETUP_ITEMS}
|
5090
|
+
* @TODO Vik/Nikita: Do we need to generate it from backend? If some ids changed?
|
5091
|
+
*/
|
5092
|
+
var AccountSetupItemsEnum;
|
5093
|
+
(function (AccountSetupItemsEnum) {
|
5094
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["SALARY"] = 1] = "SALARY";
|
5095
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["OTHER_INCOME"] = 2] = "OTHER_INCOME";
|
5096
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY"] = 3] = "PROPERTY";
|
5097
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_FEEDS"] = 4] = "BANK_FEEDS";
|
5098
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_LOGBOOK"] = 5] = "WORK_LOGBOOK";
|
5099
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["TRANSACTION_ALLOCATE"] = 6] = "TRANSACTION_ALLOCATE";
|
5100
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BUSINESS"] = 7] = "SOLE_BUSINESS";
|
5101
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDINGS"] = 8] = "HOLDINGS";
|
5102
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_DETAILS"] = 9] = "FIRM_DETAILS";
|
5103
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["INVITE_TEAM"] = 10] = "INVITE_TEAM";
|
5104
|
+
AccountSetupItemsEnum[AccountSetupItemsEnum["INVITE_CLIENTS"] = 11] = "INVITE_CLIENTS";
|
5105
|
+
})(AccountSetupItemsEnum || (AccountSetupItemsEnum = {}));
|
5106
|
+
|
5107
|
+
class AccountSetupItem extends SetupItem {
|
5108
|
+
get isSalary() {
|
5109
|
+
return this.id === AccountSetupItemsEnum.SALARY;
|
5110
|
+
}
|
5111
|
+
get isOtherIncome() {
|
5112
|
+
return this.id === AccountSetupItemsEnum.OTHER_INCOME;
|
5113
|
+
}
|
5114
|
+
get isProperty() {
|
5115
|
+
return this.id === AccountSetupItemsEnum.PROPERTY;
|
5116
|
+
}
|
5117
|
+
get isBankFeeds() {
|
5118
|
+
return this.id === AccountSetupItemsEnum.BANK_FEEDS;
|
5119
|
+
}
|
5120
|
+
get isWorkLogbook() {
|
5121
|
+
return this.id === AccountSetupItemsEnum.WORK_LOGBOOK;
|
5122
|
+
}
|
5123
|
+
get isTransactionAllocate() {
|
5124
|
+
return this.id === AccountSetupItemsEnum.TRANSACTION_ALLOCATE;
|
5125
|
+
}
|
5126
|
+
get isSoleBusiness() {
|
5127
|
+
return this.id === AccountSetupItemsEnum.SOLE_BUSINESS;
|
5128
|
+
}
|
5129
|
+
get isHoldings() {
|
5130
|
+
return this.id === AccountSetupItemsEnum.HOLDINGS;
|
5131
|
+
}
|
5132
|
+
get isFirmDetails() {
|
5133
|
+
return this.id === AccountSetupItemsEnum.FIRM_DETAILS;
|
5134
|
+
}
|
5135
|
+
get isInviteTeam() {
|
5136
|
+
return this.id === AccountSetupItemsEnum.INVITE_TEAM;
|
5137
|
+
}
|
5138
|
+
get isInviteClients() {
|
5139
|
+
return this.id === AccountSetupItemsEnum.INVITE_CLIENTS;
|
5140
|
+
}
|
5141
|
+
}
|
5142
|
+
|
5143
|
+
class User extends User$1 {
|
5144
|
+
constructor() {
|
5145
|
+
super(...arguments);
|
5146
|
+
this.blacklistSetupItems = [];
|
5147
|
+
}
|
5148
|
+
get fullName() {
|
5149
|
+
return `${this.firstName} ${this.lastName}`;
|
5150
|
+
}
|
5151
|
+
get photo() {
|
5152
|
+
return this.file?.publicUrl;
|
5153
|
+
}
|
5154
|
+
get activeSubscription() {
|
5155
|
+
return this.subscriptions.find((ss) => ss.isActive);
|
5156
|
+
}
|
5157
|
+
get lastSubscription() {
|
5158
|
+
return this.subscriptions[this.subscriptions.length - 1];
|
5159
|
+
}
|
5160
|
+
/**
|
5161
|
+
* @TODO refactor
|
5162
|
+
*
|
5163
|
+
*/
|
5164
|
+
get position() {
|
5165
|
+
switch (true) {
|
5166
|
+
case this.isFirmOwner():
|
5167
|
+
return USER_WORK_POSITION[UserRolesEnum.FIRM_OWNER];
|
5168
|
+
case this.isManager():
|
5169
|
+
return USER_WORK_POSITION[UserRolesEnum.FIRM_MANAGER];
|
5170
|
+
case this.isEmployee():
|
5171
|
+
return USER_WORK_POSITION[UserRolesEnum.EMPLOYEE];
|
5172
|
+
default:
|
5173
|
+
return '';
|
5174
|
+
}
|
5175
|
+
}
|
5176
|
+
/**
|
5177
|
+
* search roles including hierarchy
|
5178
|
+
*/
|
5179
|
+
hasRoles(roles) {
|
5180
|
+
roles = roles instanceof Array ? roles : [roles];
|
5181
|
+
if (!roles.length) {
|
5182
|
+
return true;
|
5183
|
+
}
|
5184
|
+
roles = flatten(roles.map((role) => USER_ROLES[role]));
|
5185
|
+
return !!intersection(this.roles, roles).length;
|
5186
|
+
}
|
5187
|
+
isOnboarding() {
|
5188
|
+
return this.status === UserStatusEnum.ON_BOARDING;
|
5189
|
+
}
|
5190
|
+
isInactive() {
|
5191
|
+
return this.status === UserStatusEnum.INACTIVE;
|
5192
|
+
}
|
5193
|
+
hasSubscription() {
|
5194
|
+
return this.roles.includes(UserRolesEnum.SUBSCRIPTION);
|
5195
|
+
}
|
5196
|
+
isLoggedIn() {
|
5197
|
+
return this.id === +localStorage.getItem('userId');
|
5198
|
+
}
|
5199
|
+
isClient() {
|
5200
|
+
return this.roles.includes(UserRolesEnum.CLIENT);
|
5201
|
+
}
|
5202
|
+
isEmployee() {
|
5203
|
+
return this.isAccountant() || this.isAdvisor();
|
5204
|
+
}
|
5205
|
+
isAccountant() {
|
5206
|
+
return this.roles.includes(UserRolesEnum.ACCOUNTANT);
|
5207
|
+
}
|
5208
|
+
isAdvisor() {
|
5209
|
+
return this.roles.includes(UserRolesEnum.ADVISOR);
|
5210
|
+
}
|
5211
|
+
isImpersonator() {
|
5212
|
+
return this.roles.includes(UserRolesEnum.SWITCH_USER);
|
5213
|
+
}
|
5214
|
+
/**
|
5215
|
+
* Check if current user is firm owner
|
5216
|
+
*/
|
5217
|
+
isFirmOwner() {
|
5218
|
+
return this.roles.includes(UserRolesEnum.FIRM_OWNER);
|
5219
|
+
}
|
5220
|
+
isTopManager() {
|
5221
|
+
return this.roles.includes(UserRolesEnum.FIRM_TOP_MANAGER) || this.roles.includes(UserRolesEnum.FIRM_OWNER);
|
5222
|
+
}
|
5223
|
+
isManager() {
|
5224
|
+
return this.roles.includes(UserRolesEnum.FIRM_MANAGER) || this.roles.includes(UserRolesEnum.FIRM_TOP_MANAGER) || this.roles.includes(UserRolesEnum.FIRM_OWNER);
|
5225
|
+
}
|
5226
|
+
/**
|
5227
|
+
* check if user has property tank access
|
5228
|
+
*/
|
5229
|
+
hasPropertyTank() {
|
5230
|
+
return this.roles ?
|
5231
|
+
this.roles.includes(UserRolesEnum.PROPERTY_TANK) :
|
5232
|
+
!!this.getSubscriptionRole(UserRolesEnum.PROPERTY_TANK);
|
5233
|
+
}
|
5234
|
+
/**
|
5235
|
+
* check if user has property tank access
|
5236
|
+
*/
|
5237
|
+
hasWorkTank() {
|
5238
|
+
return this.roles ?
|
5239
|
+
this.roles.includes(UserRolesEnum.WORK_TANK) :
|
5240
|
+
!!this.getSubscriptionRole(UserRolesEnum.WORK_TANK);
|
5241
|
+
}
|
5242
|
+
/**
|
5243
|
+
* Get user subscription role by provided role type
|
5244
|
+
* @param roleType by which role should be returned
|
5245
|
+
*/
|
5246
|
+
getSubscriptionRole(roleType) {
|
5247
|
+
/**
|
5248
|
+
* Add @TODO for Alex to check if we should use getLastSubscription here
|
5249
|
+
*/
|
5250
|
+
return this.activeSubscription?.items
|
5251
|
+
.find((subscriptionItem) => subscriptionItem.price.product.role.includes(roleType));
|
5252
|
+
}
|
5253
|
+
isCurrentFinancialYear() {
|
5254
|
+
return new FinancialYear(new Date()).year === this.financialYear;
|
5255
|
+
}
|
5256
|
+
/**
|
5257
|
+
* financial years available in the app for user
|
5258
|
+
* starts from 2022 for new users and registeredYear - 1 for old users
|
5259
|
+
*/
|
5260
|
+
get financialYears() {
|
5261
|
+
return range(Math.min(FinancialYear.toFinYear(this.createdAt) - 1, 2022), FinancialYear.toFinYear(new Date()) + 1);
|
5262
|
+
}
|
5263
|
+
get firmBranchNames() {
|
5264
|
+
return this.employeeDetails.firmBranchNames;
|
5265
|
+
}
|
5266
|
+
}
|
5267
|
+
__decorate([
|
5268
|
+
Type(() => ServiceSubscription)
|
5269
|
+
], User.prototype, "subscriptions", void 0);
|
5270
|
+
__decorate([
|
5271
|
+
Type(() => ClientDetails)
|
5272
|
+
], User.prototype, "clientDetails", void 0);
|
5273
|
+
__decorate([
|
5274
|
+
Type(() => EmployeeDetails)
|
5275
|
+
], User.prototype, "employeeDetails", void 0);
|
5276
|
+
__decorate([
|
5277
|
+
Type(() => SoleDetails)
|
5278
|
+
], User.prototype, "soleDetails", void 0);
|
5279
|
+
__decorate([
|
5280
|
+
Type(() => Address)
|
5281
|
+
], User.prototype, "address", void 0);
|
5282
|
+
__decorate([
|
5283
|
+
Type(() => Phone)
|
5284
|
+
], User.prototype, "phone", void 0);
|
5285
|
+
__decorate([
|
5286
|
+
Type(() => Date)
|
5287
|
+
], User.prototype, "createdAt", void 0);
|
5288
|
+
__decorate([
|
5289
|
+
Type(() => User)
|
5290
|
+
], User.prototype, "clients", void 0);
|
5291
|
+
__decorate([
|
5292
|
+
Type(() => AppFile)
|
5293
|
+
], User.prototype, "file", void 0);
|
5294
|
+
__decorate([
|
5295
|
+
Type(() => AccountSetupItem)
|
5296
|
+
], User.prototype, "blacklistSetupItems", void 0);
|
5297
|
+
|
5298
|
+
class SalaryForecast extends SalaryForecast$1 {
|
5299
|
+
get grossAmount() {
|
5300
|
+
return this.netPay + this.tax;
|
5301
|
+
}
|
5302
|
+
get taxWithheld() {
|
5303
|
+
return this.grossAmount - this.netPay;
|
5304
|
+
}
|
5305
|
+
get monthlyAmount() {
|
5306
|
+
switch (this.frequency) {
|
5307
|
+
case SalaryForecastFrequencyEnum.ANNUAL:
|
5308
|
+
return this.netPay / FinancialYear.monthsInYear;
|
5309
|
+
case SalaryForecastFrequencyEnum.FORTNIGHTLY:
|
5310
|
+
return this.netPay * FinancialYear.weeksInYear / FinancialYear.monthsInYear / 2;
|
5311
|
+
case SalaryForecastFrequencyEnum.WEEKLY:
|
5312
|
+
return this.netPay * FinancialYear.weeksInYear / FinancialYear.monthsInYear;
|
5313
|
+
default:
|
5314
|
+
return this.netPay;
|
5315
|
+
}
|
5453
5316
|
}
|
5454
5317
|
}
|
5455
5318
|
__decorate([
|
5456
|
-
Type(() =>
|
5457
|
-
],
|
5319
|
+
Type(() => Number)
|
5320
|
+
], SalaryForecast.prototype, "tax", void 0);
|
5458
5321
|
__decorate([
|
5459
|
-
Type(() =>
|
5460
|
-
],
|
5322
|
+
Type(() => Number)
|
5323
|
+
], SalaryForecast.prototype, "netPay", void 0);
|
5324
|
+
__decorate([
|
5325
|
+
Type(() => IncomeSource)
|
5326
|
+
], SalaryForecast.prototype, "incomeSource", void 0);
|
5327
|
+
__decorate([
|
5328
|
+
Type(() => User)
|
5329
|
+
], SalaryForecast.prototype, "updatedBy", void 0);
|
5461
5330
|
|
5462
|
-
class
|
5331
|
+
class SoleForecast extends SoleForecast$1 {
|
5332
|
+
get netPay() {
|
5333
|
+
return this.amount;
|
5334
|
+
}
|
5463
5335
|
}
|
5336
|
+
__decorate([
|
5337
|
+
Type(() => IncomeSource)
|
5338
|
+
], SoleForecast.prototype, "incomeSource", void 0);
|
5339
|
+
__decorate([
|
5340
|
+
Type(() => User)
|
5341
|
+
], SoleForecast.prototype, "updatedBy", void 0);
|
5464
5342
|
|
5465
|
-
|
5466
|
-
|
5467
|
-
|
5468
|
-
|
5469
|
-
|
5470
|
-
|
5471
|
-
|
5472
|
-
|
5473
|
-
|
5474
|
-
|
5475
|
-
|
5476
|
-
|
5477
|
-
|
5478
|
-
|
5479
|
-
AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_DETAILS"] = 9] = "FIRM_DETAILS";
|
5480
|
-
AccountSetupItemsEnum[AccountSetupItemsEnum["INVITE_TEAM"] = 10] = "INVITE_TEAM";
|
5481
|
-
AccountSetupItemsEnum[AccountSetupItemsEnum["INVITE_CLIENTS"] = 11] = "INVITE_CLIENTS";
|
5482
|
-
})(AccountSetupItemsEnum || (AccountSetupItemsEnum = {}));
|
5343
|
+
var IncomeSourceForecastTrustTypeEnum;
|
5344
|
+
(function (IncomeSourceForecastTrustTypeEnum) {
|
5345
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["SPECIAL_DISABILITY_TRUST"] = 1] = "SPECIAL_DISABILITY_TRUST";
|
5346
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["DECEASED_ESTATE"] = 2] = "DECEASED_ESTATE";
|
5347
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["FIXED_TRUST"] = 3] = "FIXED_TRUST";
|
5348
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["HYBRID_TRUST"] = 4] = "HYBRID_TRUST";
|
5349
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["DISCRETIONARY_SERVICE_TRUST"] = 5] = "DISCRETIONARY_SERVICE_TRUST";
|
5350
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["DISCRETIONARY_TRADING_TRUST"] = 6] = "DISCRETIONARY_TRADING_TRUST";
|
5351
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["DISCRETIONARY_INVESTMENT_TRUST"] = 7] = "DISCRETIONARY_INVESTMENT_TRUST";
|
5352
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["CASH_MANAGEMENT_UNIT_TRUST"] = 8] = "CASH_MANAGEMENT_UNIT_TRUST";
|
5353
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["PUBLIC_UNIT_TRUST_LISTED"] = 9] = "PUBLIC_UNIT_TRUST_LISTED";
|
5354
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["PUBLIC_UNIT_TRUST_UNLISTED"] = 10] = "PUBLIC_UNIT_TRUST_UNLISTED";
|
5355
|
+
IncomeSourceForecastTrustTypeEnum[IncomeSourceForecastTrustTypeEnum["TESTAMENTARY_TRUST"] = 11] = "TESTAMENTARY_TRUST";
|
5356
|
+
})(IncomeSourceForecastTrustTypeEnum || (IncomeSourceForecastTrustTypeEnum = {}));
|
5483
5357
|
|
5484
|
-
|
5485
|
-
|
5486
|
-
|
5487
|
-
|
5488
|
-
|
5489
|
-
|
5490
|
-
|
5491
|
-
|
5492
|
-
|
5493
|
-
|
5494
|
-
|
5495
|
-
|
5496
|
-
|
5497
|
-
|
5498
|
-
|
5499
|
-
|
5500
|
-
|
5501
|
-
|
5502
|
-
|
5503
|
-
|
5504
|
-
|
5358
|
+
var IncomeSourceTypeListOtherEnum;
|
5359
|
+
(function (IncomeSourceTypeListOtherEnum) {
|
5360
|
+
IncomeSourceTypeListOtherEnum[IncomeSourceTypeListOtherEnum["PSI"] = 6] = "PSI";
|
5361
|
+
IncomeSourceTypeListOtherEnum[IncomeSourceTypeListOtherEnum["SOLE_TRADER"] = 7] = "SOLE_TRADER";
|
5362
|
+
IncomeSourceTypeListOtherEnum[IncomeSourceTypeListOtherEnum["TRUSTS"] = 9] = "TRUSTS";
|
5363
|
+
IncomeSourceTypeListOtherEnum[IncomeSourceTypeListOtherEnum["OTHER_INCOME"] = 10] = "OTHER_INCOME";
|
5364
|
+
IncomeSourceTypeListOtherEnum[IncomeSourceTypeListOtherEnum["PARTNERSHIPS"] = 12] = "PARTNERSHIPS";
|
5365
|
+
})(IncomeSourceTypeListOtherEnum || (IncomeSourceTypeListOtherEnum = {}));
|
5366
|
+
|
5367
|
+
var IncomeSourceTypeListSoleEnum;
|
5368
|
+
(function (IncomeSourceTypeListSoleEnum) {
|
5369
|
+
IncomeSourceTypeListSoleEnum[IncomeSourceTypeListSoleEnum["SOLE_TRADER"] = 7] = "SOLE_TRADER";
|
5370
|
+
})(IncomeSourceTypeListSoleEnum || (IncomeSourceTypeListSoleEnum = {}));
|
5371
|
+
|
5372
|
+
var IncomeSourceTypeListWorkEnum;
|
5373
|
+
(function (IncomeSourceTypeListWorkEnum) {
|
5374
|
+
IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["BONUSES"] = 1] = "BONUSES";
|
5375
|
+
IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["DIRECTOR_FEES"] = 2] = "DIRECTOR_FEES";
|
5376
|
+
IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["INTEREST"] = 4] = "INTEREST";
|
5377
|
+
IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["PENSIONS_AND_ALLOWANCES"] = 5] = "PENSIONS_AND_ALLOWANCES";
|
5378
|
+
IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["SUPERANNUATION"] = 8] = "SUPERANNUATION";
|
5379
|
+
IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["ATTRIBUTED_P_S_I"] = 11] = "ATTRIBUTED_P_S_I";
|
5380
|
+
})(IncomeSourceTypeListWorkEnum || (IncomeSourceTypeListWorkEnum = {}));
|
5381
|
+
|
5382
|
+
var IncomeSourceTypeListHoldingEnum;
|
5383
|
+
(function (IncomeSourceTypeListHoldingEnum) {
|
5384
|
+
IncomeSourceTypeListHoldingEnum[IncomeSourceTypeListHoldingEnum["DIVIDENDS"] = 3] = "DIVIDENDS";
|
5385
|
+
IncomeSourceTypeListHoldingEnum[IncomeSourceTypeListHoldingEnum["INTEREST"] = 4] = "INTEREST";
|
5386
|
+
IncomeSourceTypeListHoldingEnum[IncomeSourceTypeListHoldingEnum["TRUSTS"] = 9] = "TRUSTS";
|
5387
|
+
IncomeSourceTypeListHoldingEnum[IncomeSourceTypeListHoldingEnum["OTHER_INCOME"] = 10] = "OTHER_INCOME";
|
5388
|
+
IncomeSourceTypeListHoldingEnum[IncomeSourceTypeListHoldingEnum["PARTNERSHIPS"] = 12] = "PARTNERSHIPS";
|
5389
|
+
})(IncomeSourceTypeListHoldingEnum || (IncomeSourceTypeListHoldingEnum = {}));
|
5390
|
+
|
5391
|
+
class IncomeSourceType extends IncomeSourceType$1 {
|
5392
|
+
isBonuses() {
|
5393
|
+
return this.id === IncomeSourceTypeListWorkEnum.BONUSES;
|
5505
5394
|
}
|
5506
|
-
|
5507
|
-
return this.id
|
5395
|
+
isWork() {
|
5396
|
+
return !!IncomeSourceTypeListWorkEnum[this.id];
|
5508
5397
|
}
|
5509
|
-
|
5510
|
-
return this.id
|
5398
|
+
isOther() {
|
5399
|
+
return !!IncomeSourceTypeListOtherEnum[this.id];
|
5511
5400
|
}
|
5512
|
-
|
5513
|
-
return this.id
|
5401
|
+
isHolding() {
|
5402
|
+
return !!IncomeSourceTypeListHoldingEnum[this.id];
|
5514
5403
|
}
|
5515
|
-
|
5516
|
-
return this.id
|
5404
|
+
isSole() {
|
5405
|
+
return !!IncomeSourceTypeListSoleEnum[this.id];
|
5517
5406
|
}
|
5518
5407
|
}
|
5519
5408
|
|
5520
|
-
class
|
5409
|
+
class IncomeSourceForecast extends IncomeSourceForecast$1 {
|
5521
5410
|
constructor() {
|
5522
5411
|
super(...arguments);
|
5523
|
-
this.
|
5524
|
-
|
5525
|
-
|
5526
|
-
return `${this.firstName} ${this.lastName}`;
|
5527
|
-
}
|
5528
|
-
get photo() {
|
5529
|
-
return this.file?.publicUrl;
|
5530
|
-
}
|
5531
|
-
get activeSubscription() {
|
5532
|
-
return this.subscriptions.find((ss) => ss.isActive);
|
5533
|
-
}
|
5534
|
-
get lastSubscription() {
|
5535
|
-
return this.subscriptions[this.subscriptions.length - 1];
|
5412
|
+
this.paygIncome = 0;
|
5413
|
+
this.frequency = SalaryForecastFrequencyEnum.ANNUAL;
|
5414
|
+
this.isTaxFree = false;
|
5536
5415
|
}
|
5537
5416
|
/**
|
5538
|
-
*
|
5539
|
-
*
|
5417
|
+
* Sometimes Income source has Salary & Income source forecasts,
|
5418
|
+
* and we need these fields to work with Income source forecasts like with Salary Forecasts
|
5540
5419
|
*/
|
5541
|
-
get
|
5542
|
-
|
5543
|
-
case this.isFirmOwner():
|
5544
|
-
return USER_WORK_POSITION[UserRolesEnum.FIRM_OWNER];
|
5545
|
-
case this.isManager():
|
5546
|
-
return USER_WORK_POSITION[UserRolesEnum.FIRM_MANAGER];
|
5547
|
-
case this.isEmployee():
|
5548
|
-
return USER_WORK_POSITION[UserRolesEnum.EMPLOYEE];
|
5549
|
-
default:
|
5550
|
-
return '';
|
5551
|
-
}
|
5420
|
+
get netPay() {
|
5421
|
+
return this.amount;
|
5552
5422
|
}
|
5553
|
-
|
5554
|
-
|
5555
|
-
*/
|
5556
|
-
hasRoles(roles) {
|
5557
|
-
roles = roles instanceof Array ? roles : [roles];
|
5558
|
-
if (!roles.length) {
|
5559
|
-
return true;
|
5560
|
-
}
|
5561
|
-
roles = flatten(roles.map((role) => USER_ROLES[role]));
|
5562
|
-
return !!intersection(this.roles, roles).length;
|
5423
|
+
get grossAmount() {
|
5424
|
+
return this.amount + this.tax + this.taxInstalments + this.frankingCredits;
|
5563
5425
|
}
|
5564
|
-
|
5565
|
-
return this.
|
5426
|
+
get monthlyAmount() {
|
5427
|
+
return this.amount / 12;
|
5566
5428
|
}
|
5567
|
-
|
5568
|
-
|
5429
|
+
}
|
5430
|
+
__decorate([
|
5431
|
+
Type(() => IncomeSourceType)
|
5432
|
+
], IncomeSourceForecast.prototype, "incomeSourceType", void 0);
|
5433
|
+
__decorate([
|
5434
|
+
Type(() => IncomeSource)
|
5435
|
+
], IncomeSourceForecast.prototype, "incomeSource", void 0);
|
5436
|
+
|
5437
|
+
class IncomeSource extends IncomeSource$1 {
|
5438
|
+
isSoleIncome() {
|
5439
|
+
return this.type === IncomeSourceTypeEnum.SOLE;
|
5569
5440
|
}
|
5570
|
-
|
5571
|
-
return this.
|
5441
|
+
isWorkIncome() {
|
5442
|
+
return this.type === IncomeSourceTypeEnum.WORK;
|
5572
5443
|
}
|
5573
|
-
|
5574
|
-
return this.
|
5444
|
+
isOtherIncome() {
|
5445
|
+
return this.type === IncomeSourceTypeEnum.OTHER;
|
5575
5446
|
}
|
5576
|
-
|
5577
|
-
return this.
|
5447
|
+
isHolding() {
|
5448
|
+
return this.type === IncomeSourceTypeEnum.HOLDING;
|
5578
5449
|
}
|
5579
|
-
|
5580
|
-
|
5450
|
+
/**
|
5451
|
+
* Get salary and other income forecasts
|
5452
|
+
*/
|
5453
|
+
get forecasts() {
|
5454
|
+
return [...this.salaryForecasts, ...this.incomeSourceForecasts, ...this.soleForecasts];
|
5581
5455
|
}
|
5582
|
-
|
5583
|
-
|
5456
|
+
/**
|
5457
|
+
* Get actual (1st from the list) forecast
|
5458
|
+
*/
|
5459
|
+
get actualForecast() {
|
5460
|
+
return this.forecasts[0];
|
5584
5461
|
}
|
5585
|
-
|
5586
|
-
|
5462
|
+
/**
|
5463
|
+
* Check if user was working in month taken by the index
|
5464
|
+
* @param monthIndex by which month should be taken
|
5465
|
+
*/
|
5466
|
+
isWorkedInMonth(monthIndex) {
|
5467
|
+
const monthDate = new FinancialYear().getMonthDate(monthIndex);
|
5468
|
+
return (!this.dateFrom || monthDate >= this.dateFrom) && (!this.dateTo || monthDate < this.dateTo);
|
5587
5469
|
}
|
5588
|
-
|
5589
|
-
|
5470
|
+
}
|
5471
|
+
__decorate([
|
5472
|
+
Type(() => SalaryForecast)
|
5473
|
+
], IncomeSource.prototype, "salaryForecasts", void 0);
|
5474
|
+
__decorate([
|
5475
|
+
Type(() => SoleForecast)
|
5476
|
+
], IncomeSource.prototype, "soleForecasts", void 0);
|
5477
|
+
__decorate([
|
5478
|
+
Type(() => IncomeSourceForecast)
|
5479
|
+
], IncomeSource.prototype, "incomeSourceForecasts", void 0);
|
5480
|
+
__decorate([
|
5481
|
+
Type(() => Date)
|
5482
|
+
], IncomeSource.prototype, "dateFrom", void 0);
|
5483
|
+
__decorate([
|
5484
|
+
Type(() => Date)
|
5485
|
+
], IncomeSource.prototype, "dateTo", void 0);
|
5486
|
+
|
5487
|
+
/**
|
5488
|
+
* Income sources chart data
|
5489
|
+
*/
|
5490
|
+
class IncomeSourceChartData {
|
5491
|
+
constructor(forecastedIncomeAmount, transactions) {
|
5492
|
+
this.forecastedIncomeAmount = forecastedIncomeAmount;
|
5493
|
+
this.transactions = transactions;
|
5590
5494
|
}
|
5591
5495
|
/**
|
5592
|
-
*
|
5496
|
+
* Get prepared data for income sources chart
|
5593
5497
|
*/
|
5594
|
-
|
5595
|
-
|
5498
|
+
get() {
|
5499
|
+
const chartData = [{
|
5500
|
+
id: 'actualIncome',
|
5501
|
+
name: 'Actual Income',
|
5502
|
+
data: [],
|
5503
|
+
// display future actual incomes with dash line and past actual incomes with solid line
|
5504
|
+
zones: [{
|
5505
|
+
// line style after current month
|
5506
|
+
value: new FinancialYear().getMonthDate(new Date().getMonth()).getTime(),
|
5507
|
+
dashStyle: 'Solid'
|
5508
|
+
}, {
|
5509
|
+
// default line style
|
5510
|
+
dashStyle: 'Dash'
|
5511
|
+
}]
|
5512
|
+
}, {
|
5513
|
+
id: 'forecastedIncome',
|
5514
|
+
name: 'Forecasted Income',
|
5515
|
+
data: [],
|
5516
|
+
}];
|
5517
|
+
for (const key in MonthNameShortEnum) {
|
5518
|
+
if (MonthNameShortEnum.hasOwnProperty(key)) {
|
5519
|
+
// transaction collection for provided month
|
5520
|
+
const monthTransactionCollection = this.transactions.getByMonth(+MonthNumberEnum[key]);
|
5521
|
+
chartData[0].data.push([new FinancialYear().getMonthDate(+MonthNumberEnum[key]).getTime(), monthTransactionCollection.amount]);
|
5522
|
+
chartData[1].data.push([new FinancialYear().getMonthDate(+MonthNumberEnum[key]).getTime(), this.forecastedIncomeAmount / 12]);
|
5523
|
+
}
|
5524
|
+
}
|
5525
|
+
return chartData;
|
5596
5526
|
}
|
5597
|
-
|
5598
|
-
|
5527
|
+
}
|
5528
|
+
|
5529
|
+
class AllocationRuleTransaction extends AllocationRuleTransaction$1 {
|
5530
|
+
constructor() {
|
5531
|
+
super(...arguments);
|
5532
|
+
this.claimPercent = 100;
|
5533
|
+
this.tax = 0;
|
5534
|
+
this.amount = null;
|
5599
5535
|
}
|
5600
|
-
|
5601
|
-
return this.
|
5536
|
+
get amountPercentCoefficient() {
|
5537
|
+
return this.amountPercent ? this.amountPercent / 100 : 1;
|
5602
5538
|
}
|
5603
|
-
|
5604
|
-
|
5605
|
-
|
5606
|
-
|
5607
|
-
|
5608
|
-
|
5609
|
-
|
5539
|
+
calculateClaimPercent() {
|
5540
|
+
if (!this.chartAccounts) {
|
5541
|
+
return null;
|
5542
|
+
}
|
5543
|
+
let claimPercent = this.chartAccounts.taxablePercent;
|
5544
|
+
// Property claim (ownership% x shared%) for property expenses, taxable percent for others
|
5545
|
+
if (this.chartAccounts?.isProperty() && this.property) {
|
5546
|
+
if (this.chartAccounts.isPropertyExpense() && this.chartAccounts.id !== ChartAccountsListEnum.PLATFORM_FEES) {
|
5547
|
+
claimPercent *= this.property?.claimCoefficient;
|
5548
|
+
}
|
5549
|
+
}
|
5550
|
+
return claimPercent;
|
5610
5551
|
}
|
5611
5552
|
/**
|
5612
|
-
*
|
5553
|
+
* If rule transaction has amount then split enabled. There is 0 when split disabled
|
5613
5554
|
*/
|
5614
|
-
|
5615
|
-
return this.
|
5616
|
-
this.roles.includes(UserRolesEnum.WORK_TANK) :
|
5617
|
-
!!this.getSubscriptionRole(UserRolesEnum.WORK_TANK);
|
5555
|
+
isSplit() {
|
5556
|
+
return !!this.amountPercent;
|
5618
5557
|
}
|
5619
5558
|
/**
|
5620
|
-
*
|
5621
|
-
* @param roleType by which role should be returned
|
5559
|
+
* Create Transaction instance based on passed bank transaction and rule transaction
|
5622
5560
|
*/
|
5623
|
-
|
5624
|
-
|
5625
|
-
|
5626
|
-
|
5627
|
-
|
5628
|
-
|
5561
|
+
toTransaction(bankTransaction = null) {
|
5562
|
+
const transaction = bankTransaction ? bankTransaction.toTransaction(this.isGST) : plainToClass(Transaction, {});
|
5563
|
+
Object.assign(transaction, {
|
5564
|
+
isGST: this.isGST,
|
5565
|
+
tax: this.tax,
|
5566
|
+
claimPercent: this.claimPercent,
|
5567
|
+
chartAccounts: this.chartAccounts,
|
5568
|
+
property: this.property,
|
5569
|
+
loan: this.loan,
|
5570
|
+
incomeSource: this.incomeSource,
|
5571
|
+
metaFields: this.metaFields,
|
5572
|
+
business: this.business,
|
5573
|
+
source: TransactionSourceEnum.BANK_TRANSACTION,
|
5574
|
+
operation: TransactionOperationEnum.ALLOCATE,
|
5575
|
+
transactions: [],
|
5576
|
+
});
|
5577
|
+
// split allocation
|
5578
|
+
if (this.amountPercent) {
|
5579
|
+
transaction.amount = bankTransaction.amount * this.amountPercentCoefficient / this.gstCoefficient;
|
5580
|
+
}
|
5581
|
+
// child transactions inherit most of the fields from parent transaction
|
5582
|
+
this.childTransactions.forEach((childRuleTransaction) => {
|
5583
|
+
const childTransaction = childRuleTransaction.toTransaction();
|
5584
|
+
childTransaction.amount = childRuleTransaction.amount;
|
5585
|
+
childTransaction.setParent(transaction);
|
5586
|
+
transaction.transactions.push(childTransaction);
|
5587
|
+
});
|
5588
|
+
return transaction;
|
5629
5589
|
}
|
5630
|
-
|
5631
|
-
|
5590
|
+
}
|
5591
|
+
__decorate([
|
5592
|
+
Type(() => ChartAccounts)
|
5593
|
+
// @TODO Alex: Create custom decorator for this transform
|
5594
|
+
,
|
5595
|
+
Transform(({ value }) => ({ id: value.id }), { toPlainOnly: true })
|
5596
|
+
], AllocationRuleTransaction.prototype, "chartAccounts", void 0);
|
5597
|
+
__decorate([
|
5598
|
+
Type(() => Property),
|
5599
|
+
Transform(({ value }) => value ? { id: value.id } : null, { toPlainOnly: true })
|
5600
|
+
], AllocationRuleTransaction.prototype, "property", void 0);
|
5601
|
+
__decorate([
|
5602
|
+
Type(() => Loan),
|
5603
|
+
Transform(({ value }) => value ? { id: value.id } : null, { toPlainOnly: true })
|
5604
|
+
], AllocationRuleTransaction.prototype, "loan", void 0);
|
5605
|
+
__decorate([
|
5606
|
+
Type(() => IncomeSource),
|
5607
|
+
Transform(({ value }) => value ? { id: value.id } : null, { toPlainOnly: true })
|
5608
|
+
], AllocationRuleTransaction.prototype, "incomeSource", void 0);
|
5609
|
+
__decorate([
|
5610
|
+
Type(() => SoleBusiness),
|
5611
|
+
Transform(({ value }) => value ? { id: value.id } : null, { toPlainOnly: true })
|
5612
|
+
], AllocationRuleTransaction.prototype, "business", void 0);
|
5613
|
+
__decorate([
|
5614
|
+
Type(() => AllocationRuleTransactionMetaField)
|
5615
|
+
], AllocationRuleTransaction.prototype, "metaFields", void 0);
|
5616
|
+
__decorate([
|
5617
|
+
Type(() => AllocationRuleTransaction)
|
5618
|
+
], AllocationRuleTransaction.prototype, "parentTransaction", void 0);
|
5619
|
+
__decorate([
|
5620
|
+
Type(() => AllocationRuleTransaction)
|
5621
|
+
], AllocationRuleTransaction.prototype, "childTransactions", void 0);
|
5622
|
+
__decorate([
|
5623
|
+
Type(() => Number)
|
5624
|
+
], AllocationRuleTransaction.prototype, "claimPercent", void 0);
|
5625
|
+
__decorate([
|
5626
|
+
Type(() => Number)
|
5627
|
+
], AllocationRuleTransaction.prototype, "tax", void 0);
|
5628
|
+
|
5629
|
+
var TransactionTypeEnum;
|
5630
|
+
(function (TransactionTypeEnum) {
|
5631
|
+
TransactionTypeEnum[TransactionTypeEnum["DEBIT"] = 1] = "DEBIT";
|
5632
|
+
TransactionTypeEnum[TransactionTypeEnum["CREDIT"] = 2] = "CREDIT";
|
5633
|
+
})(TransactionTypeEnum || (TransactionTypeEnum = {}));
|
5634
|
+
|
5635
|
+
class TaxExemption extends TaxExemption$1 {
|
5636
|
+
isPartial() {
|
5637
|
+
return [TaxExemptionEnum.INVESTMENT_TO_PPR, TaxExemptionEnum.PPR_TO_INVESTMENT].includes(this.id);
|
5638
|
+
}
|
5639
|
+
}
|
5640
|
+
|
5641
|
+
class AssetSale extends ObservableModel {
|
5642
|
+
static { this.className = 'AssetSale'; }
|
5643
|
+
}
|
5644
|
+
__decorate([
|
5645
|
+
Type(() => Date)
|
5646
|
+
], AssetSale.prototype, "date", void 0);
|
5647
|
+
|
5648
|
+
class PropertySale extends AssetSale {
|
5649
|
+
get saleCostsTotalAmount() {
|
5650
|
+
return this.commission + this.legalFees + this.otherCost;
|
5632
5651
|
}
|
5633
5652
|
/**
|
5634
|
-
*
|
5635
|
-
*
|
5653
|
+
* CGT is not applicable for sales with "Principle place of residence" exemption type.
|
5654
|
+
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form ("Capital gains or losses" section)
|
5636
5655
|
*/
|
5637
|
-
|
5638
|
-
return
|
5656
|
+
isCGTApplicable() {
|
5657
|
+
return this.taxExemption?.id !== TaxExemptionEnum.PPR;
|
5639
5658
|
}
|
5640
|
-
get
|
5641
|
-
return this.
|
5659
|
+
get netPrice() {
|
5660
|
+
return this.price - this.saleCostsTotalAmount;
|
5642
5661
|
}
|
5643
5662
|
}
|
5644
5663
|
__decorate([
|
5645
|
-
Type(() =>
|
5646
|
-
],
|
5664
|
+
Type(() => Number)
|
5665
|
+
], PropertySale.prototype, "holdingCosts", void 0);
|
5647
5666
|
__decorate([
|
5648
|
-
Type(() =>
|
5649
|
-
],
|
5667
|
+
Type(() => Number)
|
5668
|
+
], PropertySale.prototype, "structuralImprovementsWDV", void 0);
|
5650
5669
|
__decorate([
|
5651
|
-
Type(() =>
|
5652
|
-
],
|
5670
|
+
Type(() => Number)
|
5671
|
+
], PropertySale.prototype, "buildingAtCostClaimed", void 0);
|
5653
5672
|
__decorate([
|
5654
|
-
Type(() =>
|
5655
|
-
],
|
5673
|
+
Type(() => Number)
|
5674
|
+
], PropertySale.prototype, "price", void 0);
|
5656
5675
|
__decorate([
|
5657
|
-
Type(() =>
|
5658
|
-
],
|
5676
|
+
Type(() => Number)
|
5677
|
+
], PropertySale.prototype, "commission", void 0);
|
5659
5678
|
__decorate([
|
5660
|
-
Type(() =>
|
5661
|
-
],
|
5679
|
+
Type(() => Number)
|
5680
|
+
], PropertySale.prototype, "legalFees", void 0);
|
5681
|
+
__decorate([
|
5682
|
+
Type(() => Number)
|
5683
|
+
], PropertySale.prototype, "otherCost", void 0);
|
5662
5684
|
__decorate([
|
5663
5685
|
Type(() => Date)
|
5664
|
-
],
|
5686
|
+
], PropertySale.prototype, "settlementDate", void 0);
|
5665
5687
|
__decorate([
|
5666
|
-
Type(() =>
|
5667
|
-
],
|
5688
|
+
Type(() => Date)
|
5689
|
+
], PropertySale.prototype, "date", void 0);
|
5668
5690
|
__decorate([
|
5669
|
-
Type(() =>
|
5670
|
-
],
|
5691
|
+
Type(() => TaxExemption)
|
5692
|
+
], PropertySale.prototype, "taxExemption", void 0);
|
5671
5693
|
__decorate([
|
5672
|
-
Type(() =>
|
5673
|
-
],
|
5694
|
+
Type(() => PropertySaleTaxExemptionMetaField$1)
|
5695
|
+
], PropertySale.prototype, "taxExemptionMetaFields", void 0);
|
5674
5696
|
|
5675
5697
|
class PropertySubscription extends PropertySubscription$1 {
|
5676
5698
|
}
|
@@ -5794,6 +5816,9 @@ __decorate([
|
|
5794
5816
|
__decorate([
|
5795
5817
|
Transform(({ value }) => +value)
|
5796
5818
|
], PropertyForecast.prototype, "marketValue", void 0);
|
5819
|
+
__decorate([
|
5820
|
+
Type(() => User)
|
5821
|
+
], PropertyForecast.prototype, "updatedBy", void 0);
|
5797
5822
|
|
5798
5823
|
/**
|
5799
5824
|
* propertySale docs - https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4209508353/Property+Sold+button
|
@@ -14000,6 +14025,7 @@ var PropertyMessagesEnum;
|
|
14000
14025
|
* Service for work with Property
|
14001
14026
|
*/
|
14002
14027
|
class PropertyService extends RestService$1 {
|
14028
|
+
// roles = [UserRolesEnum.PROPERTY_TANK];
|
14003
14029
|
constructor(environment) {
|
14004
14030
|
super(environment);
|
14005
14031
|
this.environment = environment;
|
@@ -15845,6 +15871,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
15845
15871
|
}]
|
15846
15872
|
}] });
|
15847
15873
|
|
15874
|
+
class CapitalLossService extends RestService$1 {
|
15875
|
+
constructor() {
|
15876
|
+
super(...arguments);
|
15877
|
+
this.endpointUri = 'capital-losses';
|
15878
|
+
this.modelClass = CapitalLoss;
|
15879
|
+
this.collectionClass = (Collection);
|
15880
|
+
this.disabledMethods = ['postBatch', 'putBatch', 'deleteBatch'];
|
15881
|
+
}
|
15882
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CapitalLossService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
15883
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CapitalLossService, providedIn: 'root' }); }
|
15884
|
+
}
|
15885
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CapitalLossService, decorators: [{
|
15886
|
+
type: Injectable,
|
15887
|
+
args: [{
|
15888
|
+
providedIn: 'root'
|
15889
|
+
}]
|
15890
|
+
}] });
|
15891
|
+
|
15892
|
+
var CapitalLossMessagesEnum;
|
15893
|
+
(function (CapitalLossMessagesEnum) {
|
15894
|
+
CapitalLossMessagesEnum["POST"] = "Capital loss created";
|
15895
|
+
CapitalLossMessagesEnum["PUT"] = "capital loss updated";
|
15896
|
+
CapitalLossMessagesEnum["DELETE"] = "capital loss deleted";
|
15897
|
+
})(CapitalLossMessagesEnum || (CapitalLossMessagesEnum = {}));
|
15898
|
+
|
15848
15899
|
class UserEventTypeCategory extends UserEventTypeCategory$1 {
|
15849
15900
|
}
|
15850
15901
|
|
@@ -19760,6 +19811,10 @@ const ENDPOINTS = {
|
|
19760
19811
|
ANNUAL_CLIENT_DETAILS_POST: new Endpoint('POST', '\\/annual-client-details'),
|
19761
19812
|
ANNUAL_CLIENT_DETAILS_PUT: new Endpoint('PUT', '\\/annual-client-details\\/\\d+'),
|
19762
19813
|
ANNUAL_CLIENT_DETAILS_DELETE: new Endpoint('DELETE', '\\/annual-client-details\\/\\d+'),
|
19814
|
+
CAPITAL_LOSS_GET: new Endpoint('GET', '\\/capital-losses'),
|
19815
|
+
CAPITAL_LOSS_POST: new Endpoint('POST', '\\/capital-losses'),
|
19816
|
+
CAPITAL_LOSS_PUT: new Endpoint('PUT', '\\/capital-losses\\/\\d+'),
|
19817
|
+
CAPITAL_LOSS_DELETE: new Endpoint('DELETE', '\\/capital-losses\\/\\d+'),
|
19763
19818
|
DEPRECIATIONS_OPENING_POST: new Endpoint('GET', '\\/depreciations\\/\\opening-balance'),
|
19764
19819
|
DEPRECIATIONS_GET: new Endpoint('GET', '\\/depreciations'),
|
19765
19820
|
DEPRECIATIONS_POST: new Endpoint('POST', '\\/depreciations'),
|
@@ -22159,7 +22214,6 @@ class BankAccountsImportForm extends AbstractForm {
|
|
22159
22214
|
class AnnualClientDetailsForm extends AbstractForm {
|
22160
22215
|
constructor(annualClientDetails = plainToClass(AnnualClientDetails, {})) {
|
22161
22216
|
super({
|
22162
|
-
capitalLoss: new UntypedFormControl(annualClientDetails.capitalLoss, Validators.required),
|
22163
22217
|
privateHealthCare: new UntypedFormControl(annualClientDetails.privateHealthCare, Validators.required),
|
22164
22218
|
spouse: new UntypedFormControl(annualClientDetails.spouse, Validators.required),
|
22165
22219
|
spouseAnnualIncome: new UntypedFormControl(annualClientDetails.spouseAnnualIncome, conditionalValidator(() => this.get('spouse').value, Validators.required)),
|
@@ -22190,6 +22244,15 @@ class AnnualClientDetailsForm extends AbstractForm {
|
|
22190
22244
|
}
|
22191
22245
|
}
|
22192
22246
|
|
22247
|
+
class CapitalLossForm extends AbstractForm {
|
22248
|
+
constructor(capitalLoss = plainToClass(CapitalLoss, {})) {
|
22249
|
+
super({
|
22250
|
+
balance: new UntypedFormControl(capitalLoss.balance, Validators.required)
|
22251
|
+
}, capitalLoss);
|
22252
|
+
this.capitalLoss = capitalLoss;
|
22253
|
+
}
|
22254
|
+
}
|
22255
|
+
|
22193
22256
|
class LoginForm extends AbstractForm {
|
22194
22257
|
constructor() {
|
22195
22258
|
super({
|
@@ -24500,5 +24563,5 @@ var MessagesEnum;
|
|
24500
24563
|
* Generated bundle index. Do not edit.
|
24501
24564
|
*/
|
24502
24565
|
|
24503
|
-
export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressForm, AddressService, AddressTypeEnum, AllocationGroup, AllocationGroupCollection, AllocationRule, AllocationRuleCollection, AllocationRuleConditionComparisonOperatorEnum, AllocationRuleConditionFieldEnum, AllocationRuleConditionOperatorEnum, AllocationRuleForm, AllocationRuleService, AllocationRuleTransaction, AllocationRuleTransactionMetaField, AllocationRuleTypeEnum, AlphabetColorsEnum, AnnualClientDetails, AnnualClientDetailsForm, AnnualClientDetailsService, AnnualFrequencyEnum, AppCurrencyPipe, AppEvent, AppEvent2, AppEventTypeEnum, AppFile, AssetEntityTypeEnum, AssetSale, AssetSaleCollection, AssetTypeEnum, AssetsService, AuthService, BANK_ACCOUNT_TYPES, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionMessagesEnum, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankPopularEnum, BankProviderEnum, BankService, BankTransaction, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasReport, BasReportForm, BasReportMessagesEnum, BasReportService, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqMessagesEnum, BasiqService, BasiqToken, BasiqTokenService, BestVehicleLogbookCollection, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, BorrowingReport, BorrowingReportForm, BorrowingReportMessagesEnum, BorrowingReportService, Budget, BudgetForm, BudgetMessagesEnum, BudgetRule, BudgetService, BusinessTypeEnum, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsAdjustmentIncludedListEnum, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsForm, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsHoldingUntaxedIncomeListEnum, ChartAccountsInvoiceEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMessagesEnum, ChartAccountsMetaField, ChartAccountsMetaFieldListEnum, ChartAccountsMetaFieldTypeEnum, ChartAccountsPropertyAdjustmentsListEnum, ChartAccountsSalaryAdjustmentsListEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsUnallocatableListEnum, ChartAccountsValue, ChartAccountsValueService, ChartData, ChartSerie, Chat, ChatCollection, ChatFilterForm, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientCouponService, ClientDetails, ClientDetailsForm, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientInvite, ClientInviteCollection, ClientInviteForm, ClientInviteMessages, ClientInvitePutForm, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementForm, ClientMovementMessagesEnum, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CollectionForm, CorelogicService, CorelogicSuggestion, Country, CurrentFirmBranchService, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationForm, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpRateEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderForm, DocumentFolderMessagesEnum, DocumentFolderService, DocumentForm, DocumentMessagesEnum, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GoogleService, HeaderTitleService, Holding, HoldingCollection, HoldingForm, HoldingImport, HoldingImportForm, HoldingImportMessagesEnum, HoldingImportService, HoldingIncomeForm, HoldingMessagesEnum, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleForm, HoldingSaleMessagesEnum, HoldingSaleService, HoldingService, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypeService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastCollection, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceMessagesEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListHoldingEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, IncomeSourceTypeService, InterceptorsModule, IntercomService, InviteStatusEnum, InvoicePaymentForm, JsPdf, JwtService, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MixpanelService, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessDetails, MyTaxBusinessDetailsForm, MyTaxBusinessIncome, MyTaxBusinessIncomeForm, MyTaxBusinessIncomeOrLossesForm, MyTaxBusinessLosses, MyTaxBusinessLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfFromTableService, PdfOrientationEnum, PdfService, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, Property, PropertyAddForm, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementForm, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentForm, PropertyDocumentMessagesEnum, PropertyDocumentService, PropertyEditForm, PropertyEquityChartData, PropertyEquityChartItem, PropertyEquityChartTypeEnum, PropertyForecast, PropertyForecastForm, PropertyMessagesEnum, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetaField, PropertySaleTaxExemptionMetaFieldCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareCollection, PropertyShareForm, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, PropertyValuationCollection, PropertyValuationForm, PropertyValuationMessages, PropertyValuationService, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RestService$1 as RestService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, ServicePriceListEnum, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductCollection, ServiceProductIconsEnum, ServiceProductIdEnum, ServiceProductService, ServiceProductStatusEnum, ServicePromoCode, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, SetupItemTypeEnum, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessLossesCollection, SoleBusinessMessagesEnum, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsService, SoleForecast, SoleForecastService, SoleIncomeForm, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemCollection, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, StatesEnum, SubscriptionItemCollection, SubscriptionMessagesEnum, SubscriptionService, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionCollection, TaxExemptionEnum, TaxExemptionMetaField, TaxExemptionMetaFieldEnum, TaxExemptionService, TaxReturn, TaxReturnCategory, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReturnItem, TaxReturnItemEnum, TaxReturnItemService, TaxReview, TaxReviewCollection, TaxReviewFilterForm, TaxReviewFilterStatusEnum, TaxReviewHistoryService, TaxReviewMessagesEnum, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseFilterForm, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionMetaField, TransactionOperationEnum, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TtCoreModule, USER_ROLES, USER_WORK_POSITION, UniqueEmailValidator, User, UserCollection, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeCollection, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserForm, UserInviteForm, UserMedicareExemptionEnum, UserMessagesEnum, UserRolesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookMessages, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleMessagesEnum, VehicleService, WorkExpenseForm, WorkIncomeForm, XlsxService, YoutubeService, alphaSpaceValidator, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, minDateValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
|
24566
|
+
export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressForm, AddressService, AddressTypeEnum, AllocationGroup, AllocationGroupCollection, AllocationRule, AllocationRuleCollection, AllocationRuleConditionComparisonOperatorEnum, AllocationRuleConditionFieldEnum, AllocationRuleConditionOperatorEnum, AllocationRuleForm, AllocationRuleService, AllocationRuleTransaction, AllocationRuleTransactionMetaField, AllocationRuleTypeEnum, AlphabetColorsEnum, AnnualClientDetails, AnnualClientDetailsForm, AnnualClientDetailsService, AnnualFrequencyEnum, AppCurrencyPipe, AppEvent, AppEvent2, AppEventTypeEnum, AppFile, AssetEntityTypeEnum, AssetSale, AssetSaleCollection, AssetTypeEnum, AssetsService, AuthService, BANK_ACCOUNT_TYPES, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionMessagesEnum, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankPopularEnum, BankProviderEnum, BankService, BankTransaction, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasReport, BasReportForm, BasReportMessagesEnum, BasReportService, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqMessagesEnum, BasiqService, BasiqToken, BasiqTokenService, BestVehicleLogbookCollection, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, BorrowingReport, BorrowingReportForm, BorrowingReportMessagesEnum, BorrowingReportService, Budget, BudgetForm, BudgetMessagesEnum, BudgetRule, BudgetService, BusinessTypeEnum, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CapitalLoss, CapitalLossForm, CapitalLossMessagesEnum, CapitalLossService, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsAdjustmentIncludedListEnum, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsForm, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsHoldingUntaxedIncomeListEnum, ChartAccountsInvoiceEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMessagesEnum, ChartAccountsMetaField, ChartAccountsMetaFieldListEnum, ChartAccountsMetaFieldTypeEnum, ChartAccountsPropertyAdjustmentsListEnum, ChartAccountsSalaryAdjustmentsListEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsUnallocatableListEnum, ChartAccountsValue, ChartAccountsValueService, ChartData, ChartSerie, Chat, ChatCollection, ChatFilterForm, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientCouponService, ClientDetails, ClientDetailsForm, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientInvite, ClientInviteCollection, ClientInviteForm, ClientInviteMessages, ClientInvitePutForm, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementForm, ClientMovementMessagesEnum, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CollectionForm, CorelogicService, CorelogicSuggestion, Country, CurrentFirmBranchService, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationForm, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpRateEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderForm, DocumentFolderMessagesEnum, DocumentFolderService, DocumentForm, DocumentMessagesEnum, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GoogleService, HeaderTitleService, Holding, HoldingCollection, HoldingForm, HoldingImport, HoldingImportForm, HoldingImportMessagesEnum, HoldingImportService, HoldingIncomeForm, HoldingMessagesEnum, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleForm, HoldingSaleMessagesEnum, HoldingSaleService, HoldingService, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypeService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastCollection, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceMessagesEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListHoldingEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, IncomeSourceTypeService, InterceptorsModule, IntercomService, InviteStatusEnum, InvoicePaymentForm, JsPdf, JwtService, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MixpanelService, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessDetails, MyTaxBusinessDetailsForm, MyTaxBusinessIncome, MyTaxBusinessIncomeForm, MyTaxBusinessIncomeOrLossesForm, MyTaxBusinessLosses, MyTaxBusinessLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfFromTableService, PdfOrientationEnum, PdfService, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, Property, PropertyAddForm, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementForm, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentForm, PropertyDocumentMessagesEnum, PropertyDocumentService, PropertyEditForm, PropertyEquityChartData, PropertyEquityChartItem, PropertyEquityChartTypeEnum, PropertyForecast, PropertyForecastForm, PropertyMessagesEnum, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetaField, PropertySaleTaxExemptionMetaFieldCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareCollection, PropertyShareForm, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, PropertyValuationCollection, PropertyValuationForm, PropertyValuationMessages, PropertyValuationService, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RestService$1 as RestService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, ServicePriceListEnum, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductCollection, ServiceProductIconsEnum, ServiceProductIdEnum, ServiceProductService, ServiceProductStatusEnum, ServicePromoCode, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, SetupItemTypeEnum, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessLossesCollection, SoleBusinessMessagesEnum, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsService, SoleForecast, SoleForecastService, SoleIncomeForm, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemCollection, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, StatesEnum, SubscriptionItemCollection, SubscriptionMessagesEnum, SubscriptionService, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionCollection, TaxExemptionEnum, TaxExemptionMetaField, TaxExemptionMetaFieldEnum, TaxExemptionService, TaxReturn, TaxReturnCategory, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReturnItem, TaxReturnItemEnum, TaxReturnItemService, TaxReview, TaxReviewCollection, TaxReviewFilterForm, TaxReviewFilterStatusEnum, TaxReviewHistoryService, TaxReviewMessagesEnum, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseFilterForm, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionMetaField, TransactionOperationEnum, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TtCoreModule, USER_ROLES, USER_WORK_POSITION, UniqueEmailValidator, User, UserCollection, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeCollection, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserForm, UserInviteForm, UserMedicareExemptionEnum, UserMessagesEnum, UserRolesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookMessages, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleMessagesEnum, VehicleService, WorkExpenseForm, WorkIncomeForm, XlsxService, YoutubeService, alphaSpaceValidator, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, minDateValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
|
24504
24567
|
//# sourceMappingURL=taxtank-core.mjs.map
|