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.
@@ -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
  };