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

185 lines
8.4 KiB
C#

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<SelectListItem> osztalyList = new List<SelectListItem>();
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<List<int>>(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<SelectListItem> 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<string> { ((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<int> { kozossegiSzolgalatokSearchModel.CsoportIdSearch.Value } : null;
co.TanuloIdList = new List<int>();
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);
}
}
}
}