diff --git a/spec/pab/pab.spec.ts b/spec/pab/pab.spec.ts index 280fe0d9e59e5534d6c2b7b9021bd60359ccb394..6c2230772c37ad0500de607eddbda82809537524 100644 --- a/spec/pab/pab.spec.ts +++ b/spec/pab/pab.spec.ts @@ -195,7 +195,7 @@ describe("Class Pab: ", () => { ) ); pab.calculatedParam = pab.prms.Z1; - expect(pab.CalcSerie().resultElement.log.messages[0].code) + expect(pab.CalcSerie().globalLog.messages[0].code) .toBe(MessageCode.ERROR_CLOISON_AVAL_UN_OUVRAGE_REGULE); }); }); diff --git a/src/pab/pab.ts b/src/pab/pab.ts index 1692a7a2f632fa957457310d74e0878ae27c79ac..c749ae30a0f4f5b87555234ca75565c15c2d1d12 100644 --- a/src/pab/pab.ts +++ b/src/pab/pab.ts @@ -6,11 +6,11 @@ import { Props } from "../props"; import { Session } from "../session"; import { ParallelStructure } from "../structure/parallel_structure"; import { StructureTriangularTruncWeirFree } from "../structure/structure_triangular_trunc_weir"; +import { Message, MessageCode } from "../util/message"; import { Result } from "../util/result"; import { CloisonAval, ParallelStructureParams } from "./cloison_aval"; import { Cloisons } from "./cloisons"; import { PabParams } from "./pab_params"; -import { Message, MessageCode } from "../util/message"; export { PabParams }; @@ -93,8 +93,16 @@ export class Pab extends Nub { } } + public CalcSerie(rInit?: number, sDonnee?: any): Result { + if (!this.downWall.checkVanneLevante()) { + const emptyResult = new Result(undefined, this); + emptyResult.globalLog.insert(new Message(MessageCode.ERROR_CLOISON_AVAL_UN_OUVRAGE_REGULE)); + return emptyResult; + } + return super.CalcSerie(rInit, sDonnee); + } + /** - * * @param sVarCalc Calcul */ public Calc(sVarCalc: string, rInit?: number): Result { diff --git a/src/util/result.ts b/src/util/result.ts index f41e7b07ea4f09e6b20977f0f16c87149c3cfc4c..485e802f8931edc0256d81f9faa4920332263ed4 100644 --- a/src/util/result.ts +++ b/src/util/result.ts @@ -72,7 +72,17 @@ export class Result extends JalhydObject implements INamedIterableValues { * @return true si il y a au moins un message dans le log global ou dans les ResultElement */ public get hasLog(): boolean { - return (this.nbResultElements > 0 && this.log.messages.length > 0) || this.hasGlobalLog; + if (this.hasGlobalLog) { + return true; + } else { + // Test des journaux des résultats + for (const r of this._resultElements) { + if (r.hasLog) { + return true; + } + } + } + return false; } /** @@ -111,7 +121,7 @@ export class Result extends JalhydObject implements INamedIterableValues { } /** - * @return le résultat de calcul du 1er ResultElement + * @return le résultat de calcul du ResultElement le plus récent */ get vCalc(): number { return this.resultElement.vCalc; @@ -122,7 +132,7 @@ export class Result extends JalhydObject implements INamedIterableValues { } /** - * retourne le journal du 1er ResultElement + * retourne le journal du ResultElement le plus récent */ public get log() { // return this._globalLog; @@ -130,14 +140,14 @@ export class Result extends JalhydObject implements INamedIterableValues { } /** - * retourne le code du 1er ResultElement + * retourne le code du ResultElement le plus récent */ public get code(): MessageCode { return this.resultElement.code; } /** - * retourne les résultats complémentaires du 1er ResultElement + * retourne les résultats complémentaires du ResultElement le plus récent */ get extraResults() { return this.resultElement.extraResults; diff --git a/src/util/resultelement.ts b/src/util/resultelement.ts index 201542bfc74e031a22156e0ec3c5b3d8eab4fa53..a2bfcae1583048e9445dfef01fb6f3dcb4d746fc 100644 --- a/src/util/resultelement.ts +++ b/src/util/resultelement.ts @@ -65,6 +65,13 @@ export class ResultElement { return this.log.messages.length; } + /** + * Returns true if current log has at least one message + */ + public get hasLog() { + return this.messageCount > 0; + } + public get hasErrorMessages(): boolean { for (const m of this.log.messages) { if (m.code !== MessageCode.ERROR_OK && m.getSeverity() === MessageSeverity.ERROR) {