250 lines
10 KiB
C#
250 lines
10 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|