kreta/KretaWeb/Areas/Orarend/Controllers/AdminTanariOrarendController.cs
2024-03-13 00:33:46 +01:00

205 lines
9.6 KiB
C#

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