248 lines
14 KiB
C#
248 lines
14 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|