kreta/KretaWeb/Areas/LEPModul/Views/Shared/EloadasokDetailPartial.cshtml
2024-03-13 00:33:46 +01:00

440 lines
No EOL
20 KiB
Text

@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Areas.LEPModul.Models
@using Kreta.Resources
@using Kreta.Enums.ManualEnums
@using Kreta.Web.Security
@model EloadasokDetailModel
<style>
.eloadasok-multiselect .k-floatwrap {
border: solid 1px #aab7c4 !important;
}
</style>
<style type="text/css">
.jelenletGridColumnHeader {
cursor: pointer;
float: left;
width: 50px;
text-align: center;
}
.jelenletGridColumnHeaderIgen {
padding: 2px 10px 4px 10px;
margin-top: 2px;
color: #FFFFFF;
border: 1px solid #C5D3E2 !important;
background-color: #54A5D1;
}
.jelenletGridColumnHeaderNem {
padding: 2px 10px 4px 10px;
margin-top: 2px;
margin-left: 4px;
color: #5C6A79;
border: 1px solid #C5D3E2 !important;
}
.tankerTorolteUzenet {
color: red;
font-weight: bold;
justify-content: center;
}
</style>
<div id="partialDetailGrid_@Model.ID.ToString()">
@{
List<SelectListItem> JelenletList = new List<SelectListItem>();
JelenletList.Add(new SelectListItem() { Text = "Megjelent", Value = "T" });
JelenletList.Add(new SelectListItem() { Text = "Nem jelent meg", Value = "F" });
var grid = Html.KretaGrid<EloadasokDetailGridModel>
(
name: "EloadasokDetailGrid_" + Model.ID.ToString(),
getUrl: new GridApiUrl("EloadasokKezeleseApi", "GetEloadasokDetailGrid", new Dictionary<string, string>()),
useToolBar: false,
allowSorting: false,
readDataFunction: "function(){ return { data: '" + Model.ToJson(true) + "' }; }"
)
.Columns(columns =>
{
columns.Bound(c => c.TanuloNev);
columns.Bound(c => c.OsztalyCsoportNev);
columns.Bound(c => c.GondviseloElfogadas).ClientTemplate(@"
#if (GondviseloElfogadas == 'T') { # Igen # } #
#if (GondviseloElfogadas == 'F') { # Nem # } #
#if (GondviseloElfogadas == null || GondviseloElfogadas == ' ') { # Függőben # } #
");
columns.Bound(c => c.TanuloOktAzon).Hidden();
columns.Bound(c => c.IntezmenyNev).Hidden();
columns.Bound(c => c.IntezmenyAzon).Hidden();
})
.AutoBind(true)
.Excel(excel => excel
.FileName("JelenletiIv.xlsx")
.AllPages(true)
);
if (Model.Datum > DateTime.Now.Date)
{
if (ClaimData.JustLEPOrganization)
{
grid.FunctionCommand(Html, new List<FunctionCommand>() { new FunctionCommand() { Name = EloadasokResource.DokumentumLetoltes, ClientAction = "LEPDetailHelper.DokumentumLetoltes" }, new FunctionCommand() { Name = "Jelenléti Ív", ClientAction = "LEPHelper.JelenletiIv" }, new FunctionCommand() { Name = "Export", ClientAction = "LEPHelper.Export" } });
}
else
{
grid.FunctionCommand(Html, new List<FunctionCommand>() { new FunctionCommand() { Name = "Jelenléti Ív", ClientAction = "LEPHelper.JelenletiIv" }, new FunctionCommand() { Name = "Export", ClientAction = "LEPHelper.Export" } });
}
grid.ConditionalRowFunction(Html, new List<RowFunction> {
new RowFunction { NameResourceId = 117 /*Törlés*/, ClientAction = "LEPHelper.DeleteTanulokForEloadas", IconEnum = GridRowFunctionIconEnum.Torles }
}, "LEPHelper.setRowDeleting");
}
else
{
grid.Columns(c => c.Template(t => t.ToString()).HeaderHtmlAttributes(new { @class = "mulasztasGridColumnHeaderTh" })
.Title(@"<div>
<div class='jelenletGridColumnHeader jelenletGridColumnHeaderIgen' style='width: 70px; float: left;' onclick='LEPHelper.ChangeAllJelenletValue(" + Model.ID + ", true);'>" + "Megjelent" + @"</div>
<div class='jelenletGridColumnHeader jelenletGridColumnHeaderNem' style='width: 100px; float: left;' onclick='LEPHelper.ChangeAllJelenletValue(" + Model.ID + ", false);'>" + "Nem jelent meg" + @"</div>
</div>")
.ClientTemplate(@"
#if (isErasable == 'T') { # " +
grid.SelectForColumnTemplate(Html.For<EloadasokDetailGridModel>(), x => x.Megjelent, JelenletList)
+ @"# } #"
)
);
if (ClaimData.JustLEPOrganization)
{
grid.FunctionCommand(Html, new List<FunctionCommand>() { new FunctionCommand() { Name = "Engedélykérő dokumenutumok letöltése", ClientAction = "LEPDetailHelper.DokumentumLetoltes" }, new FunctionCommand() { Name = "Jelenléti Ív", ClientAction = "LEPHelper.JelenletiIv" }, new FunctionCommand() { Name = "Jelenlét mentés", ClientAction = "LEPHelper.JelenletMentes" }, new FunctionCommand() { Name = "Export", ClientAction = "LEPHelper.Export" } });
}
else
{
grid.FunctionCommand(Html, new List<FunctionCommand>() { new FunctionCommand() { Name = "Jelenléti Ív", ClientAction = "LEPHelper.JelenletiIv" }, new FunctionCommand() { Name = "Jelenlét mentés", ClientAction = "LEPHelper.JelenletMentes" }, new FunctionCommand() { Name = "Export", ClientAction = "LEPHelper.Export" } });
}
}
}
@if (Model.IsToroltJelentkezes)
{
<div class="row">
<label class="windowInputLabel tankerTorolteUzenet">@EloadasokResource.ATankeruletiKozpontTorolteAzEloadashozRogzitettJelentkezoket</label>
</div>
}
<div class="row">
<div class="col-xs-3 col-sm-3 col-md-3">
<div class="col-xs-12 col-sm-12 col-md-12" style="padding-left: 0px; padding-right: 0px;">
<label class="windowInputLabel">@EloadasokResource.EvFolyam</label>
</div>
<div class="col-xs-12 col-sm-12 col-md-12" style="padding-left: 0px; padding-right: 0px;">
@Html.KretaComboBox("PartialEvfolyamComboSelect_" + Model.ID.ToString(), null, "Text", "Value", null, null)
</div>
</div>
<div class="col-xs-4 col-sm-4 col-md-4" style="margin-top: 20px;">
<label class="windowInputLabel">@(string.Format(EloadasokResource.EngedelyezettTanuloiLetszamFormat, Model.TanuloLetszam))</label>
</div>
<div class="col-xs-4 col-sm-4 col-md-4" style="margin-top: 20px;">
<label class="windowInputLabel">@(string.Format(EloadasokResource.EngedelyezettKiseroiLetszamFormat, Model.KiseroLetszam))</label>
</div>
<div class="col-xs-1 col-sm-1 col-md-1">
</div>
</div>
<div class="row">
<div class="col-xs-3 col-sm-3 col-md-3"><label class="windowInputLabel">@EloadasokResource.Osztaly</label></div>
<div class="col-xs-5 col-sm-5 col-md-5"><label class="windowInputLabel">Tanuló (<span id="selectedTanulo_@Model.ID.ToString()">0</span>)</label></div>
<div class="col-xs-2 col-sm-2 col-md-2 kretaLabelTooltip"><label class="windowInputLabel">@EloadasokResource.KiseroOsszLetszam &nbsp;<img class="kretaLabelTooltipImg"><span class="kretaLabelTooltipText">@EloadasokResource.KiseroOsszLetszamIntezmeny</span></label></div>
<div class="col-xs-2 col-sm-2 col-md-2"><label class="windowInputLabel"></label></div>
</div>
<div class="row">
<div class="col-xs-3 col-sm-3 col-md-3">
@Html.KretaComboBox("PartialComboSelect_" + Model.ID.ToString(), null, "Text", "Value", null, null)
</div>
<div class="col-xs-5 col-sm-5 col-md-5 eloadasok-multiselect">
@Html.KretaMultiSelect("PartialMultiSelect_" + Model.ID.ToString(), null, "Text", "Value", null, null)
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
@Html.KretaNumeric("Kisero_" + Model.ID.ToString()).Min(0).Max(100).Step(1).Format("").Decimals(0).Value(Model.KiseroSzam)
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
<input type="button" class="k-button" id="SaveBtn_@Model.ID.ToString()" name="SaveBtn_@Model.ID.ToString()" value="@CommonResource.Mentes" />
</div>
</div>
@if (Model.Datum >= DateTime.Now.Date)
{
<br />
<div class="row">
<div class="col-xs-3 col-sm-3 col-md-3"><label class="windowInputLabel">@EloadasokResource.TorolniKivantOsztalyok</label></div>
<div class="col-xs-2 col-sm-2 col-md-2"><label class="windowInputLabel"></label></div>
</div>
<div class="row">
<div class="col-xs-3 col-sm-3 col-md-3">
@Html.KretaComboBox("PartialComboDeleteSelect_" + Model.ID.ToString(), null, "Text", "Value", null, null)
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
<input type="button" class="k-button" id="DeleteBtn_@Model.ID.ToString()" name="DeleteBtn_@Model.ID.ToString()" value="@CommonResource.Torles" />
</div>
</div>
}
<br />
@(grid)
@*}
else
{
@(grid)
<div class="row"></div>
<div class="row">
<div class="col-xs-2 col-sm-2 col-md-2 kretaLabelTooltip"><label class="windowInputLabel">Kísérő összlétszám &nbsp;<img class="kretaLabelTooltipImg"><span class="kretaLabelTooltipText">Az intézményből az előadásra küldendő kísérők összlétszáma.</span></label></div>
</div>
<div class="row">
<div class="col-xs-2 col-sm-2 col-md-2">
@Html.KretaNumeric("Kisero_" + Model.ID.ToString()).Min(0).Max(100).Step(1).Format("").Decimals(0).Value(Model.KiseroSzam).Enable(false)
</div>
</div>
}*@
<div class="clear"></div>
<script type="text/javascript">
$(document).ready(function () {
GetEvfolyamok();
$("#PartialMultiSelect_@Model.ID.ToString()").change(function () {
var selectedValues = $(this).val();
if (selectedValues != null) {
$("#selectedTanulo_@Model.ID.ToString()").text(selectedValues.length);
}
else {
$("#selectedTanulo_@Model.ID.ToString()").text(0);
}
});
$("#DeleteBtn_@Model.ID.ToString()").click(function () {
KretaWindowHelper.confirmWindow("@(CommonResource.Figyelmeztetes)", "Biztosan törli a kijelölt osztályba járó összes tanuló jelentkezését?", deleteTanuloByOsztaly);
});
function deleteTanuloByOsztaly() {
var urlDelete = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "EloadasokKezeleseApi", action = "DeleteTanulokForEloadasByOsztaly" })";
AjaxHelper.DoPost(urlDelete, { eloadasId: "@Model.ID", osztalyId: $("#PartialComboDeleteSelect_@Model.ID.ToString()").data("kendoComboBox").value() }, saveResponseOk, saveResponseError);
}
$("#SaveBtn_@Model.ID.ToString()").click(function () {
var tanuloIds = $("#PartialMultiSelect_@Model.ID.ToString()").val();
var grid = $("#EloadasokDetailGrid_@Model.ID.ToString()").data('kendoGrid').dataSource.data();
var kiseroSzam = $("#Kisero_@Model.ID.ToString()").data('kendoNumericTextBox').value();
if (tanuloIds != null) {
$.each(grid, function (i, v) {
tanuloIds = $.grep(tanuloIds, function (value) {
return value != v.TanuloId.toString();
});
});
}
if (kiseroSzam >= 0) {
var postData = {
"eloadasId": "@Model.ID",
"tanuIds": tanuloIds,
"kiseroSzam": kiseroSzam,
"szervNev": "@Model.SzervezetNev",
"eloadasNev": "@Model.EloadasNev",
"idopont": "@Model.Datum",
"kezdete": "@Model.EloadasKezdete",
"vege": "@Model.EloadasVege",
"ferohelyFoglaltHelyek": "@Model.FerohelyFoglaltHelyek",
"tanuloLetszam": "@Model.TanuloLetszam",
"kiseroLetszam": "@Model.KiseroLetszam",
"tanuloLetszamFennmarado": "@Model.TanuloLetszamFennmarado",
"kiseroLetszamFennmarado": "@Model.KiseroLetszamFennmarado",
};
var urlSaveTanulok = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "EloadasokKezeleseApi", action = "SaveTanulokForEloadas" })";
AjaxHelper.DoPost(urlSaveTanulok, postData, saveResponseOk, saveResponseError);
}
});
$("#PartialEvfolyamComboSelect_@Model.ID.ToString()").change(function () {
var evfolyamId = $("#PartialEvfolyamComboSelect_@Model.ID.ToString()").val();
if ($.isNumeric(evfolyamId)) {
GetOsztalyok(evfolyamId);
}
else {
ClearOsztalyok();
}
});
$("#PartialComboSelect_@Model.ID.ToString()").change(function () {
var osztalyId = $("#PartialComboSelect_@Model.ID.ToString()").val();
if ($.isNumeric(osztalyId)) {
GetTanulok(osztalyId);
}
else {
ClearTanulok();
}
});
function saveResponseOk() {
KretaGridHelper.refreshGrid("EloadasokGrid");
}
function saveResponseError(error) {
KretaWindowHelper.feedbackWindow("@(ErrorResource.Hiba)", error.responseJSON.Message, true);
}
function GetTanulok(osztalyId) {
var urlGetTanulok = "@Url.HttpRouteUrl("ActionApi", new { controller = "EloadasokKezeleseApi", action = "GetTanulokForOsztaly" })";
var modelId = '@Model.ID';
var evfolyam = $('#PartialEvfolyamComboSelect_@Model.ID.ToString()').data('kendoComboBox');
if (osztalyId != '') {
var jsonData = { eloadasId: modelId, evfolyamId: evfolyam.value(), filter: osztalyId, isMindenEvfolyamJog: "@Model.IsMindenEvfolyamJog" };
}
else {
var jsonData = { eloadasId: modelId, evfolyamId: evfolyam.value(), isMindenEvfolyamJog: "@Model.IsMindenEvfolyamJog" };
}
AjaxHelper.DoGet(urlGetTanulok, jsonData,
function (data) {
var dataSource = new kendo.data.DataSource();
if (data != "") {
dataSource.data(data);
var multiselect = $("#PartialMultiSelect_@Model.ID.ToString()").data("kendoMultiSelect");
multiselect.setDataSource(dataSource);
multiselect.refresh();
if (data.length == 1) { multiselect.value(''); }
var selectedValues = [];
for (var i = 0; i < multiselect.dataSource.data().length; i++) {
var item = multiselect.dataSource.data()[i];
selectedValues.push(item.Value);
}
multiselect.value(selectedValues);
$("#selectedTanulo_@Model.ID.ToString()").text(selectedValues.length);
}
else {
ClearTanulok();
}
});
}
function GetOsztalyok(evfolyamId) {
var urlGetOsztalyok = "@Url.HttpRouteUrl("ActionApi", new { controller = "EloadasokKezeleseApi", action = "GetOsztalyokForEloadas" })";
var modelId = '@Model.ID';
var jsonData = { eloadasId: modelId, evfolyamId: evfolyamId, isMindenEvfolyamJog: "@Model.IsMindenEvfolyamJog" };
AjaxHelper.DoGet(urlGetOsztalyok, jsonData,
function (data) {
var dataSource = new kendo.data.DataSource();
var tanulokMultiSelect = $("#PartialMultiSelect_@Model.ID.ToString()").data("kendoMultiSelect");
tanulokMultiSelect.value([]);
tanulokMultiSelect.dataSource.data([]);
if (data.Item1 != "") {
dataSource.data(data.Item1);
var multiselect = $("#PartialComboSelect_@Model.ID.ToString()").data("kendoComboBox");
var multiselectDelete = $("#PartialComboDeleteSelect_@Model.ID.ToString()").data("kendoComboBox");
if (multiselect != undefined) {
multiselect.setDataSource(dataSource);
multiselect.refresh();
if (data.Item1.length == 1) { setTimeout(function () { multiselect.value(''); }, 1); }
}
if (multiselectDelete != undefined) {
var deleteDataSource = new kendo.data.DataSource();
deleteDataSource.data(data.Item2)
multiselectDelete.setDataSource(deleteDataSource);
multiselectDelete.refresh();
if (data.Item2.length == 1) { multiselectDelete.value(''); }
}
}
else {
ClearOsztalyok();
ClearTorlendoOsztalyok();
}
}
);
}
function GetEvfolyamok() {
var urlGetEvfolyamok = "@Url.HttpRouteUrl("ActionApi", new { controller = "EloadasokKezeleseApi", action = "GetEvfolyamokForEloadas" })";
var modelId = '@Model.ID';
var jsonData = { eloadasId: modelId, evfolyamIdList: '@Model.EvfolyamIdList', isMindenEvfolyamJog: "@Model.IsMindenEvfolyamJog" };
AjaxHelper.DoGet(urlGetEvfolyamok, jsonData,
function (data) {
var dataSource = new kendo.data.DataSource();
if (data != "") {
dataSource.data(data);
var comboboxEvfolyam = $("#PartialEvfolyamComboSelect_@Model.ID.ToString()").data("kendoComboBox");
if (comboboxEvfolyam != undefined) {
comboboxEvfolyam.setDataSource(dataSource);
comboboxEvfolyam.refresh();
if (data.length == 1) { setTimeout(function () { comboboxEvfolyam.value(''); }, 1); }
}
}
}
);
}
function ClearOsztalyok() {
var osztalyCombobox = $("#PartialComboSelect_@Model.ID.ToString()").data("kendoComboBox");
if (osztalyCombobox != undefined) {
osztalyCombobox.text("");
osztalyCombobox.value("");
osztalyCombobox.dataSource.data([]);
}
ClearTanulok();
}
function ClearTorlendoOsztalyok() {
var osztalyCombobox = $("#PartialComboDeleteSelect_@Model.ID.ToString()").data("kendoComboBox");
if (osztalyCombobox != undefined) {
osztalyCombobox.text("");
osztalyCombobox.value("");
osztalyCombobox.dataSource.data([]);
}
}
function ClearTanulok() {
var multiselect = $("#PartialMultiSelect_@Model.ID.ToString()").data("kendoMultiSelect");
if (multiselect != undefined) {
var dataSource = new kendo.data.DataSource();
multiselect.setDataSource(dataSource);
multiselect.value([]);
$("#PartialMultiSelect_@Model.ID.ToString()").change();
}
}
});
</script>
<script type="text/javascript">
var LEPDetailHelper = (function () {
var helper = function () { };
helper.DokumentumLetoltes = function (data) {
var json = [];
var gridTanuloAllRows = KretaGridHelper.getAllRows("EloadasokDetailGrid_" + "@Model.ID.ToString()");
$.each(gridTanuloAllRows, function (i, v) {
json.push({
SzervezetNev : v.szervezetNev,
EloadasHelyszin : v.eloadasHelyszin,
EloadasNev : v.eloadasNev,
EloadasIdopontja : v.datum.substring(0, 10).replace('-','.').replace('-','.') + ". " + v.kezdete.substring(11,16) + " - " + v.vege.substring(11,16),
TanuloNev : v.TanuloNev,
TanuloOktAzon : v.TanuloOktAzon,
});
});
$("#data").val(JSON.stringify(json));
$("#downloadBtn").click();
}
return helper;
})();
</script>
</div>