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