init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Hianyzas.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.Hianyzas.ApiControllers
|
||||
{
|
||||
public class BaseIgazolasokApiController : ApiController
|
||||
{
|
||||
[NonAction]
|
||||
public DataSourceResult GetDetailIgazolasok(int tanuloId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request, int? szervezetTipusId = null)
|
||||
{
|
||||
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
||||
if (!authorization.IsValidTanulo(tanuloId))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
|
||||
var helper = new IgazolasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
DataSet ds = helper.IgazolasDetailKereses(tanuloId, szervezetTipusId);
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public DataSourceResult GetIgazolasGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request, int? szervezetTipusId = null)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<IgazolasKeresoModel>(data);
|
||||
|
||||
if (!model.OsztCsopId.HasValue)
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
|
||||
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
||||
if (!authorization.IsValidOsztalyCsoport(model.OsztCsopId.Value))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
|
||||
IgazolasHelper helper = new IgazolasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
DataSet ds = helper.IgazolasKereses(model.OsztCsopId, szervezetTipusId);
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,125 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.Results;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes.ComboBox;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Hianyzas.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.Hianyzas.ApiControllers
|
||||
{
|
||||
public class BaseMulasztasKeresoApiController : ApiController
|
||||
{
|
||||
[NonAction]
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request, SzervezetTipusEnum? szervezetTipus = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request, szervezetTipus);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<MulasztasGridModel>(MulasztasGridModel.MulasztasExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(MulasztasResource.ExportDefaultSheetname, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), MulasztasResource.ExportFileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
public (GridParameters gridParameter, List<MulasztasGridModel> modelList) GetGridData(string data, DataSourceRequest request, SzervezetTipusEnum? szervezetTipus = null)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<MulasztasSearchModel>(data);
|
||||
|
||||
if (szervezetTipus.HasValue)
|
||||
{
|
||||
model.SzervezetTipusId = (int)szervezetTipus;
|
||||
}
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new MulasztasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMulasztasCoList(model.ConvertModelToCo(), true);
|
||||
|
||||
var modelList = new List<MulasztasGridModel>();
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new MulasztasGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteMulasztas([FromBody] int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
helper.DeleteMulasztasById(id);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloErtekelesResource.Ertekeles, ex.ConnectionErrorMessage);
|
||||
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteTobbesMulasztas([FromBody] int[] ids)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
foreach (var id in ids)
|
||||
{
|
||||
helper.DeleteMulasztasById(id);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloErtekelesResource.Ertekeles, ex.ConnectionErrorMessage);
|
||||
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetIgazoltList()
|
||||
{
|
||||
var items = new Dictionary<string, string>
|
||||
{
|
||||
{ "0", HianyzasResource.Igazolatlan },
|
||||
{ "1", HianyzasResource.Igazolt },
|
||||
{ "2", HianyzasResource.Igazolando }
|
||||
};
|
||||
return Json(items.ToComboBoxItemList());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,336 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using System.Web.Http.Results;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes.ComboBox;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Hianyzas.Helpers;
|
||||
using Kreta.Web.Areas.Hianyzas.Models;
|
||||
using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok;
|
||||
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.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
|
||||
public class BaseMulasztasokApiController : ApiController
|
||||
{
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetTanoraList(string cascadeFilter)
|
||||
{
|
||||
DateTime? datumInput;
|
||||
DateTime temp;
|
||||
if (DateTime.TryParse(cascadeFilter, out temp))
|
||||
{
|
||||
datumInput = temp;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception();
|
||||
}
|
||||
IDictionary<string, string> tanorak;
|
||||
|
||||
var result = new List<ComboBoxListItem>();
|
||||
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
tanorak = helper.GetMegtartottOraByDatumAndOsztalyFonok(datumInput.Value, ClaimData.FelhasznaloId);
|
||||
|
||||
foreach (var item in tanorak)
|
||||
{
|
||||
var sli = new ComboBoxListItem { Text = item.Value, Value = item.Key };
|
||||
result.Add(sli);
|
||||
}
|
||||
|
||||
return Json(result);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetIgazoltList()
|
||||
{
|
||||
var result = new List<ComboBoxListItem>
|
||||
{
|
||||
new ComboBoxListItem
|
||||
{
|
||||
Value = ((int) IgazoltSearchEnum.Igazolt).ToString(),
|
||||
Text = StringResourcesUtil.GetString(2568)
|
||||
},
|
||||
new ComboBoxListItem
|
||||
{
|
||||
Value = ((int) IgazoltSearchEnum.Igazolatlan).ToString(),
|
||||
Text = StringResourcesUtil.GetString(2800)
|
||||
},
|
||||
new ComboBoxListItem
|
||||
{
|
||||
Value = ((int) IgazoltSearchEnum.NemEllenorzott).ToString(),
|
||||
Text = StringResourcesUtil.GetString(4571)
|
||||
}
|
||||
};
|
||||
|
||||
//Igazolt
|
||||
//Igazolatlan
|
||||
//Nem ellenőrzött
|
||||
|
||||
return Json(result);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteMulasztas([FromBody] int id)
|
||||
{
|
||||
CheckMulasztas(id);
|
||||
|
||||
try
|
||||
{
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.DeleteMulasztasById(id);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (EntityDeleteFailedException)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest,
|
||||
string.Format(StringResourcesUtil.GetString(5490),
|
||||
StringResourcesUtil.GetString(500) /*,
|
||||
e.ConnectionErrorMessage*/)
|
||||
/*A(z) mulasztás nem törölhető, mert egy vagy több kapcsolódása van (kapcsolatok: {1})!*/);
|
||||
}
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public HttpResponseMessage SaveMulasztasList(List<MulasztasokSaveModel> list, int? szervezetTipusId = null)
|
||||
{
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
foreach (var item in list)
|
||||
{
|
||||
if (item.ID != 0 && (item.Visszavonhato.Value || item.Igazolt != null))
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(item.Megjegyzes) && item.Megjegyzes.Length > 255)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AMegjegyzesMax255KarakterLehet);
|
||||
}
|
||||
|
||||
if(!szervezetTipusId.HasValue)
|
||||
{
|
||||
CheckMulasztas(item.ID.Value);
|
||||
}
|
||||
|
||||
MulasztasokCo co = MulasztasokHelper.ConvertNaploNezetMulasztasokSaveModelToCo(item);
|
||||
var mulasztasNotificaton = helper.SaveOrUpdateMulasztas(co);
|
||||
}
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public HttpResponseMessage SaveNaploNezetMulasztasList(MulasztasokNaploNezetSaveModel model, int? szervezetTipusId = null)
|
||||
{
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
foreach (var mulasztas in model.Mulasztasok)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(mulasztas.Megjegyzes) && mulasztas.Megjegyzes.Length > 255)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AMegjegyzesMax255KarakterLehet);
|
||||
}
|
||||
|
||||
if (!mulasztas.ID.HasValue)
|
||||
{
|
||||
var mulasztasDbId = helper.GetMulasztasId(mulasztas.TanuloId, mulasztas.TanitasiOraId);
|
||||
|
||||
if (mulasztasDbId.IsEntityId())
|
||||
{
|
||||
mulasztas.ID = mulasztasDbId;
|
||||
}
|
||||
}
|
||||
|
||||
if (mulasztas.ID.HasValue)
|
||||
{
|
||||
CheckMulasztas(mulasztas.ID.Value);
|
||||
}
|
||||
|
||||
CheckTanulo(mulasztas.TanuloId);
|
||||
}
|
||||
|
||||
CheckUtkozes(helper, model, szervezetTipusId);
|
||||
|
||||
var sikertelenMulasztasMentesek = new List<string>();
|
||||
foreach (var mulasztas in model.Mulasztasok)
|
||||
{
|
||||
var co = MulasztasokHelper.ConvertNaploNezetMulasztasokSaveModelToCo(mulasztas);
|
||||
try
|
||||
{
|
||||
_ = helper.SaveOrUpdateNaplonezetMulasztas(co);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
sikertelenMulasztasMentesek.Add(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
if (sikertelenMulasztasMentesek.Count > 0)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, string.Join("<br/>", sikertelenMulasztasMentesek.Distinct()));
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
private void CheckUtkozes(MulasztasHelper mulasztasHelper, MulasztasokNaploNezetSaveModel model, int? szervezetTipusId = null)
|
||||
{
|
||||
if (!model.Mulasztasok.Any(m => m.MulasztasTipus == (int)Enums.MulasztasTipusEnum.hianyzas))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var naploNezetGridDs = mulasztasHelper.GetMulasztasokNaploNezetGrid(model.OsztalyCsoportId, model.NaploNezetDatum, IsCsoportVezeto(), szervezetTipusId);
|
||||
|
||||
var oraColumnPrefixes = Enumerable.Range(Core.Constants.Mulasztas.OraSorszamMinValue, Core.Constants.Mulasztas.OraSorszamMaxValue - Core.Constants.Mulasztas.OraSorszamMinValue + 1)
|
||||
.Select(i => "Ora" + (i < 0 ? "Minusz" + Math.Abs(i) : i.ToString()));
|
||||
var foglalkozasColumnPrefixes = Enumerable.Range(1, Core.Constants.Mulasztas.FoglalkozasCount)
|
||||
.Select(i => "Foglalkozas" + i.ToString());
|
||||
var columnPrefixes = oraColumnPrefixes.Concat(foglalkozasColumnPrefixes);
|
||||
|
||||
var tanitasiOraIdHashSet = new HashSet<int>();
|
||||
foreach (DataRow dataRow in naploNezetGridDs.Tables[0].AsEnumerable())
|
||||
{
|
||||
foreach (var columnPrefix in columnPrefixes)
|
||||
{
|
||||
var tanitasiOraId = dataRow.Field<int?>(columnPrefix + "TanitasiOraId");
|
||||
if (tanitasiOraId.HasValue)
|
||||
{
|
||||
tanitasiOraIdHashSet.Add(tanitasiOraId.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var tanitasiOraKezdeteVegeList = mulasztasHelper.ListTanitasiOraKezdeteVege(tanitasiOraIdHashSet);
|
||||
|
||||
var errorMessages = new List<string>();
|
||||
|
||||
var mulasztasokGroupByTanulo = model.Mulasztasok.Where(m => m.MulasztasTipus == (int)Enums.MulasztasTipusEnum.hianyzas).GroupBy(x => x.TanuloId);
|
||||
foreach (var mulasztasokGroup in mulasztasokGroupByTanulo)
|
||||
{
|
||||
var tanuloRow = naploNezetGridDs.Tables[0].AsEnumerable().First(r => r.Field<int>("TanuloId") == mulasztasokGroup.Key);
|
||||
|
||||
var tanitasiOraIdListByTanuloHianyzas = mulasztasokGroup.Select(m => m.TanitasiOraId).ToList();
|
||||
foreach (var columnPrefix in columnPrefixes)
|
||||
{
|
||||
var mulasztasTipus = tanuloRow.Field<string>(columnPrefix + "MulasztasTipus");
|
||||
if (!string.IsNullOrWhiteSpace(mulasztasTipus) && int.Parse(mulasztasTipus) == (int)Enums.MulasztasTipusEnum.hianyzas)
|
||||
{
|
||||
var tanitasiOraId = tanuloRow.Field<int>(columnPrefix + "TanitasiOraId");
|
||||
tanitasiOraIdListByTanuloHianyzas.Add(tanitasiOraId);
|
||||
}
|
||||
}
|
||||
|
||||
var tanitasiOraKezdeteVegeListByTanuloHianyzas = tanitasiOraKezdeteVegeList.Where(t => tanitasiOraIdListByTanuloHianyzas.Contains(t.Id));
|
||||
var utkozoGroups = GetUtkozoGroups(tanitasiOraKezdeteVegeListByTanuloHianyzas);
|
||||
foreach (var utkozoGroup in utkozoGroups.Where(g => g.Count > 1))
|
||||
{
|
||||
var errorMessage = string.Format(MulasztasResource.HianyzasUtkozesError,
|
||||
string.Join(MulasztasResource.EsAz,
|
||||
utkozoGroup.Select(g => g.Oraszam.HasValue
|
||||
? string.Format(MulasztasResource._0Ora, g.Oraszam)
|
||||
: string.Format(MulasztasResource._0korKezdodoOra, g.OraKezdete.ToString(Core.Constants.ToStringPattern.HungarianTime)))));
|
||||
errorMessages.Add(errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
if (errorMessages.Any())
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, string.Join(Constants.General.DoubleBr, errorMessages));
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerable<IList<TanitasiOraCo>> GetUtkozoGroups(IEnumerable<TanitasiOraCo> tanitasiOraList)
|
||||
{
|
||||
var result = new List<List<TanitasiOraCo>>();
|
||||
|
||||
foreach (var tanitasiOra in tanitasiOraList)
|
||||
{
|
||||
var group = result.FirstOrDefault(r => r.Any(x => x.OraKezdete < tanitasiOra.OraVege && tanitasiOra.OraKezdete < x.OraVege));
|
||||
if (group != null)
|
||||
{
|
||||
group.Add(tanitasiOra);
|
||||
}
|
||||
else
|
||||
{
|
||||
result.Add(new List<TanitasiOraCo> { tanitasiOra });
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public JsonResult<bool> VaneMarIgazolt(int tipusId, int tanuloId, int oraId)
|
||||
{
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
return Json(helper.VaneMarIgazolt(tipusId, tanuloId, oraId));
|
||||
}
|
||||
|
||||
public void CheckOsztalyCsoport(int osztalyCsoportId)
|
||||
{
|
||||
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
||||
if (!authorization.IsValidOsztalyCsoport(osztalyCsoportId))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
}
|
||||
|
||||
public void CheckCsoport(int csoportId)
|
||||
{
|
||||
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
||||
if (!authorization.IsValidCsoport(csoportId))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
}
|
||||
|
||||
public void CheckTanulo(int tanuloId, bool lehetTTF = false)
|
||||
{
|
||||
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
||||
if (!authorization.IsValidTanulo(tanuloId, lehetTTF))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckMulasztas(int mulasztasId)
|
||||
{
|
||||
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
||||
if (!authorization.IsValidMulasztas(mulasztasId))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsCsoportVezeto()
|
||||
{
|
||||
return ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.CsoportVezeto.ClaimValue)
|
||||
&& !ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Osztalyfonok.ClaimValue)
|
||||
&& !ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)
|
||||
&& !ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Evfolyamfelelos.ClaimValue);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Hianyzas.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.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.CsoportVezeto.ClaimValue)]
|
||||
public class DualisIgazolasokApiController : BaseIgazolasokApiController
|
||||
{
|
||||
public DataSourceResult GetDetailIgazolasok(int tanuloId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
return base.GetDetailIgazolasok(tanuloId, request, (int)SzervezetTipusEnum.Dualis);
|
||||
}
|
||||
|
||||
public DataSourceResult GetIgazolasGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
return base.GetIgazolasGrid(data, request, (int)SzervezetTipusEnum.Dualis);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
using System.Net.Http;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class DualisMulasztasKeresoApiController : BaseMulasztasKeresoApiController
|
||||
{
|
||||
public DataSourceResult GetMulasztasGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request, SzervezetTipusEnum.Dualis);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
return base.GetExport(data, request, SzervezetTipusEnum.Dualis);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,250 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Web.Areas.Hianyzas.Models;
|
||||
using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.CsoportVezeto.ClaimValue)]
|
||||
public class DualisMulasztasokApiController : BaseMulasztasokApiController
|
||||
{
|
||||
#region Dátum nézet
|
||||
|
||||
//Mulasztásos napok lekérdezése a dátum nézethez
|
||||
public DataSourceResult GetMulasztasokDatumNezetGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<MulasztasIndexModel>(data);
|
||||
|
||||
if (!model.OsztalyCsoportId.HasValue && !model.CsoportId.HasValue)
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
model.CsoportId = model.OsztalyCsoportId.Value;
|
||||
CheckCsoport(model.CsoportId.Value);
|
||||
int osztalyCsoportId = model.CsoportId.Value;
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
if (string.IsNullOrWhiteSpace(helper.GridParameters.OrderBy))
|
||||
{
|
||||
helper.GridParameters.OrderBy = "MulasztasDatuma DESC";
|
||||
}
|
||||
|
||||
ds = helper.GetDatumNezetDataByOsztalyCsoportId(osztalyCsoportId, false);
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
//Mulasztasok lekérdezése dátum alapján
|
||||
public DataSourceResult GetMulasztasokDatumNezetDetailGrid(string model, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var mulasztasModel = JsonConvert.DeserializeObject<MulasztasokDatumNezetGridModel>(model);
|
||||
|
||||
CheckCsoport(mulasztasModel.OsztalyCsoportId);
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
if (string.IsNullOrWhiteSpace(helper.GridParameters.OrderBy))
|
||||
{
|
||||
helper.GridParameters.OrderBy = "Oraszam ASC";
|
||||
}
|
||||
|
||||
ds = helper.GetMulasztasokDatumNezetDetailGrid(mulasztasModel.MulasztasDatuma, mulasztasModel.OsztalyCsoportId, (IsCsoportVezeto()));
|
||||
|
||||
#region "Header helyett nulladik sor, ha"
|
||||
//NOTE: "Ideiglenesen mivel a grid headerbe nincs lehetőség az összes oszlopérték beállítására egyszerre, ezért bekerül egy nulladik sor, amivel állítani lehet..."
|
||||
|
||||
if (mulasztasModel.IsTanorai == false && mulasztasModel.MulasztasJogosultsagSetting != CsoportvezetokIgazolasiJogosultsagaEnum.NemIgazolhatnak)
|
||||
{
|
||||
DataRow dr = ds.Tables[0].NewRow();
|
||||
dr["ID"] = 0;
|
||||
dr["TanuloNev"] = "";
|
||||
ds.Tables[0].Rows.InsertAt(dr, 0);
|
||||
}
|
||||
|
||||
#endregion "Header helyett nulladik sor, ha"
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
#endregion Dátum nézet
|
||||
|
||||
#region Tanuló nézet
|
||||
|
||||
public DataSourceResult GetMulasztasokTanuloNezetGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<MulasztasSearchModel>(data);
|
||||
|
||||
var osztalyCsoportId = model.OsztalyCsoportId;
|
||||
var tanuloId = model.TanuloId;
|
||||
|
||||
if (!osztalyCsoportId.IsEntityId() && !tanuloId.IsEntityId())
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
ds = helper.GetTanulokMulasztasaiKesesei(osztalyCsoportId, tanuloId, false, (int)SzervezetTipusEnum.Dualis);
|
||||
|
||||
DataSourceResult result = ds.ToDataSourceResult();
|
||||
return result;
|
||||
}
|
||||
|
||||
public DataSourceResult GetMulasztasokTanuloNezetDetailGrid(int tanuloId, int osztalyCsoportId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
CheckTanulo(tanuloId,true);
|
||||
|
||||
var coList = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetMulasztasokTanuloDetailGridItemCoList(new MulasztasokCo { TanuloId = tanuloId, OsztCsop = osztalyCsoportId == default ? default(int?) : osztalyCsoportId, KapcsCsop = true }, true, csoportVezetoId: (int?)null);
|
||||
var modelList = new List<MulasztasGridModel>();
|
||||
|
||||
foreach (var item in coList)
|
||||
{
|
||||
var gridModel = new MulasztasGridModel(item);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
#endregion Tanuló nézet
|
||||
|
||||
#region Napló nézet
|
||||
|
||||
public DataSourceResult GetMulasztasokNaploNezetGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<MulasztasSearchModel>(data);
|
||||
|
||||
if (!model.OsztalyCsoportId.HasValue || !model.NaploNezetDatum.HasValue)
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
|
||||
CheckOsztalyCsoport(model.OsztalyCsoportId.Value);
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
if (string.IsNullOrWhiteSpace(helper.GridParameters.OrderBy))
|
||||
{
|
||||
helper.GridParameters.OrderBy = "TanuloNev ASC";
|
||||
}
|
||||
|
||||
ds = helper.GetMulasztasokNaploNezetGrid(model.OsztalyCsoportId.Value, model.NaploNezetDatum.Value, false, (int)SzervezetTipusEnum.Dualis);
|
||||
|
||||
DataSourceResult result = ds.ToDataSourceResult();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Tanuló popup
|
||||
|
||||
public DataSourceResult GetTanuloMulasztasaiGrid(string data, bool igazolandok, bool isTanorai, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<TanuloMulasztasaiPopupModel>(data);
|
||||
CheckTanulo(model.TanuloId);
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
if (string.IsNullOrWhiteSpace(helper.GridParameters.OrderBy))
|
||||
{
|
||||
helper.GridParameters.OrderBy = "MulasztasDatuma DESC";
|
||||
}
|
||||
|
||||
ds = helper.GetTanuloMulasztasaiGrid(model.TanuloId, ClaimData.AktivTanevID.Value, igazolandok, null, (int?)null, model.OsztalyCsoportId);
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public DataSourceResult GetTanuloMulasztasaiDetailGrid(string model, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var mulasztasModel = JsonConvert.DeserializeObject<TanuloMulasztasaiPopupModel>(model);
|
||||
CheckTanulo(mulasztasModel.TanuloId);
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
if (string.IsNullOrWhiteSpace(helper.GridParameters.OrderBy))
|
||||
{
|
||||
helper.GridParameters.OrderBy = "Oraszam ASC";
|
||||
}
|
||||
|
||||
bool isCsoportVezeto;
|
||||
bool? isTanorai = null;
|
||||
if (mulasztasModel.SzerepkorViewType == SzerepkorViewTypeEnum.CsoportvezetoNezet)
|
||||
{
|
||||
isCsoportVezeto = true;
|
||||
isTanorai = mulasztasModel.IsTanorai;
|
||||
}
|
||||
else
|
||||
{
|
||||
isCsoportVezeto = IsCsoportVezeto();
|
||||
}
|
||||
var mulasztasokCo = new MulasztasokCo
|
||||
{
|
||||
Tol = mulasztasModel.MulasztasDatuma,
|
||||
Ig = mulasztasModel.MulasztasDatuma,
|
||||
OsztalyFonokId = ClaimData.FelhasznaloId,
|
||||
OsztCsop = mulasztasModel.OsztalyCsoportId,
|
||||
TanuloId = mulasztasModel.TanuloId
|
||||
};
|
||||
ds = helper.GetTanuloMulasztasaiDetailGrid(mulasztasokCo, mulasztasModel.Kezeletlen, isTanorai, isCsoportVezeto ? ClaimData.FelhasznaloId : (int?)null);
|
||||
|
||||
#region "Header helyett nulladik sor, ha"
|
||||
//NOTE: "Ideiglenesen mivel a grid headerbe nincs lehetőség az összes oszlopérték beállítására egyszerre, ezért bekerül egy nulladik sor, amivel állítani lehet..."
|
||||
if (mulasztasModel.SzerepkorViewType == SzerepkorViewTypeEnum.OsztalyfonokNezet
|
||||
|| (mulasztasModel.SzerepkorViewType == SzerepkorViewTypeEnum.CsoportvezetoNezet
|
||||
&& mulasztasModel.IsTanorai == false && mulasztasModel.MulasztasJogosultsagSetting != CsoportvezetokIgazolasiJogosultsagaEnum.NemIgazolhatnak))
|
||||
{
|
||||
DataRow dr = ds.Tables[0].NewRow();
|
||||
dr["ID"] = 0;
|
||||
dr["TargyNev"] = "";
|
||||
ds.Tables[0].Rows.InsertAt(dr, 0);
|
||||
}
|
||||
|
||||
#endregion "Header helyett nulladik sor, ha"
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
#endregion Tanuló popup
|
||||
|
||||
public HttpResponseMessage SaveMulasztasList(List<MulasztasokSaveModel> list)
|
||||
{
|
||||
return base.SaveMulasztasList(list, (int)SzervezetTipusEnum.Dualis);
|
||||
}
|
||||
|
||||
public HttpResponseMessage SaveNaploNezetMulasztasList(MulasztasokNaploNezetSaveModel model)
|
||||
{
|
||||
|
||||
return base.SaveNaploNezetMulasztasList(model, (int)SzervezetTipusEnum.Dualis);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,161 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Hianyzas.Models;
|
||||
using Kreta.Web.Areas.Tanulo.Helper;
|
||||
using Kreta.Web.Areas.Tanulo.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.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class FelmentesekApiController : ApiController
|
||||
{
|
||||
|
||||
public DataSourceResult GetFelmentesekGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public HttpResponseMessage SaveFelmentes(TanuloFelmentesModel model)
|
||||
{
|
||||
TanuloLogic.TanuloFelmentesCustomValidation(ModelState, model);
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var co = TanuloFelmentesModel.ConvertModelToCo(model);
|
||||
|
||||
if (co.IsKorabbiMulasztasokEllenorzese && co.Kezdete.Value < DateTime.Now && co.OraMentesites)
|
||||
{
|
||||
var mulasztasDataSet = helper.CheckModosuloKorabbiMulasztasok(co);
|
||||
|
||||
if (mulasztasDataSet.Tables[0].Rows.Count != 0)
|
||||
{
|
||||
return Request.CreateResponse(HttpStatusCode.OK, mulasztasDataSet.ToDataSourceResult(), Configuration.Formatters.JsonFormatter);
|
||||
}
|
||||
}
|
||||
|
||||
helper.TanuloFelmentesMentese(co, ClaimData.KovTanevID);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
var error = new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public HttpResponseMessage DeleteFelmentes([FromBody] int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.TanuloFelmentesTorles(id);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, FelmentesResource.Felmentes, ex.ConnectionErrorMessage);
|
||||
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
||||
}
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExportFelmentesekGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request, isTeljesFelmentesOka: true);
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<FelmentesekGridModel>(FelmentesekGridModel.FelmentesekGridExportAttributeId);
|
||||
var memoryStream = SimpleExportLogic.GetExport(FelmentesResource.FelmentesekGridExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{FelmentesResource.FelmentesekGridExportFilename}_{DateTime.Now:yyyy_MM_dd}.xlsx");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExportAktivFelmentesek(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request, false, true);
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<FelmentesekGridModel>(FelmentesekGridModel.AktivFelmentesekGridExportAttributeId);
|
||||
var memoryStream = SimpleExportLogic.GetExport(FelmentesResource.AktivFelmentesekGridExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{FelmentesResource.AktivFelmentesekGridExportFilename}_{DateTime.Now:yyyy_MM_dd}.xlsx");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExportToroltFelmentesek(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request, true, true);
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<FelmentesekGridModel>(FelmentesekGridModel.ToroltFelmentesekGridExportAttributeId);
|
||||
var memoryStream = SimpleExportLogic.GetExport(FelmentesResource.ToroltFelmentesekGridExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{FelmentesResource.ToroltFelmentesekGridExportFilename}_{DateTime.Now:yyyy_MM_dd}.xlsx");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<FelmentesekGridModel> modelList) GetGridData(string data, DataSourceRequest request, bool? torolt = null, bool isTeljesFelmentesOka = false)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<FelmentesekSearchModel>(data);
|
||||
model.Torolt = torolt;
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new FelmentesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetFelmentesGrid(model.ToCo());
|
||||
|
||||
var modelList = new List<FelmentesekGridModel>();
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new FelmentesekGridModel(co, isTeljesFelmentesOka);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Areas.Hianyzas.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class HianyzasokApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetHianyzasGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
HianyzasokSearchModel model = JsonConvert.DeserializeObject<HianyzasokSearchModel>(data);
|
||||
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
var ds = helper.GetHallgatoMulasztasai(model.ConvertToMulasztasokCo());
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,205 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Hianyzas.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.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
|
||||
public class IgazolasokApiController : BaseIgazolasokApiController
|
||||
{
|
||||
public DataSourceResult GetIgazolasGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
return base.GetIgazolasGrid(data, request);
|
||||
}
|
||||
|
||||
public DataSourceResult GetDetailIgazolasok(int tanuloId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
return base.GetDetailIgazolasok(tanuloId, request);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage ValidateIgazolasOnSave(List<IgazolasMentesModel> igazolasList)
|
||||
{
|
||||
string errorMsg = ValidateBeforeSaveIgazolasList(igazolasList);
|
||||
|
||||
if (string.IsNullOrWhiteSpace(errorMsg))
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMsg);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveIgazolas(List<IgazolasMentesModel> igazolasList)
|
||||
{
|
||||
ValidateIgazolasList(igazolasList, ModelState);
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
||||
|
||||
var osztalyCsoportTanuloDict = new Dictionary<int, HashSet<int>>();
|
||||
foreach (var igazolas in igazolasList)
|
||||
{
|
||||
if (!osztalyCsoportTanuloDict.TryGetValue(igazolas.OsztalyCsoportId, out var tanuloIdSet))
|
||||
{
|
||||
tanuloIdSet = new HashSet<int>();
|
||||
osztalyCsoportTanuloDict.Add(igazolas.OsztalyCsoportId, tanuloIdSet);
|
||||
}
|
||||
tanuloIdSet.Add(igazolas.TanuloId);
|
||||
}
|
||||
|
||||
foreach (var osztalyCsoportTanulo in osztalyCsoportTanuloDict)
|
||||
{
|
||||
if (!authorization.IsValidTanulo(osztalyCsoportTanulo.Value.ToList(), osztalyCsoportTanulo.Key))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (IgazolasMentesModel igazolas in igazolasList)
|
||||
{
|
||||
var igazolasCO = new IgazolasCO()
|
||||
{
|
||||
TanuloId = igazolas.TanuloId,
|
||||
OsztCsop = igazolas.OsztalyCsoportId,
|
||||
ErvKezdete = igazolas.IgazolasElsoNap,
|
||||
ErvVege = igazolas.IgazolasUtolsoNap,
|
||||
RogzitoId = ClaimData.FelhasznaloId,
|
||||
RogzDatum = DateTime.Now,
|
||||
IgazolasTipus = igazolas.IgazolasTipus,
|
||||
Megjegyzes = igazolas.IgazolasSzovegesTartalma,
|
||||
SzervezetId = igazolas.SzervezetId
|
||||
};
|
||||
|
||||
new IgazolasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveOrUpdateIgazolas(igazolasCO);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
private string ValidateBeforeSaveIgazolasList(List<IgazolasMentesModel> igazolasList)
|
||||
{
|
||||
string errorMsg = string.Empty;
|
||||
if (igazolasList.Count > 0)
|
||||
{
|
||||
int osztalyCsoportId = igazolasList[0].OsztalyCsoportId;
|
||||
|
||||
DataTable igazolasDT = new DataTable();
|
||||
igazolasDT.Columns.Add("TanuloId", typeof(int));
|
||||
igazolasDT.Columns.Add("ElsoNap", typeof(string));
|
||||
igazolasDT.Columns.Add("UtolsoNap", typeof(string));
|
||||
igazolasDT.Columns.Add("IntezmenyId", typeof(int));
|
||||
igazolasDT.Columns.Add("TanevId", typeof(int));
|
||||
igazolasDT.Columns.Add("OsztalyCsoportId", typeof(int));
|
||||
igazolasDT.Columns.Add("SzervezetId", typeof(int));
|
||||
foreach (IgazolasMentesModel igazolas in igazolasList)
|
||||
{
|
||||
var row = igazolasDT.NewRow();
|
||||
{
|
||||
row["TanuloId"] = igazolas.TanuloId;
|
||||
row["ElsoNap"] = igazolas.IgazolasElsoNap.ToConvertableDateString().Replace("-", "");
|
||||
row["UtolsoNap"] = igazolas.IgazolasUtolsoNap.ToConvertableDateString().Replace("-", "");
|
||||
row["IntezmenyId"] = ClaimData.IntezmenyId;
|
||||
row["TanevId"] = ClaimData.AktivTanevID ?? ClaimData.SelectedTanevID ?? 0;
|
||||
row["OsztalyCsoportId"] = igazolas.OsztalyCsoportId;
|
||||
row["SzervezetId"] = igazolas.SzervezetId??0;
|
||||
igazolasDT.Rows.Add(row);
|
||||
}
|
||||
}
|
||||
List<IgazolasCO> igazolasok = new IgazolasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportIgazolasokForValidate(igazolasDT).Tables[0].AsEnumerable().
|
||||
Select(x => new IgazolasCO() { TanuloId = x.Field<int>("TanuloId"), ErvKezdete = x.Field<DateTime>("ElsoNap"), ErvVege = x.Field<DateTime>("UtolsoNap"), SzervezetId = x.Field<int?>("SzervezetId")??0 }).ToList();
|
||||
foreach (IgazolasMentesModel igazolas in igazolasList)
|
||||
{
|
||||
List<IgazolasCO> invalidIgazolasok = igazolasok.Where(x => x.TanuloId == igazolas.TanuloId).ToList();
|
||||
if (invalidIgazolasok.Count > 0)
|
||||
{
|
||||
DateTime minDate = igazolas.IgazolasElsoNap >= invalidIgazolasok.Min(x => x.ErvKezdete) ? igazolas.IgazolasElsoNap : invalidIgazolasok.Min(x => x.ErvKezdete);
|
||||
DateTime maxDate = igazolas.IgazolasUtolsoNap <= invalidIgazolasok.Max(x => x.ErvVege) ? igazolas.IgazolasUtolsoNap : invalidIgazolasok.Max(x => x.ErvVege);
|
||||
errorMsg += "</ br>" + string.Format(IgazolasResource.IgazolasDatumUtkozes, igazolas.TanuloNev, minDate.ToShortDateString(), maxDate.ToShortDateString());
|
||||
}
|
||||
}
|
||||
}
|
||||
return errorMsg;
|
||||
}
|
||||
|
||||
private void ValidateIgazolasList(List<IgazolasMentesModel> igazolasList, ModelStateDictionary modelState)
|
||||
{
|
||||
if (igazolasList.Count > 0)
|
||||
{
|
||||
int osztalyCsoportId = igazolasList[0].OsztalyCsoportId;
|
||||
|
||||
IEnumerable<DataRow> osztalyTanuloi = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportMindenkoriTanuloi(osztalyCsoportId).Tables[0].AsEnumerable();
|
||||
|
||||
foreach (IgazolasMentesModel igazolas in igazolasList)
|
||||
{
|
||||
bool isValidIgazolas = osztalyTanuloi.Any(x => x.Field<int>("ID") == igazolas.TanuloId
|
||||
&& x.Field<DateTime>("BelepesDatum").Date <= igazolas.IgazolasElsoNap.Date
|
||||
&& (!x.Field<DateTime?>("KilepesDatum").HasValue || x.Field<DateTime>("KilepesDatum").Date >= igazolas.IgazolasUtolsoNap.Date));
|
||||
if (!isValidIgazolas)
|
||||
{
|
||||
modelState.AddModelError($"igazolas_{igazolas.TanuloId}", string.Format(IgazolasResource.ErvenytelenIgazolasDatum, igazolas.TanuloNev));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteIgazolas([FromBody] int id)
|
||||
{
|
||||
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
||||
if (!authorization.IsValidIgazolas(id))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
|
||||
new IgazolasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).DeleteIgazolasById(id);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)]
|
||||
public HttpResponseMessage DeleteIgazolasAdmin([FromBody] int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
new IgazolasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).DeleteIgazolasById(id);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, IgazolasResource.Igazolas, ex.ConnectionErrorMessage);
|
||||
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Hianyzas.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.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class IgazolasokListajaApiController : ApiController
|
||||
{
|
||||
[HttpPost]
|
||||
public DataSourceResult GetIgazolasokListajaGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] KretaGridDataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(request.data, request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<IgazolasokListajaGridModel>(IgazolasokListajaGridModel.IgazolasokExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(HianyzasResource.IgazolasokListajaExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{HianyzasResource.IgazolasokListajaExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<IgazolasokListajaGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<IgazolasokListajaSearchModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new IgazolasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIgazolasCoList(model.ConvertToCO());
|
||||
|
||||
var modelList = new List<IgazolasokListajaGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new IgazolasokListajaGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Areas.Hianyzas.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class InformaciokIgazolasokApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetIgazolasGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<InformaciokIgazolasSearchModel>(data);
|
||||
var helper = new IgazolasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
var ds = helper.GetInformaciokIgazolasGrid(model.ConvertToCo());
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
using System.Net.Http;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class MulasztasKeresoApiController : BaseMulasztasKeresoApiController
|
||||
{
|
||||
public DataSourceResult GetMulasztasGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(data, request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
return base.GetExport(data, request);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,302 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Web.Areas.Hianyzas.Models;
|
||||
using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
|
||||
public class MulasztasokApiController : BaseMulasztasokApiController
|
||||
{
|
||||
#region Dátum nézet
|
||||
|
||||
//Mulasztásos napok lekérdezése a dátum nézethez
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
|
||||
public DataSourceResult GetMulasztasokDatumNezetGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<MulasztasIndexModel>(data);
|
||||
|
||||
if (!model.OsztalyCsoportId.HasValue && !model.CsoportId.HasValue)
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
|
||||
bool isFromCsopvez = model.CsoportId.HasValue;
|
||||
int osztalyCsoportId;
|
||||
if (isFromCsopvez)
|
||||
{
|
||||
CheckCsoport(model.CsoportId.Value);
|
||||
osztalyCsoportId = model.CsoportId.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckOsztalyCsoport(model.OsztalyCsoportId.Value);
|
||||
osztalyCsoportId = model.OsztalyCsoportId.Value;
|
||||
}
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
if (string.IsNullOrWhiteSpace(helper.GridParameters.OrderBy))
|
||||
{
|
||||
helper.GridParameters.OrderBy = "MulasztasDatuma DESC";
|
||||
}
|
||||
|
||||
ds = helper.GetDatumNezetDataByOsztalyCsoportId(osztalyCsoportId, isFromCsopvez || IsCsoportVezeto());
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
//Mulasztasok lekérdezése dátum alapján
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue)]
|
||||
public DataSourceResult GetMulasztasokDatumNezetDetailGrid(string model, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var mulasztasModel = JsonConvert.DeserializeObject<MulasztasokDatumNezetGridModel>(model);
|
||||
|
||||
bool isFromCsopvez = mulasztasModel.SzerepkorViewType == SzerepkorViewTypeEnum.CsoportvezetoNezet;
|
||||
|
||||
if (isFromCsopvez)
|
||||
{
|
||||
CheckCsoport(mulasztasModel.OsztalyCsoportId);
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckOsztalyCsoport(mulasztasModel.OsztalyCsoportId);
|
||||
}
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
if (string.IsNullOrWhiteSpace(helper.GridParameters.OrderBy))
|
||||
{
|
||||
helper.GridParameters.OrderBy = "Oraszam ASC";
|
||||
}
|
||||
|
||||
ds = helper.GetMulasztasokDatumNezetDetailGrid(mulasztasModel.MulasztasDatuma, mulasztasModel.OsztalyCsoportId, (isFromCsopvez || IsCsoportVezeto()));
|
||||
|
||||
#region "Header helyett nulladik sor, ha"
|
||||
//NOTE: "Ideiglenesen mivel a grid headerbe nincs lehetőség az összes oszlopérték beállítására egyszerre, ezért bekerül egy nulladik sor, amivel állítani lehet..."
|
||||
|
||||
if (!isFromCsopvez
|
||||
|| (mulasztasModel.IsTanorai == false && mulasztasModel.MulasztasJogosultsagSetting != CsoportvezetokIgazolasiJogosultsagaEnum.NemIgazolhatnak))
|
||||
{
|
||||
DataRow dr = ds.Tables[0].NewRow();
|
||||
dr["ID"] = 0;
|
||||
dr["TanuloNev"] = "";
|
||||
ds.Tables[0].Rows.InsertAt(dr, 0);
|
||||
}
|
||||
|
||||
#endregion "Header helyett nulladik sor, ha"
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
#endregion Dátum nézet
|
||||
|
||||
#region Tanuló nézet
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue)]
|
||||
public DataSourceResult GetMulasztasokTanuloNezetGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<MulasztasSearchModel>(data);
|
||||
|
||||
var osztalyCsoportId = model.OsztalyCsoportId;
|
||||
var tanuloId = model.TanuloId;
|
||||
|
||||
if (!osztalyCsoportId.IsEntityId() && !tanuloId.IsEntityId())
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
if (osztalyCsoportId.IsEntityId())
|
||||
{
|
||||
CheckOsztalyCsoport(osztalyCsoportId.Value);
|
||||
}
|
||||
if (tanuloId.IsEntityId())
|
||||
{
|
||||
CheckTanulo(tanuloId.Value);
|
||||
}
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
ds = helper.GetTanulokMulasztasaiKesesei(osztalyCsoportId, tanuloId, IsCsoportVezeto());
|
||||
|
||||
DataSourceResult result = ds.ToDataSourceResult();
|
||||
return result;
|
||||
}
|
||||
|
||||
public DataSourceResult GetMulasztasokTanuloNezetDetailGrid(int tanuloId, int osztalyCsoportId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
CheckTanulo(tanuloId);
|
||||
|
||||
var coList = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetMulasztasokTanuloDetailGridItemCoList(new MulasztasokCo { TanuloId = tanuloId, OsztCsop = osztalyCsoportId == default ? default(int?) : osztalyCsoportId, KapcsCsop = true }, true, csoportVezetoId: IsCsoportVezeto() ? ClaimData.FelhasznaloId : (int?)null);
|
||||
var modelList = new List<MulasztasGridModel>();
|
||||
|
||||
foreach (var item in coList)
|
||||
{
|
||||
var gridModel = new MulasztasGridModel(item);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
#endregion Tanuló nézet
|
||||
|
||||
#region Napló nézet
|
||||
|
||||
public DataSourceResult GetMulasztasokNaploNezetGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<MulasztasSearchModel>(data);
|
||||
|
||||
if (!model.OsztalyCsoportId.HasValue || !model.NaploNezetDatum.HasValue)
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
|
||||
CheckOsztalyCsoport(model.OsztalyCsoportId.Value);
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
if (string.IsNullOrWhiteSpace(helper.GridParameters.OrderBy))
|
||||
{
|
||||
helper.GridParameters.OrderBy = "TanuloNev ASC";
|
||||
}
|
||||
|
||||
ds = helper.GetMulasztasokNaploNezetGrid(model.OsztalyCsoportId.Value, model.NaploNezetDatum.Value, IsCsoportVezeto());
|
||||
|
||||
DataSourceResult result = ds.ToDataSourceResult();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Tanuló popup
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue)]
|
||||
public DataSourceResult GetTanuloMulasztasaiGrid(string data, bool igazolandok, bool isTanorai, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<TanuloMulasztasaiPopupModel>(data);
|
||||
CheckTanulo(model.TanuloId);
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
if (string.IsNullOrWhiteSpace(helper.GridParameters.OrderBy))
|
||||
{
|
||||
helper.GridParameters.OrderBy = "MulasztasDatuma DESC";
|
||||
}
|
||||
|
||||
bool isCsoportVezeto;
|
||||
bool? isTanoraiCelu = null;
|
||||
if (model.SzerepkorViewType == SzerepkorViewTypeEnum.CsoportvezetoNezet)
|
||||
{
|
||||
isCsoportVezeto = true;
|
||||
isTanoraiCelu = isTanorai;
|
||||
}
|
||||
else
|
||||
{
|
||||
isCsoportVezeto = IsCsoportVezeto();
|
||||
}
|
||||
|
||||
ds = helper.GetTanuloMulasztasaiGrid(model.TanuloId, ClaimData.AktivTanevID.Value, igazolandok, isTanoraiCelu, isCsoportVezeto ? ClaimData.FelhasznaloId : (int?)null, model.OsztalyCsoportId);
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue)]
|
||||
public DataSourceResult GetTanuloMulasztasaiDetailGrid(string model, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var mulasztasModel = JsonConvert.DeserializeObject<TanuloMulasztasaiPopupModel>(model);
|
||||
CheckTanulo(mulasztasModel.TanuloId);
|
||||
|
||||
DataSet ds;
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
if (string.IsNullOrWhiteSpace(helper.GridParameters.OrderBy))
|
||||
{
|
||||
helper.GridParameters.OrderBy = "Oraszam ASC";
|
||||
}
|
||||
|
||||
bool isCsoportVezeto;
|
||||
bool? isTanorai = null;
|
||||
if (mulasztasModel.SzerepkorViewType == SzerepkorViewTypeEnum.CsoportvezetoNezet)
|
||||
{
|
||||
isCsoportVezeto = true;
|
||||
isTanorai = mulasztasModel.IsTanorai;
|
||||
}
|
||||
else
|
||||
{
|
||||
isCsoportVezeto = IsCsoportVezeto();
|
||||
}
|
||||
var mulasztasokCo = new MulasztasokCo
|
||||
{
|
||||
Tol = mulasztasModel.MulasztasDatuma,
|
||||
Ig = mulasztasModel.MulasztasDatuma,
|
||||
OsztalyFonokId = ClaimData.FelhasznaloId,
|
||||
OsztCsop = mulasztasModel.OsztalyCsoportId,
|
||||
TanuloId = mulasztasModel.TanuloId
|
||||
};
|
||||
ds = helper.GetTanuloMulasztasaiDetailGrid(mulasztasokCo, mulasztasModel.Kezeletlen, isTanorai, isCsoportVezeto ? ClaimData.FelhasznaloId : (int?)null);
|
||||
|
||||
#region "Header helyett nulladik sor, ha"
|
||||
//NOTE: "Ideiglenesen mivel a grid headerbe nincs lehetőség az összes oszlopérték beállítására egyszerre, ezért bekerül egy nulladik sor, amivel állítani lehet..."
|
||||
if (mulasztasModel.SzerepkorViewType == SzerepkorViewTypeEnum.OsztalyfonokNezet
|
||||
|| (mulasztasModel.SzerepkorViewType == SzerepkorViewTypeEnum.CsoportvezetoNezet
|
||||
&& mulasztasModel.IsTanorai == false && mulasztasModel.MulasztasJogosultsagSetting != CsoportvezetokIgazolasiJogosultsagaEnum.NemIgazolhatnak))
|
||||
{
|
||||
DataRow dr = ds.Tables[0].NewRow();
|
||||
dr["ID"] = 0;
|
||||
dr["TargyNev"] = "";
|
||||
ds.Tables[0].Rows.InsertAt(dr, 0);
|
||||
}
|
||||
|
||||
#endregion "Header helyett nulladik sor, ha"
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
#endregion Tanuló popup
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue)]
|
||||
public HttpResponseMessage SaveMulasztasList(List<MulasztasokSaveModel> list)
|
||||
{
|
||||
return base.SaveMulasztasList(list);
|
||||
}
|
||||
|
||||
public HttpResponseMessage SaveNaploNezetMulasztasList(MulasztasokNaploNezetSaveModel model)
|
||||
{
|
||||
|
||||
return base.SaveNaploNezetMulasztasList(model);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Hianyzas.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class TantargyiMulasztasApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetTantargyiMulasztasGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
var ds = helper.GetTanuloMulasztasai(ClaimData.FelhasznaloId);
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue