Files
BeWoPlaner/BeWoPlanerMobil/Views/ReportViewer/ReportViewerFormPartial.cshtml
Lyndon Jetten ac65422235 Server:
Reines SQL holt die Unterschriftenwerte aus der ServiceRecordHistory-Tabelle

MoK:
    Abwesenheiten bei Klienten angefangen. Nur im Debug-Modus sichtbar
2023-11-02 16:25:36 +01:00

240 lines
9.4 KiB
Plaintext

@using BeWoPlanerMobil.Models
@model BeWoPlanerMobil.Models.ReportViewerModel
<script type="text/javascript">
function reportFilterOnChange() {
try {
//team oder mitarbeiter
toggleMitarbeiterstundenForm();
} catch (error) {
showErrorPopup(error);
}
}
function allEmployeesCbOnClick() {
try {
var isChecked = $("#msk-all-employees-cb").is(':checked');
$("#msk-employee-list").toggle(isChecked);
if(isChecked) {
$("#msk-form-warning").hide();
}
} catch (error) {
showErrorPopup(error);
}
}
function allTeamsCbOnClick() {
try {
var isChecked = $("#msk-all-teams-cb").is(':checked');
$("#msk-team-list").toggle(isChecked);
if (isChecked) {
$("#msk-form-warning").hide();
}
} catch (error) {
showErrorPopup(error);
}
}
function createMitarbeiterstundenkontoReport() {
try {
var formWarning = $("#msk-form-warning");
formWarning.hide();
formWarning.empty();
var month = $("#msk-month-select :selected").val();
var year = $("#msk-year-select :selected").val();
var allEmployees = $("#msk-all-employees-cb").is(':checked');
var allTeams = $("#msk-all-teams-cb").is(':checked');
var employeeOid = $("#msk-employee-select :selected").val();
var teamOid = $("#msk-team-select :selected").val();
var ansicht = 0;
if ($("#msk-tagesansicht-cb").length) {
ansicht = $("#msk-tagesansicht-cb").is('checked') ? 1 : 0;
} else {
switch ($("input[name=msk-ansichtsradio]:checked").attr("id")) {
case "msk-tagesansichtsradio":
ansicht = 1;
break;
case "msk-jahresansichtsradio":
ansicht = 2;
break;
default:
ansicht = 0;
break;
}
}
var teamForm = $("#msk-team-form");
var employeeForm = $("#msk-employee-form");
var isEmployeeFormSelected = employeeForm.css("display") === "block" || employeeForm.css("display") === "none" && (teamForm.css("display") === "none" || teamForm.length === 0);
var parameterString = month + ";" + year + ";" + isEmployeeFormSelected + ";";
if(isEmployeeFormSelected) {
if (allEmployees === false && employeeOid === "0") {
formWarning.removeClass("d-none");
formWarning.html("Bitte wählen Sie einen Mitarbeiter aus.");
formWarning.show();
return;
} else {
parameterString += allEmployees + ";" + employeeOid;
}
} else {
if (allTeams === false && teamOid === "0") {
formWarning.removeClass("d-none");
formWarning.html("Bitte wählen Sie ein Team aus.");
formWarning.show();
return;
} else {
parameterString += allTeams + ";" + teamOid;
}
}
parameterString += ";" + ansicht;
showSpinner();
$("#msk-report-container").load("@Url.Action("LoadMitarbeiterstundenkonto")", { parameters: parameterString }, function() {
hideSpinner();
});
} catch (error) {
showErrorPopup(error);
}
}
</script>
@*ToDo: Bis auf weiteres nur Mitarbeiterstundenkonto anzeigen!*@
@*@if(Model.SelectedReportType == ReportType.Berichte)
{
@Html.DropDownListFor(model => model.SelectedCustomReport, Model.CustomReports, new { @class = "custom-select", id = "msk-customReportSelect", onchange = "loadCustomReport()" })
}*@
@if(Model.SelectedReportType == ReportType.Mitarbeiterstundenkonto && AbstractModel.HasRightToViewMitarbeiterstundenkonto)
{
<div id="report-form-container">
<div class="form-row">
<div class="col">
<div class="alert alert-danger d-none w-100" role="alert" id="msk-form-warning">
</div>
</div>
</div>
@if(AbstractModel.HasRightMitarbeiterstundenkontoViewAll || AbstractModel.HasRightMitarbeiterstundenkontoViewTeams)
{
<div class="form-row">
<div class="col">
<div class="form-check">
<input class="form-check-input" type="radio" name="filterRadio" id="msk-filterForEmployeesRadio" onchange="reportFilterOnChange()" checked/>
<label for="msk-filterForEmployeesRadio">Nach Mitarbeiter filtern</label>
</div>
</div>
</div>
<div class="form-row">
<div class="col">
<div class="form-check">
<input class="form-check-input" type="radio" name="filterRadio" id="msk-filterForTeamsRadio" onchange="reportFilterOnChange()"/>
<label for="msk-filterForTeamsRadio">Nach Teams filtern</label>
</div>
</div>
</div>
}
<div id="msk-employee-form">
@if(AbstractModel.HasRightMitarbeiterstundenkontoViewAll)
{
<div class="form-row">
<div class="col">
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="msk-all-employees-cb"/>
<label class="form-check-label" for="msk-all-employees-cb" onclick="allEmployeesCbOnClick()">Alle Mitarbeiter</label>
</div>
</div>
</div>
}
<div class="form-row" id="msk-employee-list">
<div class="col">
@Html.DropDownListFor(model => model.SelectedEmployeeOid, Model.Employees, new { @class = "custom-select mb-3", id = "msk-employee-select" })
</div>
</div>
</div>
@if(AbstractModel.HasRightMitarbeiterstundenkontoViewAll || AbstractModel.HasRightMitarbeiterstundenkontoViewTeams)
{
<div id="msk-team-form">
<div class="form-row">
<div class="col">
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="msk-all-teams-cb"/>
<label class="form-check-label" for="msk-all-teams-cb" onclick="allTeamsCbOnClick()">Alle Teams</label>
</div>
</div>
</div>
<div class="form-row" id="msk-team-list">
<div class="col">
@Html.DropDownListFor(model => model.SelectedTeamOid, Model.Teams, new { @class = "custom-select mb-3", id = "msk-team-select" })
</div>
</div>
</div>
}
<div class="form-row">
<div class="col">
@Html.DropDownListFor(model => model.SelectedMonth, Model.Months, new { @class = "custom-select mb-3", id = "msk-month-select" })
</div>
<div class="col">
@Html.DropDownListFor(model => model.SelectedYear, Model.Years, new { @class = "custom-select mb-3", id = "msk-year-select" })
</div>
</div>
<div class="form-row">
@{
var str = BS.Shared.Translation.Translator.Translate("StundenkontoTagesansicht");
}
@if(str == "StundenkontoTagesansicht")
{
<div class="col-4">
<div class="form-check">
<input class="form-check-input" type="radio" name="msk-ansichtsradio" id="msk-tagesansichtsradio"/>
<label for="msk-tagesansichtsradio">Tag</label>
</div>
</div>
<div class="col-4">
<div class="form-check">
<input class="form-check-input" type="radio" name="msk-ansichtsradio" id="msk-monatsansichtsradio" checked/>
<label for="msk-monatsansichtsradio">Monat</label>
</div>
</div>
<div class="col-4">
<div class="form-check">
<input class="form-check-input" type="radio" name="msk-ansichtsradio" id="msk-jahresansichtsradio"/>
<label for="msk-jahresansichtsradio">Jahr</label>
</div>
</div>
}
else
{
<div class="col">
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="msk-tagesansicht-cb"/>
<label class="form-check-label" for="msk-tagesansicht-cb">@str</label>
</div>
</div>
}
</div>
<div class="form-row">
<div class="col">
<button type="button" class="btn btn-primary w-100" onclick="createMitarbeiterstundenkontoReport()">Erstellen</button>
</div>
</div>
</div>
}