mantenimento-app 2.1.2 → 2.1.3
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/app.js +539 -100
- package/backend/calculate-model.js +41 -0
- package/frontend/public/app.js +539 -100
- package/frontend/public/index.html +49 -1
- package/package.json +1 -1
|
@@ -32,6 +32,12 @@ function calculateModel(input) {
|
|
|
32
32
|
const aPag2 = toNumber(input.aPag2);
|
|
33
33
|
const aFam1 = toNumber(input.aFam1);
|
|
34
34
|
const aFam2 = toNumber(input.aFam2);
|
|
35
|
+
const primaCasaMutuoEnabled = toNumber(input.primaCasaMutuoEnabled) > 0;
|
|
36
|
+
const primaCasaMutuoImporto = Math.max(0, toNumber(input.primaCasaMutuoImporto));
|
|
37
|
+
const primaCasaAssegnataA = String(input.primaCasaAssegnataA || '');
|
|
38
|
+
const rawMutuoPerc1 = input.primaCasaMutuoPerc1 === undefined ? 50 : input.primaCasaMutuoPerc1;
|
|
39
|
+
const primaCasaMutuoPerc1 = clamp(toNumber(rawMutuoPerc1), 0, 100);
|
|
40
|
+
const primaCasaMutuoPerc2 = 100 - primaCasaMutuoPerc1;
|
|
35
41
|
|
|
36
42
|
const match12 = Math.min(aPag1, aPerc2);
|
|
37
43
|
const match21 = Math.min(aPag2, aPerc1);
|
|
@@ -85,6 +91,35 @@ function calculateModel(input) {
|
|
|
85
91
|
assegnoDa2a1 = nonCollocatario === 2 ? contributoIndiretto : 0;
|
|
86
92
|
}
|
|
87
93
|
|
|
94
|
+
const assegnoBaseDa1a2 = assegnoDa1a2;
|
|
95
|
+
const assegnoBaseDa2a1 = assegnoDa2a1;
|
|
96
|
+
|
|
97
|
+
const assigned = primaCasaAssegnataA === '1' || primaCasaAssegnataA === '2' ? primaCasaAssegnataA : '';
|
|
98
|
+
const primaCasaConsidered = primaCasaMutuoEnabled
|
|
99
|
+
&& primaCasaMutuoImporto > 0
|
|
100
|
+
&& assigned !== ''
|
|
101
|
+
&& Number(assigned) === collocatario;
|
|
102
|
+
let primaCasaTransfer1to2 = 0;
|
|
103
|
+
let primaCasaTransfer2to1 = 0;
|
|
104
|
+
if (primaCasaConsidered) {
|
|
105
|
+
const quotaMutuo1 = primaCasaMutuoImporto * (primaCasaMutuoPerc1 / 100);
|
|
106
|
+
const quotaMutuo2 = primaCasaMutuoImporto - quotaMutuo1;
|
|
107
|
+
if (assigned === '1') {
|
|
108
|
+
primaCasaTransfer2to1 = Math.max(0, quotaMutuo2);
|
|
109
|
+
} else if (assigned === '2') {
|
|
110
|
+
primaCasaTransfer1to2 = Math.max(0, quotaMutuo1);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
assegnoDa1a2 = Math.max(0, assegnoDa1a2 - primaCasaTransfer1to2);
|
|
115
|
+
assegnoDa2a1 = Math.max(0, assegnoDa2a1 - primaCasaTransfer2to1);
|
|
116
|
+
|
|
117
|
+
const compensativeBenefits = [];
|
|
118
|
+
if (aFam1 > 0.005) compensativeBenefits.push({ type: 'family', to: 1, amount: aFam1 });
|
|
119
|
+
if (aFam2 > 0.005) compensativeBenefits.push({ type: 'family', to: 2, amount: aFam2 });
|
|
120
|
+
if (primaCasaTransfer1to2 > 0.005) compensativeBenefits.push({ type: 'primary-home-mortgage', from: 1, to: 2, amount: primaCasaTransfer1to2 });
|
|
121
|
+
if (primaCasaTransfer2to1 > 0.005) compensativeBenefits.push({ type: 'primary-home-mortgage', from: 2, to: 1, amount: primaCasaTransfer2to1 });
|
|
122
|
+
|
|
88
123
|
const post1 = disp1 - assegnoDa1a2 + assegnoDa2a1;
|
|
89
124
|
const post2 = disp2 - assegnoDa2a1 + assegnoDa1a2;
|
|
90
125
|
|
|
@@ -99,6 +134,12 @@ function calculateModel(input) {
|
|
|
99
134
|
fabbisognoFigli, quotaTeorica1, quotaTeorica2,
|
|
100
135
|
quotaDiretta1, quotaDiretta2,
|
|
101
136
|
saldo1, saldo2,
|
|
137
|
+
assegnoBaseDa1a2, assegnoBaseDa2a1,
|
|
138
|
+
primaCasaMutuoEnabled, primaCasaMutuoImporto,
|
|
139
|
+
primaCasaAssegnataA: assigned,
|
|
140
|
+
primaCasaMutuoPerc1, primaCasaMutuoPerc2,
|
|
141
|
+
primaCasaConsidered, primaCasaTransfer1to2, primaCasaTransfer2to1,
|
|
142
|
+
compensativeBenefits,
|
|
102
143
|
assegnoDa1a2, assegnoDa2a1,
|
|
103
144
|
post1, post2
|
|
104
145
|
};
|