Files
BeWoPlaner/BeWoPlanerMobil/Views/Report/ConfirmationReceiptSignaturePartial.cshtml

215 lines
9.1 KiB
Plaintext

@using BeWoPlanerMobil.Util
@using BeWoPlanerMobil.Util.ReportUtils
@model BeWoPlanerMobil.Models.ReportModel
@{
if(TempData[TempDataConstants.DoLogoutKey] is bool doLogout && doLogout)
{
<text>
<script type="text/javascript">
$("#second-logout-form").submit();
</script>
</text>
}
var plural = Model.ConfirmationReceiptObject.NumberOfServiceRecords > 1 ? "en" : string.Empty;
var leistungsplurarl = Model.ConfirmationReceiptObject.NumberOfServiceRecords > 1 ? "en" : string.Empty;
var sigInfo = $"Unterschrift{plural} von {Model.Quittierungsbelegsunterschriftenobjekt.PersonName} für {Model.Quittierungsbelegsunterschriftenobjekt.ServiceRecordCount} erbrachte Leistung{leistungsplurarl} von {Model.Quittierungsbelegsunterschriftenobjekt.CustomerName} ({Model.Quittierungsbelegsunterschriftenobjekt.TimeSpanInfo})";
}
<script type="text/javascript">
$(document).ready(function () {
try {
$(".left-col").width(getMaxWidth("left-col"));
} catch(error) {
showErrorPopup(error);
}
});
$(".signature-card").ready(function () {
try {
setTimeout(function () {
$(".signature-card").height(getMaxElementHeight("signature-card"));
}, 100);
} catch(error) {
showErrorPopup(error);
}
});
</script>
<div class="container-fluid lg-max-width">
<div class="row">
<div class="col">
<button type="button" class="btn btn-primary float-right" id="qb-sig-cancel-btn">
<span class="fas fa-times-circle"></span>
</button>
<h4 class="d-inline" id="qb-sig-info-col">@sigInfo</h4>
@{
var xyz = Model.Quittierungsbelegsunterschriftenobjekt;
var isEmployeeSignature = Model.Quittierungsbelegsunterschriftenobjekt.IsEmployeeSignature;
var cro = Model.ConfirmationReceiptObject.ConfirmationReceiptResultList.FirstOrDefault(f => f.CustomerOid.Equals(xyz.CustomerOid));
string message = null;
string message2 = null;
if(!(cro is null))
{
if(isEmployeeSignature)
{
if(cro.EmployeeSignatureState == SignatureState.Some)
{
message = "Es wurde eine Unterschrift für mehrere Termine geleistet. Danach ist mindestens ein Termin verändert worden oder neu dazugekommen.<br /><br />Ihre Unterschrift muss deshalb erneut erfolgen, um auf dem Quittierunsbeleg angezeigt zu werden.";
}
if(cro.EmployeeSignatureState == SignatureState.All)
{
message2 = "Es wurde für alle Termine eine Unterschrift hinterlegt.<br /><br />Die Unterschrift wird auf dem Quittierungsbeleg angezeigt.";
}
if(cro.EmployeeSignatureState == SignatureState.AllOwnServiceRecords)
{
// Wenn die eigenen Einträge unterschrieben sind, die der anderen Mitarbeiter aber noch nicht und daher wird auch auf dem QB keine Unterschrift angezeigt.
message = "Es wurden nicht für alle Einträge anderer Mitarbeiter eine Mitarbeiterunterschrift geleistet.<br /><br />Die Unterschrift wird nicht auf dem Quittierungsbeleg angezeigt.";
}
}
else
{
if(cro.CustomerSignatureState == SignatureState.Some)
{
message = "Es wurde eine Unterschrift für mehrere Termine geleistet. Danach ist mindestens ein Termin verändert worden oder neu dazugekommen.<br /><br />Die Unterschrift des Klienten muss deshalb erneut erfolgen, um auf dem Quittierunsbeleg angezeigt zu werden.";
}
if(cro.CustomerSignatureState == SignatureState.All)
{
message2 = "Es wurde für alle Termine eine Unterschrift hinterlegt.<br /><br />Die Unterschrift wird auf dem Quittierungsbeleg angezeigt.";
}
}
}
}
@if(!(message is null))
{
<div class="alert alert-primary d-block w-100 mt-4" role="alert">
@Html.Raw(message)
</div>
}
@if(!(message2 is null))
{
<div class="alert alert-success d-block w-100 mt-4" role="alert">
@Html.Raw(message2)
</div>
}
</div>
</div>
<div id="qb-sig-container" class="row justify-content-center">
@functions
{
public string GetColumnClass()
{
// md: 1 -> 12, ab 2 -> 6
// lg: 1 -> 12, 2 -> 6, ab 3 -> 4
// xl: 1 -> 12, 2 -> 6, 3 -> 4, ab 4 -> 3
var count = Model.SelectedConfirmationReceiptSignatures.Count;
var colMd = string.Empty;
var colLg = string.Empty;
var colXl = string.Empty;
if(count < 2)
{
colMd += "12";
colLg += "3";
colXl += "4";
}
else
{
switch(count)
{
case 2:
colMd += "6";
colLg += "6";
colXl += "6";
break;
case 3:
colLg += "4";
colXl += "4";
break;
case 4:
colXl += "3";
break;
default:
colMd += "6";
colLg += "3";
colXl += "4";
break;
}
}
return $"col-sm-12 col-md-{colMd} col-lg-{colLg} col-xl-{colXl}";
}
}
@foreach(var signature in Model.SelectedConfirmationReceiptSignatures)
{
var blubb = $"{(signature.NumberOfServiceRecords == 1 ? "eine" : signature.NumberOfServiceRecords.ToString())} erbrachte Leistung{(signature.NumberOfServiceRecords != 1 ? "en" : string.Empty)}";
<div class="@GetColumnClass()">
<div class="card signature-card mt-4">
<div class="justify-content-center">
<img style="display: block; margin-left: auto; margin-right: auto; max-width: 100% !important;" src="@signature.ImageStr" alt="Unterschrift von @signature.PersonName geleistet am @signature.InsTsStr" />
</div>
<div class="card-body m-0 p-0" style="height: 0 !important;"></div>
<div class="card-footer">
<div class="row">
<div class="col-auto left-col">
Unterschrift von:
</div>
<div class="col">
@signature.PersonName
</div>
</div>
<div class="row">
<div class="col-auto left-col">
Geleistet am:
</div>
<div class="col">
@signature.InsTsStr
</div>
</div>
<div class="row">
<div class="col-auto left-col">
Geleistet für:
</div>
<div class="col">
@blubb
</div>
</div>
</div>
</div>
</div>
}
</div>
<div class="row mt-3 signingContent">
<div class="col">
<div class="alert alert-primary d-none" role="alert" id="qb-sig-override-alert">
Achtung, Sie sind dabei eine vorhandene Unterschrift zu ersetzen!
</div>
</div>
</div>
<div class="row mt-3 signingContent" id="qb-sig-canvas-row">
<div class="canvas-container" id="qb-sig-canvas-container">
<canvas id="qb-sig-sketch-pad" width="500" height="200" style="border: 1px solid #343A40" class="bg-white rounded"></canvas>
</div>
</div>
<div class="row signingContent">
<div class="col-12">
<button type="button" class="btn btn-primary float-right" id="qb-sig-save-btn">Speichern</button>
<button type="button" class="btn btn-secondary float-right mr-3" id="qb-sig-clear-canvas-btn">Neu</button>
</div>
</div>
</div>