Procházet zdrojové kódy

changes calculation

master
Daniel před 2 roky
rodič
revize
49d5548ebb
13 změnil soubory, kde provedl 77 přidání a 143 odebrání
  1. binární
      httpdocs/import/mpp_import_benchmark.xlsx
  2. binární
      httpdocs/import/mpp_import_benchmark_works.xlsx
  3. binární
      httpdocs/import/mpp_import_din.xlsx
  4. +18
    -18
      httpdocs/public/assets/js/mpp-tool.js
  5. +11
    -8
      httpdocs/public/assets/scss/components/_basic.scss
  6. +11
    -8
      httpdocs/public/assets/scss/styles.css
  7. +1
    -1
      httpdocs/public/assets/scss/styles.css.map
  8. +19
    -24
      httpdocs/src/Controller/UserController.php
  9. +12
    -9
      httpdocs/src/Service/CalculatorService.php
  10. +0
    -49
      httpdocs/templates/pages/catalogue.html.twig
  11. +0
    -16
      httpdocs/templates/pages/catalogue_finished.html.twig
  12. +3
    -8
      httpdocs/templates/pages/risk_analysis.html.twig
  13. +2
    -2
      httpdocs/templates/pages/start.html.twig

binární
httpdocs/import/mpp_import_benchmark.xlsx Zobrazit soubor


binární
httpdocs/import/mpp_import_benchmark_works.xlsx Zobrazit soubor


binární
httpdocs/import/mpp_import_din.xlsx Zobrazit soubor


+ 18
- 18
httpdocs/public/assets/js/mpp-tool.js Zobrazit soubor

@@ -132,10 +132,6 @@ function loadDinAssetData() {
method: "get",
data: { assetId: $("#asset").val() },
success: function (data) {
$("#cycle").attr({
"min" : data.cycleMin,
"max" : data.cycleMax
}).val('');

$('#benchmark')
.find('option')
@@ -148,18 +144,12 @@ function loadDinAssetData() {
$('#benchmark').append('<option value="' + i + '">' + data.benchmarkValues[i] + '</option>');
}

if (Object.keys(data.benchmarkValues).length < 1) {
if (Object.keys(data.benchmarkValues).length <= 0) {
$('#no-benchmark-data').show();
$('#benchmark-data').hide();
$('#no-calculation').css('display', 'block');
$('#calculate-first').hide();
$('#worksheet-no-calculation').show();
$('#benchmark').prop( "disabled", true );
} else {
$('#no-benchmark-data').hide();
$('#benchmark-data').show();
$('#calculate-first').css('display', 'block');
$('#no-calculation').hide();
$('#worksheet-no-calculation').hide();
$('#benchmark').prop( "disabled", false );
}
},
error: function (xhr, msg, three) {
@@ -180,10 +170,20 @@ function onCalculate() {
success: function (data) {
$('#resInspection').text(data['recCycleInspection']);
$('#resMaintenance').text(data['recCycleMaintenance']);
$('#resPercentage').text((parseFloat(data['costDiffCurRecPercentage']) * 100) + " %");
let costDiff = data['costDiffCurCycleRecCycle'];
let roundedCostDiff = parseFloat(costDiff).toFixed(2);
$('#resEuro').text(roundedCostDiff.replace(/\./g, ",") + " €");

let percentage = "-";
if (data['costDiffCurRecPercentage'] !== null) {
percentage = (parseFloat(data['costDiffCurRecPercentage']) * 100) + " %";
}
$('#resPercentage').text(percentage);

let costDiff = "-";
if (data['costDiffCurCycleRecCycle'] !== null) {
costDiff = parseFloat(data['costDiffCurCycleRecCycle']).toFixed(2);
costDiff = costDiff.replace(/\./g, ",") + " €";
}
$('#resEuro').text(costDiff);

$("#result-box").addClass("result-existing");
$('html, body').animate({
scrollTop: $('#result-box').offset().top - 200
@@ -221,7 +221,7 @@ function onCreateWorksheet() {
}
});

$("#worksheet-no-calculation").on("click", function (e) {
$("#create-worksheet").on("click", function (e) {
e.preventDefault();
let result = window.confirm("Sie nutzen hiermit einen Ihrer Durchgänge.");
if (result) {


+ 11
- 8
httpdocs/public/assets/scss/components/_basic.scss Zobrazit soubor

@@ -613,6 +613,9 @@ textarea:-ms-input-placeholder {

.result-existing {
display: none;
p {
padding: 1.25rem;
}
}

.result-not-existing {
@@ -631,12 +634,11 @@ textarea:-ms-input-placeholder {
}

ol.worksheets {
padding-left: 26px;

li {
padding-bottom: 10px;
list-style: decimal-leading-zero;

strong {
padding-right: 10px;
}
}

a {
@@ -759,7 +761,6 @@ ol.worksheets {
}
}
}
#no-calculation,
#calculate-first {
width: 100%;
padding-bottom: 20px;
@@ -767,8 +768,10 @@ ol.worksheets {

#no-benchmark-data,
#benchmark-data,
#no-calculation,
#calculate-first,
#worksheet-no-calculation {
#calculate-first {
display: block;
}

#create-worksheet {
display: none;
}

+ 11
- 8
httpdocs/public/assets/scss/styles.css Zobrazit soubor

@@ -762,6 +762,9 @@ textarea:-ms-input-placeholder {
.result-box .result-existing {
display: none;
}
.result-box .result-existing p {
padding: 1.25rem;
}
.result-box .result-not-existing {
display: block;
}
@@ -772,12 +775,11 @@ textarea:-ms-input-placeholder {
display: none;
}

ol.worksheets {
padding-left: 26px;
}
ol.worksheets li {
padding-bottom: 10px;
list-style: decimal-leading-zero;
}
ol.worksheets li strong {
padding-right: 10px;
}
ol.worksheets a {
text-decoration: none;
@@ -879,7 +881,6 @@ ol.worksheets a:hover {
margin: 0 8px;
}

#no-calculation,
#calculate-first {
width: 100%;
padding-bottom: 20px;
@@ -887,9 +888,11 @@ ol.worksheets a:hover {

#no-benchmark-data,
#benchmark-data,
#no-calculation,
#calculate-first,
#worksheet-no-calculation {
#calculate-first {
display: block;
}

#create-worksheet {
display: none;
}



+ 1
- 1
httpdocs/public/assets/scss/styles.css.map Zobrazit soubor

@@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["components/_reset.scss","_variables.scss","components/_basic.scss","_mixins.scss","components/_header.scss","components/_footer.scss","components/_listing.scss"],"names":[],"mappings":"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F;EACE;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;;AACA;EAHF;IAII;IACA;;;AAKF;EACE;;AAEA;EACE;EACA;EACA;;AACA;EAJF;IAKI;;;AAOV;EACE;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OD3cY;EC4cZ;;AAEA;EACE;;AAGF;EACE,YD/cY;;ACkdd;EACE;;;AAIJ;AAEA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAGF;EACE;;AACA;EAFF;IAGI;;;AAEF;EALF;IAMI;;;AAEF;EARF;IASI;;;AAGF;EACE;;AACA;EAFF;IAGI;;;AAEF;EALF;IAMI;;;AAEF;EARF;IASI;;;AAIJ;EACE;;AACA;EAFF;IAGI;;;AAYN;EACE;;AAEA;EACE;;;AAKN;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EARF;IASI;;;AAEF;EACE;;AACA;EAFF;IAGI;;;AAKN;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAIA;EACE;;AAGF;EACE;;;AAKN;EACE;;AAEA;EACE;EACA;;AAIF;EACE;;AAEA;EACE;EACA;;;AAMJ;EACE;EACA;EACA;;AACA;EAJF;IAKI;;;AAEF;EAPF;IAQI;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;EACA;;AAKF;EACE;;AAKN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EAGE;;AAEF;EACE;;;AAKR;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;;AEpwBF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,YHPY;;AGQZ;EACE;EACA;EACA;EACA;;AACA;EALF;IAMI;IACA;;;AAEF;EATF;IAUI;IACA;;;AAEF;EAbF;IAcI;;;AAEF;EACE;;AACA;EAFF;IAGI;;;AAEF;EACE;EACA;EACA;EACA;EACA;;AACA;EANF;IAOI;IACA;;;AAEF;EACE;EACA;EACA;;AACA;EAJF;IAKI;IACA;;;AAGJ;EACE;;AAKJ;EADF;IAEI;;;AAIN;EACE;;AACA;EAFF;IAGI;;;AAGJ;EACE;;AClEJ;EACE;EACA,OJFY;;AIGZ;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AACA;EACE;;AAEF;EACE;;;AChBN;EACE;;;AAOA;EACE,YLIW;EKHX;EACA;;AACA;EACE,YLDS;;AKGX;EACE;;AAGJ;EACE;EACA;EACA;EACA;;AACA;EALF;IAMI;;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;;AACA;EACE;;AACA;EAFF;IAGI;IACA;IACA;;;AAGJ;EACE;;AACA;EAFF;IAGI;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOZ;EACE;;AAKF;EACE","file":"styles.css"}
{"version":3,"sourceRoot":"","sources":["components/_reset.scss","_variables.scss","components/_basic.scss","_mixins.scss","components/_header.scss","components/_footer.scss","components/_listing.scss"],"names":[],"mappings":"AAAA;AACA;EACE;EACA;EACA;EACA;EACA,mWAKmE;;AAGrE;AACA;EACE;EACA;EACA;EACA;EACA,+UAK+D;;AAIjE;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;;;AAIF;AAEA;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;AAEA;AAAA;AAAA;AAAA;EAIE;;;AAGF;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAyBE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;;AAGF;AAAA;EAEE;;;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAIJ;AAAA;EAEE;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;EACE,YCzKY;ED0KZ;EACA;;AACA;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AE3MF;EACE;;AACA;EAFF;IAGI;;;AAEF;EALF;IAMI;;;;AAIJ;AAAA;EAEE,ODTmB;ECUnB;;;AAGF;AAAA;EAEE,ODfmB;ECgBnB;;;AAGF;AAAA;EAEE,ODrBmB;ECsBnB;;;AAGF;AAAA;EAEE,OD3BmB;EC4BnB;;;AAIA;EACE;EACA;EACA;EACA;EACA;;AACA;EANF;IAOI;;;AAEF;EATF;IAUI;;;AAIJ;EACE;EACA;EACA;;AACA;EAJF;IAKI;IACA;;;AAGF;EACE;;AACA;EAFF;IAGI;;;AAKN;EACE;EACA;EACA;;AACA;EAJF;IAKI;IACA;;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AACA;EAJF;IAKI;IACA;;;AAIJ;EACE;;AAKE;EACE;EACA;EACA;EACA;;AAKN;EACE;;AAEA;EACE,ODjHU;;ACmHV;EACE;;AAGF;EACE;;AAKN;EACE;;AAIA;EACE;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;;AACA;EALF;IAMI;IACA;;;AAMF;EAFF;IAGI;;;;AAOV;EACE;EACA,YD/Jc;ECgKd,ODpKY;ECqKZ;EACA;EACA;EACA;EACA;EACA;EACA;EC1KA;;AD6KA;EACE,YDzKW;EC0KX,cD1KW;EC2KX,ODjLU;;ACoLZ;EACE;EACA,YDrLU;ECsLV,cDtLU;ECuLV;;AAGF;EACE,YD5LU;EC6LV,ODzLY;;AC4Ld;EACE,cDnLc;ECoLd,YDpLc;ECqLd,ODnMU;;ACqMV;EACE,YDtMQ;ECuMR,cDzLY;EC0LZ,OD1LY;;;ACgMhB;EACE;EACA;EACA;;AAGE;EADF;IAEI;;;AAIJ;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AACA;EAFF;IAGI;;;AAIJ;EAXF;IAYI;;;AAEF;EAdF;IAeI;;;AAKF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EAPF;IAQI;;;AAEF;EAVF;IAWI;;;AAKN;EACE;;AAEA;EACE;EACA;;AACA;EAHF;IAII;;;AAIJ;EACE;EACA;EACA;EACA;;AACA;EALF;IAMI;;;AAKF;EACE;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AACA;EALF;IAMI;;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;;AACA;EAJF;IAKI;IACA;;EACA;IACE;IACA;;EAEF;IACE;IACA;IACA;IACA;;EAEA;IACE;;EAGJ;IACE;IACA;;;AAKN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;;AACA;EAHF;IAII;IACA;;;AAKF;EACE;;AAEA;EACE;EACA;EACA;;AACA;EAJF;IAKI;;;AAOV;EACE;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OD3cY;EC4cZ;;AAEA;EACE;;AAGF;EACE,YD/cY;;ACkdd;EACE;;;AAIJ;AAEA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAGF;EACE;;AACA;EAFF;IAGI;;;AAEF;EALF;IAMI;;;AAEF;EARF;IASI;;;AAGF;EACE;;AACA;EAFF;IAGI;;;AAEF;EALF;IAMI;;;AAEF;EARF;IASI;;;AAIJ;EACE;;AACA;EAFF;IAGI;;;AAYN;EACE;;AAEA;EACE;;;AAKN;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EARF;IASI;;;AAEF;EACE;;AACA;EAFF;IAGI;;;AAKN;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AACA;EACE;;AAIJ;EACE;;AAIA;EACE;;AAGF;EACE;;;AAMJ;EACE;;AACA;EACE;;AAIJ;EACE;;AAEA;EACE;EACA;;;AAMJ;EACE;EACA;EACA;;AACA;EAJF;IAKI;;;AAEF;EAPF;IAQI;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;EACA;;AAKF;EACE;;AAKN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EAGE;;AAEF;EACE;;;AAKR;EACE;EACA;;;AAGF;AAAA;AAAA;EAGE;;;AAGF;EACE;;;AEvwBF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,YHPY;;AGQZ;EACE;EACA;EACA;EACA;;AACA;EALF;IAMI;IACA;;;AAEF;EATF;IAUI;IACA;;;AAEF;EAbF;IAcI;;;AAEF;EACE;;AACA;EAFF;IAGI;;;AAEF;EACE;EACA;EACA;EACA;EACA;;AACA;EANF;IAOI;IACA;;;AAEF;EACE;EACA;EACA;;AACA;EAJF;IAKI;IACA;;;AAGJ;EACE;;AAKJ;EADF;IAEI;;;AAIN;EACE;;AACA;EAFF;IAGI;;;AAGJ;EACE;;AClEJ;EACE;EACA,OJFY;;AIGZ;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AACA;EACE;;AAEF;EACE;;;AChBN;EACE;;;AAOA;EACE,YLIW;EKHX;EACA;;AACA;EACE,YLDS;;AKGX;EACE;;AAGJ;EACE;EACA;EACA;EACA;;AACA;EALF;IAMI;;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;;AACA;EACE;;AACA;EAFF;IAGI;IACA;IACA;;;AAGJ;EACE;;AACA;EAFF;IAGI;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOZ;EACE;;AAKF;EACE","file":"styles.css"}

+ 19
- 24
httpdocs/src/Controller/UserController.php Zobrazit soubor

@@ -101,8 +101,6 @@ class UserController extends AbstractController
}

$res = [];
$res['cycleMin'] = $dinAsset->getCycleMonthsMin();
$res['cycleMax'] = $dinAsset->getCycleMonthsMax();
$res['benchmarkValues'] = $dinAsset->getBenchMarkSelectValues();
return $this->json($res);
}
@@ -113,8 +111,12 @@ class UserController extends AbstractController
public function calculateRisk(Request $request, CalculatorService $calculatorService)
{
$params = $request->request->all();
$benchMark = $this->getDoctrine()->getRepository(DinAssetBenchmark::class)->find($params['benchmark']);
$res = $calculatorService->calculateRisk($benchMark, $params);
$asset = $this->getDoctrine()->getRepository(DinAsset::class)->find($params['asset']);
$benchMark = null;
if (array_key_exists('benchmark', $params)) {
$benchMark = $this->getDoctrine()->getRepository(DinAssetBenchmark::class)->find($params['benchmark']);
}
$res = $calculatorService->calculateRisk($params, $asset, $benchMark);
return $this->json($res);
}

@@ -139,30 +141,23 @@ class UserController extends AbstractController
}
$assetTasks = $asset->getTasks();

$failureProbability = null;
$failureDamage = null;
$maintenanceAdvantage = null;
$inspectionAdvantage = null;
$cycle = null;
$asset = $this->getDoctrine()->getRepository(DinAsset::class)->find($params['asset']);
$benchMark = null;
$bandwidth = null;
$recCycleMaintenance = null;
$recCycleInspection = null;
$costDiffCurRecPercentage = null;
$costDiffCurCycleRecCycle = null;
if (array_key_exists('benchmark', $params)) {
$benchMark = $em->getRepository(DinAssetBenchmark::class)->find($params['benchmark']);
$calculation = $calculatorService->calculateRisk($benchMark, $params);
$failureProbability = Utils::$riskFailure[$params['failure']][0];
$failureDamage = Utils::$riskCosts[$params['costs']][0];
$maintenanceAdvantage = $params['maintenance'];
$inspectionAdvantage = $params['inspection'];
$cycle = $params['cycle'];
$benchMark = $this->getDoctrine()->getRepository(DinAssetBenchmark::class)->find($params['benchmark']);
$bandwidth = $benchMark->getBandwidth();
$recCycleMaintenance = $calculation['recCycleMaintenance'];
$recCycleInspection = $calculation['recCycleInspection'];
$costDiffCurRecPercentage = $calculation['costDiffCurRecPercentage'];
$costDiffCurCycleRecCycle = $calculation['costDiffCurCycleRecCycle'];
}
$calculation = $calculatorService->calculateRisk($params, $asset, $benchMark);
$failureProbability = Utils::$riskFailure[$params['failure']][0];
$failureDamage = Utils::$riskCosts[$params['costs']][0];
$maintenanceAdvantage = $params['maintenance'];
$inspectionAdvantage = $params['inspection'];
$cycle = $params['cycle'];
$recCycleMaintenance = $calculation['recCycleMaintenance'];
$recCycleInspection = $calculation['recCycleInspection'];
$costDiffCurRecPercentage = $calculation['costDiffCurRecPercentage'];
$costDiffCurCycleRecCycle = $calculation['costDiffCurCycleRecCycle'];

$em->getConnection()->beginTransaction();
try {


+ 12
- 9
httpdocs/src/Service/CalculatorService.php Zobrazit soubor

@@ -15,10 +15,8 @@ class CalculatorService
const KEY_COST_DIFF_CUR_REC_CYCLE = 'costDiffCurCycleRecCycle';
const KEY_COST_DIFF_CUR_REC_PERCENTAGE = 'costDiffCurRecPercentage';

public function calculateRisk(DinAssetBenchmark $benchmark, $params)
public function calculateRisk($params, DinAsset $asset, DinAssetBenchmark $benchmark = null)
{
/** @var DinAsset $asset */
$asset = $benchmark->getDinAsset();
$userCycle = $params['cycle'];

$pointsFailure = Utils::$riskFailure[$params['failure']][1];
@@ -36,8 +34,6 @@ class CalculatorService
$recCycleMaintenance = $asset->getCycleMonthsMin();
}
}
$costsCurrentPerYear = (12 / $userCycle) * $benchmark->getAverageCosts();
$costsRecPerYear = (12 / $recCycleMaintenance) * $benchmark->getAverageCosts();

$recCycleInspection = $asset->getCycleMonthsMax();
if ( ((int)$params['inspection']) === 1 ) {
@@ -46,13 +42,20 @@ class CalculatorService
$recCycleInspection = $asset->getCycleMonthsMin();
}
}
$costDiffCurCycleRecCycle = $costsCurrentPerYear - $costsRecPerYear;
$costDiffCurRecPercentage = 1 - ($userCycle / $recCycleMaintenance);

$costDiffCurCycleRecCycle = null;
$costDiffCurRecPercentage = null;
if ($benchmark !== null) {
$costsCurrentPerYear = (12 / $userCycle) * $benchmark->getAverageCosts();
$costsRecPerYear = (12 / $recCycleMaintenance) * $benchmark->getAverageCosts();
$costDiffCurRecPercentage = round(1 - ($userCycle / $recCycleMaintenance), 2);
$costDiffCurCycleRecCycle = $this->customRounding($costsCurrentPerYear - $costsRecPerYear);
}

$res[self::KEY_REC_CYCLE_MAINTENANCE] = $recCycleMaintenance;
$res[self::KEY_REC_CYCLE_INSPECTION] = $recCycleInspection;
$res[self::KEY_COST_DIFF_CUR_REC_PERCENTAGE] = round($costDiffCurRecPercentage, 2);
$res[self::KEY_COST_DIFF_CUR_REC_CYCLE] = $this->customRounding($costDiffCurCycleRecCycle);
$res[self::KEY_COST_DIFF_CUR_REC_PERCENTAGE] = $costDiffCurRecPercentage;
$res[self::KEY_COST_DIFF_CUR_REC_CYCLE] = $costDiffCurCycleRecCycle;
return $res;
}



+ 0
- 49
httpdocs/templates/pages/catalogue.html.twig Zobrazit soubor

@@ -1,49 +0,0 @@
{% extends 'base.html.twig' %}

{% block title %}Fragenkatalog{% endblock %}

{% block body %}
<h1>Fragenkatalog</h1>
<p id="instruction">Bitte entscheiden Sie sich für eine Antwort und speichern Sie diese. Andernfalls gilt die Frage als nicht beantwortet. Sie können jederzeit von einer Frage zu einer anderen Frage und wieder zurück navigieren. Auch bereits gespeicherte Antworten können Sie später bei Bedarf noch einmal bearbeiten und erneut speichern, solange die Bearbeitung des Fragenkataloges noch nicht abgeschlossen wurde. Das Abschließen des Fragebogens ist nur möglich, wenn alle Fragen beantwortet wurden.</p>
<form method="post" class="form form--catalogue">
<div class="question-count">
<p>Frage: <span data-js="order-no">{{ catalogueDetail.orderNo }}</span>/{{ catalogue.numDetails }}</p>
<div class="progressbar" data-js="progressbar">
<div style="width: calc({{ catalogue.numAnswers }} / {{ catalogue.numDetails }} * 100%);"></div>
</div>
</div>
<div class="form--wrapper form--question">
<h3 data-js="question-type">Handlungsfeld: <span>{{ questionType.type }}</span></h3>
<h2 data-js="question-text">{{ question.questionText }}</h2>
</div>
<div class="form--wrapper form-wrapper--container">
<div class="form--wrapper form--checkbox">
<label for="inputAnswer1"><input type="radio" id="inputAnswer1" name="answer" value="irrelevant" {{ catalogueDetail.answer == 'irrelevant' ? 'checked' : '' }} />(A) Derzeit für meine Organisation nicht relevant</label>
<label for="inputAnswer2"><input type="radio" id="inputAnswer2" name="answer" value="not_fulfilled" {{ catalogueDetail.answer == 'not_fulfilled' ? 'checked' : '' }} />(B) Nicht erfüllt</label>
<label for="inputAnswer3"><input type="radio" id="inputAnswer3" name="answer" value="partly_fulfilled" {{ catalogueDetail.answer == 'partly_fulfilled' ? 'checked' : '' }} />(C) Teilweise erfüllt</label>
<label for="inputAnswer4"><input type="radio" id="inputAnswer4" name="answer" value="widely_fulfilled" {{ catalogueDetail.answer == 'widely_fulfilled' ? 'checked' : '' }} />(D) Weitgehend erfüllt</label>
<label for="inputAnswer5"><input type="radio" id="inputAnswer5" name="answer" value="fulfilled" {{ catalogueDetail.answer == 'fulfilled' ? 'checked' : '' }} />(E) Umfassend erfüllt</label>
</div>
<div class="form--wrapper left">
<label for="inputNote">Feststellung/Anmerkung</label>
<textarea cols="50" rows="5" id="inputNote" name="note" placeholder="Hier können Sie wichtige Feststellungen dokumentieren und wie Sie zu dieser Bewertung gekommen sind.">{{ catalogueDetail.note }}</textarea>
</div>
</div>
<div class="catalogue-nav">
<span>
<span class="btn btn--inverse" data-js="last-question" data-openquestion="yes">Letzte offene Frage</span>
<span class="btn" data-js="last-question" data-openquestion="no">Vorherige Frage</span>
</span>
<div class="save">
<span class="btn btn--correct" data-js="save-question">Antwort speichern</span>
</div>
<span>
<span class="btn" data-js="next-question" data-openquestion="no">Nächste Frage</span>
<span class="btn btn--inverse" data-js="next-question" data-openquestion="yes">Nächste offene Frage</span>
</span>
</div>
<div class="form--wrapper">
<button class="btn" {{ catalogue.numDetails != catalogue.numAnswers ? 'disabled' : ''}} data-js="finish-catalogue">Fragenkatalog abschließen</button>
</div>
</form>
{% endblock %}

+ 0
- 16
httpdocs/templates/pages/catalogue_finished.html.twig Zobrazit soubor

@@ -1,16 +0,0 @@
{% extends 'base.html.twig' %}

{% block title %}Fragenkatalog{% endblock %}

{% block body %}
<h1>Abschluss Fragenkatalog</h1>
<p>
Herzlichen Glückwunsch, Sie haben soeben die Bearbeitung Ihres Fragenkatalogs zu MPPTool abgeschlossen. Die Auswertung Ihrer Antworten liegt als PDF-Download für Sie bereit.
</p>
<h2>"Ihr BIMScore"</h2>
<p>Hier erhalten Sie eine Zusammenfassung Ihrer Antworten zu den Fragen aus MPPTool und das Ergebnis der Auswertung als PDF-Dokument.</p>
<a href="{{ path('download') }}" class="btn">Ergebnis</a>
<br /><br />
<p>Sie können die Bearbeitung des Fragenkataloges noch {{ remainingCatalogues }}-mal durchführen. Dazu haben Sie noch {{ remainingDays }} Tage Zeit.</p>
<a href="{{ path('catalogue') }}" class="btn">Zum Fragenkatalog</a>
{% endblock %}

+ 3
- 8
httpdocs/templates/pages/risk_analysis.html.twig Zobrazit soubor

@@ -73,11 +73,7 @@
<div class="col-box">
<div class="form-fields">
<label for="cycle">Aktueller Zyklus (in Monaten)</label>
{% if initialDinAsset is not null %}
<input name="cycle" type="number" id="cycle" value="" min="{{ initialDinAsset.cycleMonthsMin }}" max ="{{ initialDinAsset.cycleMonthsMax }}">
{% else %}
<input name="cycle" type="number" id="cycle" disabled>
{% endif %}
<input name="cycle" type="number" id="cycle" value="" min="1">
</div>
</div>
<div class="col-box">
@@ -98,9 +94,8 @@
<div class="result-box" id="result-box">
<h3>Ergebnis</h3>
<p class="result-not-existing">
<span id="no-calculation">Kein Potenzial ermittelbar!</span>
<span id="calculate-first">Bitte erst Potenzial ermitteln!</span>
<span class="btn" id="worksheet-no-calculation">Arbeitskarte erstellen</span>
<span class="btn" id="create-worksheet">Arbeitskarte erstellen</span>
</p>
<div class="result-existing">
<dl>
@@ -116,10 +111,10 @@
<dd id="resEuro"></dd>
</dl>
<span class="btn" id="worksheet">Arbeitskarte erstellen</span>
<p class="footnote">* Vergleichskosten sind nach BKI indiziert (März 2023)</p>
</div>
</div>
</div>
</div>
</form>
<p>* Vergleichskosten sind nach BKI indiziert (März 2023)</p>
{% endblock %}

+ 2
- 2
httpdocs/templates/pages/start.html.twig Zobrazit soubor

@@ -25,9 +25,9 @@
{% if (worksheets | length > 0) %}
<h2>Ihre bisher abgeschlossenen Arbeitskarten:</h2>
<ol class="worksheets">
{% for worksheet in worksheets %}
{% for index, worksheet in worksheets %}
<li>
<a href="/worksheet/{{ worksheet.id }}">{{ worksheet.creationDate|date("d.m.Y H:i") }} | {{ worksheet.dinNumber }} - {{ worksheet.dinAssetName }}</a>
<strong>{{ "%02d"|format(index + 1) }}. </strong><a href="/worksheet/{{ worksheet.id }}">{{ worksheet.creationDate|date("d.m.Y H:i") }} | {{ worksheet.dinNumber }} - {{ worksheet.dinAssetName }}</a>
</li>
{% endfor %}
</ol>


Načítá se…
Zrušit
Uložit