taxtank-core 0.32.47 → 0.32.49
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/collections/bank-account.collection.mjs +1 -1
- package/esm2022/lib/collections/sole/sole-business-losses.collection.mjs +6 -6
- package/esm2022/lib/collections/sole/sole-invoice-item.collection.mjs +4 -1
- package/esm2022/lib/collections/sole/sole-invoice.collection.mjs +17 -32
- package/esm2022/lib/collections/transaction/transaction-allocation.collection.mjs +1 -8
- package/esm2022/lib/collections/transaction/transaction.collection.mjs +14 -30
- package/esm2022/lib/db/Enums/index.mjs +2 -1
- package/esm2022/lib/db/Enums/sole-invoice-statuses.enum.mjs +2 -4
- package/esm2022/lib/db/Enums/subscription/index.mjs +2 -0
- package/esm2022/lib/db/Enums/subscription/service-price-list.enum.mjs +8 -0
- package/esm2022/lib/db/Enums/transaction-operation.enum.mjs +2 -2
- package/esm2022/lib/db/Models/client/client-details.mjs +1 -1
- package/esm2022/lib/db/Models/client/index.mjs +1 -2
- package/esm2022/lib/db/Models/sole/sole-invoice-item.mjs +1 -1
- package/esm2022/lib/db/Models/transaction/transaction.mjs +1 -1
- package/esm2022/lib/forms/client/index.mjs +1 -2
- package/esm2022/lib/forms/sole/bas-report.form.mjs +4 -5
- package/esm2022/lib/models/bank/allocation-group.mjs +2 -5
- package/esm2022/lib/models/bank/bank.mjs +1 -1
- package/esm2022/lib/models/client/index.mjs +1 -2
- package/esm2022/lib/models/endpoint/endpoints.const.mjs +1 -2
- package/esm2022/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.mjs +4 -5
- package/esm2022/lib/models/report/my-tax/my-tax-losses/my-tax-losses.mjs +3 -6
- package/esm2022/lib/models/report/sole/sole-business/sole-business-loss-report.mjs +4 -4
- package/esm2022/lib/models/sole/sole-invoice-item.mjs +25 -3
- package/esm2022/lib/models/sole/sole-invoice.mjs +51 -65
- package/esm2022/lib/models/transaction/transaction-allocation.mjs +1 -1
- package/esm2022/lib/models/transaction/transaction.mjs +3 -16
- package/esm2022/lib/services/account-setup/account-setup.service.mjs +1 -1
- package/esm2022/lib/services/http/firm/index.mjs +1 -2
- package/esm2022/lib/services/http/property/property-share/property-share.service.mjs +1 -1
- package/esm2022/lib/services/http/rest/rest.service.mjs +2 -2
- package/esm2022/lib/services/http/service-notification/service-notification.service.mjs +1 -1
- package/esm2022/lib/services/http/sole/sole-invoice/sole-invoice.service.mjs +2 -39
- package/esm2022/lib/services/http/transaction/transaction.service.mjs +6 -7
- package/esm2022/lib/services/http/user/user.service.mjs +1 -1
- package/esm2022/lib/services/index.mjs +1 -2
- package/esm2022/public-api.mjs +1 -2
- package/fesm2022/taxtank-core.mjs +295 -439
- package/fesm2022/taxtank-core.mjs.map +1 -1
- package/lib/collections/sole/sole-business-losses.collection.d.ts +2 -2
- package/lib/collections/sole/sole-invoice-item.collection.d.ts +2 -0
- package/lib/collections/sole/sole-invoice.collection.d.ts +8 -9
- package/lib/collections/transaction/transaction-allocation.collection.d.ts +0 -2
- package/lib/collections/transaction/transaction.collection.d.ts +4 -10
- package/lib/db/Enums/index.d.ts +1 -0
- package/lib/db/Enums/sole-invoice-statuses.enum.d.ts +1 -3
- package/lib/db/Enums/subscription/index.d.ts +1 -0
- package/lib/db/Enums/subscription/service-price-list.enum.d.ts +6 -0
- package/lib/db/Enums/transaction-operation.enum.d.ts +1 -1
- package/lib/db/Models/client/client-details.d.ts +0 -2
- package/lib/db/Models/client/index.d.ts +0 -1
- package/lib/db/Models/sole/sole-invoice-item.d.ts +1 -1
- package/lib/db/Models/transaction/transaction.d.ts +1 -1
- package/lib/forms/client/index.d.ts +0 -1
- package/lib/forms/sole/bas-report.form.d.ts +2 -3
- package/lib/models/bank/allocation-group.d.ts +0 -1
- package/lib/models/client/index.d.ts +0 -1
- package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.d.ts +2 -3
- package/lib/models/report/my-tax/my-tax-losses/my-tax-losses.d.ts +2 -5
- package/lib/models/report/sole/sole-business/sole-business-loss-report.d.ts +1 -2
- package/lib/models/sole/sole-invoice-item.d.ts +4 -1
- package/lib/models/sole/sole-invoice.d.ts +18 -27
- package/lib/models/transaction/transaction.d.ts +1 -9
- package/lib/services/http/firm/index.d.ts +0 -1
- package/lib/services/http/sole/sole-invoice/sole-invoice.service.d.ts +1 -6
- package/lib/services/http/transaction/transaction.service.d.ts +1 -1
- package/lib/services/index.d.ts +0 -1
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/esm2022/lib/db/Models/client/client-income-types.mjs +0 -4
- package/esm2022/lib/forms/client/client-income-types.form.mjs +0 -17
- package/esm2022/lib/models/client/client-income-types.mjs +0 -10
- package/esm2022/lib/services/http/firm/client-income/client-income-types.service.mjs +0 -23
- package/esm2022/lib/services/http/firm/client-income/index.mjs +0 -2
- package/esm2022/lib/services/transaction/index.mjs +0 -2
- package/esm2022/lib/services/transaction/transaction-calculation.service.mjs +0 -24
- package/lib/db/Models/client/client-income-types.d.ts +0 -10
- package/lib/forms/client/client-income-types.form.d.ts +0 -6
- package/lib/models/client/client-income-types.d.ts +0 -7
- package/lib/services/http/firm/client-income/client-income-types.service.d.ts +0 -13
- package/lib/services/http/firm/client-income/index.d.ts +0 -1
- package/lib/services/transaction/index.d.ts +0 -1
- package/lib/services/transaction/transaction-calculation.service.d.ts +0 -11
|
@@ -775,9 +775,6 @@ let AnnualClientDetails$1 = class AnnualClientDetails {
|
|
|
775
775
|
let ClientDetails$1 = class ClientDetails extends AbstractModel {
|
|
776
776
|
};
|
|
777
777
|
|
|
778
|
-
let ClientIncomeTypes$1 = class ClientIncomeTypes extends ObservableModel {
|
|
779
|
-
};
|
|
780
|
-
|
|
781
778
|
let Occupation$1 = class Occupation extends AbstractModel {
|
|
782
779
|
};
|
|
783
780
|
|
|
@@ -863,7 +860,7 @@ var TransactionOperationEnum;
|
|
|
863
860
|
TransactionOperationEnum[TransactionOperationEnum["ALLOCATE"] = 1] = "ALLOCATE";
|
|
864
861
|
TransactionOperationEnum[TransactionOperationEnum["FIND_AND_MATCH"] = 2] = "FIND_AND_MATCH";
|
|
865
862
|
TransactionOperationEnum[TransactionOperationEnum["TRANSFER"] = 3] = "TRANSFER";
|
|
866
|
-
TransactionOperationEnum[TransactionOperationEnum["
|
|
863
|
+
TransactionOperationEnum[TransactionOperationEnum["ALLOCATE_INVOICE"] = 5] = "ALLOCATE_INVOICE";
|
|
867
864
|
})(TransactionOperationEnum || (TransactionOperationEnum = {}));
|
|
868
865
|
|
|
869
866
|
/**
|
|
@@ -876,7 +873,7 @@ class AllocationGroup extends AbstractModel {
|
|
|
876
873
|
static fromInvoice(invoice, bankTransactions, allocations) {
|
|
877
874
|
return plainToClass(AllocationGroup, {
|
|
878
875
|
date: invoice.dateFrom,
|
|
879
|
-
operation: TransactionOperationEnum.
|
|
876
|
+
operation: TransactionOperationEnum.ALLOCATE_INVOICE,
|
|
880
877
|
description: invoice.reference,
|
|
881
878
|
invoiceNumber: invoice.getNumber(),
|
|
882
879
|
tankType: TankTypeEnum.SOLE,
|
|
@@ -902,9 +899,6 @@ class AllocationGroup extends AbstractModel {
|
|
|
902
899
|
isFindMatch() {
|
|
903
900
|
return this.operation === TransactionOperationEnum.FIND_AND_MATCH;
|
|
904
901
|
}
|
|
905
|
-
isMatchInvoice() {
|
|
906
|
-
return this.operation === TransactionOperationEnum.MATCH_INVOICE;
|
|
907
|
-
}
|
|
908
902
|
isTransfer() {
|
|
909
903
|
return this.operation === TransactionOperationEnum.TRANSFER;
|
|
910
904
|
}
|
|
@@ -1437,6 +1431,14 @@ var TaxReturnItemEnum;
|
|
|
1437
1431
|
TaxReturnItemEnum[TaxReturnItemEnum["LEASE_EXPENSES"] = 176] = "LEASE_EXPENSES";
|
|
1438
1432
|
})(TaxReturnItemEnum || (TaxReturnItemEnum = {}));
|
|
1439
1433
|
|
|
1434
|
+
var ServicePriceListEnum;
|
|
1435
|
+
(function (ServicePriceListEnum) {
|
|
1436
|
+
ServicePriceListEnum[ServicePriceListEnum["WORK_MONTHLY"] = 4] = "WORK_MONTHLY";
|
|
1437
|
+
ServicePriceListEnum[ServicePriceListEnum["SOLE_MONTHLY"] = 6] = "SOLE_MONTHLY";
|
|
1438
|
+
ServicePriceListEnum[ServicePriceListEnum["PROPERTY_MONTHLY"] = 7] = "PROPERTY_MONTHLY";
|
|
1439
|
+
ServicePriceListEnum[ServicePriceListEnum["HOLDING_MONTHLY"] = 17] = "HOLDING_MONTHLY";
|
|
1440
|
+
})(ServicePriceListEnum || (ServicePriceListEnum = {}));
|
|
1441
|
+
|
|
1440
1442
|
// @TODO Artem TT-2308 move everything
|
|
1441
1443
|
|
|
1442
1444
|
/**
|
|
@@ -4132,15 +4134,6 @@ __decorate([
|
|
|
4132
4134
|
Type(() => ClientDetails)
|
|
4133
4135
|
], AnnualClientDetails.prototype, "clientDetails", void 0);
|
|
4134
4136
|
|
|
4135
|
-
class ClientIncomeTypes extends ClientIncomeTypes$1 {
|
|
4136
|
-
/**
|
|
4137
|
-
* Get count of selected income types
|
|
4138
|
-
*/
|
|
4139
|
-
get length() {
|
|
4140
|
-
return Object.values(this).filter((value) => typeof value === 'boolean' && value).length;
|
|
4141
|
-
}
|
|
4142
|
-
}
|
|
4143
|
-
|
|
4144
4137
|
var ClientInviteStatusEnum;
|
|
4145
4138
|
(function (ClientInviteStatusEnum) {
|
|
4146
4139
|
ClientInviteStatusEnum[ClientInviteStatusEnum["PENDING"] = 1] = "PENDING";
|
|
@@ -4763,6 +4756,13 @@ __decorate([
|
|
|
4763
4756
|
Type(() => SoleBusinessLossOffsetRule)
|
|
4764
4757
|
], SoleBusinessLoss.prototype, "offsetRule", void 0);
|
|
4765
4758
|
|
|
4759
|
+
var SoleInvoiceTaxTypeEnum;
|
|
4760
|
+
(function (SoleInvoiceTaxTypeEnum) {
|
|
4761
|
+
SoleInvoiceTaxTypeEnum[SoleInvoiceTaxTypeEnum["TAX_EXCLUSIVE"] = 0] = "TAX_EXCLUSIVE";
|
|
4762
|
+
SoleInvoiceTaxTypeEnum[SoleInvoiceTaxTypeEnum["TAX_INCLUSIVE"] = 1] = "TAX_INCLUSIVE";
|
|
4763
|
+
SoleInvoiceTaxTypeEnum[SoleInvoiceTaxTypeEnum["NO_TAX"] = 2] = "NO_TAX";
|
|
4764
|
+
})(SoleInvoiceTaxTypeEnum || (SoleInvoiceTaxTypeEnum = {}));
|
|
4765
|
+
|
|
4766
4766
|
class SoleInvoiceItem extends SoleInvoiceItem$1 {
|
|
4767
4767
|
constructor() {
|
|
4768
4768
|
super(...arguments);
|
|
@@ -4771,6 +4771,25 @@ class SoleInvoiceItem extends SoleInvoiceItem$1 {
|
|
|
4771
4771
|
get totalPrice() {
|
|
4772
4772
|
return this.price * this.quantity;
|
|
4773
4773
|
}
|
|
4774
|
+
getTotalPrice(taxType, includeGST = false) {
|
|
4775
|
+
const totalPrice = this.totalPrice;
|
|
4776
|
+
if (includeGST) {
|
|
4777
|
+
const coefficient = this.isGST && taxType === SoleInvoiceTaxTypeEnum.TAX_EXCLUSIVE ? ChartAccounts.GSTCoefficient : 1;
|
|
4778
|
+
return totalPrice * coefficient;
|
|
4779
|
+
}
|
|
4780
|
+
const coefficient = this.isGST && taxType === SoleInvoiceTaxTypeEnum.TAX_INCLUSIVE ? ChartAccounts.GSTCoefficient : 1;
|
|
4781
|
+
return totalPrice / coefficient;
|
|
4782
|
+
}
|
|
4783
|
+
toTransaction() {
|
|
4784
|
+
return plainToClass(Transaction, {
|
|
4785
|
+
chartAccounts: this.chartAccounts,
|
|
4786
|
+
description: this.description,
|
|
4787
|
+
source: TransactionSourceEnum.BANK_TRANSACTION,
|
|
4788
|
+
isGST: this.isGST,
|
|
4789
|
+
operation: TransactionOperationEnum.ALLOCATE_INVOICE,
|
|
4790
|
+
invoiceItem: this
|
|
4791
|
+
});
|
|
4792
|
+
}
|
|
4774
4793
|
}
|
|
4775
4794
|
__decorate([
|
|
4776
4795
|
Type(() => SoleInvoice)
|
|
@@ -4780,7 +4799,7 @@ __decorate([
|
|
|
4780
4799
|
], SoleInvoiceItem.prototype, "chartAccounts", void 0);
|
|
4781
4800
|
__decorate([
|
|
4782
4801
|
Type(() => Transaction)
|
|
4783
|
-
], SoleInvoiceItem.prototype, "
|
|
4802
|
+
], SoleInvoiceItem.prototype, "transactions", void 0);
|
|
4784
4803
|
|
|
4785
4804
|
// @TODO Alex/Vik: Create some base class for User and SoleContact with common methods and properties
|
|
4786
4805
|
class SoleContact extends SoleContact$1 {
|
|
@@ -4808,25 +4827,16 @@ var SoleInvoiceStatusesEnum;
|
|
|
4808
4827
|
(function (SoleInvoiceStatusesEnum) {
|
|
4809
4828
|
SoleInvoiceStatusesEnum[SoleInvoiceStatusesEnum["CANCELED"] = 0] = "CANCELED";
|
|
4810
4829
|
SoleInvoiceStatusesEnum[SoleInvoiceStatusesEnum["DRAFT"] = 1] = "DRAFT";
|
|
4811
|
-
SoleInvoiceStatusesEnum[SoleInvoiceStatusesEnum["
|
|
4812
|
-
SoleInvoiceStatusesEnum[SoleInvoiceStatusesEnum["PAID"] = 3] = "PAID";
|
|
4813
|
-
SoleInvoiceStatusesEnum[SoleInvoiceStatusesEnum["PAID_CASH"] = 4] = "PAID_CASH";
|
|
4830
|
+
SoleInvoiceStatusesEnum[SoleInvoiceStatusesEnum["OPEN"] = 2] = "OPEN";
|
|
4814
4831
|
})(SoleInvoiceStatusesEnum || (SoleInvoiceStatusesEnum = {}));
|
|
4815
4832
|
|
|
4816
|
-
var SoleInvoiceTaxTypeEnum;
|
|
4817
|
-
(function (SoleInvoiceTaxTypeEnum) {
|
|
4818
|
-
SoleInvoiceTaxTypeEnum[SoleInvoiceTaxTypeEnum["TAX_EXCLUSIVE"] = 0] = "TAX_EXCLUSIVE";
|
|
4819
|
-
SoleInvoiceTaxTypeEnum[SoleInvoiceTaxTypeEnum["TAX_INCLUSIVE"] = 1] = "TAX_INCLUSIVE";
|
|
4820
|
-
SoleInvoiceTaxTypeEnum[SoleInvoiceTaxTypeEnum["NO_TAX"] = 2] = "NO_TAX";
|
|
4821
|
-
})(SoleInvoiceTaxTypeEnum || (SoleInvoiceTaxTypeEnum = {}));
|
|
4822
|
-
|
|
4823
4833
|
class SoleInvoice extends SoleInvoice$1 {
|
|
4824
4834
|
constructor() {
|
|
4825
4835
|
super(...arguments);
|
|
4826
4836
|
this.status = SoleInvoiceStatusesEnum.DRAFT;
|
|
4827
4837
|
this.taxType = SoleInvoiceTaxTypeEnum.NO_TAX;
|
|
4828
4838
|
}
|
|
4829
|
-
static { this.
|
|
4839
|
+
static { this.numberLength = 4; }
|
|
4830
4840
|
/**
|
|
4831
4841
|
* Get items array as collection
|
|
4832
4842
|
*/
|
|
@@ -4834,55 +4844,19 @@ class SoleInvoice extends SoleInvoice$1 {
|
|
|
4834
4844
|
return new SoleInvoiceItemCollection(this.items);
|
|
4835
4845
|
}
|
|
4836
4846
|
/**
|
|
4837
|
-
*
|
|
4838
|
-
*/
|
|
4839
|
-
get price() {
|
|
4840
|
-
return this.itemsCollection.sumBy('totalPrice');
|
|
4841
|
-
}
|
|
4842
|
-
/**
|
|
4843
|
-
* Total invoice price without GST
|
|
4847
|
+
* total without GST
|
|
4844
4848
|
*/
|
|
4845
4849
|
get netPrice() {
|
|
4846
|
-
|
|
4847
|
-
// round up to make sure invoice is fully paid
|
|
4848
|
-
return ceil(this.price - this.GSTAmount, 2);
|
|
4849
|
-
}
|
|
4850
|
-
return this.price;
|
|
4850
|
+
return ceil(this.itemsCollection.getTotalPrice(this.taxType), 2);
|
|
4851
4851
|
}
|
|
4852
4852
|
/**
|
|
4853
|
-
*
|
|
4853
|
+
* total + GST
|
|
4854
4854
|
*/
|
|
4855
4855
|
get grossPrice() {
|
|
4856
|
-
|
|
4857
|
-
// round up to make sure invoice is fully paid
|
|
4858
|
-
return ceil(this.price + this.GSTAmount, 2);
|
|
4859
|
-
}
|
|
4860
|
-
return this.price;
|
|
4856
|
+
return ceil(this.itemsCollection.getTotalPrice(this.taxType, true), 2);
|
|
4861
4857
|
}
|
|
4862
|
-
|
|
4863
|
-
|
|
4864
|
-
*/
|
|
4865
|
-
get GSTAmount() {
|
|
4866
|
-
switch (this.taxType) {
|
|
4867
|
-
case SoleInvoiceTaxTypeEnum.TAX_INCLUSIVE:
|
|
4868
|
-
return this.inclusiveGSTAmount;
|
|
4869
|
-
case SoleInvoiceTaxTypeEnum.TAX_EXCLUSIVE:
|
|
4870
|
-
return this.exclusiveGSTAmount;
|
|
4871
|
-
case SoleInvoiceTaxTypeEnum.NO_TAX:
|
|
4872
|
-
return 0;
|
|
4873
|
-
}
|
|
4874
|
-
}
|
|
4875
|
-
/**
|
|
4876
|
-
* When tax inclusive, GST amount is included to total price
|
|
4877
|
-
*/
|
|
4878
|
-
get inclusiveGSTAmount() {
|
|
4879
|
-
return this.itemsCollection.gstItems.reduce((sum, item) => sum + item.totalPrice - (item.totalPrice / (1 + ChartAccounts.GSTRatio)));
|
|
4880
|
-
}
|
|
4881
|
-
/**
|
|
4882
|
-
* When tax exclusive, GST amount should be added additionally to total price
|
|
4883
|
-
*/
|
|
4884
|
-
get exclusiveGSTAmount() {
|
|
4885
|
-
return this.itemsCollection.gstItems.reduce((sum, item) => sum + item.totalPrice * ChartAccounts.GSTRatio);
|
|
4858
|
+
get gstAmount() {
|
|
4859
|
+
return this.grossPrice - this.netPrice;
|
|
4886
4860
|
}
|
|
4887
4861
|
isDraft() {
|
|
4888
4862
|
return this.status === SoleInvoiceStatusesEnum.DRAFT;
|
|
@@ -4890,26 +4864,23 @@ class SoleInvoice extends SoleInvoice$1 {
|
|
|
4890
4864
|
isCancelled() {
|
|
4891
4865
|
return this.status === SoleInvoiceStatusesEnum.CANCELED;
|
|
4892
4866
|
}
|
|
4893
|
-
|
|
4894
|
-
return this.status === SoleInvoiceStatusesEnum.
|
|
4867
|
+
isOpen() {
|
|
4868
|
+
return this.status === SoleInvoiceStatusesEnum.OPEN;
|
|
4895
4869
|
}
|
|
4896
|
-
|
|
4897
|
-
return this.
|
|
4870
|
+
isPending() {
|
|
4871
|
+
return this.isOpen() && this.dateTo > new Date(Date.now() - (60 * 60 * 24 * 1000));
|
|
4898
4872
|
}
|
|
4899
|
-
|
|
4900
|
-
|
|
4873
|
+
/**
|
|
4874
|
+
* overdue next day after dateTo
|
|
4875
|
+
*/
|
|
4876
|
+
isOverdue() {
|
|
4877
|
+
return this.isOpen() && this.dateTo < new Date(Date.now() - (60 * 60 * 24 * 1000));
|
|
4901
4878
|
}
|
|
4902
|
-
|
|
4903
|
-
return this.
|
|
4879
|
+
getUnpaidAmount(transactions) {
|
|
4880
|
+
return this.grossPrice - transactions.filterBy('invoiceItem.id', this.itemsCollection.getIds()).sumBy('grossAmount');
|
|
4904
4881
|
}
|
|
4905
4882
|
isEditable() {
|
|
4906
|
-
return this.isDraft() || this.
|
|
4907
|
-
}
|
|
4908
|
-
isOverdue() {
|
|
4909
|
-
return this.isPending() && this.dateTo < new Date();
|
|
4910
|
-
}
|
|
4911
|
-
isUnpaid() {
|
|
4912
|
-
return this.isPending() && this.dateTo >= new Date();
|
|
4883
|
+
return this.isDraft() || this.isOpen();
|
|
4913
4884
|
}
|
|
4914
4885
|
/**
|
|
4915
4886
|
* GST is not available for invoices without taxes
|
|
@@ -4932,13 +4903,37 @@ class SoleInvoice extends SoleInvoice$1 {
|
|
|
4932
4903
|
return this.taxType === SoleInvoiceTaxTypeEnum.TAX_INCLUSIVE;
|
|
4933
4904
|
}
|
|
4934
4905
|
getNumber() {
|
|
4935
|
-
return String(this.number).padStart(SoleInvoice.
|
|
4906
|
+
return String(this.number).padStart(SoleInvoice.numberLength, '0');
|
|
4936
4907
|
}
|
|
4937
4908
|
get name() {
|
|
4938
4909
|
return `invoice-${this.getNumber()}.pdf`;
|
|
4939
4910
|
}
|
|
4940
|
-
|
|
4941
|
-
|
|
4911
|
+
/**
|
|
4912
|
+
* allocate invoice to bankTransaction = create transactions/allocations for specific amount or full
|
|
4913
|
+
*/
|
|
4914
|
+
allocate(bankTransaction, amount) {
|
|
4915
|
+
// Percent of allocation: When amount is less than invoice unallocated amount then we have to allocate its items proportianally
|
|
4916
|
+
const allocationCoefficient = amount ? amount / this.grossPrice : 1;
|
|
4917
|
+
return this.items.map((item) => {
|
|
4918
|
+
const transaction = plainToClass(Transaction, item.toTransaction());
|
|
4919
|
+
transaction.date = bankTransaction.date;
|
|
4920
|
+
transaction.amount = round(item.getTotalPrice(this.taxType) * allocationCoefficient, 2);
|
|
4921
|
+
transaction.allocations = [plainToClass(TransactionAllocation, {
|
|
4922
|
+
amount: transaction.grossAmount,
|
|
4923
|
+
bankTransaction: bankTransaction,
|
|
4924
|
+
})];
|
|
4925
|
+
return transaction;
|
|
4926
|
+
});
|
|
4927
|
+
}
|
|
4928
|
+
createTransactions(date, amount) {
|
|
4929
|
+
// Percent of allocation: When amount is less than invoice unallocated amount then we have to allocate its items proportianally
|
|
4930
|
+
const allocationCoefficient = amount ? amount / this.grossPrice : 1;
|
|
4931
|
+
return this.items.map((item) => {
|
|
4932
|
+
const transaction = plainToClass(Transaction, item.toTransaction());
|
|
4933
|
+
transaction.date = date;
|
|
4934
|
+
transaction.amount = round(item.getTotalPrice(this.taxType) * allocationCoefficient, 2);
|
|
4935
|
+
return transaction;
|
|
4936
|
+
});
|
|
4942
4937
|
}
|
|
4943
4938
|
}
|
|
4944
4939
|
__decorate([
|
|
@@ -6275,7 +6270,7 @@ class Transaction extends Transaction$1 {
|
|
|
6275
6270
|
this.amount = 0;
|
|
6276
6271
|
}
|
|
6277
6272
|
get invoiceId() {
|
|
6278
|
-
return this.
|
|
6273
|
+
return this.invoiceItem?.invoice.id;
|
|
6279
6274
|
}
|
|
6280
6275
|
isDebit() {
|
|
6281
6276
|
return this.type === TransactionTypeEnum.DEBIT;
|
|
@@ -6355,9 +6350,6 @@ class Transaction extends Transaction$1 {
|
|
|
6355
6350
|
isFindAndMatch() {
|
|
6356
6351
|
return this.operation === TransactionOperationEnum.FIND_AND_MATCH;
|
|
6357
6352
|
}
|
|
6358
|
-
isMatchInvoice() {
|
|
6359
|
-
return this.operation === TransactionOperationEnum.MATCH_INVOICE;
|
|
6360
|
-
}
|
|
6361
6353
|
get debit() {
|
|
6362
6354
|
return this.isDebit() ? Math.abs(this.grossAmount) : 0;
|
|
6363
6355
|
}
|
|
@@ -6408,16 +6400,6 @@ class Transaction extends Transaction$1 {
|
|
|
6408
6400
|
getAllocatedAmount(allocations) {
|
|
6409
6401
|
return allocations.filterBy('transaction.id', this.id).sumBy('amount');
|
|
6410
6402
|
}
|
|
6411
|
-
/**
|
|
6412
|
-
* @TODO vik TT-3363
|
|
6413
|
-
*/
|
|
6414
|
-
getAllocatedClaimAmount(allocations) {
|
|
6415
|
-
let coef = 1;
|
|
6416
|
-
if (this.isSoleTank() && this.isIncome() && this.isGST) {
|
|
6417
|
-
coef = ChartAccounts.GSTCoefficient;
|
|
6418
|
-
}
|
|
6419
|
-
return this.getAllocatedAmount(allocations) * this.claimRatio / coef;
|
|
6420
|
-
}
|
|
6421
6403
|
getUnallocatedAmount(allocations) {
|
|
6422
6404
|
return this.netAmount - this.getAllocatedAmount(allocations);
|
|
6423
6405
|
}
|
|
@@ -6485,7 +6467,7 @@ __decorate([
|
|
|
6485
6467
|
], Transaction.prototype, "allocations", void 0);
|
|
6486
6468
|
__decorate([
|
|
6487
6469
|
Type(() => SoleInvoiceItem)
|
|
6488
|
-
], Transaction.prototype, "
|
|
6470
|
+
], Transaction.prototype, "invoiceItem", void 0);
|
|
6489
6471
|
__decorate([
|
|
6490
6472
|
Transform(({ value }) => +value)
|
|
6491
6473
|
], Transaction.prototype, "tax", void 0);
|
|
@@ -6804,17 +6786,17 @@ class TransactionCollection extends ExportableCollection {
|
|
|
6804
6786
|
getByAllocations(allocations) {
|
|
6805
6787
|
return new TransactionCollection(this.items.filter((transaction) => allocations.hasTransaction(transaction)));
|
|
6806
6788
|
}
|
|
6807
|
-
|
|
6808
|
-
|
|
6809
|
-
|
|
6810
|
-
|
|
6811
|
-
|
|
6812
|
-
|
|
6813
|
-
|
|
6814
|
-
|
|
6815
|
-
|
|
6789
|
+
getByInvoices(invoices) {
|
|
6790
|
+
return this.filterBy('invoiceItem.id', invoices.getInvoiceItemsIds());
|
|
6791
|
+
}
|
|
6792
|
+
getAmountPerInvoice() {
|
|
6793
|
+
// @TODO invoiceItem.invoice will be removed on backend
|
|
6794
|
+
const transactionsByInvoice = this.groupBy('invoiceItem.invoice.id');
|
|
6795
|
+
const dictionary = new Dictionary([]);
|
|
6796
|
+
transactionsByInvoice.keys.forEach((key) => {
|
|
6797
|
+
dictionary.add(key, transactionsByInvoice.get(key).sumBy('grossAmount'));
|
|
6816
6798
|
});
|
|
6817
|
-
return
|
|
6799
|
+
return dictionary;
|
|
6818
6800
|
}
|
|
6819
6801
|
/**
|
|
6820
6802
|
* Get transactions related to Vehicle category
|
|
@@ -6906,33 +6888,17 @@ class TransactionCollection extends ExportableCollection {
|
|
|
6906
6888
|
});
|
|
6907
6889
|
return chartData;
|
|
6908
6890
|
}
|
|
6909
|
-
/**
|
|
6910
|
-
* user pays GST only from allocated part (or paid) of income
|
|
6911
|
-
*/
|
|
6912
|
-
calculateAllocatedClaimAmount(allocations) {
|
|
6913
|
-
return this.reduce((sum, transaction) => sum + transaction.getAllocatedClaimAmount(allocations));
|
|
6914
|
-
}
|
|
6915
|
-
calculateAllocatedGST(allocations) {
|
|
6916
|
-
return this.filterBy('isGST', true).reduce((sum, transaction) => sum + transaction.getAllocatedClaimAmount(allocations)) * ChartAccounts.GSTRatio;
|
|
6917
|
-
}
|
|
6918
6891
|
getAllocatedAmount(allocations) {
|
|
6919
6892
|
return allocations.getByTransactionsIds(this.getIds()).sumBy('amount');
|
|
6920
6893
|
}
|
|
6921
6894
|
/**
|
|
6922
6895
|
* @TODO vik business transactions calculated differently, separated collection?
|
|
6923
6896
|
*/
|
|
6924
|
-
getBusinessClaimAmount(
|
|
6897
|
+
getBusinessClaimAmount(businessId = null) {
|
|
6925
6898
|
const transactions = businessId ? this.filterBy('business.id', businessId) : this;
|
|
6926
6899
|
const expenses = transactions.getExpenseTransactions();
|
|
6927
6900
|
const incomes = transactions.getIncomeTransactions();
|
|
6928
|
-
return incomes.
|
|
6929
|
-
}
|
|
6930
|
-
groupByInvoice(invoices) {
|
|
6931
|
-
const transactionsByInvoices = new TransactionCollection([]).groupBy();
|
|
6932
|
-
invoices.toArray().forEach((invoice) => {
|
|
6933
|
-
transactionsByInvoices.add(invoice.id, this.filterBy('id', invoice.getTransactionsIds()));
|
|
6934
|
-
});
|
|
6935
|
-
return transactionsByInvoices;
|
|
6901
|
+
return incomes.sumBy('grossClaimAmount') + expenses.sumBy('claimAmount');
|
|
6936
6902
|
}
|
|
6937
6903
|
}
|
|
6938
6904
|
|
|
@@ -6972,13 +6938,6 @@ class TransactionAllocationCollection extends Collection {
|
|
|
6972
6938
|
hasBankTransaction(bankTransaction) {
|
|
6973
6939
|
return !!this.items.find((allocation) => allocation.bankTransaction.id === bankTransaction.id);
|
|
6974
6940
|
}
|
|
6975
|
-
groupByInvoice(invoices) {
|
|
6976
|
-
const allocationsByInvoices = new TransactionAllocationCollection([]).groupBy();
|
|
6977
|
-
invoices.toArray().forEach((invoice) => {
|
|
6978
|
-
allocationsByInvoices.add(invoice.id, this.filterBy('transaction.id', invoice.getTransactionsIds()));
|
|
6979
|
-
});
|
|
6980
|
-
return allocationsByInvoices;
|
|
6981
|
-
}
|
|
6982
6941
|
}
|
|
6983
6942
|
|
|
6984
6943
|
class DepreciationCollection extends Collection {
|
|
@@ -7377,118 +7336,6 @@ class MyTaxBusinessIncome {
|
|
|
7377
7336
|
}
|
|
7378
7337
|
}
|
|
7379
7338
|
|
|
7380
|
-
const TAX_RETURN_CATEGORIES = {
|
|
7381
|
-
work: {
|
|
7382
|
-
income: [
|
|
7383
|
-
TaxReturnCategoryListEnum.SALARY,
|
|
7384
|
-
TaxReturnCategoryListEnum.ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES,
|
|
7385
|
-
TaxReturnCategoryListEnum.EMPLOYER_LUMP_SUM_PAYMENTS,
|
|
7386
|
-
TaxReturnCategoryListEnum.ETP,
|
|
7387
|
-
TaxReturnCategoryListEnum.GOVERNMENT_ALLOWANCES,
|
|
7388
|
-
TaxReturnCategoryListEnum.GOVERNMENT_PENSIONS,
|
|
7389
|
-
TaxReturnCategoryListEnum.ANNUITIES_SUPER_INCOME_STREAMS,
|
|
7390
|
-
TaxReturnCategoryListEnum.SUPERANNUATION_LUMP_SUM_PAYMENTS,
|
|
7391
|
-
TaxReturnCategoryListEnum.ATTRIBUTED_PSI_INCOME,
|
|
7392
|
-
TaxReturnCategoryListEnum.DIVIDENDS,
|
|
7393
|
-
TaxReturnCategoryListEnum.GROSS_INTEREST
|
|
7394
|
-
],
|
|
7395
|
-
expenses: [
|
|
7396
|
-
TaxReturnCategoryListEnum.WORK_EXPENSES
|
|
7397
|
-
],
|
|
7398
|
-
interest: [],
|
|
7399
|
-
taxWithheld: [
|
|
7400
|
-
TaxReturnCategoryListEnum.TAX_WITHHELD
|
|
7401
|
-
]
|
|
7402
|
-
},
|
|
7403
|
-
property: {
|
|
7404
|
-
income: [
|
|
7405
|
-
TaxReturnCategoryListEnum.GROSS_RENT
|
|
7406
|
-
],
|
|
7407
|
-
expenses: [
|
|
7408
|
-
TaxReturnCategoryListEnum.OTHER_RENTAL_DEDUCTIONS
|
|
7409
|
-
],
|
|
7410
|
-
interest: [
|
|
7411
|
-
TaxReturnCategoryListEnum.INTEREST_DEDUCTIONS
|
|
7412
|
-
],
|
|
7413
|
-
depreciation: [
|
|
7414
|
-
TaxReturnCategoryListEnum.CAPITAL_WORKS,
|
|
7415
|
-
// @TODO Nik/Alex (it was TaxReturnCategoryListEnum.DEPRECIATION which doesn't exist)
|
|
7416
|
-
TaxReturnCategoryListEnum.PLANT_AND_EQUIPMENT
|
|
7417
|
-
]
|
|
7418
|
-
},
|
|
7419
|
-
other: {
|
|
7420
|
-
income: [
|
|
7421
|
-
TaxReturnCategoryListEnum.GROSS_INTEREST,
|
|
7422
|
-
TaxReturnCategoryListEnum.SHARE_SCHEMES,
|
|
7423
|
-
TaxReturnCategoryListEnum.PARTNERSHIPS,
|
|
7424
|
-
TaxReturnCategoryListEnum.PARTNERSHIPS_TRUSTS,
|
|
7425
|
-
TaxReturnCategoryListEnum.TRUSTS,
|
|
7426
|
-
TaxReturnCategoryListEnum.PSI_SBE_INCOME,
|
|
7427
|
-
TaxReturnCategoryListEnum.SOLE_TRADER_BUSINESS_INCOME,
|
|
7428
|
-
TaxReturnCategoryListEnum.CAPITAL_GAINS,
|
|
7429
|
-
TaxReturnCategoryListEnum.FOREIGN_SOURCE_INCOME,
|
|
7430
|
-
TaxReturnCategoryListEnum.BONUSES_FROM_LIFE_INSURANCE,
|
|
7431
|
-
TaxReturnCategoryListEnum.FORESTRY_MANAGED_INVESTMENT_SCHEMES,
|
|
7432
|
-
TaxReturnCategoryListEnum.OTHER_INCOME
|
|
7433
|
-
],
|
|
7434
|
-
expenses: [
|
|
7435
|
-
TaxReturnCategoryListEnum.OTHER_DEDUCTIONS
|
|
7436
|
-
],
|
|
7437
|
-
taxCredits: [
|
|
7438
|
-
TaxReturnCategoryListEnum.TAX_CREDITS
|
|
7439
|
-
],
|
|
7440
|
-
taxOffsets: [
|
|
7441
|
-
TaxReturnCategoryListEnum.TAX_OFFSETS,
|
|
7442
|
-
TaxReturnCategoryListEnum.TAX_OFFSETS_LOW,
|
|
7443
|
-
TaxReturnCategoryListEnum.TAX_OFFSETS_MIDDLE,
|
|
7444
|
-
]
|
|
7445
|
-
},
|
|
7446
|
-
sole: {
|
|
7447
|
-
income: [
|
|
7448
|
-
TaxReturnCategoryListEnum.GROSS_PAYMENTS_NO_ABN_GIVEN,
|
|
7449
|
-
TaxReturnCategoryListEnum.GROSS_PAYMENTS_VOLUNTARY_AGREEMENT,
|
|
7450
|
-
TaxReturnCategoryListEnum.GROSS_PAYMENTS_LABOUR_HIRE_OR_OTHER,
|
|
7451
|
-
TaxReturnCategoryListEnum.ASSESSABLE_GOVERNMENT_PAYMENTS,
|
|
7452
|
-
TaxReturnCategoryListEnum.OTHER_BUSINESS_INCOME
|
|
7453
|
-
],
|
|
7454
|
-
expenses: [
|
|
7455
|
-
TaxReturnCategoryListEnum.PURCHASES_AND_OTHER_COSTS,
|
|
7456
|
-
TaxReturnCategoryListEnum.CONTRACTORS_SUBCONTRACTORS_COMMISSION_EXPENSES,
|
|
7457
|
-
TaxReturnCategoryListEnum.SUPERANNUATION_EXPENSES,
|
|
7458
|
-
TaxReturnCategoryListEnum.BAD_DEBTS,
|
|
7459
|
-
TaxReturnCategoryListEnum.LEASE_EXPENSES,
|
|
7460
|
-
TaxReturnCategoryListEnum.RENT_EXPENSES,
|
|
7461
|
-
TaxReturnCategoryListEnum.INTEREST_EXPENSES_WITHIN_AUSTRALIA,
|
|
7462
|
-
TaxReturnCategoryListEnum.INTEREST_EXPENSES_OVERSEAS,
|
|
7463
|
-
TaxReturnCategoryListEnum.MOTOR_VEHICLE_EXPENSES,
|
|
7464
|
-
TaxReturnCategoryListEnum.ALL_OTHER_EXPENSES
|
|
7465
|
-
],
|
|
7466
|
-
depreciation: [
|
|
7467
|
-
TaxReturnCategoryListEnum.DEPRECIATION_EXPENSES,
|
|
7468
|
-
],
|
|
7469
|
-
loss: [
|
|
7470
|
-
TaxReturnCategoryListEnum.DEFERRED_BUSINESS_LOSSES_FROM_PRIOR_YEAR,
|
|
7471
|
-
],
|
|
7472
|
-
lossCurrent: [
|
|
7473
|
-
TaxReturnCategoryListEnum.DEFERRED_BUSINESS_LOSSES,
|
|
7474
|
-
],
|
|
7475
|
-
taxOffsets: [
|
|
7476
|
-
TaxReturnCategoryListEnum.TAX_OFFSETS_SOLE
|
|
7477
|
-
],
|
|
7478
|
-
},
|
|
7479
|
-
summary: {
|
|
7480
|
-
income: [
|
|
7481
|
-
TaxReturnCategoryListEnum.GROSS_TAX_PAYABLE, TaxReturnCategoryListEnum.TAX_PAYABLE
|
|
7482
|
-
],
|
|
7483
|
-
taxCredits: [
|
|
7484
|
-
TaxReturnCategoryListEnum.TAX_CREDITS
|
|
7485
|
-
],
|
|
7486
|
-
taxOffsets: [
|
|
7487
|
-
TaxReturnCategoryListEnum.TAX_OFFSETS,
|
|
7488
|
-
]
|
|
7489
|
-
}
|
|
7490
|
-
};
|
|
7491
|
-
|
|
7492
7339
|
var TaxSummarySectionEnum;
|
|
7493
7340
|
(function (TaxSummarySectionEnum) {
|
|
7494
7341
|
TaxSummarySectionEnum[TaxSummarySectionEnum["WORK_TANK"] = 1] = "WORK_TANK";
|
|
@@ -7503,7 +7350,7 @@ var TaxSummarySectionEnum;
|
|
|
7503
7350
|
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form (section "Business income or losses")
|
|
7504
7351
|
*/
|
|
7505
7352
|
class MyTaxBusinessLosses {
|
|
7506
|
-
constructor(transactions, depreciations,
|
|
7353
|
+
constructor(transactions, depreciations, businessLosses, currentLoss, taxSummary) {
|
|
7507
7354
|
this.currentLoss = currentLoss;
|
|
7508
7355
|
this.purchasesAndOtherCostsAmount = Math.abs(transactions.getExpenseTransactions()
|
|
7509
7356
|
.filterBy('chartAccounts.id', ChartAccountsListEnum.PURCHASES_STOCK_INVENTORY)
|
|
@@ -7557,7 +7404,7 @@ class MyTaxBusinessLosses {
|
|
|
7557
7404
|
.getSBPDepreciations()
|
|
7558
7405
|
.sumBy('claimAmount');
|
|
7559
7406
|
this.currentYearNetNonPrimaryIncomeOrLossesAmount = new TransactionCollection(transactions.toArray(), depreciations.toArray())
|
|
7560
|
-
.getBusinessClaimAmount(
|
|
7407
|
+
.getBusinessClaimAmount();
|
|
7561
7408
|
this.priorYearsNonPrimaryLossesAmount = businessLosses.sumBy('openBalance');
|
|
7562
7409
|
this.netNonPrimaryIncomeOrLossesAmount = this.currentYearNetNonPrimaryIncomeOrLossesAmount -
|
|
7563
7410
|
this.priorYearsNonPrimaryLossesAmount;
|
|
@@ -7927,12 +7774,9 @@ class MyTaxInterest {
|
|
|
7927
7774
|
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form ("Losses" section)
|
|
7928
7775
|
*/
|
|
7929
7776
|
class MyTaxLosses {
|
|
7930
|
-
constructor(businessLosses, transactions
|
|
7931
|
-
this.businessLosses = businessLosses;
|
|
7932
|
-
this.transactions = transactions;
|
|
7933
|
-
this.allocations = allocations;
|
|
7777
|
+
constructor(businessLosses, transactions) {
|
|
7934
7778
|
this.businessLossDeferred = businessLosses.sumBy('openBalance');
|
|
7935
|
-
this.businessLossApplied = businessLosses.calculateBusinessLossApplied(transactions
|
|
7779
|
+
this.businessLossApplied = businessLosses.calculateBusinessLossApplied(transactions);
|
|
7936
7780
|
}
|
|
7937
7781
|
}
|
|
7938
7782
|
|
|
@@ -8084,11 +7928,11 @@ const atoLinks = {
|
|
|
8084
7928
|
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4641357930/Rules+when+a+business+makes+a+loss+Tax+Summary
|
|
8085
7929
|
*/
|
|
8086
7930
|
class SoleBusinessLossReport extends AbstractModel {
|
|
8087
|
-
constructor(loss, transactions, depreciations
|
|
7931
|
+
constructor(loss, transactions, depreciations) {
|
|
8088
7932
|
super();
|
|
8089
7933
|
this.openBalance = loss.openBalance;
|
|
8090
7934
|
const claimAmount = new TransactionCollection(transactions.toArray(), depreciations.toArray())
|
|
8091
|
-
.getBusinessClaimAmount(
|
|
7935
|
+
.getBusinessClaimAmount(loss.business.id);
|
|
8092
7936
|
this.netIncome = claimAmount;
|
|
8093
7937
|
this.closeBalance = loss.offsetRule ? 0 : Math.min(0, claimAmount - this.openBalance);
|
|
8094
7938
|
}
|
|
@@ -8124,60 +7968,13 @@ class VehicleExpenseCollection extends Collection {
|
|
|
8124
7968
|
}
|
|
8125
7969
|
}
|
|
8126
7970
|
|
|
8127
|
-
/**
|
|
8128
|
-
* @TODO refactor with Map
|
|
8129
|
-
* List of objects grouped by passed property
|
|
8130
|
-
*/
|
|
8131
|
-
class Dictionary {
|
|
8132
|
-
constructor(items, path = 'id') {
|
|
8133
|
-
this.items = {};
|
|
8134
|
-
if (!items.length) {
|
|
8135
|
-
return;
|
|
8136
|
-
}
|
|
8137
|
-
this.groupItems(items, path);
|
|
8138
|
-
}
|
|
8139
|
-
add(key, value) {
|
|
8140
|
-
this.items[key] = value;
|
|
8141
|
-
}
|
|
8142
|
-
get(key) {
|
|
8143
|
-
return this.items[key] !== undefined ? this.items[key] : null;
|
|
8144
|
-
}
|
|
8145
|
-
merge(dictionary) {
|
|
8146
|
-
Object.assign(this.items, dictionary.items);
|
|
8147
|
-
return this;
|
|
8148
|
-
}
|
|
8149
|
-
toArray() {
|
|
8150
|
-
return Object.values(this.items);
|
|
8151
|
-
}
|
|
8152
|
-
groupItems(items, path) {
|
|
8153
|
-
// Do nothing if provided path was not found in the 1st item
|
|
8154
|
-
if (!hasIn(items[0], path.split('.')[0])) {
|
|
8155
|
-
return;
|
|
8156
|
-
}
|
|
8157
|
-
items.forEach((item) => {
|
|
8158
|
-
let key = get(item, path);
|
|
8159
|
-
// if object does not have property for grouping it will be grouped as 'other'
|
|
8160
|
-
if (key === undefined) {
|
|
8161
|
-
key = 'other';
|
|
8162
|
-
}
|
|
8163
|
-
this.items[key] = item;
|
|
8164
|
-
});
|
|
8165
|
-
}
|
|
8166
|
-
get keys() {
|
|
8167
|
-
return Object.keys(this.items);
|
|
8168
|
-
}
|
|
8169
|
-
get length() {
|
|
8170
|
-
return this.keys.length;
|
|
8171
|
-
}
|
|
8172
|
-
}
|
|
8173
|
-
|
|
8174
7971
|
class SoleBusinessLossesCollection extends Collection {
|
|
8175
7972
|
/**
|
|
8176
7973
|
* Business loss applied in current year, includes previous year losses and current year losses for businesses matching offset rule
|
|
8177
7974
|
*/
|
|
8178
|
-
calculateBusinessLossApplied(transactions
|
|
7975
|
+
calculateBusinessLossApplied(transactions) {
|
|
8179
7976
|
// claim amounts for businesses that can be applied to be reduced by prior year business losses
|
|
8180
|
-
const claimAmountsByBusinessId = this.getClaimAmountsByBusinessId(transactions
|
|
7977
|
+
const claimAmountsByBusinessId = this.getClaimAmountsByBusinessId(transactions);
|
|
8181
7978
|
return Object.keys(claimAmountsByBusinessId.items).reduce((sum, businessId) => {
|
|
8182
7979
|
const loss = this.findBy('business.id', +businessId);
|
|
8183
7980
|
const lossOpenBalance = loss?.openBalance || 0;
|
|
@@ -8190,7 +7987,7 @@ class SoleBusinessLossesCollection extends Collection {
|
|
|
8190
7987
|
* businesses with income or businesses with a loss, but which met the non-commercial loss rules
|
|
8191
7988
|
* https://www.ato.gov.au/Business/Non-commercial-losses/
|
|
8192
7989
|
*/
|
|
8193
|
-
getClaimAmountsByBusinessId(transactions
|
|
7990
|
+
getClaimAmountsByBusinessId(transactions) {
|
|
8194
7991
|
const claimAmountsByBusinessId = new Dictionary([]);
|
|
8195
7992
|
const transactionsByBusinessId = transactions.groupBy('business.id');
|
|
8196
7993
|
transactionsByBusinessId.keys.forEach((businessId) => {
|
|
@@ -8198,7 +7995,7 @@ class SoleBusinessLossesCollection extends Collection {
|
|
|
8198
7995
|
const lossOffsetRule = this.findBy('business.id', +businessId)?.offsetRule;
|
|
8199
7996
|
const businessClaimAmount = transactionsByBusinessId
|
|
8200
7997
|
.get(businessId)
|
|
8201
|
-
.getBusinessClaimAmount(
|
|
7998
|
+
.getBusinessClaimAmount(+businessId);
|
|
8202
7999
|
// @TODO vik it has nothing to do with getClaimAmountsByBusinessId
|
|
8203
8000
|
// no way to apply loss for business without profit if offset rules not met
|
|
8204
8001
|
if (businessClaimAmount < 0 && !lossOffsetRule) {
|
|
@@ -8214,46 +8011,35 @@ class SoleInvoiceItemCollection extends Collection {
|
|
|
8214
8011
|
get gstItems() {
|
|
8215
8012
|
return this.filterBy('isGST', true);
|
|
8216
8013
|
}
|
|
8014
|
+
getTotalPrice(taxType, includeGST = false) {
|
|
8015
|
+
return this.reduce((sum, item) => sum + item.getTotalPrice(taxType, includeGST));
|
|
8016
|
+
}
|
|
8217
8017
|
}
|
|
8218
8018
|
|
|
8219
8019
|
class SoleInvoiceCollection extends Collection {
|
|
8220
8020
|
getOverdue() {
|
|
8221
8021
|
return this.filter((invoice) => invoice.isOverdue());
|
|
8222
8022
|
}
|
|
8223
|
-
getUnpaid() {
|
|
8224
|
-
return this.filter((invoice) => invoice.isUnpaid());
|
|
8225
|
-
}
|
|
8226
|
-
getPaid() {
|
|
8227
|
-
return this.filter((invoice) => invoice.isAllocated());
|
|
8228
|
-
}
|
|
8229
|
-
getPaidCash() {
|
|
8230
|
-
return this.filter((invoice) => invoice.isPaidCash());
|
|
8231
|
-
}
|
|
8232
8023
|
getPending() {
|
|
8233
8024
|
return this.filter((invoice) => invoice.isPending());
|
|
8234
8025
|
}
|
|
8235
|
-
|
|
8236
|
-
return
|
|
8026
|
+
getPaid(transactions) {
|
|
8027
|
+
return this.filter(invoice => transactions.getAmountPerInvoice().get(invoice.id) >= invoice.grossPrice);
|
|
8237
8028
|
}
|
|
8238
|
-
|
|
8239
|
-
return this.filter((invoice)
|
|
8240
|
-
const invoiceAllocatedAmount = allocations.filterBy('transaction.id', invoice.getTransactionsIds()).sumBy('amount');
|
|
8241
|
-
return invoice.grossPrice > invoiceAllocatedAmount;
|
|
8242
|
-
});
|
|
8029
|
+
getUnpaid(transactions) {
|
|
8030
|
+
return this.getOpen().filter(invoice => transactions.getAmountPerInvoice().get(invoice.id) < invoice.grossPrice);
|
|
8243
8031
|
}
|
|
8244
|
-
|
|
8245
|
-
return this.
|
|
8032
|
+
getOpen() {
|
|
8033
|
+
return this.filter((invoice) => invoice.isOpen());
|
|
8246
8034
|
}
|
|
8247
|
-
|
|
8248
|
-
|
|
8249
|
-
|
|
8250
|
-
|
|
8251
|
-
|
|
8252
|
-
|
|
8253
|
-
|
|
8254
|
-
|
|
8255
|
-
});
|
|
8256
|
-
return dictionary;
|
|
8035
|
+
getInvoiceItemsIds() {
|
|
8036
|
+
return flatten(this.map(invoice => invoice.items.map(item => item.id)));
|
|
8037
|
+
}
|
|
8038
|
+
getUnpaidAmount(transactions) {
|
|
8039
|
+
return this.sumBy('grossPrice') - transactions.getByInvoices(this).sumBy('grossAmount');
|
|
8040
|
+
}
|
|
8041
|
+
allocate(bankTransaction, amount) {
|
|
8042
|
+
return flatten(this.map(invoice => invoice.allocate(bankTransaction, amount)));
|
|
8257
8043
|
}
|
|
8258
8044
|
}
|
|
8259
8045
|
|
|
@@ -8477,6 +8263,118 @@ class ReportItemCollection extends Collection {
|
|
|
8477
8263
|
}
|
|
8478
8264
|
}
|
|
8479
8265
|
|
|
8266
|
+
const TAX_RETURN_CATEGORIES = {
|
|
8267
|
+
work: {
|
|
8268
|
+
income: [
|
|
8269
|
+
TaxReturnCategoryListEnum.SALARY,
|
|
8270
|
+
TaxReturnCategoryListEnum.ALLOWANCES_EARNINGS_TIPS_DIRECTOR_FEES,
|
|
8271
|
+
TaxReturnCategoryListEnum.EMPLOYER_LUMP_SUM_PAYMENTS,
|
|
8272
|
+
TaxReturnCategoryListEnum.ETP,
|
|
8273
|
+
TaxReturnCategoryListEnum.GOVERNMENT_ALLOWANCES,
|
|
8274
|
+
TaxReturnCategoryListEnum.GOVERNMENT_PENSIONS,
|
|
8275
|
+
TaxReturnCategoryListEnum.ANNUITIES_SUPER_INCOME_STREAMS,
|
|
8276
|
+
TaxReturnCategoryListEnum.SUPERANNUATION_LUMP_SUM_PAYMENTS,
|
|
8277
|
+
TaxReturnCategoryListEnum.ATTRIBUTED_PSI_INCOME,
|
|
8278
|
+
TaxReturnCategoryListEnum.DIVIDENDS,
|
|
8279
|
+
TaxReturnCategoryListEnum.GROSS_INTEREST
|
|
8280
|
+
],
|
|
8281
|
+
expenses: [
|
|
8282
|
+
TaxReturnCategoryListEnum.WORK_EXPENSES
|
|
8283
|
+
],
|
|
8284
|
+
interest: [],
|
|
8285
|
+
taxWithheld: [
|
|
8286
|
+
TaxReturnCategoryListEnum.TAX_WITHHELD
|
|
8287
|
+
]
|
|
8288
|
+
},
|
|
8289
|
+
property: {
|
|
8290
|
+
income: [
|
|
8291
|
+
TaxReturnCategoryListEnum.GROSS_RENT
|
|
8292
|
+
],
|
|
8293
|
+
expenses: [
|
|
8294
|
+
TaxReturnCategoryListEnum.OTHER_RENTAL_DEDUCTIONS
|
|
8295
|
+
],
|
|
8296
|
+
interest: [
|
|
8297
|
+
TaxReturnCategoryListEnum.INTEREST_DEDUCTIONS
|
|
8298
|
+
],
|
|
8299
|
+
depreciation: [
|
|
8300
|
+
TaxReturnCategoryListEnum.CAPITAL_WORKS,
|
|
8301
|
+
// @TODO Nik/Alex (it was TaxReturnCategoryListEnum.DEPRECIATION which doesn't exist)
|
|
8302
|
+
TaxReturnCategoryListEnum.PLANT_AND_EQUIPMENT
|
|
8303
|
+
]
|
|
8304
|
+
},
|
|
8305
|
+
other: {
|
|
8306
|
+
income: [
|
|
8307
|
+
TaxReturnCategoryListEnum.GROSS_INTEREST,
|
|
8308
|
+
TaxReturnCategoryListEnum.SHARE_SCHEMES,
|
|
8309
|
+
TaxReturnCategoryListEnum.PARTNERSHIPS,
|
|
8310
|
+
TaxReturnCategoryListEnum.PARTNERSHIPS_TRUSTS,
|
|
8311
|
+
TaxReturnCategoryListEnum.TRUSTS,
|
|
8312
|
+
TaxReturnCategoryListEnum.PSI_SBE_INCOME,
|
|
8313
|
+
TaxReturnCategoryListEnum.SOLE_TRADER_BUSINESS_INCOME,
|
|
8314
|
+
TaxReturnCategoryListEnum.CAPITAL_GAINS,
|
|
8315
|
+
TaxReturnCategoryListEnum.FOREIGN_SOURCE_INCOME,
|
|
8316
|
+
TaxReturnCategoryListEnum.BONUSES_FROM_LIFE_INSURANCE,
|
|
8317
|
+
TaxReturnCategoryListEnum.FORESTRY_MANAGED_INVESTMENT_SCHEMES,
|
|
8318
|
+
TaxReturnCategoryListEnum.OTHER_INCOME
|
|
8319
|
+
],
|
|
8320
|
+
expenses: [
|
|
8321
|
+
TaxReturnCategoryListEnum.OTHER_DEDUCTIONS
|
|
8322
|
+
],
|
|
8323
|
+
taxCredits: [
|
|
8324
|
+
TaxReturnCategoryListEnum.TAX_CREDITS
|
|
8325
|
+
],
|
|
8326
|
+
taxOffsets: [
|
|
8327
|
+
TaxReturnCategoryListEnum.TAX_OFFSETS,
|
|
8328
|
+
TaxReturnCategoryListEnum.TAX_OFFSETS_LOW,
|
|
8329
|
+
TaxReturnCategoryListEnum.TAX_OFFSETS_MIDDLE,
|
|
8330
|
+
]
|
|
8331
|
+
},
|
|
8332
|
+
sole: {
|
|
8333
|
+
income: [
|
|
8334
|
+
TaxReturnCategoryListEnum.GROSS_PAYMENTS_NO_ABN_GIVEN,
|
|
8335
|
+
TaxReturnCategoryListEnum.GROSS_PAYMENTS_VOLUNTARY_AGREEMENT,
|
|
8336
|
+
TaxReturnCategoryListEnum.GROSS_PAYMENTS_LABOUR_HIRE_OR_OTHER,
|
|
8337
|
+
TaxReturnCategoryListEnum.ASSESSABLE_GOVERNMENT_PAYMENTS,
|
|
8338
|
+
TaxReturnCategoryListEnum.OTHER_BUSINESS_INCOME
|
|
8339
|
+
],
|
|
8340
|
+
expenses: [
|
|
8341
|
+
TaxReturnCategoryListEnum.PURCHASES_AND_OTHER_COSTS,
|
|
8342
|
+
TaxReturnCategoryListEnum.CONTRACTORS_SUBCONTRACTORS_COMMISSION_EXPENSES,
|
|
8343
|
+
TaxReturnCategoryListEnum.SUPERANNUATION_EXPENSES,
|
|
8344
|
+
TaxReturnCategoryListEnum.BAD_DEBTS,
|
|
8345
|
+
TaxReturnCategoryListEnum.LEASE_EXPENSES,
|
|
8346
|
+
TaxReturnCategoryListEnum.RENT_EXPENSES,
|
|
8347
|
+
TaxReturnCategoryListEnum.INTEREST_EXPENSES_WITHIN_AUSTRALIA,
|
|
8348
|
+
TaxReturnCategoryListEnum.INTEREST_EXPENSES_OVERSEAS,
|
|
8349
|
+
TaxReturnCategoryListEnum.MOTOR_VEHICLE_EXPENSES,
|
|
8350
|
+
TaxReturnCategoryListEnum.ALL_OTHER_EXPENSES
|
|
8351
|
+
],
|
|
8352
|
+
depreciation: [
|
|
8353
|
+
TaxReturnCategoryListEnum.DEPRECIATION_EXPENSES,
|
|
8354
|
+
],
|
|
8355
|
+
loss: [
|
|
8356
|
+
TaxReturnCategoryListEnum.DEFERRED_BUSINESS_LOSSES_FROM_PRIOR_YEAR,
|
|
8357
|
+
],
|
|
8358
|
+
lossCurrent: [
|
|
8359
|
+
TaxReturnCategoryListEnum.DEFERRED_BUSINESS_LOSSES,
|
|
8360
|
+
],
|
|
8361
|
+
taxOffsets: [
|
|
8362
|
+
TaxReturnCategoryListEnum.TAX_OFFSETS_SOLE
|
|
8363
|
+
],
|
|
8364
|
+
},
|
|
8365
|
+
summary: {
|
|
8366
|
+
income: [
|
|
8367
|
+
TaxReturnCategoryListEnum.GROSS_TAX_PAYABLE, TaxReturnCategoryListEnum.TAX_PAYABLE
|
|
8368
|
+
],
|
|
8369
|
+
taxCredits: [
|
|
8370
|
+
TaxReturnCategoryListEnum.TAX_CREDITS
|
|
8371
|
+
],
|
|
8372
|
+
taxOffsets: [
|
|
8373
|
+
TaxReturnCategoryListEnum.TAX_OFFSETS,
|
|
8374
|
+
]
|
|
8375
|
+
}
|
|
8376
|
+
};
|
|
8377
|
+
|
|
8480
8378
|
class VehicleLogbookCollection extends Collection {
|
|
8481
8379
|
/**
|
|
8482
8380
|
* Calculate total kilometers traveled
|
|
@@ -10005,6 +9903,53 @@ __decorate([
|
|
|
10005
9903
|
Expose()
|
|
10006
9904
|
], Message.prototype, "documents", void 0);
|
|
10007
9905
|
|
|
9906
|
+
/**
|
|
9907
|
+
* @TODO refactor with Map
|
|
9908
|
+
* List of objects grouped by passed property
|
|
9909
|
+
*/
|
|
9910
|
+
class Dictionary {
|
|
9911
|
+
constructor(items, path = 'id') {
|
|
9912
|
+
this.items = {};
|
|
9913
|
+
if (!items.length) {
|
|
9914
|
+
return;
|
|
9915
|
+
}
|
|
9916
|
+
this.groupItems(items, path);
|
|
9917
|
+
}
|
|
9918
|
+
add(key, value) {
|
|
9919
|
+
this.items[key] = value;
|
|
9920
|
+
}
|
|
9921
|
+
get(key) {
|
|
9922
|
+
return this.items[key] !== undefined ? this.items[key] : null;
|
|
9923
|
+
}
|
|
9924
|
+
merge(dictionary) {
|
|
9925
|
+
Object.assign(this.items, dictionary.items);
|
|
9926
|
+
return this;
|
|
9927
|
+
}
|
|
9928
|
+
toArray() {
|
|
9929
|
+
return Object.values(this.items);
|
|
9930
|
+
}
|
|
9931
|
+
groupItems(items, path) {
|
|
9932
|
+
// Do nothing if provided path was not found in the 1st item
|
|
9933
|
+
if (!hasIn(items[0], path.split('.')[0])) {
|
|
9934
|
+
return;
|
|
9935
|
+
}
|
|
9936
|
+
items.forEach((item) => {
|
|
9937
|
+
let key = get(item, path);
|
|
9938
|
+
// if object does not have property for grouping it will be grouped as 'other'
|
|
9939
|
+
if (key === undefined) {
|
|
9940
|
+
key = 'other';
|
|
9941
|
+
}
|
|
9942
|
+
this.items[key] = item;
|
|
9943
|
+
});
|
|
9944
|
+
}
|
|
9945
|
+
get keys() {
|
|
9946
|
+
return Object.keys(this.items);
|
|
9947
|
+
}
|
|
9948
|
+
get length() {
|
|
9949
|
+
return this.keys.length;
|
|
9950
|
+
}
|
|
9951
|
+
}
|
|
9952
|
+
|
|
10008
9953
|
/**
|
|
10009
9954
|
* @TODO Alex remove
|
|
10010
9955
|
*/
|
|
@@ -11065,7 +11010,7 @@ let RestService$1 = class RestService extends DataService {
|
|
|
11065
11010
|
* Listen for Server-Sent Events (SSE) on the specified Mercure topic
|
|
11066
11011
|
*/
|
|
11067
11012
|
listenSSE() {
|
|
11068
|
-
if (!this.mercureTopic) {
|
|
11013
|
+
if (!this.mercureTopic || !this.cache) {
|
|
11069
11014
|
return;
|
|
11070
11015
|
}
|
|
11071
11016
|
this.sseService.on(this.mercureTopic).pipe(map((response) => {
|
|
@@ -12209,24 +12154,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
12209
12154
|
}]
|
|
12210
12155
|
}] });
|
|
12211
12156
|
|
|
12212
|
-
class ClientIncomeTypesService extends RestService$1 {
|
|
12213
|
-
constructor() {
|
|
12214
|
-
super(...arguments);
|
|
12215
|
-
this.modelClass = ClientIncomeTypes;
|
|
12216
|
-
this.collectionClass = Collection;
|
|
12217
|
-
this.endpointUri = 'client-income-types';
|
|
12218
|
-
this.disabledMethods = ['postBatch', 'putBatch', 'delete', 'deleteBatch'];
|
|
12219
|
-
}
|
|
12220
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClientIncomeTypesService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12221
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClientIncomeTypesService, providedIn: 'root' }); }
|
|
12222
|
-
}
|
|
12223
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClientIncomeTypesService, decorators: [{
|
|
12224
|
-
type: Injectable,
|
|
12225
|
-
args: [{
|
|
12226
|
-
providedIn: 'root'
|
|
12227
|
-
}]
|
|
12228
|
-
}] });
|
|
12229
|
-
|
|
12230
12157
|
class ClientInviteService extends RestService$1 {
|
|
12231
12158
|
constructor(environment) {
|
|
12232
12159
|
super(environment);
|
|
@@ -13976,37 +13903,10 @@ class SoleInvoiceService extends RestService {
|
|
|
13976
13903
|
this.modelClass = SoleInvoice;
|
|
13977
13904
|
this.url = 'sole-invoices';
|
|
13978
13905
|
this.roles = [UserRolesEnum.SOLE_TANK];
|
|
13979
|
-
this.listenEvents();
|
|
13980
|
-
}
|
|
13981
|
-
listenEvents() {
|
|
13982
|
-
this.listenAllocations();
|
|
13983
|
-
}
|
|
13984
|
-
add(invoice) {
|
|
13985
|
-
return super.add(invoice).pipe(map((newInvoice) => {
|
|
13986
|
-
// invoice published right away skipping draft status
|
|
13987
|
-
if (newInvoice.isPending()) {
|
|
13988
|
-
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.SOLE_INVOICE_PUBLISHED, newInvoice));
|
|
13989
|
-
}
|
|
13990
|
-
return newInvoice;
|
|
13991
|
-
}));
|
|
13992
|
-
}
|
|
13993
|
-
update(invoice) {
|
|
13994
|
-
return super.update(invoice).pipe(map((updatedInvoice) => {
|
|
13995
|
-
if (!updatedInvoice.isDraft()) {
|
|
13996
|
-
// @TODO vik use different event to reload transactions
|
|
13997
|
-
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.SOLE_INVOICE_PUBLISHED, updatedInvoice));
|
|
13998
|
-
}
|
|
13999
|
-
return updatedInvoice;
|
|
14000
|
-
}));
|
|
14001
13906
|
}
|
|
14002
13907
|
updateStatus(invoice, status) {
|
|
14003
13908
|
// @TODO use id only to avoid unexpected changes
|
|
14004
|
-
return this.update(Object.assign({}, invoice, { status }))
|
|
14005
|
-
if (updatedInvoice.isPending()) {
|
|
14006
|
-
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.SOLE_INVOICE_PUBLISHED, updatedInvoice));
|
|
14007
|
-
}
|
|
14008
|
-
return updatedInvoice;
|
|
14009
|
-
}));
|
|
13909
|
+
return this.update(Object.assign({}, invoice, { status }));
|
|
14010
13910
|
}
|
|
14011
13911
|
send(invoice, file) {
|
|
14012
13912
|
const formData = new FormData();
|
|
@@ -14025,14 +13925,6 @@ class SoleInvoiceService extends RestService {
|
|
|
14025
13925
|
const number = last(this.cache)?.number ?? 0;
|
|
14026
13926
|
return number + 1;
|
|
14027
13927
|
}
|
|
14028
|
-
listenAllocations() {
|
|
14029
|
-
this.eventDispatcherService.on([
|
|
14030
|
-
AppEventTypeEnum.TRANSACTION_ALLOCATION_CREATED,
|
|
14031
|
-
AppEventTypeEnum.TRANSACTION_ALLOCATION_DELETED
|
|
14032
|
-
]).subscribe(() => {
|
|
14033
|
-
this.refreshCache();
|
|
14034
|
-
});
|
|
14035
|
-
}
|
|
14036
13928
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SoleInvoiceService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14037
13929
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SoleInvoiceService, providedIn: 'root' }); }
|
|
14038
13930
|
}
|
|
@@ -14926,7 +14818,6 @@ class TransactionService extends RestService {
|
|
|
14926
14818
|
this.listenPropertyShareUpdate();
|
|
14927
14819
|
this.listenVehicleClaimChanges();
|
|
14928
14820
|
this.listenPropertyForecastUpdate();
|
|
14929
|
-
this.listenInvoicesPublish();
|
|
14930
14821
|
}
|
|
14931
14822
|
/**
|
|
14932
14823
|
* get list of all user's TaxTank transactions
|
|
@@ -15060,6 +14951,11 @@ class TransactionService extends RestService {
|
|
|
15060
14951
|
return updatedTransactions;
|
|
15061
14952
|
}));
|
|
15062
14953
|
}
|
|
14954
|
+
deleteBatch(models) {
|
|
14955
|
+
return super.deleteBatch(models).pipe(map(() => {
|
|
14956
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_DELETED, models[0]));
|
|
14957
|
+
}));
|
|
14958
|
+
}
|
|
15063
14959
|
/**
|
|
15064
14960
|
* delete transaction and related transactions
|
|
15065
14961
|
* @param model
|
|
@@ -15143,11 +15039,6 @@ class TransactionService extends RestService {
|
|
|
15143
15039
|
replace(this.cache, transactionToReplace);
|
|
15144
15040
|
this.updateCache();
|
|
15145
15041
|
}
|
|
15146
|
-
listenInvoicesPublish() {
|
|
15147
|
-
this.eventDispatcherService.on(AppEventTypeEnum.SOLE_INVOICE_PUBLISHED).subscribe(() => {
|
|
15148
|
-
this.refreshCache();
|
|
15149
|
-
});
|
|
15150
|
-
}
|
|
15151
15042
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TransactionService, deps: [{ token: i1.HttpClient }, { token: EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
15152
15043
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TransactionService, providedIn: 'root' }); }
|
|
15153
15044
|
}
|
|
@@ -18995,27 +18886,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
18995
18886
|
}]
|
|
18996
18887
|
}], ctorParameters: function () { return [{ type: PropertyService }, { type: TransactionService }, { type: DepreciationService }, { type: ChartAccountsService }]; } });
|
|
18997
18888
|
|
|
18998
|
-
/**
|
|
18999
|
-
* @TODO Alex: refactor, move methods to collections and models, remove this service
|
|
19000
|
-
*/
|
|
19001
|
-
class TransactionCalculationService {
|
|
19002
|
-
getAllocationsByInvoices(invoices, allocations) {
|
|
19003
|
-
const allocationsByInvoices = new TransactionAllocationCollection([]).groupBy();
|
|
19004
|
-
invoices.toArray().forEach((invoice) => {
|
|
19005
|
-
allocationsByInvoices.add(invoice.id, allocations.filterBy('transaction.id', invoice.getTransactionsIds()));
|
|
19006
|
-
});
|
|
19007
|
-
return allocationsByInvoices;
|
|
19008
|
-
}
|
|
19009
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TransactionCalculationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19010
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TransactionCalculationService, providedIn: 'root' }); }
|
|
19011
|
-
}
|
|
19012
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TransactionCalculationService, decorators: [{
|
|
19013
|
-
type: Injectable,
|
|
19014
|
-
args: [{
|
|
19015
|
-
providedIn: 'root'
|
|
19016
|
-
}]
|
|
19017
|
-
}] });
|
|
19018
|
-
|
|
19019
18889
|
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
|
|
19020
18890
|
/**
|
|
19021
18891
|
* Service to work with XLSX (generate, download, e.t.c.)
|
|
@@ -19330,7 +19200,6 @@ const ENDPOINTS = {
|
|
|
19330
19200
|
CLIENT_MOVEMENTS_CLOSE: new Endpoint('PUT', '\\/client-movements\\/\\d+\\/close'),
|
|
19331
19201
|
CLIENT_MOVEMENTS_GET: new Endpoint('GET', '\\/client-movements'),
|
|
19332
19202
|
CLIENT_MOVEMENTS_POST: new Endpoint('POST', '\\/client-movements'),
|
|
19333
|
-
CLIENT_INCOME_TYPES_POST: new Endpoint('POST', '\\/client-income-types'),
|
|
19334
19203
|
COUNTRIES_GET: new Endpoint('GET', '\\/countries'),
|
|
19335
19204
|
CORELOGIC_TOKEN_GET: new Endpoint('GET', '/access\\/oauth\\/token.*$'),
|
|
19336
19205
|
ANNUAL_CLIENT_DETAILS_GET: new Endpoint('GET', '\\/annual-client-details'),
|
|
@@ -21293,7 +21162,7 @@ class SoleInvoiceTemplateForm extends AbstractForm {
|
|
|
21293
21162
|
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/268533936/BAS+Report
|
|
21294
21163
|
*/
|
|
21295
21164
|
class BasReportForm extends AbstractForm {
|
|
21296
|
-
constructor(report, transactions,
|
|
21165
|
+
constructor(report, transactions, depreciations) {
|
|
21297
21166
|
super({
|
|
21298
21167
|
dateFrom: new UntypedFormControl(report.dateFrom, Validators.required),
|
|
21299
21168
|
dateTo: new UntypedFormControl(report.dateTo, Validators.required),
|
|
@@ -21308,7 +21177,6 @@ class BasReportForm extends AbstractForm {
|
|
|
21308
21177
|
fuelTaxCredit: new UntypedFormControl(report.fuelTaxCredit, Validators.required),
|
|
21309
21178
|
gst: new UntypedFormControl({ value: report.gst, disabled: true }),
|
|
21310
21179
|
}, report);
|
|
21311
|
-
this.report = report;
|
|
21312
21180
|
// prefill income/expense data based on transactions/depreciations filtered by specified date
|
|
21313
21181
|
combineLatest([this.get('dateFrom').valueChanges, this.get('dateTo').valueChanges])
|
|
21314
21182
|
.subscribe(([dateFrom, dateTo]) => {
|
|
@@ -21318,8 +21186,8 @@ class BasReportForm extends AbstractForm {
|
|
|
21318
21186
|
const expenseTransactions = new TransactionCollection(filteredTransactions.getExpenseTransactions().toArray(), filteredDepreciations.toArray());
|
|
21319
21187
|
// all sole income claimed as 100%
|
|
21320
21188
|
// @TODO temp fix, waiting for TT-3503/TT-3495 breaking changes
|
|
21321
|
-
this.patchField('income', incomeTransactions.
|
|
21322
|
-
this.patchField('incomeGST', incomeTransactions.
|
|
21189
|
+
this.patchField('income', incomeTransactions.sumBy('amount'));
|
|
21190
|
+
this.patchField('incomeGST', incomeTransactions.sumBy('gstAmount'));
|
|
21323
21191
|
this.patchField('expenseGST', expenseTransactions.filterBy('isGST', true).sumBy('gstClaimAmount'));
|
|
21324
21192
|
});
|
|
21325
21193
|
// calculate taxWithheldTotal
|
|
@@ -21553,18 +21421,6 @@ class AnnualClientDetailsForm extends AbstractForm {
|
|
|
21553
21421
|
}
|
|
21554
21422
|
}
|
|
21555
21423
|
|
|
21556
|
-
class ClientIncomeTypesForm extends AbstractForm {
|
|
21557
|
-
constructor(clientIncomeTypes = plainToClass(ClientIncomeTypes, {})) {
|
|
21558
|
-
super({
|
|
21559
|
-
work: new UntypedFormControl(clientIncomeTypes.work || false),
|
|
21560
|
-
property: new UntypedFormControl(clientIncomeTypes.property || false),
|
|
21561
|
-
sole: new UntypedFormControl(clientIncomeTypes.sole || false),
|
|
21562
|
-
holdings: new UntypedFormControl(clientIncomeTypes.holdings || false)
|
|
21563
|
-
}, clientIncomeTypes, atLeastOneCheckedValidator());
|
|
21564
|
-
this.clientIncomeTypes = clientIncomeTypes;
|
|
21565
|
-
}
|
|
21566
|
-
}
|
|
21567
|
-
|
|
21568
21424
|
class LoginForm extends AbstractForm {
|
|
21569
21425
|
constructor() {
|
|
21570
21426
|
super({
|
|
@@ -23683,5 +23539,5 @@ var MessagesEnum;
|
|
|
23683
23539
|
* Generated bundle index. Do not edit.
|
|
23684
23540
|
*/
|
|
23685
23541
|
|
|
23686
|
-
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, 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, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsHoldingUntaxedIncomeListEnum, ChartAccountsInvoiceExpenseEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMetaField, ChartAccountsMetaFieldListEnum, ChartAccountsMetaFieldTypeEnum, ChartAccountsSalaryAdjustmentsListEnum, ChartAccountsSalaryIncludedListEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsUnallocatableListEnum, ChartAccountsValue, ChartAccountsValueService, ChartData, ChartSerie, Chat, ChatCollection, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientDetails, ClientDetailsForm, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientIncomeTypes, ClientIncomeTypesForm, ClientIncomeTypesService, ClientInvite, ClientInviteCollection, ClientInviteMessages, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CorelogicService, CorelogicSuggestion, Country, 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, EmployeeInvite, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialYear, FinancialYearService, Firm, FirmForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, 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, 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, RewardfulService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, 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, TaxExemptionEnum, TaxExemptionMetaField, TaxExemptionMetaFieldEnum, TaxExemptionService, TaxReturn, TaxReturnCategory, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReturnItem, TaxReturnItemEnum, TaxReturnItemService, TaxReview, TaxReviewCollection, TaxReviewHistoryService, TaxReviewMessagesEnum, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseForm, TransactionCalculationService, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionMetaField, TransactionOperationEnum, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TtCoreModule, USER_ROLES, USER_WORK_POSITION, UniqueEmailValidator, User, 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, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, minDateValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, taxReviewFilterPredicate, toArray };
|
|
23542
|
+
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, 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, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsHoldingUntaxedIncomeListEnum, ChartAccountsInvoiceExpenseEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMetaField, ChartAccountsMetaFieldListEnum, ChartAccountsMetaFieldTypeEnum, ChartAccountsSalaryAdjustmentsListEnum, ChartAccountsSalaryIncludedListEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsUnallocatableListEnum, ChartAccountsValue, ChartAccountsValueService, ChartData, ChartSerie, Chat, ChatCollection, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientDetails, ClientDetailsForm, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientInvite, ClientInviteCollection, ClientInviteMessages, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CorelogicService, CorelogicSuggestion, Country, 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, EmployeeInvite, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialYear, FinancialYearService, Firm, FirmForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, 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, 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, RewardfulService, 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, TaxExemptionEnum, TaxExemptionMetaField, TaxExemptionMetaFieldEnum, TaxExemptionService, TaxReturn, TaxReturnCategory, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReturnItem, TaxReturnItemEnum, TaxReturnItemService, TaxReview, TaxReviewCollection, TaxReviewHistoryService, TaxReviewMessagesEnum, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionMetaField, TransactionOperationEnum, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TtCoreModule, USER_ROLES, USER_WORK_POSITION, UniqueEmailValidator, User, 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, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, minDateValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, taxReviewFilterPredicate, toArray };
|
|
23687
23543
|
//# sourceMappingURL=taxtank-core.mjs.map
|