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(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(RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString(); ViewBag.nemKotottMunkaidoEnd = systemSettingsHelper.GetSystemSettingValue(Kreta.Enums.RendszerBeallitasTipusEnum.Nem_kotott_munkaido_megjelenesenek_zaroidopontja); ViewBag.napirendStart = systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja).RoundDownToNearestTargetMinute(15).ToString(); ViewBag.napirendEnd = systemSettingsHelper.GetSystemSettingValue(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_zaroidopontja); model.IsOravegeBeallitasOrahosszAlapjan = systemSettingsHelper.GetSystemSettingValue(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 GetAdminOrarendTabs(bool nemKellNemKotott) { var list = new List { new TabStripItemModel { ItemId = "0", ItemName = AdminisztracioResource.Tanorak, Area = "Orarend", Controller = "AdminTanariOrarend", Action = "GetOrarendiOrak", RouteParameters = new Dictionary { { "index", "0" } } }, new TabStripItemModel { ItemId = "1", ItemName = AdminisztracioResource.Napirend, Area = "Orarend", Controller = "AdminTanariOrarend", Action = "GetTanoranKivuliFoglalkozasok", RouteParameters = new Dictionary { { "index", "1" } } } }; if (!nemKellNemKotott) { list.Add(new TabStripItemModel { ItemId = "2", ItemName = AdminisztracioResource.NemKotottMunkaido, Area = "Orarend", Controller = "AdminTanariOrarend", Action = "GetNemKotottMunkaido", RouteParameters = new Dictionary { { "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); } } }