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

View file

@ -0,0 +1,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);
}
}
}

View file

@ -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);
}
}
}

View file

@ -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();
}
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}

View file

@ -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
{
}
}

View file

@ -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;
}
}
}

View file

@ -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
{
}
}

View file

@ -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));
}
}
}

View file

@ -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;
}
}
}

View file

@ -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));
}
}
}

View file

@ -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;
}
}
}

View file

@ -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
{
}
}

View file

@ -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
{
}
}

View file

@ -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
{
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}
}

View file

@ -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;
}
}
}

View file

@ -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();
}
}
}

View file

@ -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();
}
}
}

View file

@ -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);
}
}
}

View file

@ -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;
}
}
}

View file

@ -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);
}
}
}
}

View file

@ -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());
}
}
}

View file

@ -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; }
}
}
}

View file

@ -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());
}
}
}

View file

@ -0,0 +1,20 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.Security;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AdminBejelentettSzamonkeresekController : Controller
{
public ActionResult Index()
{
var model = new BejelentettSzamonkeresekSearchModel();
return View("Index", model);
}
}
}

View file

@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Security;
using Kreta.Core.FeatureToggle;
using Kreta.Web.Areas.Orarend.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Controllers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AdminKepekListajaController : Controller
{
private readonly IFileServiceHelper FileServiceHelper;
private IFeatureContext FeatureContext { get; set; }
public AdminKepekListajaController(IFeatureContext featureContext, IFileServiceHelper fileServiceHelper)
{
FeatureContext = featureContext ?? throw new ArgumentNullException(nameof(featureContext));
FileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
}
public ActionResult Index()
{
return View("~/Areas/Orarend/Views/KepekListaja/Index.cshtml", new KepekListajaSearchModel() { FeladatEllatasiHelyId = ClaimData.FelhelySzuro });
}
public ActionResult OpenKepInfoPopUp(int oraFileId)
{
return View(Constants.General.PopupView, KepekListajaLogic.GetPopUpModelOpenKepInfo(oraFileId, FileServiceHelper));
}
public string DownloadSelectedKep(List<int> selectedOraFileIdList)
{
Guid guid = KepekListajaLogic.DownloadSelectedKep(selectedOraFileIdList, FileServiceHelper);
return Url.Action(nameof(CacheController.DownloadFile), nameof(CacheController).Replace("Controller", ""), new { guid, fileName = "képek.zip", contentType = Constants.ImportExport.ContentType, area = "" });
}
}
}

View file

@ -0,0 +1,148 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Controllers;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AdminKozpontiOrakController : Controller
{
// GET: Orarend/AdminKozpontiOrak
public ActionResult Index()
{
var model = new KozpontiOraModel();
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.HetirendJson = helper.GetHetirendek();
model.NaptariHetekHetirendJson = helper.GetNaptariHetekHetirendek();
var co = helper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin.Subtract(new TimeSpan(0, 15, 0)); // "15 perccel legyen előbb"
model.CalendarMaxTime = co.CalendarMax.Add(new TimeSpan(0, 15, 0)); // "15 perccel legyen később"
model.CsengetesiRendMinTime = new TimeSpan();
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
var comboBoxHelperController = new ComboBoxHelperApiController();
model.Tanarok = comboBoxHelperController.GetTanarDropDown().ToJson();
model.Tantargyak = comboBoxHelperController.GetTantargyDropDown(filterNincsBeloleOra: true).ToJson();
model.Termek = comboBoxHelperController.GetTeremListWithoutGroupDropDown().ToJson();
model.TabList = GetKozpontiOraTabs();
return View("Index", model);
}
public ActionResult OpenSelectPopUp()
{
var model = new PopUpModel(new object(), "Select_PopUp");
model.AddCancelBtn(model, "KozpontiOra.selectPopUpWindowCancel");
return PartialView(Constants.General.PopupView, model);
}
public ActionResult OpenDetailsGrid(AdminKozpontiOrakOsztalyokGridModel model)
{
return PartialView("DetailGrid", model);
}
public ActionResult OpenModositasPopUp(DateTime start, DateTime end, int hanyadikOra)
{
var model = new PopUpModel(new AdminKozpontiOrakSearchModel { Start = start, End = end, HanyadikOra = hanyadikOra }, "Modositas_PopUp");
model.AddCancelBtn(model, "KozpontiOra.modositasPopUpWindowCancel");
return PartialView(Constants.General.PopupView, model);
}
public ActionResult OpenOrarendiOrakTorleseKozpontilagPopUp(DateTime start, DateTime end, int hanyadikOra)
{
var model = new PopUpModel(new AdminKozpontiOrakSearchModel { Start = start, End = end, HanyadikOra = hanyadikOra }, "OrarendiOrakTorleseKozpontilag_PopUp");
model.AddCancelBtn(model, "KozpontiOra.deleteOrarendiOrakKozpontilagPopUpWindowCancel");
model.AddBtn(model, "torlesBtn", CommonResource.Torles, "KozpontiOra.OrarendOrakTorleseKozpontilag");
return PartialView(Constants.General.PopupView, model);
}
public ActionResult OpenOrarendiOrakVisszaallitasaPopUp(DateTime start, DateTime end, int hanyadikOra)
{
var model = new PopUpModel(new AdminKozpontiOrakSearchModel { Start = start, End = end, HanyadikOra = hanyadikOra }, "OrarendiOrakVisszaallitasa_PopUp");
model.AddBtn(model, "megseBtn", KozpontiOrakResource.KilepesVisszaallitasNelkul, "KozpontiOra.OrarendiOrakVisszaallitasaPopUpWindowCancel");
model.AddBtn(model, "torlesBtn", KozpontiOrakResource.KijeloltOrakVisszaallitasa, "KozpontiOra.OrarendOrakVisszaallitasa");
return PartialView(Constants.General.PopupView, model);
}
public ActionResult OpenCreate(TanoraAdatok model)
{
var rogzitesModel = AdminKozpontiOrakRogzitesModel.MapFromTanoraAdatok(model);
return PartialView("Create", rogzitesModel);
}
public ActionResult OpenUtkozoOrak(DateTime start, DateTime end, int hanyadikora, List<AdminKozpontiOrakRogzitesSelectedModel> list)
{
var searchModel = new AdminKozpontiOrakSearchModel
{
Start = start.ToLocalTime(),
End = end.ToLocalTime(),
HanyadikOra = hanyadikora,
KozpontiOrakList = list
};
return PartialView("UtkozoOrarendiOrak", searchModel);
}
public ActionResult OpenCreateTanoraAdatok(AdminKozpontiOrakRogzitesModel model)
{
var tanoraAdataiModel = TanoraAdatok.MapFromKozpontiOrakRogzitesModel(model);
tanoraAdataiModel.Sorszamozando = true;
return PartialView("CreateTanoraAdatok", tanoraAdataiModel);
}
public ActionResult GetKozpontiOra(int index = 0)
{
var model = new KozpontiOraCalendarModel
{
Index = index
};
return View("KozpontiOra_Tab", model);
}
private List<TabStripItemModel> GetKozpontiOraTabs()
{
return new List<TabStripItemModel>
{
new TabStripItemModel
{
ItemId = "0",
ItemName = KozpontiOrakResource.KozpontiOraKezelese,
Area = "Orarend",
Controller = "AdminKozpontiOrak",
Action = "GetKozpontiOra",
RouteParameters = new Dictionary<string, string> {
{ "index", "0"}
}
}
};
}
}
}

View file

@ -0,0 +1,248 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Extensions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Logic.Naplozas;
using Kreta.BusinessLogic.Logic.Naplozas.Elokeszites;
using Kreta.BusinessLogic.Logic.Naplozas.Validacio;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Exceptions;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
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.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AdminNaploEllenorzesController : BaseNaploTanariOrarendController
{
private readonly IFileServiceHelper fileServiceHelper;
public AdminNaploEllenorzesController(IFileServiceHelper fileServiceHelper)
{
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
}
public ActionResult Index()
{
var model = new TanariOrarendModelKeresheto();
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.IsNemKellNemKotott = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.kotott_munkaido_nevelesseloktatassal_le_nem_kotott_resz_kezelesenek_tiltasa);
var fogadooraMegjelenik = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Fogadoorak_megjelenitese) && !ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue);
model.HetirendJson = orarendHelper.GetHetirendek();
model.NaptariHetekHetirendJson = orarendHelper.GetNaptariHetekHetirendek();
model.TanorakServiceAction = "GetAdminNaploEllenorzesTanorakOrarendiOrak";
model.TanoranKivuliFoglalkozasokServiceAction = "GetAdminNaploEllenorzesTanoranKivuliFoglalkozasok";
model.NemKotottMunkaidoServiceAction = "GetAdminNaploEllenorzesNemKotottMunkaido";
model.FogadoorakServiceAction = "GetAdminNaploEllenorzesFogadoora";
model.TanorakCalendarClickJSFunction = "AdminNaploEllenorzesHelper.TanorakCalendarClickEvent";
model.TanoranKivuliFoglalkozasokCalendarClickJSFunction = "AdminNaploEllenorzesHelper.FoglalkozasokCalendarClickEvent";
model.NemKotottMunkaidoCalendarClickJSFunction = "AdminNaploEllenorzesHelper.NemKotottCalendarClickEvent";
model.FogadooraCalendarClickJSFunction = "AdminNaploEllenorzesHelper.FogadooraCalendarClickEvent";
model.TanoranKivuliFoglalkozasokCalendarSelectJSFunction = model.NemKotottMunkaidoCalendarSelectJSFunction = model.FogadooraCalendarSelectJSFunction = "undefined";
var naplozarasLogic = new NaplozarasLogic(ConnectionTypeExtensions.GetSessionConnectionType());
model.LezartOsztalyokEsOsztalybontottCsoportokIdList = naplozarasLogic.GetLezartOsztalyokEsBontottCsoportjaik();
model.RendkivuliTanitasiNapok = tanevHelper.GetTanevRendkivuliNapok();
model.IsShowRogzitottOrak = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.kotott_munkaido_megjelenitese);
#region Calendar megjelenítés
var co = orarendHelper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin.Subtract(new TimeSpan(0, 15, 0)); // "15 perccel legyen előbb"
model.CalendarMaxTime = co.CalendarMax.Add(new TimeSpan(0, 15, 0)); // "15 perccel legyen később"
model.CsengetesiRendMinTime = new TimeSpan();
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
#endregion Calendar megjelenítés
model.ShowKerdoivPopup = new KerdoivHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetShowKerdoivPopup(ClaimData.IsAlkalmazottPedagogus);
model.TabList = GetTanariOrarendTabs(fogadooraMegjelenik);
ViewBag.nemKotottMunkaidoStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.nemKotottMunkaidoEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_zaroidopontja);
ViewBag.napirendStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.napirendEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja);
ViewBag.fogadooraStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Fogado_Ora_Kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.fogadooraEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Fogado_Ora_Zaroidopontja);
return View("Index", model);
}
public ActionResult AdminNaploEllenorzesEvent(CalendarModel calendarModel)
{
try
{
var tbm = new TanoraIdBeallitasModel() { calendarModel = calendarModel };
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
var tanarSorszamozhat = new SystemSettingsHelper(connectionType).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Ora_sorszamozasat_naplozo_pedagogus_eldontheti);
var elmaradtTanitasiOraRogzitesenekTiltasa = new SystemSettingsHelper(connectionType).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Elmaradt_tanitasi_ora_rogzitesenek_tiltasa);
var naploValidacioParameters = new NaploValidacioParameters(calendarModel.Start, ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.FelhasznaloSzerepkor);
var validator = new NaploValidacio(naploValidacioParameters);
var co = new NaplozasElokeszitesCo();
calendarModel.ConvertTo(co);
var naplozasLogic = new NaplozasElokeszitesLogic(validator, co);
var muveletPram = new TanoraMuveletek(ClaimData.FelhasznaloId, calendarModel);
var model = new TanoraNaplozasTabok();
var pm = new PopUpModel(model, "NaploEllenorzes");
model.TabList = GetDetailTabs(naplozasLogic, tanarSorszamozhat, elmaradtTanitasiOraRogzitesenekTiltasa);
model.TanoraMuveletek = muveletPram;
pm.AddCancelBtn(pm, "AdminNaploEllenorzesHelper.windowCancel");
if ((calendarModel.OraType == Enums.ManualEnums.CalendarOraTypeEnum.TanitasiOra
|| calendarModel.OraType == Enums.ManualEnums.CalendarOraTypeEnum.TanoranKivuliNaplozottFoglalkozas)
&& naplozasLogic.GetModel.IsElmaradtOra)
{
pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = "deleteNaplozas", Text = Resources.OrarendResource.NaplozasiAdatokTorlese, EventName = "AdminNaploEllenorzesHelper.deleteNaplozasConfirm" });
}
if (calendarModel.OraType == Enums.ManualEnums.CalendarOraTypeEnum.OrarendiOra
|| calendarModel.OraType == Enums.ManualEnums.CalendarOraTypeEnum.TanoranKivuliFoglalkozas
|| calendarModel.OraType == Enums.ManualEnums.CalendarOraTypeEnum.TanoranKivuliTevekenyseg)
{
pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = "updateNemMegtartott", Text = Resources.OrarendResource.NemMegtartottOra, EventName = "AdminNaploEllenorzesHelper.updateNemMegtartottConfirm" });
}
return PartialView(Constants.General.PopupView, pm);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
public ActionResult AdminNaploEllenorzesNemKotottMunkaidoEvent(CalendarModel calendarModel)
{
var co = new NaplozasElokeszitesCo();
calendarModel.ConvertTo(co);
var muveletPram = new TanoraMuveletek(ClaimData.FelhasznaloId, calendarModel);
var model = new TanoraNaplozasTabok();
NemKotottMunkaidoHelper helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var coNkm = helper.GetNemKotottMunkaidoById(calendarModel.EventId);
var pm = new PopUpModel(model, "NaploEllenorzes");
model.TabList = new List<TabStripItemModel> {
new TabStripItemModel {
ItemId = "1",
ItemName = "Adatok",
PartialViewName = "NaploEllenorzesNemKotottMunkaido_Tab",
Model = NemKotottMunkaidoLogic.ConvertModelFromCo(coNkm),
IsActive = true
}
};
model.TanoraMuveletek = muveletPram;
pm.AddCancelBtn(pm, "AdminNaploEllenorzesHelper.windowCancel");
return PartialView(Constants.General.PopupView, pm);
}
public ActionResult AdminNaploEllenorzesFogadooraEvent(CalendarModel calendarModel)
{
var fm = new FogadooraModel();
var isModosithatoFogadoora = false;
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var fogadooraCo = helper.GetFogadooraById(calendarModel.EventId);
fm.Id = fogadooraCo.Id;
fm.FogadoOraDatuma = fogadooraCo.FogadoOraKezdete.Date;
fm.FogadoOraKezdete = fogadooraCo.FogadoOraKezdete;
fm.FogadoOraVege = fogadooraCo.FogadoOraVege;
fm.Rendszeresseg = fogadooraCo.Rendszeresseg;
fm.TeremId = fogadooraCo.TeremId;
fm.JelentkezesekKezelese = (int)FogadooraTipusEnum.Jelentkezheto == fogadooraCo.FogadooraTipusEnumId || (int)FogadooraTipusEnum.JelentkezhetoDarabolt == fogadooraCo.FogadooraTipusEnumId;
fm.IsIdosavraOsztas = fogadooraCo.IsIdosavraOsztas;
fm.EgysegnyiIdopontok = fogadooraCo.EgysegnyiIdopontok;
fm.SelectedOsztalyCsoportIdList = fogadooraCo.SelectedOsztalyCsoportIdList;
fm.RendszeresFogadooraElsoDatuma = fogadooraCo.FogadoOraKezdete;
fm.RendszeresFogadooraUtolsoDatuma = fogadooraCo.FogadoOraVege;
fm.IsEgyAlkalomModosul = false;
fm.IsCalendar = true;
fm.IsFaliujsagonMegjelenjen = fogadooraCo.IsFaliujsagonMegjelenjen;
fm.IsRendszeressegModosithato = false;
fm.FaliujsagErvenyessegKezdete = fogadooraCo.FaliujsagErvenyessegKezdete;
fm.FaliujsagErvenyessegVege = fogadooraCo.FaliujsagErvenyessegVege;
fm.TanevUtolsoNapja = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo().UtolsoTanitasiNap;
var jelentkezettGvDs = helper.GetJelentkezettGondviseloCntByFogadooraId(calendarModel.EventId);
if (jelentkezettGvDs.Tables[0].Rows.Count > 0)
{
fm.VanGvJelentkezes = true;
}
if (!isModosithatoFogadoora)
{
fm.TeremNev = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremNev(fogadooraCo.TeremId);
}
var rendszeressegDictionary = EnumExtensions.EnumToDictionary<FogadooraRendszeressegEnum>(ClaimData.SelectedTanevID.Value);
fm.RendszeressegText = rendszeressegDictionary.First(x => x.Key == fogadooraCo.Rendszeresseg.ToString()).Value;
var pm = new PopUpModel(fm, "~/Areas/Orarend/Views/TanariOrarend/Fogadoora_Details.cshtml");
pm.AddCancelBtn(pm, "AdminNaploEllenorzesHelper.windowCancel");
return PartialView(Constants.General.PopupView, pm);
}
private List<TabStripItemModel> GetDetailTabs(NaplozasElokeszitesLogic logic, bool tanarSorszamozhat, bool elmaradtTanitasiOraRogzitesenekTiltasa)
{
List<TabStripItemModel> list = new List<TabStripItemModel>();
var naplozasModel = new TanoraNaplozas(fileServiceHelper);
naplozasModel.Fill(logic.GetModel, tanarSorszamozhat, elmaradtTanitasiOraRogzitesenekTiltasa);
list.Add(new TabStripItemModel()
{
ItemId = "1",
ItemName = StringResourcesUtil.GetString(3804) /*Naplózás*/,
PartialViewName = "NaploEllenorzesMulasztas_Tab",
Model = naplozasModel.Mulasztas,
IsActive = true
});
list.Add(new TabStripItemModel()
{
ItemId = "5",
ItemName = StringResourcesUtil.GetString(1922) /*Tanóra adatai*/,
PartialViewName = "NaploEllenorzesTanora_Tab",
Model = naplozasModel.TanoraAdatai,
IsActive = false
});
return list;
}
}
}

View file

@ -0,0 +1,55 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AdminNemElerhetoOrarendiElemekController : Controller
{
// GET: Orarend/AdminNemElerhetoOrarendiElemek
public ActionResult Index()
{
return View();
}
public ActionResult OpenOrarendiOraInfoPopUp(int orarendiOraId)
{
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
OrarendiOraCO orarendiOraCO = orarendiOraHelper.GetOrarendiOraById(orarendiOraId);
OrarendiOraModel orarendiOraModel = new OrarendiOraModel
{
OraErvenyessegKezdete = orarendiOraCO.OraErvenyessegKezdete,
OraErvenyessegVege = orarendiOraCO.OraErvenyessegVege,
OraErvenyessegKezdeteSzoveg = orarendiOraCO.OraErvenyessegKezdete.ToShortDateString(),
OraErvenyessegVegeSzoveg = orarendiOraCO.OraErvenyessegVege.ToShortDateString(),
HetNapjaSzoveg = orarendiOraCO.HetNapjaNev,
Hetirend = orarendiOraCO.HetirendNev,
FoglalkozasNev = orarendiOraCO.FoglalkozasNev,
OsztalyCsoportNev = orarendiOraCO.OsztalyCsoportNev,
TantargyNev = orarendiOraCO.TantargyNev,
TanarNev = orarendiOraCO.TanarNev,
TeremNev = orarendiOraCO.TeremNev,
OraKezdete = orarendiOraCO.OraKezdete,
OraVege = orarendiOraCO.OraVege,
CsengetesiRendNev = orarendiOraCO.CsengetesiRendNev,
OraKezdeteSzoveg = orarendiOraCO.OraKezdete.ToString("HH:mm"),
OraVegeSzoveg = orarendiOraCO.OraVege.ToString("HH:mm"),
};
var model = new PopUpModel(orarendiOraModel, "Info_PopUp");
model.AddCancelBtn(model, "AdminNemElerhetoOrarendiElemKeresoHelper.orarendiOraInfoCancel");
return PartialView(Constants.General.PopupView, model);
}
}
}

View file

@ -0,0 +1,20 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.Security;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AdminNemNaplozottTanorakController : Controller
{
public ActionResult Index()
{
var model = new NemNaplozottTanorakSearchModel();
return View("Index", model);
}
}
}

View file

@ -0,0 +1,118 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Extensions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.ApiControllers;
using Kreta.Web.Areas.Orarend.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AdminOsztalyOrarendController : BaseAdminOsztalyOrarendController
{
public ActionResult Index()
{
var model = new AdminOsztalyOrarendModel
{
TabList = GetAdminOrarendTabs()
};
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.HetirendJson = orarendHelper.GetHetirendek();
model.NaptariHetekHetirendJson = orarendHelper.GetNaptariHetekHetirendek();
var co = orarendHelper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin.Subtract(new TimeSpan(0, 15, 0)); // "15 perccel legyen előbb"
model.CalendarMaxTime = co.CalendarMax.Add(new TimeSpan(0, 15, 0)); // "15 perccel legyen később"
model.CsengetesiRendMinTime = new TimeSpan();
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSystemConnectionType());
ViewBag.napirendStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.napirendEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja);
model.IsOravegeBeallitasOrahosszAlapjan = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Orarendi_Elem_Hossz);
return View(model);
}
public ActionResult GetOrarendiOrak(int index = 0)
{
return GetOrarendiOrak(index, false);
}
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1)
{
return GetTanoranKivuliFoglalkozasok(index, false);
}
public List<TabStripItemModel> GetAdminOrarendTabs()
{
var list = new List<TabStripItemModel> {
new TabStripItemModel
{
ItemId = "0",
ItemName = AdminisztracioResource.Tanorak,
Area = "Orarend",
Controller = "AdminOsztalyOrarend",
Action = "GetOrarendiOrak",
RouteParameters = new Dictionary<string, string>
{
{ "index", "0" }
}
},
new TabStripItemModel
{
ItemId = "1",
ItemName = AdminisztracioResource.Napirend,
Area = "Orarend",
Controller = "AdminOsztalyOrarend",
Action = "GetTanoranKivuliFoglalkozasok",
RouteParameters = new Dictionary<string, string>
{
{ "index", "1" }
}
}
};
return list;
}
public ActionResult OpenNewOrarendiOraPopUp(OsztalyOrarendModel model)
{
return OpenNewOrarendiOraPopUp(model, false);
}
public ActionResult OpenModifyOrarendiOraPopUp(CalendarModel model)
{
return OpenModifyOrarendiOraPopUp(model, false);
}
public ActionResult OpenNewFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenNewFoglalkozasokOraPopUp(model, false);
}
public ActionResult OpenModifyFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenModifyFoglalkozasokOraPopUp(model, false);
}
}
}

View file

@ -0,0 +1,205 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Extensions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Enums;
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.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AdminTanariOrarendController : BaseAdminTanariOrarendController
{
public ActionResult Index()
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var nemKellNemKotott = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.kotott_munkaido_nevelesseloktatassal_le_nem_kotott_resz_kezelesenek_tiltasa);
var model = new AdminTanariOrarendModel
{
TabList = GetAdminOrarendTabs(nemKellNemKotott)
};
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.HetirendJson = orarendHelper.GetHetirendek();
model.NaptariHetekHetirendJson = orarendHelper.GetNaptariHetekHetirendek();
var co = orarendHelper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin.Subtract(new TimeSpan(0, 15, 0)); // "15 perccel legyen előbb"
model.CalendarMaxTime = co.CalendarMax.Add(new TimeSpan(0, 15, 0)); // "15 perccel legyen később"
model.CsengetesiRendMinTime = new TimeSpan();
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
ViewBag.nemKotottMunkaidoStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.nemKotottMunkaidoEnd = systemSettingsHelper.GetSystemSettingValue<string>(Kreta.Enums.RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_zaroidopontja);
ViewBag.napirendStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.napirendEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja);
model.IsOravegeBeallitasOrahosszAlapjan = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Orarendi_Elem_Hossz);
return View(model);
}
public ActionResult GetOrarendiOrak(int index = 0)
{
return GetOrarendiOrak(index, false);
}
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1)
{
return GetTanoranKivuliFoglalkozasok(index, false);
}
public ActionResult GetNemKotottMunkaido(int index = 2)
{
var model = new TanariOrarendNemKotottMunkaidoModel()
{
Index = index
};
return View("NemKotottMunkaido_Tab", model);
}
public List<TabStripItemModel> GetAdminOrarendTabs(bool nemKellNemKotott)
{
var list = new List<TabStripItemModel> {
new TabStripItemModel
{
ItemId = "0",
ItemName = AdminisztracioResource.Tanorak,
Area = "Orarend",
Controller = "AdminTanariOrarend",
Action = "GetOrarendiOrak",
RouteParameters = new Dictionary<string, string>
{
{ "index", "0" }
}
},
new TabStripItemModel
{
ItemId = "1",
ItemName = AdminisztracioResource.Napirend,
Area = "Orarend",
Controller = "AdminTanariOrarend",
Action = "GetTanoranKivuliFoglalkozasok",
RouteParameters = new Dictionary<string, string>
{
{ "index", "1" }
}
}
};
if (!nemKellNemKotott)
{
list.Add(new TabStripItemModel
{
ItemId = "2",
ItemName = AdminisztracioResource.NemKotottMunkaido,
Area = "Orarend",
Controller = "AdminTanariOrarend",
Action = "GetNemKotottMunkaido",
RouteParameters = new Dictionary<string, string>
{
{ "index", "2" }
}
});
}
return list;
}
public ActionResult OpenNewOrarendiOraPopUp(CalendarModel model)
{
return OpenNewOrarendiOraPopUp(model, false);
}
public ActionResult OpenModifyOrarendiOraPopUp(CalendarModel model)
{
return OpenModifyOrarendiOraPopUp(model, false);
}
public ActionResult OpenNewFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenNewFoglalkozasokOraPopUp(model, false);
}
public ActionResult OpenModifyFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenModifyFoglalkozasokOraPopUp(model, false);
}
public ActionResult OpenNewNemKotottMunkaidoPopUp(CalendarModel model)
{
var nkmm = new NemKotottMunkaidoModel
{
Datum = model.Start.ToLocalTime().Date,
Kezdet = model.Start.ToLocalTime(),
Veg = model.End.ToLocalTime(),
HetirendId = 1554 /*Minden héten*/
};
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(model.Start.Date, null);
var pm = new PopUpModel(nkmm, "NemKotottMunkaido_Bevitel");
pm = pm.AddBtn(pm, "newNemKotottMunkaidoCancel", AdminisztracioResource.Megsem, "NemKotottMunkaido.newNemKotottMunkaidoCancel");
pm = pm.AddBtn(pm, "EgyOraHozzaadasaSave", OrarendResource.AddOneDay, "NemKotottMunkaido.EgyOraHozzaadasaSave");
if (!isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "EttolHettolSave", OrarendResource.AddFrom, "NemKotottMunkaido.EttolHettolSave");
pm = pm.AddBtn(pm, "EddigHetigSave", OrarendResource.AddTo, "NemKotottMunkaido.EddigHetigSave");
pm = pm.AddBtn(pm, "EgeszTanevreSave", OrarendResource.AddAllDay, "NemKotottMunkaido.EgeszTanevreSave");
}
return PartialView(Constants.General.PopupView, pm);
}
public ActionResult OpenModNemKotottMunkaidoPopUp(CalendarModel model)
{
var nkmm = GetModNemKotottMunkaidoModel(model);
var pm = new PopUpModel(nkmm, "NemKotottMunkaido_Bevitel");
pm = pm.AddBtn(pm, "modNemKotottMunkaidoCancel", AdminisztracioResource.Megsem, "NemKotottMunkaido.modNemKotottMunkaidoCancel");
if (!nkmm.isReadonly)
{
pm = pm.AddBtn(pm, "modNemKotottMunkaidoSaveDay", OrarendResource.ModSaveOneDay, "NemKotottMunkaido.modNemKotottMunkaidoSaveDay", true, "pull-left");
pm = pm.AddBtn(pm, "modNemKotottMunkaidosSaveFrom", OrarendResource.ModSaveFrom, "NemKotottMunkaido.modNemKotottMunkaidoSaveFrom", true, "pull-left");
pm = pm.AddBtn(pm, "modNemKotottMunkaidoSaveTo", OrarendResource.ModSaveTo, "NemKotottMunkaido.modNemKotottMunkaidoSaveTo", true, "pull-left");
pm = pm.AddBtn(pm, "modNemKotottMunkaidoSave", OrarendResource.ModAllSave, "NemKotottMunkaido.modNemKotottMunkaidoSave", true, "pull-left");
if (nkmm.TulajId == ClaimData.FelhasznaloId || SzerepkorTipusEnum.Adminisztrator == ClaimData.FelhasznaloSzerepkor)
{
pm = pm.AddBtn(pm, "modNemKotottMunkaidoDeleteDay", OrarendResource.DeleteOneDay, "NemKotottMunkaido.modNemKotottMunkaidoDeleteDayConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modNemKotottMunkaidoDeleteFrom", OrarendResource.DeleteFrom, "NemKotottMunkaido.modNemKotottMunkaidosDeleteFromConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modNemKotottMunkaidosDeleteTo", OrarendResource.DeleteTo, "NemKotottMunkaido.modNemKotottMunkaidoDeleteToConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modNemKotottMunkaidoDelete", OrarendResource.DeleteAll, "NemKotottMunkaido.modNemKotottMunkaidoDeleteConfirmWindow", "pull-left");
}
}
return PartialView(Constants.General.PopupView, pm);
}
private NemKotottMunkaidoModel GetModNemKotottMunkaidoModel(CalendarModel model)
{
NemKotottMunkaidoHelper helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var co = helper.GetNemKotottMunkaidoById(model.EventId);
return NemKotottMunkaidoLogic.ConvertModelFromCo(co);
}
}
}

View file

@ -0,0 +1,124 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Extensions;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.KretaServer.SystemSettings;
using Kreta.Resources;
using Kreta.Web.Areas.Intezmeny.Logic;
using Kreta.Web.Areas.Orarend.ApiControllers;
using Kreta.Web.Areas.Orarend.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)]
public class AdminTeremOrarendController : BaseAdminTeremOrarendController
{
public ActionResult Index()
{
var model = new AdminTeremOrarendModel
{
TabList = GetAdminOrarendTabs()
};
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.HetirendJson = orarendHelper.GetHetirendek();
model.NaptariHetekHetirendJson = orarendHelper.GetNaptariHetekHetirendek();
var co = orarendHelper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin.Subtract(new TimeSpan(0, 15, 0)); // "15 perccel legyen előbb"
model.CalendarMaxTime = co.CalendarMax.Add(new TimeSpan(0, 15, 0)); // "15 perccel legyen később"
model.CsengetesiRendMinTime = new TimeSpan();
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSystemConnectionType());
ViewBag.napirendStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.napirendEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja);
model.IsOravegeBeallitasOrahosszAlapjan = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Orarendi_Elem_Hossz);
return View(model);
}
public ActionResult GetOrarendiOrak(int index = 0)
{
return GetOrarendiOrak(index, false);
}
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1)
{
return GetTanoranKivuliFoglalkozasok(index, false);
}
public List<TabStripItemModel> GetAdminOrarendTabs()
{
var list = new List<TabStripItemModel> {
new TabStripItemModel
{
ItemId = "0",
ItemName = AdminisztracioResource.Tanorak,
Area = "Orarend",
Controller = "AdminOsztalyOrarend",
Action = "GetOrarendiOrak",
RouteParameters = new Dictionary<string, string>
{
{ "index", "0" }
}
},
new TabStripItemModel
{
ItemId = "1",
ItemName = AdminisztracioResource.Napirend,
Area = "Orarend",
Controller = "AdminOsztalyOrarend",
Action = "GetTanoranKivuliFoglalkozasok",
RouteParameters = new Dictionary<string, string>
{
{ "index", "1" }
}
}
};
return list;
}
public ActionResult OpenNewOrarendiOraPopUp(OsztalyOrarendModel model)
{
return OpenNewOrarendiOraPopUp(model, false);
}
public ActionResult OpenModifyOrarendiOraPopUp(CalendarModel model)
{
return OpenModifyOrarendiOraPopUp(model, false);
}
public ActionResult OpenNewFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenNewFoglalkozasokOraPopUp(model, false);
}
public ActionResult OpenModifyFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenModifyFoglalkozasokOraPopUp(model, false);
}
}
}

View file

@ -0,0 +1,414 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.KretaServer.SystemSettings;
using Kreta.Resources;
using Kreta.Web.Areas.Intezmeny.Logic;
using Kreta.Web.Areas.Orarend.ApiControllers;
using Kreta.Web.Areas.Orarend.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
public class BaseAdminOsztalyOrarendController : Controller
{
[NonAction]
public ActionResult GetOrarendiOrak(int index = 0, bool isFromSzervezet = false)
{
var model = new OrarendiOrakModel
{
Index = index,
IsFromSzervezet = isFromSzervezet
};
return View("OrarendiOrak_Tab", model);
}
[NonAction]
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1, bool isFromSzervezet = false)
{
var model = new TanariOrarendTanoranKivuliFoglalkozasokModel()
{
Index = index,
IsFromSzervezet = isFromSzervezet
};
return View("TanoranKivuliFoglalkozasok_Tab", model);
}
[NonAction]
public ActionResult OpenNewOrarendiOraPopUp(OsztalyOrarendModel model, bool isFromSzervezet = false)
{
var ocsHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isMentor = ocsHelper.IsMentorCsoport(model.OsztalyId);
if (model.CalendarModel.OraType == CalendarOraTypeEnum.UresOra)
{
var ds = ocsHelper.GetOsztalyCsoportokWithGroup();
var csoportTipusEnum = (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_;
foreach (DataRow dr in ds.Tables[0].Rows)
{
if (int.Parse(dr["ID"].ToString()) == model.OsztalyId && !string.IsNullOrWhiteSpace(SDAConvert.ToString(dr["CsoportTipusa"])))
{
csoportTipusEnum = int.Parse(dr["CsoportTipusa"].ToString());
}
}
var csoportTipus = new AdatszotarHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportTipusList().SingleOrDefault(x => x.Id == csoportTipusEnum);
var isOrarendiElemHosszAlapjan = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Orarendi_Elem_Hossz);
if (csoportTipus != null && csoportTipus.OraPerc.HasValue && (isOrarendiElemHosszAlapjan || isFromSzervezet || isMentor))
{
model.CalendarModel.End = model.CalendarModel.Start.AddMinutes(csoportTipus.OraPerc.Value);
}
}
var oom = GetNewOrarendiOraModel(model.CalendarModel, false, isFromSzervezet, isMentor: isMentor);
oom.TTFModel.OsztalyID = model.OsztalyId;
if (isMentor)
{
oom.TTFModel.TanarID = ocsHelper.GetCsoportByCsoportId(model.OsztalyId).CsoportvezetoId;
}
var list = new List<TabStripItemModel> { new TabStripItemModel { ItemId = "1", ItemName = OrarendResource.TanoraAdatai, Model = oom, PartialViewName = "TanoraAdatok_Bevitel_Osztaly", IsActive = true } };
if (!isFromSzervezet)
{
list.Add(new TabStripItemModel { ItemId = "2", ItemName = TantargyResource.TabSpecialisAdatok, Model = oom, PartialViewName = "SpecialisAdatok_Bevitel" });
}
oom.OrarendiOraTabList = list;
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(model.CalendarModel.Start.Date, model.OsztalyId);
var pm = new PopUpModel(oom, "OrarendiOra_Bevitel");
pm = pm.AddBtn(pm, "newOrarendiOraCancel", AdminisztracioResource.Megsem, "OrarendiOrak.newOrarendiOraCancel");
pm = pm.AddBtn(pm, "EgyOraHozzaadasaSave", OrarendResource.AddOneDay, "OrarendiOrak.EgyOraHozzaadasaSave");
if (isFromSzervezet || !isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "OrarendhezSave", OrarendResource.AddAllDay, "OrarendiOrak.OrarendhezSave");
}
if (!isDateHasTanevrend && !isFromSzervezet)
{
pm = pm.AddBtn(pm, "EttolHettolSave", OrarendResource.AddFrom, "OrarendiOrak.EttolHettolSave");
pm = pm.AddBtn(pm, "EddigHetigSave", OrarendResource.AddTo, "OrarendiOrak.EddigHetigSave");
}
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
public ActionResult OpenModifyOrarendiOraPopUp(CalendarModel model, bool isFromSzervezet = false)
{
var oom = GetModifyOrarendiOraModel(model, false, isFromSzervezet);
var isEgyOra = oom.OraErvenyessegKezdete.Value.Date == oom.OraErvenyessegVege.Value.Date;
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(oom.ErvenyessegiIdo.Date, oom.OsztalyCsoportId);
var pm = new PopUpModel(oom, "OrarendiOra_Mod_Bevitel");
pm = pm.AddBtn(pm, "modCancel", AdminisztracioResource.Megsem, "OrarendiOrak.modCancel");
pm = pm.AddBtn(pm, "tovabbiOrarendiOraFelvetele", OrarendResource.AddAgain, "OrarendiOrak.tovabbiOrarendiOraFelvetele");
if (!isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "modOrarendiOraDeleteDay", OrarendResource.DeleteOneDay, "OrarendiOrak.modOrarendiOraDeleteDayConfirmWindow", "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modOrarendiOraDeleteFrom", OrarendResource.DeleteFrom, "OrarendiOrak.modOrarendiOraDeleteFromConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modOrarendiOraDeleteTo", OrarendResource.DeleteTo, "OrarendiOrak.modOrarendiOraDeleteToConfirmWindow", "pull-left");
}
pm = pm.AddBtn(pm, "modOrarendiOraDelete", OrarendResource.DeleteAll, "OrarendiOrak.modOrarendiOraDeleteConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modOrarendiOraSaveDay", OrarendResource.ModSaveOneDay, "OrarendiOrak.modOrarendiOraSaveDay", secondLine: true, "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modOrarendiOraSaveFrom", OrarendResource.ModSaveFrom, "OrarendiOrak.modOrarendiOraSaveFrom", secondLine: true, "pull-left");
pm = pm.AddBtn(pm, "modOrarendiOraSaveTo", OrarendResource.ModSaveTo, "OrarendiOrak.modOrarendiOraSaveTo", secondLine: true, "pull-left");
}
pm = pm.AddBtn(pm, "modOrarendiOraSave", OrarendResource.ModAllSave, "OrarendiOrak.modOrarendiOraSaveTanev", secondLine: true, "pull-left");
}
else
{
//Bármikor lehessen egy órát törölni
pm = pm.AddBtn(pm, "modOrarendiOraDeleteDay", OrarendResource.DeleteOneDay, "OrarendiOrak.modOrarendiOraDeleteDayConfirmWindow", "pull-left");
if (isEgyOra)
{
pm = pm.AddBtn(pm, "modOrarendiOraSaveDay", OrarendResource.ModSaveOneDay, "OrarendiOrak.modOrarendiOraSaveDay", "pull-left");
}
}
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
public ActionResult OpenNewFoglalkozasokOraPopUp(CalendarModel model, bool isFromSzervezet = false, bool isMentor = false)
{
var oom = GetNewOrarendiOraModel(model, true, isFromSzervezet, isMentor: isMentor);
var list = new List<TabStripItemModel> { new TabStripItemModel { ItemId = "1", ItemName = OrarendResource.TanoraAdatai, Model = oom, PartialViewName = "TanoraAdatok_Bevitel_Osztaly", IsActive = true } };
if (!isFromSzervezet)
{
list.Add(new TabStripItemModel { ItemId = "2", ItemName = TantargyResource.TabSpecialisAdatok, Model = oom, PartialViewName = "SpecialisAdatok_Bevitel" });
}
oom.OrarendiOraTabList = list;
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = helper.HasTanevRendjeEsemeny(oom.ErvenyessegiIdo.Date, oom.OsztalyCsoportId);
var pm = new PopUpModel(oom, "OrarendiOra_Bevitel");
pm = pm.AddBtn(pm, "newOrarendiOraCancel", AdminisztracioResource.Megsem, "Foglalkozasok.newFoglalkozasCancel");
pm = pm.AddBtn(pm, "EgyOraHozzaadasaSave", OrarendResource.AddOneDay, "Foglalkozasok.EgyOraHozzaadasaSave");
if (!isDateHasTanevrend && !isFromSzervezet)
{
pm = pm.AddBtn(pm, "EttolHettolSave", OrarendResource.AddFrom, "Foglalkozasok.EttolHettolSave");
pm = pm.AddBtn(pm, "EddigHetigSave", OrarendResource.AddTo, "Foglalkozasok.EddigHetigSave");
}
if (isFromSzervezet || !isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "OrarendhezSave", OrarendResource.AddAllDay, "Foglalkozasok.OrarendhezSave");
}
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
public ActionResult OpenModifyFoglalkozasokOraPopUp(CalendarModel model, bool isFromSzervezet = false)
{
var oom = GetModifyOrarendiOraModel(model, true, isFromSzervezet);
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(oom.ErvenyessegiIdo.Date, oom.OsztalyCsoportId);
var pm = new PopUpModel(oom, "OrarendiOra_Mod_Bevitel");
pm = pm.AddBtn(pm, "modFoglalkozasCancel", AdminisztracioResource.Megsem, "Foglalkozasok.modFoglalkozasCancel");
pm = pm.AddBtn(pm, "tovabbiFoglalkozasFelvetele", OrarendResource.AddAgain, "Foglalkozasok.tovabbiFoglalkozasFelvetele");
if (!isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "modFoglalkozasDeleteDay", OrarendResource.DeleteOneDay, "Foglalkozasok.modFoglalkozasDeleteDayConfirmWindow", "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modFoglalkozasDeleteFrom", OrarendResource.DeleteFrom, "Foglalkozasok.modFoglalkozasDeleteFromConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modFoglalkozasDeleteTo", OrarendResource.DeleteTo, "Foglalkozasok.modFoglalkozasDeleteToConfirmWindow", "pull-left");
}
pm = pm.AddBtn(pm, "modFoglalkozasDelete", OrarendResource.DeleteAll, "Foglalkozasok.modFoglalkozasDeleteConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modFoglalkozasSaveDay", OrarendResource.ModSaveOneDay, "Foglalkozasok.modFoglalkozasSaveDay", secondLine: true, "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modFoglalkozasSaveFrom", OrarendResource.ModSaveFrom, "Foglalkozasok.modFoglalkozasSaveFrom", secondLine: true, "pull-left");
pm = pm.AddBtn(pm, "modFoglalkozasSaveTo", OrarendResource.ModSaveTo, "Foglalkozasok.modFoglalkozasSaveTo", secondLine: true, "pull-left");
}
pm = pm.AddBtn(pm, "modFoglalkozasSave", OrarendResource.ModAllSave, "Foglalkozasok.modFoglalkozasSaveTanev", secondLine: true, "pull-left");
}
else
{
pm = pm.AddBtn(pm, "modFoglalkozasDeleteDay", OrarendResource.DeleteOneDay, "Foglalkozasok.modFoglalkozasDeleteDayConfirmWindow", "pull-left");
}
return PartialView(Constants.General.PopupView, pm);
}
public string GetOrarendiOraWindowTitle(CalendarModel model)
{
var oom = new OrarendiOraModel
{
ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate], model.Start)
};
OrarendiOraLogic.SetHetNapja(oom, model.Start.ToLocalTime().DayOfWeek);
var api = new AdminTanariOrarendApiController();
int oraszam = api.GetOraszam(model.EventId, model.OraType);
return string.Format(" [{0} - {1}: {2}. óra]", oom.ErvenyessegiIdoSzoveg, oom.HetNapjaSzoveg, oraszam);
}
public string GetFoglalkozasWindowTitle(CalendarModel model)
{
var oom = new OrarendiOraModel
{
ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate], model.Start)
};
OrarendiOraLogic.SetHetNapja(oom, model.Start.ToLocalTime().DayOfWeek);
return string.Format(" [{0} - {1}]", oom.ErvenyessegiIdoSzoveg, oom.HetNapjaSzoveg);
}
private OrarendiOraModel GetNewOrarendiOraModel(CalendarModel model, bool isTanoranKivuliFoglalkozas, bool isFromSzervezet = false, bool isMentor = false)
{
var oom = new OrarendiOraModel
{
IsTanoranKivuliFoglalkozas = isTanoranKivuliFoglalkozas,
OraKezdete = model.Start.ToLocalTime(),
OraVege = model.End.ToLocalTime(),
Sorszamozando = true,
ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate], model.Start.ToLocalTime()),
ErvenyessegiIdo = model.Start.ToLocalTime(),
OraErvenyessegKezdete = model.Start,
ValasztottDatum = model.Start,
OraErvenyessegVege = !isFromSzervezet ? model.End : (DateTime?)null,
CsengetesiRendOraID = model.EventId,
HetirendID = (int)HetiRendTipusEnum.MindegyikHet,
Hetirend = HetiRendTipusEnum.MindegyikHet.GetDisplayName(ClaimData.SelectedTanevID.Value)
};
if (!isTanoranKivuliFoglalkozas)
{
OrarendiOraLogic.SetCsengetesiRendAndOraszam(oom);
}
oom.OrarendiElemekRogzitesenekElofeltetele = SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.orarendi_elemek_rogzitesenek_elofeltetele, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value);
OrarendiOraLogic.SetHetNapja(oom, oom.ErvenyessegiIdo.DayOfWeek);
oom.HetirendList = OrarendiOraLogic.GetAktualHetirendList();
oom.IsEgyediNap = isFromSzervezet ? TanevRendjeLogic.IsEgyediNapByDate(model.Start.Date) : !isFromSzervezet;
oom.IsFromSzervezet = isFromSzervezet;
oom.IsMentorOra = isMentor;
return oom;
}
private OrarendiOraModel GetModifyOrarendiOraModel(CalendarModel model, bool isTanoranKivuliFoglalkozas, bool isFromSzervezet = false)
{
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = null
};
var ooco = orarendiOraHelper.GetOrarendiOraById(model.EventId);
var tanarId = orarendiOraHelper.GetTanarIdByOrarendiOra(model.EventId);
var tfco = new TantargyFelosztasCO
{
OsztalyCsoportID = ooco.OsztalyCsoportId.Value,
TantargyID = ooco.TantargyId.Value
};
var oom = ConvertCoToModel(ooco, tanarId, tfco);
oom.IsTanoranKivuliFoglalkozas = isTanoranKivuliFoglalkozas;
oom.IsModification = true;
oom.ModificationDate = model.Start;
oom.ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDateAndTime], oom.OraErvenyessegKezdete.Value);
oom.OrarendiOraTabList = OrarendiOraLogic.GetModOrarendiOraTabs(oom, AdminOrarendTipusEnum.Osztaly.ToString(), isFromSzervezet);
oom.OraKezdete = ooco.OraKezdete;
oom.OraVege = ooco.OraVege;
oom.ErvenyessegiIdo = model.Start;
var api = new AdminTanariOrarendApiController();
oom.HetirendList = api.GetHetirendList();
oom.OsztalyCsoportId = ooco.OsztalyCsoportId;
oom.IsEgyediNap = isFromSzervezet ? TanevRendjeLogic.IsEgyediNapByDate(model.Start.Date) : !isFromSzervezet;
oom.IsFromSzervezet = isFromSzervezet;
oom.OrarendiElemekRogzitesenekElofeltetele = SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.orarendi_elemek_rogzitesenek_elofeltetele, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value);
return oom;
}
private OrarendiOraModel ConvertCoToModel(OrarendiOraCO ooco, int tanarId, TantargyFelosztasCO tfco)
{
var model = new OrarendiOraModel
{
ID = ooco.ID,
CsengetesiRendOraID = ooco.CsengetesiRendOraID,
CsengetesiRendID = ooco.CsengetesiRendID,
HetirendID = ooco.Hetirend,
Hetirend = ooco.Hetirend > 0 ? ooco.Hetirend.GetDisplayName<HetiRendTipusEnum>(ClaimData.SelectedTanevID.Value) : string.Empty,
TeremID = ooco.TeremID,
OraErvenyessegKezdete = ooco.OraErvenyessegKezdete,
OraErvenyessegVege = ooco.OraErvenyessegVege,
Oraszam = ooco.Oraszam,
Bontott = ooco.Bontott,
Differencialt = ooco.Differencialt,
Drama = ooco.Drama,
HetNapja = ooco.HetNapja,
IKTTanora = ooco.IKTTanora,
IPRTanora = ooco.IPRTanora,
Kooperativ = ooco.Kooperativ,
Meres = ooco.Meres,
MindennaposTestneveles = ooco.MindennaposTestneveles,
NemSzakrendszeruOra = ooco.NemSzakrendszeruOra,
NemzetisegiOra = ooco.NemzetisegiOra,
IsFelnottoktatasiSzerzodes = ooco.IsFelnottoktatasiSzerzodes,
OnlineOra = ooco.OnlineOra,
ParhuzamosOra = ooco.ParhuzamosOra,
Sorszamozando = ooco.Sorszamozando,
TAMOPOra = ooco.TAMOPOra,
KIPOra = ooco.KIPOra,
VEKOP73317 = ooco.VEKOP73317,
KAPOra = ooco.KAPOra,
Tiop = ooco.Tiop,
Tulora = ooco.Tulora,
IsModification = ooco.IsModification,
HetNapjaSzoveg = ooco.HetNapja.GetDisplayName<HetNapjaTipusEnum>(ClaimData.SelectedTanevID.Value),
Multikulturalis = ooco.Multikulturalis,
EFOP32317 = ooco.EFOP32317,
KomplexOra = ooco.KomplexOra,
GINOP623 = ooco.GINOP623,
EFOP31716EselyteremtesAKoznevelesben = ooco.EFOP31716EselyteremtesAKoznevelesben,
EFOP33717 = ooco.EFOP33717,
TIOP11112120120001 = ooco.TIOP11112120120001,
DFHT = ooco.DFHT,
Rahangolodas = ooco.Rahangolodas,
Testmozgas = ooco.Testmozgas,
Muveszet = ooco.Muveszet,
Eletgyakorlat = ooco.Eletgyakorlat,
Logika = ooco.Logika,
TeOrad = ooco.TeOrad,
DigitalisAlapProgram = ooco.DigitalisAlapProgram,
EFOP23517201700038Miapalya = ooco.EFOP23517201700038Miapalya,
TanevTananyaganakIsmetlese = ooco.TanevTananyaganakIsmetlese,
TanevTananyaganakKiegeszitese = ooco.TanevTananyaganakKiegeszitese,
TanulokDigitalisKeszsegfejlesztese = ooco.TanulokDigitalisKeszsegfejlesztese,
Projektmunka = ooco.Projektmunka,
TanulokKompenzaciosIraskeszsegFejlesztese = ooco.TanulokKompenzaciosIraskeszsegFejlesztese,
TanulokKompenzaciosOlvasasiKepessegFejlesztese = ooco.TanulokKompenzaciosOlvasasiKepessegFejlesztese,
TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese = ooco.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese,
TanulokNyelviKepessegenekKompenzaciosFejlesztese = ooco.TanulokNyelviKepessegenekKompenzaciosFejlesztese,
TanulokOnmegismeresenekSegitese = ooco.TanulokOnmegismeresenekSegitese,
TanulokOnallosagraNevelese = ooco.TanulokOnallosagraNevelese,
TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese = ooco.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese,
TanulokOrientaciosTamogatasa = ooco.TanulokOrientaciosTamogatasa,
TanulokSzocialitasanakFejlesztese = ooco.TanulokSzocialitasanakFejlesztese,
TanulokTovabbhaladasatElokeszitoTevekenysegek = ooco.TanulokTovabbhaladasatElokeszitoTevekenysegek,
PedagogusAltalJelzettEgyeniEsetkezeles = ooco.PedagogusAltalJelzettEgyeniEsetkezeles,
ProjektmunkaTamogatasa = ooco.ProjektmunkaTamogatasa,
DigitalisKeszsegfejlesztes = ooco.DigitalisKeszsegfejlesztes,
KozossegiMunkaTamogatasa = ooco.KozossegiMunkaTamogatasa,
TanoraElokeszitesenekTamogatasa = ooco.TanoraElokeszitesenekTamogatasa,
TanoraLebonyolitasanakTamogatasa = ooco.TanoraLebonyolitasanakTamogatasa,
NapkozisTevekenysegKeretebenEgyeniFejlesztes = ooco.NapkozisTevekenysegKeretebenEgyeniFejlesztes,
IsEgybefuggoGyakorlat = ooco.IsEgybefuggoGyakorlat,
TTFModel = new TTFModel
{
FoglalkozasID = ooco.FoglalkozasID,
TanarID = tanarId,
Oraszam = (int)tfco.Oraszam,
OsztalyID = tfco.OsztalyCsoportID,
TantargyID = tfco.TantargyID,
Nev = !string.IsNullOrWhiteSpace(tfco.Nev) ? tfco.Nev : string.Empty
},
};
return model;
}
}
}

View file

@ -0,0 +1,395 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.KretaServer.SystemSettings;
using Kreta.Resources;
using Kreta.Web.Areas.Intezmeny.Logic;
using Kreta.Web.Areas.Orarend.ApiControllers;
using Kreta.Web.Areas.Orarend.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
public class BaseAdminTanariOrarendController : Controller
{
[NonAction]
public ActionResult GetOrarendiOrak(int index = 0, bool isFromSzervezet = false)
{
var model = new OrarendiOrakModel
{
Index = index,
IsFromSzervezet = isFromSzervezet
};
return View("OrarendiOrak_Tab", model);
}
[NonAction]
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1, bool isFromSzervezet = false)
{
var model = new TanariOrarendTanoranKivuliFoglalkozasokModel()
{
Index = index,
IsFromSzervezet = isFromSzervezet
};
return View("TanoranKivuliFoglalkozasok_Tab", model);
}
[NonAction]
public ActionResult OpenNewOrarendiOraPopUp(CalendarModel model, bool isFromSzervezet = false)
{
var oom = GetNewOrarendiOraModel(model, false, isFromSzervezet: isFromSzervezet);
var list = new List<TabStripItemModel>();
list.Add(new TabStripItemModel() { ItemId = "1", ItemName = OrarendResource.TanoraAdatai, Model = oom, PartialViewName = "TanoraAdatok_Bevitel_Tanari", IsActive = true });
if (!isFromSzervezet)
{
list.Add(new TabStripItemModel() { ItemId = "2", ItemName = TantargyResource.TabSpecialisAdatok, Model = oom, PartialViewName = "SpecialisAdatok_Bevitel" });
}
oom.OrarendiOraTabList = list;
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(model.Start.Date, null);
var pm = new PopUpModel(oom, "OrarendiOra_Bevitel");
pm = pm.AddBtn(pm, "newOrarendiOraCancel", AdminisztracioResource.Megsem, "OrarendiOrak.newOrarendiOraCancel");
pm = pm.AddBtn(pm, "EgyOraHozzaadasaSave", OrarendResource.AddOneDay, "OrarendiOrak.EgyOraHozzaadasaSave");
if (isFromSzervezet || !isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "OrarendhezSave", OrarendResource.AddAllDay, "OrarendiOrak.OrarendhezSave");
}
if (!isDateHasTanevrend && !isFromSzervezet)
{
pm = pm.AddBtn(pm, "EttolHettolSave", OrarendResource.AddFrom, "OrarendiOrak.EttolHettolSave");
pm = pm.AddBtn(pm, "EddigHetigSave", OrarendResource.AddTo, "OrarendiOrak.EddigHetigSave");
}
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
public ActionResult OpenModifyOrarendiOraPopUp(CalendarModel model, bool isFromSzervezet = false)
{
var oom = GetModifyOrarendiOraModel(model, false, isFromSzervezet: isFromSzervezet);
var isEgyOra = false;
if (oom.OraErvenyessegKezdete.Value.Date == oom.OraErvenyessegVege.Value.Date)
isEgyOra = true;
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(model.Start.Date, null);
var pm = new PopUpModel(oom, "OrarendiOra_Mod_Bevitel");
pm = pm.AddBtn(pm, "modCancel", AdminisztracioResource.Megsem, "OrarendiOrak.modCancel");
pm = pm.AddBtn(pm, "tovabbiOrarendiOraFelvetele", OrarendResource.AddAgain, "OrarendiOrak.tovabbiOrarendiOraFelvetele");
if (!isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "modOrarendiOraDeleteDay", OrarendResource.DeleteOneDay, "OrarendiOrak.modOrarendiOraDeleteDayConfirmWindow", "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modOrarendiOraDeleteFrom", OrarendResource.DeleteFrom, "OrarendiOrak.modOrarendiOraDeleteFromConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modOrarendiOraDeleteTo", OrarendResource.DeleteTo, "OrarendiOrak.modOrarendiOraDeleteToConfirmWindow", "pull-left");
}
pm = pm.AddBtn(pm, "modOrarendiOraDelete", OrarendResource.DeleteAll, "OrarendiOrak.modOrarendiOraDeleteConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modOrarendiOraSaveDay", OrarendResource.ModSaveOneDay, "OrarendiOrak.modOrarendiOraSaveDay", secondLine: true, "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modOrarendiOraSaveFrom", OrarendResource.ModSaveFrom, "OrarendiOrak.modOrarendiOraSaveFrom", secondLine: true, "pull-left");
pm = pm.AddBtn(pm, "modOrarendiOraSaveTo", OrarendResource.ModSaveTo, "OrarendiOrak.modOrarendiOraSaveTo", secondLine: true, "pull-left");
}
pm = pm.AddBtn(pm, "modOrarendiOraSave", OrarendResource.ModAllSave, "OrarendiOrak.modOrarendiOraSaveTanev", secondLine: true, "pull-left");
}
else
{
//Bármikor lehessen egy órát törölni
pm = pm.AddBtn(pm, "modOrarendiOraDeleteDay", OrarendResource.DeleteOneDay, "OrarendiOrak.modOrarendiOraDeleteDayConfirmWindow", "pull-left");
if (isEgyOra)
{
pm = pm.AddBtn(pm, "modOrarendiOraSaveDay", OrarendResource.ModSaveOneDay, "OrarendiOrak.modOrarendiOraSaveDay", "pull-left");
}
}
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
public ActionResult OpenNewFoglalkozasokOraPopUp(CalendarModel model, bool isFromSzervezet = false)
{
var oom = GetNewOrarendiOraModel(model, true, isFromSzervezet);
var list = new List<TabStripItemModel>();
list.Add(new TabStripItemModel() { ItemId = "1", ItemName = OrarendResource.TanoraAdatai, Model = oom, PartialViewName = "TanoraAdatok_Bevitel_Tanari", IsActive = true });
if (!isFromSzervezet)
{
list.Add(new TabStripItemModel() { ItemId = "2", ItemName = TantargyResource.TabSpecialisAdatok, Model = oom, PartialViewName = "SpecialisAdatok_Bevitel" });
}
oom.OrarendiOraTabList = list;
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = helper.HasTanevRendjeEsemeny(model.Start.Date, null);
var pm = new PopUpModel(oom, "OrarendiOra_Bevitel");
pm = pm.AddBtn(pm, "newOrarendiOraCancel", AdminisztracioResource.Megsem, "Foglalkozasok.newFoglalkozasCancel");
pm = pm.AddBtn(pm, "EgyOraHozzaadasaSave", OrarendResource.AddOneDay, "Foglalkozasok.EgyOraHozzaadasaSave");
if (!isDateHasTanevrend && !isFromSzervezet)
{
pm = pm.AddBtn(pm, "EttolHettolSave", OrarendResource.AddFrom, "Foglalkozasok.EttolHettolSave");
pm = pm.AddBtn(pm, "EddigHetigSave", OrarendResource.AddTo, "Foglalkozasok.EddigHetigSave");
}
if (isFromSzervezet || !isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "OrarendhezSave", OrarendResource.AddAllDay, "Foglalkozasok.OrarendhezSave");
}
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
public ActionResult OpenModifyFoglalkozasokOraPopUp(CalendarModel model, bool isFromSzervezet = false)
{
var oom = GetModifyOrarendiOraModel(model, true, isFromSzervezet: isFromSzervezet);
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(model.Start.Date, null);
var pm = new PopUpModel(oom, "OrarendiOra_Mod_Bevitel");
pm = pm.AddBtn(pm, "modFoglalkozasCancel", AdminisztracioResource.Megsem, "Foglalkozasok.modFoglalkozasCancel");
if (model.HelyettesitoId == null)
{
pm = pm.AddBtn(pm, "tovabbiFoglalkozasFelvetele", OrarendResource.AddAgain, "Foglalkozasok.tovabbiFoglalkozasFelvetele");
if (!isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "modFoglalkozasDeleteDay", OrarendResource.DeleteOneDay, "Foglalkozasok.modFoglalkozasDeleteDayConfirmWindow", "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modFoglalkozasDeleteFrom", OrarendResource.DeleteFrom, "Foglalkozasok.modFoglalkozasDeleteFromConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modFoglalkozasDeleteTo", OrarendResource.DeleteTo, "Foglalkozasok.modFoglalkozasDeleteToConfirmWindow", "pull-left");
}
pm = pm.AddBtn(pm, "modFoglalkozasDelete", OrarendResource.DeleteAll, "Foglalkozasok.modFoglalkozasDeleteConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modFoglalkozasSaveDay", OrarendResource.ModSaveOneDay, "Foglalkozasok.modFoglalkozasSaveDay", secondLine: true, "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modFoglalkozasSaveFrom", OrarendResource.ModSaveFrom, "Foglalkozasok.modFoglalkozasSaveFrom", secondLine: true, "pull-left");
pm = pm.AddBtn(pm, "modFoglalkozasSaveTo", OrarendResource.ModSaveTo, "Foglalkozasok.modFoglalkozasSaveTo", secondLine: true, "pull-left");
}
pm = pm.AddBtn(pm, "modFoglalkozasSave", OrarendResource.ModAllSave, "Foglalkozasok.modFoglalkozasSaveTanev", secondLine: true, "pull-left");
}
else
{
pm = pm.AddBtn(pm, "modFoglalkozasDeleteDay", OrarendResource.DeleteOneDay, "Foglalkozasok.modFoglalkozasDeleteDayConfirmWindow", "pull-left");
}
}
return PartialView(Constants.General.PopupView, pm);
}
private OrarendiOraModel GetNewOrarendiOraModel(CalendarModel model, bool isTanoranKivuliFoglalkozas, bool isFromSzervezet = false)
{
var oom = new OrarendiOraModel
{
IsTanoranKivuliFoglalkozas = isTanoranKivuliFoglalkozas,
OraKezdete = model.Start.ToLocalTime(),
OraVege = model.End.ToLocalTime(),
Sorszamozando = true,
ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate], model.Start.ToLocalTime()),
ErvenyessegiIdo = model.Start.ToLocalTime(),
OraErvenyessegKezdete = model.Start,
ValasztottDatum = model.Start,
OraErvenyessegVege = !isFromSzervezet ? model.End : (DateTime?)null,
CsengetesiRendOraID = model.EventId,
HetirendID = (int)HetiRendTipusEnum.MindegyikHet,
Hetirend = HetiRendTipusEnum.MindegyikHet.GetDisplayName(ClaimData.SelectedTanevID.Value)
};
if (!isTanoranKivuliFoglalkozas)
{
OrarendiOraLogic.SetCsengetesiRendAndOraszam(oom);
}
oom.OrarendiElemekRogzitesenekElofeltetele = SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.orarendi_elemek_rogzitesenek_elofeltetele, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value);
OrarendiOraLogic.SetHetNapja(oom, oom.ErvenyessegiIdo.DayOfWeek);
oom.HetirendList = OrarendiOraLogic.GetAktualHetirendList();
oom.IsEgyediNap = isFromSzervezet ? TanevRendjeLogic.IsEgyediNapByDate(model.Start.Date) : !isFromSzervezet;
oom.IsFromSzervezet = isFromSzervezet;
return oom;
}
private OrarendiOraModel GetModifyOrarendiOraModel(CalendarModel model, bool isTanoranKivuliFoglalkozas, bool isFromSzervezet = false)
{
OrarendiOraCO ooco;
TantargyFelosztasCO tfco;
int tanarId;
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
orarendiOraHelper.GridParameters = null;
ooco = orarendiOraHelper.GetOrarendiOraById(model.EventId);
tanarId = orarendiOraHelper.GetTanarIdByOrarendiOra(model.EventId);
tfco = new TantargyFelosztasCO
{
OsztalyCsoportID = ooco.OsztalyCsoportId.Value,
TantargyID = ooco.TantargyId.Value
};
var oom = ConvertCoToModel(ooco, tanarId, tfco);
oom.IsTanoranKivuliFoglalkozas = isTanoranKivuliFoglalkozas;
oom.IsModification = true;
oom.ModificationDate = model.Start;
oom.ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDateAndTime], oom.OraErvenyessegKezdete.Value);
oom.OrarendiOraTabList = OrarendiOraLogic.GetModOrarendiOraTabs(oom, AdminOrarendTipusEnum.Tanari.ToString(), isFromSzervezet);
oom.OraKezdete = ooco.OraKezdete;
oom.OraVege = ooco.OraVege;
oom.ErvenyessegiIdo = model.Start;
var api = new AdminTanariOrarendApiController();
oom.HetirendList = api.GetHetirendList();
oom.IsEgyediNap = isFromSzervezet ? TanevRendjeLogic.IsEgyediNapByDate(model.Start.Date) : !isFromSzervezet;
oom.IsFromSzervezet = isFromSzervezet;
oom.OrarendiElemekRogzitesenekElofeltetele = SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.orarendi_elemek_rogzitesenek_elofeltetele, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value);
return oom;
}
private OrarendiOraModel ConvertCoToModel(OrarendiOraCO ooco, int tanarId, TantargyFelosztasCO tfco)
{
var model = new OrarendiOraModel
{
ID = ooco.ID,
CsengetesiRendOraID = ooco.CsengetesiRendOraID,
CsengetesiRendID = ooco.CsengetesiRendID,
HetirendID = ooco.Hetirend,
Hetirend = ooco.Hetirend > 0 ? ooco.Hetirend.GetDisplayName<HetiRendTipusEnum>(ClaimData.SelectedTanevID.Value) : string.Empty,
TeremID = ooco.TeremID,
OraErvenyessegKezdete = ooco.OraErvenyessegKezdete,
OraErvenyessegVege = ooco.OraErvenyessegVege,
Oraszam = ooco.Oraszam,
Bontott = ooco.Bontott,
Differencialt = ooco.Differencialt,
Drama = ooco.Drama,
HetNapja = ooco.HetNapja,
IKTTanora = ooco.IKTTanora,
IPRTanora = ooco.IPRTanora,
Kooperativ = ooco.Kooperativ,
Meres = ooco.Meres,
MindennaposTestneveles = ooco.MindennaposTestneveles,
NemSzakrendszeruOra = ooco.NemSzakrendszeruOra,
NemzetisegiOra = ooco.NemzetisegiOra,
IsFelnottoktatasiSzerzodes = ooco.IsFelnottoktatasiSzerzodes,
OnlineOra = ooco.OnlineOra,
ParhuzamosOra = ooco.ParhuzamosOra,
Sorszamozando = ooco.Sorszamozando,
TAMOPOra = ooco.TAMOPOra,
KIPOra = ooco.KIPOra,
VEKOP73317 = ooco.VEKOP73317,
KAPOra = ooco.KAPOra,
Tiop = ooco.Tiop,
Tulora = ooco.Tulora,
IsModification = ooco.IsModification,
Multikulturalis = ooco.Multikulturalis,
EFOP32317 = ooco.EFOP32317,
KomplexOra = ooco.KomplexOra,
GINOP623 = ooco.GINOP623,
EFOP31716EselyteremtesAKoznevelesben = ooco.EFOP31716EselyteremtesAKoznevelesben,
EFOP33717 = ooco.EFOP33717,
TIOP11112120120001 = ooco.TIOP11112120120001,
DFHT = ooco.DFHT,
Rahangolodas = ooco.Rahangolodas,
Testmozgas = ooco.Testmozgas,
Muveszet = ooco.Muveszet,
Eletgyakorlat = ooco.Eletgyakorlat,
Logika = ooco.Logika,
TeOrad = ooco.TeOrad,
DigitalisAlapProgram = ooco.DigitalisAlapProgram,
HetNapjaSzoveg = ooco.HetNapja.GetDisplayName<HetNapjaTipusEnum>(ClaimData.SelectedTanevID.Value),
EFOP23517201700038Miapalya = ooco.EFOP23517201700038Miapalya,
TanevTananyaganakIsmetlese = ooco.TanevTananyaganakIsmetlese,
TanevTananyaganakKiegeszitese = ooco.TanevTananyaganakKiegeszitese,
TanulokDigitalisKeszsegfejlesztese = ooco.TanulokDigitalisKeszsegfejlesztese,
Projektmunka = ooco.Projektmunka,
TanulokKompenzaciosIraskeszsegFejlesztese = ooco.TanulokKompenzaciosIraskeszsegFejlesztese,
TanulokKompenzaciosOlvasasiKepessegFejlesztese = ooco.TanulokKompenzaciosOlvasasiKepessegFejlesztese,
TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese = ooco.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese,
TanulokNyelviKepessegenekKompenzaciosFejlesztese = ooco.TanulokNyelviKepessegenekKompenzaciosFejlesztese,
TanulokOnmegismeresenekSegitese = ooco.TanulokOnmegismeresenekSegitese,
TanulokOnallosagraNevelese = ooco.TanulokOnallosagraNevelese,
TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese = ooco.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese,
TanulokOrientaciosTamogatasa = ooco.TanulokOrientaciosTamogatasa,
TanulokSzocialitasanakFejlesztese = ooco.TanulokSzocialitasanakFejlesztese,
TanulokTovabbhaladasatElokeszitoTevekenysegek = ooco.TanulokTovabbhaladasatElokeszitoTevekenysegek,
PedagogusAltalJelzettEgyeniEsetkezeles = ooco.PedagogusAltalJelzettEgyeniEsetkezeles,
ProjektmunkaTamogatasa = ooco.ProjektmunkaTamogatasa,
DigitalisKeszsegfejlesztes = ooco.DigitalisKeszsegfejlesztes,
KozossegiMunkaTamogatasa = ooco.KozossegiMunkaTamogatasa,
TanoraElokeszitesenekTamogatasa = ooco.TanoraElokeszitesenekTamogatasa,
TanoraLebonyolitasanakTamogatasa = ooco.TanoraLebonyolitasanakTamogatasa,
NapkozisTevekenysegKeretebenEgyeniFejlesztes = ooco.NapkozisTevekenysegKeretebenEgyeniFejlesztes,
IsEgybefuggoGyakorlat = ooco.IsEgybefuggoGyakorlat,
TTFModel = new TTFModel
{
FoglalkozasID = ooco.FoglalkozasID,
TanarID = tanarId,
Oraszam = (int)tfco.Oraszam,
OsztalyID = tfco.OsztalyCsoportID,
TantargyID = tfco.TantargyID,
Nev = !string.IsNullOrWhiteSpace(tfco.Nev) ? tfco.Nev : string.Empty
},
};
return model;
}
public string GetOrarendiOraWindowTitle(CalendarModel model, bool isFromSzervezet = false)
{
var oom = new OrarendiOraModel
{
ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate], model.Start)
};
OrarendiOraLogic.SetHetNapja(oom, model.Start.ToLocalTime().DayOfWeek);
var api = new AdminTanariOrarendApiController();
int oraszam = api.GetOraszam(model.EventId, model.OraType);
return string.Format(" [{0} - {1}: {2}. óra]", oom.ErvenyessegiIdoSzoveg, oom.HetNapjaSzoveg, oraszam);
}
public string GetFoglalkozasWindowTitle(CalendarModel model, bool isFromSzervezet = false)
{
var oom = new OrarendiOraModel
{
ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate], model.Start)
};
OrarendiOraLogic.SetHetNapja(oom, model.Start.ToLocalTime().DayOfWeek);
//var api = new AdminTanariOrarendApiController();
//int oraszam = api.GetOraszam(model.EventId, model.OraType);
return string.Format(" [{0} - {1}]", oom.ErvenyessegiIdoSzoveg, oom.HetNapjaSzoveg);
}
}
}

View file

@ -0,0 +1,390 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.KretaServer.SystemSettings;
using Kreta.Resources;
using Kreta.Web.Areas.Intezmeny.Logic;
using Kreta.Web.Areas.Orarend.ApiControllers;
using Kreta.Web.Areas.Orarend.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
public class BaseAdminTeremOrarendController : Controller
{
[NonAction]
public ActionResult GetOrarendiOrak(int index = 0, bool isFromSzervezet = false)
{
var model = new OrarendiOrakModel
{
Index = index,
IsFromSzervezet = isFromSzervezet
};
return View("OrarendiOrak_Tab", model);
}
[NonAction]
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1, bool isFromSzervezet = false)
{
var model = new TanariOrarendTanoranKivuliFoglalkozasokModel()
{
Index = index,
IsFromSzervezet = isFromSzervezet
};
return View("TanoranKivuliFoglalkozasok_Tab", model);
}
[NonAction]
public ActionResult OpenNewOrarendiOraPopUp(OsztalyOrarendModel model, bool isFromSzervezet = false)
{
var oom = GetNewOrarendiOraModel(model.CalendarModel, false, isFromSzervezet);
if (model.OsztalyId != 0)
{
oom.TTFModel.OsztalyID = model.OsztalyId;
}
var list = new List<TabStripItemModel> { new TabStripItemModel { ItemId = "1", ItemName = OrarendResource.TanoraAdatai, Model = oom, PartialViewName = "TanoraAdatok_Bevitel_Terem", IsActive = true } };
if (!isFromSzervezet)
{
list.Add(new TabStripItemModel { ItemId = "2", ItemName = TantargyResource.TabSpecialisAdatok, Model = oom, PartialViewName = "SpecialisAdatok_Bevitel" });
}
oom.OrarendiOraTabList = list;
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(model.CalendarModel.Start.Date, model.OsztalyId);
var pm = new PopUpModel(oom, "OrarendiOra_Bevitel");
pm = pm.AddBtn(pm, "newOrarendiOraCancel", AdminisztracioResource.Megsem, "OrarendiOrak.newOrarendiOraCancel");
pm = pm.AddBtn(pm, "EgyOraHozzaadasaSave", OrarendResource.AddOneDay, "OrarendiOrak.EgyOraHozzaadasaSave");
if (isFromSzervezet || !isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "OrarendhezSave", OrarendResource.AddAllDay, "OrarendiOrak.OrarendhezSave");
}
if (!isDateHasTanevrend && !isFromSzervezet)
{
pm = pm.AddBtn(pm, "EttolHettolSave", OrarendResource.AddFrom, "OrarendiOrak.EttolHettolSave");
pm = pm.AddBtn(pm, "EddigHetigSave", OrarendResource.AddTo, "OrarendiOrak.EddigHetigSave");
}
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
public ActionResult OpenModifyOrarendiOraPopUp(CalendarModel model, bool isFromSzervezet = false)
{
var oom = GetModifyOrarendiOraModel(model, false, isFromSzervezet);
var isEgyOra = oom.OraErvenyessegKezdete.Value.Date == oom.OraErvenyessegVege.Value.Date;
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(oom.ErvenyessegiIdo.Date, oom.OsztalyCsoportId);
var pm = new PopUpModel(oom, "OrarendiOra_Mod_Bevitel");
pm = pm.AddBtn(pm, "modCancel", AdminisztracioResource.Megsem, "OrarendiOrak.modCancel");
pm = pm.AddBtn(pm, "tovabbiOrarendiOraFelvetele", OrarendResource.AddAgain, "OrarendiOrak.tovabbiOrarendiOraFelvetele");
if (!isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "modOrarendiOraDeleteDay", OrarendResource.DeleteOneDay, "OrarendiOrak.modOrarendiOraDeleteDayConfirmWindow", "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modOrarendiOraDeleteFrom", OrarendResource.DeleteFrom, "OrarendiOrak.modOrarendiOraDeleteFromConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modOrarendiOraDeleteTo", OrarendResource.DeleteTo, "OrarendiOrak.modOrarendiOraDeleteToConfirmWindow", "pull-left");
}
pm = pm.AddBtn(pm, "modOrarendiOraDelete", OrarendResource.DeleteAll, "OrarendiOrak.modOrarendiOraDeleteConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modOrarendiOraSaveDay", OrarendResource.ModSaveOneDay, "OrarendiOrak.modOrarendiOraSaveDay", secondLine: true, "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modOrarendiOraSaveFrom", OrarendResource.ModSaveFrom, "OrarendiOrak.modOrarendiOraSaveFrom", secondLine: true, "pull-left");
pm = pm.AddBtn(pm, "modOrarendiOraSaveTo", OrarendResource.ModSaveTo, "OrarendiOrak.modOrarendiOraSaveTo", secondLine: true, "pull-left");
}
pm = pm.AddBtn(pm, "modOrarendiOraSave", OrarendResource.ModAllSave, "OrarendiOrak.modOrarendiOraSaveTanev", secondLine: true, "pull-left");
}
else
{
//Bármikor lehessen egy órát törölni
pm = pm.AddBtn(pm, "modOrarendiOraDeleteDay", OrarendResource.DeleteOneDay, "OrarendiOrak.modOrarendiOraDeleteDayConfirmWindow", "pull-left");
if (isEgyOra)
{
pm = pm.AddBtn(pm, "modOrarendiOraSaveDay", OrarendResource.ModSaveOneDay, "OrarendiOrak.modOrarendiOraSaveDay", "pull-left");
}
}
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
public ActionResult OpenNewFoglalkozasokOraPopUp(CalendarModel model, bool isFromSzervezet = false)
{
var oom = GetNewOrarendiOraModel(model, true, isFromSzervezet);
var list = new List<TabStripItemModel> { new TabStripItemModel { ItemId = "1", ItemName = OrarendResource.TanoraAdatai, Model = oom, PartialViewName = "TanoraAdatok_Bevitel_Terem", IsActive = true } };
if (!isFromSzervezet)
{
list.Add(new TabStripItemModel { ItemId = "2", ItemName = TantargyResource.TabSpecialisAdatok, Model = oom, PartialViewName = "SpecialisAdatok_Bevitel" });
}
oom.OrarendiOraTabList = list;
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = helper.HasTanevRendjeEsemeny(oom.ErvenyessegiIdo.Date, oom.OsztalyCsoportId);
var pm = new PopUpModel(oom, "OrarendiOra_Bevitel");
pm = pm.AddBtn(pm, "newOrarendiOraCancel", AdminisztracioResource.Megsem, "Foglalkozasok.newFoglalkozasCancel");
pm = pm.AddBtn(pm, "EgyOraHozzaadasaSave", OrarendResource.AddOneDay, "Foglalkozasok.EgyOraHozzaadasaSave");
if (!isDateHasTanevrend && !isFromSzervezet)
{
pm = pm.AddBtn(pm, "EttolHettolSave", OrarendResource.AddFrom, "Foglalkozasok.EttolHettolSave");
pm = pm.AddBtn(pm, "EddigHetigSave", OrarendResource.AddTo, "Foglalkozasok.EddigHetigSave");
}
if (isFromSzervezet || !isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "OrarendhezSave", OrarendResource.AddAllDay, "Foglalkozasok.OrarendhezSave");
}
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
public ActionResult OpenModifyFoglalkozasokOraPopUp(CalendarModel model, bool isFromSzervezet = false)
{
var oom = GetModifyOrarendiOraModel(model, true, isFromSzervezet);
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(oom.ErvenyessegiIdo.Date, oom.OsztalyCsoportId);
var pm = new PopUpModel(oom, "OrarendiOra_Mod_Bevitel");
pm = pm.AddBtn(pm, "modFoglalkozasCancel", AdminisztracioResource.Megsem, "Foglalkozasok.modFoglalkozasCancel");
pm = pm.AddBtn(pm, "tovabbiFoglalkozasFelvetele", OrarendResource.AddAgain, "Foglalkozasok.tovabbiFoglalkozasFelvetele");
if (!isDateHasTanevrend)
{
pm = pm.AddBtn(pm, "modFoglalkozasDeleteDay", OrarendResource.DeleteOneDay, "Foglalkozasok.modFoglalkozasDeleteDayConfirmWindow", "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modFoglalkozasDeleteFrom", OrarendResource.DeleteFrom, "Foglalkozasok.modFoglalkozasDeleteFromConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modFoglalkozasDeleteTo", OrarendResource.DeleteTo, "Foglalkozasok.modFoglalkozasDeleteToConfirmWindow", "pull-left");
}
pm = pm.AddBtn(pm, "modFoglalkozasDelete", OrarendResource.DeleteAll, "Foglalkozasok.modFoglalkozasDeleteConfirmWindow", "pull-left");
pm = pm.AddBtn(pm, "modFoglalkozasSaveDay", OrarendResource.ModSaveOneDay, "Foglalkozasok.modFoglalkozasSaveDay", secondLine: true, "pull-left");
if (!isFromSzervezet)
{
pm = pm.AddBtn(pm, "modFoglalkozasSaveFrom", OrarendResource.ModSaveFrom, "Foglalkozasok.modFoglalkozasSaveFrom", secondLine: true, "pull-left");
pm = pm.AddBtn(pm, "modFoglalkozasSaveTo", OrarendResource.ModSaveTo, "Foglalkozasok.modFoglalkozasSaveTo", secondLine: true, "pull-left");
}
pm = pm.AddBtn(pm, "modFoglalkozasSave", OrarendResource.ModAllSave, "Foglalkozasok.modFoglalkozasSaveTanev", secondLine: true, "pull-left");
}
else
{
pm = pm.AddBtn(pm, "modFoglalkozasDeleteDay", OrarendResource.DeleteOneDay, "Foglalkozasok.modFoglalkozasDeleteDayConfirmWindow", "pull-left");
}
return PartialView(Constants.General.PopupView, pm);
}
public string GetOrarendiOraWindowTitle(CalendarModel model)
{
var oom = new OrarendiOraModel
{
ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate], model.Start)
};
OrarendiOraLogic.SetHetNapja(oom, model.Start.ToLocalTime().DayOfWeek);
var api = new AdminTanariOrarendApiController();
int oraszam = api.GetOraszam(model.EventId, model.OraType);
return string.Format(" [{0} - {1}: {2}. óra]", oom.ErvenyessegiIdoSzoveg, oom.HetNapjaSzoveg, oraszam);
}
public string GetFoglalkozasWindowTitle(CalendarModel model)
{
var oom = new OrarendiOraModel
{
ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate], model.Start)
};
OrarendiOraLogic.SetHetNapja(oom, model.Start.ToLocalTime().DayOfWeek);
return string.Format(" [{0} - {1}]", oom.ErvenyessegiIdoSzoveg, oom.HetNapjaSzoveg);
}
private OrarendiOraModel GetNewOrarendiOraModel(CalendarModel model, bool isTanoranKivuliFoglalkozas, bool isFromSzervezet = false)
{
var oom = new OrarendiOraModel
{
IsTanoranKivuliFoglalkozas = isTanoranKivuliFoglalkozas,
OraKezdete = model.Start.ToLocalTime(),
OraVege = model.End.ToLocalTime(),
Sorszamozando = true,
ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate], model.Start.ToLocalTime()),
ErvenyessegiIdo = model.Start.ToLocalTime(),
OraErvenyessegKezdete = model.Start,
ValasztottDatum = model.Start,
OraErvenyessegVege = !isFromSzervezet ? model.End : (DateTime?)null,
CsengetesiRendOraID = model.EventId,
HetirendID = (int)HetiRendTipusEnum.MindegyikHet,
Hetirend = HetiRendTipusEnum.MindegyikHet.GetDisplayName(ClaimData.SelectedTanevID.Value)
};
if (!isTanoranKivuliFoglalkozas)
{
OrarendiOraLogic.SetCsengetesiRendAndOraszam(oom);
}
oom.OrarendiElemekRogzitesenekElofeltetele = SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.orarendi_elemek_rogzitesenek_elofeltetele, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value);
OrarendiOraLogic.SetHetNapja(oom, oom.ErvenyessegiIdo.DayOfWeek);
oom.HetirendList = OrarendiOraLogic.GetAktualHetirendList();
oom.IsEgyediNap = isFromSzervezet ? TanevRendjeLogic.IsEgyediNapByDate(model.Start.Date) : !isFromSzervezet;
oom.IsFromSzervezet = isFromSzervezet;
return oom;
}
private OrarendiOraModel GetModifyOrarendiOraModel(CalendarModel model, bool isTanoranKivuliFoglalkozas, bool isFromSzervezet = false)
{
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType())
{
GridParameters = null
};
var ooco = orarendiOraHelper.GetOrarendiOraById(model.EventId);
var tanarId = orarendiOraHelper.GetTanarIdByOrarendiOra(model.EventId);
var tfco = new TantargyFelosztasCO
{
OsztalyCsoportID = ooco.OsztalyCsoportId.Value,
TantargyID = ooco.TantargyId.Value
};
var oom = ConvertCoToModel(ooco, tanarId, tfco);
oom.IsTanoranKivuliFoglalkozas = isTanoranKivuliFoglalkozas;
oom.IsModification = true;
oom.ModificationDate = model.Start;
oom.ErvenyessegiIdoSzoveg = string.Format(SDAFormat.Format[SDAFormat.FormatType.ShortDateAndTime], oom.OraErvenyessegKezdete.Value);
oom.OrarendiOraTabList = OrarendiOraLogic.GetModOrarendiOraTabs(oom, AdminOrarendTipusEnum.Terem.ToString(), isFromSzervezet);
oom.OraKezdete = ooco.OraKezdete;
oom.OraVege = ooco.OraVege;
oom.ErvenyessegiIdo = model.Start;
var api = new AdminTanariOrarendApiController();
oom.HetirendList = api.GetHetirendList();
oom.OsztalyCsoportId = ooco.OsztalyCsoportId;
oom.IsEgyediNap = isFromSzervezet ? TanevRendjeLogic.IsEgyediNapByDate(model.Start.Date) : !isFromSzervezet;
oom.IsFromSzervezet = isFromSzervezet;
oom.OrarendiElemekRogzitesenekElofeltetele = SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.orarendi_elemek_rogzitesenek_elofeltetele, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value);
return oom;
}
private OrarendiOraModel ConvertCoToModel(OrarendiOraCO ooco, int tanarId, TantargyFelosztasCO tfco)
{
var model = new OrarendiOraModel
{
ID = ooco.ID,
CsengetesiRendOraID = ooco.CsengetesiRendOraID,
CsengetesiRendID = ooco.CsengetesiRendID,
HetirendID = ooco.Hetirend,
Hetirend = ooco.Hetirend > 0 ? ooco.Hetirend.GetDisplayName<HetiRendTipusEnum>(ClaimData.SelectedTanevID.Value) : string.Empty,
TeremID = ooco.TeremID,
OraErvenyessegKezdete = ooco.OraErvenyessegKezdete,
OraErvenyessegVege = ooco.OraErvenyessegVege,
Oraszam = ooco.Oraszam,
Bontott = ooco.Bontott,
Differencialt = ooco.Differencialt,
Drama = ooco.Drama,
HetNapja = ooco.HetNapja,
IKTTanora = ooco.IKTTanora,
IPRTanora = ooco.IPRTanora,
Kooperativ = ooco.Kooperativ,
Meres = ooco.Meres,
MindennaposTestneveles = ooco.MindennaposTestneveles,
NemSzakrendszeruOra = ooco.NemSzakrendszeruOra,
NemzetisegiOra = ooco.NemzetisegiOra,
IsFelnottoktatasiSzerzodes = ooco.IsFelnottoktatasiSzerzodes,
OnlineOra = ooco.OnlineOra,
ParhuzamosOra = ooco.ParhuzamosOra,
Sorszamozando = ooco.Sorszamozando,
TAMOPOra = ooco.TAMOPOra,
KIPOra = ooco.KIPOra,
VEKOP73317 = ooco.VEKOP73317,
KAPOra = ooco.KAPOra,
Tiop = ooco.Tiop,
Tulora = ooco.Tulora,
IsModification = ooco.IsModification,
HetNapjaSzoveg = ooco.HetNapja.GetDisplayName<HetNapjaTipusEnum>(ClaimData.SelectedTanevID.Value),
Multikulturalis = ooco.Multikulturalis,
EFOP32317 = ooco.EFOP32317,
KomplexOra = ooco.KomplexOra,
GINOP623 = ooco.GINOP623,
EFOP31716EselyteremtesAKoznevelesben = ooco.EFOP31716EselyteremtesAKoznevelesben,
EFOP33717 = ooco.EFOP33717,
TIOP11112120120001 = ooco.TIOP11112120120001,
DFHT = ooco.DFHT,
Rahangolodas = ooco.Rahangolodas,
Testmozgas = ooco.Testmozgas,
Muveszet = ooco.Muveszet,
Eletgyakorlat = ooco.Eletgyakorlat,
Logika = ooco.Logika,
TeOrad = ooco.TeOrad,
DigitalisAlapProgram = ooco.DigitalisAlapProgram,
EFOP23517201700038Miapalya = ooco.EFOP23517201700038Miapalya,
TanevTananyaganakIsmetlese = ooco.TanevTananyaganakIsmetlese,
TanevTananyaganakKiegeszitese = ooco.TanevTananyaganakKiegeszitese,
TanulokDigitalisKeszsegfejlesztese = ooco.TanulokDigitalisKeszsegfejlesztese,
Projektmunka = ooco.Projektmunka,
TanulokKompenzaciosIraskeszsegFejlesztese = ooco.TanulokKompenzaciosIraskeszsegFejlesztese,
TanulokKompenzaciosOlvasasiKepessegFejlesztese = ooco.TanulokKompenzaciosOlvasasiKepessegFejlesztese,
TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese = ooco.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese,
TanulokNyelviKepessegenekKompenzaciosFejlesztese = ooco.TanulokNyelviKepessegenekKompenzaciosFejlesztese,
TanulokOnmegismeresenekSegitese = ooco.TanulokOnmegismeresenekSegitese,
TanulokOnallosagraNevelese = ooco.TanulokOnallosagraNevelese,
TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese = ooco.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese,
TanulokOrientaciosTamogatasa = ooco.TanulokOrientaciosTamogatasa,
TanulokSzocialitasanakFejlesztese = ooco.TanulokSzocialitasanakFejlesztese,
TanulokTovabbhaladasatElokeszitoTevekenysegek = ooco.TanulokTovabbhaladasatElokeszitoTevekenysegek,
PedagogusAltalJelzettEgyeniEsetkezeles = ooco.PedagogusAltalJelzettEgyeniEsetkezeles,
ProjektmunkaTamogatasa = ooco.ProjektmunkaTamogatasa,
DigitalisKeszsegfejlesztes = ooco.DigitalisKeszsegfejlesztes,
KozossegiMunkaTamogatasa = ooco.KozossegiMunkaTamogatasa,
TanoraElokeszitesenekTamogatasa = ooco.TanoraElokeszitesenekTamogatasa,
TanoraLebonyolitasanakTamogatasa = ooco.TanoraLebonyolitasanakTamogatasa,
NapkozisTevekenysegKeretebenEgyeniFejlesztes = ooco.NapkozisTevekenysegKeretebenEgyeniFejlesztes,
IsEgybefuggoGyakorlat = ooco.IsEgybefuggoGyakorlat,
TTFModel = new TTFModel
{
FoglalkozasID = ooco.FoglalkozasID,
TanarID = tanarId,
Oraszam = (int)tfco.Oraszam,
OsztalyID = tfco.OsztalyCsoportID,
TantargyID = tfco.TantargyID,
Nev = !string.IsNullOrWhiteSpace(tfco.Nev) ? tfco.Nev : string.Empty
},
};
return model;
}
}
}

View file

@ -0,0 +1,120 @@
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Utils;
namespace Kreta.Web.Areas.Orarend.Controllers
{
public abstract class BaseNaploTanariOrarendController : Controller
{
protected List<TabStripItemModel> GetTanariOrarendTabs(bool fogadooraMegjelenik, bool isFromSzervezet = false)
{
var list = new List<TabStripItemModel>();
var haladasiNaploFulTipusa = ProfileUtils.HaladasiNaploFulTipusa;
var controller = this.RouteData.Values["controller"].ToString();
list.Add(new TabStripItemModel()
{
ItemId = "0",
ItemName = isFromSzervezet ? AdminisztracioResource.Foglalkozasok : AdminisztracioResource.Tanorak,
Area = Constants.Areas.Orarend,
Controller = controller,
Action = nameof(GetTanorak),
RouteParameters = new Dictionary<string, string>()
{
{"index", "0"}
},
IsActive = haladasiNaploFulTipusa == HaladasiNaploFulTipus.Tanorak
});
list.Add(new TabStripItemModel()
{
ItemId = "1",
ItemName = AdminisztracioResource.Napirend,
Area = Constants.Areas.Orarend,
Controller = controller,
Action = nameof(GetTanoranKivuliFoglalkozasok),
RouteParameters = new Dictionary<string, string>()
{
{"index", "1"}
},
IsActive = haladasiNaploFulTipusa == HaladasiNaploFulTipus.Napirend
});
list.Add(new TabStripItemModel()
{
ItemId = "2",
ItemName = AdminisztracioResource.NemKotottMunkaido,
Area = Constants.Areas.Orarend,
Controller = controller,
Action = nameof(GetNemKotottMunkaido),
RouteParameters = new Dictionary<string, string>()
{
{"index", "2"}
},
IsActive = haladasiNaploFulTipusa == HaladasiNaploFulTipus.NemKotottMunkaido
});
if (fogadooraMegjelenik)
{
list.Add(new TabStripItemModel()
{
ItemId = "3",
ItemName = AdminisztracioResource.Fogadoora,
Area = Constants.Areas.Orarend,
Controller = controller,
Action = nameof(GetFogadoora),
RouteParameters = new Dictionary<string, string>()
{
{"index", "3"}
},
IsActive = haladasiNaploFulTipusa == HaladasiNaploFulTipus.Fogadoora
});
}
return list;
}
public ActionResult GetTanorak(int index = 0)
{
var model = new TanariOrarendTanorakModel()
{
Index = index
};
return View("Tanorak_Tab", model);
}
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1)
{
var model = new TanariOrarendTanoranKivuliFoglalkozasokModel()
{
Index = index
};
return View("TanoranKivuliFoglalkozasok_Tab", model);
}
public ActionResult GetNemKotottMunkaido(int index = 2)
{
var model = new TanariOrarendNemKotottMunkaidoModel()
{
Index = index
};
return View("NemKotottMunkaido_Tab", model);
}
public ActionResult GetFogadoora(int index = 3)
{
var model = new TanariOrarendFogadooraModel()
{
Index = index
};
return View("Fogadoora_Tab", model);
}
}
}

View file

@ -0,0 +1,838 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Extensions;
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.Elokeszites;
using Kreta.BusinessLogic.Logic.Naplozas.Validacio;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Exceptions;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Feljegyzes.Models;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Areas.TanuloErtekeles.Controllers;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
using Kreta.Web.Utils;
namespace Kreta.Web.Areas.Orarend.Controllers
{
public class BaseTanariOrarendController : BaseNaploTanariOrarendController
{
#region Konstansok
public const string TanoraNaplozasInfo = "~/Areas/Orarend/Views/TanariOrarend/TanoraNaplozasInfo.cshtml";//nameof(TanoraNaplozasInfo);
public const string Info_TanoraAdatai_Tab = "~/Areas/Orarend/Views/TanariOrarend/Info_TanoraAdatai_Tab.cshtml";//nameof(Info_TanoraAdatai_Tab);
public const string Info_MulasztasNaplozas_Tab = "~/Areas/Orarend/Views/TanariOrarend/Info_MulasztasNaplozas_Tab.cshtml";//nameof(Info_MulasztasNaplozas_Tab);
public const string Info_HaziFeladat_Tab = "~/Areas/Orarend/Views/TanariOrarend/Info_HaziFeladat_Tab.cshtml";//nameof(Info_HaziFeladat_Tab);
public const string SzamonkeresElorejelzes_Tab = "~/Areas/Orarend/Views/TanariOrarend/SzamonkeresElorejelzes_Tab.cshtml";//nameof(SzamonkeresElorejelzes_Tab);
public const string TanoraNaplozas = "~/Areas/Orarend/Views/TanariOrarend/TanoraNaplozas.cshtml";//nameof(TanoraNaplozas);
public const string MulasztasNaplozas_Tab = "~/Areas/Orarend/Views/TanariOrarend/MulasztasNaplozas_Tab.cshtml";// nameof(MulasztasNaplozas_Tab);
public const string TanuloErtekelesIndex = "~/Areas/TanuloErtekeles/Views/Ertekeles/Index.cshtml";
public const string FeljegyzesekIndex = "~/Areas/Feljegyzes/Views/Beirasok/Index.cshtml";
public const string HaziFeladat_Tab = "~/Areas/Orarend/Views/TanariOrarend/HaziFeladat_Tab.cshtml";//nameof(HaziFeladat_Tab);
public const string TanoraAdatai_Tab = "~/Areas/Orarend/Views/TanariOrarend/TanoraAdatai_Tab.cshtml";//nameof(TanoraAdatai_Tab);
public const string NaplozasDigitalisOktatas_Tab = "~/Areas/Orarend/Views/TanariOrarend/NaplozasDigitalisOktatas_Tab.cshtml";//nameof(NaplozasDigitalisOktatas_Tab);
public const string KorabbiOrakNaplozasiAdatai_Tab = "~/Areas/Orarend/Views/TanariOrarend/KorabbiOrakNaplozasiAdatai_Tab.cshtml";//nameof(KorabbiOrakNaplozasiAdatai_Tab);
public const string Info_DigitalisOktatas_Tab = "~/Areas/Orarend/Views/TanariOrarend/Info_DigitalisOktatas_Tab.cshtml";//nameof(Info_DigitalisOktatas_Tab);
public const string closeTanoraMuveletWindowEvent = "Tanorak.closeTanoraMuveletWindow";
public const string saveNemMegtartottTanoraEvent = "Naplozashelper.saveNemMegtartottTanora";
public const string saveTanoraEvent = "Naplozashelper.saveTanora";
public const string oraOsszevonasDeleteEvent = "Naplozashelper.oraOsszevonasDelete";
public const string deleteTanoraEvent = "Naplozashelper.deleteTanora";
public const string oraOsszevonasPopUpEvent = "Naplozashelper.oraOsszevonasPopUp";
public const string ujOraFelvitelePopUpEvent = "Tanorak.ujOraFelvitelePopUp";
public const string elmaradt = nameof(elmaradt);
public const string naplozas = nameof(naplozas);
public const string oraOsszevonasDelete = nameof(oraOsszevonasDelete);
public const string delete = nameof(delete);
public const string oraOsszevonas = nameof(oraOsszevonas);
public const string ujOraFelvitele = nameof(ujOraFelvitele);
#endregion
private IKretaAuthorization Authorization { get; }
private readonly IFileServiceHelper fileServiceHelper;
public BaseTanariOrarendController(IKretaAuthorization authorization, IFileServiceHelper fileServiceHelper)
{
Authorization = authorization;
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
}
[NonAction]
public ActionResult TanorakOrarendEvent(TanoraIdBeallitasModel model, int? SzervezetTipusId = null)
{
try
{
model.calendarModel.Start = model.calendarModel.Start.ToLocalTime();
model.calendarModel.End = model.calendarModel.End.ToLocalTime();
if (model.calendarModel.OraType == CalendarOraTypeEnum.TanevRendjeEsemeny)
{
return null;
}
var naploValidacioParameters = new NaploValidacioParameters(model.calendarModel.Start.ToLocalTime(), ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.FelhasznaloSzerepkor);
var validator = new NaploValidacio(naploValidacioParameters);
NaplozasElokeszitesLogic naplozasLogic = null;
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
if (model.calendarModel.EventType == EventTypeEnum.TanarHelyetesites)
{
var co = new HelyettesitesNaplozasElokeszitesCo();
model.ConvertTo(co);
co.SzervezetTipusId = SzervezetTipusId;
naplozasLogic = new NaplozasElokeszitesLogic(validator, co);
}
else
{
var co = new NaplozasElokeszitesCo();
model.calendarModel.ConvertTo(co);
co.SzervezetTipusId = SzervezetTipusId;
naplozasLogic = new NaplozasElokeszitesLogic(validator, co);
}
var muveletPram = new TanoraMuveletek(ClaimData.FelhasznaloId, model);
return TanoraMuveletek(naplozasLogic.GetModel, muveletPram, SzervezetTipusId);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
[NonAction]
public ActionResult OpenNewFoglalkozasokOraPopUp(TanoraIdBeallitasModel model, bool isFromSzervezet = false)
{
var fm = new FoglalkozasModel()
{
UseFoglalkozas = model.calendarModel.UseFoglakozas,
TanoranKivuliFoglalkozas = model.FoglalkozasId,
TeremID = model.TeremId,
OsztalyCsoportId = model.OsztalyCsoportId,
TantargyId = model.TantargyId,
Kezdete = model.calendarModel.Start,
KezdeteDatum = model.calendarModel.Start,
KezdeteLabel = model.calendarModel.Start.ToShortDateString(),
Vege = model.calendarModel.End,
VegeDatum = model.calendarModel.End,
VegeLabel = model.calendarModel.End.ToShortDateString()
};
PopUpModel pm = new PopUpModel(fm, "Foglalkozas_Bevitel");
pm = pm.AddBtn(pm, "newFoglalkozasCancel", AdminisztracioResource.Megsem, "Foglalkozasok.newFoglalkozasCancel");
pm = pm.AddBtn(pm, "newFoglalkozasSave", 2516, "Foglalkozasok.foglalkozasSave");
return PartialView(Constants.General.PopupView, pm);
}
[NonAction]
public ActionResult GetWizardElovalaszto(DateTime? datum = null, bool isFromSzervezet = false)
{
var isSzakmaiGyakorlat = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsOsszefuggoSzakGyak(datum);
var model = GetWizardElovalasztoModel(isSzakmaiGyakorlat);
return PartialView("WizardElovalaszto", model);
}
[NonAction]
public ActionResult GetWizardHelyettesitesElovalaszto(DateTime? datum = null, int hiba = -1, bool isFromSzervezet = false)
{
var isSzakmaiGyakorlat = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsOsszefuggoSzakGyak(datum);
var model = GetWizardElovalasztoModel(isSzakmaiGyakorlat);
model.TanarKezelhetHelyettesitest = false; //helyettesítésnél nem kell kirakni a helyettesítés gombot
if (model.LehetOratFelvenniTTFNelkul && model.TanarVehetFelOratMaganak && hiba != -1)
{
model.LehetOratFelvenniTTFNelkul = false;
model.TanarVehetFelOratMaganak = false;
}
model.HelyettesitendoTanarnakNincsOttOraja = (hiba == (int)EgyediHelyettesitesHibaEnum.HelyettesitendoTanarnakNincsOttOraja);
model.HelyettesitendoTanarOrajatMarNaploztak = (hiba == (int)EgyediHelyettesitesHibaEnum.HelyettesitendoTanarOrajatMarNaploztak);
return PartialView("WizardElovalaszto", model);
}
[NonAction]
public ActionResult GetWizardOrarendioraValaszto(string startDate, string endDate, string hanyadikora, string helyettesitoId, bool isNapirend = false, bool isEgyediHelyettesites = false, bool isFromSzervezet = false)
{
WizardModel model = new WizardModel();
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var ds = helper.CheckTanarOra(SDAConvert.ToDateTime(startDate).Value, SDAConvert.ToDateTime(endDate).Value, SDAConvert.ToInt32(helyettesitoId), SDAConvert.ToNullableInt32(hanyadikora), SDAConvert.ToBoolean(isNapirend), SDAConvert.ToBoolean(isEgyediHelyettesites));
model.WizardOraLista = new List<SelectListItem>();
if (ds != null && ds.Tables.Count > 0)
{
var szuksegesSorok = ds.Tables[0].AsEnumerable().ToList();
if (!isEgyediHelyettesites)
{
szuksegesSorok = szuksegesSorok.Where(x => x["Megtartott"].ToString() == "F").ToList();
}
if (szuksegesSorok.Any())
{
foreach (var orarendiOraSor in szuksegesSorok)
{
model.WizardOraLista.Add(new SelectListItem { Value = orarendiOraSor.Field<int>("C_ORARENDIORAID").ToString(), Text = string.Format("{0} {1} ({2})", orarendiOraSor.Field<string>("OsztalyNev"), orarendiOraSor.Field<string>("TargyNev"), orarendiOraSor.Field<string>("TeremNev")) });
}
if (szuksegesSorok.Count == 1)
{
model.WizardOrarendId = szuksegesSorok[0].Field<int>("C_ORARENDIORAID");
model.WizardOrarendMegtartott = SDAConvert.ToBooleanFromTF(szuksegesSorok[0].Field<string>("Megtartott"));
}
}
}
model.IsEgyediHelyettesites = isEgyediHelyettesites;
return PartialView("WizardOrarendioraValaszto", model);
}
[NonAction]
public ActionResult GetWizardHelyettesites(bool isFromSzervezet = false)
{
WizardModel model = new WizardModel();
model.IsEgyediHelyettesites = TanarKezelhetHelyettesitest() && (ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Naplo);
return PartialView("WizardHelyettesites", model);
}
[NonAction]
public ActionResult GetWizardOraosszevonasHelyettesites(bool isFromSzervezet = false)
{
WizardModel model = new WizardModel() { };
return PartialView("WizardOraosszevonasHelyettesites", model);
}
[NonAction]
public ActionResult GetWizardFoglalkozas(int foglalkozasFilterId, bool isNapirend = false, DateTime? datum = null, int? hanyadikOra = null, bool isFromSzervezet = false)
{
WizardModel model = new WizardModel() { FoglalkozasFilterId = foglalkozasFilterId, IsNapirend = isNapirend, Datum = datum, HanyadikOra = hanyadikOra };
return PartialView("WizardFoglalkozas", model);
}
[NonAction]
public ActionResult GetWizardEgyedi(int foglalkozasFilterId, DateTime datum, bool isNapirend = false, int? hanyadikOra = null, bool isFromSzervezet = false)
{
WizardModel model = new WizardModel() { FoglalkozasFilterId = foglalkozasFilterId, Datum = datum, IsNapirend = isNapirend, HanyadikOra = hanyadikOra };
return PartialView("WizardEgyedi", model);
}
[NonAction]
public DateTime GetTanevUtolsoNapja(int? szervezetId = null)
{
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo();
return szervezetId.HasValue ? tanev.UtolsoNap : tanev.UtolsoTanitasiNap;
}
public ActionResult TanoraMuveletek(NaplozasElokeszitesModel model, TanoraMuveletek muveletPram, int? szervezetTipusId)
{
try
{
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
model.IsMentorOra = new OsztalyCsoportHelper(connectionType).IsMentorCsoport(model.OraAdat.OsztalyCsoportId);
var tanarSorszamozhat = new SystemSettingsHelper(connectionType).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Ora_sorszamozasat_naplozo_pedagogus_eldontheti);
var elmaradtTanitasiOraRogzitesenekTiltasa = new SystemSettingsHelper(connectionType).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Elmaradt_tanitasi_ora_rogzitesenek_tiltasa);
var naplozarasLogic = new NaplozarasLogic(connectionType);
bool isErtekelestModosithatNaplozarasTipusaMiatt = naplozarasLogic.IsErtekelhetZarastolFuggetlenul(model.OraAdat.OraKezdete, model.OraAdat.OsztalyCsoportId);
var isNaplozhatNaplozarasTipusaMiatt = naplozarasLogic.IsNaplozhatZarastolFuggetlenul(model.OraAdat.OraKezdete, model.OraAdat.OsztalyCsoportId);
if (model.IsTanora && model.OraAdat.TanitasiOraId.HasValue)
{
var helper = new TanoraHelper(connectionType);
TanoraCO co = helper.GetTanorakAdatok(model.OraAdat.TanitasiOraId.Value);
muveletPram.NaplozasDatum = co.Datum;
model.OraAdat.DigEszkozTipusId = co.DigEszkozTipusId;
model.OraAdat.DigPlatformTipusId = co.DigPlatformTipusId;
model.OraAdat.DigTamEszkozTipusIdList = co.DigTamEszkozTipusIdList;
}
if (model.Naplozhat && isNaplozhatNaplozarasTipusaMiatt)
{
return GetNaplozasPopUp(model, muveletPram, isErtekelestModosithatNaplozarasTipusaMiatt, tanarSorszamozhat, elmaradtTanitasiOraRogzitesenekTiltasa, szervezetTipusId);
}
return GetNaplozasInfoPopUp(model, isErtekelestModosithatNaplozarasTipusaMiatt, tanarSorszamozhat, elmaradtTanitasiOraRogzitesenekTiltasa, szervezetTipusId);
}
catch (BlException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
private ActionResult GetNaplozasInfoPopUp(NaplozasElokeszitesModel model, bool isErtekelestModosithatNaplozarasTipusaMiatt, bool tanarSorszamozhat, bool elmaradtTanitasiOraRogzitesenekTiltasa, int? szervezetTipusId)
{
try
{
var infoTabok = new TanoraNaplozasInfoTabok(szervezetTipusId);
var naplozasModel = new TanoraNaplozas(fileServiceHelper, model.IsMentorOra, szervezetTipusId);
naplozasModel.Fill(model, tanarSorszamozhat, elmaradtTanitasiOraRogzitesenekTiltasa);
var infoModel = new TanoraNaplozasInfoModel(szervezetTipusId);
naplozasModel.Convert(infoModel);
var naplozasInfoModel = infoModel;
infoTabok.OsztalyCsoport = naplozasInfoModel.TanoraAdataiInfo.OsztalyCsoportNev;
infoTabok.Tantargy = naplozasInfoModel.TanoraAdataiInfo.TantargyNev;
var connectionType = ConnectionTypeExtensions.GetActiveSessionConnectionType();
var helper = new TanoraHelper(connectionType);
infoTabok.Oraszam = helper.GetOraEvesSorszamaSP(naplozasInfoModel.TanoraAdataiInfo.TantargyId.Value, naplozasInfoModel.TanoraAdataiInfo.OsztalyCsoportId.Value, model.OraAdat.OraKezdete, naplozasInfoModel.TanoraAdataiInfo.TanarId.Value);
if (szervezetTipusId.HasValue && szervezetTipusId.Value == (int)SzervezetTipusEnum.Dualis)
{
var osztalyCsoportHelper = new OsztalyCsoportHelper(connectionType);
var csoportSzakmajegyzekek = osztalyCsoportHelper.GetCsoportTanuloinakSzakmajegyzeke(naplozasModel.TanoraAdatai.OsztalyCsoportId.Value, DateTime.Now);
if (csoportSzakmajegyzekek.Count > 0)
{
naplozasModel.Mulasztas.TanulasiEgysegList = helper.GetTanulasiEgysegek()
.Where(e => (csoportSzakmajegyzekek[0].SzakmairanyTipusId ?? 0) == (e.SzakmairanyTipusId ?? 0) && (csoportSzakmajegyzekek[0].SzakmaTipusId ?? 0) == e.SzakmaTipusId).OrderBy(o => o.Sorszam)
.Select(x => new SelectListItem { Value = x.ID.ToString(), Text = x.Szoveg }).ToList();
}
}
var pm = new PopUpModel(infoTabok, TanoraNaplozasInfo);
infoTabok.TabList = GetNaplozasInfoTabs(model, naplozasInfoModel, isErtekelestModosithatNaplozarasTipusaMiatt);
if (!model.OraAdat.IsTanorankivuli)
{
infoTabok.Fejlec = $"{OrarendResource.NaplozasiAdatok} ({naplozasInfoModel.TanoraAdataiInfo.OratartamEsOraszam}, {infoTabok.Tantargy}, {infoTabok.OsztalyCsoport})";
}
else
{
infoTabok.Fejlec = $"{OrarendResource.NaplozasiAdatok} ({naplozasInfoModel.TanoraAdataiInfo.OraTartam}, {infoTabok.Tantargy}, {infoTabok.OsztalyCsoport})";
naplozasInfoModel.TanoraAdataiInfo.OratartamEsOraszam = naplozasInfoModel.TanoraAdataiInfo.OraTartam;
}
pm.AddCancelBtn(pm, closeTanoraMuveletWindowEvent);
return PartialView(Constants.General.PopupView, pm);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
private ActionResult GetNaplozasPopUp(NaplozasElokeszitesModel model, TanoraMuveletek muveletPram, bool isErtekelestModosithatNaplozarasTipusaMiatt, bool tanarSorszamozhat, bool elmaradtTanitasiOraRogzitesenekTiltasa, int? szervezetTipusId) // bool csakErtekelestNemModositha)
{
try
{
var connectionType = ConnectionTypeExtensions.GetActiveSessionConnectionType();
var naplozasTabok = new TanoraNaplozasTabok(szervezetTipusId);
naplozasTabok.OsztalyCsoport = model.OraAdat.OsztalyCsoportNev;
naplozasTabok.Tantargy = model.OraAdat.TantargyNev;
var naplozasModel = new TanoraNaplozas(fileServiceHelper, model.IsMentorOra, szervezetTipusId);
naplozasModel.Fill(model, tanarSorszamozhat, elmaradtTanitasiOraRogzitesenekTiltasa);
naplozasModel.TanoraAdatai.NaplozasDatum = muveletPram.NaplozasDatum;
naplozasModel.Mulasztas.SetIsAmi();
if (szervezetTipusId.HasValue && szervezetTipusId.Value == (int)SzervezetTipusEnum.Dualis)
{
var osztalyCsoportHelper = new OsztalyCsoportHelper(connectionType);
var csoportSzakmajegyzekek = osztalyCsoportHelper.GetCsoportTanuloinakSzakmajegyzeke(naplozasModel.TanoraAdatai.OsztalyCsoportId.Value, DateTime.Now);
if (csoportSzakmajegyzekek.Count > 0)
{
var csoportSzakmajegyzekekSzakmairanyTipusId = !csoportSzakmajegyzekek[0].SzakmairanyTipusId.HasValue || csoportSzakmajegyzekek[0].SzakmairanyTipusId.Value == (int)SzakmairanyTipusEnum.na ? 0 : csoportSzakmajegyzekek[0].SzakmairanyTipusId.Value;
var csoportSzakmajegyzekekSzakmaTipusId = !csoportSzakmajegyzekek[0].SzakmaTipusId.HasValue || csoportSzakmajegyzekek[0].SzakmaTipusId.Value == (int)SzakmaTipusEnum.na ? 0 : csoportSzakmajegyzekek[0].SzakmaTipusId.Value;
naplozasModel.Mulasztas.TanulasiEgysegList = new TanoraHelper(connectionType).GetTanulasiEgysegek()
.Where(e => csoportSzakmajegyzekekSzakmairanyTipusId == (e.SzakmairanyTipusId ?? 0) && csoportSzakmajegyzekekSzakmaTipusId == e.SzakmaTipusId).OrderBy(o => o.Sorszam)
.Select(x => new SelectListItem { Value = x.ID.ToString(), Text = x.Szoveg }).ToList();
}
}
var infoModel = new TanoraNaplozasInfoModel(szervezetTipusId);
naplozasModel.Convert(infoModel);
var pm = new PopUpModel(naplozasTabok, TanoraNaplozas);
if (model.OraAdat.IsElmaradt)
{
var dktFileHelper = new DktFileHelper(connectionType);
double osszMeret = dktFileHelper.GetHaziFeladatCsatolmanyokOsszMeret();
int maxMegengedettAdatmennyiseg = dktFileHelper.GetMaxAdatmennyisegFelhasznalokent(ClaimData.FelhasznaloId);
naplozasTabok.TabList = GetNaplozasInfoTabs(model, infoModel, isErtekelestModosithatNaplozarasTipusaMiatt, naplozasModel.HaziFeladat);
if (!model.SzervezetTipusId.HasValue)
{
naplozasModel.HaziFeladat.UsedFilesSizeInKiloBytesTotal = osszMeret;
naplozasModel.HaziFeladat.MaxAllowedFilesSizeInKiloBytes = maxMegengedettAdatmennyiseg;
naplozasModel.HaziFeladat.IsTanarVehetFelHazitNaplozasNelkul = true;
naplozasModel.HaziFeladat.IsHaziFeladatHelper = true;
naplozasModel.HaziFeladat.NapDatuma = model.OraAdat.OraKezdete.Date;
naplozasModel.HaziFeladat.TanitasiOraId = model.OraAdat.TanitasiOraId;
}
}
else
{
naplozasTabok.TabList = GetNaplozasDetailTabs(model, naplozasModel, isErtekelestModosithatNaplozarasTipusaMiatt);
}
muveletPram.IsTanoranKivuli = model.OraAdat.IsTanorankivuli;
naplozasTabok.TanoraMuveletek = muveletPram;
if (!naplozasTabok.TanoraMuveletek.IsTanoranKivuli)
{
naplozasTabok.Fejlec = $"{OrarendResource.TanoraNaplozasa} ({naplozasModel.TanoraAdatai.OratartamEsOraszam}, {naplozasTabok.Tantargy}, {naplozasTabok.OsztalyCsoport})";
}
else
{
naplozasTabok.Fejlec = $"{OrarendResource.Naplozas} ({model.OraTartamText}, {naplozasTabok.Tantargy}, {naplozasTabok.OsztalyCsoport})";
naplozasModel.TanoraAdatai.OratartamEsOraszam = model.OraTartamText;
}
pm.AddCancelBtn(pm, closeTanoraMuveletWindowEvent);
if (model.Naplozhat)
{
var systemSettingsHelper = new SystemSettingsHelper(connectionType);
if (!model.IsTanora)
{
var elmaradtOraRogzitesTestreszabas = !systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Elmaradt_tanitasi_ora_rogzitesenek_tiltasa);
if (elmaradtOraRogzitesTestreszabas)
{
pm.Buttons.Add(new Helpers.Modal.ModalButtonModel
{
Name = elmaradt,
Text = OrarendResource.ElmaradtOra,
EventName = saveNemMegtartottTanoraEvent
});
}
pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = naplozas, Text = OrarendResource.OraNaplozasa, EventName = saveTanoraEvent });
}
else
{
if (model.Helyettesites.Tipus == (int)HelyettesitesTipusEnum.oraosszevonas)
{
pm.Buttons.Add(new Helpers.Modal.ModalButtonModel
{
Name = oraOsszevonasDelete,
Text = OrarendResource.OraOsszevonasTorlese,
EventName = $"function(){{ {oraOsszevonasDeleteEvent}({model.OraAdat.TanitasiOraId}); }}"
});
}
else if (!model.OraAdat.IsAdminAltalKiirt)
{
pm.Buttons.Add(new Helpers.Modal.ModalButtonModel
{
Name = delete,
Text = OrarendResource.NaplozasiAdatokTorlese,
EventName = $"function(){{ {deleteTanoraEvent}('{model.OraAdat.VanOralatogatasa}', {(naplozasModel.HaziFeladat.HaziFeladat == null ? "false" : "true")}); }}"
});
}
var csengetesiRendOrakHelper = new CsengetesiRendOrakHelper(connectionType);
if (!model.IsElmaradtOra)
{
pm.Buttons.Add(new Helpers.Modal.ModalButtonModel { Name = naplozas, Text = OrarendResource.NaplozasValtoztatasainakMentese, EventName = saveTanoraEvent });
if (TanarKezelhetHelyettesitest())
{
var eventId = 0;
if (model.OraAdat.CsengetesirendId.HasValue && model.OraAdat.Oraszam.HasValue)
{
var csengrendOraId = csengetesiRendOrakHelper.GetCsengetesiRendOraId(model.OraAdat.CsengetesirendId.Value, model.OraAdat.Oraszam.Value);
if (csengrendOraId.HasValue)
{
eventId = csengrendOraId.Value;
}
}
pm.Buttons.Add(new Helpers.Modal.ModalButtonModel
{
Name = oraOsszevonas,
Text = OrarendResource.OraOsszevonas,
EventName = $"function(){{ {oraOsszevonasPopUpEvent}({eventId},'{model.OraAdat.IsTanorankivuli.ToString().ToLower()}'); }}"
});
}
}
else
{
var tanarVehetEFelOratMaganak = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Tanar_vehet_e_fel_orat_maganak);
if (model.OraAdat.CsengetesirendId.HasValue && model.OraAdat.Oraszam.HasValue && tanarVehetEFelOratMaganak)
{
var eventId = 0;
var csengrendOraId = csengetesiRendOrakHelper.GetCsengetesiRendOraId(model.OraAdat.CsengetesirendId.Value, model.OraAdat.Oraszam.Value);
if (csengrendOraId.HasValue)
{
eventId = csengrendOraId.Value;
}
pm.Buttons.Add(new Helpers.Modal.ModalButtonModel
{
Name = ujOraFelvitele,
Text = OrarendResource.UjOraFelvitele,
EventName = $"function(){{ {ujOraFelvitelePopUpEvent}({eventId},{(int)CalendarOraTypeEnum.UresOra},{(int)EventTypeEnum.UjEgyediOraFelvitel}); }}"
});
}
}
}
}
return PartialView(Constants.General.PopupView, pm);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
private bool TanarKezelhetHelyettesitest()
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
return !systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Pedagogusok_csak_az_eloirt_helyettesiteseiket_regisztralhatjak_a_haladasi_naploban);
}
private List<TabStripItemModel> GetNaplozasDetailTabs(NaplozasElokeszitesModel model, TanoraNaplozas naplozasModel, bool isErtekelestModosithatNaplozarasTipusaMiatt)
{
var list = new List<TabStripItemModel>();
if (model.Naplozhat && model.OraAdat.OsztalyCsoportId.HasValue)
{
var mulasztasModel = naplozasModel.Mulasztas;
mulasztasModel.HianyzokAutoKitoltes = !model.OraAdat.TanitasiOraId.HasValue && ProfileUtils.IsHianyzokAutoKitoltesEnabled;
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var ds = helper.GetOraMentessegList(model.OraAdat.OraKezdete, model.OraAdat.OraVege, model.OraAdat.OsztalyCsoportId.Value);
if (ds.Tables[0].Rows.Count == 1)
{
DataRow row = ds.Tables[0].Rows[0];
mulasztasModel.JogviszonySzunetletetokDb = row.Field<int>("JogviszonyDb");
mulasztasModel.JogviszonySzunetletetok = row.Field<string>("JogviszonyNevSor");
mulasztasModel.SzakmaiGyakorlatonLevokDb = row.Field<int>("SzakmaiGyakDb");
mulasztasModel.SzakmaiGyakorlatonLevok = row.Field<string>("SzakmaiGyakNevSor");
}
list.Add(new TabStripItemModel()
{
ItemId = "1",
ItemName = OrarendResource.Naplozas,
PartialViewName = MulasztasNaplozas_Tab,
Model = mulasztasModel,
IsActive = model.Naplozhat,
});
}
var isTanoraiCeluOsztalyCsoportDisabled = false;
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isNemTanoraiCeluCsoportokErtekelesEnabled = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.nem_tanorai_celu_csoportok_ertekelesi_lehetosege);
if (!isNemTanoraiCeluCsoportokErtekelesEnabled && model.OraAdat.OsztalyCsoportId.HasValue)
{
isTanoraiCeluOsztalyCsoportDisabled = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).IsOsztalyCsoportNemTanoraiCeluCsoport(model.OraAdat.OsztalyCsoportId.Value);
}
if (model.Ertekelhet && !isTanoraiCeluOsztalyCsoportDisabled && !model.SzervezetTipusId.HasValue)//2.110-ben ha megoldodik a telje sDualis akkor vissze kell keruljon - KRETA2-12511
{
if (isErtekelestModosithatNaplozarasTipusaMiatt)
{
var ertekelesListModel = new ErtekelesController(Authorization).NaplozasPartialViewModel();
ertekelesListModel.IsNaploErtekeles = true;
ertekelesListModel.Datum = model.OraAdat.OraKezdete.Date;
ertekelesListModel.TantargyId = model.OraAdat.TantargyId;
ertekelesListModel.TantargyIdSearch = model.OraAdat.TantargyId;
ertekelesListModel.OsztalyCsoportId = model.OraAdat.OsztalyCsoportId;
ertekelesListModel.OsztalyCsoportIdSearch = model.OraAdat.OsztalyCsoportId;
ertekelesListModel.TanarIdSearch = model.OraAdat.TanarId;
ertekelesListModel.IsGridAutoBinded = false;
if (model.OraAdat.SzamonkeresModId.HasValue)
{
ertekelesListModel.ErtekelesTema = model.OraAdat.SzamonkeresMegnevezes;
ertekelesListModel.ErtekelesModId = model.OraAdat.SzamonkeresModId.Value;
}
list.Add(new TabStripItemModel()
{
ItemId = "2",
ItemName = OrarendResource.Ertekelesek,
PartialViewName = TanuloErtekelesIndex,
Model = ertekelesListModel,
});
}
var feljegyzesekModel = new FeljegyzesekSearchModel
{
ControllerName = Constants.Controllers.Beirasok,
ApiControllerName = Constants.ApiControllers.BeirasokApi,
};
feljegyzesekModel.IsNaploFeljegyzes = true;
feljegyzesekModel.CsoportIdSearch = model.OraAdat.OsztalyCsoportId;
list.Add(new TabStripItemModel()
{
ItemId = "3",
ItemName = TanarResource.Feljegyzesek,
PartialViewName = FeljegyzesekIndex,
Model = feljegyzesekModel
});
}
if (model.Naplozhat && !model.SzervezetTipusId.HasValue)
{
var haziModel = naplozasModel.HaziFeladat;
var dktFileHelper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType());
double osszMeret = dktFileHelper.GetHaziFeladatCsatolmanyokOsszMeret();
int maxMegengedettAdatmennyiseg = dktFileHelper.GetMaxAdatmennyisegFelhasznalokent(ClaimData.FelhasznaloId);
haziModel.UsedFilesSizeInKiloBytesTotal = osszMeret;
haziModel.MaxAllowedFilesSizeInKiloBytes = maxMegengedettAdatmennyiseg;
var haziFeladatTab = new TabStripItemModel()
{
ItemId = "4",
ItemName = OrarendResource.HaziFeladat,
PartialViewName = HaziFeladat_Tab,
Model = haziModel
};
list.Add(haziFeladatTab);
}
if (!model.SzervezetTipusId.HasValue)//2.110-ben ha megoldodik a telje sDualis akkor vissze kell keruljon - KRETA2-12511
{
list.Add(new TabStripItemModel
{
ItemId = "5",
ItemName = OrarendResource.KorabbiOrakNaplozasiAdatai,
PartialViewName = KorabbiOrakNaplozasiAdatai_Tab,
Model = naplozasModel.TanorakSearchModel,
});
}
bool aktivTab = list.Where(x => x.IsActive).ToList().Count <= 0;
list.Add(new TabStripItemModel
{
ItemId = "6",
ItemName = OrarendResource.TanoraAdatai,
PartialViewName = TanoraAdatai_Tab,
Model = naplozasModel.TanoraAdatai,
IsActive = aktivTab
});
if (!model.SzervezetTipusId.HasValue)
{
list.Add(new TabStripItemModel
{
ItemId = "7",
ItemName = OrarendResource.NaplozasDigitalisOktatas,
PartialViewName = NaplozasDigitalisOktatas_Tab,
Model = naplozasModel.DigitalisOktatasAdatok
});
}
return list;
}
private List<TabStripItemModel> GetNaplozasInfoTabs(NaplozasElokeszitesModel model, TanoraNaplozasInfoModel naplozasInfoModel, bool isErtekelestModosithatNaplozarasTipusaMiatt, HaziFeladatNaplozas haziFeladatNaplozas = null)
{
var list = new List<TabStripItemModel>();
bool hasSzamonkeresElorejelzesTab = model.OraAdat.OraKezdete.Date > DateTime.Now &&
(ClaimData.FelhasznaloId == model.OraAdat.TanarId || (model.Helyettesites != null && ClaimData.FelhasznaloId == model.Helyettesites.TanarId));
list.Add(new TabStripItemModel()
{
ItemId = Info_TanoraAdatai_Tab,
ItemName = OrarendResource.TanoraAdatai,
PartialViewName = Info_TanoraAdatai_Tab,
Model = naplozasInfoModel.TanoraAdataiInfo,
IsActive = !hasSzamonkeresElorejelzesTab
});
if (!model.IsElmaradtOra)
{
list.Add(new TabStripItemModel()
{
ItemId = Info_MulasztasNaplozas_Tab,
ItemName = OrarendResource.MulasztasiAdatok,
PartialViewName = Info_MulasztasNaplozas_Tab,
Model = naplozasInfoModel.MulasztasInfo,
});
if (!model.SzervezetTipusId.HasValue)//2.110-ben ha megoldodik a telje sDualis akkor vissze kell keruljon - KRETA2-12511
{
list.Add(new TabStripItemModel()
{
ItemId = KorabbiOrakNaplozasiAdatai_Tab,
ItemName = OrarendResource.KorabbiOrakNaplozasiAdatai,
PartialViewName = KorabbiOrakNaplozasiAdatai_Tab,
Model = naplozasInfoModel.TanorakSearchModel,
});
if (hasSzamonkeresElorejelzesTab)
{
list.Add(new TabStripItemModel()
{
ItemId = SzamonkeresElorejelzes_Tab,
ItemName = OrarendResource.SzamonkeresElorejelzes,
PartialViewName = SzamonkeresElorejelzes_Tab,
Model = naplozasInfoModel.SzamonkeresElorejelzesModel,
IsActive = hasSzamonkeresElorejelzesTab
});
}
if (isErtekelestModosithatNaplozarasTipusaMiatt)
{
var ertekelesListModel = new ErtekelesController(Authorization).NaplozasPartialViewModel();
ertekelesListModel.IsNaploErtekeles = true;
ertekelesListModel.Datum = model.OraAdat.OraKezdete.Date;
ertekelesListModel.TantargyId = model.OraAdat.TantargyId;
ertekelesListModel.TantargyIdSearch = model.OraAdat.TantargyId;
ertekelesListModel.OsztalyCsoportId = model.OraAdat.OsztalyCsoportId;
ertekelesListModel.OsztalyCsoportIdSearch = model.OraAdat.OsztalyCsoportId;
ertekelesListModel.TanarIdSearch = model.OraAdat.TanarId;
ertekelesListModel.IsGridAutoBinded = false;
if (model.OraAdat.SzamonkeresModId.HasValue)
{
ertekelesListModel.ErtekelesTema = model.OraAdat.SzamonkeresMegnevezes;
ertekelesListModel.ErtekelesModId = model.OraAdat.SzamonkeresModId.Value;
}
list.Add(new TabStripItemModel()
{
ItemId = "2",
ItemName = OrarendResource.Ertekelesek,
PartialViewName = TanuloErtekelesIndex,
Model = ertekelesListModel,
});
}
}
}
else
{
if (!model.SzervezetTipusId.HasValue)
{
list.Add(new TabStripItemModel()//2.110-ben ha megoldodik a telje sDualis akkor vissze kell keruljon - KRETA2-12511
{
ItemId = "5",
ItemName = OrarendResource.KorabbiOrakNaplozasiAdatai,
PartialViewName = KorabbiOrakNaplozasiAdatai_Tab,
Model = naplozasInfoModel.TanorakSearchModel,
});
if (haziFeladatNaplozas != null)
{
AddHaziFeladatNincsZarasElmaradtOra();
}
else
{
AddHaziFeladatZarasVagyJovobeliOra();
}
if (!model.IsElmaradtOra)
{
list.Add(new TabStripItemModel()
{
ItemId = Info_DigitalisOktatas_Tab,
ItemName = OrarendResource.NaplozasDigitalisOktatas,
PartialViewName = Info_DigitalisOktatas_Tab,
Model = naplozasInfoModel.DigitalisOktatasModel,
});
}
}
}
return list;
void AddHaziFeladatNincsZarasElmaradtOra()
{
list.Add(new TabStripItemModel()
{
ItemId = "4",
ItemName = OrarendResource.HaziFeladat,
PartialViewName = HaziFeladat_Tab,
Model = haziFeladatNaplozas
});
}
void AddHaziFeladatZarasVagyJovobeliOra()
{
bool isJovobeliOra = model.OraAdat.OraKezdete.Date > DateTime.Now.Date;
var haziFeladatTab = new TabStripItemModel()
{
ItemId = Info_HaziFeladat_Tab,
ItemName = OrarendResource.HaziFeladat
};
if (isJovobeliOra)
{
haziFeladatTab.PartialViewName = HaziFeladat_Tab;
var dktFileHelper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType());
double osszMeret = dktFileHelper.GetHaziFeladatCsatolmanyokOsszMeret();
int maxMegengedettAdatmennyiseg = dktFileHelper.GetMaxAdatmennyisegFelhasznalokent(ClaimData.FelhasznaloId);
haziFeladatTab.Model = new HaziFeladatNaplozas
{
Hatarido = model.Hazifeladat.Hatarido,
HaziFeladat = model.Hazifeladat.Szoveg,
Id = model.Hazifeladat.Id,
IsTanarVehetFelHazitNaplozasNelkul = true,
OrarendiOraId = model.OraAdat.OrarendiOraId,
HelyettesitoId = model.Helyettesites.TanarId,
NapDatuma = model.OraAdat.OraKezdete.Date,
IsHaziFeladatHelper = true,
UsedFilesSizeInKiloBytesTotal = osszMeret,
CsatolmanyId = model.Hazifeladat.CsatolmanyId,
MaxAllowedFilesSizeInKiloBytes = maxMegengedettAdatmennyiseg
};
}
else
{
haziFeladatTab.PartialViewName = Info_HaziFeladat_Tab;
haziFeladatTab.Model = naplozasInfoModel.HaziFeladatInfo;
}
list.Add(haziFeladatTab);
}
}
private WizardElovalasztoModel GetWizardElovalasztoModel(bool isSzakmaiGyakorlat = false)
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var model = new WizardElovalasztoModel
{
TanarVehetFelOratMaganak = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Tanar_vehet_e_fel_orat_maganak),
LehetOratFelvenniTTFNelkul = isSzakmaiGyakorlat ? systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_egyedi_rogzites) : systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Lehet_orat_felvenni_TTF_nelkul),
TanarKezelhetHelyettesitest = TanarKezelhetHelyettesitest()
};
return model;
}
}
}

View file

@ -0,0 +1,107 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Extensions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Security;
using Kreta.Web.Utils;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)]
public class CsoportOrarendController : Controller
{
public ActionResult Index()
{
var model = new CsoportVezetoOrarendModel();
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.HetirendJson = orarendHelper.GetHetirendek();
model.NaptariHetekHetirendJson = orarendHelper.GetNaptariHetekHetirendek();
#region Calendar megjelenítés
var co = orarendHelper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin.Subtract(new TimeSpan(0, 15, 0)); // "15 perccel legyen előbb"
model.CalendarMaxTime = co.CalendarMax.Add(new TimeSpan(0, 15, 0)); // "15 perccel legyen később"
model.CsengetesiRendMinTime = new TimeSpan();
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
#endregion Calendar megjelenítés
model.ShowKerdoivPopup = new KerdoivHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetShowKerdoivPopup(ClaimData.IsAlkalmazottPedagogus);
model.TabList = GetTanariOrarendTabs();
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSystemConnectionType());
ViewBag.napirendStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.napirendEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja);
return View("Index", model);
}
private List<TabStripItemModel> GetTanariOrarendTabs()
{
var list = new List<TabStripItemModel>();
var haladasiNaploFulTipusa = ProfileUtils.HaladasiNaploFulTipusa;
list.Add(new TabStripItemModel()
{
ItemId = "0",
ItemName = AdminisztracioResource.Tanorak,
Area = "Orarend",
Controller = "CsoportOrarend",
Action = "GetTanorak",
RouteParameters = new Dictionary<string, string>()
{
{"index", "0"}
},
IsActive = haladasiNaploFulTipusa == HaladasiNaploFulTipus.Tanorak
});
list.Add(new TabStripItemModel()
{
ItemId = "1",
ItemName = AdminisztracioResource.Napirend,
Area = "Orarend",
Controller = "CsoportOrarend",
Action = "GetTanoranKivuliFoglalkozasok",
RouteParameters = new Dictionary<string, string>()
{
{"index", "1"}
},
IsActive = haladasiNaploFulTipusa == HaladasiNaploFulTipus.Napirend
});
return list;
}
public ActionResult GetTanorak(int index = 0)
{
var model = new TanariOrarendTanorakModel()
{
Index = index
};
return View("Tanorak_Tab", model);
}
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1)
{
var model = new TanariOrarendTanoranKivuliFoglalkozasokModel()
{
Index = index
};
return View("TanoranKivuliFoglalkozasok_Tab", model);
}
}
}

View file

@ -0,0 +1,50 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue, KretaClaimPackages.IsDefaultAdminUser.ClaimValue)]
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
[Attributes.KretaGlobalLanguageChangeActionFilter(LanguageCode = "hu-Dualis")]
public class DualisAdminOsztalyOrarendController : BaseAdminOsztalyOrarendController
{
public bool IsDualisKepzesEnabled => new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()).GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.DualisKepzes, IntezmenyConfigTipusEnum.IsEnabled);
public ActionResult GetOrarendiOrak(int index = 0)
{
return GetOrarendiOrak(index, IsDualisKepzesEnabled);
}
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1)
{
return GetTanoranKivuliFoglalkozasok(index, IsDualisKepzesEnabled);
}
public ActionResult OpenNewOrarendiOraPopUp(OsztalyOrarendModel model)
{
return OpenNewOrarendiOraPopUp(model, IsDualisKepzesEnabled);
}
public ActionResult OpenModifyOrarendiOraPopUp(CalendarModel model)
{
return OpenModifyOrarendiOraPopUp(model, IsDualisKepzesEnabled);
}
public ActionResult OpenNewFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenNewFoglalkozasokOraPopUp(model, IsDualisKepzesEnabled);
}
public ActionResult OpenModifyFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenModifyFoglalkozasokOraPopUp(model, IsDualisKepzesEnabled);
}
}
}

View file

@ -0,0 +1,50 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue, KretaClaimPackages.IsDefaultAdminUser.ClaimValue)]
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
[Attributes.KretaGlobalLanguageChangeActionFilter(LanguageCode = "hu-Dualis")]
public class DualisAdminTanariOrarendController : BaseAdminTanariOrarendController
{
public bool IsDualisKepzesEnabled => new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()).GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.DualisKepzes, IntezmenyConfigTipusEnum.IsEnabled);
public ActionResult GetOrarendiOrak(int index = 0)
{
return GetOrarendiOrak(index, IsDualisKepzesEnabled);
}
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1)
{
return GetTanoranKivuliFoglalkozasok(index, IsDualisKepzesEnabled);
}
public ActionResult OpenNewOrarendiOraPopUp(CalendarModel model)
{
return OpenNewOrarendiOraPopUp(model, IsDualisKepzesEnabled);
}
public ActionResult OpenModifyOrarendiOraPopUp(CalendarModel model)
{
return OpenModifyOrarendiOraPopUp(model, IsDualisKepzesEnabled);
}
public ActionResult OpenNewFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenNewFoglalkozasokOraPopUp(model, IsDualisKepzesEnabled);
}
public ActionResult OpenModifyFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenModifyFoglalkozasokOraPopUp(model, IsDualisKepzesEnabled);
}
}
}

View file

@ -0,0 +1,50 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue, KretaClaimPackages.IsDefaultAdminUser.ClaimValue)]
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
[Attributes.KretaGlobalLanguageChangeActionFilter(LanguageCode = "hu-Dualis")]
public class DualisAdminTeremOrarendController : BaseAdminTeremOrarendController
{
public bool IsDualisKepzesEnabled => new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()).GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.DualisKepzes, IntezmenyConfigTipusEnum.IsEnabled);
public ActionResult GetOrarendiOrak(int index = 0)
{
return GetOrarendiOrak(index, IsDualisKepzesEnabled);
}
public ActionResult GetTanoranKivuliFoglalkozasok(int index = 1)
{
return GetTanoranKivuliFoglalkozasok(index, IsDualisKepzesEnabled);
}
public ActionResult OpenNewOrarendiOraPopUp(OsztalyOrarendModel model)
{
return OpenNewOrarendiOraPopUp(model, IsDualisKepzesEnabled);
}
public ActionResult OpenModifyOrarendiOraPopUp(CalendarModel model)
{
return OpenModifyOrarendiOraPopUp(model, IsDualisKepzesEnabled);
}
public ActionResult OpenNewFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenNewFoglalkozasokOraPopUp(model, IsDualisKepzesEnabled);
}
public ActionResult OpenModifyFoglalkozasokOraPopUp(CalendarModel model)
{
return OpenModifyFoglalkozasokOraPopUp(model, IsDualisKepzesEnabled);
}
}
}

View file

@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Web.Mvc;
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.Elokeszites;
using Kreta.BusinessLogic.Logic.Naplozas.Validacio;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Exceptions;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Feljegyzes.Models;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Areas.TanuloErtekeles.Controllers;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
using Kreta.Web.Utils;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
[Attributes.KretaGlobalLanguageChangeActionFilter(LanguageCode = "hu-Dualis")]
public class DualisTanariOrarendController : BaseTanariOrarendController
{
private IKretaAuthorization Authorization { get; }
private readonly IFileServiceHelper fileServiceHelper;
public bool IsDualisKepzesEnabled => new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType()).GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.DualisKepzes, IntezmenyConfigTipusEnum.IsEnabled);
public int? SzervezetTipusId => IsDualisKepzesEnabled ? (int)SzervezetTipusEnum.Dualis : (int?)null;
public DualisTanariOrarendController(IKretaAuthorization authorization, IFileServiceHelper fileServiceHelper) : base(authorization, fileServiceHelper)
{
Authorization = authorization;
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
}
public ActionResult TanorakOrarendEvent(TanoraIdBeallitasModel model)
{
return TanorakOrarendEvent(model, SzervezetTipusId);
}
public DateTime GetTanevUtolsoNapja()
{
return GetTanevUtolsoNapja(SzervezetTipusId);
}
}
}

View file

@ -0,0 +1,393 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core.FileService;
using Kreta.Enums.ManualEnums;
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.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsSzirIntezmeny.ClaimValue, KretaClaimPackages.IsPortas.ClaimValue)]
public class HazifeladatokListajaController : Controller
{
private readonly IFileService FileService;
public HazifeladatokListajaController(IFileService fileService)
{
FileService = fileService ?? throw new ArgumentNullException(nameof(fileService));
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public ActionResult Index()
{
var model = new HazifeladatokListajaSrcModel
{
HazifeladatokListajaTipus = HazifeladatokListajaTipusEnum.Admin,
OsztalyCsoportComboUrl = nameof(ComboBoxHelperApiController.GetOsztalyCsoportListByEvfolyam),
IsKapcsolodoOsztalyCsoportokVisible = true,
FeladatEllatasiHelyId = ClaimData.FelhelySzuro
};
return View("Index", model);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult IndexTanar()
{
var model = new HazifeladatokListajaSrcModel
{
HazifeladatokListajaTipus = HazifeladatokListajaTipusEnum.Tanar,
OsztalyCsoportComboUrl = nameof(ComboBoxHelperApiController.GetOsztalyCsoportListByEvfolyam),
TanarIdSrc = ClaimData.FelhasznaloId,
IsJustTanar = true
};
return View("Index", model);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult FeladatokListajaTanar()
{
var model = new FeladatokListajaSrcModel
{
HazifeladatokListajaTipus = HazifeladatokListajaTipusEnum.Tanar,
OsztalyCsoportComboUrl = nameof(ComboBoxHelperApiController.GetOsztalyCsoportListByEvfolyam),
TanarIdSrc = ClaimData.FelhasznaloId,
IsJustTanar = true
};
return View("FeladatokListajaIndex", model);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public ActionResult FeladatokListaja()
{
var model = new FeladatokListajaSrcModel
{
HazifeladatokListajaTipus = HazifeladatokListajaTipusEnum.Admin,
OsztalyCsoportComboUrl = nameof(ComboBoxHelperApiController.GetOsztalyCsoportListByEvfolyam),
IsKapcsolodoOsztalyCsoportokVisible = true,
FeladatEllatasiHelyId = ClaimData.FelhelySzuro
};
return View("FeladatokListajaIndex", model);
}
[MvcRolePackageAuthorize(KretaClaimPackages.CsoportVezeto.ClaimValue)]
public ActionResult IndexCsopvez()
{
var model = new HazifeladatokListajaSrcModel
{
HazifeladatokListajaTipus = HazifeladatokListajaTipusEnum.Csopvez,
OsztalyCsoportComboUrl = nameof(ComboBoxHelperApiController.GetCsoportVezListWithTanoraiCeluak)
};
return View("Index", model);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue)]
public ActionResult IndexOfo()
{
var model = new HazifeladatokListajaSrcModel
{
HazifeladatokListajaTipus = HazifeladatokListajaTipusEnum.Ofo,
OsztalyCsoportComboUrl = nameof(ComboBoxHelperApiController.GetTanitottOsztalyokList),
IsKapcsolodoOsztalyCsoportokVisible = true,
KellKapcsolodoCsoportokSrc = true
};
return View("Index", model);
}
[HttpPost]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult GetOrarendEvent(int eventId, bool isTanitasiOra_BOOL, DateTime haziFeladatRogzitesDatuma)
{
CalendarModel calendar = new CalendarModel();
calendar.EventId = eventId;
calendar.OraType = isTanitasiOra_BOOL ? CalendarOraTypeEnum.TanitasiOra : CalendarOraTypeEnum.OrarendiOra;
calendar.Start = haziFeladatRogzitesDatuma;
return OrarendEvent(calendar);
}
[HttpPost]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult GetFeladatEvent(int eventId, bool isTanitasiOra_BOOL, DateTime haziFeladatRogzitesDatuma, int feladatTipusId)
{
CalendarModel calendar = new CalendarModel();
calendar.EventId = eventId;
calendar.OraType = isTanitasiOra_BOOL ? CalendarOraTypeEnum.TanitasiOra : CalendarOraTypeEnum.OrarendiOra;
calendar.Start = haziFeladatRogzitesDatuma;
var feladatTipusEnum = (FeladatTipusEnum)feladatTipusId;
return FeladatEvent(calendar, feladatTipusEnum);
}
[HttpPost]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult GetOrarendModEvent(int eventId, bool isTanitasiOra_BOOL, DateTime haziFeladatRogzitesDatuma)
{
CalendarModel calendar = new CalendarModel();
calendar.EventId = eventId;
calendar.OraType = isTanitasiOra_BOOL ? CalendarOraTypeEnum.TanitasiOra : CalendarOraTypeEnum.OrarendiOra;
calendar.Start = haziFeladatRogzitesDatuma;
return OrarendModEvent(calendar);
}
[HttpPost]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult GetFeladatModEvent(int eventId, bool isTanitasiOra_BOOL, DateTime haziFeladatRogzitesDatuma, int feladatTipusId)
{
CalendarModel calendar = new CalendarModel();
calendar.EventId = eventId;
calendar.OraType = isTanitasiOra_BOOL ? CalendarOraTypeEnum.TanitasiOra : CalendarOraTypeEnum.OrarendiOra;
calendar.Start = haziFeladatRogzitesDatuma;
var feladatTipusEnum = (FeladatTipusEnum)feladatTipusId;
return FeladatModEvent(calendar, feladatTipusEnum);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult OrarendEvent(CalendarModel calendarModel)
{
if (calendarModel.OraType == CalendarOraTypeEnum.TanevRendjeEsemeny ||
calendarModel.OraType == CalendarOraTypeEnum.UresOra)
{
return null;
}
var model = new InformaciokOra();
var pm = new PopUpModel(model, "OraAdatok_Info");
model.TabList = GetDetailTabs(calendarModel);
pm = pm.AddCancelBtn(pm, "InformaciokOrarend.detailOraInfoCancel");
return PartialView(Constants.General.PopupView, pm);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult FeladatEvent(CalendarModel calendarModel, FeladatTipusEnum feladatTipus)
{
if (calendarModel.OraType == CalendarOraTypeEnum.TanevRendjeEsemeny ||
calendarModel.OraType == CalendarOraTypeEnum.UresOra)
{
return null;
}
var model = new InformaciokOra();
var pm = new PopUpModel(model, "OraAdatok_Info");
model.TabList = GetFeladatDetailTabs(calendarModel, feladatTipus);
pm = pm.AddCancelBtn(pm, "InformaciokOrarend.detailOraInfoCancel");
return PartialView(Constants.General.PopupView, pm);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult OrarendModEvent(CalendarModel calendarModel)
{
if (calendarModel.OraType == CalendarOraTypeEnum.TanevRendjeEsemeny ||
calendarModel.OraType == CalendarOraTypeEnum.UresOra)
{
return null;
}
var model = new InformaciokOra();
var pm = new PopUpModel(model, "OraAdatok_Mod");
model.TabList = GetModTabs(calendarModel);
pm = pm.AddCancelBtn(pm, "InformaciokOrarend.modOraCancel");
pm = pm.AddBtn(pm, "SaveHazifeladat", OrarendResource.HazifeladatModistasa, "InformaciokOrarend.modOraSave");
return PartialView(Constants.General.PopupView, pm);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult FeladatModEvent(CalendarModel calendarModel, FeladatTipusEnum feladatTipus)
{
if (calendarModel.OraType == CalendarOraTypeEnum.TanevRendjeEsemeny ||
calendarModel.OraType == CalendarOraTypeEnum.UresOra)
{
return null;
}
var model = new InformaciokOra();
var pm = new PopUpModel(model, "OraAdatok_Mod");
model.TabList = GetFeladatModTabs(calendarModel, feladatTipus);
pm = pm.AddCancelBtn(pm, "InformaciokOrarend.modOraCancel");
pm = pm.AddBtn(pm, "SaveHazifeladat", $"{GetFeladatTipusDisplayName(feladatTipus)} módosítása", "InformaciokOrarend.modOraSave");
return PartialView(Constants.General.PopupView, pm);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public List<TabStripItemModel> GetDetailTabs(CalendarModel calendarModel)
{
List<TabStripItemModel> list = new List<TabStripItemModel>();
list.Add(new TabStripItemModel()
{
ItemId = "2",
ItemName = OrarendResource.HaziFeladat,
Area = "Orarend",
Controller = "HazifeladatokListaja",
Action = "GetHaziFeladat_Tab",
RouteParameters = new Dictionary<string, string>() {
{ "Id", calendarModel.EventId.ToString() },
{ "EventType", ((int)calendarModel.OraType).ToString() },
{ "Date" , calendarModel.Start.Date.ToString() }
}
});
return list;
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public List<TabStripItemModel> GetFeladatDetailTabs(CalendarModel calendarModel, FeladatTipusEnum feladatTipus)
{
List<TabStripItemModel> list = new List<TabStripItemModel>();
list.Add(new TabStripItemModel()
{
ItemId = "2",
ItemName = GetFeladatTipusDisplayName(feladatTipus),
Area = "Orarend",
Controller = "HazifeladatokListaja",
Action = "GetFeladat_Tab",
RouteParameters = new Dictionary<string, string>() {
{ "Id", calendarModel.EventId.ToString() },
{ "EventType", ((int)calendarModel.OraType).ToString() },
{ "Date" , calendarModel.Start.Date.ToString() },
{ "FeladatTipusId", ((int)feladatTipus).ToString() }
}
});
return list;
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public List<TabStripItemModel> GetModTabs(CalendarModel calendarModel)
{
List<TabStripItemModel> list = new List<TabStripItemModel>();
list.Add(new TabStripItemModel()
{
ItemId = "2",
ItemName = OrarendResource.HaziFeladat,
Area = "Orarend",
Controller = "HazifeladatokListaja",
Action = "GetHaziFeladatMod_Tab",
RouteParameters = new Dictionary<string, string>() {
{ "Id", calendarModel.EventId.ToString() },
{ "EventType", ((int)calendarModel.OraType).ToString() },
{ "Date" , calendarModel.Start.Date.ToString() }
}
});
return list;
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public List<TabStripItemModel> GetFeladatModTabs(CalendarModel calendarModel, FeladatTipusEnum feladatTipus)
{
var list = new List<TabStripItemModel>();
list.Add(new TabStripItemModel()
{
ItemId = "2",
ItemName = GetFeladatTipusDisplayName(feladatTipus),
Area = "Orarend",
Controller = "HazifeladatokListaja",
Action = "GetFeladatMod_Tab",
RouteParameters = new Dictionary<string, string>() {
{ "Id", calendarModel.EventId.ToString() },
{ "EventType", ((int)calendarModel.OraType).ToString() },
{ "Date" , calendarModel.Start.Date.ToString() },
{ "FeladatTipusId", ((int)feladatTipus).ToString() }
}
});
return list;
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult GetHaziFeladat_Tab(int id, CalendarOraTypeEnum eventType, DateTime date)
{
var model = GetHaziFeladatok(id, eventType, date);
return PartialView("TanuloHaziFeladat_Tab", model);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult GetFeladat_Tab(int id, CalendarOraTypeEnum eventType, DateTime date, int feladatTipusId)
{
var model = GetHaziFeladatok(id, eventType, date, feladatTipusId);
return PartialView("TanuloHaziFeladat_Tab", model);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult GetHaziFeladatMod_Tab(int id, CalendarOraTypeEnum eventType, DateTime date)
{
var model = GetHaziFeladatokMod(id, eventType, date);
return PartialView("Hazifeladat_Bevitel", model);
}
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)]
public ActionResult GetFeladatMod_Tab(int id, CalendarOraTypeEnum eventType, DateTime date, int feladatTipusId)
{
var model = GetHaziFeladatokMod(id, eventType, date, feladatTipusId);
return PartialView("Hazifeladat_Bevitel", model);
}
private TanuloHaziFeladatTabModel GetHaziFeladatok(int eventId, CalendarOraTypeEnum oraType, DateTime date, int feladatTipusId = (int)FeladatTipusEnum.HaziFeladat)
{
try
{
return new TanuloHaziFeladatTabModel(new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHaziFeladatTabCo(eventId, oraType, date, ClaimData.IsTanuloOrGondviselo, feladatTipusId));
}
catch (Exception e)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran) { UnHandledException = e };
}
}
private HazifeladatBevitelModel GetHaziFeladatokMod(int eventId, CalendarOraTypeEnum oraType, DateTime date, int feladatTipusId = (int)FeladatTipusEnum.HaziFeladat)
{
try
{
var co = new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHaziFeladatTabCo(eventId, oraType, date, ClaimData.IsTanuloOrGondviselo, feladatTipusId);
var model = new HazifeladatBevitelModel()
{
Id = co.TanarHaziFeladat.Id,
ErvenyessegVege = co.TanarHaziFeladat.Hatarido,
Szoveg = co.TanarHaziFeladat.Szoveg,
FeladatTipusId = co.TanarHaziFeladat.FeladatTipusId
};
if (co.TanarHaziFeladat.Csatolmanyok.Count == 1)
model.CsatolmanyId = co.TanarHaziFeladat.Csatolmanyok.First().Key;
return model;
}
catch (Exception e)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran) { UnHandledException = e };
}
}
private string GetFeladatTipusDisplayName(FeladatTipusEnum feladatTipus)
{
return feladatTipus == FeladatTipusEnum.HaziFeladat ? OrarendResource.Feladat : feladatTipus.GetDisplayName(ClaimData.SelectedTanevID.Value);
}
}
}

View file

@ -0,0 +1,27 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Enums;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Gondviselo.ClaimValue)]
public class InformaciokFogadoorakController : Controller
{
public ActionResult Index()
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (!systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Fogadoorak_megjelenitese))
{
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
}
return View();
}
}
}

View file

@ -0,0 +1,226 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Security;
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.Helpers.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
public class InformaciokOrarendController : Controller
{
private readonly IFileServiceHelper fileServiceHelper;
private IKretaAuthorization Authorization { get; }
public InformaciokOrarendController(IKretaAuthorization authorization, IFileServiceHelper fileServiceHelper)
{
Authorization = authorization ?? throw new ArgumentNullException(nameof(authorization));
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
}
[MvcRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue, KretaClaimPackages.CsokkentettGondviselo.ClaimValue)]
public ActionResult Index()
{
var model = new InformaciokOrarendModel();
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var hetesekHelper = new HetesekHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.HetirendJson = helper.GetHetirendek();
model.NaptariHetekHetirendJson = helper.GetNaptariHetekHetirendek();
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (ClaimData.IsTanuloOrGondviselo && systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.hetesek_megjelenitese_az_elektronikus_ellenorzoben))
{
List<int> osztalyCsoportIdList = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloOsztalyIdList(ClaimData.FelhasznaloId);
var hetHelper = new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.AktualisHetSorszam = hetHelper.GetNaptariHetSorszamByDate(DateTime.Now);
if (osztalyCsoportIdList.Any())
{
var tanulok = hetesekHelper.GetHetesSzovegHetsorszammal(osztalyCsoportIdList);
var serializerSettings = new JsonSerializerSettings();
serializerSettings.StringEscapeHandling = StringEscapeHandling.EscapeNonAscii;
model.HetesekJson = JsonConvert.SerializeObject(tanulok, serializerSettings);
model.HetesekJson = model.HetesekJson.Replace("\x7F", "\\u007f");
}
}
var co = helper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin;
model.CalendarMaxTime = co.CalendarMax;
model.IsOraTemaTooltip = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Tanora_Tema_Az_Ellenorzoben);
return View("Index", model);
}
[HttpPost]
public ActionResult GetOrarendEvent(int eventId, bool isTanitasiOra_BOOL, DateTime haziFeladatRogzitesDatuma, int? tanuloId = null, string megoldva = null)
{
CalendarModel calendar = new CalendarModel();
calendar.EventId = eventId;
calendar.OraType = isTanitasiOra_BOOL ? CalendarOraTypeEnum.TanitasiOra : CalendarOraTypeEnum.OrarendiOra;
calendar.Start = haziFeladatRogzitesDatuma;
return OrarendEvent(calendar, tanuloId, megoldva);
}
public ActionResult OrarendEvent(CalendarModel calendarModel, int? tanuloId = null, string megoldva = null)
{
if (calendarModel.OraType == CalendarOraTypeEnum.TanevRendjeEsemeny ||
calendarModel.OraType == CalendarOraTypeEnum.UresOra)
{
return null;
}
var model = new InformaciokOra();
var pm = new PopUpModel(model, "OraAdatok_Info");
model.TabList = GetDetailTabs(calendarModel, tanuloId, megoldva);
pm = pm.AddCancelBtn(pm, "InformaciokOrarend.detailOraInfoCancel");
return PartialView(Constants.General.PopupView, pm);
}
public List<TabStripItemModel> GetDetailTabs(CalendarModel calendarModel, int? tanuloId = null, string megoldva = null)
{
List<TabStripItemModel> list = new List<TabStripItemModel>();
list.Add(new TabStripItemModel()
{
ItemId = "1",
ItemName = StringResourcesUtil.GetString(3331) /*Óra adatai*/,
Area = "Orarend",
Controller = "InformaciokOrarend",
Action = "GetOraAdatok",
RouteParameters = new Dictionary<string, string>() {
{ "Id", calendarModel.EventId.ToString() },
{ "EventType", ((int)calendarModel.OraType).ToString() },
{ "Date" , calendarModel.Start.Date.ToString() }
}
});
var routeParameters = new Dictionary<string, string>() {
{ "Id", calendarModel.EventId.ToString() },
{ "EventType", ((int)calendarModel.OraType).ToString() },
{ "Date" , calendarModel.Start.Date.ToString() }
};
if (tanuloId != null)
routeParameters.Add("TanuloId", tanuloId.ToString());
if (!string.IsNullOrWhiteSpace(megoldva))
routeParameters.Add("Megoldva", megoldva.ToString());
list.Add(new TabStripItemModel()
{
ItemId = "2",
ItemName = OrarendResource.HaziFeladat,
Area = "Orarend",
Controller = "InformaciokOrarend",
Action = "GetHaziFeladat_Tab",
RouteParameters = routeParameters
});
return list;
}
public ActionResult GetHaziFeladat_Tab(int id, CalendarOraTypeEnum eventType, DateTime date, int? tanuloId = null, string megoldva = null)
{
if (!Authorization.IsValidEvent(id, eventType, date))
{
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAzOldalMegtekintesehez);
}
var model = GetHaziFeladatok(id, eventType, date);
return PartialView("TanuloHaziFeladat_Tab", model);
}
public ActionResult GetOraAdatok(int id, CalendarOraTypeEnum eventType, DateTime date)
{
if (!Authorization.IsValidEvent(id, eventType, date))
{
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAzOldalMegtekintesehez);
}
var model = GetOraAdatai(id, eventType, date);
return PartialView("Info_TanuloOraAdatok_Tab", model);
}
private InformaciokOraAdatai GetOraAdatai(int eventId, CalendarOraTypeEnum eventType, DateTime date)
{
int? orarendiOraId = null;
int? tanitasiOraId = null;
var model = new InformaciokOraAdatai();
model.IsTanora = eventType == CalendarOraTypeEnum.TanitasiOra;
if (model.IsTanora)
{
tanitasiOraId = eventId;
MulasztasHelper h = new MulasztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var mulasztas = h.GetTanuloTanoraiMulasztasa(ClaimData.FelhasznaloId, tanitasiOraId.Value);
model.MulasztasText = string.IsNullOrWhiteSpace(mulasztas) ? "-" : mulasztas;
}
else
{
orarendiOraId = eventId;
}
var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var adatok = helper.GetTanuloOraAdatai(orarendiOraId, tanitasiOraId, date);
var openBoardHelper = new OpenBoardHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType(), fileServiceHelper);
// Helyettesítés csak akkor látható tanulónál, ha be van kapcsolva a rendszerbeállításokba, vagy már naplózott az óra.
var isHelyettesitesLathato = new SystemSettingsHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.helyettesites_lathatosaga_az_ellenorzoben);
model.IsHelyettesitoTanarLathato = isHelyettesitesLathato || model.IsTanora;
model.Targy = adatok.Targy;
model.HelyettesitoTanar = adatok.HelyettesitoTanar;
model.Megtartott = adatok.Megtartott;
model.OsztalyNev = adatok.OsztalyNev;
model.Tanar = adatok.Tanar;
model.Tema = adatok.Tema;
model.Terem = adatok.Terem;
model.Oraszam = adatok.Oraszam;
model.Datum = date.ToShortDateString();
model.SzamonkeresMegnevezes = adatok.SzamonkeresMegnevezes;
model.SzamonkeresMod = adatok.SzamonkeresMod;
model.OraTartam = string.Format("{0} - {1}", adatok.OraKezdet, adatok.OraVege);
model.OpenBoardFiles = openBoardHelper.GetFeltoltottFajlokToTanuloOraAdat(date, orarendiOraId, tanitasiOraId);
return model;
}
private TanuloHaziFeladatTabModel GetHaziFeladatok(int eventId, CalendarOraTypeEnum oraType, DateTime date)
{
try
{
return new TanuloHaziFeladatTabModel(new DktFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHaziFeladatTabCo(eventId, oraType, date, ClaimData.IsTanuloOrGondviselo));
}
catch (Exception e)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran) { UnHandledException = e };
}
}
}
}

View file

@ -0,0 +1,70 @@
using System;
using System.Net;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Exceptions;
using Kreta.Framework;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)]
public class InformaciokTanorakController : Controller
{
// GET: Orarend/InformaciokTanorak
public ActionResult Index()
{
var model = new InformaciokSearchModel();
return View(model);
}
public ActionResult OpenTanitasiOraInfoPopUp(int tanitasiOraId, DateTime datum)
{
try
{
TanitasiOraInfoModel tanitasiOraInfoModel;
var helper = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
TanoraCO tanoraCO = helper.GetTanoraByOrarendiId(tanitasiOraId, datum, true, ClaimData.IsTanuloOrGondviselo);
tanitasiOraInfoModel = new TanitasiOraInfoModel
{
Datum = tanoraCO.Datum.ToShortDateString(),
Oraszam = tanoraCO.Oraszam,
HetNapja = tanoraCO.HetNapjaNev,
Hetirend = tanoraCO.HetirendNev,
Foglalkozas = tanoraCO.FoglalkozasNev,
OsztalyCsoport = tanoraCO.OsztalyCsoportNev,
Tantargy = tanoraCO.TantargyNev,
Tanar = tanoraCO.TanarNev,
Terem = tanoraCO.TeremNev,
Megtartott = tanoraCO.Megtartott.HasValue ? tanoraCO.Megtartott.Value.GetDisplayName() : StringResourcesUtil.GetString(3610)/*Nem naplózott*/,
Sorszamozando = tanoraCO.Sorszamozando.GetDisplayName(),
OraKezdete = tanoraCO.OraKezd.ToString("HH:mm"),
OraVege = tanoraCO.OraVeg.ToString("HH:mm"),
Tema = tanoraCO.Tema,
Megjegyzes = tanoraCO.Megjegyzes,
HaziFeladat = tanoraCO.HaziFeladat
};
var model = new PopUpModel(tanitasiOraInfoModel, "Info_PopUp");
model.AddCancelBtn(model, "InformaciokTanitasiOraHelper.tanitasiOraInfoCancel");
return PartialView(Constants.General.PopupView, model);
}
catch (BlException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
}
}

View file

@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Security;
using Kreta.Core.FeatureToggle;
using Kreta.Web.Areas.Orarend.Logic;
using Kreta.Web.Controllers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsPortas.ClaimValue, KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public class KepekListajaController : Controller
{
private readonly IFileServiceHelper FileServiceHelper;
private IFeatureContext FeatureContext { get; set; }
public KepekListajaController(IFeatureContext featureContext, IFileServiceHelper fileServiceHelper)
{
FeatureContext = featureContext ?? throw new ArgumentNullException(nameof(featureContext));
FileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
}
public ActionResult Index()
{
return View("Index");
}
public ActionResult OpenKepInfoPopUp(int oraFileId)
{
return PartialView(Constants.General.PopupView, KepekListajaLogic.GetPopUpModelOpenKepInfo(oraFileId, FileServiceHelper));
}
public ActionResult OpenModifyKepPopUp(int oraFileId)
{
return PartialView(Constants.General.PopupView, KepekListajaLogic.GetPopUpModelOpenModifyKep(oraFileId));
}
public string DownloadSelectedKep(List<int> selectedOraFileIdList)
{
var guid = KepekListajaLogic.DownloadSelectedKep(selectedOraFileIdList, FileServiceHelper);
return Url.Action(nameof(CacheController.DownloadFile), nameof(CacheController).Replace("Controller", ""), new { guid, fileName = "képek.zip", contentType = Constants.ImportExport.ContentType, area = "" });
}
}
}

View file

@ -0,0 +1,102 @@
using System.Linq;
using System.Web.Http;
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class OrarendekTorleseController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult OpenSelectorPopup([FromBody] string url)
{
var popupModel = new PopUpModel(null, "Selector_Popup");
popupModel.AddBtn(popupModel, "BtnVissza", CommonResource.Vissza, $"function () {{OrarendekTorleseHelper.visszaUrl('{url}')}}");
return PartialView(Constants.General.PopupView, popupModel);
}
public ActionResult LoadFeladatellatasiHelyView()
{
var helper = new OrarendTorleseHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var model = new FelhelyOrarendTorleseModel();
(model.MinDatum, model.MaxDatum) = helper.GetMinMaxDatumValaszto();
model.FelhelyList.AddRange(helper.GetFeladatellatasiHelyek(true).Select(x => new SelectListItem
{
Text = x.Text,
Value = x.Value,
}));
model.OraTipusok.AddRange(helper.GetNezetTipusok().Select(x => new SelectListItem
{
Text = x.Text,
Value = x.Value,
}));
return PartialView("FeladatellatasiHely_View", model);
}
public ActionResult LoadOsztalyView()
{
var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var osztalyList = osztalyCsoportHelper.GetOsztalyCsoportCoList().Where(ocs => ocs.IsOsztaly).Select(cs => new OrarendTorleseOsztalyCsoportListItem
{
Id = cs.Id,
Nev = cs.Nev,
FeladatellatasiHelyId = cs.FeladatellatasiHelyId
});
var model = new OsztalyOrarendTorleseModel
{
OsztalyList = osztalyList
};
var orarendTorleseHelper = new OrarendTorleseHelper(ConnectionTypeExtensions.GetSessionConnectionType());
(model.MinDatum, model.MaxDatum) = orarendTorleseHelper.GetMinMaxDatumValaszto();
model.OraTipusok.AddRange(orarendTorleseHelper.GetNezetTipusok().Select(x => new SelectListItem
{
Text = x.Text,
Value = x.Value,
}));
return PartialView("Osztaly_View", model);
}
public ActionResult LoadCsoportView()
{
var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var csoportList = osztalyCsoportHelper.GetOsztalyCsoportCoList().Where(ocs => !ocs.IsOsztaly).Select(cs => new OrarendTorleseOsztalyCsoportListItem
{
Id = cs.Id,
Nev = cs.Nev,
FeladatellatasiHelyId = cs.FeladatellatasiHelyId
});
var model = new CsoportOrarendTorleseModel
{
CsoportList = csoportList
};
var orarendTorleseHelper = new OrarendTorleseHelper(ConnectionTypeExtensions.GetSessionConnectionType());
(model.MinDatum, model.MaxDatum) = orarendTorleseHelper.GetMinMaxDatumValaszto();
model.OraTipusok.AddRange(orarendTorleseHelper.GetNezetTipusok().Select(x => new SelectListItem
{
Text = x.Text,
Value = x.Value,
}));
return PartialView("Csoport_View", model);
}
}
}

View file

@ -0,0 +1,17 @@
using System.Web.Mvc;
using Kreta.BusinessLogic.Security;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)]
public class OsztalyOrarendController : Controller
{
public ActionResult Index()
{
return View();
}
}
}

View file

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Extensions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Tanar.ClaimValue)]
public class OsztalyOrarendKeresoController : Controller
{
public ActionResult Index()
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSystemConnectionType());
var sysParamList = systemSettingsHelper.GetSystemSettingValue<List<string>>(RendszerBeallitasTipusEnum.Tanar_Feluleten_Orarend_Lathatosag);
if (sysParamList.Contains("OsztalyOrarendKereso"))
{
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
}
var model = new OrarendKeresoModel();
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.HetirendJson = orarendHelper.GetHetirendek();
model.NaptariHetekHetirendJson = orarendHelper.GetNaptariHetekHetirendek();
var co = orarendHelper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin.Subtract(new TimeSpan(0, 15, 0)); // "15 perccel legyen előbb"
model.CalendarMaxTime = co.CalendarMax.Add(new TimeSpan(0, 15, 0)); // "15 perccel legyen később"
model.CsengetesiRendMinTime = new TimeSpan();
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
ViewBag.napirendStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.napirendEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja);
return View(model);
}
}
}

View file

@ -0,0 +1,81 @@
using System.Net;
using System.Web.Mvc;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Exceptions;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public class TanarOralatogatasController : Controller
{
public ActionResult Index()
{
var model = new OralatogatasModel();
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.HetirendJson = orarendHelper.GetHetirendek();
model.NaptariHetekHetirendJson = orarendHelper.GetNaptariHetekHetirendek();
#region Calendar megjelenítés
var co = orarendHelper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin;
model.CalendarMaxTime = co.CalendarMax;
#endregion
return View("Index", model);
}
public ActionResult OralatogatasEvent(OralatogatasExtendModel oralatogatasExtendModel)
{
try
{
OralatogatasokCO co;
var helper = new OralatogatasokHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
co = helper.GetOraOralatogatasa(oralatogatasExtendModel.CalendarModel.EventId, ClaimData.FelhasznaloId);
var tanoraCo = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanorakAdatok(oralatogatasExtendModel.CalendarModel.EventId);
var oModel = ConvertCoToModel(co);
oModel.OralatogatasDatuma = oralatogatasExtendModel.CalendarModel.Start;
oModel.OraID = oralatogatasExtendModel.CalendarModel.EventId;
oModel.TanitasiOraTema = tanoraCo.Tema;
oModel.IsNemKellNemKotottSystemSettings = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<bool>(Enums.RendszerBeallitasTipusEnum.kotott_munkaido_nevelesseloktatassal_le_nem_kotott_resz_kezelesenek_tiltasa);
var model = new PopUpModel(oModel, "Oralatogatas_Bevitel");
model.AddCancelBtn(model, "OralatogatasHelper.windowCancel");
model.AddOkBtn(model, "OralatogatasHelper.windowSave");
if (oralatogatasExtendModel.CalendarModel.OraType == Enums.ManualEnums.CalendarOraTypeEnum.Egyeb)
model.AddBtn(model, "OralatogatasTorles", 4739, "OralatogatasHelper.windowDelete", "pull-left");
return PartialView(Constants.General.PopupView, model);
}
catch (BlException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
private OralatogatasModel ConvertCoToModel(OralatogatasokCO co)
{
OralatogatasModel model = new OralatogatasModel();
if (co != null)
{
model.OralatogatasSzovege = co.Megjegyzes;
model.OralatogatasID = co.Id;
}
return model;
}
}
}

View file

@ -0,0 +1,395 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Extensions;
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.Elokeszites;
using Kreta.BusinessLogic.Logic.Naplozas.Validacio;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Exceptions;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Feljegyzes.Models;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Areas.TanuloErtekeles.Controllers;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
using Kreta.Web.Utils;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
public class TanariOrarendController : BaseTanariOrarendController
{
private IKretaAuthorization Authorization { get; }
private readonly IFileServiceHelper fileServiceHelper;
public TanariOrarendController(IKretaAuthorization authorization, IFileServiceHelper fileServiceHelper) : base(authorization, fileServiceHelper)
{
Authorization = authorization;
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
}
public ActionResult Index()
{
var dualisOktato = Authorization.IsValidDualisOktato();
var model = new TanariOrarendModel();
model.SzervezetTipusId = dualisOktato ? (int)SzervezetTipusEnum.Dualis : (int?)null;
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var naplozarasLogic = new NaplozarasLogic(ConnectionTypeExtensions.GetSessionConnectionType());
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.IsNemKellNemKotott = dualisOktato || systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.kotott_munkaido_nevelesseloktatassal_le_nem_kotott_resz_kezelesenek_tiltasa);
var fogadooraMegjelenik = !dualisOktato && systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Fogadoorak_megjelenitese) && !ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.IsDualisKepzohelyiOktato.ClaimValue);
model.HetirendJson = orarendHelper.GetHetirendek();
model.NaptariHetekHetirendJson = orarendHelper.GetNaptariHetekHetirendek(dualisOktato);
model.LezartOsztalyokEsOsztalybontottCsoportokIdList = naplozarasLogic.GetLezartOsztalyokEsBontottCsoportjaik();
model.FelhasznalodTanarId = ClaimData.FelhasznaloId;
model.TanevUtolsoTanitasiNap = dualisOktato ? tanevHelper.GetTanevInfo().UtolsoNap.AddDays(1) : tanevHelper.GetTanevInfo().UtolsoTanitasiNap.AddDays(1);
model.RendkivuliTanitasiNapok = !dualisOktato ? tanevHelper.GetTanevRendkivuliNapok() : new List<DateTime>();
model.IsShowRogzitottOrak = !dualisOktato && systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.kotott_munkaido_megjelenitese);
#region Calendar megjelenítés
var co = orarendHelper.GetCalendarMinMax();
model.CalendarMinTime = dualisOktato ? new TimeSpan(0, 0, 0) : co.CalendarMin.Subtract(new TimeSpan(0, 15, 0)); // "15 perccel legyen előbb"
model.CalendarMaxTime = dualisOktato ? new TimeSpan(23, 59, 59) : co.CalendarMax.Add(new TimeSpan(0, 15, 0)); // "15 perccel legyen később"
//var csengetesiRendOrakHelper = new CsengetesiRendOrakHelper();
//DataSet ds = csengetesiRendOrakHelper.GetCsengetesiOrakKezdVeg();
model.CsengetesiRendMinTime = new TimeSpan();
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
#endregion Calendar megjelenítés
model.ShowKerdoivPopup = new KerdoivHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetShowKerdoivPopup(ClaimData.IsAlkalmazottPedagogus);
model.TabList = GetTanariOrarendTabs(fogadooraMegjelenik, dualisOktato);
ViewBag.nemKotottMunkaidoStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.nemKotottMunkaidoEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_zaroidopontja);
ViewBag.napirendStart = dualisOktato ? model.CalendarMinTime.ToString() : systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.napirendEnd = dualisOktato ? model.CalendarMaxTime.ToString() : systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja);
ViewBag.fogadooraStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Fogado_Ora_Kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.fogadooraEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Fogado_Ora_Zaroidopontja);
return View("Index", model);
}
public ActionResult TanorakOrarendEvent(TanoraIdBeallitasModel model)
{
return base.TanorakOrarendEvent(model);
}
public ActionResult OpenNewFoglalkozasokOraPopUp(TanoraIdBeallitasModel model)
{
return OpenNewFoglalkozasokOraPopUp(model, false);
}
public ActionResult GetWizardElovalaszto(DateTime? datum = null)
{
return GetWizardElovalaszto(datum, false);
}
public ActionResult GetWizardHelyettesitesElovalaszto(DateTime? datum = null, int hiba = -1)
{
return GetWizardHelyettesitesElovalaszto(datum, hiba, false);
}
public ActionResult GetWizardOrarendioraValaszto(string startDate, string endDate, string hanyadikora, string helyettesitoId, bool isNapirend = false, bool isEgyediHelyettesites = false)
{
return GetWizardOrarendioraValaszto(startDate, endDate, hanyadikora, helyettesitoId, isNapirend, isEgyediHelyettesites, false);
}
public ActionResult GetWizardHelyettesites()
{
return GetWizardHelyettesites(false);
}
public ActionResult GetWizardOraosszevonasHelyettesites()
{
return GetWizardOraosszevonasHelyettesites(false);
}
public ActionResult GetWizardFoglalkozas(int foglalkozasFilterId, bool isNapirend = false, DateTime? datum = null, int? hanyadikOra = null)
{
return GetWizardFoglalkozas(foglalkozasFilterId, isNapirend, datum, hanyadikOra, false);
}
public ActionResult GetWizardEgyedi(int foglalkozasFilterId, DateTime datum, bool isNapirend = false, int? hanyadikOra = null)
{
return GetWizardEgyedi(foglalkozasFilterId, datum, isNapirend, hanyadikOra, false);
}
public ActionResult OpenNewNemKotottMunkaidoPopUp(CalendarModel model)
{
var nkmm = new NemKotottMunkaidoModel()
{
Datum = model.Start.ToLocalTime().Date,
Kezdet = model.Start.ToLocalTime(),
Veg = model.End.ToLocalTime(),
TanarId = ClaimData.FelhasznaloId,
isMegtartott = true,
HetirendId = 1554 /*Minden héten*/
};
var pm = new PopUpModel(nkmm, "NemKotottMunkaido_Bevitel");
pm = pm.AddBtn(pm, "newNemKotottMunkaidoCancel", AdminisztracioResource.Megsem, "NemKotottMunkaido.newNemKotottMunkaidoCancel");
if (new NaplozarasLogic(ConnectionTypeExtensions.GetSessionConnectionType()).IsNaplozhatZarastolFuggetlenul(nkmm.Kezdet.Value, null))
{
pm = pm.AddBtn(pm, "newNemKotottMunkaidoSave", 3804 /*Naplózás*/, "NemKotottMunkaido.newNemKotottMunkaidoSave");
}
return PartialView(Constants.General.PopupView, pm);
}
public ActionResult OpenModNemKotottMunkaidoPopUp(CalendarModel model)
{
if (!Authorization.IsValidNemKotottMunkaido(model.EventId))
{
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.NincsJogaAzOldalMegtekintesehez);
}
var nkmm = GetModNemKotottMunkaidoModel(model);
var pm = new PopUpModel(nkmm, "NemKotottMunkaido_Bevitel");
pm = pm.AddBtn(pm, "modNemKotottMunkaidoCancel", AdminisztracioResource.Megsem, "NemKotottMunkaido.modNemKotottMunkaidoCancel");
var isNaplozhatZarastolFuggetlenul = new NaplozarasLogic(ConnectionTypeExtensions.GetSessionConnectionType()).IsNaplozhatZarastolFuggetlenul(nkmm.Datum.Value, null);
if (!nkmm.isReadonly)
{
if (nkmm.isTanarAltalTorolt)
{
if (isNaplozhatZarastolFuggetlenul)
{
if (nkmm.isMegtartott)
{
pm = pm.AddBtn(pm, "modNemKotottMunkaidoMegtartottDelete", 5221 /*Naplózás törlése*/, "NemKotottMunkaido.modNemKotottMunkaidoDelete");
}
else
{
pm = pm.AddBtn(pm, "modNemKotottMunkaidoTanarAltalToroltOraDelete", 5221 /*Naplózás törlése*/, "NemKotottMunkaido.modNemKotottMunkaidoTanarAltalDelete");
}
}
}
else
{
if (isNaplozhatZarastolFuggetlenul)
{
if (nkmm.isMegtartott)
{
pm = pm.AddBtn(pm, "modNemKotottMunkaidoMegtartottDelete", 5221 /*Naplózás törlése*/, "NemKotottMunkaido.modNemKotottMunkaidoDelete");
pm = pm.AddBtn(pm, "modNemKotottMunkaidoSave", 3765 /*Naplózás változtatásainak mentése*/, "NemKotottMunkaido.modNemKotottMunkaidoSaveDay");
}
else
{
nkmm.NaplozottMegjegyzes = nkmm.Megjegyzes;
pm = pm.AddBtn(pm, "modNemKotottMunkaidoSave", 3804 /*Naplózás*/, "NemKotottMunkaido.modNemKotottMunkaidoSaveDay");
if (nkmm.isAdminRogzitette)
{
pm = pm.AddBtn(pm, "modNemKotottMunkaidoTanarAltalDelete", 117 /*Törlés*/, "NemKotottMunkaido.modNemKotottMunkaidoTanarAltalDelete");
}
else
{
pm = pm.AddBtn(pm, "modNemKotottMunkaidoDelete", 117 /*Törlés*/, "NemKotottMunkaido.globalNemKotottMunkaidoDelete");
}
}
}
}
}
return PartialView(Constants.General.PopupView, pm);
}
private ActionResult TanoraMuveletek(NaplozasElokeszitesModel model, TanoraMuveletek muveletPram)
{
return base.TanoraMuveletek(model, muveletPram, (int?)null);
}
public DateTime GetTanevUtolsoNapja() => new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo().UtolsoTanitasiNap;
public ActionResult OpenNewFogadooraPopUp(CalendarModel model)
{
var fm = SetNewFogadooraDefaultData(model);
var pm = new PopUpModel(fm, "Fogadoora_Bevitel");
pm = pm.AddBtn(pm, "newFogadooraCancel", AdminisztracioResource.Megsem, "FogadooraHelper.newFogadooraCancel");
pm = pm.AddBtn(pm, "newFogadooraSave", CommonResource.Mentes, "FogadooraHelper.fogadooraSave");
return PartialView(Constants.General.PopupView, pm);
}
private FogadooraModel SetNewFogadooraDefaultData(CalendarModel cm)
{
var tanevCo = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo();
var isNemKellNemKotott = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.kotott_munkaido_nevelesseloktatassal_le_nem_kotott_resz_kezelesenek_tiltasa);
return new FogadooraModel
{
FogadoOraKezdete = cm.Start.ToLocalTime(),
FogadoOraVege = cm.End.ToLocalTime(),
FogadoOraDatuma = cm.Start.ToLocalTime().Date,
EgysegnyiIdopontok = 15,
IsNemKotottMunkaido = !isNemKellNemKotott,
JelentkezesekKezelese = true,
IsFaliujsagonMegjelenjen = true,
FaliujsagErvenyessegKezdete = DateTime.Today,
FaliujsagErvenyessegVege = cm.Start.ToLocalTime().AddDays(1),
RendszeresFogadooraElsoDatuma = cm.Start.ToLocalTime().Date,
RendszeresFogadooraUtolsoDatuma = tanevCo.UtolsoTanitasiNap.Date,
IsCalendar = true,
IsRendszeressegModosithato = true,
IsIdosavraOsztas = true,
FogadooraEgyebGyakorisagDefaultDate = cm.Start.ToLocalTime(),
TanevUtolsoNapja = GetTanevUtolsoNapja(),
IsNemKellNemKotott = isNemKellNemKotott,
};
}
public ActionResult OpenModFogadooraPopUpByCalendarModel(CalendarModel model) => OpenModFogadooraPopUpDetails(model.EventId, true);
public ActionResult OpenModFogadooraPopUpByFogadooraId(int id) => OpenModFogadooraPopUpDetails(id);
public ActionResult OpenModFogadooraPopUpDetails(int fogadooraId, bool isCalendar = false)
{
var fm = new FogadooraModel();
var helper = new FogadooraHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var fogadooraCo = helper.GetFogadooraById(fogadooraId);
fm.Id = fogadooraCo.Id;
fm.FogadoOraDatuma = fogadooraCo.FogadoOraKezdete.Date;
fm.FogadoOraKezdete = fogadooraCo.FogadoOraKezdete;
fm.FogadoOraVege = fogadooraCo.FogadoOraVege;
fm.Rendszeresseg = fogadooraCo.Rendszeresseg;
fm.TeremId = fogadooraCo.TeremId;
fm.JelentkezesekKezelese = (int)FogadooraTipusEnum.Jelentkezheto == fogadooraCo.FogadooraTipusEnumId || (int)FogadooraTipusEnum.JelentkezhetoDarabolt == fogadooraCo.FogadooraTipusEnumId;
fm.IsIdosavraOsztas = fogadooraCo.IsIdosavraOsztas;
fm.EgysegnyiIdopontok = fogadooraCo.EgysegnyiIdopontok;
fm.SelectedOsztalyCsoportIdList = fogadooraCo.SelectedOsztalyCsoportIdList;
fm.RendszeresFogadooraElsoDatuma = fogadooraCo.FogadoOraKezdete;
fm.RendszeresFogadooraUtolsoDatuma = fogadooraCo.FogadoOraVege;
fm.IsEgyAlkalomModosul = false;
fm.IsCalendar = isCalendar;
fm.IsFaliujsagonMegjelenjen = fogadooraCo.IsFaliujsagonMegjelenjen;
fm.IsRendszeressegModosithato = false;
fm.FaliujsagErvenyessegKezdete = fogadooraCo.FaliujsagErvenyessegKezdete;
fm.FaliujsagErvenyessegVege = fogadooraCo.FaliujsagErvenyessegVege;
fm.JelentkezesHatarideje = fogadooraCo.JelentkezesHatarideje;
var isModosithatoFogadoora = fm.FogadoOraKezdete > DateTime.Now;
fm.TanevUtolsoNapja = GetTanevUtolsoNapja();
var jelentkezettGvDs = helper.GetJelentkezettGondviseloCntByFogadooraId(fogadooraId);
if (jelentkezettGvDs.Tables[0].Rows.Count > 0)
{
fm.VanGvJelentkezes = true;
}
if (!isModosithatoFogadoora)
{
fm.TeremNev = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremNev(fogadooraCo.TeremId);
}
var rendszeressegDictionary = EnumExtensions.EnumToDictionary<FogadooraRendszeressegEnum>(ClaimData.SelectedTanevID.Value);
fm.RendszeressegText = rendszeressegDictionary.First(x => x.Key == fogadooraCo.Rendszeresseg.ToString()).Value;
var pm = new PopUpModel(fm, isModosithatoFogadoora ? "Fogadoora_Bevitel" : "~/Areas/Orarend/Views/TanariOrarend/Fogadoora_Details.cshtml");
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isDateHasTanevrend = tanevrendHelper.HasTanevRendjeEsemeny(fm.FogadoOraKezdete.Date, null);
if (!isDateHasTanevrend)
{
//itt vizsgálni egy alkalom-e, ha igen, akkor ezek nem kellenek
if (fm.Rendszeresseg == (int)FogadooraRendszeressegEnum.EgyAlkalom)
{
if (isModosithatoFogadoora)
{
pm = pm.AddBtn(pm, "newFogadooraCancel", AdminisztracioResource.Megsem, "FogadooraHelper.modFogadooraCancel");
pm = pm.AddBtn(pm, "newFogadooraSave", CommonResource.Mentes, "FogadooraHelper.ModEgyFogadoora");
pm = pm.AddBtn(pm, "modFogadooraDeleteDay", FogadooraResource.EgyFogadooraTorlese, "FogadooraHelper.DeleteEgyFogadooraa", "pull-left");
}
}
else
{
if (isModosithatoFogadoora)
{
pm = pm.AddBtn(pm, "newFogadooraCancel", AdminisztracioResource.Megsem, "FogadooraHelper.modFogadooraCancel");
pm = pm.AddBtn(pm, "modFogadooraDeleteDay", FogadooraResource.EgyFogadooraTorlese, "FogadooraHelper.DeleteEgyFogadooraa", "pull-left");
pm = pm.AddBtn(pm, "modFogadooraDeleteFrom", OrarendResource.DeleteFrom, "FogadooraHelper.DeleteEttolANaptol", "pull-left");
pm = pm.AddBtn(pm, "modFogadooraDeleteTo", OrarendResource.DeleteTo, "FogadooraHelper.DeleteEddigANapig", "pull-left");
pm = pm.AddBtn(pm, "modFogadooraDelete", FogadooraResource.FogadooraTorleseTeljesTanevbol, "FogadooraHelper.DeleteTeljes", "pull-left");
pm = pm.AddBtn(pm, "modFogadooraSaveDay", FogadooraResource.EgyFogadooraModositas, "FogadooraHelper.ModEgyFogadoora", true, "pull-left");
pm = pm.AddBtn(pm, "modFogadooraSaveFrom", OrarendResource.ModSaveFrom, "FogadooraHelper.ModEttolANaptol", "pull-left", true);
pm = pm.AddBtn(pm, "modFogadooraSaveTo", OrarendResource.ModSaveTo, "FogadooraHelper.ModEddigANapig", "pull-left", true);
pm = pm.AddBtn(pm, "modFogadooraSave", OrarendResource.ModAllSave, "FogadooraHelper.ModTeljes", "pull-left", true);
}
}
}
return PartialView(Constants.General.PopupView, pm);
}
[HttpPost]
public ActionResult UploadCsatolmany(HttpPostedFileBase csatolmany, int hfId)
{
try
{
byte[] content;
using (var inputStream = csatolmany.InputStream)
{
var memoryStream = inputStream as MemoryStream;
if (memoryStream == null)
{
memoryStream = new MemoryStream();
inputStream.CopyTo(memoryStream);
}
content = memoryStream.ToArray();
}
var helper = new DktFileHelper(ConnectionTypeExtensions.GetSessionConnectionType(), fileServiceHelper);
var csatolmanyId = helper.UploadCsatolmany(csatolmany.FileName, content, csatolmany.ContentType, hfId, ClaimData.IntezmenyGuid.Value);
return Json(csatolmanyId);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.FajlFeltolteseSikertelen) { UnHandledException = ex };
}
}
private NemKotottMunkaidoModel GetModNemKotottMunkaidoModel(CalendarModel model)
{
var helper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var co = helper.GetNemKotottMunkaidoById(model.EventId);
return Logic.NemKotottMunkaidoLogic.ConvertModelFromCo(co);
}
}
}

View file

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Extensions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Tanar.ClaimValue)]
public class TanariOrarendKeresoController : Controller
{
public ActionResult Index()
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSystemConnectionType());
var sysParamList = systemSettingsHelper.GetSystemSettingValue<List<string>>(RendszerBeallitasTipusEnum.Tanar_Feluleten_Orarend_Lathatosag);
if (sysParamList.Contains("TanariOrarendKereso"))
{
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
}
var model = new OrarendKeresoModel();
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.HetirendJson = orarendHelper.GetHetirendek();
model.NaptariHetekHetirendJson = orarendHelper.GetNaptariHetekHetirendek();
var co = orarendHelper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin.Subtract(new TimeSpan(0, 15, 0)); // "15 perccel legyen előbb"
model.CalendarMaxTime = co.CalendarMax.Add(new TimeSpan(0, 15, 0)); // "15 perccel legyen később"
model.CsengetesiRendMinTime = new TimeSpan();
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
ViewBag.napirendStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.napirendEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja);
return View(model);
}
}
}

View file

@ -0,0 +1,90 @@
using System;
using System.Net;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Core.Exceptions;
using Kreta.Enums;
using Kreta.Framework;
using Kreta.Web.Areas.Orarend.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
public class TanoraKeresoController : Controller
{
public ActionResult Index()
{
var model = new TanitasiOraSearchModel() { FeladatEllatasiHelyID = ClaimData.FelhelySzuro };
return View(model);
}
public ActionResult OpenTanitasiOraInfoPopUp(int tanitasiOraId, DateTime datum)
{
try
{
TanitasiOraInfoModel tanitasiOraInfoModel;
var helper = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
TanoraCO tanoraCO = helper.GetTanoraByOrarendiId(tanitasiOraId, datum, true, ClaimData.IsTanuloOrGondviselo);
tanitasiOraInfoModel = new TanitasiOraInfoModel
{
Datum = tanoraCO.Datum.ToShortDateString(),
Oraszam = tanoraCO.Oraszam,
HetNapja = tanoraCO.HetNapjaNev,
Hetirend = tanoraCO.HetirendNev,
Foglalkozas = tanoraCO.FoglalkozasNev,
OsztalyCsoport = tanoraCO.OsztalyCsoportNev,
Tantargy = tanoraCO.TantargyNev,
Tanar = tanoraCO.TanarNev,
Terem = tanoraCO.TeremNev,
Megtartott = tanoraCO.Megtartott.HasValue ? tanoraCO.Megtartott.Value.GetDisplayName() : StringResourcesUtil.GetString(3610)/*Nem naplózott*/,
Sorszamozando = tanoraCO.Sorszamozando.GetDisplayName(),
OraKezdete = tanoraCO.OraKezd.ToString("HH:mm"),
OraVege = tanoraCO.OraVeg.ToString("HH:mm"),
Tema = tanoraCO.Tema,
Megjegyzes = tanoraCO.Megjegyzes,
HelyettesitoTanar = tanoraCO.HelyettesitesitoTanarNeve,
HelyettesitesTipusa = tanoraCO.HelyettesitesTipus?.GetDisplayName<HelyettesitesTipusEnum>(ClaimData.SelectedTanevID.Value),
HelyettesitesOka = tanoraCO.HelyettesitesOka,
NaplozasIdopontja = tanoraCO.BejegyIdo.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds),
LegutobbiModositasIdopontja = tanoraCO.LegutobbiModositasIdopontja.ToString(Core.Constants.ToStringPattern.HungarianDateTimeWithoutSeconds)
};
var model = new PopUpModel(tanitasiOraInfoModel, "Info_PopUp");
model.AddCancelBtn(model, "TanoraKeresoHelper.tanitasiOraInfoCancel");
return PartialView(Constants.General.PopupView, model);
}
catch (BlException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
}
}
public ActionResult ExportHelyettesitettTanorak(TanitasiOraSearchModel data)
{
return TanoraKeresoLogic.ExportHelyettesitettTanorak(data);
}
public ActionResult ExportElmaradtTanorak(TanitasiOraSearchModel data)
{
return TanoraKeresoLogic.ExportElmaradtTanorak(data);
}
public ActionResult ExportMegtartottTanorak(TanitasiOraSearchModel data)
{
return TanoraKeresoLogic.ExportMegtartottTanorak(data);
}
}
}

View file

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Extensions;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Security;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Tanar.ClaimValue)]
public class TeremOrarendKeresoController : Controller
{
public ActionResult Index()
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSystemConnectionType());
var sysParamList = systemSettingsHelper.GetSystemSettingValue<List<string>>(RendszerBeallitasTipusEnum.Tanar_Feluleten_Orarend_Lathatosag);
if (sysParamList.Contains("TeremOrarendKereso"))
{
return Redirect(Url.Content(CommonExtensions.GetDefaultPage()));
}
var model = new OrarendKeresoModel();
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.HetirendJson = orarendHelper.GetHetirendek();
model.NaptariHetekHetirendJson = orarendHelper.GetNaptariHetekHetirendek();
var co = orarendHelper.GetCalendarMinMax();
model.CalendarMinTime = co.CalendarMin.Subtract(new TimeSpan(0, 15, 0)); // "15 perccel legyen előbb"
model.CalendarMaxTime = co.CalendarMax.Add(new TimeSpan(0, 15, 0)); // "15 perccel legyen később"
model.CsengetesiRendMinTime = new TimeSpan();
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
ViewBag.napirendStart = systemSettingsHelper.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString();
ViewBag.napirendEnd = systemSettingsHelper.GetSystemSettingValue<string>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja);
return View(model);
}
}
}

View file

@ -0,0 +1,65 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Intezmeny.Logic;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class AdminKozpontiOraLogic
{
public KozpontiOraValidationCo CreateOraValidationCoListForKozpontiOrak(DateTime start, DateTime end, int hanyadikOra, List<AdminKozpontiOrakRogzitesGridModel> kozpontiOrakList, bool isTeremutkozesFigyelese, out List<OraValidationCo> validatedKozpontiOraToBeSaved)
{
validatedKozpontiOraToBeSaved = new List<OraValidationCo>();
var validationCo = new KozpontiOraValidationCo();
validationCo.IsValid = true;
validationCo.ErrorMessage = string.Empty;
if (kozpontiOrakList == null || !kozpontiOrakList.Any())
{
return validationCo;
}
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var csengetesirendId = new AdminKozpontiOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType()).CsengetesirendId;
var kozpontiOraGroupId = Guid.NewGuid();
foreach (var kozpontiOra in kozpontiOrakList)
{
OrarendiOraModel orarendiOramodel = KozpontiOraConverter.ConvertToOrarendiOra(kozpontiOra, csengetesirendId, start, end, hanyadikOra);
OrarendiOraLogic.SetHetNapja(orarendiOramodel, start.DayOfWeek);
orarendiOramodel.HetirendList = OrarendiOraLogic.GetAktualHetirendList();
orarendiOramodel.IsEgyediNap = TanevRendjeLogic.IsEgyediNapByDateAndOsztalyCsoportId(start.Date, kozpontiOra.OsztalyId);
OrarendiOraLogic.PostProcessHetirend(orarendiOramodel);
OrarendiOraLogic.PostProcessOraszam(orarendiOramodel);
OrarendiOraLogic.PostProcessHetnapja(orarendiOramodel);
orarendiOramodel.ModositasiIdoszakTipus = (int)OraModositasiIdoszakTipus.EgyOra;
OraValidationCo oraValidationCo = orarendiOramodel.CreateOraValidationCo();
if (orarendiOraHelper.CheckUtkozesValidation(oraValidationCo, null, isPrevalidation: false, isThrowExceptionOnCollision: false, isCheckKozponti: true, isTeremutkozesFigyelese: isTeremutkozesFigyelese))
{
if (oraValidationCo.IsKozpontiDuplicate || !string.IsNullOrWhiteSpace(oraValidationCo.Msg.ToString()))
{
validationCo.IsValid = false;
validationCo.ErrorMessage = oraValidationCo.Msg.ToString();
validationCo.HasTeremutkozes = oraValidationCo.OrarendiOraValidationCo.HasTeremutkozes;
validationCo.TeremutkozesSystemSettingsValue = oraValidationCo.OrarendiOraValidationCo.TeremutkozesSystemSetting;
validatedKozpontiOraToBeSaved.Add(oraValidationCo);
return validationCo;
}
oraValidationCo.OrarendiOraValidationCo.KozpontiOraGroupId = kozpontiOraGroupId;
validatedKozpontiOraToBeSaved.Add(oraValidationCo);
}
}
return validationCo;
}
}
}

View file

@ -0,0 +1,30 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Helpers;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class AdminNemElerhetoOrarendiElemekLogic
{
public static int DeleteSelectedOrarendiOra(List<int> idList)
{
var helper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var sikeresekSzama = 0;
foreach (var orarendiOraId in idList)
{
try
{
helper.DeleteOrarendiElem(orarendiOraId);
sikeresekSzama++;
}
catch
{
}
}
return sikeresekSzama;
}
}
}

View file

@ -0,0 +1,97 @@
using System;
using System.Collections.Generic;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Client.FileService.Request;
using Kreta.Core;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Models.EditorTemplates;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class KepekListajaLogic
{
public static PopUpModel GetPopUpModelOpenKepInfo(int oraFileId, IFileServiceHelper fileServiceHelper)
{
var helper = new OpenBoardHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var oraFile = helper.GetFile(oraFileId);
var intezmenyAzonosito = ConnectionTypeExtensions.GetSessionConnectionType().IntezmenyAzonosito;
string contentAsBase64Encoded = "data:image/jpeg;base64," + fileServiceHelper.GetFile(intezmenyAzonosito, new GetUrlRequest(oraFile.Utvonal, oraFile.Guid.Value, oraFile.Nev)).Tartalom;
var model = new PopUpModel(new KepekListajaGridModel()
{
ID = oraFile.ID.ToString(),
OraFileId = oraFile.ID,
FajlUrl = oraFile.Utvonal,
KepNeve = oraFile.Nev,
Base64EncodedFajlTartalom = contentAsBase64Encoded
}, "~/Areas/Orarend/Views/KepekListaja/KepInfo_PopUp.cshtml");
model.AddBtn(model, "DeleteKep", CommonResource.Torles, "KepekListajaHelper.deleteKepPopUpConfirmWindow", "BtnDelete");
model.AddCancelBtn(model, "KepekListajaHelper.openKepInfoCancel");
return model;
}
public static PopUpModel GetPopUpModelOpenModifyKep(int oraFileId)
{
var helper = new OpenBoardHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var file = helper.GetFile(oraFileId);
var model = new PopUpModel(new KepekListajaGridModel()
{
ID = file.ID.ToString(),
OraFileId = file.ID,
KepNeve = file.Nev,
Megjegyzes = file.Megjegyzes
}, "KepModify_PopUp");
model.AddBtn(model, "KepCancelBtn", CommonResource.Megse, "KepekListajaHelper.modifyKepCancel");
model.AddOkBtn(model, "KepekListajaHelper.modifyKepSave");
return model;
}
public static Guid DownloadSelectedKep(List<int> selectedKepIdList, IFileServiceHelper fileServiceHelper)
{
var helper = new OpenBoardHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var intezmenyAzonosito = ConnectionTypeExtensions.GetSessionConnectionType().IntezmenyAzonosito;
var OutPut = new MemoryStream();
var zipOutPut = new ZipOutputStream(OutPut);
byte[] buffer = new byte[Constants.General.BufferSize];
foreach (var kepId in selectedKepIdList)
{
var kep = helper.GetFile(kepId);
var base64imageFromUrl = "data:image/jpeg;base64," + fileServiceHelper.GetFile(intezmenyAzonosito, new GetUrlRequest(kep.Utvonal, kep.Guid.Value, kep.Nev)).Tartalom;
string[] parts = base64imageFromUrl.Split(new string[] { ";", ":", "," }, StringSplitOptions.None);
var image = new MemoryStream(Convert.FromBase64String(parts[3]));
ZipEntry entry = new ZipEntry($"{kep.Nev}.{kep.Kiterjesztes}");
zipOutPut.PutNextEntry(entry);
int sourceBytes;
do
{
sourceBytes = image.Read(buffer, 0, buffer.Length);
zipOutPut.Write(buffer, 0, sourceBytes);
} while (sourceBytes > 0);
}
zipOutPut.Finish();
OutPut.Position = 0;
return Cache.Add(OutPut);
}
}
}

View file

@ -0,0 +1,156 @@
using System;
using System.Linq;
using System.Text;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.KretaServer.SystemSettings;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class NemKotottMunkaidoLogic
{
public static System.Web.Http.ModelBinding.ModelStateDictionary CheckCustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary ms, NemKotottMunkaidoModel model)
{
if (model.Veg.Value.TimeOfDay <= model.Kezdet.Value.TimeOfDay)
ms.AddModelError("NKMDateError", StringResourcesUtil.GetString(5274));
DateTime elsoNap;
TanevHelper helper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanev = helper.GetTanevInfo();
elsoNap = tanev.OraFelvetelKezdete;
if (model.Kezdet < elsoNap)
ms.AddModelError("OraErvenyessegKezdete", StringResourcesUtil.GetString(3087));
if (model.ModositasiIdoszakTipus == (int)OraModositasiIdoszakTipus.EgyOra)
{
var naptariHetHelper = new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var hetirend = naptariHetHelper.GetNaptariHetHetirendByDate(model.Datum.Value);
if ((model.HetirendId.Value != (int)HetiRendTipusEnum.MindegyikHet)
&& (hetirend != model.HetirendId))
{
ms.AddModelError("HetirendId", ErrorResource.AKivalasztottNapNemAKivalasztottHetirendhezTartozik);
}
}
var nkmHelper = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
bool hasTanarNemKotottMunkaidoUtkozes = nkmHelper.HasTanarNemKotottMunkaidoUtkozes(model.TanarId.Value, model.Kezdet.Value, model.Veg.Value, model.Id);
if (hasTanarNemKotottMunkaidoUtkozes)
{
ms.AddModelError("Kezdet", ErrorResource.ParhuzamosKotottMunkaidoFelveteleNemLehetseges);
}
return ms;
}
public static NemKotottMunkaidoCO ConvertModelToCO(NemKotottMunkaidoModel model)
{
var co = new NemKotottMunkaidoCO()
{
Id = model.Id,
GroupId = model.GroupId,
TorvenyKategoriaId = model.TorvenyKategoria.Value,
TanarId = model.TanarId.Value,
TulajId = model.TulajId,
Kezdete = model.Kezdet.Value,
Vege = model.Veg.Value,
Megtartott = model.isMegtartott,
Megjegyzes = model.Megjegyzes,
NaplozottMegjegyzes = model.NaplozottMegjegyzes,
HetirendId = model.HetirendId.Value
};
return co;
}
public static NemKotottMunkaidoModel ConvertModelFromCo(NemKotottMunkaidoCO co)
{
NemKotottMunkaidoModel model = new NemKotottMunkaidoModel()
{
Id = co.Id,
GroupId = co.GroupId,
TanarId = co.TanarId,
TulajId = co.TulajId,
Datum = co.Kezdete.Date,
Kezdet = co.Kezdete,
Veg = co.Vege,
TorvenyKategoria = co.TorvenyKategoriaId,
Megjegyzes = co.Megjegyzes,
HetirendId = co.HetirendId,
NaplozottMegjegyzes = co.NaplozottMegjegyzes,
isMegtartott = co.Megtartott,
isReadonly = co.isReadonly,
isTanarAltalTorolt = co.isTanarAltalTorolt
};
if (ClaimData.FelhasznaloId != co.TulajId)
{
model.isAdminRogzitette = true;
}
return model;
}
public static bool CheckUtkozesValidation(NemKotottMunkaidoModel model)
{
DateTime kezdetDatum, vegDatum;
GetKezdetVegDatumFomModel(model, out kezdetDatum, out vegDatum);
StringBuilder sb = new StringBuilder();
var orarendiOraHelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendiOraHelper.NemkotottMunkaidoUtkozesEllenorzes(model.TanarId.Value, kezdetDatum, vegDatum, model.Datum.Value, model.HetirendId.Value, model.GroupId);
return result;
}
public static int GetNaplozottNemkotottMunkaidoSzamByGroupId(NemKotottMunkaidoModel model)
{
DateTime kezdetDatum, vegDatum;
GetKezdetVegDatumFomModel(model, out kezdetDatum, out vegDatum);
StringBuilder sb = new StringBuilder();
var orarendHelper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = orarendHelper.GetNemKotottMunkaIdo(kezdetDatum, vegDatum, model.GroupId).Where(x => x.Megtartott).Count();
return result;
}
private static void GetKezdetVegDatumFomModel(NemKotottMunkaidoModel model, out DateTime kezdetDatum, out DateTime vegDatum)
{
TanevCO tanevCO;
TanevHelper tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
tanevCO = tanevHelper.GetTanevInfo();
kezdetDatum = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Kezdet.Value);
vegDatum = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(model.Datum.Value, model.Veg.Value);
switch (model.ModositasiIdoszakTipus)
{
case (int)OraModositasiIdoszakTipus.TeljesIdoszak:
kezdetDatum = tanevCO.OraFelvetelKezdete.Date.AddHours(kezdetDatum.Hour).AddMinutes(kezdetDatum.Minute);
vegDatum = tanevCO.UtolsoTanitasiNap.Date.AddHours(vegDatum.Hour).AddMinutes(vegDatum.Minute);
break;
case (int)OraModositasiIdoszakTipus.AdottNaptol:
vegDatum = tanevCO.UtolsoTanitasiNap.Date.AddHours(vegDatum.Hour).AddMinutes(vegDatum.Minute);
break;
case (int)OraModositasiIdoszakTipus.AdottNapig:
kezdetDatum = tanevCO.OraFelvetelKezdete.Date.AddHours(kezdetDatum.Hour).AddMinutes(kezdetDatum.Minute);
break;
case (int)OraModositasiIdoszakTipus.EgyOra:
break;
default:
break;
}
}
public static int GetTevekenysegUtkozesSystemSetting()
{
return SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Napirend_felvitelel_utkozes_figyeles, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value);
}
}
}

View file

@ -0,0 +1,482 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Net;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Core;
using Kreta.Core.Exceptions;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Enums.ManualEnums.SystemSettings;
using Kreta.Framework;
using Kreta.Framework.Util;
using Kreta.KretaServer.SystemSettings;
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.TabStrip;
using Kreta.Web.Models;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class OrarendiOraLogic
{
public static List<TabStripItemModel> GetModOrarendiOraTabs(OrarendiOraModel model, string orarendTipus, bool isFromSzervezet = false)
{
var list = new List<TabStripItemModel>();
list.Add(new TabStripItemModel() { ItemId = "1", ItemName = StringResourcesUtil.GetString(4124) /*Óra adatok*/, Model = model, PartialViewName = "OrarendiOraAdatok_Tab_" + orarendTipus, IsActive = true });
if (!isFromSzervezet)
{
list.Add(new TabStripItemModel() { ItemId = "2", ItemName = StringResourcesUtil.GetString(4867) /*Speciális adatok*/, Model = model, PartialViewName = "SpecialisAdatok_Bevitel" });
}
return list;
}
public static System.Web.Http.ModelBinding.ModelStateDictionary CheckCustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary ms, OrarendiOraModel model)
{
if (!model.TTFModel.TanarID.IsEntityId())
{
ms.AddModelError("TTFModel_TanarID", ErrorResource.PedagogusMegadasaKotelezo); //Pedagógus megadása kötelező
}
if (SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.orarendi_elemek_rogzitesenek_elofeltetele, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value) != (int)SystemSettingsOrarendiElemekRogzitesenekElofelteteleEnum.NincsTTF)
{
if (!model.TTFModel.FoglalkozasID.IsEntityId())
{
ms.AddModelError("TTFModel_FoglalkozasID", ErrorResource.FoglalkozasMegadasaKotelezo);
}
}
else
{
if (!model.TTFModel.OsztalyID.IsEntityId())
{
ms.AddModelError("TTFModel_OsztalyID", StringResourcesUtil.GetString(4569)); //Osztály megadása kötelező
}
if (!model.TTFModel.TantargyID.IsEntityId())
{
ms.AddModelError("TTFModel_TantargyID", StringResourcesUtil.GetString(2564)); //Tantárgy megadása kötelező
}
}
if (!model.TeremID.IsEntityId())
{
ms.AddModelError("TeremID", StringResourcesUtil.GetString(2493)); //Terem megadása kötelező
}
if (!model.OraErvenyessegKezdete.HasValue)
{
ms.AddModelError("OraErvenyessegKezdete", StringResourcesUtil.GetString(4575)); //Óra érvényességi idejének kezdete kötelező
}
if (!model.OraErvenyessegVege.HasValue)
{
ms.AddModelError("OraErvenyessegVege", StringResourcesUtil.GetString(4576)); //Óra érvényességi idejének vége kötelező
}
if (model.OraErvenyessegVege < model.OraErvenyessegKezdete)
{
ms.AddModelError("OraErvenyessegVege", StringResourcesUtil.GetString(4580)); //Az óra érvényességének vége későbbre kell hogy essen, mint a kezdete
}
if (model.OraVege <= model.OraKezdete)
{
ms.AddModelError("OraVege", StringResourcesUtil.GetString(4581)); //Az óra vége későbbre kell hogy essen, mint a kezdete
}
if (!model.HetirendID.IsEntityId())
{
ms.AddModelError("HetirendID", ErrorResource.HetirendMegadasaKotelezo); //Órarendi nap hetirendje megadása kötelező!
}
if (model.CsengetesiRendOraID.IsEntityId())
{
if (!model.CsengetesiRendID.HasValue || model.CsengetesiRendID < 0)
{
ms.AddModelError("CsengetesiRendID", OrarendResource.CsengetesiRendMegadasaKotelezo);
}
if (!model.Oraszam.HasValue || model.Oraszam < 0)
{
ms.AddModelError("Oraszam", OrarendResource.OraszamMegadasaKotelezo);
}
}
// ha az érvényesség kezdete és vége megegyezik, és az rendkívüli tanítási nap akkor nem kell dátum validáció
bool kellDatumValidacio = model.OraErvenyessegKezdete.Value.Date != model.OraErvenyessegVege.Value.Date && model.CsengetesiRendID.HasValue;
var isNyariSzakmaiGyakorlat = model.TTFModel?.OsztalyID != null && new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).IsNyariSzakmaiGyakorlatos(model.TTFModel.OsztalyID.Value);
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (kellDatumValidacio)
{
kellDatumValidacio = !tanevrendHelper.IsRendkivuliTanitasiNap(model.OraErvenyessegKezdete.Value);
}
TanevHelper helper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanev = helper.GetTanevInfo();
kellDatumValidacio = tanev.IsKovetkezo || kellDatumValidacio;
if ((kellDatumValidacio || isNyariSzakmaiGyakorlat) && model.TTFModel.OsztalyID.HasValue)
{
DateTime elsoNap = tanev.OraFelvetelKezdete;
DateTime utolsoNap = model.IsFromSzervezet ? tanev.UtolsoNap : tanev.UtolsoTanitasiNap;
if (isNyariSzakmaiGyakorlat)
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
elsoNap = systemSettingsHelper.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_kezd_datum).Value;
utolsoNap = systemSettingsHelper.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Osszefuggo_gyakorlat_veg_datum).Value;
}
if (model.OraErvenyessegKezdete < elsoNap)
{
ms.AddModelError("OraErvenyessegKezdete", isNyariSzakmaiGyakorlat ? ErrorResource.OraErvenyessegNyariGyakorlatKezdet : StringResourcesUtil.GetString(3087)); //Az óra érvényessége nem lehet korábban, mint az első tanítási nap!
}
if (model.IsTanoranKivuliFoglalkozas ? model.OraErvenyessegVege.Value.Date > utolsoNap.AddDays(1) : model.OraErvenyessegVege > utolsoNap.AddDays(1)) //Az utolsó nap 0 óra 0 percet tartalmaz, de aznap napközben még lehet óra, ezért a következő nap 0:00 időpont a jó.
{
ms.AddModelError("OraErvenyessegVege", isNyariSzakmaiGyakorlat ? ErrorResource.OraErvenyessegNyariGyakorlatVege : StringResourcesUtil.GetString(3088)); //Az óra érvényessége nem lehet később, mint az utolsó tanítási nap!
}
}
var checkDate = model.ID.HasValue ? model.ModificationDate.Date : model.OraErvenyessegKezdete.Value.ToLocalTime().Date;
if (!tanevrendHelper.IsOrarendiNap(checkDate, model.TTFModel.OsztalyID, model.IsFromSzervezet))
{
ms.AddModelError("OraKezdete", OrarendResource.NemOrarendiNapHibaUzenet);
}
return ms;
}
public static void SetHetNapja(OrarendiOraModel model, DayOfWeek day)
{
switch (day)
{
case DayOfWeek.Monday:
model.HetNapja = (int)HetNapjaTipusEnum.Hetfo;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Hetfo.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Tuesday:
model.HetNapja = (int)HetNapjaTipusEnum.Kedd;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Kedd.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Wednesday:
model.HetNapja = (int)HetNapjaTipusEnum.Szerda;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Szerda.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Thursday:
model.HetNapja = (int)HetNapjaTipusEnum.Csutortok;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Csutortok.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Friday:
model.HetNapja = (int)HetNapjaTipusEnum.Pentek;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Pentek.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Saturday:
model.HetNapja = (int)HetNapjaTipusEnum.Szombat;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Szombat.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
case DayOfWeek.Sunday:
model.HetNapja = (int)HetNapjaTipusEnum.Vasarnap;
model.HetNapjaSzoveg = HetNapjaTipusEnum.Vasarnap.GetDisplayName(ClaimData.SelectedTanevID.Value);
break;
}
}
public static WarningValidationModel CheckUtkozesValidation(OraValidationCo oraValidationCo, string successFunction, string closeFunction = null, string errMsgOraData = null, bool isPrevalidation = false, bool isForDelete = false)
{
bool tortentValtozas;
try
{
tortentValtozas = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).CheckUtkozesValidation(oraValidationCo, errMsgOraData, isPrevalidation, isForDelete: isForDelete);
}
catch (BlException ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message) { CloseFunction = string.IsNullOrWhiteSpace(closeFunction) ? oraValidationCo.OrarendiOraValidationCo.JSHelperNev + ".modCancel" : closeFunction };
}
if (tortentValtozas)
{
return new WarningValidationModel() { Msg = oraValidationCo.Msg.ToString(), ErrorMsg = oraValidationCo.ErrorMsg.ToString(), SuccessFunction = successFunction, CloseFunction = closeFunction };
}
throw new StatusError(HttpStatusCode.NoContent, string.Empty) { CloseFunction = oraValidationCo.OrarendiOraValidationCo.JSHelperNev + ".modCancel" };
}
public static List<SelectListItem> GetAktualHetirendList()
{
var dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.HetiRendTipus, ClaimData.SelectedTanevID.Value, false, visibleOnly: false);
var mindenHetVal = ((int)HetiRendTipusEnum.MindegyikHet).ToString();
var list = new List<SelectListItem>();
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var HetirendDictionary = helper.GetTanevHetirendTipusok();
if (!HetirendDictionary.ContainsKey(mindenHetVal))
{
list.Add(new SelectListItem() { Text = dictionary[mindenHetVal], Value = mindenHetVal });
}
foreach (var dictionaryItem in HetirendDictionary)
{
list.Add(new SelectListItem() { Text = dictionaryItem.Value, Value = dictionaryItem.Key });
}
return list;
}
public static void SetCsengetesiRendAndOraszam(OrarendiOraModel model)
{
var helper = new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var (csengetesiRendId, oraSzam) = helper.GetCsengetesiRendAndOraszam(model.CsengetesiRendOraID);
model.CsengetesiRendID = csengetesiRendId;
model.Oraszam = oraSzam;
}
public static DateTime CreateLocalDateTimeBasedOnDateAndTime(DateTime date, DateTime time)
{
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time");
var datum = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, 0, DateTimeKind.Utc), tzi);
return new DateTime(date.Year, date.Month, date.Day, datum.Hour, datum.Minute, 0, DateTimeKind.Local);
}
public static (int minOraszam, int maxOraszam) GetMinMaxOraszam(int csengetesirendId)
{
return new CsengetesiRendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMinMaxOraszam(csengetesirendId);
}
public static OraValidationCo SetOraValidationCoFromOrarendiOraModel(OrarendiOraModel model)
{
if (model.IsTanoranKivuliFoglalkozas)
{
var OraKezdeteLocalTime = model.OraKezdete.Value.ToLocalTime();
var OraVegeLocalTime = model.OraVege.Value.ToLocalTime();
model.OraKezdete = new DateTime(1900, 1, 1, OraKezdeteLocalTime.Hour, OraKezdeteLocalTime.Minute, 0, DateTimeKind.Local);
model.OraVege = new DateTime(1900, 1, 1, OraVegeLocalTime.Hour, OraVegeLocalTime.Minute, 0, DateTimeKind.Local);
model.Oraszam = null;
}
if (model.CsengetesiRendID.IsEntityId())
{
PostProcessOraszam(model);
var (minOraszam, maxOraszam) = GetMinMaxOraszam(model.CsengetesiRendID.Value);
if (model.Oraszam > maxOraszam || model.Oraszam < minOraszam)
{
throw new StatusError(HttpStatusCode.BadRequest, string.Format(OrarendResource.OraszamError, minOraszam.ToString(), maxOraszam.ToString()));
}
}
PostProcessHetirend(model);
if (model.TTFModel != null && model.TTFModel.OsztalyID.IsEntityId() && model.OraErvenyessegKezdete.Value.Date == model.OraErvenyessegVege.Value.Date)
{
model.IsEgyediNap = TanevRendjeLogic.IsEgyediNapByDateAndOsztalyCsoportId(model.OraErvenyessegKezdete.Value.Date, model.TTFModel.OsztalyID.Value);
}
PostProcessHetnapja(model);
return model.CreateOraValidationCo();
}
public static OraValidationCo SetOraValidationCoFromCopyOrarendiElemModel(OrarendiOraHelper orarendiOraHelper, CopyOrarendiElemModel copyOrarendiElemModel)
{
var napData = new NaptariNapHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNaptariNapData(copyOrarendiElemModel.dateFrom.Date);
if (napData.Tables[0].Rows.Count == 1)
{
OrarendiOraCO co = orarendiOraHelper.GetOrarendiOraById(copyOrarendiElemModel.copyId);
orarendiOraHelper.GetOrarendiOraTulajdonsagok(co, copyOrarendiElemModel.copyId);
int? csengetesiRendOraId = default;
if (copyOrarendiElemModel.oraszam > -1)
{
csengetesiRendOraId = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsengetesiRendOraId(co.CsengetesiRendID.Value, copyOrarendiElemModel.oraszam);
}
OrarendiOraModel model = new OrarendiOraModel
{
CsengetesiRendID = co.CsengetesiRendID,
HetirendID = co.Hetirend,
CsengetesiRendOraID = csengetesiRendOraId.HasValue ? csengetesiRendOraId.Value : co.CsengetesiRendOraID,
HetNapja = napData.Tables[0].Rows[0].Field<int>("Hetnapja"),
OraErvenyessegKezdete = co.OraErvenyessegKezdete,
OraErvenyessegVege = co.OraErvenyessegVege,
OraKezdete = copyOrarendiElemModel.dateFrom,
OraVege = copyOrarendiElemModel.dateTo,
Oraszam = copyOrarendiElemModel.oraszam,
OsztalyCsoportId = co.OsztalyCsoportId,
TanarNev = co.TanarNev,
TeremID = co.TeremID,
TantargyNev = co.TantargyNev,
ModositasiIdoszakTipus = (int)OraModositasiIdoszakTipus.TeljesIdoszak,
IsModification = false,
ModificationDate = copyOrarendiElemModel.dateFrom,
IKTTanora = co.IKTTanora,
Bontott = co.Bontott,
IsFelnottoktatasiSzerzodes = co.IsFelnottoktatasiSzerzodes,
NemzetisegiOra = co.NemzetisegiOra,
MindennaposTestneveles = co.MindennaposTestneveles,
IPRTanora = co.IPRTanora,
Differencialt = co.Differencialt,
Kooperativ = co.Kooperativ,
Meres = co.Meres,
Drama = co.Drama,
Tiop = co.Tiop,
ParhuzamosOra = co.ParhuzamosOra,
NemSzakrendszeruOra = co.NemSzakrendszeruOra,
TAMOPOra = co.TAMOPOra,
KIPOra = co.KIPOra,
VEKOP73317 = co.VEKOP73317,
KAPOra = co.KAPOra,
Tulora = co.Tulora,
Multikulturalis = co.Multikulturalis,
EFOP32317 = co.EFOP32317,
KomplexOra = co.KomplexOra,
GINOP623 = co.GINOP623,
EFOP31716EselyteremtesAKoznevelesben = co.EFOP31716EselyteremtesAKoznevelesben,
EFOP33717 = co.EFOP33717,
TIOP11112120120001 = co.TIOP11112120120001,
DFHT = co.DFHT,
Rahangolodas = co.Rahangolodas,
Testmozgas = co.Testmozgas,
Muveszet = co.Muveszet,
Eletgyakorlat = co.Eletgyakorlat,
Logika = co.Logika,
TeOrad = co.TeOrad,
Sorszamozando = co.Sorszamozando,
DigitalisAlapProgram = co.DigitalisAlapProgram,
EFOP23517201700038Miapalya = co.EFOP23517201700038Miapalya,
TanevTananyaganakIsmetlese = co.TanevTananyaganakIsmetlese,
TanevTananyaganakKiegeszitese = co.TanevTananyaganakKiegeszitese,
TanulokDigitalisKeszsegfejlesztese = co.TanulokDigitalisKeszsegfejlesztese,
Projektmunka = co.Projektmunka,
TanulokKompenzaciosIraskeszsegFejlesztese = co.TanulokKompenzaciosIraskeszsegFejlesztese,
TanulokKompenzaciosOlvasasiKepessegFejlesztese = co.TanulokKompenzaciosOlvasasiKepessegFejlesztese,
TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese = co.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese,
TanulokNyelviKepessegenekKompenzaciosFejlesztese = co.TanulokNyelviKepessegenekKompenzaciosFejlesztese,
TanulokOnmegismeresenekSegitese = co.TanulokOnmegismeresenekSegitese,
TanulokOnallosagraNevelese = co.TanulokOnallosagraNevelese,
TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese = co.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese,
TanulokOrientaciosTamogatasa = co.TanulokOrientaciosTamogatasa,
TanulokSzocialitasanakFejlesztese = co.TanulokSzocialitasanakFejlesztese,
TanulokTovabbhaladasatElokeszitoTevekenysegek = co.TanulokTovabbhaladasatElokeszitoTevekenysegek,
PedagogusAltalJelzettEgyeniEsetkezeles = co.PedagogusAltalJelzettEgyeniEsetkezeles,
ProjektmunkaTamogatasa = co.ProjektmunkaTamogatasa,
DigitalisKeszsegfejlesztes = co.DigitalisKeszsegfejlesztes,
KozossegiMunkaTamogatasa = co.KozossegiMunkaTamogatasa,
TanoraElokeszitesenekTamogatasa = co.TanoraElokeszitesenekTamogatasa,
TanoraLebonyolitasanakTamogatasa = co.TanoraLebonyolitasanakTamogatasa,
NapkozisTevekenysegKeretebenEgyeniFejlesztes = co.NapkozisTevekenysegKeretebenEgyeniFejlesztes,
IsEgybefuggoGyakorlat = co.IsEgybefuggoGyakorlat
};
model.TTFModel = new TTFModel
{
FoglalkozasID = co.FoglalkozasID,
OsztalyID = co.OsztalyCsoportId,
TantargyID = co.TantargyId,
TanarID = co.TanarId
};
SetOraKezdetekAndOraVegek(model);
OraValidationCo oraValidationCo = SetOraValidationCoFromOrarendiOraModel(model);
oraValidationCo.OrarendiOraValidationCo.JSHelperNev = Constants.JSHelperName.OrarendiOra;
oraValidationCo.OrarendiOraValidationCo.IsOraCopy = true;
return oraValidationCo;
}
return new OraValidationCo();
}
public static void SetOraKezdetekAndOraVegek(OrarendiOraModel model)
{
model.OraKezdete = CreateLocalDateTimeBasedOnDateAndTime(model.OraKezdete.Value, model.OraKezdete.Value);
model.OraVege = CreateLocalDateTimeBasedOnDateAndTime(model.OraVege.Value, model.OraVege.Value);
if (model.IsTanoranKivuliFoglalkozas && model.ModositasiIdoszakTipus == (int)OraModositasiIdoszakTipus.EgyOra)
{
model.OraErvenyessegKezdete = model.OraErvenyessegKezdete.Value.ToLocalTime();
model.OraErvenyessegVege = model.OraErvenyessegVege.Value.ToLocalTime();
}
else if (!model.CsengetesiRendID.HasValue) //NOTE: Különben nem a popupban kiválasztott értéket kapná
{
model.OraErvenyessegKezdete = model.OraErvenyessegKezdete.Value.Date.AddHours(model.OraKezdete.Value.Hour).AddMinutes(model.OraKezdete.Value.Minute);
model.OraErvenyessegVege = model.OraErvenyessegVege.Value.Date.AddHours(model.OraVege.Value.Hour).AddMinutes(model.OraVege.Value.Minute);
}
}
public static void PostProcessHetirend(OrarendiOraModel model)
{
if (model.ModositasiIdoszakTipus == (int)OraModositasiIdoszakTipus.EgyOra)
{
model.HetirendID = (int)HetiRendTipusEnum.MindegyikHet;
}
}
public static void PostProcessOraszam(OrarendiOraModel model)
{
if (model.CsengetesiRendID.IsEntityId())
{
var orarendiOraHelper = new CsengetesiRendOrakHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var csengrendOraId = orarendiOraHelper.GetCsengetesiRendOraId(model.CsengetesiRendID.Value, model.Oraszam.Value);
if (!csengrendOraId.IsEntityId())
{
throw new StatusError(HttpStatusCode.BadRequest, OrarendResource.CsengetesiRendhezNincsCsengetesiOra);
}
model.CsengetesiRendOraID = csengrendOraId.Value;
}
}
public static void PostProcessHetnapja(OrarendiOraModel model)
{
if (model.OraErvenyessegKezdete.Value.Date == model.OraErvenyessegVege.Value.Date)
{
var ds = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevrendekOsztalyCsoportokkal(model.OraErvenyessegKezdete.Value.Date, model.OraErvenyessegVege.Value.Date);
foreach (DataRow row in ds.Tables[0].Rows)
{
if (row.Field<bool>("OrarendiNap_BOOL") == true)
{
var hetNapja = row.Field<int?>("HetNapja");
if (hetNapja.HasValue && hetNapja.Value != model.HetNapja)
{
var osztalyCsoportId = row.Field<int?>("OsztalyCsoportId");
if (osztalyCsoportId.HasValue && osztalyCsoportId == model.TTFModel.OsztalyID)
{
model.HetNapja = hetNapja.Value;
break;
}
if (SDAConvert.ToBooleanFromTF(row.Field<string>("Global")))
{
model.HetNapja = hetNapja.Value;
break;
}
}
}
}
}
}
}
}

View file

@ -0,0 +1,25 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Enums;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class SzamonkeresElorejelzesLogic
{
public SzamonkeresElorejelzesLogic()
{
var helper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
SzamonkeresLimitFigyelmeztetes = helper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Limit_Figyelmeztetesi_Tiltasi_Beallitas);
GetModokListNapiLimithez = helper.GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Ertekeles_Modok_Beallitasa_Napi_Limithez);
GetNapiSzamonkeresiLimit = helper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Napi_Szamonkeresi_Limit);
}
public int SzamonkeresLimitFigyelmeztetes { get; private set; }
public List<int> GetModokListNapiLimithez { get; private set; }
public int GetNapiSzamonkeresiLimit { get; private set; }
}
}

View file

@ -0,0 +1,44 @@
using System.Net.Mime;
using System.Text;
using System.Web;
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.Resources;
using Kreta.Web.Areas.Orarend.Models;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Orarend.Logic
{
public class TanoraKeresoLogic
{
public static ActionResult ExportHelyettesitettTanorak(TanitasiOraSearchModel model)
{
var bytes = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHelyettesitettTanorakExcelExport(TanitasiOraSearchModel.ConvertModelToCo(model));
return new FileContentResult(bytes, MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode(OrarendResource.HelyettesitettTanorakExportFileName, Encoding.UTF8),
};
}
public static ActionResult ExportElmaradtTanorak(TanitasiOraSearchModel model)
{
var bytes = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetElmaradtTanorakExcelExport(TanitasiOraSearchModel.ConvertModelToCo(model));
return new FileContentResult(bytes, MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode(OrarendResource.ElmaradtTanorakExportFileName, Encoding.UTF8),
};
}
public static ActionResult ExportMegtartottTanorak(TanitasiOraSearchModel model)
{
var bytes = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMegtartottTanorakExcelExport(TanitasiOraSearchModel.ConvertModelToCo(model));
return new FileContentResult(bytes, MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode(OrarendResource.MegtartottTanorakExportFileName, Encoding.UTF8),
};
}
}
}

View file

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminCreateKozpontiOrakModel
{
public List<int> OrarendiOrakTorlesre { get; set; }
public List<AdminKozpontiOrakRogzitesGridModel> KozpontiOrakRogzitesre { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
public int HanyadikOra { get; set; }
public bool IsTeremutkozesFigyelese { get; set; }
}
}

View file

@ -0,0 +1,13 @@
using System;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminKozpontiOrakDeleteKozpontiOrakModel
{
public Guid KozpontiOraGroupId { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
public int HanyadikOra { get; set; }
public int OrarendiOraId { get; set; }
}
}

View file

@ -0,0 +1,13 @@
using Kreta.Web.Helpers.Grid;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminKozpontiOrakOrarendiOraPartialViewListModel
{
public bool RowCheckBoxCheckedByDefault { get; set; }
public string GridName { get; set; }
public GridApiUrl GridApiUrl { get; set; }
public string DataBoundAdditionalFunction { get; set; }
public string JsonContent { get; set; }
}
}

View file

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminKozpontiOrakOrarendiOrakIdList
{
public List<int> OrarendiOrakIdList { get; set; }
public DateTime Start { get; set; }
}
}

View file

@ -0,0 +1,196 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
using Kreta.Web.Attributes;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminKozpontiOrakOsztalyokGridModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(OrarendResource.Osztaly), ResourceType = typeof(OrarendResource))]
public string Osztaly { get; set; }
[Display(Name = nameof(OrarendResource.Tanar), ResourceType = typeof(OrarendResource))]
public int TanarID { get; set; }
[Display(Name = nameof(OrarendResource.Tanar), ResourceType = typeof(OrarendResource))]
public string Tanar { get; set; }
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
public int TantargyID { get; set; }
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
public string Tantargy { get; set; }
[Display(Name = nameof(OrarendResource.Terem), ResourceType = typeof(OrarendResource))]
public int TeremID { get; set; }
[Display(Name = nameof(OrarendResource.Terem), ResourceType = typeof(OrarendResource))]
public string Terem { get; set; }
public DateTime OraKezdete { get; set; }
public DateTime OraVege { get; set; }
public int HanyadikOra { get; set; }
public Guid? KozpontiOraGroupId { get; set; }
[KretaDisplayName(1532)] /*Sorszámozandó*/
public bool Sorszamozando { get; set; } = true;
[KretaDisplayName(1544)] /*>Párhuzamos óra*/
public bool ParhuzamosOra { get; set; }
[KretaDisplayName(1533)] /*Túlóra*/
public bool Tulora { get; set; }
[KretaDisplayName(1534)] /*TÁMOP óra*/
public bool TAMOPOra { get; set; }
[Display(Name = nameof(OrarendResource.KIPOra), ResourceType = typeof(OrarendResource))]
public bool KIPOra { get; set; }
[Display(Name = nameof(OrarendResource.VEKOP73317), ResourceType = typeof(OrarendResource))]
public bool VEKOP73317 { get; set; }
[Display(Name = nameof(OrarendResource.KAPOra), ResourceType = typeof(OrarendResource))]
public bool KAPOra { get; set; }
[Display(Name = nameof(OrarendResource.NemSzakrendszeruOra), ResourceType = typeof(OrarendResource))]
public bool NemSzakrendszeruOra { get; set; }
[KretaDisplayName(1536)] /*IKT tanóra*/
public bool IKTTanora { get; set; }
[KretaDisplayName(1537)] /*Nemzetiségi tanóra*/
public bool NemzetisegiOra { get; set; }
[Display(Name = nameof(TantargyResource.MegbizasiSzerzodesselEllatottOra), ResourceType = typeof(TantargyResource))]
public bool IsFelnottoktatasiSzerzodes { get; set; }
[KretaDisplayName(1538)] /*Mindennapos testnevelés*/
public bool MindennaposTestneveles { get; set; }
[KretaDisplayName(1539)] /*IPR tanóra*/
public bool IPRTanora { get; set; }
[KretaDisplayName(1540)] /*Differenciált*/
public bool Differencialt { get; set; }
[KretaDisplayName(1541)] /*Kooperatív*/
public bool Kooperativ { get; set; }
[KretaDisplayName(1542)] /*Mérés*/
public bool Meres { get; set; }
[Display(Name = nameof(OrarendResource.OnlineOra), ResourceType = typeof(OrarendResource))]
public bool OnlineOra { get; set; }
[KretaDisplayName(1543)] /*Dráma*/
public bool Drama { get; set; }
[KretaDisplayName(1545)] /*TIOP 12*/
public bool Tiop { get; set; }
[KretaDisplayName(2593)] /*Bontott*/
public bool Bontott { get; set; }
[Display(Name = nameof(OrarendResource.Multikulturalis), ResourceType = typeof(OrarendResource))]
public bool Multikulturalis { get; set; }
[Display(Name = nameof(OrarendResource.EFOP32317DigitalisKornyezetAKozenevelesben), ResourceType = typeof(OrarendResource))]
public bool EFOP32317 { get; set; }
[Display(Name = nameof(OrarendResource.KomplexOra), ResourceType = typeof(OrarendResource))]
public bool KomplexOra { get; set; }
[Display(Name = nameof(OrarendResource.GINOP623), ResourceType = typeof(OrarendResource))]
public bool GINOP623 { get; set; }
[Display(Name = nameof(OrarendResource.EFOP31716EselyteremtesAKoznevelesben), ResourceType = typeof(OrarendResource))]
public bool EFOP31716EselyteremtesAKoznevelesben { get; set; }
[Display(Name = nameof(OrarendResource.EFOP33717), ResourceType = typeof(OrarendResource))]
public bool EFOP33717 { get; set; }
[Display(Name = nameof(OrarendResource.TIOP11112120120001), ResourceType = typeof(OrarendResource))]
public bool TIOP11112120120001 { get; set; }
[Display(Name = nameof(OrarendResource.DFHT), ResourceType = typeof(OrarendResource))]
public bool DFHT { get; set; }
[Display(Name = nameof(OrarendResource.Rahangolodas), ResourceType = typeof(OrarendResource))]
public bool Rahangolodas { get; set; }
[Display(Name = nameof(OrarendResource.Testmozgas), ResourceType = typeof(OrarendResource))]
public bool Testmozgas { get; set; }
[Display(Name = nameof(OrarendResource.Muveszet), ResourceType = typeof(OrarendResource))]
public bool Muveszet { get; set; }
[Display(Name = nameof(OrarendResource.Eletgyakorlat), ResourceType = typeof(OrarendResource))]
public bool Eletgyakorlat { get; set; }
[Display(Name = nameof(OrarendResource.Logika), ResourceType = typeof(OrarendResource))]
public bool Logika { get; set; }
[Display(Name = nameof(OrarendResource.TeOrad), ResourceType = typeof(OrarendResource))]
public bool TeOrad { get; set; }
[Display(Name = nameof(OrarendResource.DigitalisAlapProgram), ResourceType = typeof(OrarendResource))]
public bool DigitalisAlapProgram { get; set; }
[Display(Name = nameof(OrarendResource.EFOP23517201700038Miapalya), ResourceType = typeof(OrarendResource))]
public bool EFOP23517201700038Miapalya { get; set; }
public static List<AdminKozpontiOrakOsztalyokGridModel> MapOsztalyItemCoListToOsztalyokGridModelList(List<OsztalyItemCo> osztalyItemCoList, bool isSorszamozando)
{
List<AdminKozpontiOrakOsztalyokGridModel> list = new List<AdminKozpontiOrakOsztalyokGridModel>();
foreach (OsztalyItemCo osztalyItemCo in osztalyItemCoList)
{
var temp = new AdminKozpontiOrakOsztalyokGridModel
{
ID = osztalyItemCo.Id.ToString(),
Osztaly = osztalyItemCo.Nev,
TanarID = osztalyItemCo.OsztalyfonokId,
TeremID = osztalyItemCo.TeremId,
Sorszamozando = isSorszamozando
};
list.Add(temp);
}
return list;
}
public static List<AdminKozpontiOrakOsztalyokGridModel> MapOrarendiOrakoListToOsztalyokGridModelList(IList<AdminKozpontiOrakOrarendiOraCo> orarendiOrakList)
{
List<AdminKozpontiOrakOsztalyokGridModel> list = new List<AdminKozpontiOrakOsztalyokGridModel>();
foreach (AdminKozpontiOrakOrarendiOraCo item in orarendiOrakList)
{
var temp = new AdminKozpontiOrakOsztalyokGridModel
{
ID = item.Id.ToString(),
Osztaly = item.OsztalyNev,
Tanar = item.TanarNev,
TanarID = item.TanarId,
Tantargy = item.TantargyNev,
TantargyID = item.TantargyId ?? 0,
Terem = item.TeremNev,
TeremID = item.TeremId,
OraKezdete = item.OraKezdete ?? DateTime.Now,
OraVege = item.OraVege ?? DateTime.Now,
HanyadikOra = item.OraSorszam ?? 0,
KozpontiOraGroupId = item.KozpontiOraGroupId
};
list.Add(temp);
}
return list;
}
}
}

View file

@ -0,0 +1,156 @@
using System;
using Kreta.BusinessLogic.Classes;
using Kreta.Enums.ManualEnums;
namespace Kreta.Web.Areas.Orarend.Models
{
// Órarend speciális adatok módosításnál frissíteni kell
public class AdminKozpontiOrakRogzitesGridModel
{
public int OsztalyId { get; set; }
public int TanarID { get; set; }
public int TantargyID { get; set; }
public int TeremID { get; set; }
public bool Sorszamozando { get; set; }
public bool ParhuzamosOra { get; set; }
public bool Tulora { get; set; }
public bool TAMOPOra { get; set; }
public bool NemSzakrendszeruOra { get; set; }
public bool KAPOra { get; set; }
public bool VEKOP73317 { get; set; }
public bool KIPOra { get; set; }
public bool IKTTanora { get; set; }
public bool NemzetisegiOra { get; set; }
public bool IsFelnottoktatasiSzerzodes { get; set; }
public bool OnlineOra { get; set; }
public bool MindennaposTestneveles { get; set; }
public bool IPRTanora { get; set; }
public bool Differencialt { get; set; }
public bool Kooperativ { get; set; }
public bool Meres { get; set; }
public bool Drama { get; set; }
public bool Tiop { get; set; }
public bool Bontott { get; set; }
public bool Multikulturalis { get; set; }
public bool EFOP32317 { get; set; }
public bool KomplexOra { get; set; }
public bool GINOP623 { get; set; }
public bool EFOP31716EselyteremtesAKoznevelesben { get; set; }
public bool EFOP33717 { get; set; }
public bool TIOP11112120120001 { get; set; }
public bool DFHT { get; set; }
public bool Rahangolodas { get; set; }
public bool Testmozgas { get; set; }
public bool Muveszet { get; set; }
public bool Eletgyakorlat { get; set; }
public bool Logika { get; set; }
public bool TeOrad { get; set; }
public bool DigitalisAlapProgram { get; set; }
public bool EFOP23517201700038Miapalya { get; set; }
public bool TanevTananyaganakIsmetlese { get; set; }
public bool TanevTananyaganakKiegeszitese { get; set; }
public bool TanulokDigitalisKeszsegfejlesztese { get; set; }
public bool Projektmunka { get; set; }
public bool TanulokKompenzaciosIraskeszsegFejlesztese { get; set; }
public bool TanulokKompenzaciosOlvasasiKepessegFejlesztese { get; set; }
public bool TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese { get; set; }
public bool TanulokNyelviKepessegenekKompenzaciosFejlesztese { get; set; }
public bool TanulokOnmegismeresenekSegitese { get; set; }
public bool TanulokOnallosagraNevelese { get; set; }
public bool TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese { get; set; }
public bool TanulokOrientaciosTamogatasa { get; set; }
public bool TanulokSzocialitasanakFejlesztese { get; set; }
public bool TanulokTovabbhaladasatElokeszitoTevekenysegek { get; set; }
public bool PedagogusAltalJelzettEgyeniEsetkezeles { get; set; }
public bool ProjektmunkaTamogatasa { get; set; }
public bool DigitalisKeszsegfejlesztes { get; set; }
public bool KozossegiMunkaTamogatasa { get; set; }
public bool TanoraElokeszitesenekTamogatasa { get; set; }
public bool TanoraLebonyolitasanakTamogatasa { get; set; }
public bool NapkozisTevekenysegKeretebenEgyeniFejlesztes { get; set; }
}
public static class KozpontiOraConverter
{
public static OrarendiOraModel ConvertToOrarendiOra(AdminKozpontiOrakRogzitesGridModel r, int csengetesirendId, DateTime Start, DateTime End, int HanyadikOra)
{
var orarendiOramodel = new OrarendiOraModel
{
ModositasiIdoszakTipus = (int)OraModositasiIdoszakTipus.EgyOra,
TeremID = r.TeremID,
OraErvenyessegKezdete = Start,
OraErvenyessegVege = End,
OraKezdete = Start,
OraVege = End,
CsengetesiRendID = csengetesirendId,
Oraszam = HanyadikOra,
TTFModel = new TTFModel
{
TantargyID = r.TantargyID,
TanarID = r.TanarID,
OsztalyID = SDAConvert.ToInt32(r.OsztalyId)
},
// Órarend speciális adatok módosításnál frissíteni kell
Sorszamozando = r.Sorszamozando,
ParhuzamosOra = r.ParhuzamosOra,
Tulora = r.Tulora,
TAMOPOra = r.TAMOPOra,
NemSzakrendszeruOra = r.NemSzakrendszeruOra,
KAPOra = r.KAPOra,
VEKOP73317 = r.VEKOP73317,
KIPOra = r.KIPOra,
IKTTanora = r.IKTTanora,
NemzetisegiOra = r.NemzetisegiOra,
IsFelnottoktatasiSzerzodes = r.IsFelnottoktatasiSzerzodes,
MindennaposTestneveles = r.MindennaposTestneveles,
IPRTanora = r.IPRTanora,
Differencialt = r.Differencialt,
Kooperativ = r.Kooperativ,
Meres = r.Meres,
Drama = r.Drama,
Tiop = r.Tiop,
Bontott = r.Bontott,
OnlineOra = r.OnlineOra,
Multikulturalis = r.Multikulturalis,
EFOP32317 = r.EFOP32317,
KomplexOra = r.KomplexOra,
GINOP623 = r.GINOP623,
EFOP31716EselyteremtesAKoznevelesben = r.EFOP31716EselyteremtesAKoznevelesben,
EFOP33717 = r.EFOP33717,
TIOP11112120120001 = r.TIOP11112120120001,
DFHT = r.DFHT,
Rahangolodas = r.Rahangolodas,
Testmozgas = r.Testmozgas,
Muveszet = r.Muveszet,
Eletgyakorlat = r.Eletgyakorlat,
Logika = r.Logika,
TeOrad = r.TeOrad,
DigitalisAlapProgram = r.DigitalisAlapProgram,
EFOP23517201700038Miapalya = r.EFOP23517201700038Miapalya,
TanevTananyaganakIsmetlese = r.TanevTananyaganakIsmetlese,
TanevTananyaganakKiegeszitese = r.TanevTananyaganakKiegeszitese,
TanulokDigitalisKeszsegfejlesztese = r.TanulokDigitalisKeszsegfejlesztese,
Projektmunka = r.Projektmunka,
TanulokKompenzaciosIraskeszsegFejlesztese = r.TanulokKompenzaciosIraskeszsegFejlesztese,
TanulokKompenzaciosOlvasasiKepessegFejlesztese = r.TanulokKompenzaciosOlvasasiKepessegFejlesztese,
TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese = r.TanulokMatematikaiGondolkodasiKepessegenekKompenzaciosFejlesztese,
TanulokNyelviKepessegenekKompenzaciosFejlesztese = r.TanulokNyelviKepessegenekKompenzaciosFejlesztese,
TanulokOnmegismeresenekSegitese = r.TanulokOnmegismeresenekSegitese,
TanulokOnallosagraNevelese = r.TanulokOnallosagraNevelese,
TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese = r.TanulokTanulasszervezesiKompenzaciosTechnikajanakErositese,
TanulokOrientaciosTamogatasa = r.TanulokOrientaciosTamogatasa,
TanulokSzocialitasanakFejlesztese = r.TanulokSzocialitasanakFejlesztese,
TanulokTovabbhaladasatElokeszitoTevekenysegek = r.TanulokTovabbhaladasatElokeszitoTevekenysegek,
PedagogusAltalJelzettEgyeniEsetkezeles = r.PedagogusAltalJelzettEgyeniEsetkezeles,
ProjektmunkaTamogatasa = r.ProjektmunkaTamogatasa,
DigitalisKeszsegfejlesztes = r.DigitalisKeszsegfejlesztes,
KozossegiMunkaTamogatasa = r.KozossegiMunkaTamogatasa,
TanoraElokeszitesenekTamogatasa = r.TanoraElokeszitesenekTamogatasa,
TanoraLebonyolitasanakTamogatasa = r.TanoraLebonyolitasanakTamogatasa,
NapkozisTevekenysegKeretebenEgyeniFejlesztes = r.NapkozisTevekenysegKeretebenEgyeniFejlesztes
};
return orarendiOramodel;
}
}
}

View file

@ -0,0 +1,190 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.Reflection;
using Kreta.Resources;
using Kreta.Web.Attributes;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminKozpontiOrakRogzitesModel
{
public int DefaultTanarID { get; set; }
public int DefaultTantargyID { get; set; }
public int DefaultTeremID { get; set; }
[KretaDisplayName(1532)] /*Sorszámozandó*/
public bool Sorszamozando { get; set; }
[KretaDisplayName(1544)] /*>Párhuzamos óra*/
public bool ParhuzamosOra { get; set; }
[KretaDisplayName(1533)] /*Túlóra*/
public bool Tulora { get; set; }
[KretaDisplayName(1534)] /*TÁMOP óra*/
public bool TAMOPOra { get; set; }
[Display(Name = nameof(OrarendResource.KIPOra), ResourceType = typeof(OrarendResource))]
public bool KIPOra { get; set; }
[Display(Name = nameof(OrarendResource.VEKOP73317), ResourceType = typeof(OrarendResource))]
public bool VEKOP73317 { get; set; }
[Display(Name = nameof(OrarendResource.KAPOra), ResourceType = typeof(OrarendResource))]
public bool KAPOra { get; set; }
[Display(Name = nameof(OrarendResource.NemSzakrendszeruOra), ResourceType = typeof(OrarendResource))]
public bool NemSzakrendszeruOra { get; set; }
[KretaDisplayName(1536)] /*IKT tanóra*/
public bool IKTTanora { get; set; }
[KretaDisplayName(1537)] /*Nemzetiségi tanóra*/
public bool NemzetisegiOra { get; set; }
[Display(Name = nameof(TantargyResource.MegbizasiSzerzodesselEllatottOra), ResourceType = typeof(TantargyResource))]
public bool IsFelnottoktatasiSzerzodes { get; set; }
[Display(Name = nameof(OrarendResource.OnlineOra), ResourceType = typeof(OrarendResource))]
public bool OnlineOra { get; set; }
[KretaDisplayName(1538)] /*Mindennapos testnevelés*/
public bool MindennaposTestneveles { get; set; }
[KretaDisplayName(1539)] /*IPR tanóra*/
public bool IPRTanora { get; set; }
[KretaDisplayName(1540)] /*Differenciált*/
public bool Differencialt { get; set; }
[KretaDisplayName(1541)] /*Kooperatív*/
public bool Kooperativ { get; set; }
[KretaDisplayName(1542)] /*Mérés*/
public bool Meres { get; set; }
[KretaDisplayName(1543)] /*Dráma*/
public bool Drama { get; set; }
[KretaDisplayName(1545)] /*TIOP 12*/
public bool Tiop { get; set; }
[KretaDisplayName(2593)] /*Bontott*/
public bool Bontott { get; set; }
[Display(Name = nameof(OrarendResource.Multikulturalis), ResourceType = typeof(OrarendResource))]
public bool Multikulturalis { get; set; }
[Display(Name = nameof(OrarendResource.EFOP32317DigitalisKornyezetAKozenevelesben), ResourceType = typeof(OrarendResource))]
public bool EFOP32317 { get; set; }
[Display(Name = nameof(OrarendResource.KomplexOra), ResourceType = typeof(OrarendResource))]
public bool KomplexOra { get; set; }
[Display(Name = nameof(OrarendResource.GINOP623), ResourceType = typeof(OrarendResource))]
public bool GINOP623 { get; set; }
[Display(Name = nameof(OrarendResource.EFOP31716EselyteremtesAKoznevelesben), ResourceType = typeof(OrarendResource))]
public bool EFOP31716EselyteremtesAKoznevelesben { get; set; }
[Display(Name = nameof(OrarendResource.EFOP33717), ResourceType = typeof(OrarendResource))]
public bool EFOP33717 { get; set; }
[Display(Name = nameof(OrarendResource.TIOP11112120120001), ResourceType = typeof(OrarendResource))]
public bool TIOP11112120120001 { get; set; }
[Display(Name = nameof(OrarendResource.DFHT), ResourceType = typeof(OrarendResource))]
public bool DFHT { get; set; }
[Display(Name = nameof(OrarendResource.Rahangolodas), ResourceType = typeof(OrarendResource))]
public bool Rahangolodas { get; set; }
[Display(Name = nameof(OrarendResource.Testmozgas), ResourceType = typeof(OrarendResource))]
public bool Testmozgas { get; set; }
[Display(Name = nameof(OrarendResource.Muveszet), ResourceType = typeof(OrarendResource))]
public bool Muveszet { get; set; }
[Display(Name = nameof(OrarendResource.Eletgyakorlat), ResourceType = typeof(OrarendResource))]
public bool Eletgyakorlat { get; set; }
[Display(Name = nameof(OrarendResource.Logika), ResourceType = typeof(OrarendResource))]
public bool Logika { get; set; }
[Display(Name = nameof(OrarendResource.TeOrad), ResourceType = typeof(OrarendResource))]
public bool TeOrad { get; set; }
[Display(Name = nameof(OrarendResource.DigitalisAlapProgram), ResourceType = typeof(OrarendResource))]
public bool DigitalisAlapProgram { get; set; }
[Display(Name = nameof(OrarendResource.EFOP23517201700038Miapalya), ResourceType = typeof(OrarendResource))]
public bool EFOP23517201700038Miapalya { get; set; }
public DateTime? OraDatum { get; set; }
public int? Oraszam { get; set; }
[Display(Name = nameof(OrarendResource.IsEgybefuggoGyakorlat), ResourceType = typeof(OrarendResource))]
public bool IsEgybefuggoGyakorlat { get; set; }
public int GetNumberOfTrueProperties()
{
var result = 0;
foreach (PropertyInfo prop in GetType().GetProperties())
{
var type = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType;
if (type == typeof(Boolean) && (bool)prop.GetValue(this))
{
result++;
}
}
return result;
}
public static AdminKozpontiOrakRogzitesModel MapFromTanoraAdatok(TanoraAdatok tanoraAdatok)
{
return new AdminKozpontiOrakRogzitesModel
{
Sorszamozando = tanoraAdatok.Sorszamozando,
ParhuzamosOra = tanoraAdatok.ParhuzamosOra,
Tulora = tanoraAdatok.Tulora,
TAMOPOra = tanoraAdatok.TAMOPOra,
KIPOra = tanoraAdatok.KIPOra,
VEKOP73317 = tanoraAdatok.VEKOP73317,
KAPOra = tanoraAdatok.KAPOra,
NemSzakrendszeruOra = tanoraAdatok.NemSzakrendszeruOra,
IKTTanora = tanoraAdatok.IKTTanora,
NemzetisegiOra = tanoraAdatok.NemzetisegiOra,
IsEgybefuggoGyakorlat = tanoraAdatok.IsEgybefuggoGyakorlat,
IsFelnottoktatasiSzerzodes = tanoraAdatok.IsFelnottoktatasiSzerzodes,
OnlineOra = tanoraAdatok.OnlineOra,
MindennaposTestneveles = tanoraAdatok.MindennaposTestneveles,
IPRTanora = tanoraAdatok.IPRTanora,
Differencialt = tanoraAdatok.Differencialt,
Kooperativ = tanoraAdatok.Kooperativ,
Meres = tanoraAdatok.Meres,
Drama = tanoraAdatok.Drama,
Tiop = tanoraAdatok.Tiop,
TIOP11112120120001 = tanoraAdatok.TIOP11112120120001,
Bontott = tanoraAdatok.Bontott,
Multikulturalis = tanoraAdatok.Multikulturalis,
EFOP32317 = tanoraAdatok.EFOP32317,
EFOP33717 = tanoraAdatok.EFOP33717,
EFOP31716EselyteremtesAKoznevelesben = tanoraAdatok.EFOP31716EselyteremtesAKoznevelesben,
KomplexOra = tanoraAdatok.KomplexOra,
GINOP623 = tanoraAdatok.GINOP623,
DFHT = tanoraAdatok.DFHT,
Rahangolodas = tanoraAdatok.Rahangolodas,
Testmozgas = tanoraAdatok.Testmozgas,
Muveszet = tanoraAdatok.Muveszet,
Eletgyakorlat = tanoraAdatok.Eletgyakorlat,
Logika = tanoraAdatok.Logika,
TeOrad = tanoraAdatok.TeOrad,
DigitalisAlapProgram = tanoraAdatok.DigitalisAlapProgram,
EFOP23517201700038Miapalya = tanoraAdatok.EFOP23517201700038Miapalya,
OraDatum = tanoraAdatok.OraDatum,
Oraszam = tanoraAdatok.Oraszam
};
}
}
}

View file

@ -0,0 +1,38 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.HelperClasses;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminKozpontiOrakRogzitesSelectedModel
{
public int OsztalyId { get; set; }
public int TanarId { get; set; }
public int TeremId { get; set; }
public static List<AdminSelectedKozpontiOraCo> MapListToKozpontiOrakOrarendiOrakUtkozesCoList(List<AdminKozpontiOrakRogzitesSelectedModel> list, int oraSzam)
{
var result = new List<AdminSelectedKozpontiOraCo>();
foreach (AdminKozpontiOrakRogzitesSelectedModel item in list)
{
var temp = new AdminSelectedKozpontiOraCo
{
OsztalyId = item.OsztalyId,
TanarId = item.TanarId,
TeremId = item.TeremId,
OraSzam = oraSzam
};
result.Add(temp);
}
return result;
}
public class DeserializeHelper
{
public string JsonContent { get; set; }
}
}
}

View file

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminKozpontiOrakSearchModel
{
public DateTime Start { get; set; }
public DateTime End { get; set; }
public int HanyadikOra { get; set; }
public List<AdminKozpontiOrakRogzitesSelectedModel> KozpontiOrakList { get; set; }
public string CreateModelsJson { get; set; }
}
}

View file

@ -0,0 +1,67 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Core.CustomAttributes;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminNemElerhetoOrarendiElemGridModel : IKretaIdentity
{
public const string NemElerhetoOrarendiElemExportAttributeId = nameof(NemElerhetoOrarendiElemExportAttributeId);
public AdminNemElerhetoOrarendiElemGridModel() { }
public AdminNemElerhetoOrarendiElemGridModel(NemElerhetoOrarendiElemItemCo itemCo)
{
ID = itemCo.Id;
ErvenyessegKezdete = itemCo.ErvenyessegKezdete;
ErvenyessegVege = itemCo.ErvenyessegVege;
Tanar = itemCo.Tanar;
TanarElotagNelkul = itemCo.TanarElotagNelkul;
OsztalyCsoport = itemCo.OsztalyCsoport;
Tantargy = itemCo.Tantargy;
Hetirend = itemCo.Hetirend;
Nap = itemCo.Nap;
Terem = itemCo.Terem;
}
public string ID { get; set; }
[Display(Name = nameof(OrarendResource.ErvenyessegKezdete), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(NemElerhetoOrarendiElemExportAttributeId, 00, nameof(OrarendResource.ErvenyessegKezdete), typeof(OrarendResource))]
public DateTime? ErvenyessegKezdete { get; set; }
[Display(Name = nameof(OrarendResource.ErvenyessegVege), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(NemElerhetoOrarendiElemExportAttributeId, 01, nameof(OrarendResource.ErvenyessegVege), typeof(OrarendResource))]
public DateTime? ErvenyessegVege { get; set; }
[Display(Name = nameof(OrarendResource.Tanar), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(NemElerhetoOrarendiElemExportAttributeId, 02, nameof(OrarendResource.Tanar), typeof(OrarendResource))]
public string Tanar { get; set; }
[Display(Name = nameof(OrarendResource.Tanar), ResourceType = typeof(OrarendResource))]
public string TanarElotagNelkul { get; set; }
[Display(Name = nameof(OrarendResource.OsztalyCsoport), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(NemElerhetoOrarendiElemExportAttributeId, 03, nameof(OrarendResource.OsztalyCsoport), typeof(OrarendResource))]
public string OsztalyCsoport { get; set; }
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(NemElerhetoOrarendiElemExportAttributeId, 04, nameof(OrarendResource.Tantargy), typeof(OrarendResource))]
public string Tantargy { get; set; }
[Display(Name = nameof(OrarendResource.Hetirend), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(NemElerhetoOrarendiElemExportAttributeId, 05, nameof(OrarendResource.Hetirend), typeof(OrarendResource))]
public string Hetirend { get; set; }
[Display(Name = nameof(OrarendResource.HetNapja), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(NemElerhetoOrarendiElemExportAttributeId, 06, nameof(OrarendResource.HetNapja), typeof(OrarendResource))]
public string Nap { get; set; }
[Display(Name = nameof(OrarendResource.Terem), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(NemElerhetoOrarendiElemExportAttributeId, 07, nameof(OrarendResource.Terem), typeof(OrarendResource))]
public string Terem { get; set; }
}
}

View file

@ -0,0 +1,70 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminNemElerhetoOrarendiElemSearchModel
{
[Display(Name = nameof(OrarendResource.ErvenyessegKezdete), ResourceType = typeof(OrarendResource))]
public DateTime? ErvenyessegKezdeteTol { get; set; }
public DateTime? ErvenyessegKezdeteIg { get; set; }
[Display(Name = nameof(OrarendResource.ErvenyessegVege), ResourceType = typeof(OrarendResource))]
public DateTime? ErvenyessegVegeTol { get; set; }
public DateTime? ErvenyessegVegeIg { get; set; }
[Display(Name = nameof(OrarendResource.OsztalyCsoport), ResourceType = typeof(OrarendResource))]
public int? OsztalyCsoportId { get; set; }
[Display(Name = nameof(OrarendResource.Tanar), ResourceType = typeof(OrarendResource))]
public int? TanarId { get; set; }
[Display(Name = nameof(OrarendResource.Terem), ResourceType = typeof(OrarendResource))]
public int? TeremId { get; set; }
[Display(Name = nameof(OrarendResource.HetNapja), ResourceType = typeof(OrarendResource))]
public int? NapId { get; set; }
[Display(Name = nameof(OrarendResource.Hetirend), ResourceType = typeof(OrarendResource))]
public int? HetirendId { get; set; }
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
public int? TantargyId { get; set; }
public static AdminNemElerhetoOrarendiElemCO ConvertModelToCo(AdminNemElerhetoOrarendiElemSearchModel model)
{
return new AdminNemElerhetoOrarendiElemCO()
{
ErvenyessegKezdeteTol = model.ErvenyessegKezdeteTol,
ErvenyessegKezdeteIg = model.ErvenyessegKezdeteIg,
ErvenyessegVegeTol = model.ErvenyessegVegeTol,
ErvenyessegVegeIg = model.ErvenyessegVegeIg,
OsztalyCsoportId = model.OsztalyCsoportId,
TanarId = model.TanarId,
TeremId = model.TeremId,
NapId = model.NapId,
HetirendId = model.HetirendId,
TantargyId = model.TantargyId
};
}
public AdminNemElerhetoOrarendiElemCO ConvertToCo()
{
return new AdminNemElerhetoOrarendiElemCO()
{
ErvenyessegKezdeteTol = this.ErvenyessegKezdeteTol,
ErvenyessegKezdeteIg = this.ErvenyessegKezdeteIg,
ErvenyessegVegeTol = this.ErvenyessegVegeTol,
ErvenyessegVegeIg = this.ErvenyessegVegeIg,
OsztalyCsoportId = this.OsztalyCsoportId,
TanarId = this.TanarId,
TeremId = this.TeremId,
NapId = this.NapId,
HetirendId = this.HetirendId,
TantargyId = this.TantargyId
};
}
}
}

View file

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
using Kreta.Web.Helpers.TabStrip;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminOsztalyOrarendModel
{
public AdminOsztalyOrarendModel()
{
TabList = new List<TabStripItemModel>();
}
[Display(Name = nameof(OsztalyCsoportResource.OsztalyCsoport), ResourceType = typeof(OsztalyCsoportResource))]
public int? Osztaly { get; set; }
public string HetirendJson { get; set; }
public string NaptariHetekHetirendJson { get; set; }
public List<TabStripItemModel> TabList { get; set; }
public TimeSpan CalendarMinTime { get; set; }
public TimeSpan CalendarMaxTime { get; set; }
public TimeSpan CsengetesiRendMinTime { get; set; }
public TimeSpan CsengetesiRendMaxTime { get; set; }
public bool IsOravegeBeallitasOrahosszAlapjan { get; set; }
public string CopyOrarendJson { get; set; }
public bool IsFromSzervezet { get; set; }
public string ControllerName => IsFromSzervezet ? Constants.Controllers.DualisAdminOsztalyOrarend : Constants.Controllers.AdminOsztalyOrarend;
public string ApiControllerName => IsFromSzervezet ? Constants.ApiControllers.DualisAdminOsztalyOrarendApi : Constants.ApiControllers.AdminOsztalyOrarendApi;
}
}

View file

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
using Kreta.Web.Attributes;
using Kreta.Web.Helpers.TabStrip;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminTanariOrarendModel
{
public AdminTanariOrarendModel()
{
TabList = new List<TabStripItemModel>();
}
[Display(Name = nameof(AlkalmazottResource.Tanar), ResourceType = typeof(AlkalmazottResource))]
public int? Tanar { get; set; }
[Display(Name = nameof(OsztalyCsoportResource.Osztaly), ResourceType = typeof(OsztalyCsoportResource))]
public int? Osztaly { get; set; }
public string HetirendJson { get; set; }
public string NaptariHetekHetirendJson { get; set; }
public int TanarId { get; set; }
public List<TabStripItemModel> TabList { get; set; }
public TimeSpan CalendarMinTime { get; set; }
public TimeSpan CalendarMaxTime { get; set; }
public TimeSpan CsengetesiRendMinTime { get; set; }
public TimeSpan CsengetesiRendMaxTime { get; set; }
public bool IsOravegeBeallitasOrahosszAlapjan { get; set; }
public string CopyOrarendJson { get; set; }
public bool IsFromSzervezet { get; set; }
public string ControllerName => IsFromSzervezet ? Constants.Controllers.DualisAdminTanariOrarend : Constants.Controllers.AdminTanariOrarend;
public string ApiControllerName => IsFromSzervezet ? Constants.ApiControllers.DualisAdminTanariOrarendApi : Constants.ApiControllers.AdminTanariOrarendApi;
}
}

View file

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
using Kreta.Web.Attributes;
using Kreta.Web.Helpers.TabStrip;
namespace Kreta.Web.Areas.Orarend.Models
{
public class AdminTeremOrarendModel
{
public AdminTeremOrarendModel()
{
TabList = new List<TabStripItemModel>();
}
[Display(Name = nameof(OrarendResource.Terem), ResourceType = typeof(OrarendResource))]
public int? Terem { get; set; }
public string HetirendJson { get; set; }
public string NaptariHetekHetirendJson { get; set; }
public List<TabStripItemModel> TabList { get; set; }
public TimeSpan CalendarMinTime { get; set; }
public TimeSpan CalendarMaxTime { get; set; }
public TimeSpan CsengetesiRendMinTime { get; set; }
public TimeSpan CsengetesiRendMaxTime { get; set; }
public bool IsOravegeBeallitasOrahosszAlapjan { get; set; }
public string CopyOrarendJson { get; set; }
public bool IsFromSzervezet { get; set; }
public string ControllerName => IsFromSzervezet ? Constants.Controllers.DualisAdminTeremOrarend : Constants.Controllers.AdminTeremOrarend;
public string ApiControllerName => IsFromSzervezet ? Constants.ApiControllers.DualisAdminTeremOrarendApi : Constants.ApiControllers.AdminTeremOrarendApi;
}
}

View file

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class BaseOrarendTorleseModel
{
public List<SelectListItem> OraTipusok { get; set; } = new List<SelectListItem>();
[Required(ErrorMessageResourceName = nameof(OrarendekTorleseResource.OraTipusMegadasaKotelezo), ErrorMessageResourceType = typeof(OrarendekTorleseResource))]
public string OraTipus { get; set; }
[Required(ErrorMessageResourceName = nameof(OrarendekTorleseResource.IntervallumKezdeteDatumMegadasaKotelezo), ErrorMessageResourceType = typeof(OrarendekTorleseResource))]
public DateTime? KezdeteDatum { get; set; }
[Required(ErrorMessageResourceName = nameof(OrarendekTorleseResource.IntervallumVegeDatumMegadasaKotelezo), ErrorMessageResourceType = typeof(OrarendekTorleseResource))]
public DateTime? VegeDatum { get; set; }
public DateTime MinDatum { get; set; }
public DateTime MaxDatum { get; set; }
}
}

View file

@ -0,0 +1,75 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Core.CustomAttributes;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class BejelentettSzamonkeresekGridModel : IKretaIdentity
{
public const string BejelentettSzamonkeresekExportAttributeId = nameof(BejelentettSzamonkeresekExportAttributeId);
public BejelentettSzamonkeresekGridModel()
{
}
public BejelentettSzamonkeresekGridModel(BejelentettSzamonkeresekItemCo itemCo)
{
ID = itemCo.Id.ToString();
SzamonkeresDatuma = itemCo.SzamonkeresDatuma;
HetNapjaNev = itemCo.HetNapjaNev;
HetNapjaId = itemCo.HetNapjaId;
Oraszam = itemCo.Oraszam;
TanarNev = itemCo.Tanarnev;
TargyNev = itemCo.TargyNev;
OsztalyNev = itemCo.OsztalyNev;
ErtekelesModNev = itemCo.ErtekelesModNev;
SzamonkeresMegnevezes = itemCo.SzamonkeresMegnevezes;
BejelentesDatuma = itemCo.BejelentesDatuma;
}
public string ID { get; set; }
[SimpleExportColumn(BejelentettSzamonkeresekExportAttributeId, 00, nameof(OrarendResource.Datum), typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.Datum), ResourceType = typeof(OrarendResource))]
public DateTime SzamonkeresDatuma { get; set; }
[SimpleExportColumn(BejelentettSzamonkeresekExportAttributeId, 01, nameof(OrarendResource.HetNapja), typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.HetNapja), ResourceType = typeof(OrarendResource))]
public string HetNapjaNev { get; set; }
[Display(Name = nameof(OrarendResource.HetNapja), ResourceType = typeof(OrarendResource))]
public int? HetNapjaId { get; set; }
[SimpleExportColumn(BejelentettSzamonkeresekExportAttributeId, 02, nameof(OrarendResource.Oraszam), typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.Oraszam), ResourceType = typeof(OrarendResource))]
public int? Oraszam { get; set; }
[SimpleExportColumn(BejelentettSzamonkeresekExportAttributeId, 05, nameof(OrarendResource.Tanar), typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.Tanar), ResourceType = typeof(OrarendResource))]
public string TanarNev { get; set; }
[SimpleExportColumn(BejelentettSzamonkeresekExportAttributeId, 03, nameof(OrarendResource.Tantargy), typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
public string TargyNev { get; set; }
[SimpleExportColumn(BejelentettSzamonkeresekExportAttributeId, 04, nameof(OrarendResource.OsztalyCsoport), typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.OsztalyCsoport), ResourceType = typeof(OrarendResource))]
public string OsztalyNev { get; set; }
[SimpleExportColumn(BejelentettSzamonkeresekExportAttributeId, 06, nameof(OrarendResource.SzamonkeresMod), typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.SzamonkeresMod), ResourceType = typeof(OrarendResource))]
public string ErtekelesModNev { get; set; }
[SimpleExportColumn(BejelentettSzamonkeresekExportAttributeId, 07, nameof(OrarendResource.SzamonkeresMegnevezes), typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.SzamonkeresMegnevezes), ResourceType = typeof(OrarendResource))]
public string SzamonkeresMegnevezes { get; set; }
[SimpleExportColumn(BejelentettSzamonkeresekExportAttributeId, 08, nameof(OrarendResource.BejelentesDatuma), typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.BejelentesDatuma), ResourceType = typeof(OrarendResource))]
public DateTime BejelentesDatuma { get; set; }
}
}

View file

@ -0,0 +1,76 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class BejelentettSzamonkeresekSearchModel
{
[Display(Name = nameof(OrarendResource.SzamonkeresDatum), ResourceType = typeof(OrarendResource))]
public DateTime? DatumTol { get; set; }
[Display(Name = nameof(OrarendResource.SzamonkeresDatum), ResourceType = typeof(OrarendResource))]
public DateTime? DatumIg { get; set; }
[Display(Name = nameof(OrarendResource.OsztalyCsoport), ResourceType = typeof(OrarendResource))]
public int? OsztalyCsoportId { get; set; }
[Display(Name = nameof(OrarendResource.HetNapja), ResourceType = typeof(OrarendResource))]
public int? HetNapjaSrc { get; set; }
[KretaRange(0, 99)]
[Display(Name = nameof(OrarendResource.Oraszam), ResourceType = typeof(OrarendResource))]
public int? OraszamSrc { get; set; }
[Display(Name = nameof(OrarendResource.RegiSzamonkeresekElrejtese), ResourceType = typeof(OrarendResource))]
public bool RegiSzamonkeresekElrejtese { get; set; } = true;
[Display(Name = nameof(OrarendResource.SzamonkeresMod), ResourceType = typeof(OrarendResource))]
public int? SzamonkeresModSrc { get; set; }
[Display(Name = nameof(OrarendResource.SzamonkeresMegnevezes), ResourceType = typeof(OrarendResource))]
public string SzamonkeresMegnevezesSrc { get; set; }
[Display(Name = nameof(OrarendResource.BejelentesDatuma), ResourceType = typeof(OrarendResource))]
public DateTime? BejelentesDatumaTol { get; set; }
[Display(Name = nameof(OrarendResource.BejelentesDatuma), ResourceType = typeof(OrarendResource))]
public DateTime? BejelentesDatumaIg { get; set; }
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
public int? TantargySrc { get; set; }
[Display(Name = nameof(OrarendResource.Tanar), ResourceType = typeof(OrarendResource))]
public int? TanarSrc { get; set; }
[Display(Name = nameof(OrarendResource.TanuloNeve), ResourceType = typeof(OrarendResource))]
public int? TanuloId { get; set; }
[Display(Name = nameof(OrarendResource.KapcsolodoCsoportok), ResourceType = typeof(OrarendResource))]
public bool KapcsolodoCsoportok { get; set; }
public SzamonkeresElorejelzesSearchCO ConvertToCo()
{
var co = new SzamonkeresElorejelzesSearchCO();
co.DatumTol = DatumTol;
co.DatumIg = DatumIg;
co.HetNapjaSrc = HetNapjaSrc;
co.OraszamSrc = OraszamSrc;
co.SzamonkeresModSrc = SzamonkeresModSrc;
co.SzamonkeresMegnevezesSrc = SzamonkeresMegnevezesSrc;
co.BejelentesDatumaTol = BejelentesDatumaTol;
co.BejelentesDatumaIg = BejelentesDatumaIg;
co.TantargySrc = TantargySrc;
co.TanarSrc = TanarSrc;
co.TanuloId = TanuloId;
co.RegiSzamonkeresekElrejtese = RegiSzamonkeresekElrejtese;
co.OsztalyCsoportId = OsztalyCsoportId;
co.KapcsolodoCsoportok = KapcsolodoCsoportok;
return co;
}
}
}

View file

@ -0,0 +1,89 @@
using System;
using Kreta.BusinessLogic.Logic.Naplozas;
using Kreta.Enums.ManualEnums;
namespace Kreta.Web.Areas.Orarend.Models
{
public class CalendarModel
{
DateTime starttime;
DateTime endtime;
public int EventId { get; set; }
public EventTypeEnum EventType { get; set; }
public bool IsDateAlreadyChangedToUtc { get; set; }
public DateTime Start
{
get
{
return starttime;
}
set
{
if (IsDateAlreadyChangedToUtc)
{
starttime = value.ToLocalTime();
}
else
{
starttime = value;
}
}
}
public DateTime End
{
get
{
return endtime;
}
set
{
if (IsDateAlreadyChangedToUtc)
{
endtime = value.ToLocalTime();
}
else
{
endtime = value;
}
}
}
public bool AllDay { get; set; }
public string EventColor { get; set; }
public CalendarOraTypeEnum OraType { get; set; }
public int? HelyettesitesId { get; set; }
public int? HelyettesitoId { get; set; }
public int? Hanyadikora { get; set; }
public bool UseFoglakozas { get; set; }
public bool isHelyettesites { get; set; }
public bool IsOraOsszevonas { get; set; }
public string Tema { get; set; }
bool IsFromSzervezet { get; set; }
public void ConvertTo(NaplozasElokeszitesCo co)
{
//Mindenhol UTC date-et küldünk ezért kell local date-é alakítani minden esetben
co.Start = Start.ToLocalTime();
co.End = End.ToLocalTime();
if (OraType == CalendarOraTypeEnum.TanitasiOra || OraType == CalendarOraTypeEnum.TanoranKivuliNaplozottFoglalkozas)
{
co.TanitasiOraId = EventId;
}
if (OraType == CalendarOraTypeEnum.OrarendiOra || OraType == CalendarOraTypeEnum.TanoranKivuliFoglalkozas)
{
co.OrarendiOraId = EventId;
}
}
}
public enum EventTypeEnum
{
UjOraFelvitele = 0,
LetezoOraSzerkesztese = 1,
EgeszNaposEsemeny = 2,
UjEgyediOraFelvitel = 4,
TanarHelyetesites = 5
}
}

View file

@ -0,0 +1,15 @@
namespace Kreta.Web.Areas.Orarend.Models
{
public class CheckFoglalkozasRogzithetoResult
{
public bool IsOrarendiNap { get; set; }
public bool IsNaplozaras { get; set; }
public bool IsTanitasiNap { get; set; }
public bool IsNapirendMegnyithato { get; set; }
public bool IsCsakErtekelesZarasa { get; set; }
}
}

View file

@ -0,0 +1,12 @@
using System;
namespace Kreta.Web.Areas.Orarend.Models
{
public class CopyOrarendiElemModel
{
public int copyId { get; set; }
public DateTime dateFrom { get; set; }
public DateTime dateTo { get; set; }
public int oraszam { get; set; }
}
}

View file

@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Orarend.Models
{
public class CsoportOrarendTorleseModel : BaseOrarendTorleseModel
{
public IEnumerable<OrarendTorleseOsztalyCsoportListItem> CsoportList { get; set; }
[Required(ErrorMessageResourceName = nameof(OrarendekTorleseResource.LegalabbEgyCsoportKivalasztasaKotelezo), ErrorMessageResourceType = typeof(OrarendekTorleseResource))]
public string SelectedCsoportok { get; set; }
public OrarendekTorleseCo ConvertToCo()
{
return new OrarendekTorleseCo
{
IntervallumKezdete = KezdeteDatum.Value,
IntervallumVege = VegeDatum.Value,
NezetTipus = (OrarendekTorleseNezetTipusEnum)Enum.Parse(typeof(OrarendekTorleseNezetTipusEnum), OraTipus),
Csoportok = JsonConvert.DeserializeObject<List<OrarendTorleseOsztalyCsoportListItem>>(SelectedCsoportok).Select(x => new OrarendekTorleseListItemCo
{
Id = x.Id
})
};
}
}
}

View file

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
using Kreta.Web.Attributes;
using Kreta.Web.Helpers.TabStrip;
namespace Kreta.Web.Areas.Orarend.Models
{
public class CsoportVezetoOrarendModel
{
public CsoportVezetoOrarendModel()
{
TabList = new List<TabStripItemModel>();
}
[Display(Name = nameof(OsztalyCsoportResource.Csoport), ResourceType = typeof(OsztalyCsoportResource))]
public int? CsoportId { get; set; }
public string HetirendJson { get; set; }
public string NaptariHetekHetirendJson { get; set; }
public bool ShowKerdoivPopup { get; set; }
public List<TabStripItemModel> TabList { get; set; }
[KretaDisplayName(1681)] /*Helyettesített*/
public int? Tanar { get; set; }
public bool isHelyettesites { get; set; }
public TimeSpan CalendarMinTime { get; set; }
public TimeSpan CalendarMaxTime { get; set; }
public TimeSpan CsengetesiRendMinTime { get; set; }
public TimeSpan CsengetesiRendMaxTime { get; set; }
}
}

View file

@ -0,0 +1,60 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using Kreta.BusinessLogic.Logic.Naplozas.Elokeszites;
using Kreta.Enums;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Models
{
public class DigitalisOktatasAdatok
{
public DigitalisOktatasAdatok(int? szervezetTipusId)
{
DigTamEszkozTipusList = new List<SelectListItem>();
SzervezetTipusId_DigitalisOktatasAdatok = szervezetTipusId;
}
[Display(Name = nameof(OrarendResource.DigPlatformTipus), ResourceType = typeof(OrarendResource))]
public int? DigPlatformTipusId { get; set; }
[Display(Name = nameof(OrarendResource.DigEszkozTipus), ResourceType = typeof(OrarendResource))]
public int? DigEszkozTipusId { get; set; }
[Display(Name = nameof(OrarendResource.DigTamEszkozTipus), ResourceType = typeof(OrarendResource))]
public string[] DigTamEszkozTipus { get; set; }
public List<SelectListItem> DigTamEszkozTipusList { get; set; }
public int? SzervezetTipusId_DigitalisOktatasAdatok { get; set; }
public void Fill(NaplozasElokeszitesModel model)
{
DigPlatformTipusId = model.OraAdat.DigPlatformTipusId ?? (int)DigPlatformTipusEnum.na;
DigEszkozTipusId = model.OraAdat.DigEszkozTipusId ?? (int)DigEszkozTipusEnum.na;
DigTamEszkozTipus = model.OraAdat.DigTamEszkozTipusIdList != null && model.OraAdat.DigTamEszkozTipusIdList.Count > 0 ? model.OraAdat.DigTamEszkozTipusIdList.Select(x => x.ToString()).ToArray() : new string[] { ((int)DigTamEszkozTipusEnum.na).ToString() };
DigTamEszkozTipusList = GetDigTamEszkozTipusList();
}
public List<SelectListItem> GetDigTamEszkozTipusList()
{
List<SelectListItem> dropdownListItems = new List<SelectListItem>();
foreach (var item in FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.DigTamEszkozTipus, ClaimData.SelectedTanevID.Value))
{
dropdownListItems.Add(new SelectListItem
{
Value = item.Key,
Text = item.Value
});
}
return dropdownListItems;
}
}
}

View file

@ -0,0 +1,78 @@
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Web.Attributes;
namespace Kreta.Web.Areas.Orarend.Models
{
public class ErtekelesNaplozasaGrid : IKretaIdentity
{
public string ID { get; set; }
public string Oka { get; set; }
public bool ErtkelesMentesseg_BOOL { get; set; }
public bool OraMentesseg_BOOL { get; set; }
public bool SzovegesenErtekelheto_BOOL { get; set; }
public bool BeirtOsztalyzat_BOOL { get; set; }
public string BeirtOsztalyzatTitle { get; set; }
[KretaDisplayName(455)] /*Tanuló neve*/
public string Nev { get; set; }
[KretaDisplayName(1817)] /*Átlag*/
public double Atlag { get; set; }
[KretaDisplayName(275)] /*Osztályzat*/
public string Osztalyzat { get; set; }
[KretaDisplayName(2619)] /*Magatartás*/
public int? Magatartas { get; set; }
[KretaDisplayName(2620)] /*Szorgalom*/
public int? Szorgalom { get; set; }
[KretaRange(0, 100, StringResourcesId = 4178)] //Az érték nem esik a megengedett tartományba
[KretaDisplayName(2581)] /*Százalék*/
public int Szazalek { get; set; }
[KretaDisplayName(276)] /*Szöveges értékelés*/
public string Szoveg { get; set; }
[KretaDisplayName(1804)] //09
public string Szeptember { get; set; }
[KretaDisplayName(1805)] //10
public string Oktober { get; set; }
[KretaDisplayName(1806)] //11
public string November { get; set; }
[KretaDisplayName(1807)] //12
public string December { get; set; }
[KretaDisplayName(4350)] //01/I
public string JanuarI { get; set; }
[KretaDisplayName(1815)] //I
public string FeleviJegy { get; set; }
[KretaDisplayName(4352)] //01/II
public string JanuarII { get; set; }
[KretaDisplayName(1810)] //02
public string Februar { get; set; }
[KretaDisplayName(1811)] //03
public string Marcius { get; set; }
[KretaDisplayName(1812)] //04
public string Aprilis { get; set; }
[KretaDisplayName(1813)] //05
public string Majus { get; set; }
[KretaDisplayName(1814)] //06
public string Junius { get; set; }
[KretaDisplayName(1816)] //II
public string EvvegiJegy { get; set; }
}
}

View file

@ -0,0 +1,99 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Core.CustomAttributes;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Models
{
public class FeladatokListajaGridModel : IKretaIdentity
{
#region Fields
public const string HazifeladatExportAttributeId = nameof(HazifeladatExportAttributeId);
#endregion
public FeladatokListajaGridModel()
{
}
public FeladatokListajaGridModel(HaziFeladatItemCo itemCo)
{
ID = itemCo.Id.ToString();
OraDatuma = itemCo.OraDatuma;
HaziFeladatRogzitesDatuma = itemCo.RogzitesDatuma;
HaziFeladatHataridoDatuma = itemCo.HataridoDatuma;
Tanar = itemCo.TanarNev;
Tantargy = itemCo.TantargyNev;
OraTema = itemCo.OraTema;
TanarHazifeladat = itemCo.Szoveg;
OraSorszama = itemCo.OraSorszama.ToString();
HazifeladatId = itemCo.HazifeladatId;
IsOnlineOraText = itemCo.IsOnlineOraText;
FeladatTipusId = itemCo.FeladatTipusId;
IsTanitasiOra = itemCo.IsTanitasiOra;
IsToroltOra = itemCo.IsToroltOra;
}
public string ID { get; set; }
[Display(Name = nameof(OrarendResource.OraDatuma), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 00, nameof(OrarendResource.OraDatuma), typeof(OrarendResource))]
public DateTime? OraDatuma { get; set; }
[Display(Name = nameof(OrarendResource.FeladatRogztesenekDatuma), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 06, nameof(OrarendResource.FeladatRogztesenekDatuma), typeof(OrarendResource))]
public DateTime HaziFeladatRogzitesDatuma { get; set; }
[Display(Name = nameof(OrarendResource.TanarAltalRogzitettFeladatokHataridejenekDatuma), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 07, nameof(OrarendResource.TanarAltalRogzitettFeladatokHataridejenekDatuma), typeof(OrarendResource))]
public DateTime? HaziFeladatHataridoDatuma { get; set; }
[Display(Name = nameof(OrarendResource.TanarNeve), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 02, nameof(OrarendResource.TanarNeve), typeof(OrarendResource))]
public string Tanar { get; set; }
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 03, nameof(OrarendResource.Tantargy), typeof(OrarendResource))]
public string Tantargy { get; set; }
[Display(Name = nameof(OrarendResource.OraTemaja), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 04, nameof(OrarendResource.OraTemaja), typeof(OrarendResource))]
public string OraTema { get; set; }
[Display(Name = nameof(OrarendResource.TanarAltalRogzitettFeladat), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 05, nameof(OrarendResource.TanarAltalRogzitettFeladat), typeof(OrarendResource))]
public string TanarHazifeladat { get; set; }
[Display(Name = nameof(OrarendResource.HozzaszolasokSzama), ResourceType = typeof(OrarendResource))]
public int DiakHaziSzam { get; set; }
[Display(Name = nameof(OrarendResource.TanulokSzamaKesz), ResourceType = typeof(OrarendResource))]
public string TanulokSzamaKesz { get; set; }
[Display(Name = nameof(OrarendResource.OraNaponBeluliSorszama), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 01, nameof(OrarendResource.OraNaponBeluliSorszama), typeof(OrarendResource))]
public string OraSorszama { get; set; }
public string OsztalyCsoport { get; set; }
public int HazifeladatId { get; set; }
public int FeladatTipusId { get; set; }
public string FeladatTipusName => ((FeladatTipusEnum)FeladatTipusId).GetDisplayName(ClaimData.SelectedTanevID.Value);
[SimpleExportColumn(HazifeladatExportAttributeId, 08, nameof(OrarendResource.OnlineOra), typeof(OrarendResource))]
public string IsOnlineOraText { get; set; }
public bool IsTanitasiOra { get; set; }
public bool IsToroltOra { get; set; }
}
}

View file

@ -0,0 +1,103 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class FeladatokListajaSrcModel
{
[Display(Name = nameof(OsztalyCsoportResource.EllatottKoznevelesiFeladatTipus), ResourceType = typeof(OsztalyCsoportResource))]
public int? FeladatKategoriaId { get; set; }
[Display(Name = nameof(CommonResource.Feladatellatasihely), ResourceType = typeof(CommonResource))]
public int? FeladatEllatasiHelyId { get; set; }
[Display(Name = nameof(OrarendResource.TanarNeve), ResourceType = typeof(OrarendResource))]
public int? TanarIdSrc { get; set; }
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
public int? TantargyIdSrc { get; set; }
[Display(Name = nameof(OrarendResource.OraTemaja), ResourceType = typeof(OrarendResource))]
public string OraTemaSrc { get; set; }
[Display(Name = nameof(OrarendResource.OsztalyCsoport), ResourceType = typeof(OrarendResource))]
public int? OsztalyCsoportIdSrc { get; set; }
[Display(Name = nameof(OrarendResource.KapcsolodoCsoportok), ResourceType = typeof(OrarendResource))]
public bool KellKapcsolodoCsoportokSrc { get; set; }
[Display(Name = nameof(OrarendResource.OraDatuma), ResourceType = typeof(OrarendResource))]
public DateTime? OraDatumaTolSrc { get; set; }
public DateTime? OraDatumaIgSrc { get; set; }
[Display(Name = nameof(OrarendResource.TanarAltalRogzitettFeladat), ResourceType = typeof(OrarendResource))]
public string HazifeladatTemaSrc { get; set; }
[Display(Name = nameof(OrarendResource.FeladatRogzitesenekDatuma), ResourceType = typeof(OrarendResource))]
public DateTime? RogzitesTolSrc { get; set; }
public DateTime? RogzitesIgSrc { get; set; }
[Display(Name = nameof(OrarendResource.TanarAltalRgozitettFeladatokHataridejenekDatuma), ResourceType = typeof(OrarendResource))]
public DateTime? HataridoTolSrc { get; set; }
public DateTime? HataridoIgSrc { get; set; }
public string OsztalyCsoportComboUrl { get; set; }
public bool IsJustTanar { get; set; }
public bool IsKapcsolodoOsztalyCsoportokVisible { get; set; }
public HazifeladatokListajaTipusEnum HazifeladatokListajaTipus { get; set; }
[Display(Name = nameof(OrarendResource.OnlineOra), ResourceType = typeof(OrarendResource))]
public int? IsOnlineOra { get; set; }
[Display(Name = nameof(OrarendResource.FeladatTipusa), ResourceType = typeof(OrarendResource))]
public int? FeladatTipusId { get; set; }
[Display(Name = nameof(OrarendResource.KellToroltOrasFeladat), ResourceType = typeof(OrarendResource))]
public bool KellToroltOrasFeladat { get; set; }
public HazifeladatokListajaCO ToCo(IEnumerable<int> osztalyCsoportIds)
{
var co = new HazifeladatokListajaCO
{
FeladatKategoriaId = FeladatKategoriaId,
FeladatEllatasiHelyId = FeladatEllatasiHelyId,
TanarIdSrc = TanarIdSrc,
TantargyIdSrc = TantargyIdSrc,
OraTemaSrc = OraTemaSrc,
KellKapcsolodoCsoportokSrc = KellKapcsolodoCsoportokSrc,
OraDatumaTolSrc = OraDatumaTolSrc,
OraDatumaIgSrc = OraDatumaIgSrc,
HazifeladatTemaSrc = HazifeladatTemaSrc,
RogzitesTolSrc = RogzitesTolSrc,
RogzitesIgSrc = RogzitesIgSrc,
HataridoTolSrc = HataridoTolSrc,
HataridoIgSrc = HataridoIgSrc,
OsztalyCsoportIds = new List<int>(),
IsOnlineOra = IsOnlineOra,
FeladatTipusId = FeladatTipusId,
KellToroltOrasHazifeladat = KellToroltOrasFeladat,
};
if (osztalyCsoportIds != null && osztalyCsoportIds.Any())
{
co.OsztalyCsoportIds.AddRange(osztalyCsoportIds);
}
if (OsztalyCsoportIdSrc.HasValue)
{
co.OsztalyCsoportIds.Add(OsztalyCsoportIdSrc.Value);
}
return co;
}
}
}

View file

@ -0,0 +1,15 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class FelhelyOrarendTorleseModel : BaseOrarendTorleseModel
{
[Required(ErrorMessageResourceName = nameof(OrarendekTorleseResource.LegalabbEgyFeladatellatasiHelyKivalasztasaKotelezo), ErrorMessageResourceType = typeof(OrarendekTorleseResource))]
public string KivalasztottFelhelyekIds { get; set; } = null;
public List<SelectListItem> FelhelyList { get; set; } = new List<SelectListItem>();
}
}

View file

@ -0,0 +1,26 @@
using System;
using System.Linq;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.Enums.ManualEnums;
namespace Kreta.Web.Areas.Orarend.Models
{
public class FelhelyOrarendTorleseParameterModel : BaseOrarendTorleseModel
{
public string KivalasztottFelhelyekIds { get; set; }
public OrarendekTorleseCo ConvertToCo()
{
return new OrarendekTorleseCo
{
IntervallumKezdete = KezdeteDatum.Value,
IntervallumVege = VegeDatum.Value,
NezetTipus = (OrarendekTorleseNezetTipusEnum)Enum.Parse(typeof(OrarendekTorleseNezetTipusEnum), OraTipus),
FeladatellatasiHelyek = KivalasztottFelhelyekIds.Split(",".ToCharArray()).Select(x => new OrarendekTorleseListItemCo
{
Id = int.Parse(x)
})
};
}
}
}

View file

@ -0,0 +1,83 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Foolproof;
using Kreta.BusinessLogic.Classes;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class FogadooraModel
{
public FogadooraModel()
{
SelectedOsztalyCsoportIdList = new List<int>();
ModifiedOsztalyCsoportList = new Dictionary<int, bool>();
FogadooraDatumList = new List<DateTime>();
}
public int? Id { get; set; }
public List<int> SelectedOsztalyCsoportIdList { get; set; }
public Dictionary<int, bool> ModifiedOsztalyCsoportList { get; set; }
public List<DateTime> FogadooraDatumList { get; set; }
public DateTime FogadoOraDatuma { get; set; } //Fogadó óra napját ebből szedjük ki (hidden field lesz)
public int? NemKotottMunkaidoId { get; set; }
[Display(Name = nameof(FogadooraResource.FogadooraKezdete), ResourceType = typeof(FogadooraResource))]
[Required(ErrorMessageResourceName = nameof(FogadooraResource.FogadooraKezdeteMegadasaKotelezo), ErrorMessageResourceType = typeof(FogadooraResource))]
public DateTime FogadoOraKezdete { get; set; } //Óra-percet ebből szedjük ki
[Display(Name = nameof(FogadooraResource.FogadooraVege), ResourceType = typeof(FogadooraResource))]
[Required(ErrorMessageResourceName = nameof(FogadooraResource.FogadooraVegeMegadasaKotelezo), ErrorMessageResourceType = typeof(FogadooraResource))]
public DateTime FogadoOraVege { get; set; } //Óra-percet ebből szedjük ki
[Required(ErrorMessageResourceName = nameof(FogadooraResource.NincsBeallitvaTeremAFogadoorahoz), ErrorMessageResourceType = typeof(FogadooraResource))]
[Display(Name = nameof(FogadooraResource.Terem), ResourceType = typeof(FogadooraResource))]
public int? TeremId { get; set; }
[Display(Name = nameof(FogadooraResource.Terem), ResourceType = typeof(FogadooraResource))]
public string TeremNev { get; set; }
[Display(Name = nameof(FogadooraResource.Rendszeresseg), ResourceType = typeof(FogadooraResource))]
public int Rendszeresseg { get; set; } //Enum
[Display(Name = nameof(FogadooraResource.Rendszeresseg), ResourceType = typeof(FogadooraResource))]
public string RendszeressegText { get; set; } //Enum
[Display(Name = nameof(FogadooraResource.NemKotottMunkaido), ResourceType = typeof(FogadooraResource))]
public bool IsNemKotottMunkaido { get; set; }
[Display(Name = nameof(FogadooraResource.JelentkezesekKezelese), ResourceType = typeof(FogadooraResource))]
public bool JelentkezesekKezelese { get; set; }
[Display(Name = nameof(FogadooraResource.EgysegnyiIdopontokPerc), ResourceType = typeof(FogadooraResource))]
public int EgysegnyiIdopontok { get; set; }
[Display(Name = nameof(FogadooraResource.FogadooraIdosavokraOsztasa), ResourceType = typeof(FogadooraResource))]
public bool? IsIdosavraOsztas { get; set; }
[Display(Name = nameof(FogadooraResource.ElsoAlkalomDatuma), ResourceType = typeof(FogadooraResource))]
public DateTime? RendszeresFogadooraElsoDatuma { get; set; }
[Display(Name = nameof(FogadooraResource.UtolsoAlkalomDatuma), ResourceType = typeof(FogadooraResource))]
public DateTime? RendszeresFogadooraUtolsoDatuma { get; set; }
public bool IsEgyAlkalomModosul { get; set; }
[Display(Name = nameof(FogadooraResource.JelenjenMegFaliujsagon), ResourceType = typeof(FogadooraResource))]
public bool IsFaliujsagonMegjelenjen { get; set; }
[RequiredIf(nameof(IsFaliujsagonMegjelenjen), true, ErrorMessageResourceName = nameof(FogadooraResource.FaliujsagErvenyessegKezdeteKotelezo), ErrorMessageResourceType = typeof(FogadooraResource))]
[DateRange(ErrorMessageResourceName = nameof(FogadooraResource.FaliujsagErvenyessegKezdeteNemErvenyes), ErrorMessageResourceType = typeof(FogadooraResource))]
[Display(Name = nameof(FogadooraResource.FaliujsagErvenyessegKezdete), ResourceType = typeof(FogadooraResource))]
public DateTime? FaliujsagErvenyessegKezdete { get; set; }
[RequiredIf(nameof(IsFaliujsagonMegjelenjen), true, ErrorMessageResourceName = nameof(FogadooraResource.FaliujsagErvenyessegVegeKotelezo), ErrorMessageResourceType = typeof(FogadooraResource))]
[DateRange(ErrorMessageResourceName = nameof(FogadooraResource.FaliujsagErvenyessegVegeNemErvenyes), ErrorMessageResourceType = typeof(FogadooraResource))]
[Display(Name = nameof(FogadooraResource.FaliujsagErvenyessegVege), ResourceType = typeof(FogadooraResource))]
public DateTime? FaliujsagErvenyessegVege { get; set; }
public int ModositasiIdoszakTipus { get; set; }
public string JSHelperNev { get; set; }
public bool IsCalendar { get; set; }
public bool IsRendszeressegModosithato { get; set; }
public bool VanGvJelentkezes { get; set; }
[Display(Name = nameof(FogadooraResource.KerjukValasszaKiAFogadooraIdopontjait), ResourceType = typeof(FogadooraResource))]
public DateTime? FogadooraEgyebGyakorisagDefaultDate { get; set; }
public DateTime TanevUtolsoNapja { get; set; }
[Display(Name = nameof(FogadooraResource.JelentkezesHatarideje), ResourceType = typeof(FogadooraResource))]
public int? JelentkezesHatarideje { get; set; } = 0;
public bool IsNemKellNemKotott { get; set; }
}
}

View file

@ -0,0 +1,104 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Classes;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class FoglalkozasModel
{
public int? ID { get; set; }
public bool UseFoglalkozas { get; set; }
public DateTime? KezdeteDatum { get; set; }
public DateTime? VegeDatum { get; set; }
[Display(Name = nameof(AdminisztracioResource.Napirend), ResourceType = typeof(AdminisztracioResource))]
public int? TanoranKivuliFoglalkozas { get; set; }
[Display(Name = nameof(OsztalyCsoportResource.OsztalyCsoport), ResourceType = typeof(OsztalyCsoportResource))]
public int? OsztalyCsoportId { get; set; }
[Display(Name = nameof(AdminisztracioResource.Tantargy), ResourceType = typeof(AdminisztracioResource))]
public int? TantargyId { get; set; }
[Display(Name = nameof(ExcelNyomtatvanyResource.Tanarok), ResourceType = typeof(ExcelNyomtatvanyResource))]
public string Tanarok { get; set; }
[Display(Name = nameof(OrarendResource.HelyettesitoTanar), ResourceType = typeof(OrarendResource))]
public int? HelyettesitettTanarID { get; set; }
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameFoglalkozasKezdete), ResourceType = typeof(ImportExportOrarendResource))]
public string KezdeteLabel { get; set; }
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameFoglalkozasVege), ResourceType = typeof(ImportExportOrarendResource))]
public string VegeLabel { get; set; }
[KretaRequired(StringResourcesId = 4186)]/*Foglalkozás kezdetének megadása kötelező*/
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameFoglalkozasKezdete), ResourceType = typeof(ImportExportOrarendResource))]
public DateTime? Kezdete { get; set; }
[KretaRequired(StringResourcesId = 4187)]/*Foglalkozás kezdetének megadása kötelező*/
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameFoglalkozasVege), ResourceType = typeof(ImportExportOrarendResource))]
public DateTime? Vege { get; set; }
[Display(Name = nameof(OrarendResource.Helyiseg), ResourceType = typeof(OrarendResource))]
public int? TeremID { get; set; }
[Display(Name = nameof(OrarendResource.Sorszamozando), ResourceType = typeof(OrarendResource))]
public bool Sorszamozando { get; set; }
[Display(Name = nameof(OrarendResource.ParhuzamosOra), ResourceType = typeof(OrarendResource))]
public bool ParhuzamosOra { get; set; }
[Display(Name = nameof(OrarendResource.Tulora), ResourceType = typeof(OrarendResource))]
public bool Tulora { get; set; }
[Display(Name = nameof(OrarendResource.TamopOra), ResourceType = typeof(OrarendResource))]
public bool TAMOPOra { get; set; }
[Display(Name = nameof(OrarendResource.KIPOra), ResourceType = typeof(OrarendResource))]
public bool KIPOra { get; set; }
[Display(Name = nameof(OrarendResource.VEKOP73317), ResourceType = typeof(OrarendResource))]
public bool VEKOP73317 { get; set; }
[Display(Name = nameof(OrarendResource.KAPOra), ResourceType = typeof(OrarendResource))]
public bool KAPOra { get; set; }
[Display(Name = nameof(OrarendResource.NemSzakrendszeruOra), ResourceType = typeof(OrarendResource))]
public bool NemSzakrendszeruOra { get; set; }
[Display(Name = nameof(OrarendResource.IktTanora), ResourceType = typeof(OrarendResource))]
public bool IKTTanora { get; set; }
[Display(Name = nameof(TantargyResource.NemzetisegiOra), ResourceType = typeof(TantargyResource))]
public bool NemzetisegiOra { get; set; }
[Display(Name = nameof(TantargyResource.MegbizasiSzerzodesselEllatottOra), ResourceType = typeof(TantargyResource))]
public bool IsFelnottoktatasiSzerzodes { get; set; }
[Display(Name = nameof(OrarendResource.MindennaposTestneveles), ResourceType = typeof(OrarendResource))]
public bool MindennaposTestneveles { get; set; }
[Display(Name = nameof(OrarendResource.IprTanora), ResourceType = typeof(OrarendResource))]
public bool IPRTanora { get; set; }
[Display(Name = nameof(OrarendResource.Differencialt), ResourceType = typeof(OrarendResource))]
public bool Differencialt { get; set; }
[Display(Name = nameof(OrarendResource.Kooperativ), ResourceType = typeof(OrarendResource))]
public bool Kooperativ { get; set; }
[Display(Name = nameof(OrarendResource.Meres), ResourceType = typeof(OrarendResource))]
public bool Meres { get; set; }
[Display(Name = nameof(OrarendResource.Drama), ResourceType = typeof(OrarendResource))]
public bool Drama { get; set; }
[Display(Name = nameof(OrarendResource.Tiop12), ResourceType = typeof(OrarendResource))]
public bool Tiop { get; set; }
[Display(Name = nameof(OrarendResource.Bontott), ResourceType = typeof(OrarendResource))]
public bool Bontott { get; set; }
}
}

View file

@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Logic.Naplozas.Elokeszites;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class HaziFeladatNaplozas
{
public int? Id { get; set; }
public string HaziFeladat { get; set; }
[Display(Name = nameof(OrarendResource.Hatarido), ResourceType = typeof(OrarendResource))]
public DateTime? Hatarido { get; set; }
public bool IsTanarVehetFelHazitNaplozasNelkul { get; set; }
public int? OrarendiOraId { get; set; }
public int? TanitasiOraId { get; set; }
public int? HelyettesitoId { get; set; }
public DateTime? NapDatuma { get; set; }
public bool IsHaziFeladatHelper { get; set; }
public bool IsElmaradt { get; set; }
public int UsedFilesSizeInKiloBytes { get; set; } = 0;
public int MaxAllowedFilesSizeInKiloBytes { get; set; }
public double UsedFilesSizeInKiloBytesTotal { get; set; } = 0D;
public int MaxAllowedFilesSizeInKiloBytesTotal { get; set; } = 2097152;
public IEnumerable<string> AllowedFileExtensions { get; set; } = new List<string>
{
".txt",
".pdf",
".doc",
".docx",
".xls",
".xlsx",
".ppt",
".pptx",
".bmp",
".jpg",
".jpeg",
".png",
".rar",
".zip"
};
public int? CsatolmanyId { get; set; }
public void Fill(NaplozasElokeszitesModel model)
{
Id = model.Hazifeladat.Id;
HaziFeladat = model.Hazifeladat.Szoveg;
Hatarido = model.Hazifeladat.Hatarido;
OrarendiOraId = model.OraAdat.OrarendiOraId;
IsHaziFeladatHelper = false;
IsElmaradt = model.OraAdat.IsElmaradt;
CsatolmanyId = model.Hazifeladat.CsatolmanyId;
}
}
}

View file

@ -0,0 +1,25 @@
using System;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Logic;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class HaziFeladatNaplozasRogzites
{
public int? Id { get; set; }
private string haziFeladat;
public string HaziFeladat
{
get { return haziFeladat; }
set { haziFeladat = RichTextLogic.RemoveSpecificHtmlTags(value, RichTextLogic.RemovableHtmlTags); }
}
[DateRange(ErrorMessageResourceName = nameof(ErrorResource.HataridoDatumaNemErvenyes), ErrorMessageResourceType = typeof(ErrorResource))]
public DateTime? Hatarido { get; set; }
public int? OrarendiOraId { get; set; }
public int? CsatolmanyId { get; set; }
}
}

View file

@ -0,0 +1,78 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class HazifeladatBevitelModel
{
public int? Id { get; set; }
public int? TanitasiOraId { get; set; }
public int? OrarendiOraId { get; set; }
public int? Oraszam { get; set; }
public bool IsTTF { get; set; }
public int UsedFilesSizeInKiloBytes { get; set; } = 0;
public int MaxAllowedFilesSizeInKiloBytes { get; set; } = 15360;
public double UsedFilesSizeInKiloBytesTotal { get; set; } = 0D;
public int MaxAllowedFilesSizeInKiloBytesTotal { get; set; } = 2097152;
public IEnumerable<string> AllowedFileExtensions { get; set; } = new List<string>
{
".txt",
".pdf",
".doc",
".docx",
".xls",
".xlsx",
".ppt",
".pptx",
".bmp",
".jpg",
".jpeg",
".png",
".rar",
".zip"
};
public int? CsatolmanyId { get; set; }
[Display(Name = nameof(OrarendResource.Tantargyfelosztas), ResourceType = typeof(OrarendResource))]
public int? TTFId { get; set; }
[Required(ErrorMessageResourceName = nameof(OrarendResource.HazifeladatSzovegKotelezo), ErrorMessageResourceType = typeof(OrarendResource))]
public string Szoveg { get; set; }
[Display(Name = nameof(OrarendResource.OsztalyCsoport), ResourceType = typeof(OrarendResource))]
public string OsztalycsoportNev { get; set; }
public int? OsztalycsoportId { get; set; }
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
public string TantarrgyNev { get; set; }
public int? TantargyId { get; set; }
public DateTime ErvenyessegKezdete { get; set; }
[Required(ErrorMessageResourceName = nameof(OrarendResource.HazifeladatHataridoKotelezo), ErrorMessageResourceType = typeof(OrarendResource))]
[Display(Name = nameof(OrarendResource.HazifeladatHatarido), ResourceType = typeof(OrarendResource))]
public DateTime? ErvenyessegVege { get; set; }
public int? FeladatTipusId { get; set; }
public bool ValidateModel()
{
if (Id.HasValue || TTFId.HasValue || (TantargyId.HasValue && OsztalycsoportId.HasValue))
{
return false;
}
return true;
}
}
}

View file

@ -0,0 +1,24 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.Orarend.Models
{
public class HazifeladatTanuloGridModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(TanuloResource.TanuloNeve), ResourceType = typeof(TanuloResource))]
public string Nev { get; set; }
[Display(Name = nameof(TanuloResource.TanuloOktatasiAzonosito), ResourceType = typeof(TanuloResource))]
public string OktatasiAzonosito { get; set; }
[Display(Name = nameof(OrarendResource.ElvegzettHaziFeladat), ResourceType = typeof(OrarendResource))]
public string ElvegzettHaziFeladat_BNAME { get; set; }
[Display(Name = nameof(OrarendResource.ElvegzettHaziFeladatDatum), ResourceType = typeof(OrarendResource))]
public DateTime ElvegzettHaziFeladatDatum { get; set; }
}
}

View file

@ -0,0 +1,99 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Core.CustomAttributes;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Orarend.Models
{
public class HazifeladatokListajaGridModel : IKretaIdentity
{
#region Fields
public const string HazifeladatExportAttributeId = nameof(HazifeladatExportAttributeId);
#endregion
public HazifeladatokListajaGridModel()
{
}
public HazifeladatokListajaGridModel(HaziFeladatItemCo itemCo)
{
ID = itemCo.Id.ToString();
OraDatuma = itemCo.OraDatuma;
HaziFeladatRogzitesDatuma = itemCo.RogzitesDatuma;
HaziFeladatHataridoDatuma = itemCo.HataridoDatuma;
Tanar = itemCo.TanarNev;
Tantargy = itemCo.TantargyNev;
OraTema = itemCo.OraTema;
TanarHazifeladat = itemCo.Szoveg;
OraSorszama = itemCo.OraSorszama.ToString();
HazifeladatId = itemCo.HazifeladatId;
IsOnlineOraText = itemCo.IsOnlineOraText;
FeladatTipusId = itemCo.FeladatTipusId;
IsTanitasiOra = itemCo.IsTanitasiOra;
IsToroltOra = itemCo.IsToroltOra;
}
public string ID { get; set; }
[Display(Name = nameof(OrarendResource.OraDatuma), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 00, nameof(OrarendResource.OraDatuma), typeof(OrarendResource))]
public DateTime? OraDatuma { get; set; }
[Display(Name = nameof(OrarendResource.HFRogzitesenekDatuma), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 06, nameof(OrarendResource.HFRogzitesenekDatuma), typeof(OrarendResource))]
public DateTime HaziFeladatRogzitesDatuma { get; set; }
[Display(Name = nameof(OrarendResource.HFTanarHazifeladatDatuma), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 07, nameof(OrarendResource.HFTanarHazifeladatDatuma), typeof(OrarendResource))]
public DateTime? HaziFeladatHataridoDatuma { get; set; }
[Display(Name = nameof(OrarendResource.TanarNeve), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 02, nameof(OrarendResource.TanarNeve), typeof(OrarendResource))]
public string Tanar { get; set; }
[Display(Name = nameof(OrarendResource.Tantargy), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 03, nameof(OrarendResource.Tantargy), typeof(OrarendResource))]
public string Tantargy { get; set; }
[Display(Name = nameof(OrarendResource.OraTemaja), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 04, nameof(OrarendResource.OraTemaja), typeof(OrarendResource))]
public string OraTema { get; set; }
[Display(Name = nameof(OrarendResource.TanarHazifeladat), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 05, nameof(OrarendResource.TanarHazifeladat), typeof(OrarendResource))]
public string TanarHazifeladat { get; set; }
[Display(Name = nameof(OrarendResource.HozzaszolasokSzama), ResourceType = typeof(OrarendResource))]
public int DiakHaziSzam { get; set; }
[Display(Name = nameof(OrarendResource.TanulokSzamaKesz), ResourceType = typeof(OrarendResource))]
public string TanulokSzamaKesz { get; set; }
[Display(Name = nameof(OrarendResource.OraNaponBeluliSorszama), ResourceType = typeof(OrarendResource))]
[SimpleExportColumn(HazifeladatExportAttributeId, 01, nameof(OrarendResource.OraNaponBeluliSorszama), typeof(OrarendResource))]
public string OraSorszama { get; set; }
public string OsztalyCsoport { get; set; }
public int HazifeladatId { get; set; }
[SimpleExportColumn(HazifeladatExportAttributeId, 08, nameof(OrarendResource.OnlineOra), typeof(OrarendResource))]
public string IsOnlineOraText { get; set; }
public int FeladatTipusId { get; set; }
public string FeladatTipusName => ((FeladatTipusEnum)FeladatTipusId).GetDisplayName(ClaimData.SelectedTanevID.Value);
public bool IsTanitasiOra { get; set; }
public bool IsToroltOra { get; set; }
}
}

Some files were not shown because too many files have changed in this diff Show more