205 lines
9.6 KiB
C#
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);
|
|
}
|
|
|
|
}
|
|
}
|