From 0ef436f3d20d112bc46de51a781b3f03c5c3b67d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Wed, 13 Apr 2022 13:26:33 +0200
Subject: [PATCH] fix: empty field 'number of falls" of 'generate fish ladder'
 dialog when 'enable empty fields on new calculator' option is set

refs #516
---
 .../dialog-generate-pab.component.ts                | 13 +++++++------
 .../generic-calculator/calculator.component.ts      | 12 +++++++++---
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts b/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts
index 9634a342b..65454306a 100644
--- a/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts
+++ b/src/app/components/dialog-generate-pab/dialog-generate-pab.component.ts
@@ -29,21 +29,22 @@ export class DialogGeneratePABComponent {
         @Inject(MAT_DIALOG_DATA) public data: any
     ) {
         const nDigits = this.appSetupService.displayPrecision;
-        this.coteAmont = round(data.coteAmont, nDigits);
-        this.debit = round(data.debit, nDigits);
+        this.coteAmont = data.coteAmont ? round(data.coteAmont, nDigits) : undefined;
+        this.debit = data.debit ? round(data.debit, nDigits) : undefined;
         this.chute = round(data.chute, nDigits);
+        this.nbBassins = data.nbBassins;
     }
 
     public generatePAB() {
         // calculate downstream elevation
-        const coteAval = this.coteAmont - (this.chute * this.nbBassins);
+        const coteAval = +this.coteAmont - (this.chute * +this.nbBassins);
         // create PAB
         this.dialogRef.close({
             generate: true,
-            debit: this.debit,
-            coteAmont: this.coteAmont,
+            debit: +this.debit,
+            coteAmont: +this.coteAmont,
             coteAval: coteAval,
-            nbBassins: this.nbBassins
+            nbBassins: +this.nbBassins
         });
     }
 
diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 2608ce76e..195796210 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -58,6 +58,7 @@ import { MatomoTracker } from "ngx-matomo";
 import { sprintf } from "sprintf-js";
 
 import * as XLSX from "xlsx";
+import { ServiceFactory } from "app/services/service-factory";
 
 @Component({
     selector: "hydrocalc",
@@ -731,13 +732,18 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
     public generatePAB() {
         // création du dialogue de génération d'une passe à bassin
         const cloisons = (this._formulaire.currentNub as Cloisons);
+        const chute = cloisons.prms.DH.V;
+        const debit = cloisons.prms.Q.V;
+        const zAmont = cloisons.prms.Z1.V;
+        const nbBassins = ServiceFactory.applicationSetupService.enableEmptyFieldsOnFormInit ? undefined : 6;
         const dialogRef = this.generatePABDialog.open(
           DialogGeneratePABComponent,
           {
             data: {
-                chute: cloisons.prms.DH.V,
-                debit: cloisons.prms.Q.V,
-                coteAmont: cloisons.prms.Z1.V
+                  chute: chute,
+                  debit: debit,
+                  coteAmont: zAmont,
+                  nbBassins: nbBassins
             },
             disableClose: false
           }
-- 
GitLab