262 lines
12 KiB
C#
262 lines
12 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Net.Mime;
|
|
using System.Text;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Interfaces;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Core;
|
|
using Kreta.Core.Iktato.Poszeidon.Factory.Interface;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.Intezmeny.ApiControllers;
|
|
using Kreta.Web.Areas.Intezmeny.Models;
|
|
using Kreta.Web.Controllers;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Helpers.TabStrip;
|
|
using Kreta.Web.ModelBinder.Mvc;
|
|
using Kreta.Web.Models;
|
|
using Kreta.Web.Models.EditorTemplates;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.Intezmeny.Controllers
|
|
{
|
|
[MvcRoleClaimsAuthorize(true)]
|
|
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
|
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public class IntezmenyController : Controller
|
|
{
|
|
private IIktatoRepositoryFactory IktatoRepositoryFactory { get; }
|
|
private IktatoServiceConfiguration IktatoServiceConfiguration { get; }
|
|
private readonly IJiraHelper JiraHelper;
|
|
|
|
public IntezmenyController(IJiraHelper jiraHelper, IIktatoRepositoryFactory iktatoRepositoryFactory, IktatoServiceConfiguration iktatoServiceConfiguration)
|
|
{
|
|
IktatoRepositoryFactory = iktatoRepositoryFactory;
|
|
IktatoServiceConfiguration = iktatoServiceConfiguration;
|
|
JiraHelper = jiraHelper;
|
|
}
|
|
|
|
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
[MvcRolePackageDenyAuthorize(TanevEnum.Mind, KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
|
|
public ActionResult Index()
|
|
{
|
|
IntezmenyApiController api = new IntezmenyApiController(JiraHelper);
|
|
IntezmenyModel model = api.GetIntezmeny(IktatoRepositoryFactory, IktatoServiceConfiguration);
|
|
return View("Index", model);
|
|
}
|
|
|
|
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
|
public ActionResult IntezmenyFeladatEllatasiHelyDetailGrid(int? id)
|
|
{
|
|
return PartialView("IntezmenyFeladatEllatasiHelyDetailGrid", id);
|
|
}
|
|
|
|
public ActionResult ModIntezmenyPopUp()
|
|
{
|
|
IntezmenyApiController api = new IntezmenyApiController(JiraHelper);
|
|
IntezmenyModel model = api.GetIntezmeny(IktatoRepositoryFactory, IktatoServiceConfiguration);
|
|
model.FormSettings = new List<string>() {
|
|
CimElerhetosegConstant.CimSectionVisible,
|
|
CimElerhetosegConstant.TartozkodasiHelyCimTipus,
|
|
CimElerhetosegConstant.SeparatorRowHide,
|
|
CimElerhetosegConstant.CsakMagyarorszag
|
|
};
|
|
model.TanulovalEgyezik = false;
|
|
PopUpModel pm = new PopUpModel(model, "Intezmeny_Bevitel");
|
|
pm = pm.AddCancelBtn(pm, "IntezmenyHelper.modIntezmenyPopUpCancel");
|
|
pm = pm.AddOkBtn(pm, "IntezmenyHelper.modIntezmenyPopUpSave");
|
|
|
|
return PartialView(Constants.General.PopupView, pm);
|
|
}
|
|
|
|
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public ActionResult GetIntezmenyAdatokPartial()
|
|
{
|
|
IntezmenyApiController api = new IntezmenyApiController(JiraHelper);
|
|
IntezmenyInfoModel intezmenyInfoModel = new IntezmenyInfoModel(api.GetIntezmeny(IktatoRepositoryFactory, IktatoServiceConfiguration));
|
|
|
|
return PartialView("Intezmeny_AdatokInfo_Partial", intezmenyInfoModel.info);
|
|
}
|
|
|
|
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)]
|
|
public ActionResult InfoMukodesiHelyPopUp(int pID)
|
|
{
|
|
IntezmenyApiController api = new IntezmenyApiController(JiraHelper);
|
|
MukodesiHelyModel model = api.GetMukodesiHely(pID);
|
|
|
|
PopUpModel pm = new PopUpModel(model, "MukodesiHely_Info");
|
|
pm = pm.AddCancelBtn(pm, "IntezmenyHelper.infoMukodesiHelyPopUpCancel");
|
|
|
|
return PartialView(Constants.General.PopupView, pm);
|
|
}
|
|
|
|
public ActionResult ModMukodesiHelyPopUp(int? pID)
|
|
{
|
|
|
|
IntezmenyApiController api = new IntezmenyApiController(JiraHelper);
|
|
MukodesiHelyModel model = pID.HasValue ? api.GetMukodesiHely(pID.Value) : new MukodesiHelyModel();
|
|
model.FormSettings = new List<string>() {
|
|
CimElerhetosegConstant.CimSectionVisible,
|
|
CimElerhetosegConstant.TartozkodasiHelyCimTipus,
|
|
CimElerhetosegConstant.SeparatorRowHide,
|
|
CimElerhetosegConstant.CsakMagyarorszag
|
|
};
|
|
model.TanulovalEgyezik = false;
|
|
model.Orszag = (int)OrszagTipusEnum.Magyarorszag;
|
|
|
|
PopUpModel pm = new PopUpModel(model, "MukodesiHely_Bevitel");
|
|
pm = pm.AddCancelBtn(pm, "IntezmenyHelper.modMukodesiHelyPopUpCancel");
|
|
pm = pm.AddOkBtn(pm, "IntezmenyHelper.modMukodesiHelyPopUpSave");
|
|
|
|
return PartialView(Constants.General.PopupView, pm);
|
|
}
|
|
|
|
public ActionResult ModFeladatPopUp(FeladatellatasiHelyModel panelFeladatellatasiHelyModel)
|
|
{
|
|
IntezmenyApiController api = new IntezmenyApiController(JiraHelper);
|
|
|
|
if (panelFeladatellatasiHelyModel.ID.HasValue)
|
|
{
|
|
panelFeladatellatasiHelyModel = api.GetFeladatellatasiHely(panelFeladatellatasiHelyModel.ID.Value);
|
|
}
|
|
|
|
panelFeladatellatasiHelyModel.FeladatList = new ComboBoxHelperApiController().GetOktatasiNevelesiFeladatList(false);
|
|
|
|
SelectListItem aktItem = new SelectListItem();
|
|
if (panelFeladatellatasiHelyModel.FeladatTipus.HasValue)
|
|
{
|
|
aktItem = panelFeladatellatasiHelyModel.FeladatList.Where(x => x.Value == panelFeladatellatasiHelyModel.FeladatTipus.Value.ToString()).FirstOrDefault();
|
|
}
|
|
|
|
// "Működés helyhez egy típusból csak egyet lehessen felvenni, ne duplikálódjon"
|
|
panelFeladatellatasiHelyModel.FeladatList = api.GetFeladatListByMukodesiHelyId(panelFeladatellatasiHelyModel.MukodesiHelyID);
|
|
|
|
if (!string.IsNullOrWhiteSpace(aktItem.Value) && !string.IsNullOrWhiteSpace(aktItem.Text))
|
|
{
|
|
panelFeladatellatasiHelyModel.FeladatList.Add(aktItem);
|
|
}
|
|
|
|
var oktatasNevelesiFeladatHelper = new OktatasNevelesiFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
panelFeladatellatasiHelyModel.IsAMIModuleActive = oktatasNevelesiFeladatHelper.IsAMIModuleActive();
|
|
panelFeladatellatasiHelyModel.IsKollegiumModuleActive = oktatasNevelesiFeladatHelper.IsKollegiumModuleActive();
|
|
panelFeladatellatasiHelyModel.IsEGYMIModuleActive = oktatasNevelesiFeladatHelper.IsEGYMIModuleActive();
|
|
|
|
PopUpModel pm = new PopUpModel(panelFeladatellatasiHelyModel, "FeladatellatasiHely_Bevitel");
|
|
pm = pm.AddCancelBtn(pm, "IntezmenyHelper.modFeladatPopUpCancel");
|
|
pm = pm.AddOkBtn(pm, "IntezmenyHelper.modFeladatPopUpSave");
|
|
|
|
return PartialView(Constants.General.PopupView, pm);
|
|
}
|
|
|
|
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public ActionResult OpenFeladatellatasiHelyTab(int feladellHelyID)
|
|
{
|
|
FeladatellatasiHelyModel fmodel = new FeladatellatasiHelyModel()
|
|
{
|
|
ID = feladellHelyID
|
|
};
|
|
|
|
fmodel.TabList = GetTabItems(fmodel);
|
|
PopUpModel pm = new PopUpModel(fmodel, "FeladatellatasiHelyAdatokTab");
|
|
pm.AddCancelBtn(pm, "IntezmenyHelper.cancelFeladatellatasiHelyAdatok");
|
|
|
|
return PartialView(Constants.General.PopupView, pm);
|
|
}
|
|
|
|
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public ActionResult OpenFeladatellatasiHely_AlapadatokTab(int id)
|
|
{
|
|
IntezmenyApiController api = new IntezmenyApiController(JiraHelper);
|
|
FeladatellatasiHelyModel fmodel = api.GetFeladatellatasiHelyAlapadatok(id);
|
|
|
|
return PartialView("FeladatellatasiHely_AlapadatokTab", fmodel);
|
|
}
|
|
|
|
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public ActionResult OpenFeladatellatasiHely_OsztalycsoportokTab(int id)
|
|
{
|
|
FeladatellatasiHelyModel fmodel = new FeladatellatasiHelyModel()
|
|
{
|
|
ID = id
|
|
};
|
|
|
|
return PartialView("FeladatellatasiHely_OsztalyokTab", fmodel);
|
|
}
|
|
|
|
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public ActionResult OpenFeladatellatasiHely_AlkalmazottakTab(int id)
|
|
{
|
|
FeladatellatasiHelyModel fmodel = new FeladatellatasiHelyModel()
|
|
{
|
|
ID = id
|
|
};
|
|
|
|
return PartialView("FeladatellatasiHely_AlkalmazottakTab", fmodel);
|
|
}
|
|
|
|
public ActionResult IntezmenyiDokumentumPartial(IntezmenyiDokumentumModel model)
|
|
{
|
|
IntezmenyApiController api = new IntezmenyApiController(JiraHelper);
|
|
var filledModel = api.GetIntezmenyiDokumentumModel(model.Tipus, IktatoRepositoryFactory, IktatoServiceConfiguration);
|
|
return PartialView("Intezmeny_Dokumentum_Partial", filledModel);
|
|
}
|
|
|
|
public List<TabStripItemModel> GetTabItems(FeladatellatasiHelyModel model)
|
|
{
|
|
var items = new List<TabStripItemModel>();
|
|
items.Add(new TabStripItemModel { ItemId = "1", ItemName = StringResourcesUtil.GetString(161) /*Alapadatok*/, Area = "Intezmeny", Controller = "Intezmeny", Action = "openFeladatellatasiHely_AlapadatokTab", RouteParameters = new Dictionary<string, string> { { "Id", model.ID.ToString() } } });
|
|
items.Add(new TabStripItemModel { ItemId = "2", ItemName = StringResourcesUtil.GetString(3858) /*Kapcsolódó osztályok/csoportok*/, Area = "Intezmeny", Controller = "Intezmeny", Action = "openFeladatellatasiHely_OsztalycsoportokTab", RouteParameters = new Dictionary<string, string> { { "Id", model.ID.ToString() } } });
|
|
items.Add(new TabStripItemModel { ItemId = "3", ItemName = StringResourcesUtil.GetString(3859) /*Kapcsolódó alkalmazottak*/, Area = "Intezmeny", Controller = "Intezmeny", Action = "openFeladatellatasiHely_AlkalmazottakTab", RouteParameters = new Dictionary<string, string> { { "Id", model.ID.ToString() } } });
|
|
return items;
|
|
}
|
|
|
|
#region Export
|
|
public ActionResult ExportMukodesiHelyekAdatai()
|
|
{
|
|
var bytes = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMukodesiHelyekAdataiExcelExport();
|
|
|
|
return new FileContentResult(bytes, MediaTypeNames.Application.Octet)
|
|
{
|
|
FileDownloadName = HttpUtility.UrlEncode(IntezmenyResource.MukodesiHelyekAdataiExportFileName, Encoding.UTF8),
|
|
};
|
|
}
|
|
#endregion
|
|
|
|
[HttpPost]
|
|
public ActionResult UploadFile([ModelBinder(typeof(AlapdokumentumFileUploadBinder))] IEnumerable<System.Web.HttpPostedFileBase> files, string dokumentumTipus)
|
|
{
|
|
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
helper.InsertDokumentum(IktatoRepositoryFactory, IktatoServiceConfiguration, files, (Enums.DokumentumTipusEnum)System.Enum.Parse(typeof(Enums.DokumentumTipusEnum), dokumentumTipus));
|
|
|
|
return Content("");
|
|
}
|
|
|
|
public ActionResult DownloadFile(string id)
|
|
{
|
|
try
|
|
{
|
|
var phelper = new PoszeidonHelper(ConnectionTypeExtensions.GetSessionConnectionType(), IktatoRepositoryFactory, IktatoServiceConfiguration);
|
|
|
|
var (fajlnev, tartalom) = phelper.Lekeres(id.ToString());
|
|
|
|
return new FileContentResult(tartalom, MediaTypeNames.Application.Octet)
|
|
{
|
|
FileDownloadName = HttpUtility.UrlEncode(fajlnev, Encoding.UTF8),
|
|
};
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.NotFound, ex.Message, ex);
|
|
}
|
|
}
|
|
}
|
|
}
|