taxtank-core 0.28.43 → 0.28.45

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 (47) hide show
  1. package/bundles/taxtank-core.umd.js +555 -57
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/sole/index.js +2 -1
  4. package/esm2015/lib/collections/sole/sole-business-losses.collection.js +28 -0
  5. package/esm2015/lib/collections/transaction/transaction-base.collection.js +9 -3
  6. package/esm2015/lib/db/Enums/chart-accounts-heading-list.enum.js +20 -1
  7. package/esm2015/lib/db/Enums/chart-accounts-list.enum.js +35 -2
  8. package/esm2015/lib/forms/report/my-tax/index.js +5 -2
  9. package/esm2015/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.form.js +33 -0
  10. package/esm2015/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.form.js +81 -0
  11. package/esm2015/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income-or-losses.form.js +17 -0
  12. package/esm2015/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.form.js +76 -0
  13. package/esm2015/lib/forms/report/my-tax/my-tax-losses.form.js +6 -5
  14. package/esm2015/lib/models/report/my-tax/index.js +6 -2
  15. package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/business-income-or-losses-categories.const.js +27 -0
  16. package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/business-type.enum.js +11 -0
  17. package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/loss-type.enum.js +16 -0
  18. package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.js +15 -0
  19. package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.js +77 -0
  20. package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.js +70 -0
  21. package/esm2015/lib/models/report/my-tax/my-tax-losses/my-tax-losses.js +8 -5
  22. package/fesm2015/taxtank-core.js +523 -50
  23. package/fesm2015/taxtank-core.js.map +1 -1
  24. package/lib/collections/sole/index.d.ts +1 -0
  25. package/lib/collections/sole/sole-business-losses.collection.d.ts +9 -0
  26. package/lib/collections/transaction/transaction-base.collection.d.ts +5 -2
  27. package/lib/db/Enums/chart-accounts-heading-list.enum.d.ts +20 -1
  28. package/lib/db/Enums/chart-accounts-list.enum.d.ts +35 -2
  29. package/lib/forms/report/my-tax/index.d.ts +4 -1
  30. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.form.d.ts +9 -0
  31. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.form.d.ts +5 -0
  32. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income-or-losses.form.d.ts +8 -0
  33. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.form.d.ts +5 -0
  34. package/lib/forms/report/my-tax/my-tax-losses.form.d.ts +0 -3
  35. package/lib/models/report/my-tax/index.d.ts +5 -1
  36. package/lib/models/report/my-tax/my-tax-business-income-or-losses/business-income-or-losses-categories.const.d.ts +8 -0
  37. package/lib/models/report/my-tax/my-tax-business-income-or-losses/business-type.enum.d.ts +9 -0
  38. package/lib/models/report/my-tax/my-tax-business-income-or-losses/loss-type.enum.d.ts +14 -0
  39. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.d.ts +16 -0
  40. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.d.ts +29 -0
  41. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.d.ts +30 -0
  42. package/lib/models/report/my-tax/my-tax-losses/my-tax-losses.d.ts +14 -4
  43. package/package.json +1 -1
  44. package/esm2015/lib/forms/report/my-tax/my-tax-business-or-losses.form.js +0 -10
  45. package/esm2015/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.js +0 -8
  46. package/lib/forms/report/my-tax/my-tax-business-or-losses.form.d.ts +0 -8
  47. package/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.d.ts +0 -7
@@ -0,0 +1,15 @@
1
+ import uniqBy from 'lodash/uniqBy';
2
+ /**
3
+ * Main information of Sole businesses
4
+ * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form (section "Business income or losses")
5
+ */
6
+ export class MyTaxBusinessDetails {
7
+ constructor(vehicleClaimDetails, businesses, soleDetails, user) {
8
+ var _a;
9
+ this.businessActivities = uniqBy(businesses.mapBy('activity'), 'id');
10
+ this.businessABN = soleDetails === null || soleDetails === void 0 ? void 0 : soleDetails.abn;
11
+ this.businessAddress = (_a = user.address) === null || _a === void 0 ? void 0 : _a.name;
12
+ this.vehicleClaimDetails = vehicleClaimDetails;
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWJ1c2luZXNzLWRldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LWJ1c2luZXNzLWluY29tZS1vci1sb3NzZXMvbXktdGF4LWJ1c2luZXNzLWRldGFpbHMvbXktdGF4LWJ1c2luZXNzLWRldGFpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBR2xDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsWUFDRSxtQkFBd0MsRUFDeEMsVUFBb0MsRUFDcEMsV0FBd0IsRUFDeEIsSUFBVTs7UUFFVixJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsR0FBRyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJLENBQUM7UUFDMUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO0lBQ2pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlaGljbGVDbGFpbURldGFpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi92ZWhpY2xlJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFNvbGVCdXNpbmVzcywgU29sZUJ1c2luZXNzQWN0aXZpdHksIFNvbGVEZXRhaWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc29sZSc7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC91bmlxQnknXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXNlci91c2VyJztcblxuLyoqXG4gKiBNYWluIGluZm9ybWF0aW9uIG9mIFNvbGUgYnVzaW5lc3Nlc1xuICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy80NjQ0MTEwNDY2L1RheCtSZXR1cm4rTXlUYXgrLStPbmxpbmUrRm9ybSAoc2VjdGlvbiBcIkJ1c2luZXNzIGluY29tZSBvciBsb3NzZXNcIilcbiAqL1xuZXhwb3J0IGNsYXNzIE15VGF4QnVzaW5lc3NEZXRhaWxzIHtcbiAgdmVoaWNsZUNsYWltRGV0YWlsczogVmVoaWNsZUNsYWltRGV0YWlscztcbiAgYnVzaW5lc3NBY3Rpdml0aWVzOiBTb2xlQnVzaW5lc3NBY3Rpdml0eVtdO1xuICBidXNpbmVzc2VzOiBDb2xsZWN0aW9uPFNvbGVCdXNpbmVzcz47XG4gIGJ1c2luZXNzQUJOOiBzdHJpbmc7XG4gIGJ1c2luZXNzQWRkcmVzczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHZlaGljbGVDbGFpbURldGFpbHM6IFZlaGljbGVDbGFpbURldGFpbHMsXG4gICAgYnVzaW5lc3NlczogQ29sbGVjdGlvbjxTb2xlQnVzaW5lc3M+LFxuICAgIHNvbGVEZXRhaWxzOiBTb2xlRGV0YWlscyxcbiAgICB1c2VyOiBVc2VyXG4gICkge1xuICAgIHRoaXMuYnVzaW5lc3NBY3Rpdml0aWVzID0gdW5pcUJ5KGJ1c2luZXNzZXMubWFwQnkoJ2FjdGl2aXR5JyksICdpZCcpO1xuICAgIHRoaXMuYnVzaW5lc3NBQk4gPSBzb2xlRGV0YWlscz8uYWJuO1xuICAgIHRoaXMuYnVzaW5lc3NBZGRyZXNzID0gdXNlci5hZGRyZXNzPy5uYW1lO1xuICAgIHRoaXMudmVoaWNsZUNsYWltRGV0YWlscyA9IHZlaGljbGVDbGFpbURldGFpbHM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,77 @@
1
+ import { ChartAccountsListEnum } from '../../../../../db/Enums/chart-accounts-list.enum';
2
+ import { BUSINESS_INCOME_OR_LOSSES_CATEGORIES } from '../business-income-or-losses-categories.const';
3
+ import { ChartAccountsCategoryEnum } from '../../../../../db/Enums/chart-accounts-category.enum';
4
+ import { ChartAccountsHeadingListEnum } from '../../../../../db/Enums/chart-accounts-heading-list.enum';
5
+ /**
6
+ * Sole business information related to income transactions
7
+ * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form (section "Business income or losses")
8
+ */
9
+ export class MyTaxBusinessIncome {
10
+ constructor(psiIncome, soleIncome) {
11
+ this.psiIncomeAmount = psiIncome.filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.PSI).amount;
12
+ this.psiVoluntaryAgreementAmount = psiIncome
13
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_VOLUNTARY_AGREEMENT)
14
+ .amount;
15
+ this.psiABNNotQuotedAmount = psiIncome
16
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_ABN_NOT_QUOTED)
17
+ .amount;
18
+ this.psiLabourHireOrOtherAmount = psiIncome
19
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_LABOUR_HIRE_OR_OTHER)
20
+ .amount;
21
+ this.psiOtherAmount = psiIncome
22
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_OTHER)
23
+ .amount;
24
+ this.psiDeductionAssociatesAmount = psiIncome
25
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_DEDUCTION_ASSOCIATES)
26
+ .amount;
27
+ this.psiDeductionOtherAmount = psiIncome
28
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_DEDUCTION_OTHER)
29
+ .amount;
30
+ this.netPSIAmount = psiIncome
31
+ .filterBy('chartAccounts.id', BUSINESS_INCOME_OR_LOSSES_CATEGORIES.psiIncomes)
32
+ .amount -
33
+ psiIncome
34
+ .filterBy('chartAccounts.id', BUSINESS_INCOME_OR_LOSSES_CATEGORIES.psiDeductions)
35
+ .amount;
36
+ this.psiVoluntaryAgreementTax = psiIncome
37
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_VOLUNTARY_AGREEMENT)
38
+ .sumBy('tax');
39
+ this.psiABNNotQuotedTax = psiIncome
40
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.PSI_ABN_NOT_QUOTED)
41
+ .sumBy('tax');
42
+ this.psiLabourHireOrOtherTax = psiIncome
43
+ .filterBy('chartAccounts.id', [ChartAccountsListEnum.PSI_LABOUR_HIRE_OR_OTHER, ChartAccountsListEnum.PSI_OTHER])
44
+ .sumBy('tax');
45
+ this.netPSITax = psiIncome
46
+ .filterBy('chartAccounts.id', BUSINESS_INCOME_OR_LOSSES_CATEGORIES.psiIncomes)
47
+ .sumBy('tax');
48
+ this.grossPaymentsNoAbsGivenAmount = soleIncome
49
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_NO_ABN_GIVEN)
50
+ .amount;
51
+ this.grossPaymentsVoluntaryAgreementAmount = soleIncome
52
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_VOLUNTARY_AGREEMENT)
53
+ .amount;
54
+ this.grossPaymentsLabourHireAmount = soleIncome
55
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_LABOUR_HIRE_OR_OTHER_SPECIFIED_PAYMENTS)
56
+ .amount;
57
+ this.assessibleGovernmentPaymentsAmount = soleIncome
58
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.ASSESSIBLE_GOVERNMENT_PAYMENTS)
59
+ .amount;
60
+ this.otherBusinessIncomeAmount = soleIncome
61
+ .filterBy('chartAccounts.id', BUSINESS_INCOME_OR_LOSSES_CATEGORIES.otherBusinessIncome)
62
+ .amount;
63
+ this.nonPrimaryProductionTotalAmount = soleIncome
64
+ .filterBy('chartAccounts.category', ChartAccountsCategoryEnum.SOLE_INCOME)
65
+ .amount;
66
+ this.grossPaymentsNoAbsGivenTax = soleIncome
67
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_NO_ABN_GIVEN)
68
+ .sumBy('tax');
69
+ this.grossPaymentsVoluntaryAgreementTax = soleIncome
70
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_VOLUNTARY_AGREEMENT)
71
+ .sumBy('tax');
72
+ this.grossPaymentsLabourHireTax = soleIncome
73
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.GROSS_PAYMENTS_LABOUR_HIRE_OR_OTHER_SPECIFIED_PAYMENTS)
74
+ .sumBy('tax');
75
+ }
76
+ }
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWJ1c2luZXNzLWluY29tZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtYnVzaW5lc3MtaW5jb21lLW9yLWxvc3Nlcy9teS10YXgtYnVzaW5lc3MtaW5jb21lL215LXRheC1idXNpbmVzcy1pbmNvbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDckcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFeEc7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQXVCOUIsWUFDRSxTQUFnQyxFQUNoQyxVQUFpQztRQUVqQyxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsNEJBQTRCLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQy9HLElBQUksQ0FBQywyQkFBMkIsR0FBRyxTQUFTO2FBQ3pDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQzthQUMzRSxNQUFNLENBQUM7UUFDVixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUzthQUNuQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsa0JBQWtCLENBQUM7YUFDdEUsTUFBTSxDQUFDO1FBQ1YsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFNBQVM7YUFDeEMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDO2FBQzVFLE1BQU0sQ0FBQztRQUNW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QTBCLEdBQUcsVUFBVTthQUN6QyxRQUFRLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsc0RBQXNELENBQUM7YUFDMUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0xpc3RFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtbGlzdC5lbnVtJztcbmltcG9ydCB7IEJVU0lORVNTX0lOQ09NRV9PUl9MT1NTRVNfQ0FURUdPUklFUyB9IGZyb20gJy4uL2J1c2luZXNzLWluY29tZS1vci1sb3NzZXMtY2F0ZWdvcmllcy5jb25zdCc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtaGVhZGluZy1saXN0LmVudW0nO1xuXG4vKipcbiAqIFNvbGUgYnVzaW5lc3MgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBpbmNvbWUgdHJhbnNhY3Rpb25zXG4gKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzQ2NDQxMTA0NjYvVGF4K1JldHVybitNeVRheCstK09ubGluZStGb3JtIChzZWN0aW9uIFwiQnVzaW5lc3MgaW5jb21lIG9yIGxvc3Nlc1wiKVxuICovXG5leHBvcnQgY2xhc3MgTXlUYXhCdXNpbmVzc0luY29tZSB7XG4gIHBzaUluY29tZUFtb3VudDogbnVtYmVyO1xuICBwc2lWb2x1bnRhcnlBZ3JlZW1lbnRBbW91bnQ6IG51bWJlcjtcbiAgcHNpQUJOTm90UXVvdGVkQW1vdW50OiBudW1iZXI7XG4gIHBzaUxhYm91ckhpcmVPck90aGVyQW1vdW50OiBudW1iZXI7XG4gIHBzaU90aGVyQW1vdW50OiBudW1iZXI7XG4gIHBzaURlZHVjdGlvbkFzc29jaWF0ZXNBbW91bnQ6IG51bWJlcjtcbiAgcHNpRGVkdWN0aW9uT3RoZXJBbW91bnQ6IG51bWJlcjtcbiAgbmV0UFNJQW1vdW50OiBudW1iZXI7XG4gIHBzaVZvbHVudGFyeUFncmVlbWVudFRheDogbnVtYmVyO1xuICBwc2lBQk5Ob3RRdW90ZWRUYXg6IG51bWJlcjtcbiAgcHNpTGFib3VySGlyZU9yT3RoZXJUYXg6IG51bWJlcjtcbiAgbmV0UFNJVGF4OiBudW1iZXI7XG4gIGdyb3NzUGF5bWVudHNOb0Fic0dpdmVuQW1vdW50OiBudW1iZXI7XG4gIGdyb3NzUGF5bWVudHNWb2x1bnRhcnlBZ3JlZW1lbnRBbW91bnQ6IG51bWJlcjtcbiAgZ3Jvc3NQYXltZW50c0xhYm91ckhpcmVBbW91bnQ6IG51bWJlcjtcbiAgZ3Jvc3NQYXltZW50c05vQWJzR2l2ZW5UYXg6IG51bWJlcjtcbiAgZ3Jvc3NQYXltZW50c1ZvbHVudGFyeUFncmVlbWVudFRheDogbnVtYmVyO1xuICBncm9zc1BheW1lbnRzTGFib3VySGlyZVRheDogbnVtYmVyO1xuICBhc3Nlc3NpYmxlR292ZXJubWVudFBheW1lbnRzQW1vdW50OiBudW1iZXI7XG4gIG90aGVyQnVzaW5lc3NJbmNvbWVBbW91bnQ6IG51bWJlcjtcbiAgbm9uUHJpbWFyeVByb2R1Y3Rpb25Ub3RhbEFtb3VudDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHBzaUluY29tZTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxuICAgIHNvbGVJbmNvbWU6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbixcbiAgKSB7XG4gICAgdGhpcy5wc2lJbmNvbWVBbW91bnQgPSBwc2lJbmNvbWUuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaGVhZGluZy5pZCcsIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uUFNJKS5hbW91bnQ7XG4gICAgdGhpcy5wc2lWb2x1bnRhcnlBZ3JlZW1lbnRBbW91bnQgPSBwc2lJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfVk9MVU5UQVJZX0FHUkVFTUVOVClcbiAgICAgIC5hbW91bnQ7XG4gICAgdGhpcy5wc2lBQk5Ob3RRdW90ZWRBbW91bnQgPSBwc2lJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfQUJOX05PVF9RVU9URUQpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMucHNpTGFib3VySGlyZU9yT3RoZXJBbW91bnQgPSBwc2lJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfTEFCT1VSX0hJUkVfT1JfT1RIRVIpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMucHNpT3RoZXJBbW91bnQgPSBwc2lJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfT1RIRVIpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMucHNpRGVkdWN0aW9uQXNzb2NpYXRlc0Ftb3VudCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlBTSV9ERURVQ1RJT05fQVNTT0NJQVRFUylcbiAgICAgIC5hbW91bnQ7XG4gICAgdGhpcy5wc2lEZWR1Y3Rpb25PdGhlckFtb3VudCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlBTSV9ERURVQ1RJT05fT1RIRVIpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMubmV0UFNJQW1vdW50ID0gcHNpSW5jb21lXG4gICAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIEJVU0lORVNTX0lOQ09NRV9PUl9MT1NTRVNfQ0FURUdPUklFUy5wc2lJbmNvbWVzKVxuICAgICAgICAuYW1vdW50IC1cbiAgICAgIHBzaUluY29tZVxuICAgICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBCVVNJTkVTU19JTkNPTUVfT1JfTE9TU0VTX0NBVEVHT1JJRVMucHNpRGVkdWN0aW9ucylcbiAgICAgICAgLmFtb3VudDtcbiAgICB0aGlzLnBzaVZvbHVudGFyeUFncmVlbWVudFRheCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlBTSV9WT0xVTlRBUllfQUdSRUVNRU5UKVxuICAgICAgLnN1bUJ5KCd0YXgnKTtcbiAgICB0aGlzLnBzaUFCTk5vdFF1b3RlZFRheCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlBTSV9BQk5fTk9UX1FVT1RFRClcbiAgICAgIC5zdW1CeSgndGF4Jyk7XG4gICAgdGhpcy5wc2lMYWJvdXJIaXJlT3JPdGhlclRheCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgW0NoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfTEFCT1VSX0hJUkVfT1JfT1RIRVIsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5QU0lfT1RIRVJdKVxuICAgICAgLnN1bUJ5KCd0YXgnKTtcbiAgICB0aGlzLm5ldFBTSVRheCA9IHBzaUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQlVTSU5FU1NfSU5DT01FX09SX0xPU1NFU19DQVRFR09SSUVTLnBzaUluY29tZXMpXG4gICAgICAuc3VtQnkoJ3RheCcpO1xuXG4gICAgdGhpcy5ncm9zc1BheW1lbnRzTm9BYnNHaXZlbkFtb3VudCA9IHNvbGVJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5HUk9TU19QQVlNRU5UU19OT19BQk5fR0lWRU4pXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMuZ3Jvc3NQYXltZW50c1ZvbHVudGFyeUFncmVlbWVudEFtb3VudCA9IHNvbGVJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5HUk9TU19QQVlNRU5UU19WT0xVTlRBUllfQUdSRUVNRU5UKVxuICAgICAgLmFtb3VudDtcbiAgICB0aGlzLmdyb3NzUGF5bWVudHNMYWJvdXJIaXJlQW1vdW50ID0gc29sZUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkdST1NTX1BBWU1FTlRTX0xBQk9VUl9ISVJFX09SX09USEVSX1NQRUNJRklFRF9QQVlNRU5UUylcbiAgICAgIC5hbW91bnQ7XG4gICAgdGhpcy5hc3Nlc3NpYmxlR292ZXJubWVudFBheW1lbnRzQW1vdW50ID0gc29sZUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkFTU0VTU0lCTEVfR09WRVJOTUVOVF9QQVlNRU5UUylcbiAgICAgIC5hbW91bnQ7XG4gICAgdGhpcy5vdGhlckJ1c2luZXNzSW5jb21lQW1vdW50ID0gc29sZUluY29tZVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQlVTSU5FU1NfSU5DT01FX09SX0xPU1NFU19DQVRFR09SSUVTLm90aGVyQnVzaW5lc3NJbmNvbWUpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMubm9uUHJpbWFyeVByb2R1Y3Rpb25Ub3RhbEFtb3VudCA9IHNvbGVJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5jYXRlZ29yeScsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9JTkNPTUUpXG4gICAgICAuYW1vdW50O1xuICAgIHRoaXMuZ3Jvc3NQYXltZW50c05vQWJzR2l2ZW5UYXggPSBzb2xlSW5jb21lXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uR1JPU1NfUEFZTUVOVFNfTk9fQUJOX0dJVkVOKVxuICAgICAgLnN1bUJ5KCd0YXgnKTtcbiAgICB0aGlzLmdyb3NzUGF5bWVudHNWb2x1bnRhcnlBZ3JlZW1lbnRUYXggPSBzb2xlSW5jb21lXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uR1JPU1NfUEFZTUVOVFNfVk9MVU5UQVJZX0FHUkVFTUVOVClcbiAgICAgIC5zdW1CeSgndGF4Jyk7XG4gICAgdGhpcy5ncm9zc1BheW1lbnRzTGFib3VySGlyZVRheCA9IHNvbGVJbmNvbWVcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5HUk9TU19QQVlNRU5UU19MQUJPVVJfSElSRV9PUl9PVEhFUl9TUEVDSUZJRURfUEFZTUVOVFMpXG4gICAgICAuc3VtQnkoJ3RheCcpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,70 @@
1
+ import { ChartAccountsHeadingListEnum } from '../../../../../db/Enums/chart-accounts-heading-list.enum';
2
+ import { ChartAccountsListEnum } from '../../../../../db/Enums/chart-accounts-list.enum';
3
+ import { ChartAccountsCategoryEnum } from '../../../../../db/Enums/chart-accounts-category.enum';
4
+ /**
5
+ * Sole business information related to expense transactions (losses)
6
+ * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form (section "Business income or losses")
7
+ */
8
+ export class MyTaxBusinessLosses {
9
+ constructor(transactions, depreciations, businessLosses, currentLoss) {
10
+ this.currentLoss = currentLoss;
11
+ this.purchasesAndOtherCostsAmount = Math.abs(transactions.getExpenseTransactions()
12
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.PURCHASES_STOCK_INVENTORY)
13
+ .sumBy('claimAmount'));
14
+ this.contractorsAndCommissionAmount = Math.abs(transactions.getExpenseTransactions()
15
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.CONTRACTORS_AND_COMMISSION)
16
+ .sumBy('claimAmount'));
17
+ this.superannuationAmount = Math.abs(transactions.getExpenseTransactions()
18
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.SUPERANNUATION)
19
+ .sumBy('claimAmount'));
20
+ this.badDebtAmount = Math.abs(transactions.getExpenseTransactions()
21
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.BAD_DEBT)
22
+ .sumBy('claimAmount'));
23
+ this.leaseExpensesCommercialAmount = Math.abs(transactions.getExpenseTransactions()
24
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.LEASE_EXPENSES_COMMERCIAL)
25
+ .sumBy('claimAmount'));
26
+ this.rentExpensesCommercialPremisesAmount = Math.abs(transactions.getExpenseTransactions()
27
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.RENT_EXPENSES_COMMERCIAL_PREMISES)
28
+ .sumBy('claimAmount'));
29
+ this.interestExpensesAustraliaAmount = Math.abs(transactions.getExpenseTransactions()
30
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.INTEREST_EXPENSES_AUSTRALIA)
31
+ .sumBy('claimAmount'));
32
+ this.interestExpensesOverseasAmount = Math.abs(transactions.getExpenseTransactions()
33
+ .filterBy('chartAccounts.id', ChartAccountsListEnum.INTEREST_EXPENSES_OVERSEAS)
34
+ .sumBy('claimAmount'));
35
+ this.kmsTravelledExpensesAmount = Math.abs(transactions
36
+ .filterBy('chartAccounts.heading.id', [ChartAccountsHeadingListEnum.WORK_RELATED_CAR_EXPENSES, ChartAccountsHeadingListEnum.DEPRECIATION_VEHICLES])
37
+ .sumBy('claimAmount'));
38
+ this.otherExpensesAmount = Math.abs(transactions
39
+ .filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.OTHER_EXPENSES)
40
+ .sumBy('claimAmount'));
41
+ this.totalNonPrimaryProductionExpensesAmount = Math.abs(transactions
42
+ .filterBy('chartAccounts.category', [ChartAccountsCategoryEnum.SOLE_EXPENSE, ChartAccountsCategoryEnum.SOLE_DEPRECIATION])
43
+ .sumBy('claimAmount'));
44
+ // depreciations
45
+ this.depreciationExpensesAmount = depreciations
46
+ .filterBy('chartAccounts.heading.id', ChartAccountsHeadingListEnum.DEPRECIATION_EXPENSES)
47
+ .sumBy('claimAmount');
48
+ this.deductionsForCertainAssetsAmount = depreciations
49
+ .getWrittenOffDepreciations()
50
+ .sumBy('claimAmount');
51
+ this.deductionsForGeneralSmallBusinessPoolAmount = depreciations
52
+ .getSBPDepreciations()
53
+ .sumBy('claimAmount');
54
+ this.currentYearNetNonPrimaryIncomeOrLossesAmount = transactions.getIncomeTransactions()
55
+ .filterBy('chartAccounts.category', ChartAccountsCategoryEnum.SOLE_INCOME)
56
+ .amount -
57
+ Math.abs(transactions
58
+ .filterBy('chartAccounts.category', [ChartAccountsCategoryEnum.SOLE_EXPENSE, ChartAccountsCategoryEnum.SOLE_DEPRECIATION])
59
+ .sumBy('claimAmount'));
60
+ this.priorYearsNonPrimaryLossesAmount = this.calculatePriorYearsOpenBalance(businessLosses);
61
+ this.netNonPrimaryIncomeOrLossesAmount = transactions.getIncomeTransactions()
62
+ .filterBy('chartAccounts.category', ChartAccountsCategoryEnum.SOLE_INCOME)
63
+ .amount -
64
+ this.priorYearsNonPrimaryLossesAmount;
65
+ }
66
+ calculatePriorYearsOpenBalance(businessLosses) {
67
+ return businessLosses ? businessLosses.sumBy('openBalance') : 0;
68
+ }
69
+ }
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWJ1c2luZXNzLWxvc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtYnVzaW5lc3MtaW5jb21lLW9yLWxvc3Nlcy9teS10YXgtYnVzaW5lc3MtbG9zc2VzL215LXRheC1idXNpbmVzcy1sb3NzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFJakc7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQW9COUIsWUFDRSxZQUFtQyxFQUNuQyxhQUFxQyxFQUNyQyxjQUE0QyxFQUM1QyxXQUE2QjtRQUU3QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLEVBQUU7YUFDL0UsUUFBUSxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixDQUFDLHlCQUF5QixDQUFDO2FBQzdFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRTthQUNqRixRQUFRLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsMEJBQTBCLENBQUM7YUFDOUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLHNCQUFzQixFQUFF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LFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2lCQUN6SCxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxZQUFZLENBQUMscUJBQXFCLEVBQUU7YUFDeEUsUUFBUSxDQUFDLHdCQUF3QixFQUFFLHlCQUF5QixDQUFDLFdBQVcsQ0FBQzthQUN6RSxNQUFNO1lBQ1QsSUFBSSxDQUFDLGdDQUFnQyxDQUFDO0lBQzFDLENBQUM7SUFFTyw4QkFBOEIsQ0FBQyxjQUE0QztRQUNqRixPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWhlYWRpbmctbGlzdC5lbnVtJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb2xsZWN0aW9ucy9kZXByZWNpYXRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzTGlzdEVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1saXN0LmVudW0nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWNhdGVnb3J5LmVudW0nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgU29sZUJ1c2luZXNzTG9zcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NvbGUnO1xuXG4vKipcbiAqIFNvbGUgYnVzaW5lc3MgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBleHBlbnNlIHRyYW5zYWN0aW9ucyAobG9zc2VzKVxuICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy80NjQ0MTEwNDY2L1RheCtSZXR1cm4rTXlUYXgrLStPbmxpbmUrRm9ybSAoc2VjdGlvbiBcIkJ1c2luZXNzIGluY29tZSBvciBsb3NzZXNcIilcbiAqL1xuZXhwb3J0IGNsYXNzIE15VGF4QnVzaW5lc3NMb3NzZXMge1xuICBjdXJyZW50TG9zczogU29sZUJ1c2luZXNzTG9zcztcbiAgcHVyY2hhc2VzQW5kT3RoZXJDb3N0c0Ftb3VudDogbnVtYmVyO1xuICBjb250cmFjdG9yc0FuZENvbW1pc3Npb25BbW91bnQ6IG51bWJlcjtcbiAgc3VwZXJhbm51YXRpb25BbW91bnQ6IG51bWJlcjtcbiAgYmFkRGVidEFtb3VudDogbnVtYmVyO1xuICBsZWFzZUV4cGVuc2VzQ29tbWVyY2lhbEFtb3VudDogbnVtYmVyO1xuICByZW50RXhwZW5zZXNDb21tZXJjaWFsUHJlbWlzZXNBbW91bnQ6IG51bWJlcjtcbiAgaW50ZXJlc3RFeHBlbnNlc0F1c3RyYWxpYUFtb3VudDogbnVtYmVyO1xuICBpbnRlcmVzdEV4cGVuc2VzT3ZlcnNlYXNBbW91bnQ6IG51bWJlcjtcbiAga21zVHJhdmVsbGVkRXhwZW5zZXNBbW91bnQ6IG51bWJlcjtcbiAgb3RoZXJFeHBlbnNlc0Ftb3VudDogbnVtYmVyO1xuICB0b3RhbE5vblByaW1hcnlQcm9kdWN0aW9uRXhwZW5zZXNBbW91bnQ6IG51bWJlcjtcbiAgZGVwcmVjaWF0aW9uRXhwZW5zZXNBbW91bnQ6IG51bWJlcjtcbiAgZGVkdWN0aW9uc0ZvckNlcnRhaW5Bc3NldHNBbW91bnQ6IG51bWJlcjtcbiAgZGVkdWN0aW9uc0ZvckdlbmVyYWxTbWFsbEJ1c2luZXNzUG9vbEFtb3VudDogbnVtYmVyO1xuICBwcmlvclllYXJzTm9uUHJpbWFyeUxvc3Nlc0Ftb3VudDogbnVtYmVyO1xuICBuZXROb25QcmltYXJ5SW5jb21lT3JMb3NzZXNBbW91bnQ6IG51bWJlcjtcbiAgY3VycmVudFllYXJOZXROb25QcmltYXJ5SW5jb21lT3JMb3NzZXNBbW91bnQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbixcbiAgICBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uLFxuICAgIGJ1c2luZXNzTG9zc2VzOiBDb2xsZWN0aW9uPFNvbGVCdXNpbmVzc0xvc3M+LFxuICAgIGN1cnJlbnRMb3NzOiBTb2xlQnVzaW5lc3NMb3NzXG4gICkge1xuICAgIHRoaXMuY3VycmVudExvc3MgPSBjdXJyZW50TG9zcztcbiAgICB0aGlzLnB1cmNoYXNlc0FuZE90aGVyQ29zdHNBbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uUFVSQ0hBU0VTX1NUT0NLX0lOVkVOVE9SWSlcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5jb250cmFjdG9yc0FuZENvbW1pc3Npb25BbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uQ09OVFJBQ1RPUlNfQU5EX0NPTU1JU1NJT04pXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuc3VwZXJhbm51YXRpb25BbW91bnQgPSBNYXRoLmFicyh0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBDaGFydEFjY291bnRzTGlzdEVudW0uU1VQRVJBTk5VQVRJT04pXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuYmFkRGVidEFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5CQURfREVCVClcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5sZWFzZUV4cGVuc2VzQ29tbWVyY2lhbEFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5MRUFTRV9FWFBFTlNFU19DT01NRVJDSUFMKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICB0aGlzLnJlbnRFeHBlbnNlc0NvbW1lcmNpYWxQcmVtaXNlc0Ftb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5SRU5UX0VYUEVOU0VTX0NPTU1FUkNJQUxfUFJFTUlTRVMpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuaW50ZXJlc3RFeHBlbnNlc0F1c3RyYWxpYUFtb3VudCA9IE1hdGguYWJzKHRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5JTlRFUkVTVF9FWFBFTlNFU19BVVNUUkFMSUEpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMuaW50ZXJlc3RFeHBlbnNlc092ZXJzZWFzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zLmdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKVxuICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmlkJywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX0VYUEVOU0VTX09WRVJTRUFTKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICB0aGlzLmttc1RyYXZlbGxlZEV4cGVuc2VzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaGVhZGluZy5pZCcsIFtDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtLldPUktfUkVMQVRFRF9DQVJfRVhQRU5TRVMsIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uREVQUkVDSUFUSU9OX1ZFSElDTEVTXSlcbiAgICAgIC5zdW1CeSgnY2xhaW1BbW91bnQnKSk7XG4gICAgdGhpcy5vdGhlckV4cGVuc2VzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuaGVhZGluZy5pZCcsIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uT1RIRVJfRVhQRU5TRVMpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50JykpO1xuICAgIHRoaXMudG90YWxOb25QcmltYXJ5UHJvZHVjdGlvbkV4cGVuc2VzQW1vdW50ID0gTWF0aC5hYnModHJhbnNhY3Rpb25zXG4gICAgICAuZmlsdGVyQnkoJ2NoYXJ0QWNjb3VudHMuY2F0ZWdvcnknLCBbQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5TT0xFX0VYUEVOU0UsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9ERVBSRUNJQVRJT05dKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICAvLyBkZXByZWNpYXRpb25zXG4gICAgdGhpcy5kZXByZWNpYXRpb25FeHBlbnNlc0Ftb3VudCA9IGRlcHJlY2lhdGlvbnNcbiAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5oZWFkaW5nLmlkJywgQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5ERVBSRUNJQVRJT05fRVhQRU5TRVMpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gICAgdGhpcy5kZWR1Y3Rpb25zRm9yQ2VydGFpbkFzc2V0c0Ftb3VudCA9IGRlcHJlY2lhdGlvbnNcbiAgICAgIC5nZXRXcml0dGVuT2ZmRGVwcmVjaWF0aW9ucygpXG4gICAgICAuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gICAgdGhpcy5kZWR1Y3Rpb25zRm9yR2VuZXJhbFNtYWxsQnVzaW5lc3NQb29sQW1vdW50ID0gZGVwcmVjaWF0aW9uc1xuICAgICAgLmdldFNCUERlcHJlY2lhdGlvbnMoKVxuICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpO1xuICAgIHRoaXMuY3VycmVudFllYXJOZXROb25QcmltYXJ5SW5jb21lT3JMb3NzZXNBbW91bnQgPSB0cmFuc2FjdGlvbnMuZ2V0SW5jb21lVHJhbnNhY3Rpb25zKClcbiAgICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmNhdGVnb3J5JywgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5TT0xFX0lOQ09NRSlcbiAgICAgICAgLmFtb3VudCAtXG4gICAgICBNYXRoLmFicyh0cmFuc2FjdGlvbnNcbiAgICAgICAgLmZpbHRlckJ5KCdjaGFydEFjY291bnRzLmNhdGVnb3J5JywgW0NoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9FWFBFTlNFLCBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfREVQUkVDSUFUSU9OXSlcbiAgICAgICAgLnN1bUJ5KCdjbGFpbUFtb3VudCcpKTtcbiAgICB0aGlzLnByaW9yWWVhcnNOb25QcmltYXJ5TG9zc2VzQW1vdW50ID0gdGhpcy5jYWxjdWxhdGVQcmlvclllYXJzT3BlbkJhbGFuY2UoYnVzaW5lc3NMb3NzZXMpO1xuICAgIHRoaXMubmV0Tm9uUHJpbWFyeUluY29tZU9yTG9zc2VzQW1vdW50ID0gdHJhbnNhY3Rpb25zLmdldEluY29tZVRyYW5zYWN0aW9ucygpXG4gICAgICAgIC5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5jYXRlZ29yeScsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9JTkNPTUUpXG4gICAgICAgIC5hbW91bnQgLVxuICAgICAgdGhpcy5wcmlvclllYXJzTm9uUHJpbWFyeUxvc3Nlc0Ftb3VudDtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlUHJpb3JZZWFyc09wZW5CYWxhbmNlKGJ1c2luZXNzTG9zc2VzOiBDb2xsZWN0aW9uPFNvbGVCdXNpbmVzc0xvc3M+KTogbnVtYmVyIHtcbiAgICByZXR1cm4gYnVzaW5lc3NMb3NzZXMgPyBidXNpbmVzc0xvc3Nlcy5zdW1CeSgnb3BlbkJhbGFuY2UnKSA6IDA7XG4gIH1cbn1cbiJdfQ==
@@ -1,10 +1,13 @@
1
- import { ChartAccountsListEnum } from '../../../../db/Enums/chart-accounts-list.enum';
2
1
  /**
3
- * @Todo waiting for Sole tank implementation
2
+ * Sole business losses report
3
+ * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4644110466/Tax+Return+MyTax+-+Online+Form ("Losses" section)
4
4
  */
5
5
  export class MyTaxLosses {
6
- constructor(transactions) {
7
- this.transactions = transactions.filterBy('chartAccounts.id', ChartAccountsListEnum.DIVIDENDS);
6
+ constructor(transactions, businessLosses) {
7
+ this.transactions = transactions;
8
+ this.businessLosses = businessLosses;
9
+ this.businessLossDeferred = businessLosses.sumBy('openBalance');
10
+ this.businessLossApplied = businessLosses.calculateBusinessLossApplied(transactions);
8
11
  }
9
12
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWxvc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtbG9zc2VzL215LXRheC1sb3NzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFdEY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNFLFlBQW1DO1FBRW5DLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNMaXN0RW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWxpc3QuZW51bSc7XG5cbi8qKlxuICogQFRvZG8gd2FpdGluZyBmb3IgU29sZSB0YW5rIGltcGxlbWVudGF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBNeVRheExvc3NlcyB7XG4gIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxuICApIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9ucyA9IHRyYW5zYWN0aW9ucy5maWx0ZXJCeSgnY2hhcnRBY2NvdW50cy5pZCcsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5ESVZJREVORFMpO1xuICB9XG59XG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWxvc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtbG9zc2VzL215LXRheC1sb3NzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFXdEIsWUFDVSxZQUF1QyxFQUN2QyxjQUE0QztRQUQ1QyxpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDdkMsbUJBQWMsR0FBZCxjQUFjLENBQThCO1FBRXBELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxjQUFjLENBQUMsNEJBQTRCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25CYXNlQ29sbGVjdGlvbiwgU29sZUJ1c2luZXNzTG9zc2VzQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcblxuLyoqXG4gKiBTb2xlIGJ1c2luZXNzIGxvc3NlcyByZXBvcnRcbiAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDY0NDExMDQ2Ni9UYXgrUmV0dXJuK015VGF4Ky0rT25saW5lK0Zvcm0gKFwiTG9zc2VzXCIgc2VjdGlvbilcbiAqL1xuZXhwb3J0IGNsYXNzIE15VGF4TG9zc2VzIHtcbiAgLyoqXG4gICAqIExvc3NlcyBjYXJyaWVkIGZvcndhcmQgZnJvbSBlYXJsaWVyIGluY29tZSB5ZWFyc1xuICAgKi9cbiAgYnVzaW5lc3NMb3NzRGVmZXJyZWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogTG9zc2VzIGFwcGxpZWQgdG8gdGhlIGN1cnJlbnQgeWVhciAodW50aWwgcHJvZml0IGdldHMgdG8gJDApXG4gICAqL1xuICBidXNpbmVzc0xvc3NBcHBsaWVkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQmFzZUNvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSBidXNpbmVzc0xvc3NlczogU29sZUJ1c2luZXNzTG9zc2VzQ29sbGVjdGlvblxuICApIHtcbiAgICB0aGlzLmJ1c2luZXNzTG9zc0RlZmVycmVkID0gYnVzaW5lc3NMb3NzZXMuc3VtQnkoJ29wZW5CYWxhbmNlJyk7XG4gICAgdGhpcy5idXNpbmVzc0xvc3NBcHBsaWVkID0gYnVzaW5lc3NMb3NzZXMuY2FsY3VsYXRlQnVzaW5lc3NMb3NzQXBwbGllZCh0cmFuc2FjdGlvbnMpO1xuICB9XG59XG4iXX0=