init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,120 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
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.Orarend.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.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AdminBejelentettSzamonkeresekApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetBejelentettSzamonkeresekGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(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<BejelentettSzamonkeresekGridModel>(BejelentettSzamonkeresekGridModel.BejelentettSzamonkeresekExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(OrarendResource.BejelentettSzamonkeresekExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{OrarendResource.BejelentettSzamonkeresekExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<BejelentettSzamonkeresekGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<BejelentettSzamonkeresekSearchModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetBejelentettSzamonkeresekCoList(model.ConvertToCo());
|
||||
|
||||
var modelList = new List<BejelentettSzamonkeresekGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new BejelentettSzamonkeresekGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
public DataSourceResult GetBejelentettSzamonkeresekExportGrid(string searchFilter, string sortColumn, string sortDir)
|
||||
{
|
||||
BejelentettSzamonkeresekSearchModel model = JsonConvert.DeserializeObject<BejelentettSzamonkeresekSearchModel>(searchFilter);
|
||||
|
||||
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var ds = helper.GetBejelentettSzamonkeresekGrid(model.ConvertToCo());
|
||||
ds.Tables[0].Columns.Add("SzamonkeresDatumaStr", typeof(string));
|
||||
ds.Tables[0].Columns.Add("BejelentesDatumaStr", typeof(string));
|
||||
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
var dt = DateTime.Parse(row["SzamonkeresDatuma"].ToString());
|
||||
row["SzamonkeresDatumaStr"] = dt.ToString("yyyy.MM.dd.");
|
||||
var dt2 = DateTime.Parse(row["BejelentesDatuma"].ToString());
|
||||
row["BejelentesDatumaStr"] = dt2.ToString("yyyy.MM.dd.");
|
||||
}
|
||||
|
||||
if (sortColumn != "-" && sortDir != "-")
|
||||
{
|
||||
DataSet result = new DataSet();
|
||||
ds.Tables[0].DefaultView.Sort = (sortColumn).ToUpper() + " " + (sortDir).ToUpper();
|
||||
result.Tables.Add(ds.Tables[0].DefaultView.ToTable());
|
||||
return result.ToDataSourceResult();
|
||||
}
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public System.Web.Http.Results.JsonResult<List<ExportColumn>> GetExportColumns()
|
||||
{
|
||||
List<ExportColumn> Items = new List<ExportColumn>();
|
||||
|
||||
Items.Add(new ExportColumn() { Field = "SzamonkeresDatumaStr", Title = OrarendResource.Datum });
|
||||
Items.Add(new ExportColumn() { Field = "HetNapja_DNAME", Title = OrarendResource.HetNapja });
|
||||
Items.Add(new ExportColumn() { Field = "Oraszam", Title = OrarendResource.Oraszam });
|
||||
Items.Add(new ExportColumn() { Field = "TargyNev", Title = OrarendResource.Targy });
|
||||
Items.Add(new ExportColumn() { Field = "OsztalyNev", Title = OrarendResource.OsztalyCsoport });
|
||||
Items.Add(new ExportColumn() { Field = "TanarNev", Title = OrarendResource.Tanar });
|
||||
Items.Add(new ExportColumn() { Field = "ErtekelesModNev", Title = OrarendResource.SzamonkeresMod });
|
||||
Items.Add(new ExportColumn() { Field = "SzamonkeresMegnevezes", Title = OrarendResource.SzamonkeresMegnevezes });
|
||||
Items.Add(new ExportColumn() { Field = "BejelentesDatumaStr", Title = OrarendResource.BejelentesDatuma });
|
||||
|
||||
return Json(Items);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,192 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
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.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Logic;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
using HttpPostAttribute = System.Web.Http.HttpPostAttribute;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AdminKozpontiOrakApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetRogzitesGrid(bool isSorszamozando, DateTime? datum = null, int? hanyadikOra = null)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
|
||||
var helper = new OsztalyHelper(connectionType);
|
||||
List<OsztalyItemCo> osztalyok = helper.GetOsztalyCoList();
|
||||
|
||||
if (datum.HasValue && hanyadikOra.HasValue)
|
||||
{
|
||||
var osztalyCsoportIds = new CsengetesiRendHelper(connectionType).GetOsztalyCsoportIdsForCsengetesiRend(datum.Value, hanyadikOra.Value, osztalyok.Select(x => x.Id));
|
||||
|
||||
osztalyok = osztalyok.Where(x => osztalyCsoportIds.Contains(x.Id)).ToList();
|
||||
}
|
||||
|
||||
return AdminKozpontiOrakOsztalyokGridModel.MapOsztalyItemCoListToOsztalyokGridModelList(osztalyok, isSorszamozando).ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public DataSourceResult GetKozpontiOrabaUtkozoOrarendiOrakGrid(DateTime start, DateTime end, int hanyadikora, bool onlyUtkozoOrak, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] KretaGridDataSourceRequest request)
|
||||
{
|
||||
var temp = JsonConvert.DeserializeObject<AdminKozpontiOrakRogzitesSelectedModel.DeserializeHelper>(request.data);
|
||||
List<AdminKozpontiOrakRogzitesSelectedModel> kozpontiOraList = JsonConvert.DeserializeObject<List<AdminKozpontiOrakRogzitesSelectedModel>>(temp.JsonContent);
|
||||
|
||||
if (kozpontiOraList == null)
|
||||
{
|
||||
return new List<AdminKozpontiOrakOsztalyokGridModel>().ToDataSourceResult();
|
||||
}
|
||||
|
||||
var helper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
IList<AdminKozpontiOrakOrarendiOraCo> orarendiOrak = helper.GetOrarendiOrakUtkozesKozpontiOraValidaciohoz(start.ToLocalTime(),
|
||||
end.ToLocalTime(), hanyadikora, AdminKozpontiOrakRogzitesSelectedModel.MapListToKozpontiOrakOrarendiOrakUtkozesCoList(kozpontiOraList, hanyadikora), onlyUtkozoOrak);
|
||||
|
||||
return AdminKozpontiOrakOsztalyokGridModel.MapOrarendiOrakoListToOsztalyokGridModelList(orarendiOrak).ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public DataSourceResult GetOrarendiOrakKopontilagTorleseGrid(DateTime start, DateTime end, int hanyadikora)
|
||||
{
|
||||
var helper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
IList<AdminKozpontiOrakOrarendiOraCo> orarendiOrak = helper.GetOrarendiOrakForSpecificTime(start.ToLocalTime(), end.ToLocalTime(), null, null, hanyadikora);
|
||||
|
||||
return AdminKozpontiOrakOsztalyokGridModel.MapOrarendiOrakoListToOsztalyokGridModelList(orarendiOrak.Where(i => i.KozpontiOraGroupId == null && i.KozpontilagToroltOraGroupId == null).ToList()).ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public DataSourceResult GetOrarendiOrakVisszaallitasaGrid(DateTime start, DateTime end, int hanyadikora)
|
||||
{
|
||||
var helper = new AdminKozpontiOrakHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
IList<AdminKozpontiOrakOrarendiOraCo> orarendiOrak = helper.GetToroltOrarendiOrakVisszaallitashoz(start.ToLocalTime(), end.ToLocalTime(), hanyadikora);
|
||||
|
||||
return AdminKozpontiOrakOsztalyokGridModel.MapOrarendiOrakoListToOsztalyokGridModelList(orarendiOrak).ToDataSourceResult();
|
||||
}
|
||||
|
||||
public DataSourceResult GetModositasGrid(DateTime start, DateTime end, int hanyadikora)
|
||||
{
|
||||
var helper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
IList<AdminKozpontiOrakOrarendiOraCo> orarendiOrak = helper.GetGroupedKozpontiOrakForSpecificTime(start.ToLocalTime(), end.ToLocalTime(), start.ToLocalTime(), end.ToLocalTime(), hanyadikora);
|
||||
|
||||
return AdminKozpontiOrakOsztalyokGridModel.MapOrarendiOrakoListToOsztalyokGridModelList(orarendiOrak).ToDataSourceResult();
|
||||
}
|
||||
|
||||
public DataSourceResult GetModositasDetailsGrid(DateTime start, DateTime end, int hanyadikOra, Guid kozpontiOraId)
|
||||
{
|
||||
var helper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
IList<AdminKozpontiOrakOrarendiOraCo> orarendiOrak = helper.GetOrarendiOrakForSpecificTime(start.ToLocalTime(), end.ToLocalTime(), start.ToLocalTime(), end.ToLocalTime(), hanyadikOra, true, kozpontiOraId);
|
||||
|
||||
return AdminKozpontiOrakOsztalyokGridModel.MapOrarendiOrakoListToOsztalyokGridModelList(orarendiOrak).ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage CreateKozpontiOra(AdminCreateKozpontiOrakModel model)
|
||||
{
|
||||
var kozpontiOraLogic = new AdminKozpontiOraLogic();
|
||||
var validationResult = kozpontiOraLogic.CreateOraValidationCoListForKozpontiOrak(model.Start, model.End, model.HanyadikOra, model.KozpontiOrakRogzitesre, model.IsTeremutkozesFigyelese, out var kozpontiOrakList);
|
||||
|
||||
if (!validationResult.IsValid)
|
||||
{
|
||||
if (validationResult.HasTeremutkozes)
|
||||
{
|
||||
if (validationResult.TeremutkozesSystemSettingsValue == (int)TevekenysegUtkozesEnum.UtkozeskorFigyelmeztetes)
|
||||
{
|
||||
var jsonResult = JsonConvert.SerializeObject(new { isTeremutkozesConfirm = true });
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, jsonResult.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
if (!model.OrarendiOrakTorlesre.Any())
|
||||
{
|
||||
var jsonResult = JsonConvert.SerializeObject(new { isTeremutkozesConfirm = false, errorMessage = !string.IsNullOrWhiteSpace(validationResult.ErrorMessage) ? validationResult.ErrorMessage : KozpontiOrakResource.AzIdopontraMarRogzitettekUgyanezenAdatokkalKozpontiOrat });
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, jsonResult.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var result = orarendiOraHelper.HandleSaveKozpontiOraRequest(model.Start.ToLocalTime(), model.OrarendiOrakTorlesre, kozpontiOrakList);
|
||||
|
||||
if (!result)
|
||||
{
|
||||
return Request.CreateResponse(HttpStatusCode.InternalServerError, false);
|
||||
}
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, true);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteKozpontiOra(AdminKozpontiOrakDeleteKozpontiOrakModel model)
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
orarendiOraHelper.DeletOrarendiOra(model.OrarendiOraId, (int)OraModositasiIdoszakTipus.EgyOra, DateTime.Now);
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, true);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteAllKozpontiOraByGroupId(AdminKozpontiOrakDeleteKozpontiOrakModel model)
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
orarendiOraHelper.DeleteAllKozpontiOraByGroupId(model.KozpontiOraGroupId, model.Start.ToLocalTime(), model.End.ToLocalTime(), model.HanyadikOra);
|
||||
|
||||
var helper = new AdminKozpontiOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
IList<AdminKozpontiOrakOrarendiOraCo> orarendiOrak = helper.GetToroltOrarendiOrakVisszaallitashoz(model.Start.ToLocalTime(), model.End.ToLocalTime(), model.HanyadikOra);
|
||||
bool hasDeletedOrarendiOra = orarendiOrak.Any(i => i.KozpontilagToroltOraGroupId != null);
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, hasDeletedOrarendiOra);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteOrarendiOrak(AdminKozpontiOrakOrarendiOrakIdList model)
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var result = orarendiOraHelper.DeleteOrarendiOrakKozpontilag(model.OrarendiOrakIdList, model.Start.ToLocalTime());
|
||||
|
||||
if (!result)
|
||||
{
|
||||
return Request.CreateResponse(HttpStatusCode.InternalServerError, false);
|
||||
}
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, true);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage OrarendiOrakVisszaallitasa(AdminKozpontiOrakOrarendiOrakIdList model)
|
||||
{
|
||||
var kozpontiOraHelper = new AdminKozpontiOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
kozpontiOraHelper.OrarendiOrakVisszaallitasa(model.OrarendiOrakIdList);
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, true);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage OrarendiOrakVisszaallitasaValidacio(AdminKozpontiOrakOrarendiOrakIdList model)
|
||||
{
|
||||
var kozpontiOraHelper = new AdminKozpontiOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var result = kozpontiOraHelper.OrarendiOrakVisszaallitasaValidacio(model.OrarendiOrakIdList);
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, result);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,153 @@
|
|||
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;
|
||||
using Kreta.BusinessLogic.Classes.ComboBox;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Logic.Mulasztas;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Client.CoreApi;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AdminNaploEllenorzesApiController : ApiController
|
||||
{
|
||||
private readonly IFileServiceHelper fileServiceHelper;
|
||||
private readonly ICoreApiClient coreApiClient;
|
||||
|
||||
public AdminNaploEllenorzesApiController(IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
|
||||
{
|
||||
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
this.coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage UpdateNemMegtartott(int id, DateTime oraKezdete, DateTime oraVege)
|
||||
{
|
||||
var helper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var helperCo = helper.GetOrarendiOraById(id);
|
||||
|
||||
var co = new TanoraCO();
|
||||
co.Targy = helperCo.TantargyId;
|
||||
co.Terem = helperCo.TeremID;
|
||||
co.IsTanoranKivuli = helperCo.TanoranKivuliFoglalkozas;
|
||||
co.Sorszamozando = false;
|
||||
co.OrarendiOra = helperCo.ID;
|
||||
co.OsztCsop = helperCo.OsztalyCsoportId;
|
||||
co.Tanar = helperCo.TanarId;
|
||||
co.OraKezd = oraKezdete;
|
||||
co.OraVeg = oraVege;
|
||||
co.Oraszam = helperCo.Oraszam;
|
||||
co.EvesOraSorszam = null;
|
||||
co.Megtartott = false;
|
||||
co.Tulaj = helperCo.TanarId;
|
||||
co.HetNapja = helperCo.HetNapja;
|
||||
co.CsengetesiRendID = helperCo.CsengetesiRendID;
|
||||
co.AdminAltalKiirt = true;
|
||||
co.Datum = co.OraKezd.Date;
|
||||
|
||||
var thelper = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
thelper.TanoraNaplozas(co, mulasztasCo: null, fileServiceHelper, coreApiClient);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteNaplozas(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.NaplozasTorlese(id, true);
|
||||
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message) { UnHandledException = e };
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
public DataSourceResult GetMulasztasok(int osztalycsoportId, int tanoraId, DateTime oraKezdete, DateTime oraVege, int targyId, int tanarId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
return new MulasztasLogic(ConnectionTypeExtensions.GetSessionConnectionType()).GetMulasztasok(osztalycsoportId, tanoraId, oraKezdete, oraVege, targyId, tanarId, false).ToDataSourceResult();
|
||||
}
|
||||
|
||||
private void SetMagantanuloFelmentett(DataSet ds)
|
||||
{
|
||||
foreach (DataRow item in ds.Tables[0].Rows)
|
||||
{
|
||||
if (SDAConvert.ToBoolean(item["IsMagantanulo_BOOL"]))
|
||||
{
|
||||
item["OraMentesseg"] = "T";
|
||||
item["OraMentesseg_BOOL"] = true;
|
||||
item["Oka"] = StringResourcesUtil.GetString(387); /*Magántanuló*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetTanarList()
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var felhasznalokOnlyAlkalmazottSzerepkorIds = new FelhasznaloHelper(connectionType).GetFelhasznaloIdsOnlyAlkalmazottSzerepkor();
|
||||
IDictionary<string, string> lista;
|
||||
var helper = new TanarHelper(connectionType);
|
||||
lista = helper.GetTanarok(string.Empty, oktatasiAzonositoval: true);
|
||||
|
||||
lista.Remove("");
|
||||
|
||||
return Json(lista.ToComboBoxItemList().Where(x => !felhasznalokOnlyAlkalmazottSzerepkorIds.Contains(SDAConvert.ToInt32(x.Value))).ToList());
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetHelyettesitesTipus()
|
||||
{
|
||||
var data = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.HelyettesitesTipus, ClaimData.SelectedTanevID.Value, false);
|
||||
|
||||
return Json(data.ToComboBoxItemList());
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetTema(int osztcsop, int targy)
|
||||
{
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
var list = helper.GetTemaIdAndNameForNaplozasDDL(targy, osztcsop).ToComboBoxItemList();
|
||||
|
||||
return Json(list);
|
||||
}
|
||||
|
||||
public List<System.Web.Mvc.SelectListItem> GetTanarListItems()
|
||||
{
|
||||
IDictionary<string, string> list;
|
||||
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
list = helper.GetTanarok(string.Empty, oktatasiAzonositoval: false);
|
||||
|
||||
list.Remove("");
|
||||
|
||||
return list.ToSelectListItemList();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
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.Orarend.Logic;
|
||||
using Kreta.Web.Areas.Orarend.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.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AdminNemElerhetoOrarendiElemekApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetNemElerhetoOrarendiElemekGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(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<AdminNemElerhetoOrarendiElemGridModel>(AdminNemElerhetoOrarendiElemGridModel.NemElerhetoOrarendiElemExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(OrarendResource.ExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{OrarendResource.NemElerhetoOrarendiElemek_Export}_{DateTime.Now:yyyy_MM_dd}.xlsx");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<AdminNemElerhetoOrarendiElemGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<AdminNemElerhetoOrarendiElemSearchModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNemElerhetoOrarendiElemekCoList(model.ConvertToCo());
|
||||
|
||||
var modelList = new List<AdminNemElerhetoOrarendiElemGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new AdminNemElerhetoOrarendiElemGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public bool DeleteOrarendiElem(int orarendiOraId)
|
||||
{
|
||||
try
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
orarendiOraHelper.DeleteOrarendiElem(orarendiOraId);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public int DeleteOrarendiOraSelectedElem(List<int> orarendiOraIdList)
|
||||
{
|
||||
return AdminNemElerhetoOrarendiElemekLogic.DeleteSelectedOrarendiOra(orarendiOraIdList);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
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.Orarend.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.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AdminNemNaplozottTanorakApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetNemNaplozottTanorakGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList) = GetGridData(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<NemNaplozottTanorakGridModel>(NemNaplozottTanorakGridModel.NemNaplozottTanorakExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(NemNaplozottTanorakResource.ExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), NemNaplozottTanorakResource.ExportFileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<NemNaplozottTanorakGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<NemNaplozottTanorakSearchModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNemNaplozottOrarendiOraCoList(NemNaplozottTanorakSearchModel.ConvertModelToCo(model));
|
||||
|
||||
var modelList = new List<NemNaplozottTanorakGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new NemNaplozottTanorakGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AdminOsztalyOrarendApiController : BaseAdminOsztalyOrarendApiController
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,202 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.Results;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Logic;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AdminTanariOrarendApiController : BaseAdminTanariOrarendApiController
|
||||
{
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveNemKotottMunkaIdo(NemKotottMunkaidoModel model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
model.Kezdet = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Kezdet.Value);
|
||||
model.Veg = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Veg.Value);
|
||||
|
||||
var customModelState = NemKotottMunkaidoLogic.CheckCustomValidation(ModelState, model);
|
||||
if (!customModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
||||
}
|
||||
|
||||
TanevCO tanevCO;
|
||||
TanevHelper tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
tanevCO = tanevHelper.GetTanevInfo();
|
||||
|
||||
NemKotottMunkaidoCO co = NemKotottMunkaidoLogic.ConvertModelToCO(model);
|
||||
NemKotottMunkaidoHelper helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
if (model.Id.HasValue && model.Id > 0)
|
||||
{
|
||||
var lista = new List<int>();
|
||||
switch (model.ModositasiIdoszakTipus)
|
||||
{
|
||||
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
|
||||
helper.UpdateNemKotottMunkaIdoByGroupId(co, tanevCO.OraFelvetelKezdete + co.Kezdete.TimeOfDay, tanevCO.UtolsoTanitasiNap + co.Vege.TimeOfDay);
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.AdottNaptol:
|
||||
helper.UpdateNemKotottMunkaIdoByGroupId(co, co.Kezdete, tanevCO.UtolsoTanitasiNap + co.Vege.TimeOfDay, Guid.NewGuid().ToString());
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.AdottNapig:
|
||||
helper.UpdateNemKotottMunkaIdoByGroupId(co, tanevCO.OraFelvetelKezdete + co.Kezdete.TimeOfDay, co.Vege, Guid.NewGuid().ToString());
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.EgyOra:
|
||||
helper.UpdateNemKotottMunkaIdoByGroupId(co, co.Kezdete, co.Vege, Guid.NewGuid().ToString());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
co.GroupId = Guid.NewGuid().ToString();
|
||||
|
||||
var lista = new List<DateTime>();
|
||||
switch (model.ModositasiIdoszakTipus)
|
||||
{
|
||||
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
|
||||
lista = helper.GetNapokForNemKotottMunkaidoInsert(tanevCO.OraFelvetelKezdete, tanevCO.UtolsoTanitasiNap, co.Kezdete.Date, co.HetirendId);
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.AdottNaptol:
|
||||
lista = helper.GetNapokForNemKotottMunkaidoInsert(co.Kezdete.Date, tanevCO.UtolsoTanitasiNap, co.Kezdete.Date, co.HetirendId);
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.AdottNapig:
|
||||
lista = helper.GetNapokForNemKotottMunkaidoInsert(tanevCO.OraFelvetelKezdete, co.Kezdete.Date, co.Kezdete.Date, co.HetirendId);
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.EgyOra:
|
||||
helper.Insert(co);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
foreach (var item in lista)
|
||||
{
|
||||
co.Kezdete = item.AddHours(co.Kezdete.Hour).AddMinutes(co.Kezdete.Minute);
|
||||
co.Vege = item.AddHours(co.Vege.Hour).AddMinutes(co.Vege.Minute);
|
||||
|
||||
helper.Insert(co);
|
||||
}
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult UtkozesValidateNemKotottMunkaido(NemKotottMunkaidoModel model)
|
||||
{
|
||||
var hasUtkozes = Logic.NemKotottMunkaidoLogic.CheckUtkozesValidation(model);
|
||||
int tevekenysegutkozesSystemSetting = Logic.NemKotottMunkaidoLogic.GetTevekenysegUtkozesSystemSetting();
|
||||
|
||||
if (tevekenysegutkozesSystemSetting != (int)TevekenysegUtkozesEnum.UtkozesMegengedett && hasUtkozes)
|
||||
{
|
||||
if (tevekenysegutkozesSystemSetting == (int)TevekenysegUtkozesEnum.UtkozesNemLehetseges)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.NemKotottMunkaidoFelviteleNemLehetsegesUtkozesMiatt);
|
||||
}
|
||||
|
||||
return Json(new { Valid = false, Text = string.Format(OrarendResource.NemKotottMunkaidoFelviteleNemLehetsegesUtkozesMiattKerdes) });
|
||||
}
|
||||
return Json(new { Valid = true, Text = string.Empty });
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult TorlesValidateNemKotottMunkaido(NemKotottMunkaidoModel model)
|
||||
{
|
||||
var naplozottNemkotottMunkaidoSzam = NemKotottMunkaidoLogic.GetNaplozottNemkotottMunkaidoSzamByGroupId(model);
|
||||
if (naplozottNemkotottMunkaidoSzam > 0)
|
||||
{
|
||||
return Json(new { Valid = false, Text = string.Format(OrarendResource.AMuveletSoran0DarabNaplozottNemkotottMunkaido, naplozottNemkotottMunkaidoSzam) });
|
||||
}
|
||||
return Json(new { Valid = true, Text = string.Empty });
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteNemKotottMunkaIdo(NemKotottMunkaidoModel model)
|
||||
{
|
||||
TanevCO tanevCO;
|
||||
TanevHelper tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
tanevCO = tanevHelper.GetTanevInfo();
|
||||
|
||||
model.Kezdet = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Kezdet.Value);
|
||||
model.Veg = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Veg.Value);
|
||||
|
||||
NemKotottMunkaidoHelper helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
List<int> lista = new List<int>();
|
||||
switch (model.ModositasiIdoszakTipus)
|
||||
{
|
||||
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
|
||||
lista = helper.GetNapokForNemKotottMunkaidoDelete(tanevCO.OraFelvetelKezdete, tanevCO.UtolsoTanitasiNap, model.GroupId);
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.AdottNaptol:
|
||||
lista = helper.GetNapokForNemKotottMunkaidoDelete(model.Kezdet.Value.Date, tanevCO.UtolsoTanitasiNap, model.GroupId);
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.AdottNapig:
|
||||
lista = helper.GetNapokForNemKotottMunkaidoDelete(tanevCO.OraFelvetelKezdete, model.Kezdet.Value.AddDays(1).Date, model.GroupId);
|
||||
break;
|
||||
case (int)OraModositasiIdoszakTipus.EgyOra:
|
||||
helper.Delete(model.Id.Value, isAdmin: true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
foreach (var item in lista)
|
||||
{
|
||||
helper.Delete(item, isAdmin: true);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
|
||||
public bool IsTanevRendEsemenyNemKotottMunkaido(CalendarModel model)
|
||||
{
|
||||
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
return helper.GetVanTanevRendjeEsemenyNemKotottMunkaido(model.Start, model.End);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool EnabledNemKotottMunkaidoRogzitese(DateTime date)
|
||||
{
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
bool enabledNemKotottMunkaidoRogzitese = tanevrendHelper.EnabledNemKotottMunkaidoRogzitese(date);
|
||||
|
||||
return enabledNemKotottMunkaidoRogzitese;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class AdminTeremOrarendApiController : BaseAdminTeremOrarendApiController
|
||||
{
|
||||
}
|
||||
}
|
|
@ -0,0 +1,155 @@
|
|||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Logic;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
public class BaseAdminOsztalyOrarendApiController : ApiController
|
||||
{
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
OrarendiOraLogic.SetOraKezdetekAndOraVegek(model);
|
||||
|
||||
var customModelState = OrarendiOraLogic.CheckCustomValidation(ModelState, model);
|
||||
if (!customModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
orarendiOraHelper.CheckUtkozesValidationAndSaveOrUpdateOrarendiOrak(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model), ClaimData.FelhasznaloId);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.AzOrarendiOratNemLehetModositaniMertMarTartozikHozzaNaplozottOra);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage PreValidationOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
OrarendiOraLogic.SetOraKezdetekAndOraVegek(model);
|
||||
|
||||
var customModelState = OrarendiOraLogic.CheckCustomValidation(ModelState, model);
|
||||
if (!customModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
||||
}
|
||||
|
||||
var utkozesValidationMsg = OrarendiOraLogic.CheckUtkozesValidation(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model), !model.ID.HasValue ? "OrarendiOrak.Save();" : "OrarendiOrak.ModConfirmSave();", isPrevalidation: true);
|
||||
|
||||
if (utkozesValidationMsg.ErrorMsg.Length > 0)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, utkozesValidationMsg.ErrorMsg);
|
||||
}
|
||||
|
||||
if (utkozesValidationMsg.Msg.Length > 0)
|
||||
{
|
||||
throw new StatusError(CustomHTTPStatusEnum.WarningMegszakitas, string.Empty) { Json = utkozesValidationMsg };
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public bool HasHazifeladatOrHelyettesitesOrSzamonkeresForOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
model.OraKezdete = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.OraErvenyessegVege.Value, model.OraKezdete.Value);
|
||||
model.OraVege = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.OraErvenyessegVege.Value, model.OraVege.Value);
|
||||
|
||||
return new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).HasHazifeladatOrHelyettesitesOrSzamonkeresForOrarendiOra(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model));
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public bool HasHazifeladatOrHelyettesitesOrSzamonkeresNotInIdoszak(OrarendiOraModel model)
|
||||
{
|
||||
model.OraKezdete = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.OraErvenyessegVege.Value, model.OraKezdete.Value);
|
||||
model.OraVege = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.OraErvenyessegVege.Value, model.OraVege.Value);
|
||||
|
||||
return new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).HasHazifeladatOrHelyettesitesOrSzamonkeresNotInIdoszak(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model));
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool IsOrarendiNap(DateTime date)
|
||||
{
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
bool isOrarendiNap = tanevrendHelper.IsOrarendiNap(date, null);
|
||||
|
||||
return isOrarendiNap;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool HasTanitasiNap(DateTime date)
|
||||
{
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
bool isOrarendiNap = tanevrendHelper.IsOrarendiNap(date, null);
|
||||
|
||||
if (isOrarendiNap)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return tanevrendHelper.HasTanitasiNap(date);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public int GetOsztalyCsoportTerem(int? osztalyCsoportId)
|
||||
{
|
||||
if (osztalyCsoportId > 0)
|
||||
{
|
||||
return new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportTeremId(osztalyCsoportId.Value);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
bool torlesSikeres = orarendiOraHelper.DeletOrarendiOra(model.ID.Value, model.ModositasiIdoszakTipus, model.ModificationDate);
|
||||
|
||||
if (torlesSikeres)
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(4519));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,199 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.Results;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Logic;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
public class BaseAdminTanariOrarendApiController : ApiController
|
||||
{
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
OrarendiOraLogic.SetOraKezdetekAndOraVegek(model);
|
||||
|
||||
var customModelState = OrarendiOraLogic.CheckCustomValidation(ModelState, model);
|
||||
if (!customModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
orarendiOraHelper.CheckUtkozesValidationAndSaveOrUpdateOrarendiOrak(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model), ClaimData.FelhasznaloId);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.AzOrarendiOratNemLehetModositaniMertMarTartozikHozzaNaplozottOra);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage PreValidationOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
OrarendiOraLogic.SetOraKezdetekAndOraVegek(model);
|
||||
|
||||
var customModelState = OrarendiOraLogic.CheckCustomValidation(ModelState, model);
|
||||
if (!customModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
||||
}
|
||||
|
||||
var utkozesValidationMsg = OrarendiOraLogic.CheckUtkozesValidation(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model), !model.ID.HasValue ? "OrarendiOrak.Save();" : "OrarendiOrak.ModConfirmSave();", isPrevalidation: true);
|
||||
|
||||
if (utkozesValidationMsg.ErrorMsg.Length > 0)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, utkozesValidationMsg.ErrorMsg);
|
||||
}
|
||||
|
||||
if (utkozesValidationMsg.Msg.Length > 0)
|
||||
{
|
||||
throw new StatusError(CustomHTTPStatusEnum.WarningMegszakitas, string.Empty) { Json = utkozesValidationMsg };
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage PreValidationDeleteOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
OrarendiOraLogic.SetOraKezdetekAndOraVegek(model);
|
||||
|
||||
var utkozesValidationMsg = OrarendiOraLogic.CheckUtkozesValidation(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model), "OrarendiOrak.deleteOrarendiOra();", isPrevalidation: true, isForDelete: true);
|
||||
|
||||
if (utkozesValidationMsg.Msg.Length > 0)
|
||||
{
|
||||
throw new StatusError(CustomHTTPStatusEnum.WarningMegszakitas, string.Empty) { Json = utkozesValidationMsg };
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
bool torlesSikeres = orarendiOraHelper.DeletOrarendiOra(model.ID.Value, model.ModositasiIdoszakTipus, model.ModificationDate);
|
||||
|
||||
if (torlesSikeres)
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.OrarendiOraNemTorolhetoMivelATorlendoIdoszakbanMarVanNaplozottOra);
|
||||
}
|
||||
|
||||
public int GetOraszam(int Id, CalendarOraTypeEnum calendarEnum)
|
||||
{
|
||||
var helper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
return helper.GetOraszamByOrarendiOra(Id, calendarEnum);
|
||||
}
|
||||
|
||||
public string GetTanarokNeve(string id)
|
||||
{
|
||||
return int.TryParse(id, out int fID) && fID.IsEntityId()
|
||||
? new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanarokTanoranKivuliFoglalkozashoz(fID)
|
||||
: string.Empty;
|
||||
}
|
||||
|
||||
|
||||
[HttpGet]
|
||||
public bool IsOrarendiNap(DateTime date)
|
||||
{
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
bool isOrarendiNap = tanevrendHelper.IsOrarendiNap(date, null);
|
||||
|
||||
return isOrarendiNap;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool HasTanitasiNap(DateTime date)
|
||||
{
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
bool isOrarendiNap = tanevrendHelper.IsOrarendiNap(date, null);
|
||||
|
||||
return isOrarendiNap || tanevrendHelper.HasTanitasiNap(date);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult<OraCO> GetCsengetesiRendEsOrak(CsengetesiRendOraszamaModel csengetesiRend)
|
||||
{
|
||||
var helper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var data = helper.GetCsengetesiRendEsOrak(csengetesiRend.AktualisCsengetesiRendId, csengetesiRend.AktualisOraSzam).Tables[0].Rows;
|
||||
|
||||
var ora = new OraCO
|
||||
{
|
||||
Kezdete = data.Count > 0 ? data[0].Field<DateTime>("Kezdete").TimeOfDay : TimeSpan.Zero,
|
||||
Vege = data.Count > 0 ? data[0].Field<DateTime>("Vege").TimeOfDay : TimeSpan.Zero
|
||||
};
|
||||
|
||||
return Json(ora);
|
||||
}
|
||||
|
||||
public List<System.Web.Mvc.SelectListItem> GetHetirendList()
|
||||
{
|
||||
var dictionary = FrameworkEnumExtensions.EnumToList((int)
|
||||
GeneratedAdatszotarTipusEnum.HetiRendTipus, ClaimData.SelectedTanevID.Value, false);
|
||||
List<System.Web.Mvc.SelectListItem> list = new List<System.Web.Mvc.SelectListItem>();
|
||||
|
||||
foreach (var item in dictionary)
|
||||
{
|
||||
System.Web.Mvc.SelectListItem sli = new System.Web.Mvc.SelectListItem() { Text = item.Value, Value = item.Key };
|
||||
list.Add(sli);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public int GetOsztalyCsoportTerem(int? osztalyCsoportId)
|
||||
{
|
||||
if (osztalyCsoportId > 0)
|
||||
{
|
||||
return new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportTeremId(osztalyCsoportId.Value);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Logic;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
public class BaseAdminTeremOrarendApiController : ApiController
|
||||
{
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
OrarendiOraLogic.SetOraKezdetekAndOraVegek(model);
|
||||
|
||||
var customModelState = OrarendiOraLogic.CheckCustomValidation(ModelState, model);
|
||||
if (!customModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
orarendiOraHelper.CheckUtkozesValidationAndSaveOrUpdateOrarendiOrak(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model), ClaimData.FelhasznaloId);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.AzOrarendiOratNemLehetModositaniMertMarTartozikHozzaNaplozottOra);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage PreValidationOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
OrarendiOraLogic.SetOraKezdetekAndOraVegek(model);
|
||||
|
||||
var customModelState = OrarendiOraLogic.CheckCustomValidation(ModelState, model);
|
||||
if (!customModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
||||
}
|
||||
|
||||
var utkozesValidationMsg = OrarendiOraLogic.CheckUtkozesValidation(OrarendiOraLogic.SetOraValidationCoFromOrarendiOraModel(model), !model.ID.HasValue ? "OrarendiOrak.Save();" : "OrarendiOrak.ModConfirmSave();", isPrevalidation: true);
|
||||
|
||||
if (utkozesValidationMsg.ErrorMsg.Length > 0)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, utkozesValidationMsg.ErrorMsg);
|
||||
}
|
||||
|
||||
if (utkozesValidationMsg.Msg.Length > 0)
|
||||
{
|
||||
throw new StatusError(CustomHTTPStatusEnum.WarningMegszakitas, string.Empty) { Json = utkozesValidationMsg };
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool IsOrarendiNap(DateTime date)
|
||||
{
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
bool isOrarendiNap = tanevrendHelper.IsOrarendiNap(date, null);
|
||||
|
||||
return isOrarendiNap;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool HasTanitasiNap(DateTime date)
|
||||
{
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
bool isOrarendiNap = tanevrendHelper.IsOrarendiNap(date, null);
|
||||
|
||||
return isOrarendiNap || tanevrendHelper.HasTanitasiNap(date);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteOrarendiOra(OrarendiOraModel model)
|
||||
{
|
||||
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
bool torlesSikeres = orarendiOraHelper.DeletOrarendiOra(model.ID.Value, model.ModositasiIdoszakTipus, model.ModificationDate);
|
||||
|
||||
if (torlesSikeres)
|
||||
{
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(4519));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,359 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Logic.Naplozas;
|
||||
using Kreta.BusinessLogic.Logic.Naplozas.Validacio;
|
||||
using Kreta.Client.CoreApi;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
public class BaseTanariOrarendApiController : ApiController
|
||||
{
|
||||
private IKretaAuthorization Authorization { get; }
|
||||
private readonly IFileServiceHelper _fileServiceHelper;
|
||||
private readonly ICoreApiClient _coreApiClient;
|
||||
|
||||
public BaseTanariOrarendApiController(IKretaAuthorization authorization, IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
|
||||
{
|
||||
Authorization = authorization;
|
||||
_fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
_coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public IHttpActionResult ValidateNaplozas(TanoraNaplozasRogzites model, int? szervezetTipusId = null)
|
||||
{
|
||||
if (model.MulasztasNaplozasRogzites.Tema == null)
|
||||
{
|
||||
return Json(new { ModelState = new { Tema = new[] { ErrorResource.OraTemajanakKivalasztasaVagyATemaMegadasaKotelezo } } });
|
||||
}
|
||||
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
|
||||
var naploValidacioParameters = new NaploValidacioParameters(model.TanoraMuveletek.CalendarModel.Start, connectionType, ClaimData.FelhasznaloSzerepkor);
|
||||
var validator = new NaploValidacio(naploValidacioParameters);
|
||||
|
||||
var co = new NaplozasCo();
|
||||
model.ConvertTo(co, model.TanoraMuveletek.NaplozasDatum);
|
||||
co.SzervezetTipusId = szervezetTipusId;
|
||||
var naplozasLogic = new NaplozasLogic(validator, co);
|
||||
|
||||
bool utkozik = false;
|
||||
if (model.TanoraMuveletek.CalendarModel.EventType != EventTypeEnum.LetezoOraSzerkesztese)
|
||||
{
|
||||
utkozik = !co.OraAdat.OrarendiOraId.HasValue && naplozasLogic.TeremUtkozesEllenorzes();
|
||||
}
|
||||
|
||||
var systemSettingsHelper = new SystemSettingsHelper(connectionType);
|
||||
var teremHelper = new TeremHelper(connectionType);
|
||||
if (!szervezetTipusId.HasValue)
|
||||
{
|
||||
if (IsTeremBefogadokepessegeKissebbMintAzOsztalyCsoportLetszama(systemSettingsHelper, teremHelper, model.TanoraAdatokRogzites.TeremId, model.MulasztasNaplozasRogzites.MulasztasList.Count))
|
||||
{
|
||||
if (utkozik)
|
||||
{
|
||||
return Json(new { Valid = false, Text = OrarendResource.TeremutkozesEsTeremBefogadokepessegeKisebb });
|
||||
}
|
||||
|
||||
return Json(new { Valid = false, Text = OrarendResource.ATeremBefogadokepessegeKisebbMintAzOsztalyCsoportLetszamaSzeretneFolytatni });
|
||||
}
|
||||
}
|
||||
|
||||
if (naplozasLogic.GetModel.IsTanora && !model.TanoraMuveletek.CalendarModel.IsOraOsszevonas && model.TanoraMuveletek.CalendarModel.EventType != EventTypeEnum.LetezoOraSzerkesztese)
|
||||
{
|
||||
var osztalyVagyTanarOraiadottUtkozes = naplozasLogic.GetOsztalyEsTanarOraiUtkozes();
|
||||
|
||||
var tevekenysegUtkozes = systemSettingsHelper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Napirend_felvitelel_utkozes_figyeles);
|
||||
|
||||
switch ((TevekenysegUtkozesEnum)tevekenysegUtkozes)
|
||||
{
|
||||
case TevekenysegUtkozesEnum.UtkozesNemLehetseges: /*Ütközés nem lehetséges*/
|
||||
if (!string.IsNullOrWhiteSpace(osztalyVagyTanarOraiadottUtkozes))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, string.Format(OrarendResource.TanoraFelviteleNemLehetsegesUtkozesMiatt, osztalyVagyTanarOraiadottUtkozes));
|
||||
}
|
||||
|
||||
break;
|
||||
case TevekenysegUtkozesEnum.UtkozeskorFigyelmeztetes: /*Figyelmeztetés*/
|
||||
{
|
||||
if (utkozik && !string.IsNullOrWhiteSpace(osztalyVagyTanarOraiadottUtkozes))
|
||||
{
|
||||
return Json(new { Valid = false, Text = string.Format(OrarendResource.TanoraFelviteleNemLehetsegesUtkozesMiattKerdes, OrarendResource.Teremutkozes, OrarendResource.OraUtkozes, osztalyVagyTanarOraiadottUtkozes) });
|
||||
}
|
||||
|
||||
if (utkozik)
|
||||
{
|
||||
return Json(new { Valid = false, Text = string.Format(OrarendResource.TanoraFelviteleNemLehetsegesUtkozesMiattKerdes, OrarendResource.Teremutkozes, string.Empty, string.Empty) });
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(osztalyVagyTanarOraiadottUtkozes))
|
||||
{
|
||||
return Json(new { Valid = false, Text = string.Format(OrarendResource.TanoraFelviteleNemLehetsegesUtkozesMiattKerdes, string.Empty, OrarendResource.OraUtkozes, osztalyVagyTanarOraiadottUtkozes)/*A naplózandó óra időtartamába egy már naplózott óra, vagy órarendi óra is beleesik, szeretné folytatni?*/ });
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case TevekenysegUtkozesEnum.UtkozesMegengedett: /*Ütközés lehetséges, nem kell a napirend miatt szólni*/
|
||||
if (utkozik)
|
||||
{
|
||||
return Json(new { Valid = false, Text = StringResourcesUtil.GetString(4613)/*Terem ütközés lépett fel szeretné folytatni?*/ });
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return Json(new { Valid = true, Text = "" });
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public HttpResponseMessage SaveNaplozas(TanoraNaplozasRogzites model, int? szervezetTipusId = null)
|
||||
{
|
||||
var startDate = model.TanoraMuveletek.CalendarModel.Start;
|
||||
model.TanoraAdatokRogzites.OraKezdete = new DateTime(startDate.Year, startDate.Month, startDate.Day, model.TanoraAdatokRogzites.OraKezdete.Hour, model.TanoraAdatokRogzites.OraKezdete.Minute, 0, DateTimeKind.Utc).ToLocalTime();
|
||||
|
||||
var endDdate = model.TanoraMuveletek.CalendarModel.End;
|
||||
model.TanoraAdatokRogzites.OraVege = new DateTime(endDdate.Year, endDdate.Month, endDdate.Day, model.TanoraAdatokRogzites.OraVege.Hour, model.TanoraAdatokRogzites.OraVege.Minute, 0, DateTimeKind.Utc).ToLocalTime();
|
||||
|
||||
NaplozasResultCo saveResult = null;
|
||||
if (!model.TanoraAdatokRogzites.IsMegtartott)
|
||||
{
|
||||
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
||||
var res = SaveNemMegtartottNaplozas(model, szervezetTipusId);
|
||||
return res;
|
||||
}
|
||||
|
||||
if (!model.TanoraMuveletek.IsTanoranKivuli)
|
||||
{
|
||||
if (model.TanoraMuveletek.CalendarModel.OraType == CalendarOraTypeEnum.TanitasiOra
|
||||
&& (!model.TanoraAdatokRogzites.CsengetesiRendID.HasValue || model.TanoraAdatokRogzites.CsengetesiRendID < 0))
|
||||
{
|
||||
var helper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
model.TanoraAdatokRogzites.CsengetesiRendID = helper.GetAktivCsengetesiRendId();
|
||||
}
|
||||
|
||||
if (!model.TanoraAdatokRogzites.CsengetesiRendID.HasValue || model.TanoraAdatokRogzites.CsengetesiRendID < 0)
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.TanoraAdatokRogzites.CsengetesiRendID), OrarendResource.CsengetesiRendMegadasaKotelezo);
|
||||
}
|
||||
|
||||
if (!model.TanoraAdatokRogzites.Oraszam.HasValue || model.TanoraAdatokRogzites.Oraszam < 0)
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.TanoraAdatokRogzites.Oraszam), OrarendResource.OraszamMegadasaKotelezo);
|
||||
}
|
||||
|
||||
if (model.TanoraAdatokRogzites.Oraszam.HasValue && model.TanoraAdatokRogzites.CsengetesiRendID.HasValue)
|
||||
{
|
||||
var (minOraszam, maxOraszam) = Logic.OrarendiOraLogic.GetMinMaxOraszam(model.TanoraAdatokRogzites.CsengetesiRendID.Value);
|
||||
if (model.TanoraAdatokRogzites.Oraszam > maxOraszam || model.TanoraAdatokRogzites.Oraszam < minOraszam)
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.TanoraAdatokRogzites.Oraszam), string.Format(OrarendResource.OraszamError, minOraszam.ToString(), maxOraszam.ToString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Logic.OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.TanoraMuveletek.CalendarModel.Start, model.TanoraMuveletek.CalendarModel.Start).TimeOfDay >=
|
||||
Logic.OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.TanoraMuveletek.CalendarModel.End, model.TanoraMuveletek.CalendarModel.End).TimeOfDay)
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.TanoraAdatokRogzites.OraVege), ErrorResource.NapirendKezdetiIdopontjaNemLehetKesobbMintAZaroIdopont);
|
||||
}
|
||||
}
|
||||
|
||||
if (model.MulasztasNaplozasRogzites.MulasztasList.Exists(x => x.MulasztasTipus == (int)MulasztasTipusEnum.keses && (x.Keses == null || x.Keses == 0)))
|
||||
{
|
||||
ModelState.AddModelError(string.Empty, ErrorResource.AKesesekHosszanakKitolteseKotelezo);
|
||||
}
|
||||
|
||||
if (!model.MulasztasNaplozasRogzites.TemaTanmenetId.HasValue || (model.MulasztasNaplozasRogzites.TemaTanmenetId == -1))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(model.MulasztasNaplozasRogzites.Tema))
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.MulasztasNaplozasRogzites.Tema), ErrorResource.OraTemajanakKivalasztasaVagyATemaMegadasaKotelezo);
|
||||
}
|
||||
else if (model.MulasztasNaplozasRogzites.Tema.Length > 1000) /*db ben ez a max char jelenleg*/
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.MulasztasNaplozasRogzites.Tema), ErrorResource.TemaTulHosszu);
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(model.HaziFeladatNaplozasRogzites?.HaziFeladat) && model.HaziFeladatNaplozasRogzites?.Hatarido == null)
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.HaziFeladatNaplozasRogzites.Hatarido), OrarendResource.HazifeladatHataridoKotelezo);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(model.HaziFeladatNaplozasRogzites?.HaziFeladat) && model.HaziFeladatNaplozasRogzites?.Hatarido != null)
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.HaziFeladatNaplozasRogzites.HaziFeladat), OrarendResource.HazifeladatSzovegKotelezo);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(model.TanoraAdatokRogzites.Megjegyzes) && model.TanoraAdatokRogzites.Megjegyzes.Length > 255)
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.TanoraAdatokRogzites.Megjegyzes), ErrorResource.AMegjegyzesMax255KarakterLehet);
|
||||
}
|
||||
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var naploValidacioParameters = new NaploValidacioParameters(model.TanoraMuveletek.CalendarModel.Start, ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.FelhasznaloSzerepkor);
|
||||
var validator = new NaploValidacio(naploValidacioParameters);
|
||||
var co = new NaplozasCo();
|
||||
model.ConvertTo(co, model.TanoraMuveletek.NaplozasDatum);
|
||||
co.SzervezetTipusId = szervezetTipusId;
|
||||
var naplozasLogic = new NaplozasLogic(validator, co);
|
||||
|
||||
if (IsNaplozhatZarastolFuggetlenul(naplozasLogic.GetModel.OraAdat.OraKezdete.Date, naplozasLogic.GetModel.OraAdat.OsztalyCsoportId))
|
||||
{
|
||||
var orarendiOraHelper = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
if (model.TanoraAdatokRogzites.CsengetesiRendID.HasValue && !model.TanoraMuveletek.IsTanoranKivuli)
|
||||
{
|
||||
var csengrendOraId = orarendiOraHelper.GetCsengetesiRendOraId(model.TanoraAdatokRogzites.CsengetesiRendID.Value, model.TanoraAdatokRogzites.Oraszam.Value);
|
||||
if (!csengrendOraId.HasValue)
|
||||
{
|
||||
throw new KretaError(OrarendResource.CsengetesiRendhezNincsCsengetesiOra);
|
||||
}
|
||||
model.TanoraAdatokRogzites.CsengetesiRendOraId = csengrendOraId;
|
||||
}
|
||||
|
||||
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
||||
saveResult = naplozasLogic.SaveNaplozas(_fileServiceHelper, _coreApiClient);
|
||||
}
|
||||
}
|
||||
catch (KretaError ke)
|
||||
{
|
||||
ModelState.AddModelError(ErrorResource.Hiba, ke.Message);
|
||||
}
|
||||
catch (ValidationException ve)
|
||||
{
|
||||
ModelState.AddModelError(ErrorResource.Hiba, ve.Message);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
ClaimData.NemNaplozottTanorakCount = ClaimData.SetNemNaplozottTanorakCount();
|
||||
return Request.CreateResponse(HttpStatusCode.OK, new { saveResult.TanitasiOraId, saveResult.HazifeladatId, saveResult.DKTHiba });
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public HttpResponseMessage SaveNemMegtartottNaplozas(TanoraNaplozasRogzites model, int? szervezetTipusId = null)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var naploValidacioParameters = new NaploValidacioParameters(model.TanoraMuveletek.CalendarModel.Start, ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.FelhasznaloSzerepkor);
|
||||
var validator = new NaploValidacio(naploValidacioParameters);
|
||||
|
||||
var co = new NaplozasCo();
|
||||
model.ConvertTo(co, model.TanoraMuveletek.NaplozasDatum);
|
||||
var naplozasLogic = new NaplozasLogic(validator, co);
|
||||
|
||||
if (IsNaplozhatZarastolFuggetlenul(naplozasLogic.GetModel.OraAdat.OraKezdete.Date, naplozasLogic.GetModel.OraAdat.OsztalyCsoportId))
|
||||
{
|
||||
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
||||
naplozasLogic.SaveNemMegtartottNaplozas(_fileServiceHelper, _coreApiClient);
|
||||
}
|
||||
|
||||
ClaimData.NemNaplozottTanorakCount = ClaimData.SetNemNaplozottTanorakCount();
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public IHttpActionResult DeleteTanora(TanoraMuveletek pram, int? szervezetTipusId = null)
|
||||
{
|
||||
if (!Authorization.IsValidTanitasiOra(pram.CalendarModel.EventId))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.NaplozasTorlese(pram.CalendarModel.EventId, true);
|
||||
|
||||
ClaimData.NemNaplozottTanorakCount = ClaimData.SetNemNaplozottTanorakCount();
|
||||
return Json(new { Title = CommonResource.Siker, Text = CommonResource.SikeresTorles });
|
||||
}
|
||||
catch (KretaError e)
|
||||
{
|
||||
return Json(new { Title = CommonResource.BiztosanTorli, Text = e.Message, TanoraId = pram.CalendarModel.EventId });
|
||||
}
|
||||
catch (KretaMissingTanoraException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran) { UnHandledException = e };
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message) { UnHandledException = e };
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.InternalServerError, ErrorResource.HibaTortentAMuveletSoran) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsNaplozhatZarastolFuggetlenul(DateTime date, int? osztalyId)
|
||||
{
|
||||
var naplozarasLogic = new NaplozarasLogic(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
return naplozarasLogic.IsNaplozhatZarastolFuggetlenul(date, osztalyId);
|
||||
}
|
||||
|
||||
public int GetNemNaplozottTanorakCount()
|
||||
{
|
||||
return ClaimData.NemNaplozottTanorakCount;
|
||||
}
|
||||
|
||||
|
||||
private bool IsTeremBefogadokepessegeKissebbMintAzOsztalyCsoportLetszama(SystemSettingsHelper systemSettingsHelper, TeremHelper teremHelper, int? teremId, int mulasztasokSzama)
|
||||
{
|
||||
if (teremId.HasValue) //Terem befogadóképesség ellenőrzése kell
|
||||
{
|
||||
var naplozasTeremBefogadokepesseg = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Naplozas_terem_befogadokepesseg);
|
||||
|
||||
if (naplozasTeremBefogadokepesseg)
|
||||
{
|
||||
var teremKapacitas = teremHelper.GetTeremKapacitasById(teremId.Value);
|
||||
|
||||
if (teremKapacitas < mulasztasokSzama)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
|
||||
[Attributes.KretaGlobalLanguageChangeActionFilter(LanguageCode = "hu-Dualis")]
|
||||
public class DualisAdminOsztalyOrarendApiController : BaseAdminOsztalyOrarendApiController
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
|
||||
[Attributes.KretaGlobalLanguageChangeActionFilter(LanguageCode = "hu-Dualis")]
|
||||
public class DualisAdminTanariOrarendApiController : BaseAdminTanariOrarendApiController
|
||||
{
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
|
||||
[Attributes.KretaGlobalLanguageChangeActionFilter(LanguageCode = "hu-Dualis")]
|
||||
public class DualisAdminTeremOrarendApiController : BaseAdminTeremOrarendApiController
|
||||
{
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Logic.Mulasztas;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Client.CoreApi;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
|
||||
[Attributes.KretaGlobalLanguageChangeActionFilter(LanguageCode = "hu-Dualis")]
|
||||
public class DualisTanariOrarendApiController : BaseTanariOrarendApiController
|
||||
{
|
||||
|
||||
private IKretaAuthorization Authorization { get; }
|
||||
private readonly IFileServiceHelper _fileServiceHelper;
|
||||
private readonly ICoreApiClient _coreApiClient;
|
||||
public bool IsDualisKepzesEnabled => new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()).GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.DualisKepzes, IntezmenyConfigTipusEnum.IsEnabled);
|
||||
public int? SzervezetId => IsDualisKepzesEnabled ? (int)SzervezetTipusEnum.Dualis : (int?)null;
|
||||
|
||||
public DualisTanariOrarendApiController(IKretaAuthorization authorization, IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient) : base(authorization, fileServiceHelper, coreApiClient)
|
||||
{
|
||||
Authorization = authorization;
|
||||
_fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
_coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
|
||||
}
|
||||
|
||||
public DataSourceResult GetMulasztasokForDetail(int osztalycsoportId, int tanoraId, DateTime oraKezdete, DateTime oraVege, int targyId, int tanarId, bool hianyzokAutoKitoltes, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
return new MulasztasLogic(ConnectionTypeExtensions.GetSessionConnectionType()).GetMulasztasok(osztalycsoportId, tanoraId, oraKezdete, oraVege, targyId, tanarId, hianyzokAutoKitoltes, IsDualisKepzesEnabled ? SzervezetTipusEnum.Dualis : (SzervezetTipusEnum?)null).ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult ValidateNaplozas(TanoraNaplozasRogzites model)
|
||||
{
|
||||
return ValidateNaplozas(model, SzervezetId);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveNaplozas(TanoraNaplozasRogzites model)
|
||||
{
|
||||
return SaveNaplozas(model, SzervezetId);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveNemMegtartottNaplozas(TanoraNaplozasRogzites model)
|
||||
{
|
||||
return SaveNemMegtartottNaplozas(model, SzervezetId);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult DeleteTanora(TanoraMuveletek pram)
|
||||
{
|
||||
return DeleteTanora(pram, SzervezetId);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,262 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Client.CoreApi;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Controllers;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
using static Kreta.Core.Constants;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
|
||||
public class HazifeladatokListajaApiController : ApiController
|
||||
{
|
||||
private readonly IFileServiceHelper fileServiceHelper;
|
||||
private readonly ICoreApiClient coreApiClient;
|
||||
|
||||
public HazifeladatokListajaApiController(IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
|
||||
{
|
||||
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
this.coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
|
||||
}
|
||||
|
||||
public DataSourceResult GetHazifeladatokListajaGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList, isEmptyCoList) = GetGridData(data, request);
|
||||
|
||||
if (isEmptyCoList)
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList, _) = GetGridData(data, request, General.MaxHazifeladatSzovegHossz);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<HazifeladatokListajaGridModel>(HazifeladatokListajaGridModel.HazifeladatExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(OrarendResource.HazifeladatExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{OrarendResource.HazifeladatExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<HazifeladatokListajaGridModel> modelList, bool isEmptyCoList) GetGridData(string data, DataSourceRequest request, int? maxHazifeladatSzovegHossz = null)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<HazifeladatokListajaSrcModel>(data);
|
||||
|
||||
var osztalyCsoportIds = new List<int>();
|
||||
var isEmptyCoList = false;
|
||||
if ((model.HazifeladatokListajaTipus == HazifeladatokListajaTipusEnum.Csopvez || model.HazifeladatokListajaTipus == HazifeladatokListajaTipusEnum.Ofo)
|
||||
&& !model.OsztalyCsoportIdSrc.HasValue)
|
||||
{
|
||||
switch (model.HazifeladatokListajaTipus)
|
||||
{
|
||||
case HazifeladatokListajaTipusEnum.Csopvez:
|
||||
osztalyCsoportIds.AddRange(new ComboBoxHelperApiController().GetCsoportVezListWithTanoraiCeluak().Content.Select(i => int.Parse(i.Value)));
|
||||
break;
|
||||
case HazifeladatokListajaTipusEnum.Ofo:
|
||||
osztalyCsoportIds.AddRange(new ComboBoxHelperApiController().GetTanitottOsztalyokList().Content.Select(i => int.Parse(i.Value)));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (!osztalyCsoportIds.Any())
|
||||
{
|
||||
isEmptyCoList = true;
|
||||
}
|
||||
}
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = isEmptyCoList ? new List<HaziFeladatItemCo>() : new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHazifeladatCoList(model.ToCo(osztalyCsoportIds), maxHazifeladatSzovegHossz);
|
||||
|
||||
var modelList = new List<HazifeladatokListajaGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new HazifeladatokListajaGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList, isEmptyCoList);
|
||||
}
|
||||
|
||||
public DataSourceResult GetFeladatokListajaGrid(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList, isEmptyCoList) = GetFeladatokGridData(data, request);
|
||||
|
||||
if (isEmptyCoList)
|
||||
{
|
||||
return new DataSourceResult();
|
||||
}
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameter);
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetFeladatokListajaExport(string data, DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList, _) = GetFeladatokGridData(data, request, General.MaxHazifeladatSzovegHossz);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<FeladatokListajaGridModel>(FeladatokListajaGridModel.HazifeladatExportAttributeId);
|
||||
var memoryStream = SimpleExportLogic.GetExport(OrarendResource.FeladatokListajaExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), OrarendResource.FeladatokListaja_export);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<HazifeladatokListajaGridModel> modelList, bool isEmptyCoList) GetFeladatokGridData(string data, DataSourceRequest request, int? maxHazifeladatSzovegHossz = null)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<FeladatokListajaSrcModel>(data);
|
||||
|
||||
var osztalyCsoportIds = new List<int>();
|
||||
var isEmptyCoList = false;
|
||||
if ((model.HazifeladatokListajaTipus == HazifeladatokListajaTipusEnum.Csopvez || model.HazifeladatokListajaTipus == HazifeladatokListajaTipusEnum.Ofo)
|
||||
&& !model.OsztalyCsoportIdSrc.HasValue)
|
||||
{
|
||||
switch (model.HazifeladatokListajaTipus)
|
||||
{
|
||||
case HazifeladatokListajaTipusEnum.Csopvez:
|
||||
osztalyCsoportIds.AddRange(new ComboBoxHelperApiController().GetCsoportVezListWithTanoraiCeluak().Content.Select(i => int.Parse(i.Value)));
|
||||
break;
|
||||
case HazifeladatokListajaTipusEnum.Ofo:
|
||||
osztalyCsoportIds.AddRange(new ComboBoxHelperApiController().GetTanitottOsztalyokList().Content.Select(i => int.Parse(i.Value)));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (!osztalyCsoportIds.Any())
|
||||
{
|
||||
isEmptyCoList = true;
|
||||
}
|
||||
}
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = isEmptyCoList ? new List<HaziFeladatItemCo>() : new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHazifeladatCoList(model.ToCo(osztalyCsoportIds), maxHazifeladatSzovegHossz);
|
||||
|
||||
var modelList = new List<HazifeladatokListajaGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new HazifeladatokListajaGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList, isEmptyCoList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveHF(HazifeladatBevitelModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var hazi = new TanarHaziFeladatCO
|
||||
{
|
||||
Id = model.Id,
|
||||
OsztalyCsoportId = model.OsztalycsoportId,
|
||||
TantargyId = model.TantargyId,
|
||||
RogzitoId = ClaimData.FelhasznaloId,
|
||||
IsTanarRogzitette = true,
|
||||
Oraszam = model.Oraszam,
|
||||
TanitasiOraId = model.TanitasiOraId,
|
||||
FeladasDatuma = model.ErvenyessegKezdete,
|
||||
Hatarido = model.ErvenyessegVege.Value,
|
||||
Szoveg = CommonUtils.CreateLinksInText(model.Szoveg),
|
||||
IntezmenyId = ClaimData.IntezmenyId,
|
||||
IntezmenyAzonosito = ClaimData.IntezmenyAzonosito,
|
||||
TanevId = ClaimData.SelectedTanevID.Value,
|
||||
CsatolmanyId = model.CsatolmanyId
|
||||
};
|
||||
|
||||
int? tanarId = null;
|
||||
if (model.OrarendiOraId.HasValue)
|
||||
{
|
||||
var orarendiOra = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOrarendiOraById(model.OrarendiOraId.Value);
|
||||
tanarId = orarendiOra.TanarId;
|
||||
hazi.Idopont = orarendiOra.OraKezdete;
|
||||
}
|
||||
else if (model.TanitasiOraId.HasValue)
|
||||
{
|
||||
var tanitasiOra = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanorakAdatok(model.TanitasiOraId.Value);
|
||||
tanarId = tanitasiOra.Tanar;
|
||||
hazi.Idopont = tanitasiOra.OraKezd;
|
||||
}
|
||||
else
|
||||
{
|
||||
tanarId = ClaimData.FelhasznaloId;
|
||||
}
|
||||
|
||||
new DktFeladatHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveOrUpdateTanarHaziFeladat(hazi, tanarId, fileServiceHelper, coreApiClient);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteHF([FromBody] int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType()).DeleteHazi(id, coreApiClient);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,98 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
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.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Areas.Tanar.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class InformaciokFogadoorakApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetFogadooraGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<FogadooraSearchModel>(data);
|
||||
|
||||
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var gridParameters = Converter.GridParameter(request);
|
||||
|
||||
var ds = helper.GetFogadooraGondviselo(ClaimData.GondviseloId ?? -1, model.TanarIdSrc, model.TeremIdSrc, model.IdopontTolSrc, model.IdopontIgSrc, model.IdointervallumTolSrc, model.IdointervallumIgSrc, model.IsJelentkezheto);
|
||||
|
||||
var modelList = new List<InformaciokFogadoorakGridModel>();
|
||||
foreach (var row in ds.Tables[0].AsEnumerable())
|
||||
{
|
||||
modelList.Add(new InformaciokFogadoorakGridModel
|
||||
{
|
||||
ID = row.Field<int>("ID").ToString(),
|
||||
JelentkezesekKezeleseId = row.Field<int>("JelentkezesekKezeleseId"),
|
||||
IdopontGondviseloId = row.Field<int?>("IdopontGondviseloId"),
|
||||
IdopontStr = row.Field<string>("IdopontStr"),
|
||||
JelentkezesiHatarido = row.Field<DateTime?>("JelentkezesiHatarido"),
|
||||
Pedagogus = row.Field<string>("Pedagogus"),
|
||||
Terem = row.Field<string>("Terem"),
|
||||
FogadooraKezdete = row.Field<DateTime>("FogadooraKezdete"),
|
||||
FogadooraVege = row.Field<DateTime>("FogadooraVege"),
|
||||
JelentkezesAllapot = row.Field<int>("JelentkezesAllapot")
|
||||
});
|
||||
}
|
||||
|
||||
return modelList.ToDataSourceResult(gridParameters);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetFogadooraIdopontok(int fogadooraId)
|
||||
{
|
||||
var ds = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetFogadooraIdopontok(fogadooraId, ClaimData.GondviseloId.Value, FogadooraTipusEnum.Jelentkezheto);
|
||||
|
||||
List<ComboBoxListItem> dropdownListItems = new List<ComboBoxListItem>();
|
||||
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
ComboBoxListItem sli = new ComboBoxListItem() { Text = row.Field<string>("Text"), Value = row.Field<int>("Value").ToString() };
|
||||
dropdownListItems.Add(sli);
|
||||
}
|
||||
|
||||
return Json(dropdownListItems);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage Jelentkezes(int idopontId)
|
||||
{
|
||||
new FogadooraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).FogadooraGondviseloJelentkezes(idopontId, ClaimData.GondviseloId.Value);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage Lemondas(int idopontGondviseloId)
|
||||
{
|
||||
new FogadooraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).FogadooraGondviseloJelentkezesLemondas(idopontGondviseloId);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public int isSzabadIdopontByFogadooraIdopontId(int fogadooraIdopontId)
|
||||
{
|
||||
var result = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).IsSzabadIdopontByFogadooraIdopontId(fogadooraIdopontId);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
using System.Data;
|
||||
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.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class InformaciokOrarendApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetHFCsatolmanyokGridForHazi(int haziFeladatId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
||||
{
|
||||
GridParameters = Converter.GridParameter(request)
|
||||
};
|
||||
|
||||
DataSet ds = helper.GetCsatolmanyokForHaziFeladatDataSet(haziFeladatId);
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
|
||||
public class InformaciokTanorakApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetTanitasiOraGrid([ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
var ds = helper.GetDiakTanorai(ClaimData.FelhasznaloId);
|
||||
|
||||
return ds.ToDataSourceResult();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,146 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Ellenorzo.Dao.VN.FeltoltottFajl;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.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.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
|
||||
[ApiRolePackageDenyAuthorize(KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue)]
|
||||
public class KepekListajaApiController : ApiController
|
||||
{
|
||||
private readonly IFileServiceHelper FileServiceHelper;
|
||||
|
||||
public KepekListajaApiController(IFileServiceHelper fileServiceHelper)
|
||||
{
|
||||
FileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
}
|
||||
|
||||
public DataSourceResult GetKepekListajaGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
KepekListajaSearchModel model = JsonConvert.DeserializeObject<KepekListajaSearchModel>(data);
|
||||
var helper = new OpenBoardHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) };
|
||||
|
||||
var fileKereses = new FileKeresesRequestDao
|
||||
{
|
||||
DatumTol = model.DatumTol,
|
||||
DatumIg = model.DatumIg,
|
||||
FeladatKategoriaId = model.FeladatKategoriaId,
|
||||
FeladatEllatasiHelyId = model.FeladatEllatasiHelyId,
|
||||
FajlNeve = model.KepNeve,
|
||||
OsztalyCsoportId = model.OsztalyCsoportId,
|
||||
TanarHelyettesitoId = ClaimManager.HasPackage(KretaClaimPackages.Adminisztrator.ClaimValue) ? model.TanarHelyettesitoId : ClaimData.FelhasznaloId,
|
||||
TantargyId = model.TantargyId,
|
||||
FoglalkozasId = ClaimManager.HasPackage(KretaClaimPackages.Adminisztrator.ClaimValue) ? model.FoglalkozasId : null,
|
||||
OraFileTipusId = (int)OraFileTipusEnum.openboard,
|
||||
IsOnlineOra = model.IsOnlineOra
|
||||
};
|
||||
|
||||
DataSet kepek = helper.FileKereses(fileKereses);
|
||||
return kepek.ToDataSourceResult();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveKepData(KepekListajaGridModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!model.OraFileId.IsEntityId())
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletKozben);
|
||||
}
|
||||
|
||||
if (model.KepNeve == null)
|
||||
{
|
||||
ModelState.AddModelError("KepekListajaGridModel.KepNeve", ErrorResource.FileNevenekMegadasaKotelezo);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
|
||||
new OpenBoardHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).SaveOraFileData(model.OraFileId.Value, model.KepNeve, model.Megjegyzes);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
catch (CannotBeInsertedException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteKep([FromBody] int oraFileId)
|
||||
{
|
||||
try
|
||||
{
|
||||
new OraFileHelper(ConnectionTypeExtensions.GetSessionConnectionType(), FileServiceHelper).DeleteOraFile(oraFileId);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (CannotBeDeletedException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult DeleteSelectedKep(List<int> selectedOraFileIdList)
|
||||
{
|
||||
string errorMsg = string.Empty;
|
||||
var counter = 0;
|
||||
|
||||
var oraFileHelper = new OraFileHelper(ConnectionTypeExtensions.GetSessionConnectionType(), FileServiceHelper);
|
||||
|
||||
foreach (var oraFileId in selectedOraFileIdList)
|
||||
{
|
||||
try
|
||||
{
|
||||
oraFileHelper.DeleteOraFile(oraFileId);
|
||||
counter++;
|
||||
}
|
||||
catch (CannotBeDeletedException ex)
|
||||
{
|
||||
errorMsg += $"{ex.Message}{Environment.NewLine}";
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(errorMsg))
|
||||
{
|
||||
return Json(new { Message = string.Format(ErrorResource.NSorTorlesSikeres, counter) });
|
||||
}
|
||||
|
||||
if (counter > 0)
|
||||
{
|
||||
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,199 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using ICSharpCode.SharpZipLib.Zip;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class OrarendekTorleseApiController : ApiController
|
||||
{
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage FelhelyOrarendekTorlese(FelhelyOrarendTorleseParameterModel model)
|
||||
{
|
||||
var orarendTorleseHelper = new OrarendTorleseHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
(model.MinDatum, model.MaxDatum) = orarendTorleseHelper.GetMinMaxDatumValaszto();
|
||||
|
||||
if (!ValidateBaseModel(model, out var errorDictionary))
|
||||
{
|
||||
ModelState.AddRange(errorDictionary);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(model.KivalasztottFelhelyekIds))
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.KivalasztottFelhelyekIds), OrarendekTorleseResource.LegalabbEgyFeladatellatasiHelyKivalasztasaKotelezo);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var orarendekTorleseCo = model.ConvertToCo();
|
||||
var excelFiles = orarendTorleseHelper.OrarendekTorlese(orarendekTorleseCo);
|
||||
var base64ZipResult = CreateBase64ZipResult(excelFiles);
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, base64ZipResult);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage CsoportOrarendekTorlese(CsoportOrarendTorleseModel model)
|
||||
{
|
||||
var orarendTorleseHelper = new OrarendTorleseHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
(model.MinDatum, model.MaxDatum) = orarendTorleseHelper.GetMinMaxDatumValaszto();
|
||||
|
||||
if (!ValidateBaseModel(model, out var errorDictionary))
|
||||
{
|
||||
ModelState.AddRange(errorDictionary);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(model.SelectedCsoportok))
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.SelectedCsoportok), OrarendekTorleseResource.LegalabbEgyCsoportKivalasztasaKotelezo);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var orarendekTorleseCo = model.ConvertToCo();
|
||||
var excelFiles = orarendTorleseHelper.OrarendekTorlese(orarendekTorleseCo);
|
||||
var base64ZipResult = CreateBase64ZipResult(excelFiles);
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, base64ZipResult);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage OsztalyOrarendekTorlese(OsztalyOrarendTorleseModel model)
|
||||
{
|
||||
var orarendTorleseHelper = new OrarendTorleseHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
(model.MinDatum, model.MaxDatum) = orarendTorleseHelper.GetMinMaxDatumValaszto();
|
||||
|
||||
if (!ValidateBaseModel(model, out var errorDictionary))
|
||||
{
|
||||
ModelState.AddRange(errorDictionary);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(model.SelectedOsztalyok))
|
||||
{
|
||||
ModelState.AddModelError(nameof(model.SelectedOsztalyok), OrarendekTorleseResource.LegalabbEgyOsztalyKivalasztasaKotelezo);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
var orarendekTorleseCo = model.ConvertToCo();
|
||||
var excelFiles = orarendTorleseHelper.OrarendekTorlese(orarendekTorleseCo);
|
||||
var base64ZipResult = CreateBase64ZipResult(excelFiles);
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, base64ZipResult);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
private bool ValidateBaseModel(BaseOrarendTorleseModel model, out Dictionary<string, List<string>> errorDictionary)
|
||||
{
|
||||
errorDictionary = new Dictionary<string, List<string>>();
|
||||
|
||||
if (model.KezdeteDatum.HasValue && model.VegeDatum.HasValue && model.KezdeteDatum > model.VegeDatum)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, nameof(model.KezdeteDatum), OrarendekTorleseResource.IntervallumKezdeteNemLehetNagyobbMintVege);
|
||||
}
|
||||
|
||||
if (model.KezdeteDatum.HasValue && model.KezdeteDatum < model.MinDatum)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, nameof(model.KezdeteDatum), OrarendekTorleseResource.IntervallumKezdeteNemLehetKisebbMintTanevKezdete);
|
||||
}
|
||||
|
||||
if (model.VegeDatum.HasValue && model.VegeDatum > model.MaxDatum)
|
||||
{
|
||||
AddErrorMessage(errorDictionary, nameof(model.VegeDatum), OrarendekTorleseResource.IntervallumVegeNemLehetNagyobbMintTanevVege);
|
||||
}
|
||||
|
||||
if (!Enum.TryParse(model.OraTipus, out OrarendekTorleseNezetTipusEnum _))
|
||||
{
|
||||
AddErrorMessage(errorDictionary, nameof(model.OraTipus), OrarendekTorleseResource.OraTipusNemMegfelelo);
|
||||
}
|
||||
|
||||
return !errorDictionary.Any();
|
||||
}
|
||||
|
||||
private void AddErrorMessage(Dictionary<string, List<string>> errorDictionary, string key, string message)
|
||||
{
|
||||
if (!errorDictionary.TryGetValue(key, out var messages))
|
||||
{
|
||||
messages = new List<string>();
|
||||
errorDictionary.Add(key, messages);
|
||||
}
|
||||
messages.Add(message);
|
||||
}
|
||||
|
||||
private string CreateBase64ZipResult(List<(string FileName, MemoryStream FileStream)> excelFiles)
|
||||
{
|
||||
string result = null;
|
||||
if (excelFiles.Any())
|
||||
{
|
||||
using (var outputStream = new MemoryStream())
|
||||
{
|
||||
using (var zipOutputStream = new ZipOutputStream(outputStream))
|
||||
{
|
||||
var buffer = new byte[4096];
|
||||
foreach (var (FileName, FileStream) in excelFiles)
|
||||
{
|
||||
var entry = new ZipEntry(FileName);
|
||||
zipOutputStream.PutNextEntry(entry);
|
||||
|
||||
int sourceBytes;
|
||||
do
|
||||
{
|
||||
sourceBytes = FileStream.Read(buffer, 0, buffer.Length);
|
||||
zipOutputStream.Write(buffer, 0, sourceBytes);
|
||||
} while (sourceBytes > 0);
|
||||
}
|
||||
|
||||
zipOutputStream.Finish();
|
||||
outputStream.Position = 0;
|
||||
|
||||
result = Convert.ToBase64String(outputStream.ToArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,177 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
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.Resources;
|
||||
using Kreta.Web.Areas.Orarend.Logic;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
|
||||
public class SzamonkeresElorejelzesApiController : ApiController
|
||||
{
|
||||
[HttpPost]
|
||||
[ApiRolePackageAuthorize(
|
||||
KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue,
|
||||
KretaClaimPackages.Osztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
||||
KretaClaimPackages.Adminisztrator.ClaimValue,
|
||||
KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue,
|
||||
KretaClaimPackages.Naplo.ClaimValue
|
||||
)]
|
||||
public DataSourceResult GetSzamonkeresElorejelzesDetailGrid(int oraGroupId, int osztalyCsoportId, DateTime datum, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
|
||||
SzamonkeresElorejelzesSearchCO co = new SzamonkeresElorejelzesSearchCO
|
||||
{
|
||||
OraGroupId = oraGroupId,
|
||||
Datum = datum,
|
||||
OsztalyCsoportId = osztalyCsoportId
|
||||
};
|
||||
|
||||
var ds = helper.GetSzamonkeresElorejelzesDetailDataSet(co, isKellKapcsolodoOsztalyok: true);
|
||||
|
||||
DataSourceResult result = ds.ToDataSourceResult();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult GetModListAndComboItemColor(int? OraGroupId, int? OsztalyCsoportId, DateTime? Datum)
|
||||
{
|
||||
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var szamonkeresModIdList = helper.GetModListAndComboItemColorNapiLimithez(OraGroupId, Datum, OsztalyCsoportId, out string backgroundColor);
|
||||
|
||||
return Json(new { ErtekelesModList = szamonkeresModIdList, color = backgroundColor });
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult ValidateSzamonkeresElorejelzes(SzamonkeresElorejelzesModel model)
|
||||
{
|
||||
var szKLogic = new SzamonkeresElorejelzesLogic();
|
||||
int limit = szKLogic.GetNapiSzamonkeresiLimit;
|
||||
List<int> ertekelesModokLimithez = szKLogic.GetModokListNapiLimithez;
|
||||
|
||||
if (model.ErtekelesModId != null && ertekelesModokLimithez.Contains(model.ErtekelesModId.Value) &&
|
||||
limit > 0 && ertekelesModokLimithez.Count > 0 && szKLogic.SzamonkeresLimitFigyelmeztetes < 3)
|
||||
{
|
||||
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
SzamonkeresElorejelzesSearchCO co = new SzamonkeresElorejelzesSearchCO
|
||||
{
|
||||
OraGroupId = model.OraGroupId,
|
||||
Datum = model.Datum,
|
||||
NapiSzamonkeresLimit = limit,
|
||||
OsztalyCsoportId = model.OsztalyCsoportId,
|
||||
ErtekelesModokLimithez = ertekelesModokLimithez
|
||||
};
|
||||
|
||||
var ds = helper.GetTanulokSzamonkeresElorejelzesei(co);
|
||||
|
||||
switch (szKLogic.SzamonkeresLimitFigyelmeztetes)
|
||||
{
|
||||
case 1:
|
||||
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
string msg = string.Format(OrarendResource.FelvitelNemLehetsegesLimit0Miatt, limit) + "<br>";
|
||||
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
msg += SDAConvert.ToString(row["Nev"]) + " - " + SDAConvert.ToString(row["OsztalyNev"]) + " (" + SDAConvert.ToString(row["SzamonkeresekSzama"]) + ") " + "<br>";
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, msg);
|
||||
}
|
||||
|
||||
break;
|
||||
case 2:
|
||||
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
string msg = string.Format(OrarendResource.FelvitelNemLehetsegesLimit0MiattKerdes, limit) + "<br>" + "<br>";
|
||||
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
msg += SDAConvert.ToString(row["Nev"]) + " - " + SDAConvert.ToString(row["OsztalyNev"]) + " (" + SDAConvert.ToString(row["SzamonkeresekSzama"]) + ") " + "<br>";
|
||||
}
|
||||
|
||||
return Json(new { Valid = false, Text = msg });
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return Json(new { Valid = true, Text = "" });
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveSzamonkeresElorejelzes(SzamonkeresElorejelzesModel model)
|
||||
{
|
||||
ModelState.Merge(model.Validate());
|
||||
|
||||
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
SzamonkeresElorejelzesSearchCO co = new SzamonkeresElorejelzesSearchCO
|
||||
{
|
||||
OraGroupId = model.OraGroupId,
|
||||
DatumTol = model.Datum,
|
||||
DatumIg = model.Datum.Value.AddDays(1),
|
||||
OsztalyCsoportId = model.OsztalyCsoportId
|
||||
};
|
||||
|
||||
var ds = helper.GetBejelentettSzamonkeresekGrid(co);
|
||||
|
||||
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.DuplikaltSzamonkeresElorejelzes);
|
||||
}
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
helper.SaveSzamonkeresElorejelzes(model.ToCo(), ClaimData.FelhasznaloId);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteSzamonkeresElorejelzes(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.DeleteSzamonkeresElorejelzes(id);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaATorlesSoran);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.Results;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Classes.ComboBox;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Security;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
|
||||
[ApiRolePackageDenyAuthorize(KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue)]
|
||||
public class TanarOralatogatasApiController : ApiController
|
||||
{
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveOralatogatas(OralatogatasModel model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var helper = new OralatogatasokHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
if (!model.OralatogatasID.HasValue && model.TanarId != ClaimData.FelhasznaloId
|
||||
&& helper.OralatogatasUtkozes(ClaimData.FelhasznaloId, model.OraID.Value, out string errorMessage))
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage);
|
||||
}
|
||||
|
||||
OralatogatasokCO co = new OralatogatasokCO()
|
||||
{
|
||||
LatogatoID = ClaimData.FelhasznaloId,
|
||||
Megjegyzes = model.OralatogatasSzovege,
|
||||
Date = model.OralatogatasDatuma,
|
||||
Ora = model.OraID.Value,
|
||||
Id = model.OralatogatasID ?? -1,
|
||||
NemKotottMunkaidos = model.NemKotottMunkaidos
|
||||
};
|
||||
|
||||
if (new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<bool>(Enums.RendszerBeallitasTipusEnum.kotott_munkaido_nevelesseloktatassal_le_nem_kotott_resz_kezelesenek_tiltasa))
|
||||
{
|
||||
co.NemKotottMunkaidos = false;
|
||||
}
|
||||
|
||||
helper.SaveOralatogatas(co);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteOralatogatas(int id)
|
||||
{
|
||||
var helper = new OralatogatasokHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
helper.DeleteOralatogatas(id, ClaimData.FelhasznaloId);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetTanarList()
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var felhasznalokOnlyAlkalmazottSzerepkorIds = new FelhasznaloHelper(connectionType).GetFelhasznaloIdsOnlyAlkalmazottSzerepkor();
|
||||
IDictionary<string, string> lista;
|
||||
var helper = new TanarHelper(connectionType);
|
||||
lista = helper.GetTanarok(string.Empty, oktatasiAzonositoval: true);
|
||||
|
||||
lista.Remove("");
|
||||
|
||||
return Json(lista.ToComboBoxItemList().Where(x => !felhasznalokOnlyAlkalmazottSzerepkorIds.Contains(SDAConvert.ToInt32(x.Value))).ToList());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,773 @@
|
|||
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;
|
||||
using Kreta.BusinessLogic.Classes.ComboBox;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Logic.Mulasztas;
|
||||
using Kreta.BusinessLogic.Logic.Naplozas;
|
||||
using Kreta.BusinessLogic.Logic.Naplozas.Elokeszites;
|
||||
using Kreta.BusinessLogic.Logic.Naplozas.Validacio;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Client.CoreApi;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Intezmeny.Logic;
|
||||
using Kreta.Web.Areas.Orarend.Models;
|
||||
using Kreta.Web.Helpers;
|
||||
using Kreta.Web.Helpers.Error;
|
||||
using Kreta.Web.Helpers.Grid;
|
||||
using Kreta.Web.Security;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
|
||||
public class TanariOrarendApiController : BaseTanariOrarendApiController
|
||||
{
|
||||
private IKretaAuthorization Authorization { get; }
|
||||
|
||||
private readonly IFileServiceHelper _fileServiceHelper;
|
||||
private readonly ICoreApiClient _coreApiClient;
|
||||
|
||||
public TanariOrarendApiController(IKretaAuthorization authorization, IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient) : base(authorization, fileServiceHelper, coreApiClient)
|
||||
{
|
||||
Authorization = authorization;
|
||||
_fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
_coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveNaplozas(TanoraNaplozasRogzites model)
|
||||
{
|
||||
return base.SaveNaplozas(model);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveNemMegtartottNaplozas(TanoraNaplozasRogzites model)
|
||||
{
|
||||
return base.SaveNemMegtartottNaplozas(model);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult ValidateNaplozas(TanoraNaplozasRogzites model)
|
||||
{
|
||||
return base.ValidateNaplozas(model);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult UtkozesValidateNaplozas(TanoraIdBeallitasModel model)
|
||||
{
|
||||
model.calendarModel.Start = model.calendarModel.Start.ToLocalTime();
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var naploValidacioParameters = new NaploValidacioParameters(model.calendarModel.Start, connectionType, ClaimData.FelhasznaloSzerepkor);
|
||||
var validator = new NaploValidacio(naploValidacioParameters);
|
||||
|
||||
NaplozasElokeszitesLogic naplozasLogic;
|
||||
if (model.calendarModel.EventType == EventTypeEnum.UjEgyediOraFelvitel ||
|
||||
(model.calendarModel.EventType == EventTypeEnum.UjOraFelvitele && (model.calendarModel.OraType == CalendarOraTypeEnum.UresOra ||
|
||||
model.calendarModel.OraType == CalendarOraTypeEnum.Egyeb)))
|
||||
{
|
||||
var co = new EgyediNaplozasElokeszitesCo();
|
||||
model.ConvertTo(co);
|
||||
naplozasLogic = new NaplozasElokeszitesLogic(validator, co);
|
||||
}
|
||||
else
|
||||
{
|
||||
var co = new NaplozasElokeszitesCo();
|
||||
model.calendarModel.ConvertTo(co);
|
||||
naplozasLogic = new NaplozasElokeszitesLogic(validator, co);
|
||||
}
|
||||
|
||||
var systemSettingsHelper = new SystemSettingsHelper(connectionType);
|
||||
var tevekenysegUtkozes = systemSettingsHelper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Napirend_felvitelel_utkozes_figyeles);
|
||||
|
||||
var osztalyVagyTanarOraiadottUtkozes = TanevRendjeLogic.IsEgyediNapByDate(model.calendarModel.Start.Date) ? "" : naplozasLogic.GetOsztalyEsTanarOraiUtkozes();
|
||||
switch ((TevekenysegUtkozesEnum)tevekenysegUtkozes)
|
||||
{
|
||||
case TevekenysegUtkozesEnum.UtkozesNemLehetseges:
|
||||
if (!string.IsNullOrWhiteSpace(osztalyVagyTanarOraiadottUtkozes))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, string.Format(OrarendResource.TanoraFelviteleNemLehetsegesUtkozesMiatt, osztalyVagyTanarOraiadottUtkozes));
|
||||
}
|
||||
break;
|
||||
case TevekenysegUtkozesEnum.UtkozeskorFigyelmeztetes:
|
||||
if (!string.IsNullOrWhiteSpace(osztalyVagyTanarOraiadottUtkozes))
|
||||
{
|
||||
return Json(new { Valid = false, Text = string.Format(OrarendResource.TanoraFelviteleNemLehetsegesUtkozesMiattKerdes, string.Empty, string.Empty, osztalyVagyTanarOraiadottUtkozes) });
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return Json(new { Valid = true, Text = "" });
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveNemKotottMunkaIdo(NemKotottMunkaidoModel model)
|
||||
{
|
||||
model.isMegtartott = true;
|
||||
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
try
|
||||
{
|
||||
model.Kezdet = Logic.OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Kezdet.Value);
|
||||
model.Veg = Logic.OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Veg.Value);
|
||||
|
||||
var customModelState = Logic.NemKotottMunkaidoLogic.CheckCustomValidation(ModelState, model);
|
||||
if (!customModelState.IsValid)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState);
|
||||
}
|
||||
|
||||
NemKotottMunkaidoHelper helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var co = Logic.NemKotottMunkaidoLogic.ConvertModelToCO(model);
|
||||
if (model.Id.IsEntityId())
|
||||
{
|
||||
helper.Update(co);
|
||||
}
|
||||
else
|
||||
{
|
||||
co.GroupId = Guid.NewGuid().ToString();
|
||||
helper.Insert(co);
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteNemKotottMunkaIdo(int Id, bool isGlobal)
|
||||
{
|
||||
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
||||
if (!authorization.IsValidNemKotottMunkaido(Id))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
||||
helper.Delete(Id, isAdmin: false, isGlobal);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (KretaError ke)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ke.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteTanarAltalNemKotottMunkaIdo(int Id)
|
||||
{
|
||||
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
||||
if (!authorization.IsValidNemKotottMunkaido(Id))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
||||
helper.DeleteTanarAltal(Id);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (KretaError ke)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ke.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult UtkozesValidateNemKotottMunkaido(NemKotottMunkaidoModel model)
|
||||
{
|
||||
var hasUtkozes = Logic.NemKotottMunkaidoLogic.CheckUtkozesValidation(model);
|
||||
int tevekenysegutkozesSystemSetting = Logic.NemKotottMunkaidoLogic.GetTevekenysegUtkozesSystemSetting();
|
||||
|
||||
if (tevekenysegutkozesSystemSetting != (int)TevekenysegUtkozesEnum.UtkozesMegengedett && hasUtkozes)
|
||||
{
|
||||
if (tevekenysegutkozesSystemSetting == (int)TevekenysegUtkozesEnum.UtkozesNemLehetseges)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.NemKotottMunkaidoFelviteleNemLehetsegesUtkozesMiatt);
|
||||
}
|
||||
|
||||
return Json(new { Valid = false, Text = string.Format(OrarendResource.NemKotottMunkaidoFelviteleNemLehetsegesUtkozesMiattKerdes) });
|
||||
}
|
||||
return Json(new { Valid = true, Text = string.Empty });
|
||||
}
|
||||
|
||||
public DataSourceResult GetMulasztasokForInfo(int osztalycsoportId, int tanoraId, DateTime oraKezdete, DateTime oraVege, int targyId, int tanarId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
return new MulasztasLogic(ConnectionTypeExtensions.GetSessionConnectionType()).GetMulasztasok(osztalycsoportId, tanoraId, oraKezdete, oraVege, targyId, tanarId, false).ToDataSourceResult();
|
||||
}
|
||||
|
||||
public DataSourceResult GetMulasztasokForDetail(int osztalycsoportId, int tanoraId, DateTime oraKezdete, DateTime oraVege, int targyId, int tanarId, bool hianyzokAutoKitoltes, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
return new MulasztasLogic(ConnectionTypeExtensions.GetSessionConnectionType()).GetMulasztasok(osztalycsoportId, tanoraId, oraKezdete, oraVege, targyId, tanarId, hianyzokAutoKitoltes).ToDataSourceResult();
|
||||
}
|
||||
|
||||
public string GetTanarokNeve(string id)
|
||||
{
|
||||
return int.TryParse(id, out int fID) && fID.IsEntityId()
|
||||
? new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanarokTanoranKivuliFoglalkozashoz(fID)
|
||||
: string.Empty;
|
||||
}
|
||||
|
||||
public bool IsTanevRendEsemenyNemKotottMunkaido(CalendarModel model)
|
||||
{
|
||||
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
return helper.GetVanTanevRendjeEsemenyNemKotottMunkaido(model.Start, model.End);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public DateTime GetNaplozarasDate(CalendarModel model)
|
||||
{
|
||||
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
return helper.GetNaplozarasDate(model.Start).ToUniversalTime();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public JObject GetNaploZarasInfo(CalendarModel model)
|
||||
{
|
||||
var naplozarasDate = GetNaplozarasDate(model);
|
||||
bool csakErtekelesZarasa = new NaplozarasLogic(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsCsakErtekelesZarasaBeallitas();
|
||||
JObject json = JObject.FromObject(new { NaplozarasDate = naplozarasDate, CsakErtekelesZarasa = csakErtekelesZarasa });
|
||||
return json;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public int GetCsengetesiRend(CalendarModel model)
|
||||
{
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
return helper.GetTanitasiCsengetesiRendOraIdja(model.EventId);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetHelyettesitesTipus(string osszevonas = null)
|
||||
{
|
||||
var data = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.HelyettesitesTipus, ClaimData.SelectedTanevID.Value, false);
|
||||
|
||||
if (osszevonas != ((int)HelyettesitesTipusEnum.oraosszevonas).ToString())
|
||||
{
|
||||
data.Remove(((int)HelyettesitesTipusEnum.oraosszevonas).ToString());
|
||||
}
|
||||
|
||||
return Json(data.ToComboBoxItemList());
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetHelyettesitesTipusOsszevonassal()
|
||||
{
|
||||
var data = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.HelyettesitesTipus, ClaimData.SelectedTanevID.Value, false);
|
||||
|
||||
return Json(data.ToComboBoxItemList());
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetHelyettesitoTanarok()
|
||||
{
|
||||
var helper = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
var data = helper.GetTanarNevek(string.Empty, oktatasiAzonositoval: true);
|
||||
data.Remove(ClaimData.FelhasznaloId.ToString());
|
||||
|
||||
return Json(data.ToComboBoxItemList());
|
||||
}
|
||||
|
||||
public JsonResult<List<GroupComboBoxListItem>> GetTanoranKivuliFoglalkozasok(DateTime? datum = null, bool? isForOrarend = null, bool? filterNincsBeloleOra = false, int? hanyadikOra = null)
|
||||
{
|
||||
return GetTanoranKivuliFoglalkozasok(ClaimData.FelhasznaloId, filterNincsBeloleOra ?? false, datum, isForOrarend, hanyadikOra);
|
||||
}
|
||||
|
||||
public JsonResult<List<GroupComboBoxListItem>> GetTanoranKivuliFoglalkozasok(int filterId, bool filterNincsBeloleOra = false, DateTime? datum = null, bool? isForOrarend = null, int? hanyadikOra = null)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var helper = new TantargyFelosztasHelper(connectionType);
|
||||
|
||||
var foglalkozasok = helper.GetFoglalkozasok(filterId, filterNincsBeloleOra: filterNincsBeloleOra);
|
||||
var list = foglalkozasok.Tables[0].AsEnumerable();
|
||||
|
||||
if (isForOrarend.HasValue && isForOrarend.Value && datum.HasValue && hanyadikOra.HasValue)
|
||||
{
|
||||
var osztalyCsoportIds = new CsengetesiRendHelper(connectionType).GetOsztalyCsoportIdsForCsengetesiRend(datum.Value, hanyadikOra.Value, list.Select(x => x.Field<int>("OsztalyCsoportId")));
|
||||
|
||||
list = list.Where(x => osztalyCsoportIds.Contains(x.Field<int>("OsztalyCsoportId")));
|
||||
}
|
||||
|
||||
var filteredList = list.Select(dataRow => new ComboBoxListItem
|
||||
{
|
||||
Value = dataRow.Field<int>("ID").ToString() + " - " + dataRow.Field<int>("OsztalyCsoportId").ToString(),
|
||||
Text = dataRow.Field<string>("Tantargy") + " - " + dataRow.Field<string>("OsztalyCsoportNev"),
|
||||
GroupName = dataRow.Field<string>("IsOsztalyOrOsztalyJelleguCsoport") == "T" ? StringResourcesUtil.GetString(4808) /*Tanórai célú csoportok*/ : StringResourcesUtil.GetString(4809) /*Tanórán kívüli csoportok*/
|
||||
}).ToList();
|
||||
|
||||
return Json(ComboBoxHelper.ConvertDataToGroup(filteredList));
|
||||
}
|
||||
|
||||
public JsonResult<List<GroupComboBoxListItem>> GetNapirendTanoranKivuliFoglalkozasok(int filterId, DateTime? datum = null, bool? isForOrarend = null, int? hanyadikOra = null)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var helper = new TantargyFelosztasHelper(connectionType);
|
||||
|
||||
var foglalkozasok = helper.GetFoglalkozasok(filterId);
|
||||
var list = foglalkozasok.Tables[0].AsEnumerable();
|
||||
|
||||
if (isForOrarend.HasValue && isForOrarend.Value && datum.HasValue && hanyadikOra.HasValue)
|
||||
{
|
||||
var osztalyCsoportIds = new CsengetesiRendHelper(connectionType).GetOsztalyCsoportIdsForCsengetesiRend(datum.Value, hanyadikOra.Value, list.Select(x => x.Field<int>("OsztalyCsoportId")));
|
||||
|
||||
list = list.Where(x => osztalyCsoportIds.Contains(x.Field<int>("OsztalyCsoportId")));
|
||||
}
|
||||
|
||||
var systemSettingsHelper = new SystemSettingsHelper(connectionType);
|
||||
var csakOsztalyEsTanoraJelleguCsoport = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Foglalkozasnal_csak_osztaly_es_tanora_jellegu_csoport_allithato);
|
||||
|
||||
if (csakOsztalyEsTanoraJelleguCsoport)
|
||||
{
|
||||
list = list.Where(x => x.Field<string>("IsOsztalyOrOsztalyJelleguCsoport") == "T");
|
||||
}
|
||||
|
||||
var filteredList = list.Select(dataRow => new ComboBoxListItem
|
||||
{
|
||||
Value = dataRow.Field<int>("ID").ToString() + " - " + dataRow.Field<int>("OsztalyCsoportId").ToString(),
|
||||
Text = dataRow.Field<string>("Tantargy") + " - " + dataRow.Field<string>("OsztalyCsoportNev"),
|
||||
GroupName = dataRow.Field<string>("IsOsztalyOrOsztalyJelleguCsoport") == "T" ? StringResourcesUtil.GetString(4808) /*Tanórai célú csoportok*/ : StringResourcesUtil.GetString(4809) /*Tanórán kívüli csoportok*/
|
||||
}).ToList();
|
||||
|
||||
return Json(ComboBoxHelper.ConvertDataToGroup(filteredList));
|
||||
}
|
||||
|
||||
public JsonResult<List<GroupComboBoxListItem>> GetTanoranKivuliFoglalkozasokOsztalyList()
|
||||
{
|
||||
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var csakOsztalyEsTanoraJelleguCsoport = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Foglalkozasnal_csak_osztaly_es_tanora_jellegu_csoport_allithato);
|
||||
|
||||
var ocsHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var ds = ocsHelper.GetOsztalyCsoportokTanoranKivuliFoglalkozasokhozWithGroup(csakOsztalyEsTanoraJelleguCsoport);
|
||||
|
||||
var result = new List<ComboBoxListItem>();
|
||||
foreach (DataRow dr in ds.Tables[0].Rows)
|
||||
{
|
||||
var item = new ComboBoxListItem();
|
||||
item.Value = dr["ID"].ToString();
|
||||
item.Text = dr["OsztalyCsoport"].ToString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(SDAConvert.ToString(dr["CsoportTipusa_DNAME"])))
|
||||
{
|
||||
item.GroupName = dr["CsoportTipusa_DNAME"].ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
item.GroupName = "";
|
||||
}
|
||||
result.Add(item);
|
||||
}
|
||||
|
||||
return Json(ComboBoxHelper.ConvertDataToGroup(result));
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetTantargyak([DataSourceRequest] DataSourceRequest request, bool filterNincsBeloleOra = false)
|
||||
{
|
||||
var helper = new TantargyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
var dictionary = helper.GetTantargyakForDDL(filterNincsBeloleOra: filterNincsBeloleOra, isSzakkepzo: ClaimData.IsSzakkepzoIntezmeny);
|
||||
var dropdownListItems = new List<ComboBoxListItem>();
|
||||
|
||||
foreach (var item in dictionary)
|
||||
{
|
||||
var sli = new ComboBoxListItem() { Text = item.Value, Value = item.Key };
|
||||
dropdownListItems.Add(sli);
|
||||
}
|
||||
return Json(dropdownListItems);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetErtekelesTipus()
|
||||
{
|
||||
return Json(FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.ErtekelesMod, ClaimData.SelectedTanevID.Value, true).ToComboBoxItemList());
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetTema(int osztcsop, int targy)
|
||||
{
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
var list = helper.GetTemaIdAndNameForNaplozasDDL(targy, osztcsop).ToComboBoxItemList();
|
||||
|
||||
return Json(list);
|
||||
}
|
||||
|
||||
public JsonResult<DataTable> CheckTanarOra(CalendarModel model)
|
||||
{
|
||||
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var data = helper.CheckTanarOra(model.Start, model.End, model.HelyettesitoId.Value, model.Hanyadikora, isNapirend: false, isEgyediHelyettesites: false);
|
||||
return Json(data.Tables[0]);
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public JsonResult<List<ComboBoxListItem>> GetTorvenyKategoriaList()
|
||||
{
|
||||
var dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.TevekenysegTipus, ClaimData.SelectedTanevID.Value);
|
||||
List<ComboBoxListItem> list = new List<ComboBoxListItem>();
|
||||
|
||||
foreach (var item in dictionary)
|
||||
{
|
||||
ComboBoxListItem ci = new ComboBoxListItem() { Text = item.Value, Value = item.Key };
|
||||
list.Add(ci);
|
||||
}
|
||||
|
||||
return Json(list);
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetTanarList()
|
||||
{
|
||||
return Json(GetTanarDictionary().ToComboBoxItemList());
|
||||
}
|
||||
|
||||
public List<System.Web.Mvc.SelectListItem> GetTanarListItems()
|
||||
{
|
||||
return GetTanarDictionary().ToSelectListItemList();
|
||||
}
|
||||
|
||||
private static IDictionary<string, string> GetTanarDictionary()
|
||||
{
|
||||
IDictionary<string, string> list;
|
||||
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
list = helper.GetTanarok(string.Empty, oktatasiAzonositoval: false);
|
||||
|
||||
list.Remove("");
|
||||
return list;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult DeleteTanora(TanoraMuveletek pram)
|
||||
{
|
||||
return base.DeleteTanora(pram);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
/// TODO: (DevKornél) string resx-ből
|
||||
/// TODO: (DevKornél) pram rename
|
||||
public IHttpActionResult OraOsszevonasDelete(TanoraMuveletek pram)
|
||||
{
|
||||
try
|
||||
{
|
||||
LicenceHelper.LicenceWait(ClaimData.LicenceDatum);
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.NaplozasTorlese(pram.CalendarModel.EventId);
|
||||
|
||||
return Json(new { Title = StringResourcesUtil.GetString(366) /*Siker*/, Text = StringResourcesUtil.GetString(3211) /*Sikeres törlés*/});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.InternalServerError, StringResourcesUtil.GetString(3212) /*Törlés sikertelen*/)
|
||||
{
|
||||
UnHandledException = ex
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool IsTanitasiNap(DateTime date)
|
||||
{
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var isTanitasiNap = tanevrendHelper.IsTanitasiNap(date, null);
|
||||
|
||||
return isTanitasiNap;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public int GetOsztalyCsoportTerem(int? osztalyCsoportId)
|
||||
{
|
||||
if (osztalyCsoportId > 0)
|
||||
{
|
||||
return new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportTeremId(osztalyCsoportId.Value);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public int GetTeremByFoglalkozas(int? foglalkozasId)
|
||||
{
|
||||
if (foglalkozasId > 0)
|
||||
{
|
||||
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
return helper.GetTeremByFoglalkozas(foglalkozasId.Value);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool IsOrarendiNap(DateTime date)
|
||||
{
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var isOrarendiNap = tanevrendHelper.IsOrarendiNap(date, null);
|
||||
|
||||
return isOrarendiNap;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public bool EnabledNemKotottMunkaidoRogzitese(DateTime date)
|
||||
{
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var enabledNemKotottMunkaidoRogzitese = tanevrendHelper.EnabledNemKotottMunkaidoRogzitese(date);
|
||||
|
||||
return enabledNemKotottMunkaidoRogzitese;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveHaziFeladat(TanoraNaplozasRogzites model)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(model.HaziFeladatNaplozasRogzites.HaziFeladat) && !model.HaziFeladatNaplozasRogzites.Hatarido.HasValue && model.HaziFeladatNaplozasRogzites.Id.HasValue)
|
||||
{
|
||||
new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType()).DeleteHazi(model.HaziFeladatNaplozasRogzites.Id.Value, _coreApiClient);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(model.HaziFeladatNaplozasRogzites.HaziFeladat))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.AHaziFeladatSzovegeNemLehetUres);
|
||||
}
|
||||
if (!model.HaziFeladatNaplozasRogzites.Hatarido.HasValue)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.HataridoMegadasaKotelezo);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var orarendiOra = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOrarendiOraById(model.TanoraMuveletek.CalendarModel.EventId);
|
||||
var co = new BusinessLogic.HelperClasses.TanarHaziFeladatCO
|
||||
{
|
||||
Id = model.HaziFeladatNaplozasRogzites.Id,
|
||||
Szoveg = CommonUtils.CreateLinksInText(model.HaziFeladatNaplozasRogzites.HaziFeladat),
|
||||
TanitasiOraId = null,
|
||||
TantargyId = orarendiOra.TantargyId,
|
||||
FeladasDatuma = model.TanoraMuveletek.CalendarModel.Start.Date,
|
||||
Hatarido = model.HaziFeladatNaplozasRogzites.Hatarido.Value,
|
||||
HelyettesitoId = model.TanoraMuveletek.CalendarModel.HelyettesitoId,
|
||||
IsTanarRogzitette = true,
|
||||
OrarendiOraId = model.TanoraMuveletek.CalendarModel.EventId,
|
||||
Oraszam = model.TanoraMuveletek.CalendarModel.Hanyadikora,
|
||||
Idopont = model.TanoraAdatokRogzites.OraKezdete,
|
||||
OsztalyCsoportId = orarendiOra.OsztalyCsoportId,
|
||||
RogzitoId = ClaimData.FelhasznaloId,
|
||||
IntezmenyId = ClaimData.IntezmenyId,
|
||||
IntezmenyAzonosito = ClaimData.IntezmenyAzonosito,
|
||||
TanevId = ClaimData.SelectedTanevID.Value,
|
||||
CsatolmanyId = model.HaziFeladatNaplozasRogzites.CsatolmanyId
|
||||
};
|
||||
var hfId = new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveOrUpdateTanarHaziFeladat(co, orarendiOra.TanarId, _fileServiceHelper, _coreApiClient);
|
||||
return Request.CreateResponse(HttpStatusCode.OK, new { HazifeladatId = hfId });
|
||||
}
|
||||
catch { throw; }
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveHaziFeladatFromDetail(HaziFeladatNaplozas model)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(model.HaziFeladat) && !model.Hatarido.HasValue && model.Id.HasValue)
|
||||
{
|
||||
new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType()).DeleteHazi(model.Id.Value, _coreApiClient);
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(model.HaziFeladat))
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.AHaziFeladatSzovegeNemLehetUres);
|
||||
}
|
||||
if (!model.Hatarido.HasValue)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.HataridoMegadasaKotelezo);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
BusinessLogic.HelperClasses.TanarHaziFeladatCO co;
|
||||
int? tanarId;
|
||||
if (!model.IsElmaradt)
|
||||
{
|
||||
var orarendiOra = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOrarendiOraById(model.OrarendiOraId.Value);
|
||||
tanarId = orarendiOra.TanarId;
|
||||
co = new BusinessLogic.HelperClasses.TanarHaziFeladatCO
|
||||
{
|
||||
Id = model.Id,
|
||||
Szoveg = CommonUtils.CreateLinksInText(model.HaziFeladat),
|
||||
TanitasiOraId = null,
|
||||
TantargyId = orarendiOra.TantargyId,
|
||||
FeladasDatuma = model.NapDatuma.Value,
|
||||
Hatarido = model.Hatarido.Value,
|
||||
HelyettesitoId = null,
|
||||
IsTanarRogzitette = true,
|
||||
OrarendiOraId = model.OrarendiOraId,
|
||||
Oraszam = orarendiOra.Oraszam,
|
||||
Idopont = orarendiOra.OraKezdete,
|
||||
OsztalyCsoportId = orarendiOra.OsztalyCsoportId,
|
||||
RogzitoId = ClaimData.FelhasznaloId,
|
||||
IntezmenyId = ClaimData.IntezmenyId,
|
||||
IntezmenyAzonosito = ClaimData.IntezmenyAzonosito,
|
||||
TanevId = ClaimData.SelectedTanevID.Value,
|
||||
CsatolmanyId = model.CsatolmanyId
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
var tanora = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanorakAdatok(model.TanitasiOraId.Value);
|
||||
tanarId = tanora.Tanar;
|
||||
co = new BusinessLogic.HelperClasses.TanarHaziFeladatCO
|
||||
{
|
||||
Id = model.Id,
|
||||
Szoveg = CommonUtils.CreateLinksInText(model.HaziFeladat),
|
||||
TanitasiOraId = model.TanitasiOraId,
|
||||
TantargyId = tanora.Targy,
|
||||
FeladasDatuma = model.NapDatuma.Value,
|
||||
Hatarido = model.Hatarido.Value,
|
||||
HelyettesitoId = null,
|
||||
IsTanarRogzitette = true,
|
||||
OrarendiOraId = null,
|
||||
Idopont = tanora.OraKezd,
|
||||
OsztalyCsoportId = tanora.OsztCsop,
|
||||
RogzitoId = ClaimData.FelhasznaloId,
|
||||
IntezmenyId = ClaimData.IntezmenyId,
|
||||
IntezmenyAzonosito = ClaimData.IntezmenyAzonosito,
|
||||
TanevId = ClaimData.SelectedTanevID.Value,
|
||||
CsatolmanyId = model.CsatolmanyId
|
||||
};
|
||||
}
|
||||
|
||||
var hfId = new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveOrUpdateTanarHaziFeladat(co, tanarId, _fileServiceHelper, _coreApiClient);
|
||||
return Request.CreateResponse(HttpStatusCode.OK, new { HazifeladatId = hfId });
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public JsonResult<CheckFoglalkozasRogzithetoResult> CheckFoglalkozasRogzitheto(DateTime calendarStartDate)
|
||||
{
|
||||
var localCalendarstartDate = calendarStartDate.ToLocalTime();
|
||||
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var isOrarendiNap = tanevrendHelper.IsOrarendiNap(localCalendarstartDate, osztalycsoportId: null);
|
||||
var isTanitasiNap = tanevrendHelper.IsTanitasiNap(localCalendarstartDate, osztalycsoportId: null);
|
||||
|
||||
var naplozaras = orarendHelper.GetNaplozarasDate(localCalendarstartDate);
|
||||
var isCsakErtekelesZarasa = new NaplozarasLogic(ConnectionTypeExtensions.GetSessionConnectionType()).IsCsakErtekelesZarasaBeallitas();
|
||||
var isNaplozaras = naplozaras >= localCalendarstartDate;
|
||||
|
||||
var isNapirendMegnyithato = IsNapirendMegnyithato();
|
||||
|
||||
var result = new CheckFoglalkozasRogzithetoResult
|
||||
{
|
||||
IsOrarendiNap = isOrarendiNap,
|
||||
IsTanitasiNap = isTanitasiNap,
|
||||
IsNaplozaras = isNaplozaras,
|
||||
IsCsakErtekelesZarasa = isCsakErtekelesZarasa,
|
||||
IsNapirendMegnyithato = isNapirendMegnyithato
|
||||
};
|
||||
return Json(result);
|
||||
}
|
||||
|
||||
private bool IsNapirendMegnyithato()
|
||||
{
|
||||
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
return !systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Pedagogusok_csak_az_eloirt_helyettesiteseiket_regisztralhatjak_a_haladasi_naploban) ||
|
||||
systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Tanar_vehet_e_fel_orat_maganak) ||
|
||||
systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Lehet_orat_felvenni_TTF_nelkul);
|
||||
}
|
||||
|
||||
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult<OraCO> GetCsengetesiRendEsOrak(CsengetesiRendOraszamaModel csengetesiRend)
|
||||
{
|
||||
var helper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var data = helper.GetCsengetesiRendEsOrak(csengetesiRend.AktualisCsengetesiRendId, csengetesiRend.AktualisOraSzam).Tables[0].Rows;
|
||||
|
||||
var ora = new OraCO
|
||||
{
|
||||
Kezdete = data.Count > 0 ? data[0].Field<DateTime>("Kezdete").TimeOfDay : TimeSpan.Zero,
|
||||
Vege = data.Count > 0 ? data[0].Field<DateTime>("Vege").TimeOfDay : TimeSpan.Zero
|
||||
};
|
||||
|
||||
return Json(ora);
|
||||
}
|
||||
|
||||
public bool IsHelyettesitesTulora(KeziHelyettesitesIsTuloraModel cm)
|
||||
{
|
||||
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var ds = helper.CheckTanarOra(SDAConvert.ToDateTime(cm.Start).Value, SDAConvert.ToDateTime(cm.End).Value, SDAConvert.ToInt32(cm.HelyettesitettId), SDAConvert.ToNullableInt32(cm.Hanyadikora), SDAConvert.ToBoolean(cm.UseFoglakozas), true);
|
||||
|
||||
if (ds != null && ds.Tables.Count > 0)
|
||||
{
|
||||
var szuksegesSorok = ds.Tables[0].AsEnumerable().ToList();
|
||||
if (szuksegesSorok.Count == 1 && szuksegesSorok[0].Field<string>("C_TULORA") == "T")
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public class KeziHelyettesitesIsTuloraModel
|
||||
{
|
||||
public int HelyettesitettId { get; set; }
|
||||
public DateTime Start { get; set; }
|
||||
public DateTime End { get; set; }
|
||||
public int Hanyadikora { get; set; }
|
||||
public bool UseFoglakozas { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,162 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
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.Interfaces;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Client.CoreApi;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Orarend.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.Orarend.ApiControllers
|
||||
{
|
||||
[ApiRoleClaimsAuthorize(true)]
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class TanoraKeresoApiController : ApiController
|
||||
{
|
||||
private IKretaAuthorization Authorization { get; }
|
||||
|
||||
private readonly IFileServiceHelper fileServiceHelper;
|
||||
private readonly ICoreApiClient coreApiClient;
|
||||
|
||||
public TanoraKeresoApiController(IKretaAuthorization authorization, IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
|
||||
{
|
||||
Authorization = authorization;
|
||||
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
this.coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public DataSourceResult GetTanitasiOraGrid([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<TanitasiOraGridModel>(TanitasiOraGridModel.TanoraExportAttributeId);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(OrarendResource.Tanorak, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), OrarendResource.ExportFileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<TanitasiOraGridModel> modelList) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<TanitasiOraSearchModel>(data);
|
||||
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var coList = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanitasiOraCoList(TanitasiOraSearchModel.ConvertModelToCo(model));
|
||||
|
||||
var modelList = new List<TanitasiOraGridModel>();
|
||||
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new TanitasiOraGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
return (gridParameter, modelList);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public bool DeleteTanora(int tanoraId)
|
||||
{
|
||||
try
|
||||
{
|
||||
TanoraCO tanora;
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
tanora = helper.GetTanorakAdatok(tanoraId);
|
||||
|
||||
var calendarModel = new CalendarModel();
|
||||
calendarModel.Start = tanora.OraKezd;
|
||||
calendarModel.End = tanora.OraVeg;
|
||||
calendarModel.EventId = tanoraId;
|
||||
calendarModel.EventType = EventTypeEnum.LetezoOraSzerkesztese;
|
||||
calendarModel.AllDay = false;
|
||||
calendarModel.EventColor = string.Empty;
|
||||
calendarModel.OraType = CalendarOraTypeEnum.TanitasiOra;
|
||||
calendarModel.HelyettesitesId = tanora.HelyettesitesId;
|
||||
calendarModel.HelyettesitoId = tanora.Helyettesito;
|
||||
calendarModel.UseFoglakozas = tanora.Fogl.HasValue;
|
||||
calendarModel.isHelyettesites = tanora.Helyettesito.HasValue;
|
||||
calendarModel.IsOraOsszevonas = tanora.HelyettesitesTipus == (int)HelyettesitesTipusEnum.oraosszevonas;
|
||||
calendarModel.Tema = tanora.Tema;
|
||||
|
||||
if (!tanora.Tanar.HasValue)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran);
|
||||
}
|
||||
|
||||
var muveletPram = new TanoraMuveletek(tanora.Tanar.Value, calendarModel);
|
||||
|
||||
using (var tanariOrarend = new TanariOrarendApiController(Authorization, fileServiceHelper, coreApiClient))
|
||||
{
|
||||
tanariOrarend.DeleteTanora(muveletPram);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetCsoportTipusList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
var dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.CsoportTipus, ClaimData.SelectedTanevID.Value, false);
|
||||
return Json(dictionary.ToComboBoxItemList());
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetFoglalkozasList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
var foglalkozasHelper = new FoglalkozasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
var dictionary = foglalkozasHelper.GetOsszesFoglalkozas();
|
||||
return Json(dictionary.ToComboBoxItemList());
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetTantargyList([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
var helper = new TantargyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
var dictionary = helper.GetTantargyakForDDL(isSzakkepzo: ClaimData.IsSzakkepzoIntezmeny);
|
||||
return Json(dictionary.ToComboBoxItemList());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue