taxtank-core 0.30.17 → 0.30.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/collections/allocation-rule.collection.mjs +14 -0
- package/esm2020/lib/collections/index.mjs +2 -1
- package/esm2020/lib/collections/property/property-sale/index.mjs +2 -2
- package/esm2020/lib/collections/property/property-sale/property-sale-tax-exemption-meta-field.collection.mjs +17 -0
- package/esm2020/lib/collections/transaction/transaction.collection.mjs +6 -6
- package/esm2020/lib/db/Enums/allocation-rule-condition-comparison-operator.enum.mjs +9 -0
- package/esm2020/lib/db/Enums/allocation-rule-condition-field.enum.mjs +6 -0
- package/esm2020/lib/db/Enums/allocation-rule-condition-operator.enum.mjs +6 -0
- package/esm2020/lib/db/Enums/allocation-rule-type.enum.mjs +7 -0
- package/esm2020/lib/db/Enums/chart-accounts/chart-accounts-meta-field-list.enum.mjs +19 -0
- package/esm2020/lib/db/Enums/chart-accounts/chart-accounts-meta-field-type.enum.mjs +6 -0
- package/esm2020/lib/db/Enums/chart-accounts/index.mjs +3 -3
- package/esm2020/lib/db/Enums/index.mjs +6 -2
- package/esm2020/lib/db/Enums/property/property-sale/tax-exemption-meta-field.enum.mjs +9 -0
- package/esm2020/lib/db/Models/chart-accounts/chart-accounts-meta-field.mjs +4 -0
- package/esm2020/lib/db/Models/chart-accounts/chart-accounts.mjs +1 -1
- package/esm2020/lib/db/Models/index.mjs +5 -6
- package/esm2020/lib/db/Models/property/property-sale/property-sale-tax-exemption-meta-field.mjs +4 -0
- package/esm2020/lib/db/Models/property/property-sale/property-sale.mjs +1 -1
- package/esm2020/lib/db/Models/property/property-sale/tax-exemption-meta-field.mjs +4 -0
- package/esm2020/lib/db/Models/property/property-sale/tax-exemption.mjs +1 -1
- package/esm2020/lib/db/Models/transaction/allocation-rule-condition.mjs +4 -0
- package/esm2020/lib/db/Models/transaction/allocation-rule-transaction-meta-field.mjs +4 -0
- package/esm2020/lib/db/Models/transaction/allocation-rule-transaction.mjs +4 -0
- package/esm2020/lib/db/Models/transaction/allocation-rule.mjs +4 -0
- package/esm2020/lib/db/Models/transaction/transaction-meta-field.mjs +4 -0
- package/esm2020/lib/db/Models/transaction/transaction.mjs +1 -1
- package/esm2020/lib/forms/property/property-sale/property-sale-exemptions.form.mjs +18 -18
- package/esm2020/lib/forms/transaction/allocation-rule-condition.form.mjs +14 -0
- package/esm2020/lib/forms/transaction/allocation-rule-transaction-meta-field.form.mjs +12 -0
- package/esm2020/lib/forms/transaction/allocation-rule-transaction.form.mjs +125 -0
- package/esm2020/lib/forms/transaction/allocation-rule.form.mjs +135 -0
- package/esm2020/lib/forms/transaction/index.mjs +2 -1
- package/esm2020/lib/forms/transaction/work/work-expense.form.mjs +10 -10
- package/esm2020/lib/forms/transaction/work/work-transaction.form.mjs +12 -12
- package/esm2020/lib/models/chart-accounts/chart-accounts-meta-field.mjs +14 -0
- package/esm2020/lib/models/chart-accounts/chart-accounts.mjs +7 -4
- package/esm2020/lib/models/chart-accounts/index.mjs +2 -2
- package/esm2020/lib/models/endpoint/endpoints.const.mjs +5 -1
- package/esm2020/lib/models/property/property-sale/index.mjs +3 -3
- package/esm2020/lib/models/property/property-sale/property-sale-tax-exemption-meta-field.mjs +4 -0
- package/esm2020/lib/models/property/property-sale/property-sale.mjs +4 -4
- package/esm2020/lib/models/property/property-sale/tax-exemption-meta-field.mjs +4 -0
- package/esm2020/lib/models/property/property.mjs +6 -6
- package/esm2020/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.mjs +8 -8
- package/esm2020/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.mjs +12 -12
- package/esm2020/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.mjs +6 -6
- package/esm2020/lib/models/transaction/allocation-rule-condition.mjs +4 -0
- package/esm2020/lib/models/transaction/allocation-rule-transaction-meta-field.mjs +4 -0
- package/esm2020/lib/models/transaction/allocation-rule-transaction.mjs +56 -0
- package/esm2020/lib/models/transaction/allocation-rule.mjs +78 -0
- package/esm2020/lib/models/transaction/index.mjs +5 -2
- package/esm2020/lib/models/transaction/transaction-meta-field.mjs +10 -0
- package/esm2020/lib/models/transaction/transaction.mjs +15 -15
- package/esm2020/lib/services/http/transaction/index.mjs +2 -1
- package/esm2020/lib/services/http/transaction/transaction-allocation/allocation-rule/allocation-rule.service.mjs +23 -0
- package/esm2020/lib/services/http/tutorial-video/video-source.interface.mjs +1 -1
- package/esm2020/public-api.mjs +5 -5
- package/fesm2015/taxtank-core.mjs +851 -390
- package/fesm2015/taxtank-core.mjs.map +1 -1
- package/fesm2020/taxtank-core.mjs +850 -391
- package/fesm2020/taxtank-core.mjs.map +1 -1
- package/lib/collections/allocation-rule.collection.d.ts +7 -0
- package/lib/collections/index.d.ts +1 -0
- package/lib/collections/property/property-sale/index.d.ts +1 -1
- package/lib/collections/property/property-sale/property-sale-tax-exemption-meta-field.collection.d.ts +8 -0
- package/lib/collections/transaction/transaction.collection.d.ts +3 -3
- package/lib/db/Enums/allocation-rule-condition-comparison-operator.enum.d.ts +7 -0
- package/lib/db/Enums/allocation-rule-condition-field.enum.d.ts +4 -0
- package/lib/db/Enums/allocation-rule-condition-operator.enum.d.ts +4 -0
- package/lib/db/Enums/allocation-rule-type.enum.d.ts +5 -0
- package/lib/db/Enums/chart-accounts/{chart-accounts-metadata-list.enum.d.ts → chart-accounts-meta-field-list.enum.d.ts} +1 -1
- package/lib/db/Enums/chart-accounts/chart-accounts-meta-field-type.enum.d.ts +4 -0
- package/lib/db/Enums/chart-accounts/index.d.ts +2 -2
- package/lib/db/Enums/index.d.ts +5 -1
- package/lib/db/Enums/property/property-sale/{tax-exemption-metadata.enum.d.ts → tax-exemption-meta-field.enum.d.ts} +1 -1
- package/lib/db/Models/chart-accounts/chart-accounts-meta-field.d.ts +11 -0
- package/lib/db/Models/chart-accounts/chart-accounts.d.ts +2 -2
- package/lib/db/Models/index.d.ts +4 -5
- package/lib/db/Models/property/property-sale/property-sale-tax-exemption-meta-field.d.ts +9 -0
- package/lib/db/Models/property/property-sale/property-sale.d.ts +2 -2
- package/lib/db/Models/property/property-sale/{tax-exemption-metadata.d.ts → tax-exemption-meta-field.d.ts} +1 -1
- package/lib/db/Models/property/property-sale/tax-exemption.d.ts +2 -2
- package/lib/db/Models/transaction/allocation-rule-condition.d.ts +10 -0
- package/lib/db/Models/transaction/allocation-rule-transaction-meta-field.d.ts +9 -0
- package/lib/db/Models/transaction/allocation-rule-transaction.d.ts +25 -0
- package/lib/db/Models/transaction/allocation-rule.d.ts +22 -0
- package/lib/db/Models/transaction/{transaction-metadata.d.ts → transaction-meta-field.d.ts} +3 -3
- package/lib/db/Models/transaction/transaction.d.ts +2 -2
- package/lib/forms/property/property-sale/property-sale-exemptions.form.d.ts +2 -2
- package/lib/forms/transaction/allocation-rule-condition.form.d.ts +5 -0
- package/lib/forms/transaction/allocation-rule-transaction-meta-field.form.d.ts +5 -0
- package/lib/forms/transaction/allocation-rule-transaction.form.d.ts +33 -0
- package/lib/forms/transaction/allocation-rule.form.d.ts +31 -0
- package/lib/forms/transaction/index.d.ts +1 -0
- package/lib/forms/transaction/work/work-expense.form.d.ts +1 -1
- package/lib/forms/transaction/work/work-transaction.form.d.ts +1 -1
- package/lib/models/chart-accounts/chart-accounts-meta-field.d.ts +8 -0
- package/lib/models/chart-accounts/chart-accounts.d.ts +3 -2
- package/lib/models/chart-accounts/index.d.ts +1 -1
- package/lib/models/property/property-sale/index.d.ts +2 -2
- package/lib/models/property/property-sale/property-sale-tax-exemption-meta-field.d.ts +3 -0
- package/lib/models/property/property-sale/property-sale.d.ts +2 -2
- package/lib/models/property/property-sale/tax-exemption-meta-field.d.ts +3 -0
- package/lib/models/transaction/allocation-rule-condition.d.ts +3 -0
- package/lib/models/transaction/allocation-rule-transaction-meta-field.d.ts +3 -0
- package/lib/models/transaction/allocation-rule-transaction.d.ts +17 -0
- package/lib/models/transaction/allocation-rule.d.ts +24 -0
- package/lib/models/transaction/index.d.ts +4 -1
- package/lib/models/transaction/transaction-meta-field.d.ts +5 -0
- package/lib/models/transaction/transaction.d.ts +6 -6
- package/lib/services/http/transaction/index.d.ts +1 -0
- package/lib/services/http/transaction/transaction-allocation/allocation-rule/allocation-rule.service.d.ts +13 -0
- package/lib/services/http/tutorial-video/video-source.interface.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -4
- package/esm2020/lib/collections/property/property-sale/property-sale-tax-exemption-metadata.collection.mjs +0 -17
- package/esm2020/lib/db/Enums/chart-accounts/chart-accounts-metadata-list.enum.mjs +0 -19
- package/esm2020/lib/db/Enums/chart-accounts/chart-accounts-metadata-type.enum.mjs +0 -6
- package/esm2020/lib/db/Enums/property/property-sale/tax-exemption-metadata.enum.mjs +0 -9
- package/esm2020/lib/db/Models/bank/bank-transaction-rule.mjs +0 -4
- package/esm2020/lib/db/Models/chart-accounts/chart-accounts-metadata.mjs +0 -4
- package/esm2020/lib/db/Models/property/property-sale/property-sale-tax-exemption-metadata.mjs +0 -4
- package/esm2020/lib/db/Models/property/property-sale/tax-exemption-metadata.mjs +0 -4
- package/esm2020/lib/db/Models/transaction/transaction-metadata.mjs +0 -4
- package/esm2020/lib/models/chart-accounts/chart-accounts-metadata.mjs +0 -14
- package/esm2020/lib/models/property/property-sale/property-sale-tax-exemption-metadata.mjs +0 -4
- package/esm2020/lib/models/property/property-sale/tax-exemption-metadata.mjs +0 -4
- package/esm2020/lib/models/transaction/transaction-metadata.mjs +0 -10
- package/lib/collections/property/property-sale/property-sale-tax-exemption-metadata.collection.d.ts +0 -8
- package/lib/db/Enums/chart-accounts/chart-accounts-metadata-type.enum.d.ts +0 -4
- package/lib/db/Models/bank/bank-transaction-rule.d.ts +0 -26
- package/lib/db/Models/chart-accounts/chart-accounts-metadata.d.ts +0 -11
- package/lib/db/Models/property/property-sale/property-sale-tax-exemption-metadata.d.ts +0 -9
- package/lib/models/chart-accounts/chart-accounts-metadata.d.ts +0 -8
- package/lib/models/property/property-sale/property-sale-tax-exemption-metadata.d.ts +0 -3
- package/lib/models/property/property-sale/tax-exemption-metadata.d.ts +0 -3
- package/lib/models/transaction/transaction-metadata.d.ts +0 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AbstractForm } from '../../abstract.form';
|
|
2
2
|
import { PropertySale } from '../../../models/property/property-sale';
|
|
3
3
|
import { UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
|
4
|
-
import {
|
|
4
|
+
import { TaxExemptionMetaFieldEnum } from '../../../db/Enums/property/property-sale/tax-exemption-meta-field.enum';
|
|
5
5
|
import { plainToClass } from 'class-transformer';
|
|
6
6
|
/**
|
|
7
7
|
* @Todo TT-2143 Create and extend from abstract PropertySale form
|
|
@@ -10,14 +10,14 @@ export class PropertySaleExemptionsForm extends AbstractForm {
|
|
|
10
10
|
constructor(propertySale, property, taxExemptions) {
|
|
11
11
|
super({
|
|
12
12
|
taxExemption: new UntypedFormControl(taxExemptions.findBy('id', propertySale.taxExemption?.id ?? property.getCGTExemption(propertySale))),
|
|
13
|
-
|
|
13
|
+
taxExemptionMetaFields: new UntypedFormArray([]),
|
|
14
14
|
netCGT: new UntypedFormControl(propertySale.netCGT)
|
|
15
15
|
}, propertySale);
|
|
16
16
|
this.propertySale = propertySale;
|
|
17
17
|
this.property = property;
|
|
18
18
|
this.taxExemptions = taxExemptions;
|
|
19
19
|
if (propertySale.taxExemption) {
|
|
20
|
-
this.
|
|
20
|
+
this.setFormMetaFieldsControls();
|
|
21
21
|
}
|
|
22
22
|
this.updateNetCGT();
|
|
23
23
|
this.listenEvents();
|
|
@@ -37,38 +37,38 @@ export class PropertySaleExemptionsForm extends AbstractForm {
|
|
|
37
37
|
listenTaxExemptionUpdated() {
|
|
38
38
|
this.get('taxExemption').valueChanges.subscribe((taxExemption) => {
|
|
39
39
|
this.updateNetCGT();
|
|
40
|
-
this.
|
|
40
|
+
this.setFormMetaFieldsControls(taxExemption);
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
* show
|
|
44
|
+
* show meta fields related to passed tax exemption or existing property sale meta fields
|
|
45
45
|
*/
|
|
46
|
-
|
|
46
|
+
setFormMetaFieldsControls(taxExemption) {
|
|
47
47
|
// use property sale tax exemption if it exists to preselect data
|
|
48
48
|
const currentTaxExemption = this.propertySale.taxExemption ?
|
|
49
49
|
this.taxExemptions.findBy('id', this.propertySale.taxExemption.id) :
|
|
50
50
|
taxExemption;
|
|
51
|
-
const formArray = this.get('
|
|
51
|
+
const formArray = this.get('taxExemptionMetaFields');
|
|
52
52
|
// clean up
|
|
53
53
|
formArray.clear();
|
|
54
|
-
// show all tax exemption
|
|
55
|
-
currentTaxExemption.
|
|
56
|
-
// use property sale tax exemption
|
|
57
|
-
const
|
|
58
|
-
this.propertySale.
|
|
59
|
-
.find((
|
|
54
|
+
// show all tax exemption meta fields
|
|
55
|
+
currentTaxExemption.metaFields.forEach((metaField) => {
|
|
56
|
+
// use property sale tax exemption meta field value if it exists
|
|
57
|
+
const metaFieldValue = this.propertySale.taxExemption ?
|
|
58
|
+
this.propertySale.taxExemptionMetaFields
|
|
59
|
+
.find((saleMetaField) => saleMetaField.metaField.id === metaField.id).value :
|
|
60
60
|
null;
|
|
61
61
|
const validators = [
|
|
62
62
|
// claim percent is optional
|
|
63
|
-
|
|
63
|
+
metaField.id !== TaxExemptionMetaFieldEnum.CLAIM_PERCENT && Validators.required,
|
|
64
64
|
// ppr days can't be more than ownership days
|
|
65
|
-
|
|
65
|
+
metaField.id === TaxExemptionMetaFieldEnum.PPR_DAYS && Validators.max(this.property.getOwnershipDuration(this.propertySale))
|
|
66
66
|
].filter(Boolean);
|
|
67
67
|
formArray.push(new UntypedFormGroup({
|
|
68
|
-
|
|
69
|
-
value: new UntypedFormControl(
|
|
68
|
+
metaField: new UntypedFormControl(metaField),
|
|
69
|
+
value: new UntypedFormControl(metaFieldValue, validators)
|
|
70
70
|
}));
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc2FsZS1leGVtcHRpb25zLmZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvcHJvcGVydHkvcHJvcGVydHktc2FsZS9wcm9wZXJ0eS1zYWxlLWV4ZW1wdGlvbnMuZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlwRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUVuSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFLakQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsWUFBMEI7SUFDeEUsWUFDVSxZQUEwQixFQUMxQixRQUFrQixFQUNsQixhQUF1QztRQUUvQyxLQUFLLENBQUM7WUFDRixZQUFZLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDekksc0JBQXNCLEVBQUUsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDaEQsTUFBTSxFQUFFLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUNwRCxFQUNELFlBQVksQ0FDYixDQUFDO1FBVk0saUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixrQkFBYSxHQUFiLGFBQWEs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cG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgUHJvcGVydHlTYWxlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUnO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHknO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgVGF4RXhlbXB0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUnO1xuaW1wb3J0IHsgVGF4RXhlbXB0aW9uTWV0YUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUnO1xuaW1wb3J0IHsgVGF4RXhlbXB0aW9uTWV0YUZpZWxkRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvdGF4LWV4ZW1wdGlvbi1tZXRhLWZpZWxkLmVudW0nO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1xuICBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhRmllbGRcbn0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvcHJvcGVydHktc2FsZS10YXgtZXhlbXB0aW9uLW1ldGEtZmllbGQnO1xuXG4vKipcbiAqIEBUb2RvIFRULTIxNDMgQ3JlYXRlIGFuZCBleHRlbmQgZnJvbSBhYnN0cmFjdCBQcm9wZXJ0eVNhbGUgZm9ybVxuICovXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTYWxlRXhlbXB0aW9uc0Zvcm0gZXh0ZW5kcyBBYnN0cmFjdEZvcm08UHJvcGVydHlTYWxlPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eVNhbGU6IFByb3BlcnR5U2FsZSxcbiAgICBwcml2YXRlIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBwcml2YXRlIHRheEV4ZW1wdGlvbnM6IENvbGxlY3Rpb248VGF4RXhlbXB0aW9uPixcbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgICB0YXhFeGVtcHRpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGF4RXhlbXB0aW9ucy5maW5kQnkoJ2lkJywgcHJvcGVydHlTYWxlLnRheEV4ZW1wdGlvbj8uaWQgPz8gcHJvcGVydHkuZ2V0Q0dURXhlbXB0aW9uKHByb3BlcnR5U2FsZSkpKSxcbiAgICAgICAgdGF4RXhlbXB0aW9uTWV0YUZpZWxkczogbmV3IFVudHlwZWRGb3JtQXJyYXkoW10pLFxuICAgICAgICBuZXRDR1Q6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocHJvcGVydHlTYWxlLm5ldENHVClcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0eVNhbGVcbiAgICApO1xuXG4gICAgaWYgKHByb3BlcnR5U2FsZS50YXhFeGVtcHRpb24pIHtcbiAgICAgIHRoaXMuc2V0Rm9ybU1ldGFGaWVsZHNDb250cm9scygpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlTmV0Q0dUKCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5UYXhFeGVtcHRpb25VcGRhdGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogQFRvZG8gVFQtMjE0MyBNb3ZlIHRvIHBhcmVudCBhYnN0cmFjdCBQcm9wZXJ0eVNhbGUgZm9ybVxuICAgKi9cbiAgZ2V0UHJvcGVydHlTYWxlKCk6IFByb3BlcnR5U2FsZSB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhQcm9wZXJ0eVNhbGUsIE9iamVjdC5hc3NpZ24oe30sIHRoaXMucHJvcGVydHlTYWxlLCB0aGlzLmdldFJhd1ZhbHVlKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTmV0Q0dUKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCduZXRDR1QnKS5zZXRWYWx1ZSh0aGlzLnByb3BlcnR5LmNhbGN1bGF0ZU5ldENHVCh0aGlzLmdldFByb3BlcnR5U2FsZSgpKSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblRheEV4ZW1wdGlvblVwZGF0ZWQoKSB7XG4gICAgdGhpcy5nZXQoJ3RheEV4ZW1wdGlvbicpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHRheEV4ZW1wdGlvbjogVGF4RXhlbXB0aW9uKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZU5ldENHVCgpO1xuICAgICAgdGhpcy5zZXRGb3JtTWV0YUZpZWxkc0NvbnRyb2xzKHRheEV4ZW1wdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogc2hvdyBtZXRhIGZpZWxkcyByZWxhdGVkIHRvIHBhc3NlZCB0YXggZXhlbXB0aW9uIG9yIGV4aXN0aW5nIHByb3BlcnR5IHNhbGUgbWV0YSBmaWVsZHNcbiAgICovXG4gIHByaXZhdGUgc2V0Rm9ybU1ldGFGaWVsZHNDb250cm9scyh0YXhFeGVtcHRpb24/OiBUYXhFeGVtcHRpb24pOiB2b2lkIHtcbiAgICAvLyB1c2UgcHJvcGVydHkgc2FsZSB0YXggZXhlbXB0aW9uIGlmIGl0IGV4aXN0cyB0byBwcmVzZWxlY3QgZGF0YVxuICAgIGNvbnN0IGN1cnJlbnRUYXhFeGVtcHRpb246IFRheEV4ZW1wdGlvbiA9IHRoaXMucHJvcGVydHlTYWxlLnRheEV4ZW1wdGlvbiA/XG4gICAgICB0aGlzLnRheEV4ZW1wdGlvbnMuZmluZEJ5KCdpZCcsIHRoaXMucHJvcGVydHlTYWxlLnRheEV4ZW1wdGlvbi5pZCkgOlxuICAgICAgdGF4RXhlbXB0aW9uO1xuXG4gICAgY29uc3QgZm9ybUFycmF5OiBVbnR5cGVkRm9ybUFycmF5ID0gdGhpcy5nZXQoJ3RheEV4ZW1wdGlvbk1ldGFGaWVsZHMnKSBhcyBVbnR5cGVkRm9ybUFycmF5O1xuICAgIC8vIGNsZWFuIHVwXG4gICAgZm9ybUFycmF5LmNsZWFyKCk7XG4gICAgLy8gc2hvdyBhbGwgdGF4IGV4ZW1wdGlvbiBtZXRhIGZpZWxkc1xuICAgIGN1cnJlbnRUYXhFeGVtcHRpb24ubWV0YUZpZWxkcy5mb3JFYWNoKChtZXRhRmllbGQ6IFRheEV4ZW1wdGlvbk1ldGFGaWVsZCkgPT4ge1xuXG4gICAgICAvLyB1c2UgcHJvcGVydHkgc2FsZSB0YXggZXhlbXB0aW9uIG1ldGEgZmllbGQgdmFsdWUgaWYgaXQgZXhpc3RzXG4gICAgICBjb25zdCBtZXRhRmllbGRWYWx1ZTogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eVNhbGUudGF4RXhlbXB0aW9uID9cbiAgICAgICAgdGhpcy5wcm9wZXJ0eVNhbGUudGF4RXhlbXB0aW9uTWV0YUZpZWxkc1xuICAgICAgICAgIC5maW5kKChzYWxlTWV0YUZpZWxkOiBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhRmllbGQpID0+IHNhbGVNZXRhRmllbGQubWV0YUZpZWxkLmlkID09PSBtZXRhRmllbGQuaWQpLnZhbHVlIDpcbiAgICAgICAgbnVsbDtcblxuICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IFtcbiAgICAgICAgLy8gY2xhaW0gcGVyY2VudCBpcyBvcHRpb25hbFxuICAgICAgICBtZXRhRmllbGQuaWQgIT09IFRheEV4ZW1wdGlvbk1ldGFGaWVsZEVudW0uQ0xBSU1fUEVSQ0VOVCAmJiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAvLyBwcHIgZGF5cyBjYW4ndCBiZSBtb3JlIHRoYW4gb3duZXJzaGlwIGRheXNcbiAgICAgICAgbWV0YUZpZWxkLmlkID09PSBUYXhFeGVtcHRpb25NZXRhRmllbGRFbnVtLlBQUl9EQVlTICYmIFZhbGlkYXRvcnMubWF4KHRoaXMucHJvcGVydHkuZ2V0T3duZXJzaGlwRHVyYXRpb24odGhpcy5wcm9wZXJ0eVNhbGUpKVxuICAgICAgXS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICAgIGZvcm1BcnJheS5wdXNoKFxuICAgICAgICBuZXcgVW50eXBlZEZvcm1Hcm91cChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXRhRmllbGQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobWV0YUZpZWxkKSxcbiAgICAgICAgICAgIHZhbHVlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKG1ldGFGaWVsZFZhbHVlLCB2YWxpZGF0b3JzKVxuICAgICAgICAgIH1cbiAgICAgICAgKSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AbstractForm } from '../abstract.form';
|
|
2
|
+
import { AllocationRuleCondition } from '../../models/transaction/allocation-rule-condition';
|
|
3
|
+
import { plainToClass } from 'class-transformer';
|
|
4
|
+
import { UntypedFormControl, Validators } from '@angular/forms';
|
|
5
|
+
export class AllocationRuleConditionForm extends AbstractForm {
|
|
6
|
+
constructor(condition = plainToClass(AllocationRuleCondition, {})) {
|
|
7
|
+
super({
|
|
8
|
+
field: new UntypedFormControl(condition.field, Validators.required),
|
|
9
|
+
comparisonOperator: new UntypedFormControl(condition.comparisonOperator, Validators.required),
|
|
10
|
+
value: new UntypedFormControl(condition.value, Validators.required)
|
|
11
|
+
}, condition);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLWNvbmRpdGlvbi5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL3RyYW5zYWN0aW9uL2FsbG9jYXRpb24tcnVsZS1jb25kaXRpb24uZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsWUFBcUM7SUFDcEYsWUFDRSxZQUFxQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDO1FBRTlFLEtBQUssQ0FBQztZQUNKLEtBQUssRUFBRSxJQUFJLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNuRSxrQkFBa0IsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzdGLEtBQUssRUFBRSxJQUFJLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNwRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVDb25kaXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLWNvbmRpdGlvbic7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjbGFzcyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkZvcm0gZXh0ZW5kcyBBYnN0cmFjdEZvcm08QWxsb2NhdGlvblJ1bGVDb25kaXRpb24+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgY29uZGl0aW9uOiBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbiA9IHBsYWluVG9DbGFzcyhBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbiwge30pXG4gICkge1xuICAgIHN1cGVyKHtcbiAgICAgIGZpZWxkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGNvbmRpdGlvbi5maWVsZCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woY29uZGl0aW9uLmNvbXBhcmlzb25PcGVyYXRvciwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB2YWx1ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChjb25kaXRpb24udmFsdWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgfSwgY29uZGl0aW9uKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AbstractForm } from '../abstract.form';
|
|
2
|
+
import { AllocationRuleTransactionMetaField } from '../../models';
|
|
3
|
+
import { plainToClass } from 'class-transformer';
|
|
4
|
+
import { UntypedFormControl } from '@angular/forms';
|
|
5
|
+
export class AllocationRuleTransactionMetaFieldForm extends AbstractForm {
|
|
6
|
+
constructor(metaField = plainToClass(AllocationRuleTransactionMetaField, {})) {
|
|
7
|
+
super({
|
|
8
|
+
value: new UntypedFormControl(metaField.value)
|
|
9
|
+
}, metaField);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uLW1ldGEtZmllbGQuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy90cmFuc2FjdGlvbi9hbGxvY2F0aW9uLXJ1bGUtdHJhbnNhY3Rpb24tbWV0YS1maWVsZC5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE1BQU0sT0FBTyxzQ0FBdUMsU0FBUSxZQUFnRDtJQUMxRyxZQUNFLFlBQWdELFlBQVksQ0FBQyxrQ0FBa0MsRUFBRSxFQUFFLENBQUM7UUFFcEcsS0FBSyxDQUFDO1lBQ0osS0FBSyxFQUFFLElBQUksa0JBQWtCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztTQUMvQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbk1ldGFGaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjbGFzcyBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uTWV0YUZpZWxkRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uTWV0YUZpZWxkPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1ldGFGaWVsZDogQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbk1ldGFGaWVsZCA9IHBsYWluVG9DbGFzcyhBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uTWV0YUZpZWxkLCB7fSlcbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgdmFsdWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobWV0YUZpZWxkLnZhbHVlKVxuICAgIH0sIG1ldGFGaWVsZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { AbstractForm } from '../abstract.form';
|
|
2
|
+
import { AllocationRuleTransactionMetaField } from '../../models';
|
|
3
|
+
import { UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
|
4
|
+
import { conditionalValidator } from '../../validators';
|
|
5
|
+
import { AllocationRuleTransactionMetaFieldForm } from './allocation-rule-transaction-meta-field.form';
|
|
6
|
+
import { IncomeSource } from '../../models/income-source/income-source';
|
|
7
|
+
import { plainToClass } from 'class-transformer';
|
|
8
|
+
/**
|
|
9
|
+
* @TODO Alex: extend transaction form(s) when transaction forms refactored
|
|
10
|
+
*/
|
|
11
|
+
export class AllocationRuleTransactionForm extends AbstractForm {
|
|
12
|
+
constructor(transaction,
|
|
13
|
+
// Flag to enable transaction GST field
|
|
14
|
+
isGST) {
|
|
15
|
+
super({
|
|
16
|
+
amount: new UntypedFormControl(null),
|
|
17
|
+
tax: new UntypedFormControl(transaction.tax || 0, Validators.required),
|
|
18
|
+
claimPercent: new UntypedFormControl(transaction.claimPercent || 100, [Validators.required, Validators.min(0), Validators.max(100)]),
|
|
19
|
+
chartAccounts: new UntypedFormControl(transaction.chartAccounts, Validators.required),
|
|
20
|
+
isGST: new UntypedFormControl({ value: transaction.isGST || false, disabled: !isGST }),
|
|
21
|
+
loan: new UntypedFormControl(transaction.loan),
|
|
22
|
+
incomeSource: new UntypedFormControl(transaction.incomeSource, conditionalValidator(() => transaction.chartAccounts?.isWorkIncome(), Validators.required)),
|
|
23
|
+
metaFields: new UntypedFormArray((transaction.metaFields || []).map((metaField) => new AllocationRuleTransactionMetaFieldForm(metaField))),
|
|
24
|
+
business: new UntypedFormControl(transaction.business, Validators.required),
|
|
25
|
+
property: new UntypedFormControl(transaction.property, Validators.required),
|
|
26
|
+
// Show null as default value for new transaction to avoid preselecting of not allowed tank types
|
|
27
|
+
tankType: new UntypedFormControl(transaction.id ? transaction.tankType : null, Validators.required),
|
|
28
|
+
childTransactions: new UntypedFormArray((transaction.childTransactions || []).map((childTransaction) => new UntypedFormGroup({
|
|
29
|
+
chartAccounts: new UntypedFormControl(childTransaction.chartAccounts, Validators.required),
|
|
30
|
+
amount: new UntypedFormControl(childTransaction.amount, Validators.required)
|
|
31
|
+
})))
|
|
32
|
+
}, transaction);
|
|
33
|
+
this.listenEvents();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @TODO Alex: move to abstract form, universal method getArray(arrayName)
|
|
37
|
+
*/
|
|
38
|
+
get metaFieldsArray() {
|
|
39
|
+
return this.get('metaFields');
|
|
40
|
+
}
|
|
41
|
+
get childTransactionsArray() {
|
|
42
|
+
return this.get('childTransactions');
|
|
43
|
+
}
|
|
44
|
+
addChildTransactionForm() {
|
|
45
|
+
this.childTransactionsArray.push(new UntypedFormGroup({
|
|
46
|
+
chartAccounts: new UntypedFormControl(null, Validators.required),
|
|
47
|
+
amount: new UntypedFormControl(null, Validators.required)
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
submit() {
|
|
51
|
+
const data = {
|
|
52
|
+
metaFields: this.metaFieldsArray.controls.map((metaFieldForm) => metaFieldForm.submit())
|
|
53
|
+
};
|
|
54
|
+
return super.submit(data);
|
|
55
|
+
}
|
|
56
|
+
listenEvents() {
|
|
57
|
+
this.listenChartAccountsChanges();
|
|
58
|
+
this.listenTankTypeChanges();
|
|
59
|
+
this.listenIncomeSourceChanges();
|
|
60
|
+
this.listenPropertyChanges();
|
|
61
|
+
}
|
|
62
|
+
listenChartAccountsChanges() {
|
|
63
|
+
this.get('chartAccounts').valueChanges.subscribe((chartAccounts) => {
|
|
64
|
+
this.get('incomeSource').removeValidators(Validators.required);
|
|
65
|
+
if (!chartAccounts) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
this.updateClaimPercent();
|
|
69
|
+
// User have to select income source for work income
|
|
70
|
+
if (chartAccounts.isWorkIncome()) {
|
|
71
|
+
this.get('incomeSource').setValidators(Validators.required);
|
|
72
|
+
}
|
|
73
|
+
// Rebuild meta fields
|
|
74
|
+
this.metaFieldsArray.clear();
|
|
75
|
+
chartAccounts.metaFields.forEach((chartAccountsMetaField) => {
|
|
76
|
+
this.metaFieldsArray.push(new AllocationRuleTransactionMetaFieldForm(plainToClass(AllocationRuleTransactionMetaField, { chartAccountsMetaField })));
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Child transaction allowance depends on tank type.
|
|
82
|
+
* Also chart accounts are different, so we just reset child transactions when tank type changed
|
|
83
|
+
*/
|
|
84
|
+
listenTankTypeChanges() {
|
|
85
|
+
this.get('tankType').valueChanges.subscribe(() => {
|
|
86
|
+
this.childTransactionsArray.reset();
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Set tax automatically when salary income source selected
|
|
91
|
+
*/
|
|
92
|
+
listenIncomeSourceChanges() {
|
|
93
|
+
this.get('incomeSource').valueChanges.subscribe((incomeSource) => {
|
|
94
|
+
if (!incomeSource) {
|
|
95
|
+
this.get('tax').setValue(0);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// prefill salary tax with its income source forecast
|
|
99
|
+
if (incomeSource instanceof IncomeSource && incomeSource.isSalaryIncome() && !this.get('tax').value) {
|
|
100
|
+
this.get('tax').setValue(incomeSource.salaryForecasts[0].taxWithheld);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
listenPropertyChanges() {
|
|
105
|
+
this.get('property').valueChanges.subscribe(() => {
|
|
106
|
+
this.updateClaimPercent();
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Update claim percent value and state depends on business logic
|
|
111
|
+
*/
|
|
112
|
+
updateClaimPercent() {
|
|
113
|
+
const claimPercentControl = this.get('claimPercent');
|
|
114
|
+
// claim percent is changeable only for work and sole expenses except vehicle and personal
|
|
115
|
+
claimPercentControl.disable();
|
|
116
|
+
if (!this.currentValue.chartAccounts) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
if (this.currentValue.chartAccounts.isClaimPercentEditable()) {
|
|
120
|
+
claimPercentControl.enable();
|
|
121
|
+
}
|
|
122
|
+
claimPercentControl.setValue(this.currentValue.calculateClaimPercent());
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uLmZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFHTCxrQ0FBa0MsRUFHbkMsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsWUFBdUM7SUFDeEYsWUFDRSxXQUFzQztJQUN0Qyx1Q0FBdUM7SUFDdkMsS0FBYztRQUVkLEtBQUssQ0FBQztZQUNKLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUNwQyxHQUFHLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3RFLFlBQVksRUFBRSxJQUFJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxZQUFZLElBQUksR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVB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LENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFO1lBQzVELG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzlCO1FBRUQsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHtcbiAgQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbixcbiAgQ2hhcnRBY2NvdW50cyxcbiAgQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbk1ldGFGaWVsZCxcbiAgQ2hhcnRBY2NvdW50c01ldGFGaWVsZCxcbiAgUHJvcGVydHlcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvbmRpdGlvbmFsVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uTWV0YUZpZWxkRm9ybSB9IGZyb20gJy4vYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uLW1ldGEtZmllbGQuZm9ybSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzTGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XG5cbi8qKlxuICogQFRPRE8gQWxleDogZXh0ZW5kIHRyYW5zYWN0aW9uIGZvcm0ocykgd2hlbiB0cmFuc2FjdGlvbiBmb3JtcyByZWZhY3RvcmVkXG4gKi9cbmV4cG9ydCBjbGFzcyBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgdHJhbnNhY3Rpb246IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb24sXG4gICAgLy8gRmxhZyB0byBlbmFibGUgdHJhbnNhY3Rpb24gR1NUIGZpZWxkXG4gICAgaXNHU1Q6IGJvb2xlYW5cbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgYW1vdW50OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpLFxuICAgICAgdGF4OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRyYW5zYWN0aW9uLnRheCB8fCAwLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGNsYWltUGVyY2VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0cmFuc2FjdGlvbi5jbGFpbVBlcmNlbnQgfHwgMTAwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldKSxcbiAgICAgIGNoYXJ0QWNjb3VudHM6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBpc0dTVDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7dmFsdWU6IHRyYW5zYWN0aW9uLmlzR1NUIHx8IGZhbHNlLCBkaXNhYmxlZDogIWlzR1NUfSksXG4gICAgICBsb2FuOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRyYW5zYWN0aW9uLmxvYW4pLFxuICAgICAgaW5jb21lU291cmNlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRyYW5zYWN0aW9uLmluY29tZVNvdXJjZSwgY29uZGl0aW9uYWxWYWxpZGF0b3IoKCkgPT4gdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cz8uaXNXb3JrSW5jb21lKCksIFZhbGlkYXRvcnMucmVxdWlyZWQpKSxcbiAgICAgIG1ldGFGaWVsZHM6IG5ldyBVbnR5cGVkRm9ybUFycmF5KCh0cmFuc2FjdGlvbi5tZXRhRmllbGRzIHx8IFtdKS5tYXAoKG1ldGFGaWVsZDogQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbk1ldGFGaWVsZCkgPT4gbmV3IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25NZXRhRmllbGRGb3JtKG1ldGFGaWVsZCkpKSxcbiAgICAgIGJ1c2luZXNzOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRyYW5zYWN0aW9uLmJ1c2luZXNzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHByb3BlcnR5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRyYW5zYWN0aW9uLnByb3BlcnR5LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIC8vIFNob3cgbnVsbCBhcyBkZWZhdWx0IHZhbHVlIGZvciBuZXcgdHJhbnNhY3Rpb24gdG8gYXZvaWQgcHJlc2VsZWN0aW5nIG9mIG5vdCBhbGxvd2VkIHRhbmsgdHlwZXNcbiAgICAgIHRhbmtUeXBlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRyYW5zYWN0aW9uLmlkID8gdHJhbnNhY3Rpb24udGFua1R5cGUgOiBudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGNoaWxkVHJhbnNhY3Rpb25zOiBuZXcgVW50eXBlZEZvcm1BcnJheSgodHJhbnNhY3Rpb24uY2hpbGRUcmFuc2FjdGlvbnMgfHwgW10pLm1hcCgoY2hpbGRUcmFuc2FjdGlvbjogQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbikgPT4gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgICAgICBjaGFydEFjY291bnRzOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGNoaWxkVHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGFtb3VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChjaGlsZFRyYW5zYWN0aW9uLmFtb3VudCwgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgIH0pKSlcbiAgICB9LCB0cmFuc2FjdGlvbik7XG5cbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFsZXg6IG1vdmUgdG8gYWJzdHJhY3QgZm9ybSwgdW5pdmVyc2FsIG1ldGhvZCBnZXRBcnJheShhcnJheU5hbWUpXG4gICAqL1xuICBnZXQgbWV0YUZpZWxkc0FycmF5KCk6IFVudHlwZWRGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmdldCgnbWV0YUZpZWxkcycpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gIH1cblxuICBnZXQgY2hpbGRUcmFuc2FjdGlvbnNBcnJheSgpOiBVbnR5cGVkRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoJ2NoaWxkVHJhbnNhY3Rpb25zJykgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgfVxuXG4gIGFkZENoaWxkVHJhbnNhY3Rpb25Gb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuY2hpbGRUcmFuc2FjdGlvbnNBcnJheS5wdXNoKFxuICAgICAgbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgICAgICBjaGFydEFjY291bnRzOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBhbW91bnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHN1Ym1pdCgpOiBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbWV0YUZpZWxkczogdGhpcy5tZXRhRmllbGRzQXJyYXkuY29udHJvbHMubWFwKChtZXRhRmllbGRGb3JtOiBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uTWV0YUZpZWxkRm9ybSkgPT4gbWV0YUZpZWxkRm9ybS5zdWJtaXQoKSlcbiAgICB9O1xuXG4gICAgcmV0dXJuIHN1cGVyLnN1Ym1pdChkYXRhKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbkNoYXJ0QWNjb3VudHNDaGFuZ2VzKCk7XG4gICAgdGhpcy5saXN0ZW5UYW5rVHlwZUNoYW5nZXMoKTtcbiAgICB0aGlzLmxpc3RlbkluY29tZVNvdXJjZUNoYW5nZXMoKTtcbiAgICB0aGlzLmxpc3RlblByb3BlcnR5Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5DaGFydEFjY291bnRzQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdldCgnY2hhcnRBY2NvdW50cycpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHMpID0+IHtcbiAgICAgIHRoaXMuZ2V0KCdpbmNvbWVTb3VyY2UnKS5yZW1vdmVWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuXG4gICAgICBpZiAoIWNoYXJ0QWNjb3VudHMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnVwZGF0ZUNsYWltUGVyY2VudCgpO1xuXG4gICAgICAvLyBVc2VyIGhhdmUgdG8gc2VsZWN0IGluY29tZSBzb3VyY2UgZm9yIHdvcmsgaW5jb21lXG4gICAgICBpZiAoY2hhcnRBY2NvdW50cy5pc1dvcmtJbmNvbWUoKSkge1xuICAgICAgICB0aGlzLmdldCgnaW5jb21lU291cmNlJykuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVidWlsZCBtZXRhIGZpZWxkc1xuICAgICAgdGhpcy5tZXRhRmllbGRzQXJyYXkuY2xlYXIoKTtcbiAgICAgIGNoYXJ0QWNjb3VudHMubWV0YUZpZWxkcy5mb3JFYWNoKChjaGFydEFjY291bnRzTWV0YUZpZWxkOiBDaGFydEFjY291bnRzTWV0YUZpZWxkKSA9PiB7XG4gICAgICAgIHRoaXMubWV0YUZpZWxkc0FycmF5LnB1c2goXG4gICAgICAgICAgbmV3IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25NZXRhRmllbGRGb3JtKFxuICAgICAgICAgICAgcGxhaW5Ub0NsYXNzKEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25NZXRhRmllbGQsIHsgY2hhcnRBY2NvdW50c01ldGFGaWVsZCB9KVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQ2hpbGQgdHJhbnNhY3Rpb24gYWxsb3dhbmNlIGRlcGVuZHMgb24gdGFuayB0eXBlLlxuICAgKiBBbHNvIGNoYXJ0IGFjY291bnRzIGFyZSBkaWZmZXJlbnQsIHNvIHdlIGp1c3QgcmVzZXQgY2hpbGQgdHJhbnNhY3Rpb25zIHdoZW4gdGFuayB0eXBlIGNoYW5nZWRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVGFua1R5cGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCd0YW5rVHlwZScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jaGlsZFRyYW5zYWN0aW9uc0FycmF5LnJlc2V0KCk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGF4IGF1dG9tYXRpY2FsbHkgd2hlbiBzYWxhcnkgaW5jb21lIHNvdXJjZSBzZWxlY3RlZFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5JbmNvbWVTb3VyY2VDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCdpbmNvbWVTb3VyY2UnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChpbmNvbWVTb3VyY2U/OiBJbmNvbWVTb3VyY2UpID0+IHtcbiAgICAgIGlmICghaW5jb21lU291cmNlKSB7XG4gICAgICAgIHRoaXMuZ2V0KCd0YXgnKS5zZXRWYWx1ZSgwKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHByZWZpbGwgc2FsYXJ5IHRheCB3aXRoIGl0cyBpbmNvbWUgc291cmNlIGZvcmVjYXN0XG4gICAgICBpZiAoaW5jb21lU291cmNlIGluc3RhbmNlb2YgSW5jb21lU291cmNlICYmIGluY29tZVNvdXJjZS5pc1NhbGFyeUluY29tZSgpICYmICF0aGlzLmdldCgndGF4JykudmFsdWUpIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RheCcpLnNldFZhbHVlKGluY29tZVNvdXJjZS5zYWxhcnlGb3JlY2FzdHNbMF0udGF4V2l0aGhlbGQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuICBwcml2YXRlIGxpc3RlblByb3BlcnR5Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdldCgncHJvcGVydHknKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQ2xhaW1QZXJjZW50KCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNsYWltIHBlcmNlbnQgdmFsdWUgYW5kIHN0YXRlIGRlcGVuZHMgb24gYnVzaW5lc3MgbG9naWNcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlQ2xhaW1QZXJjZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGNsYWltUGVyY2VudENvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCA9IHRoaXMuZ2V0KCdjbGFpbVBlcmNlbnQnKSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG5cbiAgICAvLyBjbGFpbSBwZXJjZW50IGlzIGNoYW5nZWFibGUgb25seSBmb3Igd29yayBhbmQgc29sZSBleHBlbnNlcyBleGNlcHQgdmVoaWNsZSBhbmQgcGVyc29uYWxcbiAgICBjbGFpbVBlcmNlbnRDb250cm9sLmRpc2FibGUoKTtcblxuICAgIGlmICghdGhpcy5jdXJyZW50VmFsdWUuY2hhcnRBY2NvdW50cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnRWYWx1ZS5jaGFydEFjY291bnRzLmlzQ2xhaW1QZXJjZW50RWRpdGFibGUoKSkge1xuICAgICAgY2xhaW1QZXJjZW50Q29udHJvbC5lbmFibGUoKTtcbiAgICB9XG5cbiAgICBjbGFpbVBlcmNlbnRDb250cm9sLnNldFZhbHVlKHRoaXMuY3VycmVudFZhbHVlLmNhbGN1bGF0ZUNsYWltUGVyY2VudCgpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { AbstractForm } from '../abstract.form';
|
|
2
|
+
import { AllocationRuleTransaction, CHART_ACCOUNTS_CATEGORIES } from '../../models';
|
|
3
|
+
import { plainToClass } from 'class-transformer';
|
|
4
|
+
import { UntypedFormArray, UntypedFormControl, Validators } from '@angular/forms';
|
|
5
|
+
import { AllocationRuleCondition } from '../../models/transaction/allocation-rule-condition';
|
|
6
|
+
import { AllocationRuleConditionForm } from './allocation-rule-condition.form';
|
|
7
|
+
import { AllocationRuleTransactionForm } from './allocation-rule-transaction.form';
|
|
8
|
+
import { AllocationRuleTypeEnum } from '../../db/Enums';
|
|
9
|
+
import { TankTypeEnum } from '../../db/Enums/tank-type.enum';
|
|
10
|
+
import intersection from 'lodash/intersection';
|
|
11
|
+
export class AllocationRuleForm extends AbstractForm {
|
|
12
|
+
constructor(
|
|
13
|
+
// rule is required because we have to keep bank account relation
|
|
14
|
+
rule,
|
|
15
|
+
// Flag to enable transaction GST field
|
|
16
|
+
isGST) {
|
|
17
|
+
super({
|
|
18
|
+
type: new UntypedFormControl(rule.type, Validators.required),
|
|
19
|
+
name: new UntypedFormControl(rule.name, Validators.required),
|
|
20
|
+
conditionOperator: new UntypedFormControl(rule.conditionOperator, Validators.required),
|
|
21
|
+
conditions: new UntypedFormArray((rule.conditions || [plainToClass(AllocationRuleCondition, {})])
|
|
22
|
+
.map((condition) => new AllocationRuleConditionForm(condition))),
|
|
23
|
+
transaction: new AllocationRuleTransactionForm(rule.transaction || plainToClass(AllocationRuleTransaction, {}), isGST),
|
|
24
|
+
transferBankAccount: new UntypedFormControl(rule.transferBankAccount, Validators.required),
|
|
25
|
+
autoAllocate: new UntypedFormControl(rule.autoAllocate || false, Validators.required)
|
|
26
|
+
}, rule);
|
|
27
|
+
this.isGST = isGST;
|
|
28
|
+
this.listenEvents();
|
|
29
|
+
this.setupFieldsByType(rule.type);
|
|
30
|
+
this.setupFieldsByTankType(rule.transaction?.tankType);
|
|
31
|
+
this.updateChartAccountsCategories();
|
|
32
|
+
if (!this.transactionFormGroup.get('chartAccounts').value?.isClaimPercentEditable()) {
|
|
33
|
+
this.transactionFormGroup.get('claimPercent').disable();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
get conditionsArray() {
|
|
37
|
+
return this.get('conditions');
|
|
38
|
+
}
|
|
39
|
+
get childTransactionsArray() {
|
|
40
|
+
return this.transactionFormGroup.get('childTransactions');
|
|
41
|
+
}
|
|
42
|
+
get transactionFormGroup() {
|
|
43
|
+
return this.get('transaction');
|
|
44
|
+
}
|
|
45
|
+
addConditionForm() {
|
|
46
|
+
this.conditionsArray.push(new AllocationRuleConditionForm());
|
|
47
|
+
}
|
|
48
|
+
isTaxFieldHidden() {
|
|
49
|
+
const chartAccounts = this.transactionFormGroup.get('chartAccounts').value;
|
|
50
|
+
return !chartAccounts || !chartAccounts.isTaxable();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* TODO Alex: disable sole tank in form control when income selected
|
|
54
|
+
*/
|
|
55
|
+
isTransactionFieldsHidden() {
|
|
56
|
+
return this.transactionFormGroup.get('tankType').value === null || this.currentValue.isSoleIncome();
|
|
57
|
+
}
|
|
58
|
+
submit() {
|
|
59
|
+
const data = {
|
|
60
|
+
conditions: this.conditionsArray.controls.map((conditionForm) => conditionForm.submit()),
|
|
61
|
+
transaction: null
|
|
62
|
+
};
|
|
63
|
+
if (!this.currentValue.isTransfer()) {
|
|
64
|
+
data.transaction = this.transactionFormGroup.submit();
|
|
65
|
+
}
|
|
66
|
+
return super.submit(data);
|
|
67
|
+
}
|
|
68
|
+
listenEvents() {
|
|
69
|
+
this.listenTankTypeChanges();
|
|
70
|
+
this.listenTypeChanges();
|
|
71
|
+
}
|
|
72
|
+
listenTypeChanges() {
|
|
73
|
+
this.get('type').valueChanges.subscribe((type) => {
|
|
74
|
+
this.setupFieldsByType(type);
|
|
75
|
+
this.updateChartAccountsCategories();
|
|
76
|
+
// we have different fields for different types
|
|
77
|
+
this.get('transaction').reset();
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
listenTankTypeChanges() {
|
|
81
|
+
this.transactionFormGroup.get('tankType').valueChanges.subscribe((tankType) => {
|
|
82
|
+
this.updateChartAccountsCategories();
|
|
83
|
+
this.setupFieldsByTankType(tankType);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Update list of chart accounts categories allowed for transaction
|
|
88
|
+
* Depends on transaction type and tank type
|
|
89
|
+
*/
|
|
90
|
+
updateChartAccountsCategories() {
|
|
91
|
+
// We use unique one Chart Accounts for transfer
|
|
92
|
+
if (this.currentValue.isTransfer()) {
|
|
93
|
+
this.chartAccountsCategories = null;
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const excludedCategories = [...CHART_ACCOUNTS_CATEGORIES.depreciation];
|
|
97
|
+
this.chartAccountsCategories = intersection(CHART_ACCOUNTS_CATEGORIES[this.currentValue.typeLabel], CHART_ACCOUNTS_CATEGORIES[this.currentValue.tankTypeLabel])
|
|
98
|
+
.filter((category) => !excludedCategories.includes(category));
|
|
99
|
+
}
|
|
100
|
+
setupFieldsByType(type) {
|
|
101
|
+
switch (type) {
|
|
102
|
+
case AllocationRuleTypeEnum.EXPENSE:
|
|
103
|
+
case AllocationRuleTypeEnum.INCOME:
|
|
104
|
+
this.get('transaction').enable({ emitEvent: false });
|
|
105
|
+
this.get('transferBankAccount').disable({ emitEvent: false });
|
|
106
|
+
break;
|
|
107
|
+
case AllocationRuleTypeEnum.TRANSFER:
|
|
108
|
+
this.get('transaction').disable({ emitEvent: false });
|
|
109
|
+
this.get('transferBankAccount').enable({ emitEvent: false });
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
setupFieldsByTankType(tankType) {
|
|
114
|
+
// First disable tankType-related fields, second enable for selected tank type
|
|
115
|
+
this.transactionFormGroup.get('property').disable({ emitEvent: false });
|
|
116
|
+
this.transactionFormGroup.get('business').disable({ emitEvent: false });
|
|
117
|
+
this.transactionFormGroup.get('isGST').disable({ emitEvent: false });
|
|
118
|
+
this.transactionFormGroup.get('incomeSource').disable({ emitEvent: false });
|
|
119
|
+
switch (tankType) {
|
|
120
|
+
case TankTypeEnum.WORK:
|
|
121
|
+
this.transactionFormGroup.get('incomeSource').enable({ emitEvent: false });
|
|
122
|
+
break;
|
|
123
|
+
case TankTypeEnum.PROPERTY:
|
|
124
|
+
this.transactionFormGroup.get('property').enable({ emitEvent: false });
|
|
125
|
+
break;
|
|
126
|
+
case TankTypeEnum.SOLE:
|
|
127
|
+
this.transactionFormGroup.get('business').enable({ emitEvent: false });
|
|
128
|
+
if (this.isGST) {
|
|
129
|
+
this.transactionFormGroup.get('isGST').enable({ emitEvent: false });
|
|
130
|
+
}
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLmZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBa0IseUJBQXlCLEVBQUUseUJBQXlCLEVBQWlCLE1BQU0sY0FBYyxDQUFDO0FBQ25ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQkFBc0IsRUFBNkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0QsT0FBTyxZQUFZLE1BQU0scUJBQXFCLENBQUM7QUFFL0MsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFlBQTRCO0lBR2xFO0lBQ0UsaUVBQWlFO0lBQ2pFLElBQW9CO0lBQ3BCLHVDQUF1QztJQUMvQixLQUFjO1FBRXRCLEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM1RCxJQUFJLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7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QUFDLE9BQU8sQ0FBQyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUUxRSxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLFlBQVksQ0FBQyxJQUFJO2dCQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO2dCQUN6RSxNQUFNO1lBQ1IsS0FBSyxZQUFZLENBQUMsUUFBUTtnQkFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztnQkFDckUsTUFBTTtZQUNSLEtBQUssWUFBWSxDQUFDLElBQUk7Z0JBQ3BCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7Z0JBRXJFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO2lCQUNuRTtnQkFDRCxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdEZvcm0gfSBmcm9tICcuLi9hYnN0cmFjdC5mb3JtJztcbmltcG9ydCB7IEFsbG9jYXRpb25SdWxlLCBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uLCBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLCBDaGFydEFjY291bnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uL2FsbG9jYXRpb24tcnVsZS1jb25kaXRpb24nO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVDb25kaXRpb25Gb3JtIH0gZnJvbSAnLi9hbGxvY2F0aW9uLXJ1bGUtY29uZGl0aW9uLmZvcm0nO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbkZvcm0gfSBmcm9tICcuL2FsbG9jYXRpb24tcnVsZS10cmFuc2FjdGlvbi5mb3JtJztcbmltcG9ydCB7IEFsbG9jYXRpb25SdWxlVHlwZUVudW0sIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XG5pbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IGludGVyc2VjdGlvbiBmcm9tICdsb2Rhc2gvaW50ZXJzZWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIEFsbG9jYXRpb25SdWxlRm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxBbGxvY2F0aW9uUnVsZT4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIGNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzOiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gcnVsZSBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIGhhdmUgdG8ga2VlcCBiYW5rIGFjY291bnQgcmVsYXRpb25cbiAgICBydWxlOiBBbGxvY2F0aW9uUnVsZSxcbiAgICAvLyBGbGFnIHRvIGVuYWJsZSB0cmFuc2FjdGlvbiBHU1QgZmllbGRcbiAgICBwcml2YXRlIGlzR1NUOiBib29sZWFuXG4gICkge1xuICAgIHN1cGVyKHtcbiAgICAgIHR5cGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocnVsZS50eXBlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIG5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocnVsZS5uYW1lLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGNvbmRpdGlvbk9wZXJhdG9yOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHJ1bGUuY29uZGl0aW9uT3BlcmF0b3IsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgY29uZGl0aW9uczogbmV3IFVudHlwZWRGb3JtQXJyYXkoXG4gICAgICAgIChydWxlLmNvbmRpdGlvbnMgfHwgW3BsYWluVG9DbGFzcyhBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbiwge30pXSlcbiAgICAgICAgICAubWFwKChjb25kaXRpb246IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uKSA9PiBuZXcgQWxsb2NhdGlvblJ1bGVDb25kaXRpb25Gb3JtKGNvbmRpdGlvbikpXG4gICAgICApLFxuICAgICAgdHJhbnNhY3Rpb246IG5ldyBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uRm9ybShydWxlLnRyYW5zYWN0aW9uIHx8IHBsYWluVG9DbGFzcyhBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uLCB7fSksIGlzR1NUKSxcbiAgICAgIHRyYW5zZmVyQmFua0FjY291bnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocnVsZS50cmFuc2ZlckJhbmtBY2NvdW50LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGF1dG9BbGxvY2F0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChydWxlLmF1dG9BbGxvY2F0ZSB8fCBmYWxzZSwgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICB9LCBydWxlKTtcblxuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gICAgdGhpcy5zZXR1cEZpZWxkc0J5VHlwZShydWxlLnR5cGUpO1xuICAgIHRoaXMuc2V0dXBGaWVsZHNCeVRhbmtUeXBlKHJ1bGUudHJhbnNhY3Rpb24/LnRhbmtUeXBlKTtcbiAgICB0aGlzLnVwZGF0ZUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKCk7XG5cbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdjaGFydEFjY291bnRzJykudmFsdWU/LmlzQ2xhaW1QZXJjZW50RWRpdGFibGUoKSkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2NsYWltUGVyY2VudCcpLmRpc2FibGUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29uZGl0aW9uc0FycmF5KCk6IFVudHlwZWRGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmdldCgnY29uZGl0aW9ucycpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gIH1cblxuICBnZXQgY2hpbGRUcmFuc2FjdGlvbnNBcnJheSgpOiBVbnR5cGVkRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2NoaWxkVHJhbnNhY3Rpb25zJykgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgfVxuXG4gIGdldCB0cmFuc2FjdGlvbkZvcm1Hcm91cCgpOiBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uRm9ybSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCd0cmFuc2FjdGlvbicpIGFzIEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25Gb3JtO1xuICB9XG5cbiAgYWRkQ29uZGl0aW9uRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmRpdGlvbnNBcnJheS5wdXNoKG5ldyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkZvcm0oKSk7XG4gIH1cblxuICBpc1RheEZpZWxkSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHMgPSB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgnY2hhcnRBY2NvdW50cycpLnZhbHVlO1xuXG4gICAgcmV0dXJuICFjaGFydEFjY291bnRzIHx8ICFjaGFydEFjY291bnRzLmlzVGF4YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE8gQWxleDogZGlzYWJsZSBzb2xlIHRhbmsgaW4gZm9ybSBjb250cm9sIHdoZW4gaW5jb21lIHNlbGVjdGVkXG4gICAqL1xuICBpc1RyYW5zYWN0aW9uRmllbGRzSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgndGFua1R5cGUnKS52YWx1ZSA9PT0gbnVsbCB8fCB0aGlzLmN1cnJlbnRWYWx1ZS5pc1NvbGVJbmNvbWUoKTtcbiAgfVxuXG5cblxuICBzdWJtaXQoKTogQWxsb2NhdGlvblJ1bGUge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBjb25kaXRpb25zOiB0aGlzLmNvbmRpdGlvbnNBcnJheS5jb250cm9scy5tYXAoKGNvbmRpdGlvbkZvcm06IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uRm9ybSkgPT4gY29uZGl0aW9uRm9ybS5zdWJtaXQoKSksXG4gICAgICB0cmFuc2FjdGlvbjogbnVsbFxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuY3VycmVudFZhbHVlLmlzVHJhbnNmZXIoKSkge1xuICAgICAgZGF0YS50cmFuc2FjdGlvbiA9IHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuc3VibWl0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyLnN1Ym1pdChkYXRhKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRhbmtUeXBlQ2hhbmdlcygpO1xuICAgIHRoaXMubGlzdGVuVHlwZUNoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVHlwZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5nZXQoJ3R5cGUnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh0eXBlOiBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtKSA9PiB7XG4gICAgICB0aGlzLnNldHVwRmllbGRzQnlUeXBlKHR5cGUpO1xuICAgICAgdGhpcy51cGRhdGVDaGFydEFjY291bnRzQ2F0ZWdvcmllcygpO1xuXG4gICAgICAvLyB3ZSBoYXZlIGRpZmZlcmVudCBmaWVsZHMgZm9yIGRpZmZlcmVudCB0eXBlc1xuICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9uJykucmVzZXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVGFua1R5cGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCd0YW5rVHlwZScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHRhbmtUeXBlOiBUYW5rVHlwZUVudW0pID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQ2hhcnRBY2NvdW50c0NhdGVnb3JpZXMoKTtcbiAgICAgIHRoaXMuc2V0dXBGaWVsZHNCeVRhbmtUeXBlKHRhbmtUeXBlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgbGlzdCBvZiBjaGFydCBhY2NvdW50cyBjYXRlZ29yaWVzIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9uXG4gICAqIERlcGVuZHMgb24gdHJhbnNhY3Rpb24gdHlwZSBhbmQgdGFuayB0eXBlXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKCk6IHZvaWQge1xuICAgIC8vIFdlIHVzZSB1bmlxdWUgb25lIENoYXJ0IEFjY291bnRzIGZvciB0cmFuc2ZlclxuICAgIGlmICh0aGlzLmN1cnJlbnRWYWx1ZS5pc1RyYW5zZmVyKCkpIHtcbiAgICAgIHRoaXMuY2hhcnRBY2NvdW50c0NhdGVnb3JpZXMgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4Y2x1ZGVkQ2F0ZWdvcmllczogQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bVtdID0gWy4uLkNIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuZGVwcmVjaWF0aW9uXTtcbiAgICB0aGlzLmNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzID0gaW50ZXJzZWN0aW9uKENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVNbdGhpcy5jdXJyZW50VmFsdWUudHlwZUxhYmVsXSwgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFU1t0aGlzLmN1cnJlbnRWYWx1ZS50YW5rVHlwZUxhYmVsXSlcbiAgICAgIC5maWx0ZXIoKGNhdGVnb3J5OiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtKSA9PiAhZXhjbHVkZWRDYXRlZ29yaWVzLmluY2x1ZGVzKGNhdGVnb3J5KSk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwRmllbGRzQnlUeXBlKHR5cGU6IEFsbG9jYXRpb25SdWxlVHlwZUVudW0pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgQWxsb2NhdGlvblJ1bGVUeXBlRW51bS5FWFBFTlNFOlxuICAgICAgY2FzZSBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLklOQ09NRTpcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9uJykuZW5hYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIHRoaXMuZ2V0KCd0cmFuc2ZlckJhbmtBY2NvdW50JykuZGlzYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQWxsb2NhdGlvblJ1bGVUeXBlRW51bS5UUkFOU0ZFUjpcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9uJykuZGlzYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB0aGlzLmdldCgndHJhbnNmZXJCYW5rQWNjb3VudCcpLmVuYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEZpZWxkc0J5VGFua1R5cGUodGFua1R5cGU6IFRhbmtUeXBlRW51bSk6IHZvaWQge1xuICAgIC8vIEZpcnN0IGRpc2FibGUgdGFua1R5cGUtcmVsYXRlZCBmaWVsZHMsIHNlY29uZCBlbmFibGUgZm9yIHNlbGVjdGVkIHRhbmsgdHlwZVxuICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdwcm9wZXJ0eScpLmRpc2FibGUoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgnYnVzaW5lc3MnKS5kaXNhYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2lzR1NUJykuZGlzYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdpbmNvbWVTb3VyY2UnKS5kaXNhYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG5cbiAgICBzd2l0Y2ggKHRhbmtUeXBlKSB7XG4gICAgICBjYXNlIFRhbmtUeXBlRW51bS5XT1JLOlxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgnaW5jb21lU291cmNlJykuZW5hYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uUFJPUEVSVFk6XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdwcm9wZXJ0eScpLmVuYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlNPTEU6XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdidXNpbmVzcycpLmVuYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuXG4gICAgICAgIGlmICh0aGlzLmlzR1NUKSB7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2lzR1NUJykuZW5hYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
export * from './allocation-rule.form';
|
|
1
2
|
export * from './transaction-base.form';
|
|
2
3
|
export * from './transaction.form';
|
|
3
4
|
export * from './work/work-income.form';
|
|
4
5
|
export * from './work/work-expense.form';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvdHJhbnNhY3Rpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbGxvY2F0aW9uLXJ1bGUuZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uLWJhc2UuZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi93b3JrL3dvcmstaW5jb21lLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi93b3JrL3dvcmstZXhwZW5zZS5mb3JtJztcbiJdfQ==
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { WorkTransactionForm } from './work-transaction.form';
|
|
2
2
|
import { Collection } from '../../../collections';
|
|
3
|
-
import {
|
|
3
|
+
import { ChartAccountsMetaFieldListEnum } from '../../../db/Enums';
|
|
4
4
|
export class WorkExpenseForm extends WorkTransactionForm {
|
|
5
5
|
constructor(transaction, registeredForGst, allocations, controls = {}) {
|
|
6
6
|
super(transaction, registeredForGst, allocations, controls);
|
|
7
|
-
// amount set automatically for chartAccounts with hours
|
|
8
|
-
if (transaction.
|
|
7
|
+
// amount set automatically for chartAccounts with hours meta field
|
|
8
|
+
if (transaction.getMetaFieldValue(ChartAccountsMetaFieldListEnum.HOURS)) {
|
|
9
9
|
this.get('amount').disable();
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
listenEvents() {
|
|
13
|
-
this.
|
|
13
|
+
this.watchChartAccountsMetaFields();
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
this.get('
|
|
17
|
-
const
|
|
18
|
-
if (!
|
|
15
|
+
watchChartAccountsMetaFields() {
|
|
16
|
+
this.get('metaFields').valueChanges.subscribe((metaFields) => {
|
|
17
|
+
const hoursMetaField = new Collection(metaFields).findBy('chartAccountsMetaField.id', ChartAccountsMetaFieldListEnum.HOURS);
|
|
18
|
+
if (!hoursMetaField) {
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
21
|
// for home office hours expense amount is a fixed rate per hour
|
|
22
22
|
this.get('amount').reset();
|
|
23
23
|
this.get('amount').disable();
|
|
24
|
-
this.get('amount').setValue((this.get('chartAccounts').value.getCurrentYearValue().value * +
|
|
24
|
+
this.get('amount').setValue((this.get('chartAccounts').value.getCurrentYearValue().value * +hoursMetaField.value).toFixed(2));
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1leHBlbnNlLmZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvdHJhbnNhY3Rpb24vd29yay93b3JrLWV4cGVuc2UuZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFHakUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsbUJBQW1CO0lBQ3RELFlBQ0UsV0FBd0IsRUFDeEIsZ0JBQXlCLEVBQ3pCLFdBQW9DLEVBQ3BDLFdBQTZDLEVBQUU7UUFFL0MsS0FBSyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUQsbUVBQW1FO1FBQ25FLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBa0MsRUFBRSxFQUFFO1lBQ25GLE1BQU0sY0FBYyxHQUFHLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsRUFBRSw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1SCxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNuQixPQUFPO2FBQ1I7WUFFRCxnRUFBZ0U7WUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEksQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lFdmVudExpc3RlbmVyfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7VHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uQWxsb2NhdGlvbiwgVHJhbnNhY3Rpb25NZXRhRmllbGR9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1dvcmtUcmFuc2FjdGlvbkZvcm19IGZyb20gJy4vd29yay10cmFuc2FjdGlvbi5mb3JtJztcbmltcG9ydCB7Q29sbGVjdGlvbn0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW19IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjbGFzcyBXb3JrRXhwZW5zZUZvcm0gZXh0ZW5kcyBXb3JrVHJhbnNhY3Rpb25Gb3JtIGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24sXG4gICAgcmVnaXN0ZXJlZEZvckdzdDogYm9vbGVhbixcbiAgICBhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uW10sXG4gICAgY29udHJvbHM6IHtba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2x9ID0ge31cbiAgKSB7XG4gICAgc3VwZXIodHJhbnNhY3Rpb24sIHJlZ2lzdGVyZWRGb3JHc3QsIGFsbG9jYXRpb25zLCBjb250cm9scyk7XG4gICAgLy8gYW1vdW50IHNldCBhdXRvbWF0aWNhbGx5IGZvciBjaGFydEFjY291bnRzIHdpdGggaG91cnMgbWV0YSBmaWVsZFxuICAgIGlmICh0cmFuc2FjdGlvbi5nZXRNZXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0uSE9VUlMpKSB7XG4gICAgICB0aGlzLmdldCgnYW1vdW50JykuZGlzYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpIHtcbiAgICB0aGlzLndhdGNoQ2hhcnRBY2NvdW50c01ldGFGaWVsZHMoKTtcbiAgfVxuXG4gIHdhdGNoQ2hhcnRBY2NvdW50c01ldGFGaWVsZHMoKTogdm9pZCB7XG4gICAgdGhpcy5nZXQoJ21ldGFGaWVsZHMnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChtZXRhRmllbGRzOiBUcmFuc2FjdGlvbk1ldGFGaWVsZFtdKSA9PiB7XG4gICAgICBjb25zdCBob3Vyc01ldGFGaWVsZCA9IG5ldyBDb2xsZWN0aW9uKG1ldGFGaWVsZHMpLmZpbmRCeSgnY2hhcnRBY2NvdW50c01ldGFGaWVsZC5pZCcsIENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bS5IT1VSUyk7XG4gICAgICBpZiAoIWhvdXJzTWV0YUZpZWxkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gZm9yIGhvbWUgb2ZmaWNlIGhvdXJzIGV4cGVuc2UgYW1vdW50IGlzIGEgZml4ZWQgcmF0ZSBwZXIgaG91clxuICAgICAgdGhpcy5nZXQoJ2Ftb3VudCcpLnJlc2V0KCk7XG4gICAgICB0aGlzLmdldCgnYW1vdW50JykuZGlzYWJsZSgpO1xuICAgICAgdGhpcy5nZXQoJ2Ftb3VudCcpLnNldFZhbHVlKCh0aGlzLmdldCgnY2hhcnRBY2NvdW50cycpLnZhbHVlLmdldEN1cnJlbnRZZWFyVmFsdWUoKS52YWx1ZSAqICtob3Vyc01ldGFGaWVsZC52YWx1ZSkudG9GaXhlZCgyKSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,10 +4,10 @@ export class WorkTransactionForm extends TransactionForm {
|
|
|
4
4
|
constructor(transaction, registeredForGst, allocations, controls = {}) {
|
|
5
5
|
super(transaction, registeredForGst, allocations, Object.assign(controls, {
|
|
6
6
|
// additional data related to work (like tax instalments)
|
|
7
|
-
|
|
7
|
+
metaFields: new FormArray((transaction.metaFields || []).map((transactionMetaField) => {
|
|
8
8
|
return new FormGroup({
|
|
9
|
-
value: new FormControl(
|
|
10
|
-
|
|
9
|
+
value: new FormControl(transactionMetaField.value),
|
|
10
|
+
chartAccountsMetaField: new FormControl(transactionMetaField.chartAccountsMetaField)
|
|
11
11
|
});
|
|
12
12
|
}))
|
|
13
13
|
}));
|
|
@@ -19,22 +19,22 @@ export class WorkTransactionForm extends TransactionForm {
|
|
|
19
19
|
watchChartAccounts() {
|
|
20
20
|
super.watchChartAccounts();
|
|
21
21
|
this.get('chartAccounts').valueChanges.subscribe((chartAccounts) => {
|
|
22
|
-
this.
|
|
22
|
+
this.buildMetaFieldsForm();
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* depends on chartAccounts the form could include different extra fields
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
buildMetaFieldsForm() {
|
|
29
29
|
// Remove all controls in the FormArray before pushing
|
|
30
|
-
this.get('
|
|
31
|
-
// create form controls for each
|
|
32
|
-
(this.get('chartAccounts').value.
|
|
33
|
-
this.get('
|
|
34
|
-
value: new FormControl(
|
|
35
|
-
|
|
30
|
+
this.get('metaFields').clear();
|
|
31
|
+
// create form controls for each metaField object from selected chart accounts
|
|
32
|
+
(this.get('chartAccounts').value.metaFields).forEach((chartAccountsMetaField) => {
|
|
33
|
+
this.get('metaFields').push(new FormGroup({
|
|
34
|
+
value: new FormControl(chartAccountsMetaField.isSharePercentage() ? 100 : 0),
|
|
35
|
+
chartAccountsMetaField: new FormControl(chartAccountsMetaField),
|
|
36
36
|
}));
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay10cmFuc2FjdGlvbi5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL3RyYW5zYWN0aW9uL3dvcmsvd29yay10cmFuc2FjdGlvbi5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQVNwRCxPQUFPLEVBQWtCLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEYsTUFBTSxPQUFnQixtQkFBb0IsU0FBUSxlQUFlO0lBQy9ELFlBQ0UsV0FBd0IsRUFDeEIsZ0JBQXlCLEVBQ3pCLFdBQW9DLEVBQ3BDLFdBQTZDLEVBQUU7UUFFL0MsS0FBSyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDeEUseURBQXlEO1lBQ3pELFVBQVUsRUFBRSxJQUFJLFNBQVMsQ0FDdkIsQ0FBQyxXQUFXLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLG9CQUEwQyxFQUFhLEVBQUU7Z0JBQzNGLE9BQU8sSUFBSSxTQUFTLENBQUM7b0JBQ25CLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7b0JBQ2xELHNCQUFzQixFQUFFLElBQUksV0FBVyxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDO2lCQUNyRixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FDSDtTQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUE0QixFQUFFLEVBQUU7WUFDaEYsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxtQkFBbUI7UUFDekIsc0RBQXNEO1FBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFOUMsOEVBQThFO1FBQzlFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsc0JBQThDLEVBQVEsRUFBRTtZQUMzRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBZSxDQUFDLElBQUksQ0FDeEMsSUFBSSxTQUFTLENBQUM7Z0JBQ1osS0FBSyxFQUFFLElBQUksV0FBVyxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1RSxzQkFBc0IsRUFBRSxJQUFJLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQzthQUNoRSxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFuc2FjdGlvbkZvcm19IGZyb20gJy4uL3RyYW5zYWN0aW9uLmZvcm0nO1xuaW1wb3J0IHtJRXZlbnRMaXN0ZW5lcn0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBDaGFydEFjY291bnRzLFxuICBDaGFydEFjY291bnRzTWV0YUZpZWxkLFxuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25BbGxvY2F0aW9uLFxuICBUcmFuc2FjdGlvbk1ldGFGaWVsZFxufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya1RyYW5zYWN0aW9uRm9ybSBleHRlbmRzIFRyYW5zYWN0aW9uRm9ybSBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uLFxuICAgIHJlZ2lzdGVyZWRGb3JHc3Q6IGJvb2xlYW4sXG4gICAgYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdLFxuICAgIGNvbnRyb2xzOiB7W2tleTogc3RyaW5nXTogQWJzdHJhY3RDb250cm9sfSA9IHt9XG4gICkge1xuICAgIHN1cGVyKHRyYW5zYWN0aW9uLCByZWdpc3RlcmVkRm9yR3N0LCBhbGxvY2F0aW9ucywgT2JqZWN0LmFzc2lnbihjb250cm9scywge1xuICAgICAgLy8gYWRkaXRpb25hbCBkYXRhIHJlbGF0ZWQgdG8gd29yayAobGlrZSB0YXggaW5zdGFsbWVudHMpXG4gICAgICBtZXRhRmllbGRzOiBuZXcgRm9ybUFycmF5KFxuICAgICAgICAodHJhbnNhY3Rpb24ubWV0YUZpZWxkcyB8fCBbXSkubWFwKCh0cmFuc2FjdGlvbk1ldGFGaWVsZDogVHJhbnNhY3Rpb25NZXRhRmllbGQpOiBGb3JtR3JvdXAgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIHZhbHVlOiBuZXcgRm9ybUNvbnRyb2wodHJhbnNhY3Rpb25NZXRhRmllbGQudmFsdWUpLFxuICAgICAgICAgICAgY2hhcnRBY2NvdW50c01ldGFGaWVsZDogbmV3IEZvcm1Db250cm9sKHRyYW5zYWN0aW9uTWV0YUZpZWxkLmNoYXJ0QWNjb3VudHNNZXRhRmllbGQpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSkpO1xuXG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpIHtcbiAgICB0aGlzLndhdGNoQ2hhcnRBY2NvdW50cygpO1xuICB9XG5cbiAgd2F0Y2hDaGFydEFjY291bnRzKCk6IHZvaWQge1xuICAgIHN1cGVyLndhdGNoQ2hhcnRBY2NvdW50cygpO1xuXG4gICAgdGhpcy5nZXQoJ2NoYXJ0QWNjb3VudHMnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChjaGFydEFjY291bnRzOiBDaGFydEFjY291bnRzKSA9PiB7XG4gICAgICB0aGlzLmJ1aWxkTWV0YUZpZWxkc0Zvcm0oKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZXBlbmRzIG9uIGNoYXJ0QWNjb3VudHMgdGhlIGZvcm0gY291bGQgaW5jbHVkZSBkaWZmZXJlbnQgZXh0cmEgZmllbGRzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkTWV0YUZpZWxkc0Zvcm0oKTogdm9pZCB7XG4gICAgLy8gUmVtb3ZlIGFsbCBjb250cm9scyBpbiB0aGUgRm9ybUFycmF5IGJlZm9yZSBwdXNoaW5nXG4gICAgKHRoaXMuZ2V0KCdtZXRhRmllbGRzJykgYXMgRm9ybUFycmF5KS5jbGVhcigpO1xuXG4gICAgLy8gY3JlYXRlIGZvcm0gY29udHJvbHMgZm9yIGVhY2ggbWV0YUZpZWxkIG9iamVjdCBmcm9tIHNlbGVjdGVkIGNoYXJ0IGFjY291bnRzXG4gICAgKHRoaXMuZ2V0KCdjaGFydEFjY291bnRzJykudmFsdWUubWV0YUZpZWxkcykuZm9yRWFjaCgoY2hhcnRBY2NvdW50c01ldGFGaWVsZDogQ2hhcnRBY2NvdW50c01ldGFGaWVsZCk6IHZvaWQgPT4ge1xuICAgICAgKHRoaXMuZ2V0KCdtZXRhRmllbGRzJykgYXMgRm9ybUFycmF5KS5wdXNoKFxuICAgICAgICBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICB2YWx1ZTogbmV3IEZvcm1Db250cm9sKGNoYXJ0QWNjb3VudHNNZXRhRmllbGQuaXNTaGFyZVBlcmNlbnRhZ2UoKSA/IDEwMCA6IDApLFxuICAgICAgICAgIGNoYXJ0QWNjb3VudHNNZXRhRmllbGQ6IG5ldyBGb3JtQ29udHJvbChjaGFydEFjY291bnRzTWV0YUZpZWxkKSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|