@open3cl/engine 1.2.0 → 1.2.1

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.
@@ -36,7 +36,7 @@ export class ProductionENR {
36
36
  conso_elec_ac_autre_usage: 0
37
37
  };
38
38
 
39
- if (productionElecEnr && productionElecEnr.donnee_entree.presence_production_pv === 1) {
39
+ if (productionElecEnr && productionElecEnr.donnee_entree?.presence_production_pv === 1) {
40
40
  // Calcul de l'électricité auto-consommée pour chaque enveloppe
41
41
  this.calculateConsoElecAc(productionElectricite, productionElecEnr, conso, zc_id, th, Sh);
42
42
 
package/3.2.1_mur.js CHANGED
@@ -320,8 +320,8 @@ function checkDoublageWithMinUmur0(type_doublage, di, de, umur0_avant, umur_avan
320
320
  }
321
321
 
322
322
  if (
323
- umur0_avant.toFixed(3) === umur0Doublage.toFixed(3) ||
324
- umur_avant.toFixed(3) === umur0Doublage.toFixed(3)
323
+ umur0_avant?.toFixed(3) === umur0Doublage?.toFixed(3) ||
324
+ umur_avant?.toFixed(3) === umur0Doublage?.toFixed(3)
325
325
  ) {
326
326
  console.error(`
327
327
  Le calcul Umur0 pour le mur ${de.description} utilise Umur0 minoré à 2.5 pour l'application du doublage alors qu'il est de ${di.umur0}.
@@ -138,7 +138,7 @@ export default function calc_pb(pb, zc, pc_id, effetJoule, pb_list) {
138
138
  const de = pb.donnee_entree;
139
139
  const du = {};
140
140
  const di = {};
141
- di.upb0 = pb.donnee_intermediaire.upb0;
141
+ di.upb0 = pb.donnee_intermediaire?.upb0;
142
142
 
143
143
  b(di, de, du, zc);
144
144
 
@@ -96,7 +96,7 @@ export default function calc_ph(ph, zc, pc_id, effetJoule) {
96
96
  const de = ph.donnee_entree;
97
97
  const du = {};
98
98
  const di = {};
99
- di.uph0 = ph.donnee_intermediaire.uph0;
99
+ di.uph0 = ph.donnee_intermediaire?.uph0;
100
100
 
101
101
  b(di, de, du, zc);
102
102
 
package/3_deperdition.js CHANGED
@@ -106,8 +106,8 @@ function verifyMursEquality(calculatedMurs, declaredMurs) {
106
106
  const uMurForDeclaredMurs = declaredMurs.map(
107
107
  (declaredMur) =>
108
108
  declaredMur.donnee_entree.surface_paroi_opaque *
109
- declaredMur.donnee_intermediaire.umur *
110
- declaredMur.donnee_intermediaire.b
109
+ declaredMur.donnee_intermediaire?.umur *
110
+ declaredMur.donnee_intermediaire?.b
111
111
  );
112
112
 
113
113
  return (
@@ -124,6 +124,15 @@ function verifyMursEquality(calculatedMurs, declaredMurs) {
124
124
  * @return {number}
125
125
  */
126
126
  function totalDeperditionPontThermique(dpe, calculatedPontsThermiques, declaredPontsThermiques) {
127
+ const calculatedDeperditionPT = calculatedPontsThermiques.reduce(
128
+ (acc, pt) => acc + Upt(pt) || 0,
129
+ 0
130
+ );
131
+
132
+ if (!dpe.logement.sortie?.deperdition?.deperdition_pont_thermique) {
133
+ return calculatedDeperditionPT;
134
+ }
135
+
127
136
  // Total déclaré des déperditions des ponts thermiques
128
137
  const declaredDeperditionPT = dpe.logement.sortie.deperdition.deperdition_pont_thermique;
129
138
 
@@ -136,11 +145,6 @@ function totalDeperditionPontThermique(dpe, calculatedPontsThermiques, declaredP
136
145
  declaredPontsThermiques
137
146
  );
138
147
 
139
- const calculatedDeperditionPT = calculatedPontsThermiques.reduce(
140
- (acc, pt) => acc + Upt(pt) || 0,
141
- 0
142
- );
143
-
144
148
  /**
145
149
  * Si individuellement les ponts thermiques déclarés et calculés sont identiques, la déperdition totale devrait l'être également
146
150
  * Pour certains DPE, il réside une différence que l'on prendra en compte pour la suite des calculs.
@@ -164,7 +168,7 @@ function totalDeperditionPontThermique(dpe, calculatedPontsThermiques, declaredP
164
168
  */
165
169
  function totalDeperditionMurs(dpe, calculatedMurs, declaredMurs) {
166
170
  // Total déclaré des déperditions des murs
167
- const declaredDeperditionMurs = dpe.logement.sortie.deperdition.deperdition_mur;
171
+ const declaredDeperditionMurs = dpe.logement.sortie?.deperdition?.deperdition_mur;
168
172
 
169
173
  /**
170
174
  * Comparaison des valeurs intermédiaires calculées et déclarées pour chacun des murs
@@ -95,7 +95,7 @@ function getSsd(bv, zc, mois, coeff) {
95
95
  const orientation = enums.orientation[de.enum_orientation_id];
96
96
  const inclinaison = enums.inclinaison_vitrage[de.enum_inclinaison_vitrage_id ?? 3];
97
97
  let oi = `${orientation} ${inclinaison}`;
98
- if (inclinaison === 'horizontal') oi = 'horizontal';
98
+ if (orientation === 'horizontal' || inclinaison === 'horizontal') oi = 'horizontal';
99
99
  const c1j = c1[zc][mois][oi];
100
100
 
101
101
  const fe1 = di.fe1 ?? 1;
package/ficheTechnique.js CHANGED
@@ -16,7 +16,7 @@ export default function getFicheTechnique(
16
16
  field = 'description'
17
17
  ) {
18
18
  /** @type {FicheTechniqueItem[]} */
19
- let fichesTechniques = dpe.fiche_technique_collection.fiche_technique;
19
+ let fichesTechniques = dpe.fiche_technique_collection?.fiche_technique || [];
20
20
 
21
21
  if (!Array.isArray(fichesTechniques)) {
22
22
  fichesTechniques = [fichesTechniques];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open3cl/engine",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Open Source 3CL-DPE engine",
5
5
  "main": "index.js",
6
6
  "directories": {