245 lines
10 KiB
C#
245 lines
10 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.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Core;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework.Util;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.Intezmeny.Models;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Models.EditorTemplates;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.Intezmeny.Controllers
|
|
{
|
|
[MvcRoleClaimsAuthorize(true)]
|
|
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
|
[MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public class TanevRendjeController : Controller
|
|
{
|
|
// GET: Intezmeny/TanevRendje
|
|
public ActionResult Index()
|
|
{
|
|
string defaultCsengetesirend;
|
|
var csengetesirendList = GetCsengetesiRendList();
|
|
if (csengetesirendList.Exists(x => x.Selected))
|
|
{
|
|
defaultCsengetesirend = csengetesirendList.Where(x => x.Selected).FirstOrDefault().Value;
|
|
}
|
|
else if (csengetesirendList.Count == 1)
|
|
{
|
|
defaultCsengetesirend = csengetesirendList.FirstOrDefault().Value;
|
|
}
|
|
else
|
|
{
|
|
defaultCsengetesirend = string.Empty;
|
|
}
|
|
|
|
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanevCO = tanevHelper.GetTanevInfo();
|
|
|
|
var model = new TanevRendjeIndexModel()
|
|
{
|
|
HetirendList = GetSortedHetirendIdList(),
|
|
DefaultHetirendValue = ((int)HetiRendTipusEnum.MindegyikHet).ToString(),
|
|
DefaultCsengetesiRendValue = defaultCsengetesirend,
|
|
TanevKezdoNap = tanevCO.KezdoNap,
|
|
TanevUtolsoNap = tanevCO.UtolsoNap,
|
|
};
|
|
return View(model);
|
|
}
|
|
|
|
#region PopUp actions
|
|
|
|
public ActionResult OpenNewTanevRendjePopUp(DateTime? tanevRendjeDatum)
|
|
{
|
|
var tanevRendjeModel = new TanevRendjeModel
|
|
{
|
|
OsszesCsop = true,
|
|
NapTipusaList = GetNapTipusaList(true),
|
|
CsengetesiRendList = GetCsengetesiRendList(),
|
|
IsElteroNapModosithato = true
|
|
};
|
|
|
|
if (tanevRendjeDatum.HasValue)
|
|
{
|
|
tanevRendjeModel.Datum = tanevRendjeDatum.Value.Date;
|
|
tanevRendjeModel.ElteroOrarendSzerintiTanitasNapDatum = tanevRendjeDatum.Value.Date;
|
|
}
|
|
|
|
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanevCO = tanevHelper.GetTanevInfo();
|
|
tanevRendjeModel.TanevKezdoNap = tanevCO.KezdoNap;
|
|
tanevRendjeModel.TanevUtolsoNap = tanevCO.UtolsoNap;
|
|
|
|
if (tanevRendjeDatum.HasValue)
|
|
{
|
|
if ((tanevRendjeDatum.Value.Date < tanevCO.KezdoNap) || (tanevRendjeDatum.Value.Date > tanevCO.UtolsoNap))
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.ADatumCsakAKivalasztottTanevbeEsoIdoszakLehet);
|
|
}
|
|
|
|
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
tanevRendjeModel.CsengetesiRend = tanevrendHelper.GetTanevrendDefaultCsengetesiRend(tanevCO.Id);
|
|
|
|
var model = new PopUpModel(tanevRendjeModel, "New_PopUp");
|
|
|
|
model.AddCancelBtn(model, "TanevRendjeHelper.newTanevRendjeCancel");
|
|
model.AddOkBtn(model, "TanevRendjeHelper.newTanevRendjeSave");
|
|
|
|
return PartialView(Constants.General.PopupView, model);
|
|
}
|
|
|
|
public ActionResult OpenModifyTanevRendjePopUp(int tanevRendjeId)
|
|
{
|
|
TanevrendCO co;
|
|
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
co = helper.GetTanevrendById(tanevRendjeId);
|
|
|
|
var nemodosithato = co.NapTip == (int)NapTipusEnum.elso_tanitasi_nap || co.NapTip == (int)NapTipusEnum.elso_felev_vege || co.NapTip == (int)NapTipusEnum.utolso_tanitasi_nap || co.NapTip == (int)NapTipusEnum.utolso_tanitasi_nap_a_vegzos_evfolyamokon;
|
|
|
|
var tanevRendjeModel = new TanevRendjeModel
|
|
{
|
|
TanevRendjeId = co.ID,
|
|
Datum = co.Datum,
|
|
NapTipusa = co.NapTip,
|
|
Nap = co.Nap,
|
|
Hetirend = co.Hetirend,
|
|
OsszesCsop = co.OsszesCsop,
|
|
CsengetesiRend = co.CsengetesiRend,
|
|
Megjegyzes = co.Megjegyzes,
|
|
UresOrarend = co.UresOrarend,
|
|
ElteroOrarendSzerintiTanitasNapDatum = co.ElteroOrarendSzerintiTanitasNapDatum.HasValue ? co.ElteroOrarendSzerintiTanitasNapDatum : co.Datum,
|
|
IsElteroNapModosithato = co.IsElteroNapModosithato,
|
|
|
|
NapTipusaList = GetNapTipusaList(!nemodosithato, co.NapTip),
|
|
CsengetesiRendList = GetCsengetesiRendList()
|
|
};
|
|
|
|
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanevCO = tanevHelper.GetTanevInfo();
|
|
tanevRendjeModel.TanevKezdoNap = tanevCO.KezdoNap;
|
|
tanevRendjeModel.TanevUtolsoNap = tanevCO.UtolsoNap;
|
|
|
|
var model = new PopUpModel(tanevRendjeModel, "New_PopUp");
|
|
|
|
model.AddCancelBtn(model, "TanevRendjeHelper.modifyTanevRendjeCancel");
|
|
model.AddOkBtn(model, "TanevRendjeHelper.modifyTanevRendjeSave");
|
|
|
|
return PartialView(Constants.General.PopupView, model);
|
|
}
|
|
|
|
public ActionResult OpenTanevRendjeInfoPopUp(int tanevRendjeId)
|
|
{
|
|
TanevRendjeInfoModel tanevRendjeInfoModel;
|
|
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
TanevrendCO tanevrendCO = helper.GetTanevrendById(tanevRendjeId);
|
|
tanevRendjeInfoModel = new TanevRendjeInfoModel
|
|
{
|
|
TanevNeve = tanevrendCO.TanevNeve,
|
|
Datum = tanevrendCO.Datum.ToShortDateString(),
|
|
NapTipusa = tanevrendCO.NapTip.GetDisplayName<NapTipusEnum>(ClaimData.SelectedTanevID.Value),
|
|
Nap = (tanevrendCO.Nap.IsEntityId()) ? tanevrendCO.Nap.GetDisplayName<HetNapjaTipusEnum>(ClaimData.SelectedTanevID.Value) : string.Empty,
|
|
Hetirend = tanevrendCO.Hetirend.GetDisplayName<HetiRendTipusEnum>(tanevrendCO.Tanev),
|
|
Csoportok = tanevrendCO.Csoportok,
|
|
CsengetesiRend = helper.GetTanevrendValueString(tanevrendCO.Tanev, tanevrendCO.CsengetesiRend),
|
|
Megjegyzes = tanevrendCO.Megjegyzes,
|
|
UresOrarend = tanevrendCO.UresOrarend,
|
|
ElteroOrarendSzerintiTanitasNapDatum = tanevrendCO.ElteroOrarendSzerintiTanitasNapDatum.ToShortDateString()
|
|
};
|
|
|
|
var model = new PopUpModel(tanevRendjeInfoModel, "Info_PopUp");
|
|
|
|
model.AddCancelBtn(model, "TanevRendjeHelper.tanevRendjeInfoCancel");
|
|
|
|
return PartialView(Constants.General.PopupView, model);
|
|
}
|
|
|
|
public ActionResult OpenSetHetirendPopUp()
|
|
{
|
|
var model = new PopUpModel(null, "SetHetirend_PopUp");
|
|
|
|
model.AddCancelBtn(model, "TanevRendjeHelper.setHetirendCancel");
|
|
model.AddOkBtn(model, "TanevRendjeHelper.validationHetirendHelyettesites");
|
|
|
|
return PartialView(Constants.General.PopupView, model);
|
|
}
|
|
|
|
public ActionResult OpenDeleteTanevRendjePopUp(int tanevRendjeId)
|
|
{
|
|
var model = new PopUpModel(tanevRendjeId, "DeleteConfirm_PopUp");
|
|
|
|
model.AddCancelBtn(model, "TanevRendjeHelper.deleteTanevRendjeCancel");
|
|
model.AddDeleteBtn(model, "TanevRendjeHelper.deleteTanevRendje");
|
|
|
|
return PartialView(Constants.General.PopupView, model);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region DropDownList data
|
|
|
|
public static List<SelectListItem> GetTanevList()
|
|
{
|
|
IDictionary<string, string> dictionary;
|
|
var helper = new TanevHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
dictionary = helper.GetTanevekForDDL(string.Empty);
|
|
|
|
return dictionary.ToSelectListItemList();
|
|
}
|
|
|
|
public static List<SelectListItem> GetNapTipusaList(bool isNewTanevRendje, int? currentNaptipus = null)
|
|
{
|
|
IDictionary<string, string> dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.NapTipus, ClaimData.SelectedTanevID.Value, true);
|
|
|
|
// Új felvételekor bizonyos kiemelt típusok közül nem lehet felvenni egynél többet (pl: Első tanítási nap, Utolsó tanítási nap, stb...), ezért ezeket kiszedi a DropDownListből, ha már van felvéve egy adott kiemelt típusú esemény.
|
|
if (isNewTanevRendje)
|
|
{
|
|
List<int> marFelvettKiemeltEsemenyek;
|
|
TanevrendHelper helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
marFelvettKiemeltEsemenyek = helper.GetMarFelvettKiemeltTanevEsemenyek();
|
|
|
|
foreach (int id in marFelvettKiemeltEsemenyek)
|
|
{
|
|
if (currentNaptipus == null || currentNaptipus != id)
|
|
{
|
|
dictionary.Remove(id.ToString());
|
|
}
|
|
}
|
|
}
|
|
|
|
dictionary.Remove(((int)NapTipusEnum.OsszefuggoSzakmaiGyakorlatiNap).ToString());
|
|
|
|
return dictionary.ToSelectListItemList();
|
|
}
|
|
|
|
public static List<SelectListItem> GetCsengetesiRendList()
|
|
{
|
|
IDictionary<string, string> dictionary;
|
|
var helper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
dictionary = helper.GetCsengetesiRendForDDL(string.Empty);
|
|
|
|
return dictionary.ToSelectListItemList();
|
|
}
|
|
|
|
#endregion
|
|
|
|
public static List<int> GetSortedHetirendIdList() => new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSortedHetirendIdList();
|
|
|
|
public static List<SelectListItem> GetNapList()
|
|
{
|
|
IDictionary<string, string> dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.HetNapjaTipus, ClaimData.SelectedTanevID.Value, true);
|
|
|
|
return dictionary.ToSelectListItemList();
|
|
}
|
|
}
|
|
}
|