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

760 lines
44 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using System.Web.Routing;
using System.Xml.Linq;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Classes.AsposeHelpers;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Core.Configuratiaton.Interface;
using Kreta.Core.FeatureToggle;
using Kreta.Core.Iktato.Poszeidon.Factory.Interface;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Areas.Nyomtatvanyok.Models;
using Kreta.Web.Controllers;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Modal;
using Kreta.Web.Menu;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
//[AllowAnonymous]
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Tanar.ClaimValue, KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue, KretaClaimPackages.IsArchivIntezmeny.ClaimValue)]
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private IFeatureContext FeatureContext { get; }
private IIktatoRepositoryFactory IktatoRepositoryFactory { get; }
private IktatoServiceConfiguration IktatoServiceConfiguration { get; }
private readonly IKozpontiKretaHelper KozpontiKretaHelper;
private readonly IKozpontiKretaConfiguration KozpontiKretaConfiguration;
private bool RendszerbeallitasMindenkiLathatjaAzOsszesDokumentumot => new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.osszes_dokumentum_eleresenek_engedelyezese_szaktanarok_es_osztalyfonokok_reszere);
public class NyomtatvanyModel : NyomtatvanyBaseModel
{
public int TanevId { get; set; }
public int OsztalyId { get; set; }
public int OsztalyCsoportId { get; set; }
public List<int> OsztalyCsoportIdList { get; set; }
public List<int> OsztalyIdList { get; set; }
public int CsoportId { get; set; }
public List<int> CsoportIdList { get; set; }
public int FoglalkozasId { get; set; }
public List<int> FoglalkozasIdList { get; set; }
public int PedagogusId { get; set; }
public List<int> PedagogusIdList { get; set; }
public int TanuloId { get; set; }
public List<int> TanuloIdList { get; set; }
public List<int> TanulocsoportIdList { get; set; }
public int TeremId { get; set; }
public List<int> TeremIdList { get; set; }
public int HonapId { get; set; }
public int HaladasiNaploFormatumId { get; set; }
public int HetSorszama { get; set; }
public DateTime KeltDatum { get; set; }
public int KeltFormatumId { get; set; }
public int CimzettId { get; set; }
public int AlulirottMegnevezesId { get; set; }
public int OrarendTipusaId { get; set; }
public int FormatumId { get; set; }
public string ModelXmlString { get; set; }
public int AtsoroltTanuloAdatokModId { get; set; }
public int OsztalyInditasaId { get; set; }
public int MegtartottVagyMegtarthatoModId { get; set; }
public int TeljesNaposMulasztasSzamitashozMiminalisanMulasztottOrakszamaModId { get; set; }
public int NyomtatvanyErtekelesMegjelenitesId { get; set; }
public DateTime IdoszakKezdete { get; set; }
public DateTime IdoszakVege { get; set; }
public int HelyettesitesListaFormatumId { get; set; }
public int TanulokNevsorRendezeseId { get; set; }
public DateTime OrarendErvenyessegiDatum { get; set; }
public BetuMeretEnum BetuMeret { get; set; }
public CsoportnaploTanulokSorrendjeEnum CsoportnaploTanulokSorrendje { get; set; }
public int IgazolatlanOrakSzama { get; set; }
public KotesmargoTipusEnum KotesMargoTipus { get; set; }
public bool KiiratkozottTanulokMegjelenitese { get; set; }
public HelyettesitesiNaploBontasEnum HelyettesitesiNaploBontas { get; set; }
public bool SNIAdatokMegjeleniteseUresen { get; set; }
public bool JegyzekSzerepeltetese { get; set; }
public bool OkjSzakmacsoport { get; set; }
public bool OkjAgazat { get; set; }
public bool OkjSzakkepesites { get; set; }
public bool OkjReszszakkepesites { get; set; }
public bool UjSzktAgazat { get; set; }
public bool UjSzktSzakma { get; set; }
public bool UjSzktSzakmairany { get; set; }
public bool NktTanulmanyiTerulet { get; set; }
public bool NktSzakkepesites { get; set; }
public bool NktSzakirany { get; set; }
public bool KapcsolodoCsoportokMegjelenitese { get; set; }
public bool OsztalyBontasokMegjelenitese { get; set; }
public MunkaidoelszamolasBontasEnum MunkaidoelszamolasBontas { get; set; }
public bool TanoraiFoglalkozasokUresBlokkMegjelenites { get; set; }
public bool TanoranKivuliFoglalkozasokUresBlokkMegjelenites { get; set; }
public bool EgyeniFoglalkozasokUresBlokkMegjelenites { get; set; }
public bool HelyettesitesekUresBlokkMegjelenites { get; set; }
public bool OktNevLeNemKotottMunkaidoUresBlokkMegjelenites { get; set; }
public bool ElmeletiGyakorlatiOrakElkulonitese { get; set; }
public bool FelnottkepzesiOrakElkulonitese { get; set; }
public int OktNevelesiKategoriaId { get; set; }
public List<int> FeladatellatasiHelyIdList { get; set; }
public AnyanyelvEnum NemzetisegiNyelvId { get; set; }
public bool EvfolyamSzerepelteteseTanuloiAdatokKozott { get; set; }
public bool PHMegjelenitese { get; set; } = true;
public bool HelyettesitesTipusanakMegjelenitese { get; set; } = true;
public bool ParhuzamosOrakMegjelenitese { get; set; }
public bool NegyedevreSzamoltMulasztasok { get; set; }
public bool JelenletAdatokMegjelenitese { get; set; }
public JelenletAdatokOsszesiteseEnum JelenletAdatokOsszesitese { get; set; }
public JelenletTablazatElrendezeseEnum JelenletTablazatElrendezese { get; set; }
public string IgazolasSorszama { get; set; }
public DateTime ErvenyessegVege { get; set; }
public int IgazolasKiallitasanakHelyeId { get; set; }
public bool TagintezmenyCimenekMegjelenitese { get; set; }
public int TagintezmenyCimeId { get; set; }
public bool IntezmenyNevenekMegjelenitese { get; set; }
public string MasodikIntezmenyNeve { get; set; }
public bool FeladatellatasiHelyCimenekMegjelenitese { get; set; }
public string MasodikFeladatellatasiHelyCime { get; set; }
public string GyakorlatiKepzesiHelyNeve { get; set; }
public string GyakorlatiKepzesiHelyCime { get; set; }
public IgazolasKiallitasanakOkaEnum IgazolasKiallitasanakOka { get; set; }
public int BetuMeretSzam { get; set; }
public bool IsUjSzkt { get; set; }
public int Oraszam { get; set; }
public int MuveszetiAgId { get; set; }
public bool MegjegyzesekMegjelenitese { get; set; }
public bool IsAmiHianyzasIsMegjelenjen { get; set; }
public bool? MustGondviselo { get; set; }
public bool? MustGondviseloIsTorvenyes { get; set; }
public bool IsTankoteles { get; set; }
}
public NyomtatvanyokController(IKozpontiKretaConfiguration kozpontiKretaConfiguration, IKozpontiKretaHelper kozpontiKretaHelper, IFeatureContext featureContext, IIktatoRepositoryFactory iktatoRepositoryFactory, IktatoServiceConfiguration iktatoServiceConfiguration)
{
FeatureContext = featureContext ?? throw new ArgumentNullException(nameof(featureContext));
IktatoRepositoryFactory = iktatoRepositoryFactory ?? throw new ArgumentNullException(nameof(iktatoRepositoryFactory));
IktatoServiceConfiguration = iktatoServiceConfiguration ?? throw new ArgumentNullException(nameof(iktatoServiceConfiguration));
KozpontiKretaHelper = kozpontiKretaHelper ?? throw new ArgumentNullException(nameof(kozpontiKretaHelper));
KozpontiKretaConfiguration = kozpontiKretaConfiguration ?? throw new ArgumentNullException(nameof(kozpontiKretaConfiguration));
}
public ActionResult Index()
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var pbbm = new PanelBarBaseModel { PanelName = "NyomtatvanyPanel" };
var lpbcm = new List<PanelBarChildModel>();
var xdoc = XDocument.Load(Server.MapPath("~/Resources/Nyomtatvanyok.xml"));
var groups = from x in xdoc.Descendants("Group")
select new
{
GroupId = x.Attribute("Id").Value,
GroupName = x.Attribute("Name").Value,
GroupDescription = x.Attribute("Description").Value,
Nyomtatvanyok = x.Descendants("Nyomtatvany"),
isKovTanevbenElerheto = x.Attribute("isKovTanevbenElerheto"),
isVisibleOnlyOnSZIRIntezmeny = x.Attribute("isVisibleOnlyOnSZIRIntezmeny"),
isVisibleOnlyOnNemSZIRIntezmeny = x.Attribute("isVisibleOnlyOnNemSZIRIntezmeny")
};
if (ClaimData.KovTanevID.HasValue && ClaimData.SelectedTanevID.HasValue && ClaimData.KovTanevID.Value == ClaimData.SelectedTanevID.Value)
{ groups = groups.Where(x => (bool?)x.isKovTanevbenElerheto == true); }
groups = groups.Where(y => !(y.isVisibleOnlyOnSZIRIntezmeny != null || y.isVisibleOnlyOnNemSZIRIntezmeny != null) || (y.isVisibleOnlyOnSZIRIntezmeny != null && y.isVisibleOnlyOnSZIRIntezmeny.Value.ToLower() == ClaimData.IsSzakkepzoIntezmeny.ToString().ToLower() && !ClaimData.IsSelectedTanev21_22OrLater) || (y.isVisibleOnlyOnNemSZIRIntezmeny != null && y.isVisibleOnlyOnNemSZIRIntezmeny.Value.ToLower() == (!ClaimData.IsSzakkepzoIntezmeny || !ClaimData.IsSelectedTanev21_22OrLater).ToString().ToLower()));
var IsNemLathatjaDiakokAdatait = MenuHelper.IsAlkalmazottNemLathatjaDiakokAdatait();
AddNemzetisegiDokumentumok(systemSettingsHelper);
AddKozossegiSzolgalatiNaplo();
AddIfIsszakkepzojuttatas();
var isSportAdatokKezelese = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Tanulo_sportoloi_adatainak_kezelese);
var isOfoKezelhetSportAdatokat = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_sportoloi_adatait);
var isCsopVezKezelhetSportAdatokat = systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Csoportvezeto_Tanulo_Adat_Modositas);
var helper = new IntezmenyConfigHelper(ConnectionTypeExtensions.GetSystemConnectionType());
var isPedIgHelyettKiallIsEnabled = helper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Nyomtatvany_PedIgHelyettKiall, IntezmenyConfigTipusEnum.IsEnabled);
foreach (var group in groups)
{
var data = new List<object>();
foreach (var nyomtatvany in group.Nyomtatvanyok)
{
var nyomtatvanyIdAttributeValue = nyomtatvany.Attribute("Id").Value;
var nyomtatvanyName = nyomtatvany.Attribute("Name").Value;
if (!int.TryParse(nyomtatvanyIdAttributeValue, out var nyomtatvanyId))
{
nyomtatvanyId = (int)Enum.Parse(typeof(DokumentumFeluletEnum), nyomtatvanyIdAttributeValue);
var dokumentumFeluletEnum = (DokumentumFeluletEnum)Enum.Parse(typeof(DokumentumFeluletEnum), nyomtatvanyIdAttributeValue);
/// TODO: miért hasal el a GetDisplayName()?
nyomtatvanyName = dokumentumFeluletEnum.GetAttribute<DisplayAttribute>()?.GetName() ?? dokumentumFeluletEnum.ToDisplayName();
}
if (!IsNemLathatjaDiakokAdatait && IsValidNyomtatvany(nyomtatvanyId))
{
if (nyomtatvany.Attribute("SeparatorHeader") != null)
{
if (ClaimData.KovTanevID.HasValue && ClaimData.SelectedTanevID.HasValue && ClaimData.KovTanevID.Value == ClaimData.SelectedTanevID.Value)
{
var isKovTanevbenElerheto = (bool?)nyomtatvany.Attribute("isKovTanevbenElerheto");
if (isKovTanevbenElerheto.HasValue && isKovTanevbenElerheto.Value)
{
data.Add(new PanelBarChildHeaderModel { Name = nyomtatvany.Attribute("SeparatorHeader").Value, Description = string.Empty });
}
}
else
{
data.Add(new PanelBarChildHeaderModel { Name = nyomtatvany.Attribute("SeparatorHeader").Value, Description = string.Empty });
}
}
if (nyomtatvanyId == (int)DokumentumFeluletEnum.TanulokSportoloiAdatainakOsszesitojeOsztaly || nyomtatvanyId == (int)DokumentumFeluletEnum.TanulokSportoloiAdatainakOsszesitojeCsoport)
{
if (isSportAdatokKezelese)
{
if (ClaimData.IsAdministrator || (ClaimData.IsOsztalyfonok && isOfoKezelhetSportAdatokat && nyomtatvanyId == (int)DokumentumFeluletEnum.TanulokSportoloiAdatainakOsszesitojeOsztaly) || (isCsopVezKezelhetSportAdatokat && ClaimData.FelhasznaloSzerepCsomagok.Any(x => x == KretaClaimPackages.CsoportVezeto.ClaimValue && nyomtatvanyId == 1001)))
{
data.Add(new PanelBarChildDataModel { Name = nyomtatvanyName, Description = nyomtatvany.Attribute("Description").Value, Id = nyomtatvanyId.ToString(), ControllerAction = nyomtatvany.Attribute("ControllerAction").Value, DocumentType = nyomtatvany.Attribute("DocumentType").Value });
}
}
}
else
{
if (ClaimData.KovTanevID.HasValue && ClaimData.SelectedTanevID.HasValue && ClaimData.KovTanevID.Value == ClaimData.SelectedTanevID.Value)
{
var isKovTanevbenElerheto = (bool?)nyomtatvany.Attribute("isKovTanevbenElerheto");
if (isKovTanevbenElerheto.HasValue && isKovTanevbenElerheto.Value)
{
data.Add(new PanelBarChildDataModel { Name = nyomtatvanyName, Description = nyomtatvany.Attribute("Description").Value, Id = nyomtatvanyId.ToString(), ControllerAction = nyomtatvany.Attribute("ControllerAction").Value, DocumentType = nyomtatvany.Attribute("DocumentType").Value });
}
}
else
{
if (nyomtatvanyId == (int)DokumentumFeluletEnum.PedagogusigazolvanyHelyettKiallitottIgazolas)
{
if (!isPedIgHelyettKiallIsEnabled)
{
continue;
}
data.Add(new PanelBarChildDataModel { Name = nyomtatvanyName, Description = nyomtatvany.Attribute("Description").Value, Id = nyomtatvanyId.ToString(), ControllerAction = nyomtatvany.Attribute("ControllerAction").Value, DocumentType = nyomtatvany.Attribute("DocumentType").Value });
}
else
{
data.Add(new PanelBarChildDataModel { Name = nyomtatvanyName, Description = nyomtatvany.Attribute("Description").Value, Id = nyomtatvanyId.ToString(), ControllerAction = nyomtatvany.Attribute("ControllerAction").Value, DocumentType = nyomtatvany.Attribute("DocumentType").Value });
}
}
}
}
}
if (data.Count > 0)
{
lpbcm.Add(new PanelBarChildModel() { PartialViewName = "PanelBarDefaultView", PartialViewTitle = group.GroupName, Data = data });
}
}
pbbm.ChildModels = lpbcm;
return View("Index", pbbm);
}
[MvcRolePackageAuthorize(TanevEnum.AktTanev, KretaClaimPackages.Tanulo.ClaimValue, KretaClaimPackages.Gondviselo.ClaimValue)]
public ActionResult TanuloiIndex()
{
var bdm = new BizonyitvanyDownloadModel()
{
ButtonModel = new ModalButtonModel
{
Name = "downloadBtn",
Text = NyomtatvanyokResource.Letoltes,
Enabled = true,
Icon = null,
Parameters = new RouteValueDictionary(),
ImageUrl = "",
SpriteCssClass = "",
EventName = "TanuloiBizonyitvanyokLetolteseHelper.downloadDocuments"
},
};
return View("TanuloiIndex", bdm);
}
#region Listák lekérése
public List<int> GetOsztalyIdList(List<int> osztalyIdList, OktNevelesiKategoriaEnum? feladatKategoria, bool forOrarend = false)
{
var nyomtatvanyHelper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
return osztalyIdList ?? (forOrarend
? nyomtatvanyHelper.GetOsztalyByTanevList(null, feladatKategoria)
: nyomtatvanyHelper.GetOsztalyByTanevList(AdminisztratorVagySzuperOsztalyfonok() || RendszerbeallitasMindenkiLathatjaAzOsszesDokumentumot ? -1 : ClaimData.FelhasznaloId, feladatKategoria));
}
public List<int> GetCsoportIdList(List<int> csoportIdList, OktNevelesiKategoriaEnum? feladatKategoria)
{
return csoportIdList ?? new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportByTanevList(AdminisztratorVagySzuperOsztalyfonok() || RendszerbeallitasMindenkiLathatjaAzOsszesDokumentumot ? -1 : ClaimData.FelhasznaloId, feladatKategoria);
}
public List<int> GetOsztalyCsoportIdList(List<int> osztalyCsoportIdList)
{
return osztalyCsoportIdList ?? new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportByTanevList(AdminisztratorVagySzuperOsztalyfonok() || RendszerbeallitasMindenkiLathatjaAzOsszesDokumentumot ? -1 : ClaimData.FelhasznaloId, OktNevelesiKategoriaEnum.NevelesOktatas);
}
public List<int> GetFoglalkozasIdList(List<int> foglalkozasIdList)
{
return foglalkozasIdList ?? new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetoFoglalkozasByTanevList(AdminisztratorVagySzuperOsztalyfonok() || RendszerbeallitasMindenkiLathatjaAzOsszesDokumentumot ? -1 : ClaimData.FelhasznaloId);
}
public List<int> GetPedagogusIdList(List<int> pedagogusIdList)
{
return GetPedagogusIdListCommon(pedagogusIdList);
}
public List<int> GetTeremIdList(List<int> teremIdList)
{
return GetTeremIdListCommon(teremIdList);
}
public List<int> GetPedagogusIdListByFelhasznaloId(List<int> pedagogusIdList, OktNevelesiKategoriaEnum? oktNevKategoria = null)
{
if (AdminisztratorVagySzuperOsztalyfonok() || RendszerbeallitasMindenkiLathatjaAzOsszesDokumentumot)
{
return GetPedagogusIdListCommon(pedagogusIdList, oktNevKategoria: oktNevKategoria);
}
return GetPedagogusIdListCommon(pedagogusIdList, ClaimData.FelhasznaloId, oktNevKategoria);
}
public List<int> GetOsztalyCsoportIdListByFelhasznaloId(List<int> osztalyCsoportIdList, OktNevelesiKategoriaEnum? feladatKategoria)
{
if (AdminisztratorVagySzuperOsztalyfonok() || RendszerbeallitasMindenkiLathatjaAzOsszesDokumentumot)
{
return GetOsztalyCsoportIdListCommon(osztalyCsoportIdList, feladatKategoria);
}
return GetOsztalyCsoportIdListCommon(osztalyCsoportIdList, feladatKategoria, ClaimData.FelhasznaloId);
}
private List<int> GetTanulokIdList(List<int> tanuloIdList, int osztalyId)
{
List<int> result = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanulokByOsztalyList(osztalyId);
if (tanuloIdList == null)
{
return result;
}
var sajatTanulokListaja = result.Intersect(tanuloIdList).ToList();
if (sajatTanulokListaja.Count != 0)
{
return sajatTanulokListaja;
}
return result;
}
private List<int> GetPedagogusIdListCommon(List<int> pedagogusIdList, int? felhasznaloId = null, OktNevelesiKategoriaEnum? oktNevKategoria = null)
{
if (pedagogusIdList != null)
{
return pedagogusIdList;
}
var result = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetPedagogusByTanevList(felhasznaloId, oktNevKategoria);
return result;
}
private List<int> GetOsztalyCsoportIdListCommon(List<int> osztalyCsoportIdList, OktNevelesiKategoriaEnum? feladatKategoria, int? felhasznaloId = null)
{
if (osztalyCsoportIdList != null)
{
return osztalyCsoportIdList;
}
var result = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportByTanevList(felhasznaloId, feladatKategoria);
return result;
}
private List<int> GetTeremIdListCommon(List<int> teremIdList)
{
if (teremIdList != null)
{
return teremIdList;
}
var result = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremByTanevList();
return result;
}
#endregion
public static string CreateXMLFromList(List<int> data)
{
if (data != null && data.Count > 0)
{
string xmlStringStart = $"<a><b>",
xmlStringEnd = $"</b></a>",
xmlString = string.Empty;
foreach (var d in data)
xmlString += xmlStringStart + d + xmlStringEnd;
return xmlString;
}
return null;
}
#region Közösen használt metódusok
private void AddNemzetisegiDokumentumok(SystemSettingsHelper systemSettingsHelper)
{
var nemzetiDokumentumNyelvek = systemSettingsHelper.GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
//Nemzetiségi törzslap
if (nemzetiDokumentumNyelvek.Exists(x => x == (int)AnyanyelvEnum.horvat) || nemzetiDokumentumNyelvek.Exists(x => x == (int)AnyanyelvEnum.roman))
{
AdminisztratorNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.NemzetisegiTorzslap);
TanarNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.NemzetisegiTorzslap);
}
//Bizonyítvány pótlap - 1. osztály
//if (nemzetiDokumentumNyelvek.Any())
//{
// AdminisztratorNyomtatasDokumentumIds.Add(802);
//}
//Bizonyítvány pótlap - 1-4. osztály
if (nemzetiDokumentumNyelvek.Exists(x => x == (int)AnyanyelvEnum.nemet) || nemzetiDokumentumNyelvek.Exists(x => x == (int)AnyanyelvEnum.roman) || nemzetiDokumentumNyelvek.Exists(x => x == (int)AnyanyelvEnum.szerb))
{
AdminisztratorNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.NemzetisegiBizonyitvany1_4);
TanarNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.NemzetisegiBizonyitvany1_4);
}
//Bizonyítvány pótlap - felső tagozatos
if (nemzetiDokumentumNyelvek.Exists(x => x == (int)AnyanyelvEnum.roman))
{
AdminisztratorNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.NemzetisegiBizonyitvanyFelso);
TanarNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.NemzetisegiBizonyitvanyFelso);
}
//Gimnáziumi bizonyítvány pótlap
if (nemzetiDokumentumNyelvek.Exists(x => x == (int)AnyanyelvEnum.horvat) || nemzetiDokumentumNyelvek.Exists(x => x == (int)AnyanyelvEnum.nemet))
{
AdminisztratorNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.NemzetisegiGimnaziumBizonyitvany);
TanarNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.NemzetisegiGimnaziumBizonyitvany);
}
}
private void AddKozossegiSzolgalatiNaplo()
{
if (ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Tanar.ClaimValue))
{
var tanarKozossegiSzolgalatKezelo = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanarAdatok(ClaimData.FelhasznaloId).KozossegiSzolgalatKezelo;
if (tanarKozossegiSzolgalatKezelo)
{
TanarNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.KozossegiSzolgalatiNaplo);
}
}
}
private void AddIfIsszakkepzojuttatas()
{
var isSzakkepzoJuttatas = new IntezmenyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetIntezmenyiAdatok().IsSzakkepzoJuttatas;
if (ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Adminisztrator.ClaimValue) && isSzakkepzoJuttatas)
{
AdminisztratorNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.Apaczai16AlattiESZABelepo2022_23);
AdminisztratorNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.Apaczai16AlattiESZAKilepo2022_23);
AdminisztratorNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.Apaczai16FelettiESZABelepo2022_23);
AdminisztratorNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.Apaczai16FelettiESZAKilepo2022_23);
AdminisztratorNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.ApaczaiHozzajarulasiNyilatkozat2022_23);
AdminisztratorNyomtatasDokumentumIds.Add((int)DokumentumFeluletEnum.ApaczaiMentoriTamogatoNyilatkozat2022_23);
}
}
private bool IsValidNyomtatvany(int nyomtatvanyId)
{
if (nyomtatvanyId == (int)DokumentumFeluletEnum.FenntartoAltalElfogadottTantargyFelosztasExcel && !ClaimData.IsActivTanev && ClaimData.SelectedTanevID != ClaimData.KovTanevID)
{
AdminisztratorNyomtatasDokumentumIds.Remove((int)DokumentumFeluletEnum.FenntartoAltalElfogadottTantargyFelosztasExcel);
AdminisztratorNyomtatasDokumentumIds.Remove((int)DokumentumFeluletEnum.FenntartoAltalElfogadottTantargyFelosztasPDF);
}
if (ApplicationData.SystemType == SystemType.KK || ApplicationData.SystemType == SystemType.AZURE || ApplicationData.SystemType == SystemType.NSZFH_EMA)
{
AdminisztratorNyomtatasDokumentumIds.Remove((int)DokumentumFeluletEnum.ReszletesTanuloiAdatokRiport);
}
if (nyomtatvanyId == (int)DokumentumFeluletEnum.OsztalyokEsOsztalyokLetszamadataiRiport && ClaimData.IsSzakkepzoIntezmeny)
{
// Osztályok és az osztályok létszámadatai riport -> NSZFH-s környezeten nem elérhető
AdminisztratorNyomtatasDokumentumIds.Remove(nyomtatvanyId);
}
if ((ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Adminisztrator.ClaimValue)
|| RendszerbeallitasMindenkiLathatjaAzOsszesDokumentumot) && AdminisztratorNyomtatasDokumentumIds.Contains(nyomtatvanyId))
{
return true;
}
if (ClaimData.IsFullKretaVerzio)
{
if (ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.SzuperOsztalyfonok.ClaimValue) && OsztalyfonokNyomtatasDokumentumIds.Contains(nyomtatvanyId))
{
return true;
}
if (ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Osztalyfonok.ClaimValue) && OsztalyfonokNyomtatasDokumentumIds.Contains(nyomtatvanyId))
{
return true;
}
if (ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.CsoportVezeto.ClaimValue) && CsoportvezetoNyomtatasDokumentumIds.Contains(nyomtatvanyId))
{
return true;
}
if (ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Tanar.ClaimValue) && TanarNyomtatasDokumentumIds.Contains(nyomtatvanyId))
{
return true;
}
if (ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue) && (nyomtatvanyId == (int)DokumentumFeluletEnum.KozossegiSzolgalatiNaplo))
{
return true;
}
if (ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.SzuperOsztalyfonok.ClaimValue) && (nyomtatvanyId == (int)DokumentumFeluletEnum.KozossegiSzolgalatiNaplo))
{
return true;
}
if (ClaimData.IsArchivIntezmeny && ClaimData.IsArchivAdminUser)
{
return true;
}
if (ClaimData.IsArchivIntezmeny && !ClaimData.IsArchivAdminUser && TanarNyomtatasDokumentumIds.Contains(nyomtatvanyId))
{
return true;
}
}
return false;
}
private void AddNyomtatvanyMintZipEntry(ZipOutputStream zipOutput, DataSet ds, string frxNeve, Dictionary<string, object> parameters = null, string nyomtatvanyNeve = "Alap", string headerImage = null, string footerImage = null, int formatumId = 1, bool egyediLablecKellOldalszam = true, Enums.DokumentumTipusEnum? dokumentumTipus = null, bool IsAspose = false, System.Reflection.MethodInfo asposeMetodus = null, AsposeHelperOptions asposeHelperOptions = null)
{
using (var stream = GetMemoryStreamByName(ds, frxNeve, parameters, nyomtatvanyNeve, headerImage, footerImage, formatumId, egyediLablecKellOldalszam, dokumentumTipus, IsAspose, asposeMetodus, asposeHelperOptions))
{
AddZipEntry(zipOutput, stream, nyomtatvanyNeve, formatumId);
}
}
private void AddExcelMintZipEntry(ZipOutputStream zipOutput, MemoryStream stream, string nyomtatvanyNeve = "Alap")
{
AddZipEntry(zipOutput, stream, nyomtatvanyNeve, NyomtatvanyFormatumEnum.Excel.AsInt());
}
private void TobbNyomtatvanyEgyDataSetbe(ref DataSet ds, DataSet mergingdDs, string excludedTables = null, string distinctTables = null)
{
if (ds.Tables.Count == 0)
{
ds = mergingdDs.Copy();
return;
}
var excludedTableNames = string.IsNullOrWhiteSpace(excludedTables) ? Array.Empty<string>() : excludedTables.Split(",".ToCharArray());
foreach (DataTable table in mergingdDs.Tables)
{
if (!excludedTableNames.Contains(table.TableName))
{
ds.Tables[table.TableName].Merge(table);
var distinctTableNames = string.IsNullOrWhiteSpace(distinctTables) ? Array.Empty<string>() : distinctTables.Split(",".ToCharArray());
if ((distinctTableNames.Length > 0) && (distinctTableNames.Contains(table.TableName)))
{
DataView dv = ds.Tables[table.TableName].DefaultView;
ds.Tables.Remove(table.TableName);
ds.Tables.Add(dv.ToTable(table.TableName, true, table.Columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray()));
}
}
}
}
private bool GetIsIskolaerdekuSzamit()
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
return systemSettingsHelper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Az_iskolaerdeku_tavollet_tipusu_igazolasok_beleszamitanak_a_tanulo_osszes_mulasztasaba);
}
private int GetMinTanoraSzam()
{
var systemSettingsHelper = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType());
return (int)systemSettingsHelper.GetSystemSettingValue<double>(RendszerBeallitasTipusEnum.Ervenyes_tanitasi_nap_oraszam);
}
private bool AdminisztratorVagySzuperOsztalyfonok()
{
return ClaimManager.HasPackage(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue);
}
private string GetTagintezmenyCime(NyomtatvanyModel model)
{
return model.TagintezmenyCime ? model.TagintezmenyCimeDropdown : string.Empty;
}
#endregion
public FileStreamResult LEPSzakmaiUtmutato()
{
FileStream fs = new FileStream(Server.MapPath("~/Resources/LEP/Lázár_Ervin_Program_-_Szakmai_útmutatóV_1.pdf"), FileMode.Open, FileAccess.Read);
return new FileStreamResult(fs, Constants.ImportExport.FileFormatPdf)
{
FileDownloadName = "LEP_Útmutató.pdf"
};
}
[MvcRolePackageAuthorize(TanevEnum.AktTanev, KretaClaimPackages.Tanulo.ClaimValue, KretaClaimPackages.Gondviselo.ClaimValue)]
public ActionResult TanuloiBizonyitvanyokLetoltese(BizonyitvanyDownloadModel model)
{
if (model.TanevId.HasValue)
{
try
{
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
var nyomtatvanyModel = new NyomtatvanyModel
{
FormatumId = (int)NyomtatvanyFormatumEnum.PDF,
KeltFormatumId = (int)KeltFormatumTipusEnum.Szammal,
KeltDatum = DateTime.Today,
BetuMeret = BetuMeretEnum.Normal,
NyomtatvanyErtekelesMegjelenitesId = (int)NyomtatvanyErtekelesMegjelenitesEnum.Tablazatos,
PHMegjelenitese = true,
MulasztasokUjLapon = false,
KiiratkozottTanulokMegjelenitese = true,
isFelmentesekMegjelenitese = false,
TanitasiHetekSzamaVegzos = 32,
TanitasiHetekSzamaNemVegzos = 36,
EvesOraszam = true,
AtlagFeltuntetes = false,
TagintezmenyCime = false,
ElmeletGyakorlatKulon = false,
TanuloZaradekai = false,
KozossegiSzolgalat = false,
CimzettId = (int)ErtesitoCimzettjeEnum.GondviseloReszere,
AltantargyBeszamitasa = true,
AlapszintuNyomtatvanyokKulonDokumentumba = true,
};
var (tanuloId, osztalyai, csoportjai) = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloElozoEvesTanuloEsOsztalyCsoportjai(ClaimData.FelhasznaloId, model.TanevId.Value, new List<int> { (int)OktNevelesiKategoriaEnum.Kollegium });
if (!tanuloId.HasValue)
{
throw NyomtatvanyokLogic.NyomtatvanyError(NyomtatvanyokResource.TanuloNemTalahatoAKivalasztottElozoEvben, HttpStatusCode.BadRequest);
}
nyomtatvanyModel.OsztalyIdList = osztalyai;
nyomtatvanyModel.TanuloIdList = new List<int> { tanuloId.Value };
var origSelectedTanevId = ClaimData.SelectedTanevID;
ClaimData.SelectedTanevID = model.TanevId;
var alulirottak = new ComboBoxHelperApiController().GetAlulirottMegnevezeseEnumListItems(false, (int)NyomtatvanyNyelvEnum.Magyar);
var alulirott = alulirottak.FirstOrDefault(x => x.Selected) ?? alulirottak.Single(x => x.Text.Contains(NyomtatvanyokResource.IntezmenyiAdatokbol));
nyomtatvanyModel.AlulirottMegnevezesId = int.Parse(alulirott.Value);
var dokumentResult = (FileStreamResult)BizonyitvanyPotlap(nyomtatvanyModel, true, (int)NyomtatvanyNyelvEnum.Magyar, Enums.DokumentumTipusEnum.BizonyitvanyPotlapAz1Evfolyamon, true, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)BizonyitvanyPotlap(nyomtatvanyModel, true, (int)NyomtatvanyNyelvEnum.Magyar, Enums.DokumentumTipusEnum.BizonyitvanyPotlapAz1Evfolyamon, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)BizonyitvanyPotlap(nyomtatvanyModel, false, (int)NyomtatvanyNyelvEnum.Magyar, Enums.DokumentumTipusEnum.BizonyitvanyPotlapA2Evfolyamtol, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)BizonyitvanyPotlap(nyomtatvanyModel, true, (int)NyomtatvanyNyelvEnum.Nemet, Enums.DokumentumTipusEnum.BizonyitvanyPotlapAz1EvfolyamonNemet, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)BizonyitvanyPotlap(nyomtatvanyModel, false, (int)NyomtatvanyNyelvEnum.Nemet, Enums.DokumentumTipusEnum.BizonyitvanyPotlapA2EvfolyamtolNemet, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)BizonyitvanyPotlap(nyomtatvanyModel, true, (int)NyomtatvanyNyelvEnum.Angol, Enums.DokumentumTipusEnum.BizonyitvanyPotlapAz1EvfolyamonAngol, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)BizonyitvanyPotlap(nyomtatvanyModel, false, (int)NyomtatvanyNyelvEnum.Angol, Enums.DokumentumTipusEnum.BizonyitvanyPotlapA2EvfolyamtolAngol, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)Ertesito(nyomtatvanyModel, NyomtatvanyEnum.EvvegiErtesitoSzoveges, Enums.DokumentumTipusEnum.EvVegiSzovegesErtesito1tol4osztaly, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)Ertesito(nyomtatvanyModel, NyomtatvanyEnum.EvvegiErtesito, Enums.DokumentumTipusEnum.EvVegiErtesito, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)Ertesito(nyomtatvanyModel, NyomtatvanyEnum.EvvegiErtesitoFuzet, Enums.DokumentumTipusEnum.EvVegiSzovegesErtesitoFuzet1tol4osztaly, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)Ertesito(nyomtatvanyModel, NyomtatvanyEnum.EvvegiErtesitoFuzetNyomtatvany, Enums.DokumentumTipusEnum.EvVegiSzovegesErtesitoFuzetNyomtatvanyra, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)Ertesito(nyomtatvanyModel, NyomtatvanyEnum.EvvegiErtesitoA5Ellenorzobe, Enums.DokumentumTipusEnum.EvVegiErtesitoEllenorzobenElhelyezhetoA5Meretben, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
dokumentResult = (FileStreamResult)Ertesito(nyomtatvanyModel, NyomtatvanyEnum.EvvegiErtesitoEllenorzobe, Enums.DokumentumTipusEnum.EvVegiErtesitoEllenorzobenElhelyezheto, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
if (csoportjai.Count > 0)
{
nyomtatvanyModel.OsztalyIdList = null;
nyomtatvanyModel.CsoportIdList = csoportjai;
dokumentResult = (FileStreamResult)Ertesito(nyomtatvanyModel, NyomtatvanyEnum.EvVegiErtesitoMuveszOktatasban, Enums.DokumentumTipusEnum.EviErtesitoMuveszoktatasban, true, egyTanuloTobbNyomtatvanyaEgyben: true);
AddZipEntry(ZipOutPut, dokumentResult.FileStream, dokumentResult.FileDownloadName, null);
}
ClaimData.SelectedTanevID = origSelectedTanevId;
ZipOutPut.Finish();
OutPut.Position = 0;
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = model.TanevId };
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas("TanuloiBizonyitvanyok", zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
catch (Exception ex)
{
if (ex is StatusError)
{
throw;
}
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
throw NyomtatvanyokLogic.NyomtatvanyError(NyomtatvanyokResource.TanevKivalasztasaKotelezo);
}
}
public static class XmlParseExtension
{
public static string TryGetElementValue(this XElement parentEl, string elementName, string defaultValue = null)
{
var foundEl = parentEl.Attribute(elementName);
if (foundEl != null)
return foundEl.Value;
return defaultValue;
}
}
}