mantenimento-app 2.2.5 → 2.2.6
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 +7 -5
- package/backend/calculate-model.js +6 -5
- package/frontend/public/app.js +7 -5
- package/frontend/public/index.html +1 -1
- package/package.json +1 -1
package/app.js
CHANGED
|
@@ -3457,15 +3457,17 @@ const defaultExpenseItems = [
|
|
|
3457
3457
|
const housingUtilityNonColl = collocatario === 1 ? housingUtility2 : housingUtility1;
|
|
3458
3458
|
|
|
3459
3459
|
const baseDuplicazione = speseConvivenza > 0 ? (speseTot - speseConvivenza) : null;
|
|
3460
|
+
// OECD-modified equivalence logic suggests split-household extra burden is material but not full duplication.
|
|
3461
|
+
const HOUSING_UTILITY_ADJ_FACTOR = 0.35;
|
|
3460
3462
|
const separationAdjustmentHousingUtilities = baseDuplicazione !== null && baseDuplicazione <= 0.005
|
|
3461
|
-
? Math.max(0, housingUtilityNonColl)
|
|
3463
|
+
? Math.max(0, housingUtilityNonColl * HOUSING_UTILITY_ADJ_FACTOR)
|
|
3462
3464
|
: 0;
|
|
3463
|
-
const speseConvivenzaEffettive = speseConvivenza > 0
|
|
3464
|
-
|
|
3465
|
+
const speseConvivenzaEffettive = speseConvivenza > 0 ? speseConvivenza : null;
|
|
3466
|
+
const costoSeparazioneMensile = baseDuplicazione !== null
|
|
3467
|
+
? Math.max(0, baseDuplicazione + separationAdjustmentHousingUtilities)
|
|
3465
3468
|
: null;
|
|
3466
|
-
const costoSeparazioneMensile = speseConvivenzaEffettive !== null ? (speseTot - speseConvivenzaEffettive) : null;
|
|
3467
3469
|
const nettoInsiemeCombinato = speseConvivenzaEffettive !== null ? (r1 + r2 - speseConvivenzaEffettive) : null;
|
|
3468
|
-
const nettoSeparatoTotale = post1 + post2;
|
|
3470
|
+
const nettoSeparatoTotale = (post1 + post2) - separationAdjustmentHousingUtilities;
|
|
3469
3471
|
const perditaMensile = nettoInsiemeCombinato !== null ? nettoInsiemeCombinato - nettoSeparatoTotale : null;
|
|
3470
3472
|
const perditaAnnua = perditaMensile !== null ? perditaMensile * 12 : null;
|
|
3471
3473
|
const totReddito = Math.max(0.001, r1 + r2);
|
|
@@ -132,15 +132,16 @@ function calculateModel(input) {
|
|
|
132
132
|
const housingUtility2 = c2Spese.reduce((acc, n, idx) => acc + (housingIdx.has(idx) ? toNumber(n) : 0), 0) + quotaMutuoSpese2;
|
|
133
133
|
const housingUtilityNonColl = collocatario === 1 ? housingUtility2 : housingUtility1;
|
|
134
134
|
const baseDuplicazione = speseConvivenza > 0 ? (speseTot - speseConvivenza) : null;
|
|
135
|
+
const HOUSING_UTILITY_ADJ_FACTOR = 0.35;
|
|
135
136
|
const separationAdjustmentHousingUtilities = baseDuplicazione !== null && baseDuplicazione <= 0.005
|
|
136
|
-
? Math.max(0, housingUtilityNonColl)
|
|
137
|
+
? Math.max(0, housingUtilityNonColl * HOUSING_UTILITY_ADJ_FACTOR)
|
|
137
138
|
: 0;
|
|
138
|
-
const speseConvivenzaEffettive = speseConvivenza > 0
|
|
139
|
-
|
|
139
|
+
const speseConvivenzaEffettive = speseConvivenza > 0 ? speseConvivenza : null;
|
|
140
|
+
const costoSeparazioneMensile = baseDuplicazione !== null
|
|
141
|
+
? Math.max(0, baseDuplicazione + separationAdjustmentHousingUtilities)
|
|
140
142
|
: null;
|
|
141
|
-
const costoSeparazioneMensile = speseConvivenzaEffettive !== null ? (speseTot - speseConvivenzaEffettive) : null;
|
|
142
143
|
const nettoInsiemeCombinato = speseConvivenzaEffettive !== null ? (r1 + r2 - speseConvivenzaEffettive) : null;
|
|
143
|
-
const nettoSeparatoTotale = post1 + post2;
|
|
144
|
+
const nettoSeparatoTotale = (post1 + post2) - separationAdjustmentHousingUtilities;
|
|
144
145
|
const perditaMensile = nettoInsiemeCombinato !== null ? nettoInsiemeCombinato - nettoSeparatoTotale : null;
|
|
145
146
|
const perditaAnnua = perditaMensile !== null ? perditaMensile * 12 : null;
|
|
146
147
|
const totReddito = Math.max(0.001, r1 + r2);
|
package/frontend/public/app.js
CHANGED
|
@@ -3457,15 +3457,17 @@ const defaultExpenseItems = [
|
|
|
3457
3457
|
const housingUtilityNonColl = collocatario === 1 ? housingUtility2 : housingUtility1;
|
|
3458
3458
|
|
|
3459
3459
|
const baseDuplicazione = speseConvivenza > 0 ? (speseTot - speseConvivenza) : null;
|
|
3460
|
+
// OECD-modified equivalence logic suggests split-household extra burden is material but not full duplication.
|
|
3461
|
+
const HOUSING_UTILITY_ADJ_FACTOR = 0.35;
|
|
3460
3462
|
const separationAdjustmentHousingUtilities = baseDuplicazione !== null && baseDuplicazione <= 0.005
|
|
3461
|
-
? Math.max(0, housingUtilityNonColl)
|
|
3463
|
+
? Math.max(0, housingUtilityNonColl * HOUSING_UTILITY_ADJ_FACTOR)
|
|
3462
3464
|
: 0;
|
|
3463
|
-
const speseConvivenzaEffettive = speseConvivenza > 0
|
|
3464
|
-
|
|
3465
|
+
const speseConvivenzaEffettive = speseConvivenza > 0 ? speseConvivenza : null;
|
|
3466
|
+
const costoSeparazioneMensile = baseDuplicazione !== null
|
|
3467
|
+
? Math.max(0, baseDuplicazione + separationAdjustmentHousingUtilities)
|
|
3465
3468
|
: null;
|
|
3466
|
-
const costoSeparazioneMensile = speseConvivenzaEffettive !== null ? (speseTot - speseConvivenzaEffettive) : null;
|
|
3467
3469
|
const nettoInsiemeCombinato = speseConvivenzaEffettive !== null ? (r1 + r2 - speseConvivenzaEffettive) : null;
|
|
3468
|
-
const nettoSeparatoTotale = post1 + post2;
|
|
3470
|
+
const nettoSeparatoTotale = (post1 + post2) - separationAdjustmentHousingUtilities;
|
|
3469
3471
|
const perditaMensile = nettoInsiemeCombinato !== null ? nettoInsiemeCombinato - nettoSeparatoTotale : null;
|
|
3470
3472
|
const perditaAnnua = perditaMensile !== null ? perditaMensile * 12 : null;
|
|
3471
3473
|
const totReddito = Math.max(0.001, r1 + r2);
|