Files
BeWoPlaner/BeWoPlanerMobil/Views/Customer/Customer.cshtml

1142 lines
70 KiB
Plaintext

@using BeWoPlanerMobil.Models;
@using BeWoPlanerMobil.Util
@using BS.Shared
@model CustomerModel
@{
ViewBag.Title = "Klient";
}
<script type="text/javascript">
$(document).ready(function() {
$(".collapse").on("shown.bs.collapse", function () {
window.saveCollapsibleState($(this).attr("id"), "@Url.Action("SaveCollapsibleStatus")");
});
$(".collapse").on("hidden.bs.collapse", function() {
window.saveCollapsibleState($(this).attr("id"), "@Url.Action("SaveCollapsibleStatus")");
});
});
$(function () {
$("#date-of-birth-picker").datetimepicker({
locale: "de",
format: "L"
});
});
function resizeCustomerPrependElements() {
try {
let width = window.getMaxWidth("customer-prepend-text-eigenschaften");
if(width > 0) {
$(".customer-prepend-text-eigenschaften").width(width);
}
width = window.getMaxWidth("customer-prepend-text-adresse");
if(width > 0) {
$(".customer-prepend-text-adresse").width(width);
}
width = window.getMaxWidth("customer-prepend-text-rechnungsadresse");
if(width > 0) {
$(".customer-prepend-text-rechnungsadresse").width(width);
}
width = window.getMaxWidth("customer-prepend-text-kontakt");
if(width > 0) {
$(".customer-prepend-text-kontakt").width(width);
}
} catch(error) {
window.showErrorPopup(error);
}
}
function submitStammdatenForm() {
try {
showSpinner();
$("#stammdaten-form").submit();
} catch(error) {
window.showErrorPopup(error);
}
}
function closeReport() {
try {
$.get("@Url.Action("ResetReport")");
} catch (error) {
window.showErrorPopup(error);
}
}
(function () {
'use strict';
window.addEventListener('load', function () {
const forms = document.getElementsByClassName("needs-validation");
const validation = Array.prototype.filter.call(forms, function (form) {
form.addEventListener('submit', function (event) {
if(form.checkValidity() === false) {
hideSpinner();
event.preventDefault();
event.stopPropagation();
$([document.documentElement, document.body]).animate({
scrollTop: $("#stammdaten-container").offset().top
}, 10);
}
form.classList.add('was-validated');
}, false);
});
}, false);
})();
function resetCustomerSearch() {
try {
$("#customer-search-input").val("");
$("#customer-dropdown-menu .dropdown-item").show();
const e = window.event;
e.cancelBubble = true;
if(e.stopPropagation) {
e.stopPropagation();
}
} catch(error) {
window.showErrorPopup(error);
}
}
function onCustomerSearchInput() {
try {
var searchText = $("#customer-search-input").val();
if(searchText === null || searchText === undefined || searchText.length === 0) {
$("#customer-dropdown-menu .dropdown-item").show();
return;
}
const menuItems = $("#customer-dropdown-menu .dropdown-item");
menuItems.hide();
$.each(menuItems,
function(index, item) {
const itemText = $(item).text().toLowerCase();
if(itemText.includes(searchText.toLowerCase())) {
$(item).show();
}
});
} catch(error) {
window.showErrorPopup(error);
}
}
function selectCustomer(element, customerOid) {
try {
$("#customer-oid-input").val(customerOid);
$("#customer-modal-popup").modal("hide");
showSpinner();
$("#select-customer-form").submit();
} catch(error) {
window.showErrorPopup(error);
}
}
</script>
<div class="container mt-3 lg-max-width">
<div class="row mb-3">
@if(AbstractModel.IsAllowedToSeeCustomerFilter)
{
<div class="col-md mb-2">
@using(Html.BeginForm("SetCustomerFilter", "Customer", FormMethod.Post))
{
@Html.DropDownListFor(m => m.SelectedCustomerFilter, Model.CustomerFilter, new { onchange = "submitForm(this)", @class = "custom-select" })
}
</div>
}
<div class="col-md">
@using(Html.BeginForm("SelectCustomer", "Customer", FormMethod.Post, new { id = "select-customer-form" }))
{
var customerName = Model.SelectedCustomer != null ? $"{Model.SelectedCustomer.LastName}, {Model.SelectedCustomer.FirstName}{(!string.IsNullOrWhiteSpace(Model.SelectedCustomer.CustomerAlias) ? $"({Model.SelectedCustomer.CustomerAlias})" : string.Empty)}" : string.Empty;
@Html.PopupWithSearchForIFilterables(Model.Customers, "selectCustomer", null, customerName, "customer-modal-popup", false)
<input type="hidden" name="SelectedCustomerOid" id="customer-oid-input"/>
}
</div>
</div>
</div>
<div class="container-fluid mt-1 px-0 lg-max-width" id="customer-container">
@if(Model?.SelectedJsonCustomer != null)
{
@* ----- Details ----- *@
<div class="col-12">
<div class="card w-100 h-100 my-1">
<div class="card-header" onclick="cardHeaderClick2(this, resizeCustomerPrependElements)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
Details
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-details-collapsible")" id="customer-details-collapsible">
<div class="card-body py-0">
@using(Html.BeginForm("UpdateCustomer", "Customer", FormMethod.Post, new { id = "stammdaten-form", @class = "needs-validation", novalidate = "novalidate" }))
{
var inputDisabled = !AbstractModel.HasRightToEditCustomers ? "disabled" : string.Empty;
<div class="row" id="stammdaten-container">
<div class="col-sm-6 col-md-6 col-lg-6 col-xl-3 mt-2 px-1">
<div class="card">
<div class="card-body pb-0">
<div class="card-title text-bewo-customer-card-header">
Eigenschaften
</div>
<div class="row">
<div class="form-group w-100 mt-1 my-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-eigenschaften">
Vorname
</div>
</div>
<input required @inputDisabled type="text" autocomplete="on" class="form-control" id="vorname" name="vorname" value="@Model.SelectedJsonCustomer.Vorname" />
<div class="invalid-feedback">
Dieses Feld darf nicht leer sein!
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 my-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-eigenschaften">
Nachname
</div>
</div>
<input required @inputDisabled type="text" autocomplete="on" class="form-control" id="nachname" name="nachname" value="@Model.SelectedJsonCustomer.Nachname" />
<div class="invalid-feedback">
Dieses Feld darf nicht leer sein!
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 my-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-eigenschaften">
Alias
</div>
</div>
<input @inputDisabled type="text" autocomplete="on" class="form-control" id="alias" name="alias" value="@Model.SelectedJsonCustomer.Alias" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 my-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-eigenschaften">
Geburtstag
</div>
</div>
<input type="date" @inputDisabled id="date-of-birth-input"
autocomplete="on"
name="geburtstag" class="form-control"
value="@Model.SelectedJsonCustomer.Geburtstag" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 my-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-eigenschaften">
Geschlecht
</div>
</div>
@{
var selectedMale = Model.SelectedJsonCustomer.CustomerSex == Sex.Male ? "selected" : string.Empty;
var selectedFemale = Model.SelectedJsonCustomer.CustomerSex == Sex.Female ? "selected" : string.Empty;
var selectedDiverse = Model.SelectedJsonCustomer.CustomerSex == Sex.Divers ? "selected" : string.Empty;
var selectedNull = Model.SelectedJsonCustomer.CustomerSex is null ? "selected" : string.Empty;
}
<select class="custom-select" name="geschlecht" @inputDisabled>
<option value="-1" @selectedNull></option>
<option value="0" @selectedMale>M&auml;nnlich</option>
<option value="1" @selectedFemale>Weiblich</option>
<option value="2" @selectedDiverse>Divers</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">
Krankenkasse
</div>
</div>
<input @inputDisabled maxlength="45" type="text" autocomplete="on" class="form-control" id="krankenkasse" name="krankenkasse" value="@Model.SelectedJsonCustomer.Krankenkasse" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">
Versichertennr.
</div>
</div>
<input @inputDisabled maxlength="45" type="text" autocomplete="on" class="form-control" id="versichertennummer" name="versichertennummer" value="@Model.SelectedJsonCustomer.Versichertennummer" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 my-1">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">
Versichertenstatus
</div>
</div>
<input @inputDisabled maxlength="16" type="text" autocomplete="on" class="form-control" id="versichertenstatus" name="versichertenstatus" value="@Model.SelectedJsonCustomer.Versichertenstatus" />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6 col-md-6 col-lg-6 col-xl-3 mt-2 px-1">
<div class="card">
<div class="card-body pb-0">
<div class="card-title text-bewo-customer-card-header">
<a href="@Model.SelectedJsonCustomer.GoogleMapsLink" target="_blank" class="text-bewo-customer-card-header">Adresse<i class="fas fa-map-marker-alt ml-3"></i></a>
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-adresse">
Adresszusatz
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="adresszusatz" name="adresszusatz" value="@Model.SelectedJsonCustomer.Adresszusatz" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-adresse">
Stra&szlig;e
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="strasse" name="strasse" value="@Model.SelectedJsonCustomer.Strasse" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-adresse">
PLZ
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="plz" name="plz" value="@Model.SelectedJsonCustomer.Postleitzahl" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 my-1">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-adresse">
Ort
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="ort" name="ort" value="@Model.SelectedJsonCustomer.Ort" />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6 col-md-6 col-lg-6 col-xl-3 mt-2 px-1">
<div class="card">
<div class="card-body pb-0">
<div class="card-title text-bewo-customer-card-header">
Rechnungsadresse
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-rechnungsadresse">
Name
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="name-rechnungsadresse" name="name-rechnungsadresse" value="@Model.SelectedJsonCustomer.RechnungsadresseName" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-rechnungsadresse">
Stra&szlig;e
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="strasse-rechnungsadresse" name="strasse-rechnungsadresse" value="@Model.SelectedJsonCustomer.RechnungsadresseStrasse" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-rechnungsadresse">
PLZ
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="plz-rechnungsadresse" name="plz-rechnungsadresse" value="@Model.SelectedJsonCustomer.RechnungsadressePostleitzahl" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mb-1">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-rechnungsadresse">
Ort
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="ort-rechnungsadresse" name="ort-rechnungsadresse" value="@Model.SelectedJsonCustomer.RechnungsadresseOrt" />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6 col-md-6 col-lg-6 col-xl-3 mt-2 px-1">
<div class="card">
<div class="card-body pb-0">
<div class="card-title text-bewo-customer-card-header">
Kontakt
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-kontakt">
Handy
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="handy" name="handy" value="@Model.SelectedJsonCustomer.Handy" />
<div class="input-group-append">
<button type="button" class="btn btn-primary px-2" onclick="window.open('tel:@Model.SelectedJsonCustomer.Handy')">
<i class="fas fa-phone"></i>
</button>
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-kontakt">
Telefon
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="telefon" name="telefon" value="@Model.SelectedJsonCustomer.Telefon" />
<div class="input-group-append">
<button type="button" class="btn btn-primary px-2" onclick="window.open('tel:@Model.SelectedJsonCustomer.Telefon')">
<i class="fas fa-phone"></i>
</button>
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 mt-1 mb-0">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-kontakt">
Fax
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="fax" name="fax" value="@Model.SelectedJsonCustomer.Fax" />
</div>
</div>
</div>
<div class="row">
<div class="form-group w-100 my-1">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text customer-prepend-text-kontakt">
Mail
</div>
</div>
<input type="text" autocomplete="on" @inputDisabled class="form-control" id="mail" name="mail" value="@Model.SelectedJsonCustomer.EMail" />
<div class="input-group-append">
<button type="button" class="btn btn-primary px-2" onclick="window.open('mailto:@Model.SelectedJsonCustomer.EMail')">
<i class="fas fa-envelope"></i>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6 col-lg-12 mt-2 px-1">
<div class="card w-100 h-100">
<div class="card-header">
<div class="clearfix">
<h5 class="text-bewo-customer-card-header d-inline float-left">Kommentar</h5>
</div>
</div>
<div class="card-body m-1 p-1">
<div class="container-fluid m-1 p-1">
<textarea id="notice-textarea" autocomplete="on" @inputDisabled name="notiz" class="w-100 m-1 p-1" style="resize: vertical;">@Model.SelectedJsonCustomer.Kommentar</textarea>
</div>
</div>
</div>
</div>
@if(AbstractModel.HasRightToEditCustomers)
{
<div class="col-12 mb-2 px-1 mt-2">
<button type="submit" class="btn btn-primary float-right w-100 m-0" onclick="showSpinner()">Speichern</button>
</div>
}
</div>
}
</div>
</div>
</div>
</div>
@* ----- Aktenzeichen ----- *@
if(Model.SelectedJsonCustomer.ReferenceNumbers.Any())
{
<div class="col-12">
<div class="card w-100 h-100 my-1">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
Aktenzeichen pro Kostentr&auml;ger
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-aktenzeichen-collapsible")" id="customer-aktenzeichen-collapsible">
<div class="card-body">
<div class="container-fluid px-0">
<table class="table">
<thead>
<tr>
<th class="text-left">
Kostentr&auml;ger
</th>
<th class="text-right">
Aktenzeichen
</th>
</tr>
</thead>
<tbody>
@foreach(var x in Model.SelectedJsonCustomer.ReferenceNumbers)
{
<tr>
<td class="text-left">
@x.Costbearer
</td>
<td class="text-right">
@x.ReferenceNumber
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
}
@* ----- Umfeld ----- *@
if(Model.SelectedJsonCustomer.Umfeldpersonen.Any())
{
<div class="col-12">
<div class="card w-100 h-100 my-1">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
Umfeld
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-umfeld-collapsible")" id="customer-umfeld-collapsible">
<div class="card-body">
<div class="container-fluid px-0">
@foreach(var umfeldPerson in Model.SelectedJsonCustomer.Umfeldpersonen)
{
<div class="card w-100 mb-3">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-primary" id="chevron-umfeldperson-@umfeldPerson.Customer2PersonOid"></i>
</div>
<div class="p2 d-inline-flex text-primary h-100">
<button type="button" class="btn btn-link">
@umfeldPerson.FormattedName
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, $"collapse-umfeldperson-{umfeldPerson.Customer2PersonOid}")" id="collapse-umfeldperson-@umfeldPerson.Customer2PersonOid">
<div class="card-body">
<div class="container-fluid">
<div class="row mb-3">
<div class="col text-secondary text-left">
Rolle:
</div>
<div class="col-auto text-right">
@umfeldPerson.Rolle
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Adresse:
</div>
<div class="col-auto text-right">
@umfeldPerson.StrNameNr<br />@umfeldPerson.PLZOrt
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Tel.:
</div>
<div class="col-auto text-right">
<a href="tel:@umfeldPerson.TelNr">@umfeldPerson.TelNr</a>
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Mobil:
</div>
<div class="col-auto text-right">
<a href="tel:@umfeldPerson.Mobil">@umfeldPerson.Mobil</a>
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
E-Mail:
</div>
<div class="col-auto text-right">
<a href="mailto:@umfeldPerson.EMail">@umfeldPerson.EMail</a>
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Fax:
</div>
<div class="col-auto text-right">
@umfeldPerson.Fax
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Notiz:
</div>
<div class="col-auto text-right">
@umfeldPerson.Notice
</div>
</div>
</div>
</div>
</div>
</div>
}
</div>
</div>
</div>
</div>
</div>
}
@* ----- Organisationen des Umfelds ----- *@
if(Model.SelectedJsonCustomer.Organisations.Any())
{
<div class="col-12">
<div class="card w-100 h-100 my-1">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down text-bewo-customer-card-header h-100"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
Organisationen des Umfelds
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-organisationen-collapsible")" id="customer-organisationen-collapsible">
<div class="card-body">
<div class="container-fluid px-0">
@foreach(var organisation in Model.SelectedJsonCustomer.Organisations)
{
<div class="card w-100 mb-3">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-primary"></i>
</div>
<div class="p2 d-inline-flex text-primary h-100">
<button type="button" class="btn btn-link">
@organisation.Name
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, $"customer-organisation-{organisation.Customer2OrganisationOid}")" id="customer-organisation-@organisation.Customer2OrganisationOid">
<div class="card-body">
<div class="container-fluid">
<div class="row mb-3">
<div class="col text-secondary text-left">
Ansprechpartner
</div>
<div class="col-auto text-right">
@organisation.ContactPerson
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Rolle
</div>
<div class="col-auto text-right">
@organisation.Role
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Adresse
</div>
<div class="col-auto text-right">
@organisation.StreetName
@if(!string.IsNullOrEmpty(organisation.StreetName) && !string.IsNullOrEmpty(organisation.ZipCode2Town))
{
<br />
}
@organisation.ZipCode2Town
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Tel.:
</div>
<div class="col-auto text-right">
<a href="tel:@organisation.PhoneNumber">@organisation.PhoneNumber</a>
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Fax:
</div>
<div class="col-auto text-right">
@organisation.FaxNumber
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
E-Mail:
</div>
<div class="col-auto text-right">
<a href="mailto:@organisation.Email">@organisation.Email</a>
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Internet:
</div>
<div class="col-auto text-right">
<a href="@organisation.Website">@organisation.Website</a>
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Info
</div>
<div class="col-auto text-right">
@organisation.Info
</div>
</div>
<div class="row mb-3">
<div class="col text-secondary text-left">
Notiz
</div>
<div class="col-auto text-right">
@organisation.Notice
</div>
</div>
</div>
</div>
</div>
</div>
}
</div>
</div>
</div>
</div>
</div>
}
@* ----- Dokumente ----- *@
if(AbstractModel.HasRightToViewCustomerDocuments)
{
<div class="col-12">
<div class="card w-100 h-100 my-1">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
Dokumente
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-documents-collapsible")" id="customer-documents-collapsible">
<div class="card-body">
<div class="container-fluid px-0" id="customer-document-container">
@Html.Partial("DocumentPartial", Model)
</div>
</div>
</div>
</div>
</div>
}
@* ----- Medikamentenliste ----- *@
if(AbstractModel.IsAllowedToSeeMedikamentenliste)
{
<div class="col-12">
<div class="card w-100 h-100 my-1">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
Medikamentenverordnungen
</button>
</div>
</div>
<div class="collapse mx-0 px-0 @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-medlist-collapsible")" id="customer-medlist-collapsible">
<div class="card-body pb-0 px-0 mx-0" id="medikamentenlistencontainer">
@Html.Partial("CustomerMedListPartial", Model)
</div>
</div>
</div>
</div>
}
@* ----- Diagnosen ----- *@
if(AbstractModel.HasRightToViewDiagnosen && (Model.SelectedJsonCustomer.HasDiagnosen || Model.SelectedJsonCustomer.HasDisabilities || Model.SelectedJsonCustomer.HasSchwebi))
{
<div class="col-12">
<div class="card w-100 h-100 my-1">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
Diagnosen
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-diagnosen-collapsible")" id="customer-diagnosen-collapsible">
<div class="card-body m-0 p-1 pt-3">
@{
var hasDiagnosen = Model.SelectedJsonCustomer.HasDiagnosen;
var hasDisabilities = Model.SelectedJsonCustomer.HasDisabilities;
var diagnosenCol = hasDiagnosen && hasDisabilities ? "col-lg-6" : "col-lg-12";
var schwebiCol = hasDiagnosen ? "col-lg-6" : "col-lg-12";
}
<div class="row">
@if(hasDiagnosen)
{
<div class="@diagnosenCol">
<h6 class="text-primary">Diagnosen</h6>
<table class="table">
<thead>
<tr>
<th scope="col">ICD10</th>
<th scope="col">Beschreibung</th>
</tr>
</thead>
<tbody>
@foreach(var code2Text in Model.SelectedJsonCustomer.ICD10Diagnosen)
{
<tr>
<td>@code2Text.Key</td>
<td>@code2Text.Value</td>
</tr>
}
<tr>
<td>Medikation</td>
<td>@Model.SelectedCustomer.Medication</td>
</tr>
<tr>
<td>Bemerkungen</td>
<td>@Model.SelectedCustomer.Diagnosis</td>
</tr>
</tbody>
</table>
</div>
}
@if(Model.SelectedJsonCustomer.HasSchwebi)
{
<div class="@schwebiCol">
<h6 class="text-primary">Schwerbehindertenausweis</h6>
<table class="table">
<tbody>
<tr>
<td class="text-secondary align-text-top">Aust. Vers. -amt</td>
<td class="text-right align-text-top">@Model.SelectedJsonCustomer.SchwebiAusstAmt</td>
</tr>
<tr>
<td class="text-secondary align-text-top">Ausweis unbefristet gültig</td>
<td class="text-right align-text-top">@Model.SelectedJsonCustomer.SchwebiIsUnlimited</td>
</tr>
<tr>
<td class="text-secondary align-text-top">Ausweis gültig von</td>
<td class="text-right align-text-top">@Model.SelectedJsonCustomer.SchwebiGueltigVon</td>
</tr>
<tr>
<td class="text-secondary align-text-top">Ausweis gültig bis</td>
<td class="text-right align-text-top">@Model.SelectedJsonCustomer.SchwebiGueltigBis</td>
</tr>
<tr>
<td class="text-secondary align-text-top">Beiblatt gültig bis</td>
<td class="text-right align-text-top">@Model.SelectedJsonCustomer.SchwebiBeiblattGueltigBis</td>
</tr>
<tr>
<td class="text-secondary align-text-top">Grad der Behinderung</td>
<td class="text-right align-text-top">@Model.SelectedJsonCustomer.SchwebiGradDerBehinderung</td>
</tr>
<tr>
<td class="text-secondary align-text-top">Merkzeichen</td>
<td class="text-right align-text-top">@Model.SelectedJsonCustomer.SchwebiMerkzeichen</td>
</tr>
<tr>
<td class="text-secondary align-text-top">Behinderungsart</td>
<td class="text-right align-text-top">@Model.SelectedJsonCustomer.SchwebiBehinderungsart</td>
</tr>
<tr>
<td class="text-secondary align-text-top">Pflegegrad</td>
<td class="text-right align-text-top">@Model.SelectedJsonCustomer.SchwebiPflegegrad</td>
</tr>
<tr>
<td class="text-secondary align-text-top">Aktenzeichen</td>
<td class="text-right align-text-top">@Model.SelectedJsonCustomer.SchwebiAktenzeichen</td>
</tr>
</tbody>
</table>
</div>
}
</div>
@if(Model.SelectedJsonCustomer.HasDisabilities)
{
<div class="row">
<div class="col">
<h6 class="text-primary">Behinderungen</h6>
<table class="table">
<tbody>
@foreach(var behinderung in Model.SelectedCustomer.Disabilities)
{
<tr>
<td>@behinderung.DisplayName</td>
</tr>
}
</tbody>
</table>
</div>
</div>
}
</div>
</div>
</div>
</div>
}
var isRelatedCustomer = Model.SelectedCustomerOid.HasValue && Model.Employee.RelatedCustomers.Any(cer => cer.Customer.CustomerOid.Equals(Model.SelectedCustomerOid.Value));
var isAllowedToViewBargeldkassen = AbstractModel.HasRightToViewAllCustomersBargeldkassen || (isRelatedCustomer && AbstractModel.HasRightToViewOwnCustomersBargeldkassen);
@* ----- Bargeldverwaltung ----- *@
if(isAllowedToViewBargeldkassen)
{
<div class="col-12">
<div class="card w-100 h-100 my-1">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
Bargeldverwaltung
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-bargeldverwaltung-collapsible")" id="customer-bargeldverwaltung-collapsible">
<div class="card-body pb-0 px-0">
<div class="container-fluid" id="bargeldkassen-container">
@Html.Partial("CustomerBargeldkassen", Model)
</div>
</div>
</div>
</div>
</div>
}
@* ----- Abwesenheiten ----- *@
if(AbstractModel.HasRightToViewCustomerAbsenceTimes)
{
<div class="col-12">
<div class="card w-100 h-100 my-1">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
Abwesenheiten
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-abwesenheiten-collapsible")" id="customer-abwesenheiten-collapsible">
<div class="card-body">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#customer-absence-times-form-popup" onclick="calcAbsenceTimePrependWidth()">
Abwesenheit hinzufügen
</button>
<hr />
<div id="absence-times-container">
@Html.Partial("CustomerAbsenceTimePartial", Model)
</div>
</div>
</div>
</div>
</div>
}
@* ----- Betreuung ----- *@
var hasRelatedEmployees = Model.SelectedCustomer?.RelatedEmployees.Any() ?? false;
var hasRelatedTeams = Model.SelectedCustomer?.RelatedTeams.Any() ?? false;
if(AbstractModel.HasRightToViewBetreuung && (hasRelatedEmployees || hasRelatedTeams))
{
<div class="col-12">
<div class="card w-100 h-100 my-1">
<div class="card-header" onclick="cardHeaderClick2(this)">
<div class="d-inline-flex">
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header"></i>
</div>
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
Betreuung
</button>
</div>
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-betreuung-collapsible")", id="customer-betreuung-collapsible">
<div class="card-body p-1">
<div id="betreuungscontainer">
@Html.Partial("CustomerBetreuungPartial", Model)
</div>
</div>
</div>
</div>
</div>
}
}
</div>
@if(AbstractModel.HasRightToViewCustomerAbsenceTimes)
{
<div class="modal" tabindex="-1" role="dialog" id="customer-absence-times-form-popup">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title font-weight-bold">Abwesenheit hinzufügen</h5>
<button class="close" type="button" data-dismiss="modal">
<span>&times;</span>
</button>
</div>
<div class="modal-body p-2" id="customer-absence-time-modal-body">
@Html.Partial("CustomerAbsenceTimeFormPartial", Model)
</div>
<div class="modal-footer p-2">
<button class="btn btn-primary" type="button" onclick="submitCustomerAbsenceTimesForm()">OK</button>
<button class="btn btn-secondary" type="button" data-dismiss="modal" onclick="clearCustomerAbsenceTimesForm()">Abbrechen</button>
</div>
</div>
</div>
</div>
}
@* ----- Reports; Medikamentenlisten, Bargeldkassenreport, Zahlungsbelege ----- *@
<div id="customer-report-popup-container">
@Html.Partial("BeWoReportPartial", Model)
</div>
@using(Html.BeginForm("SelectAbsenceTime", "Customer", FormMethod.Post, new { id = "customer-absence-selection-form" }))
{
<input type="hidden" id="customer-absence-time-to-edit-oid" name="customer-absence-time-to-edit-oid" />
}
@* Unterschriftenlayover für den Zahlungsbeleg *@
<div class="container-fluid d-none mb-3 w-100 h-100" id="transaktionsunterschriftencontainer">
<div class="container-fluid">
<div class="row">
<div class="col">
<button type="button" class="btn btn-primary float-right" id="transaktionsunterschriften-cancel-btn">
<span class="fas fa-times-circle"></span>
</button>
<h4 class="d-inline" id="transaktionsunterschriftenheader"></h4>
</div>
</div>
<div class="row mt-3" id="transaktionsunterschriften-canvas-row">
<div class="canvas-container" id="transaktionsunterschriften-canvas-container">
<canvas id="transaktionsunterschriftencanvas" width="500" height="200" style="border: 1px solid #343A40" class="bg-white rounded"></canvas>
</div>
</div>
<div class="row">
<div class="col-12">
<button type="button" class="btn btn-primary float-right" id="transaktionsunterschriften-save-btn">Speichern</button>
<button type="button" class="btn btn-secondary float-right mr-3" id="transaktionsunterschriften-clear-canvas-btn">Neu</button>
</div>
</div>
</div>
</div>