UNPKG

@open3cl/engine

Version:

Open Source 3CL-DPE engine

55 lines (49 loc) 1.9 kB
import { requestInputID, tv } from './utils.js'; /** * Calcul ou récupération des paramètres scop ou cop * @param di {Donnee_intermediaire} * @param de {Donnee_entree} * @param du {Object} * @param zc_id {string} * @param ed_id {string|null} * @param type {'ecs'|'ch'} */ export function scopOrCop(di, de, du, zc_id, ed_id, type) { /** * Si la méthode de saisie n'est pas "Valeur forfaitaire" mais "caractéristiques saisies" * Documentation 3CL : "Pour les installations récentes ou recommandées, les caractéristiques réelles présentées sur les bases * de données professionnelles peuvent être utilisées." * * 6 - caractéristiques saisies à partir de la plaque signalétique ou d'une documentation technique du système thermodynamique : scop/cop/eer */ if (de.enum_methode_saisie_carac_sys_id === '6') { di.rg = di.scop || di.cop; di.rg_dep = di.scop || di.cop; } else { tv_scop(di, de, du, zc_id, ed_id, type); } } function tv_scop(di, de, du, zc_id, ed_id, type) { const matcher = { enum_zone_climatique_id: zc_id }; matcher[`enum_type_generateur_${type}_id`] = requestInputID(de, du, `type_generateur_${type}`); if (ed_id) matcher.enum_type_emission_distribution_id = ed_id; const row = tv('scop', matcher, de); if (row) { const scop = row.scop_ou_cop; di[scop] = Number(row.scop); if (de.tv_scop_id && de.tv_scop_id !== Number(row.tv_scop_id)) { console.error(` Le paramètre ${scop} utilisé par le DPE est erroné. Utilisation de tv_scop_id = ${de.tv_scop_id} alors que devrait être utilisé tv_scop_id = ${row.tv_scop_id} (utilisé dans la suite du calcul) `); } de.tv_scop_id = Number(row.tv_scop_id); // for Ich di.rg = di[scop]; di.rg_dep = di[scop]; } else { console.error('!! pas de valeur forfaitaire trouvée pour scop !!'); } }