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.
Files changed (84) hide show
  1. package/esm2022/lib/collections/bank-account.collection.mjs +1 -1
  2. package/esm2022/lib/collections/sole/sole-business-losses.collection.mjs +6 -6
  3. package/esm2022/lib/collections/sole/sole-invoice-item.collection.mjs +4 -1
  4. package/esm2022/lib/collections/sole/sole-invoice.collection.mjs +17 -32
  5. package/esm2022/lib/collections/transaction/transaction-allocation.collection.mjs +1 -8
  6. package/esm2022/lib/collections/transaction/transaction.collection.mjs +14 -30
  7. package/esm2022/lib/db/Enums/index.mjs +2 -1
  8. package/esm2022/lib/db/Enums/sole-invoice-statuses.enum.mjs +2 -4
  9. package/esm2022/lib/db/Enums/subscription/index.mjs +2 -0
  10. package/esm2022/lib/db/Enums/subscription/service-price-list.enum.mjs +8 -0
  11. package/esm2022/lib/db/Enums/transaction-operation.enum.mjs +2 -2
  12. package/esm2022/lib/db/Models/client/client-details.mjs +1 -1
  13. package/esm2022/lib/db/Models/client/index.mjs +1 -2
  14. package/esm2022/lib/db/Models/sole/sole-invoice-item.mjs +1 -1
  15. package/esm2022/lib/db/Models/transaction/transaction.mjs +1 -1
  16. package/esm2022/lib/forms/client/index.mjs +1 -2
  17. package/esm2022/lib/forms/sole/bas-report.form.mjs +4 -5
  18. package/esm2022/lib/models/bank/allocation-group.mjs +2 -5
  19. package/esm2022/lib/models/bank/bank.mjs +1 -1
  20. package/esm2022/lib/models/client/index.mjs +1 -2
  21. package/esm2022/lib/models/endpoint/endpoints.const.mjs +1 -2
  22. package/esm2022/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.mjs +4 -5
  23. package/esm2022/lib/models/report/my-tax/my-tax-losses/my-tax-losses.mjs +3 -6
  24. package/esm2022/lib/models/report/sole/sole-business/sole-business-loss-report.mjs +4 -4
  25. package/esm2022/lib/models/sole/sole-invoice-item.mjs +25 -3
  26. package/esm2022/lib/models/sole/sole-invoice.mjs +51 -65
  27. package/esm2022/lib/models/transaction/transaction-allocation.mjs +1 -1
  28. package/esm2022/lib/models/transaction/transaction.mjs +3 -16
  29. package/esm2022/lib/services/account-setup/account-setup.service.mjs +1 -1
  30. package/esm2022/lib/services/http/firm/index.mjs +1 -2
  31. package/esm2022/lib/services/http/property/property-share/property-share.service.mjs +1 -1
  32. package/esm2022/lib/services/http/rest/rest.service.mjs +2 -2
  33. package/esm2022/lib/services/http/service-notification/service-notification.service.mjs +1 -1
  34. package/esm2022/lib/services/http/sole/sole-invoice/sole-invoice.service.mjs +2 -39
  35. package/esm2022/lib/services/http/transaction/transaction.service.mjs +6 -7
  36. package/esm2022/lib/services/http/user/user.service.mjs +1 -1
  37. package/esm2022/lib/services/index.mjs +1 -2
  38. package/esm2022/public-api.mjs +1 -2
  39. package/fesm2022/taxtank-core.mjs +295 -439
  40. package/fesm2022/taxtank-core.mjs.map +1 -1
  41. package/lib/collections/sole/sole-business-losses.collection.d.ts +2 -2
  42. package/lib/collections/sole/sole-invoice-item.collection.d.ts +2 -0
  43. package/lib/collections/sole/sole-invoice.collection.d.ts +8 -9
  44. package/lib/collections/transaction/transaction-allocation.collection.d.ts +0 -2
  45. package/lib/collections/transaction/transaction.collection.d.ts +4 -10
  46. package/lib/db/Enums/index.d.ts +1 -0
  47. package/lib/db/Enums/sole-invoice-statuses.enum.d.ts +1 -3
  48. package/lib/db/Enums/subscription/index.d.ts +1 -0
  49. package/lib/db/Enums/subscription/service-price-list.enum.d.ts +6 -0
  50. package/lib/db/Enums/transaction-operation.enum.d.ts +1 -1
  51. package/lib/db/Models/client/client-details.d.ts +0 -2
  52. package/lib/db/Models/client/index.d.ts +0 -1
  53. package/lib/db/Models/sole/sole-invoice-item.d.ts +1 -1
  54. package/lib/db/Models/transaction/transaction.d.ts +1 -1
  55. package/lib/forms/client/index.d.ts +0 -1
  56. package/lib/forms/sole/bas-report.form.d.ts +2 -3
  57. package/lib/models/bank/allocation-group.d.ts +0 -1
  58. package/lib/models/client/index.d.ts +0 -1
  59. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.d.ts +2 -3
  60. package/lib/models/report/my-tax/my-tax-losses/my-tax-losses.d.ts +2 -5
  61. package/lib/models/report/sole/sole-business/sole-business-loss-report.d.ts +1 -2
  62. package/lib/models/sole/sole-invoice-item.d.ts +4 -1
  63. package/lib/models/sole/sole-invoice.d.ts +18 -27
  64. package/lib/models/transaction/transaction.d.ts +1 -9
  65. package/lib/services/http/firm/index.d.ts +0 -1
  66. package/lib/services/http/sole/sole-invoice/sole-invoice.service.d.ts +1 -6
  67. package/lib/services/http/transaction/transaction.service.d.ts +1 -1
  68. package/lib/services/index.d.ts +0 -1
  69. package/package.json +1 -1
  70. package/public-api.d.ts +0 -1
  71. package/esm2022/lib/db/Models/client/client-income-types.mjs +0 -4
  72. package/esm2022/lib/forms/client/client-income-types.form.mjs +0 -17
  73. package/esm2022/lib/models/client/client-income-types.mjs +0 -10
  74. package/esm2022/lib/services/http/firm/client-income/client-income-types.service.mjs +0 -23
  75. package/esm2022/lib/services/http/firm/client-income/index.mjs +0 -2
  76. package/esm2022/lib/services/transaction/index.mjs +0 -2
  77. package/esm2022/lib/services/transaction/transaction-calculation.service.mjs +0 -24
  78. package/lib/db/Models/client/client-income-types.d.ts +0 -10
  79. package/lib/forms/client/client-income-types.form.d.ts +0 -6
  80. package/lib/models/client/client-income-types.d.ts +0 -7
  81. package/lib/services/http/firm/client-income/client-income-types.service.d.ts +0 -13
  82. package/lib/services/http/firm/client-income/index.d.ts +0 -1
  83. package/lib/services/transaction/index.d.ts +0 -1
  84. 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["MATCH_INVOICE"] = 5] = "MATCH_INVOICE";
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.MATCH_INVOICE,
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, "transaction", void 0);
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["PENDING"] = 2] = "PENDING";
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.NUMBER_LENGTH = 4; }
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
- * Total price of all items
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
- if (this.isTaxInclusive()) {
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
- * Total final price (net + GST)
4853
+ * total + GST
4854
4854
  */
4855
4855
  get grossPrice() {
4856
- if (this.isTaxExclusive()) {
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
- * Total GST amount
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
- isPending() {
4894
- return this.status === SoleInvoiceStatusesEnum.PENDING;
4867
+ isOpen() {
4868
+ return this.status === SoleInvoiceStatusesEnum.OPEN;
4895
4869
  }
4896
- isAllocated() {
4897
- return this.status === SoleInvoiceStatusesEnum.PAID;
4870
+ isPending() {
4871
+ return this.isOpen() && this.dateTo > new Date(Date.now() - (60 * 60 * 24 * 1000));
4898
4872
  }
4899
- isPaidCash() {
4900
- return this.status === SoleInvoiceStatusesEnum.PAID_CASH;
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
- isPaid() {
4903
- return this.isAllocated() || this.isPaidCash();
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.isPending();
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.NUMBER_LENGTH, '0');
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
- getTransactionsIds() {
4941
- return new Collection(this.items).mapBy('transaction.id');
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.soleInvoiceItem?.invoice.id;
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, "soleInvoiceItem", void 0);
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
- setAllocatedClaimAmount(allocations, invoices) {
6808
- const allocationsByTransaction = allocations.groupBy('transaction.id');
6809
- const paidCacheTransactionsIds = invoices.getPaidCash().getTransactionsIds();
6810
- this.items.forEach((transaction) => {
6811
- // for paidCash invoices we haven't allocations and should use just claim amount
6812
- if (paidCacheTransactionsIds.includes(transaction.id)) {
6813
- return;
6814
- }
6815
- transaction.claimAmount = transaction.getAllocatedClaimAmount(allocationsByTransaction.get(transaction.id));
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 this;
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(allocations, businessId = null) {
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.calculateAllocatedClaimAmount(allocations) + expenses.sumBy('claimAmount');
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, allocations, businessLosses, currentLoss, taxSummary) {
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(allocations);
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, allocations) {
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, allocations);
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, allocations) {
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(new TransactionAllocationCollection(allocations), loss.business.id);
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, allocations) {
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, allocations);
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, allocations) {
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(allocations, +businessId);
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
- getTransactionsIds() {
8236
- return flatten(this.items.map((invoice) => invoice.getTransactionsIds()));
8026
+ getPaid(transactions) {
8027
+ return this.filter(invoice => transactions.getAmountPerInvoice().get(invoice.id) >= invoice.grossPrice);
8237
8028
  }
8238
- getUnallocated(allocations) {
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
- getUnallocatedAmount(allocations) {
8245
- return this.sumBy('grossPrice') - allocations.filterBy('transaction.id', this.getTransactionsIds()).sumBy('amount');
8032
+ getOpen() {
8033
+ return this.filter((invoice) => invoice.isOpen());
8246
8034
  }
8247
- getPaidAmountById(allocations) {
8248
- const allocationsByTransactionId = allocations.groupBy('transaction.id');
8249
- const dictionary = new Dictionary([]);
8250
- this.toArray().forEach((invoice) => {
8251
- // fully paid if user marked invoice as paid with cash
8252
- const amount = invoice.isPaidCash() ? invoice.grossPrice
8253
- : allocationsByTransactionId.merge(invoice.itemsCollection.mapBy('transaction.id')).amount || 0;
8254
- dictionary.add(invoice.id, amount);
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 })).pipe(map((updatedInvoice) => {
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, allocations, depreciations) {
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.getAllocatedAmount(allocations));
21322
- this.patchField('incomeGST', incomeTransactions.calculateAllocatedGST(allocations));
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