init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,489 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web.Mvc;
|
||||
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;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Adminisztracio.ApiControllers;
|
||||
using Kreta.Web.Areas.Adminisztracio.Models;
|
||||
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.Adminisztracio.Controllers
|
||||
{
|
||||
[MvcRoleClaimsAuthorize(true)]
|
||||
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue)]
|
||||
[MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
||||
public class HelyettesitesekKezeleseController : Controller
|
||||
{
|
||||
public ActionResult Index()
|
||||
{
|
||||
var model = new HelyettesitesekKezeleseModel();
|
||||
|
||||
var helper = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
model.HetirendJson = helper.GetHetirendek();
|
||||
model.NaptariHetekHetirendJson = helper.GetNaptariHetekHetirendek();
|
||||
|
||||
var calendarMinMaxCo = helper.GetCalendarMinMax();
|
||||
model.CalendarMinTime = calendarMinMaxCo.CalendarMin;
|
||||
model.CalendarMaxTime = calendarMinMaxCo.CalendarMax;
|
||||
|
||||
model.CsengetesiRendMinTime = new TimeSpan();
|
||||
model.CsengetesiRendMaxTime = new TimeSpan(0, 25, 0);
|
||||
|
||||
model.TanarId = 0; //Ne jelenjen meg semmi sem a calendarban
|
||||
model.TabList = GetHelyettesitesekKezeleseTabs();
|
||||
|
||||
return View("Index", model);
|
||||
}
|
||||
|
||||
public List<TabStripItemModel> GetHelyettesitesekKezeleseTabs(CalendarModel calendarModel = null)
|
||||
{
|
||||
var list = new List<TabStripItemModel>
|
||||
{
|
||||
new TabStripItemModel
|
||||
{
|
||||
ItemId = "0",
|
||||
ItemName = StringResourcesUtil.GetString(4260) /*Tanórai helyettesítések*/,
|
||||
Area = "Adminisztracio",
|
||||
Controller = "HelyettesitesekKezelese",
|
||||
Action = "GetTanoraiHelyettesitesek",
|
||||
RouteParameters = new Dictionary<string, string>
|
||||
{
|
||||
{"index", "0"}
|
||||
}
|
||||
},
|
||||
new TabStripItemModel
|
||||
{
|
||||
ItemId = "1",
|
||||
ItemName = StringResourcesUtil.GetString(4261) /*Napirend helyettesítések*/,
|
||||
Area = "Adminisztracio",
|
||||
Controller = "HelyettesitesekKezelese",
|
||||
Action = "GetTanoranKivuliHelyettesitesek",
|
||||
RouteParameters = new Dictionary<string, string>
|
||||
{
|
||||
{"index", "1"}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public ActionResult GetTanoraiHelyettesitesek(int index = 0)
|
||||
{
|
||||
var model = new HelyettesitesekKezeleseOrarendModel
|
||||
{
|
||||
Index = index
|
||||
};
|
||||
return View("TanoraiHelyettesitesek_Tab", model);
|
||||
}
|
||||
|
||||
public ActionResult GetTanoranKivuliHelyettesitesek(int index = 1)
|
||||
{
|
||||
var model = new HelyettesitesekKezeleseOrarendModel
|
||||
{
|
||||
Index = index
|
||||
};
|
||||
return View("TanoranKivuliHelyettesitesek_Tab", model);
|
||||
}
|
||||
|
||||
public ActionResult OpenHelyettesitesPopUp(CalendarModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
var felhasznalokOnlyAlkalmazottSzerepkorIds = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetFelhasznaloIdsOnlyAlkalmazottSzerepkor();
|
||||
|
||||
PopUpModel popUpModel;
|
||||
if (model.OraType == CalendarOraTypeEnum.TanitasiOra || model.OraType == CalendarOraTypeEnum.TanoranKivuliNaplozottFoglalkozas)
|
||||
{
|
||||
var nemMegtartottHelyettesitesBevitelModel = new NemMegtartottHelyettesitesBevitelModel
|
||||
{
|
||||
HelyettesitesBevitelCalendarEventId = model.EventId,
|
||||
HelyettesitesBevitelOraKezdeteDate = model.Start,
|
||||
HelyettesitesBevitelOraVegeDate = model.End
|
||||
};
|
||||
|
||||
var helper = new TanoraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var tanoraCo = helper.GetTanorakAdatok(model.EventId);
|
||||
if (!tanoraCo.AdminAltalKiirt)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
popUpModel = new PopUpModel(nemMegtartottHelyettesitesBevitelModel, "ElmaradtOra_Info");
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelCancel", CommonResource.Megse, "HelyettesitesBevitelHelper.ElmaradtOraCancel");
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelNemMegtartottHelyettesites", CommonResource.Torles, "HelyettesitesBevitelHelper.NemMegtartottOraTorlese");
|
||||
ModelState.Clear();
|
||||
return PartialView(Constants.General.PopupView, popUpModel);
|
||||
}
|
||||
|
||||
//NOTE: Ahhoz, hogy az oldal gyorsan töltődjön be, egyszer szedjük le a szűrési feltételhez kapcsolatos co-kat és azokon végezzük el a szűréseket mind a 10 listához!
|
||||
var orarendiOra = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOrarendiOraById(model.EventId);
|
||||
var oraDatum = model.Start.Date;
|
||||
|
||||
var startDate = new DateTime(model.Start.Date.Year, model.Start.Date.Month, model.Start.Date.Day, orarendiOra.OraKezdete.Hour, orarendiOra.OraKezdete.Minute, orarendiOra.OraKezdete.Second);
|
||||
var endDate = new DateTime(model.Start.Date.Year, model.Start.Date.Month, model.Start.Date.Day, orarendiOra.OraVege.Hour, orarendiOra.OraVege.Minute, orarendiOra.OraVege.Second);
|
||||
|
||||
var nemkotottMunkaido = new NemKotottMunkaidoHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNemKotottMunkaIdoHelyettesiteshez(startDate, endDate);
|
||||
|
||||
|
||||
//NOTE: 00. - MINDEN SZŰRÉSRE ÉRVÉNYES
|
||||
// A helyettesítés napján jogviszonnyal rendelkező alkalmazottak
|
||||
// A helyettesítés napján nem tartósan távol levő alkalmazottak
|
||||
// A helyettesítés napján nem betöltetlen álláshelyű alkalmazottak
|
||||
// A tanár nem helyettesítheti a saját óráját
|
||||
var alkalmazottCoList = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottCoList()
|
||||
.Where(x => (!x.AlkalmazasKezdeteDate.HasValue || x.AlkalmazasKezdeteDate <= oraDatum) &&
|
||||
(!x.AlkalmazasMegszuneseDate.HasValue || oraDatum <= x.AlkalmazasMegszuneseDate) &&
|
||||
!x.IsTartosanTavolLevo &&
|
||||
!x.IsBetoltetlenAllashely &&
|
||||
x.Id != orarendiOra.TanarId).OrderBy(x => x.FelhasznaloNyomtatasiNev).ToList();
|
||||
var tanarCoList = alkalmazottCoList.Where(z => !felhasznalokOnlyAlkalmazottSzerepkorIds.Contains(z.Id)).ToList();
|
||||
|
||||
//NOTE: Előszedjük a vizsgálatokhoz, minden erre az időpontra(napirendnél nem vesszük figyelembe az óra sorszámát, mert nincs) felvett órarendi órát és tanítási órat a hozzájuk tartozó helyettesítésekkel a sp_GetOrarend tárolteljárást használva!
|
||||
// Ha órarendi óra, akkor meg kell vizsgálnunk, hogy...
|
||||
// ...nem egyezik-e meg a kiválasztott órával.
|
||||
// ...beleesik-e az érvényességi időbe a kiválasztott óra.
|
||||
// Ha tanítási óra, akkor meg kell vizsgálnunk, hogy...
|
||||
// ...meg lett-e tarva.
|
||||
var orarendiEsTanitasiOraList = new OrarendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOrarendiEsTanitasiOrakByDays(model.Start, model.End, OrarendTipusEnum.Minden)
|
||||
.Where(x => ((x.OraTipus == nameof(CalendarOraTypeEnum.OrarendiOra) &&
|
||||
x.Id != orarendiOra.ID &&
|
||||
x.OraErvenyessegKezdete <= oraDatum && (!x.OraErvenyessegVege.HasValue || oraDatum <= x.OraErvenyessegVege)) ||
|
||||
(x.OraTipus == nameof(CalendarOraTypeEnum.TanitasiOra) &&
|
||||
x.IsMegtartott)) &&
|
||||
x.OraKezdete.HasValue && x.OraVege.HasValue &&
|
||||
((x.OraKezdete.Value <= model.Start && x.OraVege.Value > model.Start)
|
||||
|| (x.OraKezdete.Value > model.Start && x.OraKezdete.Value < model.End)
|
||||
|| (x.OraVege.Value >= model.End && x.OraKezdete.Value < model.End))).ToList();
|
||||
|
||||
//NOTE: Előszedjük a vizsgálatokhoz, a tantárgyfelosztásokat!
|
||||
var tantargyfelosztasCoList = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTantargyfelosztasCoList();
|
||||
|
||||
//NOTE: Előszedjük a vizsgálatokhoz, az osztályokat és csoportokat!
|
||||
var osztalyCoList = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCoList();
|
||||
var csoportCoList = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportCoList();
|
||||
|
||||
var osztalyCsoportId = orarendiOra.OsztalyCsoportId.Value;
|
||||
var isOsztaly = osztalyCoList.Any(x => x.Id == osztalyCsoportId);
|
||||
var osztalyIdList = new List<int>();
|
||||
List<int> csoportIdList;
|
||||
if (isOsztaly)
|
||||
{
|
||||
//NOTE: Ha osztály előszedjük az osztály id-t és a hozzá tartozó bontott csoportok id-ját!
|
||||
osztalyIdList = osztalyCoList.Where(x => x.Id == osztalyCsoportId).Select(x => x.Id).ToList();
|
||||
csoportIdList = csoportCoList.Where(x => x.OsztalyBontasId == osztalyCsoportId || x.Id == osztalyCsoportId).Select(x => x.Id).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTE: Ha csoport...
|
||||
var osztalyBontasId = csoportCoList.Single(x => x.Id == osztalyCsoportId).OsztalyBontasId;
|
||||
if (osztalyBontasId.IsEntityId())
|
||||
{
|
||||
//NOTE: ...és van osztálybontása, akkor előszedjük a hozzá tartozó osztály id-t és az ahhoz tartozó bontott csoportok id-ját!
|
||||
osztalyIdList = osztalyCoList.Where(x => x.Id == osztalyBontasId).Select(x => x.Id).ToList();
|
||||
csoportIdList = csoportCoList.Where(x => x.OsztalyBontasId.IsEntityId() && osztalyIdList.Contains(x.OsztalyBontasId.Value)).Select(x => x.Id).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTE: ...és nincs osztálybontása, akkor csak simán előszedjük a csoport id-t!
|
||||
csoportIdList = csoportCoList.Where(x => x.Id == osztalyCsoportId).Select(x => x.Id).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Össze union-ozzuk, az osztályok és csoportok id-ját, a szűrésekhez!
|
||||
var osztalyCsoportIdList = osztalyIdList.Union(csoportIdList).ToList();
|
||||
|
||||
var helyettesitesBevitelModel = new HelyettesitesBevitelModel
|
||||
{
|
||||
HelyettesitesBevitelCalendarEventId = model.EventId,
|
||||
HelyettesitesBevitelHelyettesitesId = model.HelyettesitesId,
|
||||
HelyettesitesBevitelCalendarOraType = model.OraType,
|
||||
HelyettesitesBevitelOraKezdeteDate = model.Start,
|
||||
HelyettesitesBevitelOraVegeDate = model.End,
|
||||
HelyettesitesBevitelHelyettesitesGyakorisagTipus = (int)HelyettesitesGyakorisagTipusEnum.Egyedi,
|
||||
HelyettesitesBevitelTartosHelyettesitesVegeDate = DateTime.Today,
|
||||
HelyettesitesBevitelHelyettesitesTipusId = (int)HelyettesitesTipusEnum.szakszeru_helyettesites,
|
||||
|
||||
HelyettesitesOsztalybanSzakosTanarList = GetHelyettesitesOsztalybanSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
HelyettesitesNemOsztalybanSzakosTanarList = GetHelyettesitesNemOsztalybanSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
HelyettesitesOsztalybanNemSzakosTanarList = GetHelyettesitesOsztalybanNemSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
HelyettesitesNemOsztalybanNemSzakosTanarList = GetHelyettesitesNemOsztalybanNemSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
OsszevonasOsztalybanSzakosTanarList = GetOsszevonasOsztalybanSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
OsszevonasNemOsztalybanSzakosTanarList = GetOsszevonasNemOsztalybanSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
OsszevonasOsztalybanNemSzakosTanarList = GetOsszevonasOsztalybanNemSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
OsszevonasNemOsztalybanNemSzakosTanarList = GetOsszevonasNemOsztalybanNemSzakosTanarList(tanarCoList, orarendiEsTanitasiOraList, tantargyfelosztasCoList, osztalyCsoportIdList, orarendiOra.TantargyId.Value, nemkotottMunkaido),
|
||||
FelugyeletTanarList = GetFelugyeletTanarList(alkalmazottCoList),
|
||||
OsszesTanarList = GetOsszesTanarList(alkalmazottCoList),
|
||||
IsTulora = orarendiOra.Tulora,
|
||||
HelyettesitesTitle = $"{OrarendResource.HelyettesitesFelviteleEsModositasa} - {orarendiOra.TanarAlkalmazottNev ?? orarendiOra.TanarNev} - {orarendiOra.TantargyNev} - {orarendiOra.OsztalyCsoportNev}"
|
||||
};
|
||||
|
||||
if (model.HelyettesitesId.IsEntityId())
|
||||
{
|
||||
var api = new HelyettesitesekKezeleseApiController();
|
||||
var data = api.GetHelyettesitesBevitelData(model.HelyettesitesId.Value);
|
||||
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelHelyettesitesId = data.HelyettesitesBevitelHelyettesitesId;
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelGroupId = data.HelyettesitesBevitelGroupId;
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelTanarId = data.HelyettesitesBevitelTanarId;
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelTanarNev = data.HelyettesitesBevitelTanarNev;
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelHelyettesitesTipusId = data.HelyettesitesBevitelHelyettesitesTipusId;
|
||||
helyettesitesBevitelModel.HelyettesitesBevitelHelyettesitesOka = data.HelyettesitesBevitelHelyettesitesOka;
|
||||
}
|
||||
|
||||
popUpModel = new PopUpModel(helyettesitesBevitelModel, "Helyettesites_Bevitel");
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelCancel", CommonResource.Megse, "HelyettesitesBevitelHelper.HelyettesitesCancel");
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelSave", CommonResource.Mentes, "HelyettesitesBevitelHelper.HelyettesitesSave");
|
||||
popUpModel = model.HelyettesitesId.IsEntityId() ? popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelDelete", CommonResource.Torles, "HelyettesitesBevitelHelper.HelyettesitesDelete") : popUpModel.AddBtn(popUpModel, "HelyettesitesBevitelNemMegtartottHelyettesites", OrarendResource.ElmaradtOra, "HelyettesitesBevitelHelper.SaveNemMegtartottHelyettesites");
|
||||
popUpModel = popUpModel.AddBtn(popUpModel, "OpenOracserePopUp", CommonResource.Oracsere, "HelyettesitesBevitelHelper.OpenOracserePopUp");
|
||||
|
||||
ModelState.Clear();
|
||||
return PartialView(Constants.General.PopupView, popUpModel);
|
||||
}
|
||||
catch (BlException ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: 01. - HELYETTESÍTÉS - Osztályban tanító, szakos helyettesítő
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában van lyukas órája, azaz nincs órarendi órája, tanítási órája és helyettesítése a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) van rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával van rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetHelyettesitesOsztalybanSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => orarendiEsTanitasiOraList.All(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value != tanar.Id : orarendiEsTanitasiOra.TanarId != tanar.Id)
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && osztalyCsoportIdList.Any(x => x == tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && tantargyfelosztas.TantargyId == tantargyId)
|
||||
&& !nemkotottMunkaido.Select(x => x.TanarId).Contains(tanar.Id));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 02. - HELYETTESÍTÉS - Osztályban nem tanító, szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában van lyukas órája, azaz nincs órarendi órája, tanítási órája és helyettesítése a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) nincs rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával van rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetHelyettesitesNemOsztalybanSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => orarendiEsTanitasiOraList.All(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value != tanar.Id : orarendiEsTanitasiOra.TanarId != tanar.Id)
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => osztalyCsoportIdList.All(x => x != tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && tantargyfelosztas.TantargyId == tantargyId)
|
||||
&& !nemkotottMunkaido.Select(x => x.TanarId).Contains(tanar.Id));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 03. - HELYETTESÍTÉS - Osztályban tanító, nem szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában van lyukas órája, azaz nincs órarendi órája, tanítási órája és helyettesítése a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) van rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával nincs rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetHelyettesitesOsztalybanNemSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => orarendiEsTanitasiOraList.All(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value != tanar.Id : orarendiEsTanitasiOra.TanarId != tanar.Id)
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && osztalyCsoportIdList.Any(x => x == tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => tantargyfelosztas.TantargyId != tantargyId)
|
||||
&& !nemkotottMunkaido.Select(x => x.TanarId).Contains(tanar.Id));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 04. - HELYETTESÍTÉS - Osztályban nem tanító, nem szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában van lyukas órája, azaz nincs órarendi órája, tanítási órája és helyettesítése a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) nincs rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával nincs rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetHelyettesitesNemOsztalybanNemSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => orarendiEsTanitasiOraList.All(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value != tanar.Id : orarendiEsTanitasiOra.TanarId != tanar.Id)
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => osztalyCsoportIdList.All(x => x != tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => tantargyfelosztas.TantargyId != tantargyId)
|
||||
&& !nemkotottMunkaido.Select(x => x.TanarId).Contains(tanar.Id)
|
||||
&& tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 05. - ÖSSZEVONÁS - Osztályban tanító, szakos helyettesítő
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában nincs lyukas órája, azaz vagy órarendi órája vagy tanítási órája vagy helyettesítése van a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) van rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával van rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetOsszevonasOsztalybanSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => (orarendiEsTanitasiOraList.Any(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value == tanar.Id : orarendiEsTanitasiOra.TanarId == tanar.Id) || nemkotottMunkaido.Any(x => x.TanarId == tanar.Id && !x.Megtartott))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && osztalyCsoportIdList.Any(x => x == tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && tantargyfelosztas.TantargyId == tantargyId));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 06. - ÖSSZEVONÁS - Osztályban nem tanító, szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában nincs lyukas órája, azaz vagy órarendi órája vagy tanítási órája vagy helyettesítése van a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) nincs rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával van rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetOsszevonasNemOsztalybanSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => (orarendiEsTanitasiOraList.Any(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value == tanar.Id : orarendiEsTanitasiOra.TanarId == tanar.Id) || nemkotottMunkaido.Any(x => x.TanarId == tanar.Id && !x.Megtartott))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => osztalyCsoportIdList.All(x => x != tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && tantargyfelosztas.TantargyId == tantargyId));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 07. - ÖSSZEVONÁS - Osztályban tanító, nem szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában nincs lyukas órája, azaz vagy órarendi órája vagy tanítási órája vagy helyettesítése van a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) van rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával nincs rögzített tantárgyfelosztás eleme
|
||||
private List<SelectListItem> GetOsszevonasOsztalybanNemSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => (orarendiEsTanitasiOraList.Any(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value == tanar.Id : orarendiEsTanitasiOra.TanarId == tanar.Id) || nemkotottMunkaido.Any(x => x.TanarId == tanar.Id && !x.Megtartott))
|
||||
&& tantargyfelosztasCoList.Any(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id && osztalyCsoportIdList.Any(x => x == tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => tantargyfelosztas.TantargyId != tantargyId));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 08. - ÖSSZEVONÁS - Osztályban nem tanító, nem szakos
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// Adott órában nincs lyukas órája, azaz vagy órarendi órája vagy tanítási órája vagy helyettesítése van a tanárnak
|
||||
// A helyettesítendő óra osztályához (vagy csoportjához) nincs rögzített tantárgyfelosztás eleme (az osztályoknál az osztálybontott csoportokat is vegyük figyelembe)
|
||||
// A helyettesítendő óra tantárgyával nincs rögzített tantárgyfelosztás eleme
|
||||
|
||||
private List<SelectListItem> GetOsszevonasNemOsztalybanNemSzakosTanarList(List<AlkalmazottItemCo> tanarCoList, List<OrarendiOraTanitasiOraCo> orarendiEsTanitasiOraList, List<TantargyfelosztasItemCo> tantargyfelosztasCoList, List<int> osztalyCsoportIdList, int tantargyId, List<NevOktLeNemKotottMunkaidoItemHelyettesitesCO> nemkotottMunkaido)
|
||||
{
|
||||
var tanarCo = tanarCoList.Where(tanar => (orarendiEsTanitasiOraList.Any(orarendiEsTanitasiOra => orarendiEsTanitasiOra.HelyettesitoTanarId.IsEntityId() ? orarendiEsTanitasiOra.HelyettesitoTanarId.Value == tanar.Id : orarendiEsTanitasiOra.TanarId == tanar.Id) || nemkotottMunkaido.Any(x => x.TanarId == tanar.Id && !x.Megtartott))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => osztalyCsoportIdList.All(x => x != tantargyfelosztas.OsztalyCsoportId))
|
||||
&& tantargyfelosztasCoList.Where(tantargyfelosztas => tantargyfelosztas.TanarId == tanar.Id).All(tantargyfelosztas => tantargyfelosztas.TantargyId != tantargyId));
|
||||
|
||||
if (!ClaimData.IsNszfhIntezmeny)
|
||||
{
|
||||
tanarCo = tanarCo.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na);
|
||||
}
|
||||
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCo);
|
||||
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 09. - FELÜGYELET - Egyéb alkalmazott (nem pedagógus)
|
||||
// Nincs beállítva pedagógus fokozata (ahol ’Na’ a beállított érték)
|
||||
// NINCS SZŰRÉS LYUKAS ÓRÁKRA
|
||||
// NINCS SZŰRÉS OSZTÁLYCSOPORTHOZ TARTOZÓ TTF SZŰRÉSRE
|
||||
// NINCS SZŰRÉS TANTÁRGYHOZ TARTOZÓ TTF SZŰRÉSRE
|
||||
private List<SelectListItem> GetFelugyeletTanarList(List<AlkalmazottItemCo> tanarCoList)
|
||||
{
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCoList
|
||||
.Where(tanar => !tanar.BesorolasiFokozatTipusId.IsEntityId() || tanar.BesorolasiFokozatTipusId.Value == (int)BesorolasiFokozatTipusEnum.na));
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: 10. - ÖSSZES PEDAGÓGUS
|
||||
// Van beállítva pedagógus fokozata (nem ’Na’)
|
||||
// NINCS SZŰRÉS LYUKAS ÓRÁKRA
|
||||
// NINCS SZŰRÉS OSZTÁLYCSOPORTHOZ TARTOZÓ TTF SZŰRÉSRE
|
||||
// NINCS SZŰRÉS TANTÁRGYHOZ TARTOZÓ TTF SZŰRÉSRE
|
||||
private List<SelectListItem> GetOsszesTanarList(List<AlkalmazottItemCo> tanarCoList)
|
||||
{
|
||||
var tanarDictionay = CreateAlkalmazottDictionary(tanarCoList
|
||||
.Where(tanar => tanar.BesorolasiFokozatTipusId.IsEntityId() && tanar.BesorolasiFokozatTipusId.Value != (int)BesorolasiFokozatTipusEnum.na));
|
||||
var result = tanarDictionay.ToSelectListItemList();
|
||||
return result;
|
||||
}
|
||||
|
||||
private IDictionary<string, string> CreateAlkalmazottDictionary(IEnumerable<AlkalmazottItemCo> tanarCoList)
|
||||
{
|
||||
return tanarCoList.ToDictionary(x => x.Id.ToString(), x => $"{x.FelhasznaloNyomtatasiNev}{(string.IsNullOrWhiteSpace(x.FelhasznaloOktatasiAzonosito) ? Core.Constants.General.HianyzoOktatasiAzonositoJeloles : $" ({x.FelhasznaloOktatasiAzonosito})")}");
|
||||
}
|
||||
|
||||
public ActionResult OpenOracserePopUp(int helyettesitesreKivalasztottTanarId)
|
||||
{
|
||||
var oracsereModel = new OracsereModel();
|
||||
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
oracsereModel.HelyettesitesreKivalasztottTanarNeve = helper.GetNyomtatasiNev(helyettesitesreKivalasztottTanarId);
|
||||
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
var tanev = tanevHelper.GetTanevInfo();
|
||||
oracsereModel.TanevElsoNapja = tanev.KezdoNap;
|
||||
oracsereModel.TanevUtolsoNapja = tanev.UtolsoNap;
|
||||
|
||||
var popUpModel = new PopUpModel(oracsereModel, "Oracsere_PopUp");
|
||||
popUpModel.AddCancelBtn(popUpModel, "HelyettesitesBevitelHelper.OracsereCancel");
|
||||
popUpModel.AddBtn(popUpModel, "OracsereSaveButton", CommonResource.Mentes, "HelyettesitesBevitelHelper.SaveOracsere");
|
||||
|
||||
return PartialView(Constants.General.PopupView, popUpModel);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue