瀏覽代碼

changes calculation

master
Daniel 2 年之前
父節點
當前提交
49d5548ebb
共有 13 個檔案被更改,包括 77 行新增143 行删除
  1. 二進制
      httpdocs/import/mpp_import_benchmark.xlsx
  2. 二進制
      httpdocs/import/mpp_import_benchmark_works.xlsx
  3. 二進制
      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

二進制
httpdocs/import/mpp_import_benchmark.xlsx 查看文件


二進制
httpdocs/import/mpp_import_benchmark_works.xlsx 查看文件


二進制
httpdocs/import/mpp_import_din.xlsx 查看文件


+ 18
- 18
httpdocs/public/assets/js/mpp-tool.js 查看文件

@@ -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 查看文件

@@ -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 查看文件

@@ -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 查看文件

@@ -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":"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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;;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 查看文件

@@ -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 查看文件

@@ -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 查看文件

@@ -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 查看文件

@@ -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 查看文件

@@ -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 查看文件

@@ -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>


Loading…
取消
儲存