This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,671 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Results;
using System.Web.Mvc;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Client.LEP;
using Kreta.Core.Configuratiaton.Interface;
using Kreta.Enums;
using Kreta.Resources;
using Kreta.Web.Areas.LEPModul.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.LEPModul.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.IsLEPKezelo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
public class EloadasokKezeleseApiController : ApiController
{
private readonly ILepConfiguration LepConfiguration;
public EloadasokKezeleseApiController(ILepConfiguration lepConfiguration)
{
LepConfiguration = lepConfiguration ?? throw new ArgumentNullException(nameof(lepConfiguration));
}
public DataSourceResult GetEloadasokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
try
{
EloadasokSearchModel model = JsonConvert.DeserializeObject<EloadasokSearchModel>(data);
List<EloadasokGridModel> lEloadasok = new List<EloadasokGridModel>();
List<EloadasokGridModel> LResult = new List<EloadasokGridModel>();
model.EvfolyamIdList = new List<int>();
if (model.EvfolyamID.HasValue)
{
model.EvfolyamIdList.Add(model.EvfolyamID.Value);
}
else
{
if (!model.IsMindenEvfolyamJog)
{
foreach (var item in new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetLEPOszlyCspoortByTanevAndFelhasznalo(ClaimData.FelhasznaloId))
{
model.EvfolyamIdList.Add(item.EvfolyamTipusa);
}
}
}
var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey);
var kozpontiResult = client.GetEloadasok(ClaimData.IntezmenyAzonosito, model.EvfolyamIdList);
if (kozpontiResult != null)
{
var groupedResult = kozpontiResult.GroupBy(x => (x.Id, x.IranyitoSzam, x.Telepules, x.KozteruletNev, x.KozteruletJellegNev, x.Hazszam, x.Kezdete, x.Vege, x.SzervezetNev, x.Nev, x.Leiras))
.ToDictionary(x => x.Key, x =>
(EvfolyamIdList: x.Select(y => y.Evfolyam).ToList(),
Ferohelyek: x.Select(y => (
FerohelyMax: y.KiseroLetszam + y.TanuloLetszam,
JelentkezokSzama: (y.KiseroJelentkezokSzama ?? 0) + (y.TanuloJelentkezokSzama ?? 0))).Distinct().Single(),
EngedelyezettLetszamok: x.Select(y => (
KiseroLetszam: y.KiseroLetszam,
KiseroLetszamFennmarado: y.KiseroLetszamFennmarado,
TanuloLetszam: y.TanuloLetszam,
TanuloLetszamFennmarado: y.TanuloLetszamFennmarado)).Distinct().Single(),
IsToroltJelentkezes: x.Select(y => y.IsToroltJelentkezes).Distinct().Single()));
foreach (var item in groupedResult)
{
if (item.Value.IsToroltJelentkezes)
{
new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()).DeleteTanulokByEloadasId(item.Key.Id);
}
if (item.Value.EvfolyamIdList.Intersect(Core.Constants.LepEnabledEvfolyam).Any())
{
lEloadasok.Add(new EloadasokGridModel()
{
ID = $"{item.Key.Id}",
Helyszin = $"{item.Key.IranyitoSzam} {item.Key.Telepules} {item.Key.KozteruletNev} {item.Key.KozteruletJellegNev} {item.Key.Hazszam}",
Datum = item.Key.Kezdete.Date,
EloadasKezdete = item.Key.Kezdete,
EloadasVege = item.Key.Vege,
SzervezetNev = item.Key.SzervezetNev,
EloadasNev = item.Key.Nev,
FerohelyFoglaltHelyek = $"{item.Value.Ferohelyek.FerohelyMax} / {item.Value.Ferohelyek.JelentkezokSzama}",
EvFolyamIdList = string.Join(",", item.Value.EvfolyamIdList),
Leiras = item.Key.Leiras,
KiseroLetszam = item.Value.EngedelyezettLetszamok.KiseroLetszam,
TanuloLetszam = item.Value.EngedelyezettLetszamok.TanuloLetszam,
KiseroLetszamFennmarado = item.Value.EngedelyezettLetszamok.KiseroLetszamFennmarado,
TanuloLetszamFennmarado = item.Value.EngedelyezettLetszamok.TanuloLetszamFennmarado,
IsToroltJelentkezes = item.Value.IsToroltJelentkezes,
});
}
}
if (!string.IsNullOrWhiteSpace(model.EloadasNev))
lEloadasok = lEloadasok.Where(x => x.EloadasNev.ToLower().Contains(model.EloadasNev.ToLower())).ToList();
if (!string.IsNullOrWhiteSpace(model.Helyszin))
lEloadasok = lEloadasok.Where(x => x.Helyszin.ToLower().Contains(model.Helyszin.ToLower())).ToList();
if (model.EvfolyamID.HasValue)
lEloadasok = lEloadasok.Where(x => x.EvFolyamIdList.Contains(model.EvfolyamID.Value.ToString())).ToList();
if (model.IdoszakKezdete.HasValue || model.IdoszakVege.HasValue)
{
if (model.IdoszakKezdete.HasValue && model.IdoszakVege.HasValue)
lEloadasok = lEloadasok.Where(x => x.Datum >= model.IdoszakKezdete && x.Datum <= model.IdoszakVege).ToList();
if (model.IdoszakKezdete.HasValue && !model.IdoszakVege.HasValue)
lEloadasok = lEloadasok.Where(x => x.Datum >= model.IdoszakKezdete).ToList();
if (!model.IdoszakKezdete.HasValue && model.IdoszakVege.HasValue)
lEloadasok = lEloadasok.Where(x => x.Datum <= model.IdoszakVege).ToList();
}
if (!string.IsNullOrWhiteSpace(model.SzervezetNev))
lEloadasok = lEloadasok.Where(x => x.SzervezetNev.ToLower().Contains(model.SzervezetNev.ToLower())).ToList();
if (model.IdoszakKezdeteTime.HasValue)
lEloadasok = lEloadasok.Where(x => x.EloadasKezdete.Value.TimeOfDay == model.IdoszakKezdeteTime.Value.TimeOfDay).ToList();
if (model.IdoszakVegeTime.HasValue)
lEloadasok = lEloadasok.Where(x => x.EloadasVege.Value.TimeOfDay == model.IdoszakVegeTime.Value.TimeOfDay).ToList();
}
if (lEloadasok.Count > 0)
{
if (request.Sorts.Count == 1)
{
var sort = request.Sorts[0];
if (sort.Member == "Datum" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.Datum).ToList(); }
if (sort.Member == "Datum" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.Datum).ToList(); }
if (sort.Member == "EloadasKezdete" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.EloadasKezdete).ToList(); }
if (sort.Member == "EloadasKezdete" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.EloadasKezdete).ToList(); }
if (sort.Member == "EloadasVege" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.EloadasVege).ToList(); }
if (sort.Member == "EloadasVege" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.EloadasVege).ToList(); }
if (sort.Member == "EloadasNev" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.EloadasNev).ToList(); }
if (sort.Member == "EloadasNev" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.EloadasNev).ToList(); }
if (sort.Member == "Helyszin" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.Helyszin).ToList(); }
if (sort.Member == "Helyszin" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.Helyszin).ToList(); }
if (sort.Member == "SzervezetNev" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.SzervezetNev).ToList(); }
if (sort.Member == "SzervezetNev" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.SzervezetNev).ToList(); }
}
else
{
LResult = lEloadasok.ToList();
}
var cnt = LResult.Count;
var result = LResult.ToDataSourceResult();
result.Total = cnt;
result.Data = GetPage(LResult, request.Page, request.PageSize, cnt);
return result;
}
return new DataSourceResult();
}
catch
{
return new DataSourceResult();
}
}
public DataSourceResult GetEloadasokGondviseloGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
try
{
EloadasokSearchModel model = JsonConvert.DeserializeObject<EloadasokSearchModel>(data);
List<EloadasokGridModel> lEloadasok = new List<EloadasokGridModel>();
List<EloadasokGridModel> LResult = new List<EloadasokGridModel>();
model.EvfolyamIdList = new List<int>();
model.IntezmenyAzonosito = ClaimData.IntezmenyAzonosito;
if (model.EvfolyamID.HasValue)
{
model.EvfolyamIdList.Add(model.EvfolyamID.Value);
}
else
{
if (!model.IsMindenEvfolyamJog)
{
foreach (var item in new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetLEPOszlyCspoortByTanevAndFelhasznalo(ClaimData.FelhasznaloId))
{
model.EvfolyamIdList.Add(item.EvfolyamTipusa);
}
}
}
var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey);
var kozpontiResult = client.GetEloadasok(ClaimData.IntezmenyAzonosito, model.EvfolyamIdList);
if (kozpontiResult != null)
{
var groupedResult = kozpontiResult.GroupBy(x => (x.Id, x.IranyitoSzam, x.Telepules, x.KozteruletNev, x.KozteruletJellegNev, x.Hazszam, x.Kezdete, x.Vege, x.SzervezetNev, x.Nev, x.Leiras)).ToDictionary(x => x.Key, x => (EvfolyamIdList: x.Select(y => y.Evfolyam).ToList(), Ferohelyek: x.Select(y => (FerohelyMax: y.KiseroLetszam + y.TanuloLetszam, JelentkezokSzama: (y.KiseroJelentkezokSzama ?? 0) + (y.TanuloJelentkezokSzama ?? 0))).Distinct().Single(), EngedelyezettLetszamok: x.Select(y => (KiseroLetszam: y.KiseroLetszam, TanuloLetszam: y.TanuloLetszam)).Distinct().Single()));
foreach (var item in groupedResult)
{
if (item.Value.EvfolyamIdList.Intersect(Core.Constants.LepEnabledEvfolyam).Any())
{
lEloadasok.Add(new EloadasokGridModel()
{
ID = $"{item.Key.Id}",
Helyszin = $"{item.Key.IranyitoSzam} {item.Key.Telepules} {item.Key.KozteruletNev} {item.Key.KozteruletJellegNev} {item.Key.Hazszam}",
Datum = item.Key.Kezdete.Date,
EloadasKezdete = item.Key.Kezdete,
EloadasVege = item.Key.Vege,
SzervezetNev = item.Key.SzervezetNev,
EloadasNev = item.Key.Nev,
FerohelyFoglaltHelyek = $"{item.Value.Ferohelyek.FerohelyMax} / {item.Value.Ferohelyek.JelentkezokSzama}",
EvFolyamIdList = string.Join(",", item.Value.EvfolyamIdList),
KiseroLetszam = item.Value.EngedelyezettLetszamok.KiseroLetszam,
TanuloLetszam = item.Value.EngedelyezettLetszamok.TanuloLetszam,
});
}
}
}
var eHelper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanuloEloadas = eHelper.GetTanuloEloadasai(ClaimData.FelhasznaloId);
List<EloadasokGridModel> removableList = new List<EloadasokGridModel>();
foreach (DataRow item in tanuloEloadas.Tables[0].Rows)
{
var removable = lEloadasok.Where(x => x.ID == (item.Field<int>("EloadasId")).ToString()).FirstOrDefault();
removableList.Add(removable);
}
lEloadasok.RemoveAll(item => !removableList.Contains(item));
foreach (var item in lEloadasok)
{
foreach (DataRow row in tanuloEloadas.Tables[0].Rows)
{
if (item.ID == (row.Field<int>("EloadasId")).ToString())
{
item.GondviseloElfogadas = row.Field<string>("GondviseloElfogadas");
item.Megjelent = row.Field<string>("Megjelent_BNAME");
}
}
}
if (!string.IsNullOrWhiteSpace(model.EloadasNev))
lEloadasok = lEloadasok.Where(x => x.EloadasNev.ToLower().Contains(model.EloadasNev.ToLower())).ToList();
if (!string.IsNullOrWhiteSpace(model.Helyszin))
lEloadasok = lEloadasok.Where(x => x.Helyszin.ToLower().Contains(model.Helyszin.ToLower())).ToList();
if (model.EvfolyamID.HasValue)
lEloadasok = lEloadasok.Where(x => x.EvFolyamIdList.Contains(model.EvfolyamID.Value.ToString())).ToList();
if (model.IdoszakKezdete.HasValue || model.IdoszakVege.HasValue)
{
if (model.IdoszakKezdete.HasValue && model.IdoszakVege.HasValue)
lEloadasok = lEloadasok.Where(x => x.Datum >= model.IdoszakKezdete && x.Datum <= model.IdoszakVege).ToList();
if (model.IdoszakKezdete.HasValue && !model.IdoszakVege.HasValue)
lEloadasok = lEloadasok.Where(x => x.Datum >= model.IdoszakKezdete).ToList();
if (!model.IdoszakKezdete.HasValue && model.IdoszakVege.HasValue)
lEloadasok = lEloadasok.Where(x => x.Datum <= model.IdoszakVege).ToList();
}
if (!string.IsNullOrWhiteSpace(model.SzervezetNev))
lEloadasok = lEloadasok.Where(x => x.SzervezetNev.ToLower().Contains(model.SzervezetNev.ToLower())).ToList();
if (model.IdoszakKezdeteTime.HasValue)
lEloadasok = lEloadasok.Where(x => x.EloadasKezdete.Value.TimeOfDay == model.IdoszakKezdeteTime.Value.TimeOfDay).ToList();
if (model.IdoszakVegeTime.HasValue)
lEloadasok = lEloadasok.Where(x => x.EloadasVege.Value.TimeOfDay == model.IdoszakVegeTime.Value.TimeOfDay).ToList();
if (lEloadasok.Count > 0)
{
if (request.Sorts.Count == 1)
{
var sort = request.Sorts[0];
if (sort.Member == "Datum" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.Datum).ToList(); }
if (sort.Member == "Datum" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.Datum).ToList(); }
if (sort.Member == "EloadasKezdete" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.EloadasKezdete).ToList(); }
if (sort.Member == "EloadasKezdete" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.EloadasKezdete).ToList(); }
if (sort.Member == "EloadasVege" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.EloadasVege).ToList(); }
if (sort.Member == "EloadasVege" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.EloadasVege).ToList(); }
if (sort.Member == "EloadasNev" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.EloadasNev).ToList(); }
if (sort.Member == "EloadasNev" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.EloadasNev).ToList(); }
if (sort.Member == "Helyszin" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.Helyszin).ToList(); }
if (sort.Member == "Helyszin" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.Helyszin).ToList(); }
if (sort.Member == "SzervezetNev" && sort.SortDirection == ListSortDirection.Ascending)
{ LResult = lEloadasok.OrderBy(x => x.SzervezetNev).ToList(); }
if (sort.Member == "SzervezetNev" && sort.SortDirection == ListSortDirection.Descending)
{ LResult = lEloadasok.OrderByDescending(x => x.SzervezetNev).ToList(); }
}
else
{
LResult = lEloadasok.ToList();
}
var cnt = LResult.Count;
var result = LResult.ToDataSourceResult();
result.Total = cnt;
result.Data = GetPage(LResult, request.Page, request.PageSize, cnt);
return result;
}
return new DataSourceResult();
}
catch
{
return new DataSourceResult();
}
}
List<EloadasokGridModel> GetPage(List<EloadasokGridModel> list, int page, int pageSize, int fullCnt)
{
page--;
return list.Skip(page * pageSize).Take(pageSize).ToList();
}
public DataSourceResult GetEloadasokDetailGrid(string data, [System.Web.Mvc.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<EloadasokDetailModel>(data);
var id = int.Parse(model.ID);
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = helper.GetEloadasJegyzekek(id, ClaimData.FelhasznaloId, model.IsMindenEvfolyamJog, model.Datum.Value, model.EvFolyamId, model.SzervezetNev, model.EloadasNev, model.EloadasKezdete.Value, model.EloadasVege.Value, model.Helyszin);
return result.ToDataSourceResult();
}
public JsonResult<List<SelectListItem>> GetTanulokForEloadas(int? eloadasId = null, int? evfolyamId = null, string filter = null, string isMindenEvfolyamJog = null)
{
var list = new List<SelectListItem>();
if (eloadasId.HasValue && evfolyamId.HasValue)
{
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSet ds = helper.GetTanulokForEloadas(eloadasId.Value, evfolyamId.Value, filter, !string.IsNullOrWhiteSpace(isMindenEvfolyamJog) && SDAConvert.ToBoolean(isMindenEvfolyamJog) == false ? ClaimData.FelhasznaloId : (int?)null);
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
list.AddRange(ds.Tables[0].AsEnumerable().Select(dataRow => new SelectListItem
{
Value = dataRow.Field<int>("TanuloId").ToString(),
Text = dataRow.Field<string>("TanuloNev").ToString(),
Selected = false
}).ToList());
}
}
return Json(list);
}
public JsonResult<List<SelectListItem>> GetTanulokForOsztaly(int? eloadasId = null, int? evfolyamId = null, string filter = null, string isMindenEvfolyamJog = null)
{
var list = new List<SelectListItem>();
if (eloadasId.HasValue && evfolyamId.HasValue && filter != null)
{
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSet ds = helper.GetTanulokForOsztaly(int.Parse(filter));
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
list.AddRange(ds.Tables[0].AsEnumerable().Select(dataRow => new SelectListItem
{
Value = dataRow.Field<int>("TanuloId").ToString(),
Text = dataRow.Field<string>("TanuloNyomtatasiNev").ToString(),
Selected = false
}).ToList());
}
}
return Json(list);
}
public JsonResult<(List<SelectListItem>, List<SelectListItem>)> GetOsztalyokForEloadas(int? eloadasId = null, int? evfolyamId = null, string isMindenEvfolyamJog = null)
{
var list = new List<SelectListItem>();
var jelentkezettOsztalyList = new List<SelectListItem>();
if (eloadasId.HasValue && evfolyamId.HasValue)
{
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSet ds = helper.GetOsztalyokForEloadas(eloadasId.Value, evfolyamId.Value, !string.IsNullOrWhiteSpace(isMindenEvfolyamJog) && SDAConvert.ToBoolean(isMindenEvfolyamJog) == false ? ClaimData.FelhasznaloId : (int?)null);
DataSet jelentkezettOsztalyok = helper.GetJelentkeztetettOsztalyokIdForEloadas(eloadasId.Value, !string.IsNullOrWhiteSpace(isMindenEvfolyamJog) && SDAConvert.ToBoolean(isMindenEvfolyamJog) == false ? ClaimData.FelhasznaloId : (int?)null);
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
list.AddRange(ds.Tables[0].AsEnumerable().Select(dataRow => new SelectListItem
{
Value = dataRow.Field<int>("Id").ToString(),
Text = dataRow.Field<string>("Nev").ToString(),
Selected = false
}).ToList());
}
if (jelentkezettOsztalyok.Tables.Count > 0 && jelentkezettOsztalyok.Tables[0].Rows.Count > 0)
{
var jelentkezettOsztalyokIdList = jelentkezettOsztalyok.Tables[0].AsEnumerable().Select(datarow => datarow.Field<int>("ID").ToString());
jelentkezettOsztalyList.AddRange(list.Where(x => jelentkezettOsztalyokIdList.Contains(x.Value)).ToList());
}
}
return Json((list, jelentkezettOsztalyList));
}
public JsonResult<List<SelectListItem>> GetEvfolyamokForEloadas(int? eloadasId = null, string evfolyamIdList = null, string isMindenEvfolyamJog = null)
{
var list = new List<SelectListItem>();
if (eloadasId.HasValue && !string.IsNullOrWhiteSpace(evfolyamIdList))
{
var evfolyamIds = evfolyamIdList.Split(",".ToCharArray());
list.AddRange(evfolyamIds.Select(x => new SelectListItem { Value = x, Text = ((EvfolyamTipusEnum)int.Parse(x)).GetDisplayName(ClaimData.SelectedTanevID.Value) }));
}
return Json(list);
}
[System.Web.Http.HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveTanulokForEloadas(EloadasTanuloSaveModel model)
{
var id = int.Parse(model.eloadasId);
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var dbSzamossag = helper.GetEloadasSzamok(id);
var dbTanuloSzam = dbSzamossag.Tables[0].Rows[0].Field<int>("TanuloSzam");
var tanuloSzam = model.tanuIds != null ? model.tanuIds.Length + dbTanuloSzam : 0 + dbTanuloSzam;
var kiseroSzam = model.kiseroSzam;
string errors = string.Empty;
if (model.TanuloLetszamFennmarado.HasValue && (model.tanuIds?.Length ?? 0) > model.TanuloLetszamFennmarado.Value)
{
errors += string.Format("{0}<br/>", EloadasokResource.AFoglaltHelyekSzamaMeghaladjaATanuloKeretszamot);
}
if (model.kiseroSzam > model.KiseroLetszam)
{
errors += EloadasokResource.AFoglaltHelyekSzamaMeghaladjaAKiseroKeretszamot;
}
if (!string.IsNullOrWhiteSpace(errors))
{
throw new StatusError(HttpStatusCode.BadRequest, errors);
}
var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey);
var kozpontiResult = client.PostEloadasokTanuloszamossag(ClaimData.IntezmenyAzonosito, id, tanuloSzam, kiseroSzam);
if (kozpontiResult.Sikeres)
{
helper.SaveTanulokEloadas(id, model.tanuIds, model.kiseroSzam);
var ds = helper.GetTanulokForEloadasWithMegjelent(id, model.idopont);
try
{
client.PostEloadasokTanulojelenlet(ClaimData.IntezmenyAzonosito, id, ds);
}
catch { }
return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
throw new StatusError(HttpStatusCode.BadRequest, kozpontiResult.StatuszUzenet);
}
}
[System.Web.Http.HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteTanulokForEloadasByOsztaly(DeleteModel model)
{
var id = int.Parse(model.eloadasId);
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var row = helper.GetEloadasSzamok(id).Tables[0].Rows[0];
var dbTanuloSzam = row.Field<int>("TanuloSzam");
var dbKiseroSzam = row.Field<int>("KiseroSzam");
int torlendoTanuloSzam = helper.GetTorlendoTanuloSzam(id, model.osztalyId);
int kiseroSzam = (dbTanuloSzam - torlendoTanuloSzam) == 0 ? 0 : dbKiseroSzam;
var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey);
var kozpontiResult = client.PostEloadasokTanuloszamossag(ClaimData.IntezmenyAzonosito, id, dbTanuloSzam - torlendoTanuloSzam, dbKiseroSzam);
if (kozpontiResult.Sikeres)
{
helper.DeleteTanulokForEloadasByOsztaly(id, model.osztalyId);
if (kiseroSzam == 0)
{
helper.UpdateEloadasKiseroSzam(id, kiseroSzam);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
throw new StatusError(HttpStatusCode.BadRequest, kozpontiResult.StatuszUzenet);
}
}
[System.Web.Http.HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveGondviseloEngedelyezes(GVEngedelyModel model)
{
var id = int.Parse(model.eloadasId);
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
helper.SaveGondviseloEngedelyezes(id, model.tanuloId, ClaimData.GondviseloId.Value, model.engedelyezve == true ? "T" : model.engedelyezve == false ? "F" : "");
return new HttpResponseMessage(HttpStatusCode.OK);
}
[System.Web.Http.HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveTanulokMegjelent(List<MegjelentDataModel> listModel)
{
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var item in listModel)
{
if (item.Id.HasValue)
{
helper.SaveTanulokMegjelent(item.Id.Value, item.Megjelent);
}
}
var ds = helper.GetTanulokForEloadasWithMegjelent(listModel[0].EloadasId, listModel[0].EloadasDatum);
var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey);
try
{
var kozpontiResult = client.PostEloadasokTanulojelenlet(ClaimData.IntezmenyAzonosito, listModel[0].EloadasId, ds);
if (!kozpontiResult.Sikeres)
{
throw new StatusError(HttpStatusCode.BadRequest, kozpontiResult.StatuszUzenet);
}
}
catch (Exception ex)
{
throw;
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
[System.Web.Http.HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public string DeleteTanulokForEloadas(int Id, string eloadasId, string szervNev, string eloadasNev, DateTime idopont, DateTime kezdete, DateTime vege)
{
var id = int.Parse(eloadasId);
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var dataRow = helper.GetEloadasSzamok(id).Tables[0].Rows[0];
int tanuloSzam = dataRow.Field<int>("TanuloSzam") - 1;
int kiseroSzam = tanuloSzam == 0 ? 0 : dataRow.Field<int>("KiseroSzam");
var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey);
var kozpontiResult = client.PostEloadasokTanuloszamossag(ClaimData.IntezmenyAzonosito, id, tanuloSzam, kiseroSzam);
if (kozpontiResult.Sikeres)
{
helper.DeleteTanuloEloadas(Id);
if (kiseroSzam == 0)
{
helper.UpdateEloadasKiseroSzam(id, kiseroSzam);
}
}
else
{
throw new StatusError(HttpStatusCode.BadRequest, kozpontiResult.StatuszUzenet);
}
return eloadasId;
}
private void SendEmailLEPJelentkezes(int eloadasId, string[] tanuloIds, int dbTanuloSzam, string szervNev, string eloadasNev, string idopont, string kezdete, string vege)
{
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var emailList = helper.GetEloadasJelentkezesEmailData(eloadasId);
foreach (DataRow item in emailList.Tables[0].Rows)
{
if ((tanuloIds != null && tanuloIds.Length > 0 && tanuloIds.Contains(item.Field<int>("TanuloId").ToString())) || dbTanuloSzam == 0)
{
var uzenetHelper = new UzenetekHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var emailMsg = string.Format(EmailResource.LEPJelentkezesContent,
item.Field<string>("Nev"),
item.Field<string>("TanuloNev"),
item.Field<string>("TanuloOsztalyNev"),
item.Field<string>("IntezmenyNev"),
szervNev,
eloadasNev,
idopont,
kezdete,
vege,
item.Field<string>("IntezmenyEmail")
);
//uzenetHelper.EmailKuldes(emailMsg, EmailResource.LEPJelentkezesSubject, item.Field<string>("EmailCim"), ClaimData.IntezmenyAzonosito);
}
}
}
private void SendEmailLEPTorles(int eloadasJegyzesId, string szervNev, string eloadasNev, string idopont, string kezdete, string vege)
{
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var emailList = helper.GetEloadasLemondasEmailData(eloadasJegyzesId);
foreach (DataRow item in emailList.Tables[0].Rows)
{
var uzenetHelper = new UzenetekHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var emailMsg = string.Format(EmailResource.LEPTorlesContent,
item.Field<string>("Nev"),
item.Field<string>("TanuloNev"),
item.Field<string>("TanuloOsztalyNev"),
item.Field<string>("IntezmenyNev"),
szervNev,
eloadasNev,
idopont,
kezdete,
vege,
item.Field<string>("IntezmenyEmail")
);
//uzenetHelper.EmailKuldes(emailMsg, EmailResource.LEPTorlesSubject, item.Field<string>("EmailCim"), ClaimData.IntezmenyAzonosito);
}
}
}
}

View file

@ -0,0 +1,71 @@
using System.Data;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Web.Areas.LEPModul.Models;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.LEPModul.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.IsLEPKezelo.ClaimValue)]
public class EloadasokKezeleseController : Controller
{
public ActionResult Index()
{
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
TanevCO tanevCo;
var tanev = new TanevHelper(connectionType);
tanevCo = tanev.GetTanevInfo();
int tanevSorszam = int.MinValue;
if (tanevCo != null && tanevCo.Sorszam.IsEntityId())
{
tanevSorszam = tanevCo.Sorszam;
}
bool isLepAlkalmazott = new AlkalmazottHelper(connectionType).IsLEPKezelo();
var isOsztfoCsoportvezetoLEPKezeloRendszerBeallitas = new SystemSettingsHelper(connectionType).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Lazar_Ervin_Program_kezelese);
bool isLepOsztfoCsoportVezeto = (ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Osztalyfonok.ClaimValue) || ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.CsoportVezeto.ClaimValue)) && isOsztfoCsoportvezetoLEPKezeloRendszerBeallitas;
bool fullLepJogAdminkent = ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Adminisztrator.ClaimValue)
|| ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Szuperadmin.ClaimValue)
|| ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.SzuperOsztalyfonok.ClaimValue);
bool isMindenEvfolyamJog = isLepAlkalmazott || fullLepJogAdminkent;
EloadasokSearchModel model = new EloadasokSearchModel();
model.IsMindenEvfolyamJog = isMindenEvfolyamJog;
model.TanevSorszam = tanevSorszam;
if (fullLepJogAdminkent || isLepAlkalmazott || isLepOsztfoCsoportVezeto)
{
return View(model);
}
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
}
public ActionResult GetEloadasokDetailPartial(EloadasokDetailModel model, string isMindenEvfolyamJog)
{
var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var id = int.Parse(model.ID);
model.IsMindenEvfolyamJog = SDAConvert.ToBoolean(isMindenEvfolyamJog);
model.KiseroSzam = helper.GetEloadasSzamok(id).Tables[0].Rows[0].Field<int>("KiseroSzam");
return PartialView("EloadasokDetailPartial", model);
}
public ActionResult GetLepGondviseloEngedelyezesZip(string data)
{
return NyomtatvanyokLogic.GetLepGondviseloEngedelyezesZip(data);
}
}
}

View file

@ -0,0 +1,23 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.Security;
using Kreta.Resources;
using Kreta.Web.Areas.LEPModul.Models;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.LEPModul.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
public class GondviseloLEPController : Controller
{
public ActionResult Index()
{
var model = new EloadasokSearchModel() { };
model.GondviseloElfogadasList = new System.Collections.Generic.List<SelectListItem>();
model.GondviseloElfogadasList.Add(new SelectListItem() { Text = EloadasokResource.Engedelyezem, Value = "T" });
model.GondviseloElfogadasList.Add(new SelectListItem() { Text = EloadasokResource.Elutasitom, Value = "F" });
return View(model);
}
}
}

View file

@ -0,0 +1,24 @@
using System.Web.Mvc;
namespace Kreta.Web.Areas.LEPModul
{
public class LEPModulAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "LEPModul";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"LEPModul_default",
"LEPModul/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
}

View file

@ -0,0 +1,8 @@
namespace Kreta.Web.Areas.LEPModul.Models
{
public class DeleteModel
{
public string eloadasId { get; set; }
public int osztalyId { get; set; }
}
}

View file

@ -0,0 +1,22 @@
using System;
namespace Kreta.Web.Areas.LEPModul.Models
{
public class EloadasTanuloSaveModel
{
public string eloadasId { get; set; }
public int kiseroSzam { get; set; }
public string[] tanuIds { get; set; }
public string[] osztalyIds { get; set; }
public string szervNev { get; set; }
public string eloadasNev { get; set; }
public DateTime idopont { get; set; }
public DateTime kezdete { get; set; }
public DateTime vege { get; set; }
public string FerohelyFoglaltHelyek { get; set; }
public int TanuloLetszam { get; set; }
public int KiseroLetszam { get; set; }
public int? TanuloLetszamFennmarado { get; set; }
public int? KiseroLetszamFennmarado { get; set; }
}
}

View file

@ -0,0 +1,44 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.LEPModul.Models
{
public class EloadasokDetailGridModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(OsztalyCsoportResource.TanuloNeve), ResourceType = typeof(OsztalyCsoportResource))]
public string TanuloNev { get; set; }
[Display(Name = nameof(OsztalyCsoportResource.Osztaly), ResourceType = typeof(OsztalyCsoportResource))]
public string OsztalyCsoportNev { get; set; }
public int TanuloId { get; set; }
public int OsztalyCsoportId { get; set; }
public int EvfolyamId { get; set; }
public string Megjelent { get; set; }
public DateTime? Datum { get; set; }
public string SzervezetNev { get; set; }
public string EloadasNev { get; set; }
[Display(Name = nameof(TanuloResource.OktatasiAzonosito), ResourceType = typeof(TanuloResource))]
public string TanuloOktAzon { get; set; }
[Display(Name = nameof(CommonResource.OMAzonosito), ResourceType = typeof(CommonResource))]
public string IntezmenyAzon { get; set; }
[Display(Name = nameof(CommonResource.IntezmenyHivatalosNev), ResourceType = typeof(CommonResource))]
public string IntezmenyNev { get; set; }
[Display(Name = nameof(EloadasokResource.GondviseloElfogadas), ResourceType = typeof(EloadasokResource))]
public string GondviseloElfogadas { get; set; }
}
}

View file

@ -0,0 +1,46 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
namespace Kreta.Web.Areas.LEPModul.Models
{
public class EloadasokDetailModel
{
public string ID { get; set; }
public bool IsMindenEvfolyamJog { get; set; }
public int EvFolyamId { get; set; }
public int? KiseroSzam { get; set; }
public DateTime? Datum { get; set; }
public DateTime? EloadasKezdete { get; set; }
public DateTime? EloadasVege { get; set; }
public string SzervezetNev { get; set; }
public string EloadasNev { get; set; }
public string Helyszin { get; set; }
[Display(Name = nameof(EloadasokResource.TanulokListaja), ResourceType = typeof(EloadasokResource))]
public string[] TanuloIds { get; set; }
public string EvfolyamIdList { get; set; }
public string FerohelyFoglaltHelyek { get; set; }
public int TanuloLetszam { get; set; }
public int KiseroLetszam { get; set; }
public int? TanuloLetszamFennmarado { get; set; }
public int? KiseroLetszamFennmarado { get; set; }
public bool IsToroltJelentkezes { get; set; }
}
}

View file

@ -0,0 +1,53 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.LEPModul.Models
{
public class EloadasokGridModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(EloadasokResource.Helyszin), ResourceType = typeof(EloadasokResource))]
public string Helyszin { get; set; }
[Display(Name = nameof(EloadasokResource.Datum), ResourceType = typeof(EloadasokResource))]
public DateTime? Datum { get; set; }
[Display(Name = nameof(EloadasokResource.EloadasKezdete), ResourceType = typeof(EloadasokResource))]
public DateTime? EloadasKezdete { get; set; }
[Display(Name = nameof(EloadasokResource.EloadasVege), ResourceType = typeof(EloadasokResource))]
public DateTime? EloadasVege { get; set; }
[Display(Name = nameof(EloadasokResource.SzervezetNev), ResourceType = typeof(EloadasokResource))]
public string SzervezetNev { get; set; }
[Display(Name = nameof(EloadasokResource.EloadasNev), ResourceType = typeof(EloadasokResource))]
public string EloadasNev { get; set; }
[Display(Name = nameof(EloadasokResource.FerohelyFoglaltHelyek), ResourceType = typeof(EloadasokResource))]
public string FerohelyFoglaltHelyek { get; set; }
[Display(Name = nameof(EloadasokResource.EvFolyam), ResourceType = typeof(EloadasokResource))]
public string EvFolyamIdList { get; set; }
public int EvFolyamId { get; set; }
[Display(Name = nameof(EloadasokResource.JelentkezesElfogadas), ResourceType = typeof(EloadasokResource))]
public string GondviseloElfogadas { get; set; }
[Display(Name = nameof(EloadasokResource.Leiras), ResourceType = typeof(EloadasokResource))]
public string Leiras { get; set; }
[Display(Name = nameof(EloadasokResource.Megjelent), ResourceType = typeof(EloadasokResource))]
public string Megjelent { get; set; }
public int KiseroLetszam { get; set; }
public int TanuloLetszam { get; set; }
public int? TanuloLetszamFennmarado { get; set; }
public int? KiseroLetszamFennmarado { get; set; }
public bool IsToroltJelentkezes { get; set; }
}
}

View file

@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Kreta.Resources;
namespace Kreta.Web.Areas.LEPModul.Models
{
public class EloadasokSearchModel
{
[Display(Name = nameof(EloadasokResource.Helyszin), ResourceType = typeof(EloadasokResource))]
public string Helyszin { get; set; }
[Display(Name = nameof(EloadasokResource.EloadasIdoszak), ResourceType = typeof(EloadasokResource))]
public DateTime? IdoszakKezdete { get; set; }
public DateTime? IdoszakVege { get; set; }
[Display(Name = nameof(EloadasokResource.EloadasNev), ResourceType = typeof(EloadasokResource))]
public string EloadasNev { get; set; }
[Display(Name = nameof(EloadasokResource.EvFolyam), ResourceType = typeof(EloadasokResource))]
public int? EvfolyamID { get; set; }
[Display(Name = nameof(EloadasokResource.SzervezetNev), ResourceType = typeof(EloadasokResource))]
public string SzervezetNev { get; set; }
[Display(Name = nameof(EloadasokResource.EloadasKezdete), ResourceType = typeof(EloadasokResource))]
public DateTime? IdoszakKezdeteTime { get; set; }
[Display(Name = nameof(EloadasokResource.EloadasVege), ResourceType = typeof(EloadasokResource))]
public DateTime? IdoszakVegeTime { get; set; }
public bool IsMindenEvfolyamJog { get; set; }
public List<int> EvfolyamIdList { get; set; }
public int TanevSorszam { get; set; }
public string IntezmenyAzonosito { get; set; }
public List<SelectListItem> GondviseloElfogadasList { get; set; }
}
}

View file

@ -0,0 +1,9 @@
namespace Kreta.Web.Areas.LEPModul.Models
{
public class GVEngedelyModel
{
public string eloadasId { get; set; }
public int tanuloId { get; set; }
public bool? engedelyezve { get; set; }
}
}

View file

@ -0,0 +1,12 @@
using System;
namespace Kreta.Web.Areas.LEPModul.Models
{
public class MegjelentDataModel
{
public int EloadasId { get; set; }
public DateTime EloadasDatum { get; set; }
public int? Id { get; set; }
public string Megjelent { get; set; }
}
}

View file

@ -0,0 +1,236 @@
@using Kreta.BusinessLogic.Classes
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Areas.LEPModul.Models
@using Kreta.Resources
@using Kreta.Enums.ManualEnums
@model EloadasokSearchModel
@section AddSearchPanel {
@using (Html.SearchPanelSideBar("searchForm", "EloadasokGrid"))
{
@Html.KretaRangeDatePickerSideBar(x => x.IdoszakKezdete, x => x.IdoszakVege)
@Html.KretaComboBoxFor(x => x.EvfolyamID, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = @Model.IsMindenEvfolyamJog ? "GetEvfolyamListLEP" : "GetEvfolyamListByFelhasznalo" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaTextBoxFor(x => x.EloadasNev).RenderSearchPanelSideBar()
@Html.KretaTextBoxFor(x => x.SzervezetNev).RenderSearchPanelSideBar()
@Html.KretaTextBoxFor(x => x.Helyszin).RenderSearchPanelSideBar()
@Html.KretaTimePickerFor(x => x.IdoszakKezdeteTime).RenderSearchPanelSideBar()
@Html.KretaTimePickerFor(x => x.IdoszakVegeTime).RenderSearchPanelSideBar()
@Html.HiddenFor(x => x.IsMindenEvfolyamJog)
@Html.HiddenFor(x => x.EvfolyamIdList)
@Html.HiddenFor(x => x.TanevSorszam)
}
}
@{
var rowFunctionList = new List<RowFunction>
{
new RowFunction { Name = "Leiras", ClientAction= "LEPHelper.OpenEloadasLeiras", IconEnum = GridRowFunctionIconEnum.Adatok }
};
}
<div>
@(
Html.KretaGrid<EloadasokGridModel>
(
"EloadasokGrid",
new GridApiUrl("EloadasokKezeleseApi", "GetEloadasokGrid", new Dictionary<string, string> { }),
dataParameterFunction: "searchForm",
sort: sort => sort.Add(m => m.Datum).Descending(),
clientTemplate: "detailGrid-template",
clientTemplateUrl: @Url.Action("GetEloadasokDetailPartial", "EloadasokKezelese", new { area = "LEPModul", isMindenEvfolyamJog = Model.IsMindenEvfolyamJog.ToString() }),
clientTemplateWholeDataRow: true,
allowFilterable: false,
allowPaging: true,
allowSorting: true
)
.Columns(columns =>
{
columns.Bound(m => m.Datum).Width("8%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(m => m.EloadasKezdete).Width("5%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortTime]);
columns.Bound(m => m.EloadasVege).Width("5%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortTime]);
columns.Bound(m => m.EloadasNev);
columns.Bound(m => m.SzervezetNev);
columns.Bound(m => m.Helyszin).Width("20%");
columns.Bound(m => m.EvFolyamIdList).Width("5%").Sortable(false).Hidden();
columns.Bound(m => m.FerohelyFoglaltHelyek).Width("10%").Sortable(false).Hidden();
})
.ConditionalRowFunction(Html, rowFunctionList, "LEPGridHelper.setRowEditing")
)
</div>
@Html.KretaGridTemplate("detailGrid-template")
<div style="display: none !important;">
@using (Html.KretaForm("GetLepGondviseloEngedelyezesZip", "EloadasokKezelese", FormMethod.Post, "dokuSaveForm"))
{
@Html.Hidden("data");
<button id="downloadBtn" type="submit" data-role="button" class="k-button" role="button" aria-disabled="false" tabindex="0">Letöltés</button>
}
</div>
<script>
var LEPGridHelper = (function () {
var helper = function () { };
helper.setRowEditing = function (rowData) { if (rowData.Leiras != null) return true; }
return helper;
})();
</script>
<script type="text/javascript">
var LEPHelper = (function () {
var lepHelper = function () { };
lepHelper.setRowDeleting = function (rowData) {
var result = false
if (rowData.isErasable == 'T') result = true;
return result;
}
lepHelper.DeleteTanulokForEloadas = function (rowData) {
var jsonData = {
Id: rowData.ID,
eloadasId: rowData.EloadasId,
szervNev: rowData.szervezetNev,
eloadasNev: rowData.eloadasNev,
idopont: rowData.datum,
kezdete: rowData.kezdete,
vege: rowData.vege
};
AjaxHelper.DoPostQuery("@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "EloadasokKezeleseApi", action = "DeleteTanulokForEloadas" })", null, jsonData, saveResponseOk);
}
lepHelper.JelenletMentes = function (data) {
if (data != null && data.length > 0) {
var postJsonData = [];
var gridData = KretaGridHelper.getModifiedRows("EloadasokDetailGrid_" + data[0].EloadasId);
$.each(gridData, function (i, v) {
if (v.dirty) {
postJsonData.push({ Id: v.ID, Megjelent: v.ki_Megjelent, EloadasDatum: v.datum, EloadasId: v.EloadasId });
}
});
if (postJsonData.length == 0) {
postJsonData.push({ Id: null, Megjelent: null, EloadasDatum: data[0].datum, EloadasId: data[0].EloadasId });
}
AjaxHelper.DoPost("@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "EloadasokKezeleseApi", action = "SaveTanulokMegjelent" })", postJsonData, feedBackOk, feedBackError);
}
}
function feedBackOk(data) {
KretaWindowHelper.feedbackWindow("@EloadasokResource.SikeresMuvelet", "@EloadasokResource.AResztvevokMenteseSikeresenMegtortent", "success");
setTimeout(function () {
$.each($('[id^=' + data + ']'), function (i, v) {
if (v.id.length == 26 && v.id != data) {
KretaGridHelper.refreshGrid(v.id);
}
});
}, 1000);
}
function feedBackError(data) {
KretaWindowHelper.feedbackWindow("@CommonResource.Hiba", data.responseJSON.Message, true);
}
lepHelper.JelenletiIv = function (data) {
if (data[0] != undefined) {
var obj = $("#EloadasokDetailGrid_" + data[0].EloadasId);
KretaGridHelper.exportGrid(obj[0], "JelenletiIv_" + data[0].datum.substring(0, 10), 'undefined', 'undefined', 'undefined', true);
}
}
lepHelper.Export = function (data) {
if (data[0] != undefined) {
var exportDiv = $("<div>", { 'id': "exportDiv" });
var columns = ["Előadás_Időpontja", "Szervezet_neve", "Előadás_neve", "Tanuló_neve", "Tanuló_osztálya"];
if (kendo.parseDate(data[0].datum) > kendo.parseDate("@DateTime.Now")) {
columns.push("Megjelent");
}
var exportGrid = exportDiv.kendoGrid({ columns: columns });
var dataSource = new kendo.data.DataSource();
var obj = $("#EloadasokDetailGrid_" + data[0].EloadasId);
var dataSource2 = $("#" + obj[0].attributes.id.value).data("kendoGrid").dataSource;
$.each(dataSource2.data(), function (i, v) {
var megj = "";
if (kendo.parseDate(data[0].datum) > kendo.parseDate("@DateTime.Now")) {
if (v.Megjelent == 'T') { megj = "Igen" } else { megj = "Nem" }
}
dataSource.add({
"Előadás_Időpontja": v.datum.replace("T00:00:00","").replace("-",".").replace("-",".") + ".",
"Szervezet_neve": v.szervezetNev,
"Előadás_neve": v.eloadasNev,
"Tanuló_neve": v.TanuloNev,
"Tanuló_osztálya": v.OsztalyCsoportNev,
"Megjelent": megj
});
});
var grid = exportGrid.data("kendoGrid");
grid.setDataSource(dataSource);
grid.options.excel.fileName = "Export";
grid.options.excel.allPages = true;
grid.bind("excelExport", function (e) {
var elem = document.createElement('div');
for (var i = 1; i < e.workbook.sheets[0].rows.length; i++) {
var row = e.workbook.sheets[0].rows[i];
}
});
grid.saveAsExcel();
}
}
lepHelper.ChangeAllJelenletValue = function (id, isMegjelent) {
var id = id.toString();
if (isMegjelent) {
$.each($("#EloadasokDetailGrid_" + id).find(".kretaSelectorButton[val='" + 'T' + "']"), function () {
if (!$(this).hasClass("activebar")) {
$(this).click();
}
});
} else {
$.each($("#EloadasokDetailGrid_" + id).find(".kretaSelectorButton[val='" + 'F' + "']"), function () {
if (!$(this).hasClass("activebar")) {
$(this).click();
}
});
}
}
function saveResponseOk(data) {
$("#EloadasokDetailGrid_" + data).data('kendoGrid').dataSource.read();
$("#EloadasokDetailGrid_" + data).data('kendoGrid').refresh();
}
lepHelper.OpenEloadasLeiras = function (rowData) {
popupTantervProperties(rowData.Leiras);
$("#BtnCancel").click(function () {
KretaWindowHelper.destroyAllWindow();
});
}
function popupTantervProperties(data) {
var content = "<div class='modalContainer'><div class='modalOuter'><div class='modalContent'><div class='k-content'><div class='container-fluid details'>" + data + "</div></div></div></div></div><div class='modalFooter'><div style='display: flex; flex-direction: column; padding: inherit;'><div style='padding: inherit;'><div style='float:right; padding-left: 5px;'><button id='BtnCancel' type='button' data-role='button' class='k-button' role='button' aria-disabled='false' tabindex='0'>Mégse</button>"+ "</div></div><div style='padding: inherit;'></div></div></div>";
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(EloadasokResource.Leiras)";
config.content = content;
config.width = "50%";
config.height = "50%";
var modal = KretaWindowHelper.createWindow("LeirasWindow", config);
KretaWindowHelper.openWindow(modal, true);
}
return lepHelper;
})();
</script>

View file

@ -0,0 +1,63 @@
@using Kreta.BusinessLogic.Classes
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Areas.LEPModul.Models
@using Kreta.Web.Security
@model EloadasokSearchModel
<div>
@{
var grid = Html.KretaGrid<EloadasokGridModel>
(
"EloadasokGrid",
new GridApiUrl("EloadasokKezeleseApi", "GetEloadasokGondviseloGrid"),
sort: sort => sort.Add(m => m.Datum).Descending(),
allowPaging: false,
allowSorting: false,
allowScrolling: true
)
.Columns(columns =>
{
columns.Bound(m => m.Datum).Width("8%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(m => m.EloadasKezdete).Width("5%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortTime]);
columns.Bound(m => m.EloadasVege).Width("5%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortTime]);
columns.Bound(m => m.EloadasNev);
columns.Bound(m => m.SzervezetNev);
columns.Bound(m => m.Helyszin).Width("20%");
columns.Bound(m => m.Megjelent);
})
.AutoBind(true);
if (ClaimData.GondviseloId.HasValue)
{
grid.Columns(c => c.Template(t => t.ToString()).ClientTemplate(
grid.SelectForColumnTemplate(Html.For<EloadasokGridModel>(), x => x.GondviseloElfogadas, Model.GondviseloElfogadasList, false, "LEPGVHelper.SetEloadasEngedelyezes")
));
}
}
@(grid)
</div>
<script type="text/javascript">
var LEPGVHelper = (function () {
var helper = function () { };
helper.SetEloadasEngedelyezes = function (data) {
var itemId = $(data).closest('div').parent('div').attr("id").replace('divEloadasokGrid_GondviseloElfogadas_', '');
var tanuloId = "@ClaimData.FelhasznaloId";
var engedelyezve = null;
if ($(data).attr('val') == "T" && $(data).hasClass("activebar")) { engedelyezve = true; }
if ($(data).attr('val') == "F" && $(data).hasClass("activebar")) { engedelyezve = false; }
var url = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "EloadasokKezeleseApi", action = "SaveGondviseloEngedelyezes" })";
AjaxHelper.DoPost(url, { eloadasId: itemId, tanuloId: tanuloId, engedelyezve: engedelyezve }, feedBackOk);
function feedBackOk() {
KretaWindowHelper.notification("Sikeres mentés!", "success");
}
}
return helper;
})();
</script>

View file

@ -0,0 +1,440 @@
@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>

View file

@ -0,0 +1,3 @@
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}

View file

@ -0,0 +1,38 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
<add namespace="Kreta.Web" />
<add namespace="Kreta.BusinessLogic.Utils" />
<add namespace="Kendo.Mvc.UI" />
<add namespace="Kreta.Web.Helpers" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>