using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web.Mvc; using Kreta.BusinessLogic.Classes.ExcelHelpers; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.BusinessLogic.Security; using Kreta.Core; using Kreta.Enums; using Kreta.Framework.Util; using Kreta.Resources; using Kreta.Web.Areas.Feljegyzes.Models; using Kreta.Web.Areas.Nyomtatvanyok.Logic; using Kreta.Web.Helpers; using Kreta.Web.Models.EditorTemplates; using Kreta.Web.Security; namespace Kreta.Web.Areas.Feljegyzes.Controllers { [MvcRoleClaimsAuthorize(true)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)] [MvcRolePackageAuthorize( KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue )] public class KozossegiSzolgalatokController : Controller { #region Properties public static string StartPopupFormName => "KozossegiSzolgalatokStartPopupForm"; public static string StartPopupId => "KozossegiSzolgalatokStartWindow"; public static string GridName => "KozossegiSzolgalatokGrid"; public static string DetailGridNamePrefix => "KozossegiSzolgalatokReszletekGrid_"; public static string NewModifyPopupName => "New_Modify_Popup"; public static string NewModifyFormName => "KozossegiSzolgalatNewModifyForm"; #endregion Properties public ActionResult Index() { var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var model = new KozossegiSzolgalatokSearchModel(); List osztalyList = new List(); if (ClaimManager.HasPackage( KretaClaimPackages.Adminisztrator.ClaimValue , KretaClaimPackages.SzuperOsztalyfonok.ClaimValue , KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue)) { osztalyList = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyokForDDL().ToSelectListItemList(); } else { osztalyList = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyokForDDL("", ClaimData.FelhasznaloId).ToSelectListItemList(); } model.OsztalyCsoportList = osztalyList; if (osztalyList.Count == 1) { var csoportId = Convert.ToInt32(osztalyList.Single().Value); model.CsoportIdSearch = csoportId; model.OsztalyCsoportId = csoportId; model.OsztalyCsoportNev = osztalyList.Single().Text; } else { model.OsztalyCsoportId = null; model.OsztalyCsoportNev = string.Empty; } return View(model); } #region Popup actions [HttpPost] [MvcValidateAjaxAntiForgeryToken] public ActionResult OpenStartPopup() { var model = new KozossegiSzolgalatokModel(); return PartialView("Start_Popup", model); } [HttpPost] [MvcValidateAjaxAntiForgeryToken] [MvcRolePackageAuthorize(Enums.ManualEnums.TanevEnum.Mind, KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue )] public ActionResult OpenNewModifyPopup(int? id, int tanuloId) { bool isModify = id.IsEntityId(); KozossegiSzolgalatModel kozossegiSzolgalatModel; if (isModify) { //NOTE: Az id az IdEntityId vizsgálat miatt nem lehet null! KozossegiSzolgalatCo co = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetKozossegiSzolgalatById(id.Value); kozossegiSzolgalatModel = new KozossegiSzolgalatModel(co); } else { kozossegiSzolgalatModel = new KozossegiSzolgalatModel { TanuloId = tanuloId, IntervallumKezdete = DateTime.Today, IntervallumVege = DateTime.Today, RogzitesDatuma = DateTime.Today, Oraszam = 1 }; } var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()); kozossegiSzolgalatModel.NemzetiDokumentumNyelvek = systemSettingsHelper.GetSystemSettingValue>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek); kozossegiSzolgalatModel.KozossegiSzolgalatTipusList = GetKozossegiSzolgalatTipusList(); var popupModel = new PopUpModel(kozossegiSzolgalatModel, NewModifyPopupName); popupModel.AddBtn(popupModel, "KozsossegiSzolgalatBtnCancel", CommonResource.Megse, "KozossegiSzolgalatokHelper.newModifyPopupCancel", "BtnCancel"); popupModel.AddBtn(popupModel, "KozsossegiSzolgalatBtnOk", CommonResource.Mentes, "KozossegiSzolgalatokHelper.newModifyPopupSave", "BtnOk"); if (isModify) { popupModel.AddBtn(popupModel, "KozsossegiSzolgalatBtnDelete", CommonResource.Torles, "KozossegiSzolgalatokHelper.newModifyPopupDelete", "BtnDelete"); } return PartialView(Constants.General.PopupView, popupModel); } #endregion Popup actions [MvcRolePackageAuthorize( KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue )] public ActionResult KozossegiSzolgalatokReszletekGrid(KozossegiSzolgalatokGridModel model) { return PartialView("DetailGrid", model); } private static List GetKozossegiSzolgalatTipusList() { //NOTE: Az Na a korábban migrált és/vagy létrehozott közösségi szolgálatokhoz kell, mivel korábban még nem lehetett kiválasztani közösségi szolgálat típust/tevékenységet. var result = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.KozossegiSzolgalatTipus, ClaimData.SelectedTanevID.Value).ToSelectListItemList(new List { ((int)KozossegiSzolgalatTipusEnum.Na).ToString() }); return result; } public ActionResult KozossegiSzolgalatokExportGrid([System.Web.Http.FromUri] KozossegiSzolgalatokSearchModel kozossegiSzolgalatokSearchModel) { try { var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()); KozossegiSzolgalatokSearchCo co = new KozossegiSzolgalatokSearchCo(); co.OsztalyCsoportIdList = kozossegiSzolgalatokSearchModel.CsoportIdSearch.HasValue ? new List { kozossegiSzolgalatokSearchModel.CsoportIdSearch.Value } : null; co.TanuloIdList = new List(); co.TanuloNev = kozossegiSzolgalatokSearchModel.TanuloNeve; co.IntervallumKezdete = kozossegiSzolgalatokSearchModel.IdoszakKezdete; co.IntervallumVege = kozossegiSzolgalatokSearchModel.IdoszakVege; co.OsszesOraszamKezdete = kozossegiSzolgalatokSearchModel.OsszesOraszamKezdete; co.OsszesOraszamVege = kozossegiSzolgalatokSearchModel.OsszesOraszamVege; co.AnyjaNeve = kozossegiSzolgalatokSearchModel.AnyjaNeve; DataSet dataSet = helper.GetKozossegiSzolgalatokExcelExport(co); var data = FeljegyzesHelper.GetExcelData(dataSet); var excel = new ExcelExportManager(); var stream = excel.CreateExcelExport(data, fejlec: false); return File(stream, Kreta.Core.Constants.ContentTypes.Xlsx, $"{FeljegyzesekResource.KozossegiSzolgalatokExportFileName}.xlsx"); } catch (Exception ex) { throw NyomtatvanyokLogic.NyomtatvanyError(ex); } } } }