mantenimento-app 2.1.2 → 2.1.4
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 +593 -110
- package/backend/calculate-model.js +46 -2
- package/frontend/public/app.js +593 -110
- package/frontend/public/index.html +62 -1
- package/frontend/public/styles.css +561 -7
- package/package.json +1 -1
|
@@ -32,6 +32,14 @@ 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;
|
|
41
|
+
const quotaMutuoSpese1 = primaCasaMutuoEnabled ? (primaCasaMutuoImporto * (primaCasaMutuoPerc1 / 100)) : 0;
|
|
42
|
+
const quotaMutuoSpese2 = primaCasaMutuoEnabled ? (primaCasaMutuoImporto - quotaMutuoSpese1) : 0;
|
|
35
43
|
|
|
36
44
|
const match12 = Math.min(aPag1, aPerc2);
|
|
37
45
|
const match21 = Math.min(aPag2, aPerc1);
|
|
@@ -40,8 +48,10 @@ function calculateModel(input) {
|
|
|
40
48
|
|
|
41
49
|
const c1Spese = Array.isArray(input.c1Spese) ? input.c1Spese : [];
|
|
42
50
|
const c2Spese = Array.isArray(input.c2Spese) ? input.c2Spese : [];
|
|
43
|
-
const
|
|
44
|
-
const
|
|
51
|
+
const speseBase1 = c1Spese.reduce((acc, n) => acc + toNumber(n), 0);
|
|
52
|
+
const speseBase2 = c2Spese.reduce((acc, n) => acc + toNumber(n), 0);
|
|
53
|
+
const spese1 = speseBase1 + quotaMutuoSpese1;
|
|
54
|
+
const spese2 = speseBase2 + quotaMutuoSpese2;
|
|
45
55
|
const speseTot = spese1 + spese2;
|
|
46
56
|
|
|
47
57
|
const disp1 = r1 + aPerc1 + aFam1 - aPag1 - spese1;
|
|
@@ -85,6 +95,33 @@ function calculateModel(input) {
|
|
|
85
95
|
assegnoDa2a1 = nonCollocatario === 2 ? contributoIndiretto : 0;
|
|
86
96
|
}
|
|
87
97
|
|
|
98
|
+
const assegnoBaseDa1a2 = assegnoDa1a2;
|
|
99
|
+
const assegnoBaseDa2a1 = assegnoDa2a1;
|
|
100
|
+
|
|
101
|
+
const assigned = primaCasaAssegnataA === '1' || primaCasaAssegnataA === '2' ? primaCasaAssegnataA : '';
|
|
102
|
+
const primaCasaConsidered = primaCasaMutuoEnabled
|
|
103
|
+
&& primaCasaMutuoImporto > 0
|
|
104
|
+
&& assigned !== ''
|
|
105
|
+
&& Number(assigned) === collocatario;
|
|
106
|
+
let primaCasaTransfer1to2 = 0;
|
|
107
|
+
let primaCasaTransfer2to1 = 0;
|
|
108
|
+
if (primaCasaConsidered) {
|
|
109
|
+
if (assigned === '1') {
|
|
110
|
+
primaCasaTransfer2to1 = Math.max(0, quotaMutuoSpese2);
|
|
111
|
+
} else if (assigned === '2') {
|
|
112
|
+
primaCasaTransfer1to2 = Math.max(0, quotaMutuoSpese1);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
assegnoDa1a2 = Math.max(0, assegnoDa1a2 - primaCasaTransfer1to2);
|
|
117
|
+
assegnoDa2a1 = Math.max(0, assegnoDa2a1 - primaCasaTransfer2to1);
|
|
118
|
+
|
|
119
|
+
const compensativeBenefits = [];
|
|
120
|
+
if (aFam1 > 0.005) compensativeBenefits.push({ type: 'family', to: 1, amount: aFam1 });
|
|
121
|
+
if (aFam2 > 0.005) compensativeBenefits.push({ type: 'family', to: 2, amount: aFam2 });
|
|
122
|
+
if (primaCasaTransfer1to2 > 0.005) compensativeBenefits.push({ type: 'primary-home-mortgage', from: 1, to: 2, amount: primaCasaTransfer1to2 });
|
|
123
|
+
if (primaCasaTransfer2to1 > 0.005) compensativeBenefits.push({ type: 'primary-home-mortgage', from: 2, to: 1, amount: primaCasaTransfer2to1 });
|
|
124
|
+
|
|
88
125
|
const post1 = disp1 - assegnoDa1a2 + assegnoDa2a1;
|
|
89
126
|
const post2 = disp2 - assegnoDa2a1 + assegnoDa1a2;
|
|
90
127
|
|
|
@@ -92,6 +129,7 @@ function calculateModel(input) {
|
|
|
92
129
|
r1, r2, r1Raw, r2Raw, incomeMode, figli, perm1, perm2,
|
|
93
130
|
aPerc1, aPag1, aPerc2, aPag2, aFam1, aFam2,
|
|
94
131
|
match12, match21, esternoPag1, esternoPag2,
|
|
132
|
+
speseBase1, speseBase2, quotaMutuoSpese1, quotaMutuoSpese2,
|
|
95
133
|
spese1, spese2, speseTot,
|
|
96
134
|
disp1, disp2, peso1, peso2,
|
|
97
135
|
mode, simplePerc,
|
|
@@ -99,6 +137,12 @@ function calculateModel(input) {
|
|
|
99
137
|
fabbisognoFigli, quotaTeorica1, quotaTeorica2,
|
|
100
138
|
quotaDiretta1, quotaDiretta2,
|
|
101
139
|
saldo1, saldo2,
|
|
140
|
+
assegnoBaseDa1a2, assegnoBaseDa2a1,
|
|
141
|
+
primaCasaMutuoEnabled, primaCasaMutuoImporto,
|
|
142
|
+
primaCasaAssegnataA: assigned,
|
|
143
|
+
primaCasaMutuoPerc1, primaCasaMutuoPerc2,
|
|
144
|
+
primaCasaConsidered, primaCasaTransfer1to2, primaCasaTransfer2to1,
|
|
145
|
+
compensativeBenefits,
|
|
102
146
|
assegnoDa1a2, assegnoDa2a1,
|
|
103
147
|
post1, post2
|
|
104
148
|
};
|