This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,40 @@
using System.IO;
using System.Web.Mvc;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.Enums.ManualEnums;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public abstract class BaseNyomtatvanyokController : Controller
{
protected void AddZipEntry(ZipOutputStream zipOutput, Stream fileContent, string nyomtatvanyNeve, int? formatumId = null)
{
var buffer = new byte[Constants.General.BufferSize];
var entry = new ZipEntry(formatumId.HasValue ? $"{nyomtatvanyNeve}.{GetNyomtatvanyFileFormat(formatumId.Value)}" : nyomtatvanyNeve);
zipOutput.PutNextEntry(entry);
int sourceBytes;
do
{
sourceBytes = fileContent.Read(buffer, 0, buffer.Length);
zipOutput.Write(buffer, 0, sourceBytes);
} while (sourceBytes > 0);
}
protected string GetNyomtatvanyFileFormat(int formatumId)
{
switch (formatumId)
{
case (int)NyomtatvanyFormatumEnum.Word:
return Constants.ImportExport.FileFormatWord;
case (int)NyomtatvanyFormatumEnum.PDF:
return Constants.ImportExport.FileFormatPdf;
case (int)NyomtatvanyFormatumEnum.Excel:
return Constants.ImportExport.FileFormatXlsx;
default:
return Constants.ImportExport.FileFormatPdf;
}
}
}
}

View file

@ -0,0 +1,140 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Mime;
using System.Text;
using System.Web;
using System.Web.Mvc;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Iktatas;
using Kreta.BusinessLogic.Security;
using Kreta.Core;
using Kreta.Core.Iktato.Poszeidon.Factory.Interface;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(TanevEnum.AktEsLezartTanev, KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(TanevEnum.AktEsLezartTanev, KretaClaimPackages.Adminisztrator.ClaimValue)]
public class IktatottDokumentumokController : BaseNyomtatvanyokController
{
private IIktatoRepositoryFactory IktatoRepositoryFactory { get; }
private IktatoServiceConfiguration IktatoServiceConfiguration { get; }
public IktatottDokumentumokController(IIktatoRepositoryFactory iktatoRepositoryFactory, IktatoServiceConfiguration iktatoServiceConfiguration)
{
IktatoRepositoryFactory = iktatoRepositoryFactory;
IktatoServiceConfiguration = iktatoServiceConfiguration;
}
public ActionResult Index()
{
var model = new IktatottDokumentumokSearchModel();
return View("Index", model);
}
public ActionResult IktatottDokumentumokDetail(int id)
{
return PartialView(id);
}
[HttpPost]
public ActionResult DokumentumLetoltese(int iktatottDokumentumId)
{
try
{
var phelper = new PoszeidonHelper(ConnectionTypeExtensions.GetSessionConnectionType(), IktatoRepositoryFactory, IktatoServiceConfiguration);
var (fajlnev, tartalom) = phelper.Lekeres(iktatottDokumentumId.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);
}
}
[HttpPost]
public ActionResult DokumentumTobbesLetoltese(List<TobbesLetoltesModel> letoltendoDokumentumok)
{
var hasEntry = false;
var errors = new List<string>();
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
foreach (var letoltendoDokumentum in letoltendoDokumentumok)
{
try
{
var phelper = new PoszeidonHelper(ConnectionTypeExtensions.GetSessionConnectionType(), IktatoRepositoryFactory, IktatoServiceConfiguration);
var (fajlnev, tartalom) = phelper.Lekeres(letoltendoDokumentum.IktatottDokumentumId.ToString());
if (tartalom.Length == 0)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
using (var ms = new MemoryStream(tartalom))
{
hasEntry = true;
AddZipEntry(ZipOutPut, ms, fajlnev);
}
}
catch (Exception ex)
{
errors.Add(string.Format(NyomtatvanyokResource.TobbesLetoltesHibasDokumentumFormatum, letoltendoDokumentum.FajlNev, ex.Message));
}
}
ZipOutPut.Finish();
OutPut.Position = 0;
var errorMessages = errors.Count > 0 ? string.Format(NyomtatvanyokResource.TobbesLetoltesHibasDokumentumListaFormatum, string.Join(Environment.NewLine, errors)) : "";
if (hasEntry)
{
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
var nyomtatvanyNeve = NyomtatvanyokResource.TobbesLetotesNyomtatvanyNeve;
var fileNev = $"{CommonExtensions.NevGeneralas(nyomtatvanyNeve, zipnevmodel)}.{Constants.ImportExport.FileFormatZip}";
return new FileContentResult(OutPut.ToArray(), MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode(fileNev, Encoding.UTF8),
};
}
throw new StatusError(HttpStatusCode.NotFound, errorMessages);
}
[HttpPost]
public ActionResult OpenKulcsszoInfoPopUp(int iktatottDokumentumId)
{
var helper = new KulcsszoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var infoModel = helper.GetKulcsszoTipusErtekParos(iktatottDokumentumId);
var model = new Web.Models.EditorTemplates.PopUpModel(infoModel, "Info_PopUp");
model.AddCancelBtn(model, "DokumentumokHelper.kulcsszoInfoCancel");
return PartialView(Constants.General.PopupView, model);
}
[HttpPost]
public ActionResult IktatasUjrainditasa(int iktatottDokumentumId)
{
var helper = new PoszeidonHelper(ConnectionTypeExtensions.GetSessionConnectionType(), IktatoRepositoryFactory, IktatoServiceConfiguration);
helper.RestartIktatasJob(iktatottDokumentumId);
return new EmptyResult();
}
}
}

View file

@ -0,0 +1,746 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Web.Mvc;
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.Nyomtatvanyok.Excel;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
public ActionResult AltalanosTanuloiGeneralas(NyomtatvanyModel model, string frxNyomtatvanyNeve, DokumentumKategoriaEnum dokumentumKategoria, Enums.DokumentumTipusEnum? dokumentumTipus, System.Reflection.MethodInfo metodus, int osztalyIdParameterOrder, IDictionary<string, object> dataSetParameterek, Dictionary<string, object> frxParameterek, string nyomtatvanyNeve = null, string excludedTables = null, string distinctTables = null, bool isCsoport = false, string tablakFilterByTanuloId = "", string tanuloIdColumnName = "", BaseNyomtatvanyExcelWithDataSet formazottExcelGenerator = null, string emptyDocumentTable = null, bool egyediLablecKellOldalszam = true, bool IsAspose = false, System.Reflection.MethodInfo asposeMetodus = null, AsposeHelperOptions asposeHelperOptions = null, bool egyTanuloTobbNyomtatvanyaEgyben = false)
{
if ((model.FormatumId == NyomtatvanyFormatumEnum.Excel.AsInt()) && (formazottExcelGenerator == null))
{
throw new ArgumentNullException(nameof(formazottExcelGenerator));
}
if (string.IsNullOrWhiteSpace(nyomtatvanyNeve))
{
nyomtatvanyNeve = frxNyomtatvanyNeve;
}
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
var buffer = new byte[Constants.General.BufferSize];
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
DataSet mergedDs = new DataSet();
var needMergedData = false;
var atLeastOneData = false;
var isOsztalySzintuGeneralas =
// ha nincs kijelölve tanuló
(model.TanuloIdList == null)
// és (egy osztálycsoport egyben
&& (((isCsoport ? model.CsoportIdList : model.OsztalyIdList).Count == 1 && !model.AlapszintuNyomtatvanyokKulonDokumentumba)
// vagy egynél több osztály külön)
|| (((isCsoport ? model.CsoportIdList : model.OsztalyIdList).Count > 1 && model.AlapszintuNyomtatvanyokKulonDokumentumba)));
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
var osztalyCsoportLista = (isCsoport) ? GetCsoportIdList(model.CsoportIdList, null) : GetOsztalyIdList(model.OsztalyIdList, null);
for (int db = 0; db < osztalyCsoportLista.Count; db++)
{
var osztalyId = osztalyCsoportLista[db];
if (isOsztalySzintuGeneralas)
{
if (isCsoport)
{
nevmodel.CsoportId = osztalyId;
}
else
{
nevmodel.OsztalyID = osztalyId;
}
}
DataSet osztalyDS;
var pis = metodus.GetParameters();
var parObjs = new object[pis.Length];
for (int i = 0; i < pis.Length; i++)
{
if (i == osztalyIdParameterOrder)
{
parObjs[i] = osztalyId;
}
else
{
parObjs[i] = (dataSetParameterek.Keys.Contains(pis[i].Name)) ? dataSetParameterek[pis[i].Name] : Type.Missing;
}
}
osztalyDS = metodus.Invoke(new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()), parObjs) as DataSet;
var tanuloIdList = (isOsztalySzintuGeneralas || (osztalyCsoportLista.Count > 1 && !model.AlapszintuNyomtatvanyokKulonDokumentumba && model.TanuloIdList == null)) ? new int[] { -1 }.ToList() : GetTanulokIdList(model.TanuloIdList, osztalyId);
if (dokumentumTipus == Enums.DokumentumTipusEnum.TanuloiJogviszonyIgazoloLap_ && model.TanuloIdList != null)
{
tanuloIdList = model.TanuloIdList.Distinct().ToList();
}
if (model.MustGondviselo.HasValue && model.MustGondviselo.Value && osztalyCsoportLista.Count == 1 && model.TanuloIdList != null)
{
var tanuloIdListTemp = tanuloIdList.ToList();
if (tanuloIdListTemp.Count == 1 && tanuloIdList.First() == -1)
{
tanuloIdListTemp = GetTanulokIdList(new List<int>(), osztalyId);
}
tanuloIdListTemp = CheckTanuloHasGondviselo(tanuloIdListTemp);
if (tanuloIdListTemp.Count == 0)
{
throw new Exception(NyomtatvanyokResource.TanulonakNincsRogzitveGondviselo);
}
}
if (model.MustGondviseloIsTorvenyes.HasValue && model.MustGondviseloIsTorvenyes.Value && osztalyCsoportLista.Count == 1 && model.TanuloIdList != null)
{
var tanuloIdListTemp = tanuloIdList.ToList();
if (tanuloIdListTemp.Count == 1 && tanuloIdListTemp.First() == -1)
{
tanuloIdListTemp = GetTanulokIdList(new List<int>(), osztalyId);
}
tanuloIdListTemp = CheckTanuloGondviseloIsTorvenyes(tanuloIdListTemp);
if (tanuloIdListTemp.Count == 0)
{
throw new ApplicationException(TanuloResource.ATanulonakNincsRogzitettTorvenyesKepviseloje);
}
}
if (osztalyDS.Tables.Contains("Orarend"))
{
if (osztalyDS.Tables["Orarend"].Columns.Contains("Szombat"))
{
var szombatColIdx = osztalyDS.Tables["Orarend"].Columns.IndexOf("Szombat");
var columnHasData = osztalyDS.Tables["Orarend"].AsEnumerable().FirstOrDefault(row => !(row[szombatColIdx] is DBNull));
if (!frxParameterek.Keys.Contains("SzombatiNap"))
{
if (columnHasData == null)
{
frxParameterek.Add("SzombatiNap", false);
}
else
{
frxParameterek.Add("SzombatiNap", true);
}
}
else
{
var val = (bool)frxParameterek["SzombatiNap"];
val |= (columnHasData != null);
frxParameterek["SzombatiNap"] = val;
}
}
}
foreach (var tanuloId in tanuloIdList)
{
DataSet ds;
if (tanuloId.IsEntityId())
{
nevmodel.TanuloID = tanuloId;
if (model.MustGondviseloIsTorvenyes.HasValue && model.MustGondviseloIsTorvenyes.Value && !CheckTanuloGondviseloIsTorvenyes(tanuloId))
{
continue;
}
// Tanuló bizonyítványainak és értesítőinek lekérése egyszerre miatt kell, mert a zip-be annyi egyforma nevű fájl kerül, ahány osztályba/csoportba jár. Ráadásul magában a csoport dokumentumban sem szerepel a csoport megnevezése. (KRETA2-6697)
if (egyTanuloTobbNyomtatvanyaEgyben)
{
if (!isCsoport)
{
nevmodel.OsztalyID = osztalyId;
}
else
{
nevmodel.CsoportId = osztalyId;
}
}
ds = new DataSet();
if (model.MustGondviselo.HasValue && model.MustGondviselo.Value && osztalyDS.Tables.Contains("GondviseloAdatok"))
{
var tabla = osztalyDS.Tables["GondviseloAdatok"];
DataView dv = tabla.DefaultView;
dv.RowFilter = tanuloIdColumnName + "=" + tanuloId;
if (dv.Count == 0)
{
continue;
}
}
foreach (DataTable tabla in osztalyDS.Tables)
{
if (tablakFilterByTanuloId.Split(",".ToCharArray()).Contains(tabla.TableName))
{
DataView dv = tabla.DefaultView;
dv.RowFilter = tanuloIdColumnName + "=" + tanuloId;
ds.Tables.Add(dv.ToTable(tabla.TableName));
}
else
{
ds.Tables.Add(tabla.Copy());
}
}
}
else
{
ds = osztalyDS;
}
if (!
// nem kell merge
(
// külön dokumentumba kerüljön minden
(model.AlapszintuNyomtatvanyokKulonDokumentumba)
// egy osztálycsoport kell egyben (osztály szintű)
|| (osztalyCsoportLista.Count == 1 && model.TanuloIdList == null)
// egy tanuló egyben (tanuló szintű)
|| (osztalyCsoportLista.Count == 1 && model.TanuloIdList.Count == 1)
))
{
if (model.FormatumId == NyomtatvanyFormatumEnum.Excel.AsInt())
{
formazottExcelGenerator.CreateSheet(ds, osztalyId, db + 1);
}
TobbNyomtatvanyEgyDataSetbe(ref mergedDs, ds, excludedTables, distinctTables);
needMergedData = true;
}
else
{
if ((tanuloIdList.Count > 1) || (osztalyCsoportLista.Count > 1))
{
if ((!string.IsNullOrWhiteSpace(emptyDocumentTable)) && (ds.Tables[emptyDocumentTable].Rows.Count == 0))
{
continue;
}
atLeastOneData = true;
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus.Value, ds, (!tanuloId.IsEntityId()) ? ((isCsoport) ? DokumentumElemiSzintEnum.Csoport : DokumentumElemiSzintEnum.Osztaly) : DokumentumElemiSzintEnum.Tanulo);
if (model.FormatumId != NyomtatvanyFormatumEnum.Excel.AsInt())
{
Nyomtatas(ds, frxNyomtatvanyNeve, frxParameterek, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), formatumId: model.FormatumId, osztalyId: osztalyId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus.Value, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio, egyediLablecKellOldalszam: egyediLablecKellOldalszam, IsAspose: IsAspose, asposeMetodus: asposeMetodus, asposeHelperOptions: asposeHelperOptions);
}
else
{
var stream = formazottExcelGenerator.ExcelNyomtatas(ds, osztalyId);
ExcelNyomtatas(stream, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), osztalyId: osztalyId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus.Value, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
else
{
if (model.FormatumId != NyomtatvanyFormatumEnum.Excel.AsInt())
{
AddNyomtatvanyMintZipEntry(ZipOutPut, ds, frxNyomtatvanyNeve, frxParameterek, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), formatumId: model.FormatumId, egyediLablecKellOldalszam: egyediLablecKellOldalszam, dokumentumTipus: dokumentumTipus, IsAspose: IsAspose, asposeMetodus: asposeMetodus, asposeHelperOptions: asposeHelperOptions);
}
else
{
var stream = formazottExcelGenerator.ExcelNyomtatas(ds, osztalyId);
AddExcelMintZipEntry(ZipOutPut, stream, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel));
}
}
}
else
{
if ((!string.IsNullOrWhiteSpace(emptyDocumentTable)) && (ds.Tables[emptyDocumentTable].Rows.Count == 0))
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus.Value, ds, !tanuloId.IsEntityId() ? ((isCsoport) ? DokumentumElemiSzintEnum.Csoport : DokumentumElemiSzintEnum.Osztaly) : DokumentumElemiSzintEnum.Tanulo);
atLeastOneData = true;
}
ActionResult nyomtatvany;
if (model.FormatumId != NyomtatvanyFormatumEnum.Excel.AsInt())
{
nyomtatvany = Nyomtatas(ds, frxNyomtatvanyNeve, frxParameterek, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), formatumId: model.FormatumId, osztalyId: osztalyId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio, egyediLablecKellOldalszam: egyediLablecKellOldalszam, IsAspose: IsAspose, asposeMetodus: asposeMetodus, asposeHelperOptions: asposeHelperOptions);
}
else
{
var stream = formazottExcelGenerator.ExcelNyomtatas(ds, osztalyId);
nyomtatvany = ExcelNyomtatas(stream, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), osztalyId: osztalyId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
if (!model.Iktatas)
{
return nyomtatvany;
}
}
}
}
}
ZipOutPut.Finish();
OutPut.Position = 0;
if (!model.Iktatas)
{
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
if ((!string.IsNullOrWhiteSpace(emptyDocumentTable)) && !mergedDs.IsEmpty() && (mergedDs.Tables[emptyDocumentTable].Rows.Count == 0))
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
var postFix = "";
if (model.TanuloIdList == null)
{
nevmodel.TanuloID = null;
if (osztalyCsoportLista.Count > 1)
{
if (isCsoport)
{
nevmodel.CsoportId = null;
postFix = "_Csoportok";
}
else
{
nevmodel.OsztalyID = null;
postFix = "_Osztalyok";
}
}
}
else
{
nevmodel.TanuloID = null;
nevmodel.CsoportId = null;
nevmodel.OsztalyID = null;
postFix = "_Tanulok";
}
if (model.FormatumId != NyomtatvanyFormatumEnum.Excel.AsInt())
{
return Nyomtatas(mergedDs, frxNyomtatvanyNeve, frxParameterek, CommonExtensions.NevGeneralas(nyomtatvanyNeve + postFix, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve + postFix, nevmodel, true), formatumId: model.FormatumId, osztalyId: 0, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio, egyediLablecKellOldalszam: egyediLablecKellOldalszam, IsAspose: IsAspose, asposeMetodus: asposeMetodus, asposeHelperOptions: asposeHelperOptions);
}
else
{
var stream = formazottExcelGenerator.ExcelNyomtatas();
return ExcelNyomtatas(stream, CommonExtensions.NevGeneralas(nyomtatvanyNeve + postFix, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve + postFix, nevmodel, true), osztalyId: 0, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
else
{
if (!atLeastOneData)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
var postFix = "";
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
if (osztalyCsoportLista.Count > 1)
{
postFix = (isOsztalySzintuGeneralas) ? ((isCsoport) ? "_Csoportok" : "_Osztalyok") : "_Tanulok";
}
else
{
zipnevmodel.OsztalyCsoportId = osztalyCsoportLista[0];
}
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas(nyomtatvanyNeve + postFix, zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
}
if ((needMergedData && (mergedDs.Tables.Count == 0))
|| (!needMergedData && !atLeastOneData))
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
if (mergedDs.Tables.Count > 0)
{
if ((!string.IsNullOrWhiteSpace(emptyDocumentTable)) && (mergedDs.Tables[emptyDocumentTable].Rows.Count == 0))
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
var postFix = "";
if (model.TanuloIdList == null)
{
nevmodel.TanuloID = null;
if (isCsoport)
{
nevmodel.CsoportId = null;
postFix = "_Csoportok";
}
else
{
nevmodel.OsztalyID = null;
postFix = "_Osztalyok";
}
}
else
{
nevmodel.TanuloID = null;
nevmodel.CsoportId = null;
nevmodel.OsztalyID = null;
postFix = "_Tanulok";
}
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus.Value, mergedDs, DokumentumElemiSzintEnum.Intezmeny);
if (model.FormatumId != NyomtatvanyFormatumEnum.Excel.AsInt())
{
Nyomtatas(mergedDs, frxNyomtatvanyNeve, frxParameterek, CommonExtensions.NevGeneralas(nyomtatvanyNeve + postFix, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve + postFix, nevmodel, true), formatumId: model.FormatumId, osztalyId: 0, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio, egyediLablecKellOldalszam: egyediLablecKellOldalszam, IsAspose: IsAspose, asposeMetodus: asposeMetodus, asposeHelperOptions: asposeHelperOptions);
}
else
{
var stream = formazottExcelGenerator.ExcelNyomtatas();
return ExcelNyomtatas(stream, CommonExtensions.NevGeneralas(nyomtatvanyNeve + postFix, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve + postFix, nevmodel, true), osztalyId: 0, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus.Value, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
private ActionResult AltalanosPedagogusGeneralas(NyomtatvanyModel model, string frxNyomtatvanyNeve, DokumentumKategoriaEnum dokumentumKategoria, Enums.DokumentumTipusEnum? dokumentumTipus, System.Reflection.MethodInfo metodus, int pedagogusIdParameterOrder, IDictionary<string, object> dataSetParameterek, Dictionary<string, object> frxParameterek, string nyomtatvanyNeve = null, string excludedTables = null, string distinctTables = null, string emptyDocumentTable = null, bool egyediLablecKellOldalszam = true, Bitmap qrCode = null)
{
if (string.IsNullOrWhiteSpace(nyomtatvanyNeve))
{
nyomtatvanyNeve = frxNyomtatvanyNeve;
}
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
var buffer = new byte[Constants.General.BufferSize];
ActionResult egyediPedagogusResult = new FileStreamResult(OutPut, Constants.ImportExport.ContentType);
DataSet mergedDs = new DataSet();
var pedagogusIdList = GetPedagogusIdListByFelhasznaloId(model.PedagogusIdList);
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
foreach (var pedagogusId in pedagogusIdList)
{
var pis = metodus.GetParameters();
var parObjs = new object[pis.Length];
for (int i = 0; i < pis.Length; i++)
{
if (i == pedagogusIdParameterOrder)
{
parObjs[i] = pedagogusId;
}
else
{
parObjs[i] = (dataSetParameterek.Keys.Contains(pis[i].Name)) ? dataSetParameterek[pis[i].Name] : Type.Missing;
}
}
var ds = metodus.Invoke(new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()), parObjs) as DataSet;
if (ds.Tables.Count == 0 && pedagogusIdList.Count == 1)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
if (ds.Tables.Count == 0)
{
continue;
}
foreach (var par in metodus.GetParameters().Where(p => p.IsOut).ToList())
{
frxParameterek[par.Name] = parObjs[par.Position];
}
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanarID = pedagogusId, TanevID = ClaimData.SelectedTanevID.Value };
if (pedagogusIdList.Count > 1)
{
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
TobbNyomtatvanyEgyDataSetbe(ref mergedDs, ds, excludedTables, distinctTables);
}
else
{
if ((!string.IsNullOrWhiteSpace(emptyDocumentTable)) && (ds.Tables[emptyDocumentTable].Rows.Count == 0))
{
continue;
}
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus.Value, ds, DokumentumElemiSzintEnum.Tanulo);
egyediPedagogusResult = Nyomtatas(ds, frxNyomtatvanyNeve, frxParameterek, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), formatumId: model.FormatumId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus.Value, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio, egyediLablecKellOldalszam: egyediLablecKellOldalszam);
}
else
{
AddNyomtatvanyMintZipEntry(ZipOutPut, ds, frxNyomtatvanyNeve, frxParameterek, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), formatumId: model.FormatumId, egyediLablecKellOldalszam: egyediLablecKellOldalszam, dokumentumTipus: dokumentumTipus);
}
}
}
else
{
if ((!string.IsNullOrWhiteSpace(emptyDocumentTable)) && (ds.Tables[emptyDocumentTable].Rows.Count == 0))
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus.Value, ds, DokumentumElemiSzintEnum.Tanulo);
}
return Nyomtatas(ds, frxNyomtatvanyNeve, frxParameterek, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), formatumId: model.FormatumId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio, egyediLablecKellOldalszam: egyediLablecKellOldalszam, qrCode: qrCode);
}
}
ZipOutPut.Finish();
OutPut.Position = 0;
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
if ((!string.IsNullOrWhiteSpace(emptyDocumentTable)) && (mergedDs.Tables[emptyDocumentTable].Rows.Count == 0))
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus.Value, mergedDs, DokumentumElemiSzintEnum.Intezmeny);
}
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return Nyomtatas(mergedDs, frxNyomtatvanyNeve, frxParameterek, CommonExtensions.NevGeneralas(nyomtatvanyNeve + "_Tanarok", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve + "_Tanarok", nevmodel, true), formatumId: model.FormatumId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio, egyediLablecKellOldalszam: egyediLablecKellOldalszam);
}
else
{
if (model.Iktatas)
{
return egyediPedagogusResult;
}
else
{
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas(nyomtatvanyNeve, zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
}
}
private ActionResult AltalanosOsztalyFormazottXlsGeneralas(NyomtatvanyModel model, BaseNyomtatvanyExcel formazottExcelGenerator, DokumentumKategoriaEnum dokumentumKategoria, Enums.DokumentumTipusEnum? dokumentumTipus, IDictionary<string, object> dataSetParameterek, string osztalyIdParameterName, string nyomtatvanyNeve, string excludedTables = null, string distinctTables = null)
{
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : (OktNevelesiKategoriaEnum?)null;
var osztalyIdList = GetOsztalyIdList(model.OsztalyIdList, oktNevKategoria);
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
MemoryStream excelContent;
DataSet mergedDs = new DataSet();
for (int i = 0; i < osztalyIdList.Count; i++)
{
var osztalyId = osztalyIdList[i];
var parameters = dataSetParameterek.ToDictionary(k => k.Key, k => (k.Value ?? "").ToString());
parameters.Add(osztalyIdParameterName, osztalyId.ToString());
if (osztalyIdList.Count > 1)
{
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
formazottExcelGenerator.CreateSheet(parameters, i + 1);
if (model.Iktatas)
{
var ds = formazottExcelGenerator.GetSheetDataSet();
TobbNyomtatvanyEgyDataSetbe(ref mergedDs, ds, excludedTables, distinctTables);
}
}
else
{
nevmodel.OsztalyID = osztalyId;
excelContent = formazottExcelGenerator.ExcelNyomtatas(parameters);
if (!model.Iktatas)
{
AddExcelMintZipEntry(ZipOutPut, excelContent, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel));
}
else
{
var ds = formazottExcelGenerator.GetSheetDataSet();
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus.Value, ds, Enums.DokumentumElemiSzintEnum.Osztaly);
ExcelNyomtatas(excelContent, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), osztalyId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
}
else
{
nevmodel.OsztalyID = osztalyId;
excelContent = formazottExcelGenerator.ExcelNyomtatas(parameters);
var ds = formazottExcelGenerator.GetSheetDataSet();
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus.Value, ds, Enums.DokumentumElemiSzintEnum.Osztaly);
}
var ret = ExcelNyomtatas(excelContent, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), osztalyId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
formazottExcelGenerator.Dispose();
return ret;
}
}
if (model.Iktatas)
{
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
excelContent = formazottExcelGenerator.ExcelNyomtatas();
formazottExcelGenerator.Dispose();
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus.Value, mergedDs, Enums.DokumentumElemiSzintEnum.Intezmeny);
ExcelNyomtatas(excelContent, CommonExtensions.NevGeneralas("Tobb" + nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("Tobb" + nyomtatvanyNeve, nevmodel, true), 0, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
excelContent = formazottExcelGenerator.ExcelNyomtatas();
formazottExcelGenerator.Dispose();
return ExcelNyomtatas(excelContent, CommonExtensions.NevGeneralas("Tobb" + nyomtatvanyNeve, nevmodel), false, CommonExtensions.NevGeneralas("Tobb" + nyomtatvanyNeve, nevmodel, true), 0, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
else
{
ZipOutPut.Finish();
OutPut.Position = 0;
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas(nyomtatvanyNeve, zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
}
private List<int> CheckTanuloHasGondviselo(List<int> tanuloIds)
{
if (tanuloIds == null || tanuloIds.Count == 0)
{
return tanuloIds;
}
var validTanuloIdList = new List<int>();
var invalidTanuloIdList = new List<int>();
var tanulohelper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var tanuloId in tanuloIds)
{
if (!tanulohelper.ExistsGondviselo(tanuloId))
{
invalidTanuloIdList.Add(tanuloId);
}
else
{
validTanuloIdList.Add(tanuloId);
}
}
//NOTE: Ha többet generálnak és van köztük olyan akinek van gondviselője, akkor invalidok kihagyása
if (validTanuloIdList.Any())
{
tanuloIds = validTanuloIdList;
}
return tanuloIds;
}
private List<int> CheckTanuloGondviseloIsTorvenyes(List<int> tanuloIds)
{
if (tanuloIds == null)
{
return tanuloIds;
}
var resultTanuloIds = tanuloIds.ToList();
if (tanuloIds.Count == 1
&& !CheckTanuloGondviseloIsTorvenyes(tanuloIds.First()))
{
resultTanuloIds.Remove(tanuloIds.First());
return resultTanuloIds;
}
foreach (var tanuloId in tanuloIds)
{
if (!CheckTanuloGondviseloIsTorvenyes(tanuloId))
{
resultTanuloIds.Remove(tanuloId);
}
}
return resultTanuloIds;
}
private bool CheckTanuloGondviseloIsTorvenyes(int tanuloId)
{
var gondviseloHelper = new GondviseloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
return gondviseloHelper.HasTanuloTorvenyesGondviselo(tanuloId);
}
private List<int> CheckTanuloIsTankotelezettAllapot(List<int> tanuloIds, bool tankotelezettseg)
{
if (tanuloIds == null)
{
return tanuloIds;
}
var resultTanuloIds = tanuloIds.ToList();
var tanulohelper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var tanuloId in tanuloIds)
{
if (tanulohelper.IsTankotelezettsegetTeljesito(tanuloId) != tankotelezettseg)
{
resultTanuloIds.Remove(tanuloId);
}
}
return resultTanuloIds;
}
}
}

View file

@ -0,0 +1,144 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes.AsposeHelpers;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.HelperClasses.ApaczaiProgramCOs;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
public ActionResult Apaczai16AlattiESZABelepo2022_23(NyomtatvanyModel model)
{
try
{
return StaticDocumentNyomtatas(Constants.ApaczaiDokumentumTipusok.Apaczai16AlattiESZABelepo2022_23, "Apaczai_16_alatti_ESZA_belepo_2022_23", NyomtatvanyFormatumEnum.PDF);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult Apaczai16AlattiESZAKilepo2022_23(NyomtatvanyModel model)
{
try
{
return StaticDocumentNyomtatas(Constants.ApaczaiDokumentumTipusok.Apaczai16AlattiESZAKilepo2022_23, "Apaczai_16_alatti_ESZA_kilepo_2022_23", NyomtatvanyFormatumEnum.PDF);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult Apaczai16FelettiESZABelepo2022_23(NyomtatvanyModel model)
{
try
{
return StaticDocumentNyomtatas(Constants.ApaczaiDokumentumTipusok.Apaczai16FelettiESZABelepo2022_23, "Apaczai_16_feletti_ESZA_belepo_2022_23", NyomtatvanyFormatumEnum.PDF);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult Apaczai16FelettiESZAKilepo2022_23(NyomtatvanyModel model)
{
try
{
return StaticDocumentNyomtatas(Constants.ApaczaiDokumentumTipusok.Apaczai16FelettiESZAKilepo2022_23, "Apaczai_16_feletti_ESZA_kilepo_2022_23", NyomtatvanyFormatumEnum.PDF);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult ApaczaiHozzajarulasiNyilatkozat2022_23(NyomtatvanyModel model)
{
try
{
return StaticDocumentNyomtatas(Constants.ApaczaiDokumentumTipusok.ApaczaiHozzajarulasiNyilatkozat2022_23, "Hozzajarulo_nyilatkozat 2022_23", NyomtatvanyFormatumEnum.PDF);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult ApaczaiMentoriTamogatoNyilatkozat2022_23(NyomtatvanyModel model)
{
try
{
if (model.TanuloId.IsEntityId())
{
var tanulohelper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanulo = tanulohelper.GetTanuloMentorAdatok(model.TanuloId);
if (tanulo.MentorId.IsEntityId())
{
var asposeHelper = new AsposeHelper();
var asposeMethod = asposeHelper.GetType().GetMethod(nameof(asposeHelper.GetMentorTamogatoiNyilatkozat));
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var frxNyomtatvanyNeve = "Mentori_tamogato_nyilatkozat_2022_23.docx";
var asposeHelperOptions = new AsposeHelperOptions(ClaimData.SelectedTanevID.Value)
{
DocumentParameters = new AsposeDocumentParameters()
{
Kelt = model.KeltDatum,
KeltFormatum = (KeltFormatumTipusEnum)model.KeltFormatumId,
}
};
if (model.AlulirottMegnevezesId.IsEntityId())
{
var alulirott = new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true, nyomtatvanyNyelvEnum: 0, isNemzetisegiDokumentum: false).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text;
var index = alulirott.LastIndexOf(" - ");
var nev = alulirott.Substring(0, index).ReplaceMultipleSpacesAndTrim();
var beosztas = alulirott.Substring(index + " - ".Length).ReplaceMultipleSpacesAndTrim();
asposeHelperOptions.DocumentParameters.AlairoSzemely = new Dictionary<string, string>()
{
{"Nev", nev },
{"Beosztas", beosztas },
};
}
var intezmenyCo = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAktivIntezmenyNevCim();
asposeHelperOptions.DocumentParameters.TagintezmenyNeve = intezmenyCo.Nev;
asposeHelperOptions.DocumentParameters.TagintezmenyCime = intezmenyCo.IntezmenyCim;
asposeHelperOptions.DocumentParameters.TagintezmenyVaros = intezmenyCo.Varos;
asposeHelperOptions.DocumentParameters.TagintezmenyAzonosito = intezmenyCo.OMKod;
asposeHelperOptions.DocumentParameters.Entity = tanulo;
return Nyomtatas(null, frxNyomtatvanyNeve, null, "Mentori_tamogato_nyilatkozat_2022_23", model.Iktatas, formatumId: model.FormatumId, osztalyId: null, dokumentumKategoria: null, dokumentumTipus: null, kulcsSzavak: null, foszamDefinicio: null, egyediLablecKellOldalszam: false, IsAspose: true, asposeMetodus: asposeMethod, asposeHelperOptions: asposeHelperOptions);
}
else
{
throw new Exception(NyomtatvanyokResource.TanulohozNincsMentorHozzarendelve);
}
}
throw new Exception(NyomtatvanyokResource.NemTartalmazRelevansAdatokat);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
}
}

View file

@ -0,0 +1,106 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Web.Mvc;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
public MemoryStream NebuloEgyedi(int nebuloId, int statusz)
{
try
{
DataSet ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNebuloErtesito(nebuloId);
DataRow dr = ds.Tables[0].Rows[0];
string frxNeve = statusz == FelvetelStatuszaTipusEnum.Felveve.AsInt() ? nameof(NyomtatvanyEnum.NebuloErtesitoFelveve) : nameof(NyomtatvanyEnum.NebuloErtesitoNemFelveve);
string dokumentumNeve = $"{dr["NebuloNeve"].ToString().Trim().Replace(" ", "_")}_{dr["SzulIdo"].ToString().Trim().Replace(".", "")}";
var filePath = System.Web.HttpContext.Current.Server.MapPath($"{ApplicationData.NyomtatasiSablonokKonyvtar}/{frxNeve}.frx");
var result = GetPdfMemoryStreamByPath(ds, filePath, pdfNeve: dokumentumNeve);
return result;
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult NebuloFelvettZip(NyomtatvanyModel model)
{
return GetNebuloInZip(model, FelvetelStatuszaTipusEnum.Felveve.AsInt());
}
public ActionResult NebuloElutasitottZip(NyomtatvanyModel model)
{
return GetNebuloInZip(model, FelvetelStatuszaTipusEnum.NemFelveve.AsInt());
}
public MemoryStream NebuloSablon(NyomtatvanyModel model)
{
try
{
DataSet ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetDokumentumFejlecLablecSablon();
return GetMemoryStreamByName(ds, nameof(NyomtatvanyEnum.NebuloSablon), nyomtatvanyNeve: nameof(NyomtatvanyEnum.NebuloSablon));
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public FileStreamResult GetNebuloInZip(NyomtatvanyModel model, int statusz)
{
var OutPut = new MemoryStream();
ZipOutputStream ZipOutPut = new ZipOutputStream(OutPut);
try
{
List<DataSet> dsList = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNebuloErtesitoZip(statusz);
byte[] buffer = new byte[Constants.General.BufferSize];
string ertesitoTipus = statusz == FelvetelStatuszaTipusEnum.Felveve.AsInt() ? nameof(NyomtatvanyEnum.NebuloErtesitoFelveve) : nameof(NyomtatvanyEnum.NebuloErtesitoNemFelveve);
foreach (DataSet item in dsList)
{
DataRow dr = item.Tables[0].Rows[0];
string dokumentumNeve = $"{dr["NebuloNeve"].ToString().Trim().Replace(" ", "_")}_{dr["SzulIdo"].ToString().Trim().Replace(".", "")}";
var stream = GetMemoryStreamByName(item, ertesitoTipus, nyomtatvanyNeve: dokumentumNeve);
var fajlneve = $"{dokumentumNeve}.{Constants.ImportExport.FileFormatPdf}";
AddZipEntry(ZipOutPut, stream, fajlneve);
}
ZipOutPut.Finish();
OutPut.Position = 0;
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = ertesitoTipus + ".zip"
};
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
}
}

View file

@ -0,0 +1,760 @@
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;
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,988 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Classes.AsposeHelpers;
using Kreta.BusinessLogic.Helpers;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private ActionResult TanuloiErtesito(NyomtatvanyModel model, NyomtatvanyEnum ertesitoTipusEnum, Enums.DokumentumTipusEnum dokumentumTipus)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
var (ErtekelesTipus, ErtesitoSablonTipus, IsSzovegesErtesito) = GetErtesitoDetails(ertesitoTipusEnum, model.ElmeletGyakorlat);
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTanuloErtesito));
var dsParameterek = new Dictionary<string, object>
{
{"tanuloId", -1 },
{"ertekelesTipus", ErtekelesTipus},
{"iskolaErdekuSzamit", isIskolaerdekuSzamit},
{"elmeletGyakorlat", model.ElmeletGyakorlatKulon},
{"kozossegiSzolgalat", model.KozossegiSzolgalat},
{"isMagatartasSzorgalomNemLatszik", !model.MagatartasSzorgalomMegjelenitese }
};
var frxParameterek = new Dictionary<string, object>
{
{"Idoszak", ErtekelesTipus},
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"TagintezmenyCim", GetTagintezmenyCime(model)},
{"FontSizeDifference", model.BetuMeret.AsInt()},
{"NyomtatvanyErtekelesMegjelenitesId", model.NyomtatvanyErtekelesMegjelenitesId},
{"isMulasztasokUjLapon", model.MulasztasokUjLapon},
{"PHMegjelenitese", model.PHMegjelenitese }
};
return AltalanosTanuloiGeneralas(model, ErtesitoSablonTipus, DokumentumKategoriaEnum.ErtesitokTorzslapBizonyitvany, dokumentumTipus, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec,OsztalyAdatok,TanuloElerhetosegei,TanuloGondviselo", tablakFilterByTanuloId: "TanuloAlapAdatok,TanuloTantargyak,TanuloMulasztasai,TanuloTantargyiFelmentesei,TanuloGondviselo,TanuloElerhetosegei,TantestuletFeljegyzes", tanuloIdColumnName: "TanuloId", emptyDocumentTable: "TanuloAlapAdatok", egyediLablecKellOldalszam: false);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult TorzslapGeneralas(NyomtatvanyModel model, bool isSzoveges, int nyomtatvanyNyelvEnum, bool isReszletes, Enums.DokumentumTipusEnum dokumentumTipus, bool isMuveszetOktatas = false, bool isUjTorzslap = false, NyomtatvanyEnum? kretaLogoPozicio = null)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTorzslapAdatok));
if (kretaLogoPozicio == null)
{
if (isUjTorzslap)
{
kretaLogoPozicio = NyomtatvanyEnum.KretaLogoBalOldal;
}
else
{
kretaLogoPozicio = NyomtatvanyEnum.KretaLogoJobbOldal;
}
}
var dsParameterek = new Dictionary<string, object>
{
{ "iskolaErdekuSzamit", isIskolaerdekuSzamit},
{ "nyomtatvanyNyelvEnumId", nyomtatvanyNyelvEnum},
{ "isKozossegiSzolgalat", model.KozossegiSzolgalat},
{ "tanitasiHetekSzamaVegzos", model.TanitasiHetekSzamaVegzos},
{ "tanitasiHetekSzamaNemVegzos", model.TanitasiHetekSzamaNemVegzos},
{ "altantargyBeszamitasa", model.AltantargyBeszamitasa},
{ "isMuveszetOktatasi", isMuveszetOktatas},
{ "tanulokNevsorRendezesColumnIndex", model.TanulokNevsorRendezeseId},
{ "isEvesOraszamMegjelenjen", model.EvesOraszamMegjelenjen},
{ "nyomtatvanyErtekelesMegjelenitesId", model.NyomtatvanyErtekelesMegjelenitesId},
{ "nemzetisegiNyelvId", model.NemzetisegiNyelvId},
{ "isShowTanulmanyiAtlag", false },
{ "is20_21OrLaterTanev", ClaimData.IsSelectedTanev20_21OrLater },
{ "is21_22OrLaterTanev", ClaimData.IsSelectedTanev21_22OrLater },
{ nameof(model.OkjSzakmacsoport),model.OkjSzakmacsoport },
{ nameof(model.OkjAgazat),model.OkjAgazat },
{ nameof(model.OkjSzakkepesites),model.OkjSzakkepesites },
{ nameof(model.OkjReszszakkepesites),model.OkjReszszakkepesites },
{ nameof(model.UjSzktAgazat),model.UjSzktAgazat },
{ nameof(model.UjSzktSzakma),model.UjSzktSzakma },
{ nameof(model.UjSzktSzakmairany),model.UjSzktSzakmairany },
{ nameof(model.NktTanulmanyiTerulet),model.NktTanulmanyiTerulet },
{ nameof(model.NktSzakkepesites),model.NktSzakkepesites },
{ nameof(model.NktSzakirany),model.NktSzakirany },
{ nameof(isUjTorzslap), isUjTorzslap },
{ nameof(model.FejlecMegjelenites), model.FejlecMegjelenites },
{ nameof(model.JegyzekSzerepeltetese), model.JegyzekSzerepeltetese },
{ "isMagatartasSzorgalomNemLatszik", !model.MagatartasSzorgalomMegjelenitese }
};
var frxParameterek = new Dictionary<string, object>
{
{"OraEvesSorszamMegjelenjen", model.EvesOraszamMegjelenjen.ToString()},
{"FejlecMegjelenites", model.FejlecMegjelenites.ToString()},
{"AdatokMegjelenites", model.AdatMegjelenites.ToString()},
{"ElmeletGyakorlat", model.ElmeletGyakorlatKulon.ToString()},
{"GondviseloAdatok", model.GondviseloMegjelenites.ToString()},
{"DatumFormatuma", model.KeltFormatumId.ToString()},
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"KeltIdegenNyelv", model.KeltDatum.ToString(Core.Constants.ToStringPattern.OtherLanguageDate)},
{"TagintezmenyCim", GetTagintezmenyCime(model)},
{"OKJ", model.JegyzekSzerepeltetese.ToString()},
{"SNI", model.SNI.ToString()},
{"BTM", model.BTM.ToString()},
{nameof(isMuveszetOktatas), isMuveszetOktatas},
{nameof(model.isFeljegyzesekMegjelenitese), model.isFeljegyzesekMegjelenitese},
{nameof(model.isFelmentesekMegjelenitese), model.isFelmentesekMegjelenitese},
{nameof(model.KozossegiSzolgalat), model.KozossegiSzolgalat},
{"FontSizeDifference", model.BetuMeret.AsInt()},
{nameof(model.BetuMeretSzam), model.BetuMeretSzam },
{nameof(isUjTorzslap), isUjTorzslap },
{nameof(model.IsUjSzkt), model.IsUjSzkt },
{"isCsakTorzslapOldal", GetIsCsakTorzslapOldal(model)},
{"NyomtatvanyErtekelesMegjelenitesId", model.NyomtatvanyErtekelesMegjelenitesId},
{nameof(model.KotesMargoTipus), (int) model.KotesMargoTipus},
{"isMulasztasokUjLapon", model.MulasztasokUjLapon},
{nameof(model.SNIAdatokMegjeleniteseUresen), model.SNIAdatokMegjeleniteseUresen},
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true, nyomtatvanyNyelvEnum: nyomtatvanyNyelvEnum).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text},
{"is20_21OrLater", ClaimData.IsSelectedTanev20_21OrLater},
{"OkjFelriat", ClaimData.IsSelectedTanev20_21OrLater ? NyomtatvanyokResource.JegyzekFelirat : NyomtatvanyokResource.OKJFelirat},
{"IsZaradekDatumVisible", model.ZaradekKeltMegjelenites },
{nameof(kretaLogoPozicio), kretaLogoPozicio.ToString() }
};
return AltalanosTanuloiGeneralas(model, GetTorzslapSablon(isSzoveges, nyomtatvanyNyelvEnum, isReszletes), DokumentumKategoriaEnum.ErtesitokTorzslapBizonyitvany, dokumentumTipus, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec,Osztaly", isCsoport: isMuveszetOktatas, tablakFilterByTanuloId: "Tanulok,Hatarozat,Feljegyzesek,Mulasztasok,Ertekeles,TanuloLista,TanuloKozossegiSzolgalat,TanuloSNI,TanuloBTM,Felmentesek,FeljegyzesKozossegiSzolgalat,OsszefuggoSzakmaiGyakorlat", tanuloIdColumnName: "TanuloId");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private bool GetIsCsakTorzslapOldal(NyomtatvanyModel model)
{
//NOTE: Ha egy doksiba kell, akkor kell elő-, és utólap. (nem csak törzslap)
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
return false;
}
else
{
//NOTE: Tanulókra való szűrésnél csak törzslap.
if (model.TanuloIdList != null)
{
return true;
}
else
{
//NOTE: Ha egynél több osztály/csoport szerepel, akkor mindegyikhez kell elő-, és utólap.
var idList = model.OsztalyIdList ?? model.CsoportIdList;
return idList.Count <= 1;
}
}
}
private string GetTorzslapSablon(bool isSzoveges, int nyomtatvanyNyelvEnum, bool isReszletes)
{
string sablon;
switch (nyomtatvanyNyelvEnum)
{
case 1:
sablon = isSzoveges ? "Torzslap_szoveges_nemet" : (isReszletes ? "Torzslap_reszletes_nemet" : "Torzslap_nemet");
break;
case 2:
sablon = isSzoveges ? "Torzslap_szoveges_angol" : (isReszletes ? "Torzslap_reszletes_angol" : "Torzslap_angol");
break;
default:
sablon = isSzoveges ? "Torzslap_szoveges" : "Torzslap";
break;
}
return sablon;
}
private (int ErtekelesTipus, string ErtesitoSablonTipus, bool IsSzovegesErtesito) GetErtesitoDetails(NyomtatvanyEnum ertesitoTipusEnum, bool isElmeletGyakorlatKulon)
{
int ertekelesTipus;
string ertesitoSablonTipus;
bool isSzovegesErtesito = false;
switch (ertesitoTipusEnum)
{
case NyomtatvanyEnum.FeleviTanuloErtesito:
case NyomtatvanyEnum.FeleviErtesito:
case NyomtatvanyEnum.FeleviErtesitoEllenorzobe:
case NyomtatvanyEnum.FeleviErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.FeleviErtesitoSzoveges:
case NyomtatvanyEnum.FeleviErtesitoFuzet:
case NyomtatvanyEnum.FeleviErtesitoMuveszOktatasban:
case NyomtatvanyEnum.FeleviErtesitoFuzetKetoldalas:
ertekelesTipus = (int)ErtekelesTipusEnum.felevi_jegy_ertekeles;
break;
case NyomtatvanyEnum.EvvegiTanuloErtesito:
case NyomtatvanyEnum.EvvegiErtesito:
case NyomtatvanyEnum.EvvegiErtesitoEllenorzobe:
case NyomtatvanyEnum.EvvegiErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.EvvegiErtesitoSzoveges:
case NyomtatvanyEnum.EvvegiErtesitoFuzet:
case NyomtatvanyEnum.EvvegiErtesitoFuzetNyomtatvany:
case NyomtatvanyEnum.EvVegiErtesitoMuveszOktatasban:
ertekelesTipus = (int)ErtekelesTipusEnum.evvegi_jegy_ertekeles;
break;
case NyomtatvanyEnum.NegyedeviTanuloErtesito:
case NyomtatvanyEnum.NegyedeviErtesito:
case NyomtatvanyEnum.NegyedeviErtesitoEllenorzobe:
case NyomtatvanyEnum.NegyedeviErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.NegyedeviErtesitoSzoveges:
case NyomtatvanyEnum.NegyedeviErtesitoFuzet:
case NyomtatvanyEnum.NegyedeviErtesitoMuveszOktatasban:
ertekelesTipus = (int)ErtekelesTipusEnum.I_ne_jegy_ertekeles;
break;
case NyomtatvanyEnum.MasodikNegyedeviTanuloErtesito:
case NyomtatvanyEnum.MasodikNegyedeviErtesito:
case NyomtatvanyEnum.MasodikNegyedeviErtesitoEllenorzobe:
case NyomtatvanyEnum.MasodikNegyedeviErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.MasodikNegyedeviErtesitoSzoveges:
case NyomtatvanyEnum.MasodikNegyedeviErtesitoFuzet:
case NyomtatvanyEnum.MasodikNegyedeviErtesitoMuveszOktatasban:
ertekelesTipus = (int)ErtekelesTipusEnum.II_ne_jegy_ertekeles;
break;
case NyomtatvanyEnum.HarmadikNegyedeviTanuloErtesito:
case NyomtatvanyEnum.HarmadikNegyedeviErtesito:
case NyomtatvanyEnum.HarmadikNegyedeviEllenorzobe:
case NyomtatvanyEnum.HarmadikNegyedeviErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.HarmadikNegyedeviErtesitoSzoveges:
case NyomtatvanyEnum.HarmadikNegyedeviErtesitoFuzet:
case NyomtatvanyEnum.HarmadikNegyedeviErtesitoMuveszOktatasban:
ertekelesTipus = (int)ErtekelesTipusEnum.III_ne_jegy_ertekeles;
break;
case NyomtatvanyEnum.NegyedikNegyedeviTanuloErtesito:
case NyomtatvanyEnum.NegyedikNegyedeviErtesito:
case NyomtatvanyEnum.NegyedikNegyedeviEllenorzobe:
case NyomtatvanyEnum.NegyedikNegyedeviErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.NegyedikNegyedeviErtesitoFuzet:
case NyomtatvanyEnum.NegyedikNegyedeviErtesitoSzoveges:
case NyomtatvanyEnum.NegyedikNegyedeviErtesitoMuveszOktatasban:
ertekelesTipus = (int)ErtekelesTipusEnum.IV_ne_jegy_ertekeles;
break;
default:
ertekelesTipus = -1;
break;
}
switch (ertesitoTipusEnum)
{
case NyomtatvanyEnum.FeleviTanuloErtesito:
case NyomtatvanyEnum.EvvegiTanuloErtesito:
case NyomtatvanyEnum.NegyedeviTanuloErtesito:
case NyomtatvanyEnum.MasodikNegyedeviTanuloErtesito:
case NyomtatvanyEnum.HarmadikNegyedeviTanuloErtesito:
case NyomtatvanyEnum.NegyedikNegyedeviTanuloErtesito:
ertesitoSablonTipus = "TanuloErtesito";
break;
case NyomtatvanyEnum.FeleviErtesito:
case NyomtatvanyEnum.EvvegiErtesito:
case NyomtatvanyEnum.NegyedeviErtesito:
case NyomtatvanyEnum.MasodikNegyedeviErtesito:
case NyomtatvanyEnum.HarmadikNegyedeviErtesito:
case NyomtatvanyEnum.NegyedikNegyedeviErtesito:
case NyomtatvanyEnum.FeleviErtesitoMuveszOktatasban:
case NyomtatvanyEnum.NegyedeviErtesitoMuveszOktatasban:
case NyomtatvanyEnum.MasodikNegyedeviErtesitoMuveszOktatasban:
case NyomtatvanyEnum.HarmadikNegyedeviErtesitoMuveszOktatasban:
case NyomtatvanyEnum.NegyedikNegyedeviErtesitoMuveszOktatasban:
case NyomtatvanyEnum.EvVegiErtesitoMuveszOktatasban:
ertesitoSablonTipus = isElmeletGyakorlatKulon ? "ertekelesReszletes" : "ertekeles";
break;
case NyomtatvanyEnum.FeleviErtesitoEllenorzobe:
case NyomtatvanyEnum.EvvegiErtesitoEllenorzobe:
case NyomtatvanyEnum.NegyedeviErtesitoEllenorzobe:
case NyomtatvanyEnum.MasodikNegyedeviErtesitoEllenorzobe:
case NyomtatvanyEnum.HarmadikNegyedeviEllenorzobe:
case NyomtatvanyEnum.NegyedikNegyedeviEllenorzobe:
ertesitoSablonTipus = isElmeletGyakorlatKulon ? "ertekelesEllenorzobeReszletes" : "ertekelesEllenorzobe";
break;
case NyomtatvanyEnum.FeleviErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.EvvegiErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.NegyedeviErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.MasodikNegyedeviErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.HarmadikNegyedeviErtesitoA5Ellenorzobe:
case NyomtatvanyEnum.NegyedikNegyedeviErtesitoA5Ellenorzobe:
ertesitoSablonTipus = isElmeletGyakorlatKulon ? "ertekelesA5EllenorzobeReszletes" : "ertekelesA5Ellenorzobe";
break;
case NyomtatvanyEnum.FeleviErtesitoSzoveges:
case NyomtatvanyEnum.EvvegiErtesitoSzoveges:
case NyomtatvanyEnum.NegyedeviErtesitoSzoveges:
case NyomtatvanyEnum.MasodikNegyedeviErtesitoSzoveges:
case NyomtatvanyEnum.HarmadikNegyedeviErtesitoSzoveges:
case NyomtatvanyEnum.NegyedikNegyedeviErtesitoSzoveges:
ertesitoSablonTipus = "ertekelesSzoveges";
isSzovegesErtesito = true;
break;
case NyomtatvanyEnum.FeleviErtesitoFuzet:
case NyomtatvanyEnum.EvvegiErtesitoFuzet:
case NyomtatvanyEnum.NegyedeviErtesitoFuzet:
case NyomtatvanyEnum.MasodikNegyedeviErtesitoFuzet:
case NyomtatvanyEnum.HarmadikNegyedeviErtesitoFuzet:
case NyomtatvanyEnum.NegyedikNegyedeviErtesitoFuzet:
ertesitoSablonTipus = "ertekelesFuzet";
isSzovegesErtesito = true;
break;
case NyomtatvanyEnum.FeleviErtesitoFuzetKetoldalas:
ertesitoSablonTipus = "ertekelesFuzetKetoldalas";
isSzovegesErtesito = true;
break;
case NyomtatvanyEnum.EvvegiErtesitoFuzetNyomtatvany:
ertesitoSablonTipus = "ertekelesFuzetNyomtatvany";
isSzovegesErtesito = true;
break;
default:
ertesitoSablonTipus = "ertekeles";
break;
}
return (ErtekelesTipus: ertekelesTipus, ErtesitoSablonTipus: ertesitoSablonTipus, IsSzovegesErtesito: isSzovegesErtesito);
}
private ActionResult Ertesito(NyomtatvanyModel model, NyomtatvanyEnum ertesitoTipusEnum, Enums.DokumentumTipusEnum? dokumentumTipus, bool isMuveszetOktatas = false, bool egyTanuloTobbNyomtatvanyaEgyben = false)
{
try
{
(int ErtekelesTipus, string ErtesitoSablonTipus, bool IsSzovegesErtesito) = GetErtesitoDetails(ertesitoTipusEnum, model.ElmeletGyakorlatKulon);
var nyomtatvanyNyelvEnum = (int)NyomtatvanyNyelvEnum.Magyar;
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetErtesito));
var dsParameterek = new Dictionary<string, object>
{
{"ertekelesTipus", ErtekelesTipus},
{"iskolaErdekuSzamit", isIskolaerdekuSzamit},
{"tanitasiHetekSzamaVegzos", model.TanitasiHetekSzamaVegzos},
{"tanitasiHetekSzamaNemVegzos", model.TanitasiHetekSzamaNemVegzos},
{"altantargyBeszamitasa", model.AltantargyBeszamitasa},
{"nyomtatvanyNyelvEnumId", nyomtatvanyNyelvEnum},
{"isEvesOraszamMegjelenjen", model.EvesOraszamMegjelenjen},
{"NyomtatvanyErtekelesMegjelenitesId", model.NyomtatvanyErtekelesMegjelenitesId},
{"elmeletGyakorlat", model.ElmeletGyakorlatKulon},
{"kozossegiSzolgalat", model.KozossegiSzolgalat},
{"isShowTanuloiAtlag", model.AtlagFeltuntetes},
{"isMuveszetOktatasi", isMuveszetOktatas},
{"negyedevreSzamoltMulasztasok", model.NegyedevreSzamoltMulasztasok},
{"kiiratkozottTanulokMegjelenitese", model.KiiratkozottTanulokMegjelenitese},
{"isSzovegesErtesito", IsSzovegesErtesito },
{"isMagatartasSzorgalomNemLatszik", !model.MagatartasSzorgalomMegjelenitese }
};
var frxParameterek = new Dictionary<string, object>
{
{"Idoszak", ErtekelesTipus},
{nameof(isMuveszetOktatas), isMuveszetOktatas},
{"ErtesitesCimzettje", model.CimzettId},
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"AtlagFeltuntet", model.AtlagFeltuntetes},
{"TantestuletFeljegyzesei", model.TanuloZaradekai},
{"FelmentesekSzerepeltetese", model.isErtesitokFelmentesekMegjelenitese},
{"TagintezmenyCim", GetTagintezmenyCime(model)},
{"FontSizeDifference", model.BetuMeret.AsInt()},
{"NyomtatvanyErtekelesMegjelenitesId", model.NyomtatvanyErtekelesMegjelenitesId},
{"OraEvesSorszamMegjelenjen", model.EvesOraszamMegjelenjen},
{"isMulasztasokUjLapon", model.MulasztasokUjLapon},
{"PHMegjelenitese", model.PHMegjelenitese },
{"IsZaradekDatumVisible", model.ZaradekKeltMegjelenites }
};
return AltalanosTanuloiGeneralas(model, ErtesitoSablonTipus, DokumentumKategoriaEnum.ErtesitokTorzslapBizonyitvany, dokumentumTipus, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec,OsztalyAdatok", isCsoport: isMuveszetOktatas, tablakFilterByTanuloId: "Tanulok,Ertekeles,Mulasztasok,Mentessegek,TanuloGondviselo,TanuloElerhetosegei,OsszefuggoSzakmaiGyakorlat,FeljegyzesekHatarozatok,Zaradekok" + ((model.AtlagFeltuntetes) ? ",TanuloErtekelesAtlag" : ""), tanuloIdColumnName: "TanuloId", emptyDocumentTable: "Tanulok", egyediLablecKellOldalszam: false, egyTanuloTobbNyomtatvanyaEgyben: egyTanuloTobbNyomtatvanyaEgyben);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private string GetBizonyitvanySablon(bool isSzoveges, int nyomtatvanyNyelvEnum, bool isKetoldalas)
{
string sablon;
switch (nyomtatvanyNyelvEnum)
{
case (int)NyomtatvanyNyelvEnum.Nemet:
sablon = isSzoveges ? "BizonyitvanyPotlapElsoEvfolyam_nemet" : "BizonyitvanyPotlapTobbiEvfolyam_nemet";
break;
case (int)NyomtatvanyNyelvEnum.Angol:
sablon = isSzoveges ? "BizonyitvanyPotlapElsoEvfolyam_angol" : "BizonyitvanyPotlapTobbiEvfolyam_angol";
break;
default:
sablon = isSzoveges ? isKetoldalas ? "BizonyitvanyPotlapElsoEvfolyamKetoldalas" : "BizonyitvanyPotlapElsoEvfolyam" : "BizonyitvanyPotlapTobbiEvfolyam";
break;
}
return sablon;
}
private ActionResult BizonyitvanyPotlap(NyomtatvanyModel model, bool isSzoveges, int nyomtatvanyNyelvEnum, Enums.DokumentumTipusEnum dokumentumTipus, bool isKetoldalas = false, bool egyTanuloTobbNyomtatvanyaEgyben = false)
{
try
{
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetErtesito));
Dictionary<string, object> dsParameterek = new Dictionary<string, object>
{
{"ertekelesTipus", (int) ErtekelesTipusEnum.evvegi_jegy_ertekeles},
{"iskolaErdekuSzamit", isIskolaerdekuSzamit},
{"tanitasiHetekSzamaVegzos", model.TanitasiHetekSzamaVegzos},
{"tanitasiHetekSzamaNemVegzos", model.TanitasiHetekSzamaNemVegzos},
{"altantargyBeszamitasa", model.AltantargyBeszamitasa},
{"nyomtatvanyNyelvEnumId", nyomtatvanyNyelvEnum},
{"isShowTanuloiAtlag", model.AtlagFeltuntetes},
{"isBizonyitvany", true},
{"kiiratkozottTanulokMegjelenitese", model.KiiratkozottTanulokMegjelenitese},
{"isEvesOraszamMegjelenjen", model.EvesOraszamMegjelenjen},
{"negyedevreSzamoltMulasztasok", true},
{"NyomtatvanyErtekelesMegjelenitesId", model.NyomtatvanyErtekelesMegjelenitesId},
{"isMagatartasSzorgalomNemLatszik", !model.MagatartasSzorgalomMegjelenitese }
};
Dictionary<string, object> frxParameterek = new Dictionary<string, object>
{
{"OraEvesSorszamMegjelenjen", model.EvesOraszamMegjelenjen.ToString()},
{"AtlagFeltuntet", model.AtlagFeltuntetes},
{"TagintezmenyCim", GetTagintezmenyCime(model)},
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"KeltIdegenNyelv", model.KeltDatum.ToString(Core.Constants.ToStringPattern.OtherLanguageDate)},
{"NyomtatvanyErtekelesMegjelenitesId", model.NyomtatvanyErtekelesMegjelenitesId},
{"isMulasztasokUjLapon", model.MulasztasokUjLapon},
{"FontSizeDifference", model.BetuMeret.AsInt()},
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true, nyomtatvanyNyelvEnum: nyomtatvanyNyelvEnum).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text},
};
return AltalanosTanuloiGeneralas(model, GetBizonyitvanySablon(isSzoveges, nyomtatvanyNyelvEnum, isKetoldalas), DokumentumKategoriaEnum.ErtesitokTorzslapBizonyitvany, dokumentumTipus, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec", tablakFilterByTanuloId: "Tanulok,Ertekeles,Mulasztasok,Mentessegek,TanuloGondviselo,TanuloElerhetosegei,OsszefuggoSzakmaiGyakorlat,FeljegyzesekHatarozatok,Zaradekok" + ((model.AtlagFeltuntetes) ? ",TanuloErtekelesAtlag" : ""), tanuloIdColumnName: "TanuloId", emptyDocumentTable: "Tanulok", egyediLablecKellOldalszam: false, egyTanuloTobbNyomtatvanyaEgyben: egyTanuloTobbNyomtatvanyaEgyben);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#region Félévi értesítők
[HttpPost]
public ActionResult FeleviErtesito([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.FeleviErtesito, Enums.DokumentumTipusEnum.FeleviErtesito);
}
[HttpPost]
public ActionResult FeleviErtesitoEllenorzobe([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.FeleviErtesitoEllenorzobe, Enums.DokumentumTipusEnum.FeleviErtesitoEellenorzobenElhelyezheto);
}
[HttpPost]
public ActionResult FeleviErtesitoEllenorzobeA5([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.FeleviErtesitoA5Ellenorzobe, Enums.DokumentumTipusEnum.FeleviErtesitoEellenorzobenElhelyezhetoA5Meretben);
}
[HttpPost]
public ActionResult FeleviSzovErtekeles([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.FeleviErtesitoSzoveges, Enums.DokumentumTipusEnum.FeleviSzovegesErtesito1tol4osztaly);
}
[HttpPost]
public ActionResult FeleviErtesitoFuzetbe([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.FeleviErtesitoFuzet, Enums.DokumentumTipusEnum.FeleviSzovegesErtesitoFuzet1tol4osztaly);
}
[HttpPost]
public ActionResult FeleviErtesitoFuzetbeKetoldalas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.FeleviErtesitoFuzetKetoldalas, Enums.DokumentumTipusEnum.FeleviSzovegesErtesitoFuzetKetoldalasNyomtatashoz);
}
[HttpPost]
public ActionResult FeleviErtesitoMuveszOktatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.FeleviErtesitoMuveszOktatasban, Enums.DokumentumTipusEnum.FeleviErtesitoMuveszoktatasban, true);
}
#endregion
#region Év végi értesítők
[HttpPost]
public ActionResult EvvegiErtesito([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.EvvegiErtesito, Enums.DokumentumTipusEnum.EvVegiErtesito);
}
[HttpPost]
public ActionResult EvvegiErtesitoEllenorzobe([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.EvvegiErtesitoEllenorzobe, Enums.DokumentumTipusEnum.EvVegiErtesitoEllenorzobenElhelyezheto);
}
[HttpPost]
public ActionResult EvvegiErtesitoEllenorzobeA5([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.EvvegiErtesitoA5Ellenorzobe, Enums.DokumentumTipusEnum.EvVegiErtesitoEllenorzobenElhelyezhetoA5Meretben);
}
[HttpPost]
public ActionResult EvvegiSzovErtekeles([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.EvvegiErtesitoSzoveges, Enums.DokumentumTipusEnum.EvVegiSzovegesErtesito1tol4osztaly);
}
[HttpPost]
public ActionResult EvvegiErtesitoFuzetbe([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.EvvegiErtesitoFuzet, Enums.DokumentumTipusEnum.EvVegiSzovegesErtesitoFuzet1tol4osztaly);
}
[HttpPost]
public ActionResult EvvegiErtesitoFuzetbeNyomtatvany([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.EvvegiErtesitoFuzetNyomtatvany, Enums.DokumentumTipusEnum.EvVegiSzovegesErtesitoFuzetNyomtatvanyra);
}
[HttpPost]
public ActionResult EvVegiErtesitoMuveszOktatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.EvVegiErtesitoMuveszOktatasban, Enums.DokumentumTipusEnum.EviErtesitoMuveszoktatasban, true);
}
#endregion
#region I. negyedéves értesítők
[HttpPost]
public ActionResult NegyedeviErtesitoNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedeviErtesito, Enums.DokumentumTipusEnum.INegyedeviErtesito_);
}
[HttpPost]
public ActionResult NegyedeviErtesitoEllenorzobeNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedeviErtesitoEllenorzobe, Enums.DokumentumTipusEnum.INegyedeviErtesitoEllenorzobenElhelyezheto);
}
[HttpPost]
public ActionResult NegyedeviErtesitoEllenorzobeA5Nyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedeviErtesitoA5Ellenorzobe, Enums.DokumentumTipusEnum.INegyedeviErtesitoEllenorzobenElhelyezhetoA5Meretben);
}
[HttpPost]
public ActionResult NegyedeviErtesitoSzovegesNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedeviErtesitoSzoveges, Enums.DokumentumTipusEnum.INegyedeviSzovegesErtesito1tol4osztaly);
}
[HttpPost]
public ActionResult NegyedeviErtesitoFuzetNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedeviErtesitoFuzet, Enums.DokumentumTipusEnum.INegyedevSzovegesiErtesitoFuzet1tol4osztaly);
}
[HttpPost]
public ActionResult NegyedEviErtesitoMuveszOktatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedeviErtesitoMuveszOktatasban, Enums.DokumentumTipusEnum.INegyedeviErtesitoMuveszoktatasban, true);
}
#endregion
#region II. negyedéves értesítők
[HttpPost]
public ActionResult MasodikNegyedeviErtesitoNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.MasodikNegyedeviErtesito, Enums.DokumentumTipusEnum.IINegyedeviErtesito_);
}
[HttpPost]
public ActionResult MasodikNegyedeviErtesitoEllenorzobeNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.MasodikNegyedeviErtesitoEllenorzobe, Enums.DokumentumTipusEnum.IINegyedeviErtesitoEllenorzobenElhelyezheto);
}
[HttpPost]
public ActionResult MasodikNegyedeviErtesitoEllenorzobeA5Nyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.MasodikNegyedeviErtesitoA5Ellenorzobe, Enums.DokumentumTipusEnum.IINegyedeviErtesitoEllenorzobenElhelyezhetoA5Meretben);
}
[HttpPost]
public ActionResult MasodikNegyedeviErtesitoSzovegesNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.MasodikNegyedeviErtesitoSzoveges, Enums.DokumentumTipusEnum.IINegyedeviSzovegesErtesito1tol4osztaly);
}
[HttpPost]
public ActionResult MasodikNegyedeviErtesitoFuzetNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.MasodikNegyedeviErtesitoFuzet, Enums.DokumentumTipusEnum.IINegyedevSzovegesiErtesitoFuzet1tol4osztaly);
}
[HttpPost]
public ActionResult MasodikNegyedeviErtesitoMuveszOktatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.MasodikNegyedeviErtesitoMuveszOktatasban, Enums.DokumentumTipusEnum.IINegyedeviErtesitoMuveszoktatasban, true);
}
#endregion
#region III. negyedéves értesítők
[HttpPost]
public ActionResult HarmadikNegyedeviErtesitoNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.HarmadikNegyedeviErtesito, Enums.DokumentumTipusEnum.IIINegyedeviErtesito_);
}
[HttpPost]
public ActionResult HarmadikNegyedeviErtesitoEllenorzobeNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.HarmadikNegyedeviEllenorzobe, Enums.DokumentumTipusEnum.IIINegyedeviErtesitoEllenorzobenElhelyezheto);
}
[HttpPost]
public ActionResult HarmadikNegyedeviErtesitoEllenorzobeA5Nyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.HarmadikNegyedeviErtesitoA5Ellenorzobe, Enums.DokumentumTipusEnum.IIINegyedeviErtesitoEllenorzobenElhelyezhetoA5Meretben);
}
[HttpPost]
public ActionResult HarmadikNegyedeviErtesitoSzovegesNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.HarmadikNegyedeviErtesitoSzoveges, Enums.DokumentumTipusEnum.IIINegyedeviSzovegesErtesito1tol4osztaly);
}
[HttpPost]
public ActionResult HarmadikNegyedeviErtesitoFuzetNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.HarmadikNegyedeviErtesitoFuzet, Enums.DokumentumTipusEnum.IIINegyedevSzovegesiErtesitoFuzet1tol4osztaly);
}
[HttpPost]
public ActionResult HarmadikNegyedeviErtesitoMuveszOktatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.HarmadikNegyedeviErtesitoMuveszOktatasban, Enums.DokumentumTipusEnum.IIINegyedeviErtesitoMuveszoktatasban, true);
}
#endregion
#region IV. negyedéves értesítők
[HttpPost]
public ActionResult NegyedikNegyedeviErtesitoNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedikNegyedeviErtesito, Enums.DokumentumTipusEnum.IVNegyedeviErtesito_);
}
[HttpPost]
public ActionResult NegyedikNegyedeviErtesitoEllenorzobeNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedikNegyedeviEllenorzobe, Enums.DokumentumTipusEnum.IVNegyedeviErtesitoEllenorzobenElhelyezheto);
}
[HttpPost]
public ActionResult NegyedikNegyedeviErtesitoEllenorzobeA5Nyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedikNegyedeviErtesitoA5Ellenorzobe, Enums.DokumentumTipusEnum.IVNegyedeviErtesitoEllenorzobenElhelyezhetoA5Meretben);
}
[HttpPost]
public ActionResult NegyedikNegyedeviErtesitoSzovegesNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedikNegyedeviErtesitoSzoveges, Enums.DokumentumTipusEnum.IVNegyedeviSzovegesErtesito1tol4osztaly);
}
[HttpPost]
public ActionResult NegyedikNegyedeviErtesitoFuzetNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedikNegyedeviErtesitoFuzet, Enums.DokumentumTipusEnum.IVNegyedevSzovegesiErtesitoFuzet1tol4osztaly);
}
[HttpPost]
public ActionResult NegyedikNegyedEviErtesitoMuveszOktatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Ertesito(model, NyomtatvanyEnum.NegyedikNegyedeviErtesitoMuveszOktatasban, Enums.DokumentumTipusEnum.IVNegyedeviErtesitoMuveszoktatasban, true);
}
#endregion
#region Bizonyítvány pótlapok
[HttpPost]
public ActionResult BizonyitvanyPotlapSzovegesElso([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return BizonyitvanyPotlap(model, true, (int)NyomtatvanyNyelvEnum.Magyar, Enums.DokumentumTipusEnum.BizonyitvanyPotlapAz1Evfolyamon);
}
[HttpPost]
public ActionResult BizonyitvanyPotlapSzovegesElsoKetoldalas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return BizonyitvanyPotlap(model, true, (int)NyomtatvanyNyelvEnum.Magyar, Enums.DokumentumTipusEnum.BizonyitvanyPotlapAz1Evfolyamon, true);
}
[HttpPost]
public ActionResult BizonyitvanyPotlapTobbi([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return BizonyitvanyPotlap(model, false, (int)NyomtatvanyNyelvEnum.Magyar, Enums.DokumentumTipusEnum.BizonyitvanyPotlapA2Evfolyamtol);
}
[HttpPost]
public ActionResult BizonyitvanyPotlapSzovegesElsoNemet([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return BizonyitvanyPotlap(model, true, (int)NyomtatvanyNyelvEnum.Nemet, Enums.DokumentumTipusEnum.BizonyitvanyPotlapAz1EvfolyamonNemet);
}
[HttpPost]
public ActionResult BizonyitvanyPotlapTobbiNemet([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return BizonyitvanyPotlap(model, false, (int)NyomtatvanyNyelvEnum.Nemet, Enums.DokumentumTipusEnum.BizonyitvanyPotlapA2EvfolyamtolNemet);
}
[HttpPost]
public ActionResult BizonyitvanyPotlapSzovegesElsoAngol([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return BizonyitvanyPotlap(model, true, (int)NyomtatvanyNyelvEnum.Angol, Enums.DokumentumTipusEnum.BizonyitvanyPotlapAz1EvfolyamonAngol);
}
[HttpPost]
public ActionResult BizonyitvanyPotlapTobbiAngol([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return BizonyitvanyPotlap(model, false, (int)NyomtatvanyNyelvEnum.Angol, Enums.DokumentumTipusEnum.BizonyitvanyPotlapA2EvfolyamtolAngol);
}
#endregion
#region Törzslapok
[HttpPost]
public ActionResult TorzslapSzovegesNyomtatas(NyomtatvanyModel model)
{
return TorzslapGeneralas(model, true, (int)NyomtatvanyNyelvEnum.Magyar, false, Enums.DokumentumTipusEnum.TorzslapAz1tol3EsFelsobbEvfolyamokSzovegesMinositesehez);
}
[HttpPost]
public ActionResult TorzslapSzovegesMuveszOktatasNyomtatas(NyomtatvanyModel model)
{
return TorzslapGeneralas(model, true, (int)NyomtatvanyNyelvEnum.Magyar, false, Enums.DokumentumTipusEnum.TorzslapAz1tol3EsFelsobbEvfolyamokSzovegesMinositesehezMuveszetoktatasban, true);
}
[HttpPost]
public ActionResult TorzslapSzovegesNemetNyomtatas(NyomtatvanyModel model)
{
return TorzslapGeneralas(model, true, (int)NyomtatvanyNyelvEnum.Nemet, false, Enums.DokumentumTipusEnum.TorzslapAz1tol3EsFelsobbEvfolyamokSzovegesMinositesehezNemetGepi);
}
[HttpPost]
public ActionResult TorzslapSzovegesAngolNyomtatas(NyomtatvanyModel model)
{
return TorzslapGeneralas(model, true, (int)NyomtatvanyNyelvEnum.Angol, false, Enums.DokumentumTipusEnum.TorzslapAz1tol3EsFelsobbEvfolyamokSzovegesMinositesehezAngolGepi);
}
[HttpPost]
public ActionResult TorzslapNyomtatas(NyomtatvanyModel model)
{
return TorzslapGeneralas(model, false, (int)NyomtatvanyNyelvEnum.Magyar, model.ElmeletGyakorlatKulon, Enums.DokumentumTipusEnum.TorzslapkivonatA4EsFelsobbEvfolyamokhozGepi);
}
[HttpPost]
public ActionResult TorzslapUjNyomtatas(NyomtatvanyModel model)
{
return TorzslapGeneralas(model, false, (int)NyomtatvanyNyelvEnum.Magyar, model.ElmeletGyakorlatKulon, Enums.DokumentumTipusEnum.TorzslapkivonatA4EsFelsobbEvfolyamokhozGepi, isUjTorzslap: true, kretaLogoPozicio: NyomtatvanyEnum.KretaLogoJobbOldal);
}
[HttpPost]
public ActionResult TorzslapMuveszetOktatasNyomtatas(NyomtatvanyModel model)
{
return TorzslapGeneralas(model, false, (int)NyomtatvanyNyelvEnum.Magyar, model.ElmeletGyakorlatKulon, Enums.DokumentumTipusEnum.TorzslapkivonatA4EsFelsobbEvfolyamokhozGepiMuveszetoktatasban, true);
}
[HttpPost]
public ActionResult TorzslapNemetNyomtatas(NyomtatvanyModel model)
{
return TorzslapGeneralas(model, false, (int)NyomtatvanyNyelvEnum.Nemet, model.ElmeletGyakorlatKulon, Enums.DokumentumTipusEnum.TorzslapkivonatA4EsFelsobbEvfolyamokhozNemetGepi);
}
[HttpPost]
public ActionResult TorzslapAngolNyomtatas(NyomtatvanyModel model)
{
return TorzslapGeneralas(model, false, (int)NyomtatvanyNyelvEnum.Angol, model.ElmeletGyakorlatKulon, Enums.DokumentumTipusEnum.TorzslapkivonatA4EsFelsobbEvfolyamokhozAngolGepi);
}
[HttpPost]
public ActionResult AmiTorzslapNyomtatas(NyomtatvanyModel model)
{
try
{
var asposeHelper = new AsposeHelper();
System.Reflection.MethodInfo asposeMethod = asposeHelper.GetType().GetMethod(nameof(asposeHelper.GetAmiTorzslap));
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetAmiTorzslapAdatok));
var dsParameterek = new Dictionary<string, object>
{
{ "iskolaErdekuSzamit", isIskolaerdekuSzamit}
};
Dictionary<string, object> frxParameterek = new Dictionary<string, object>
{
};
var asposeHelperOptions = new AsposeHelperOptions(ClaimData.SelectedTanevID.Value)
{
Margins = null,
DocumentParameters = new AsposeDocumentParameters()
{
MuveszetiAgId = model.MuveszetiAgId,
Kelt = model.KeltDatum,
KeltFormatum = (KeltFormatumTipusEnum)model.KeltFormatumId,
NyomtatvanyFormatum = (NyomtatvanyFormatumEnum)model.FormatumId,
FejlecMegjelenitese = model.FejlecMegjelenites,
AdatokMegjelenitese = model.AdatMegjelenites,
FelmentesekMegjelenitese = model.isFelmentesekMegjelenitese,
FeljegyzesekMegjelenitese = model.isFeljegyzesekMegjelenitese,
SNIMegjelenites = model.SNI,
KotesmargoTipus = model.KotesMargoTipus,
BetuMeretAdatok = model.BetuMeretAdatok,
BetuMeretFejlec = model.BetuMeretFejlec,
BetuMeretSNI = model.BetuMeretSNI,
MegjegyzesekMegjelenitese = model.MegjegyzesekMegjelenitese,
}
};
return AltalanosTanuloiGeneralas(model, null, DokumentumKategoriaEnum.ErtesitokTorzslapBizonyitvany, Kreta.Enums.DokumentumTipusEnum.AlapitoOkirat, metodus, 0, dsParameterek, frxParameterek, nyomtatvanyNeve: "TozslapKivonat_AMI", distinctTables: "KozosAdatok", tablakFilterByTanuloId: "TanuloiAdatok,SNIAdatok,Zaradekok,Feljegyzesek,Felmentesek,AlapZarovizsa,Tantargyak,Mulasztasok,Naploszamok", tanuloIdColumnName: "TanuloId", emptyDocumentTable: "TanuloiAdatok", egyediLablecKellOldalszam: false, IsAspose: true, asposeMetodus: asposeMethod, asposeHelperOptions: asposeHelperOptions);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult UzenofuzetErtekelolapNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetUzenofuzetErtekelolap));
var dsParameterek = new Dictionary<string, object>();
var frxParameterek = new Dictionary<string, object>
{
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text},
};
return AltalanosTanuloiGeneralas(model, "UzenofuzetErtekelolap", DokumentumKategoriaEnum.ErtesitokTorzslapBizonyitvany, Enums.DokumentumTipusEnum.UzenofuzetErtekelolap, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec,Osztaly", tablakFilterByTanuloId: "Tanulo,Osztalyzatok,Szoveges", tanuloIdColumnName: "TanuloId", egyediLablecKellOldalszam: false);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#endregion
#region Waldorf Értesítők
[HttpPost]
public ActionResult FeleviTanuloErtesito([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanuloiErtesito(model, NyomtatvanyEnum.FeleviTanuloErtesito, Enums.DokumentumTipusEnum.FeleviTanuloiErtesitoWaldorfIskolaknak);
}
[HttpPost]
public ActionResult EvvegiTanuloErtesito([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanuloiErtesito(model, NyomtatvanyEnum.EvvegiTanuloErtesito, Enums.DokumentumTipusEnum.EvVegiTanuloiErtesitoWaldorfIskolaknak);
}
[HttpPost]
public ActionResult NegyedeviTanuloErtesito([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanuloiErtesito(model, NyomtatvanyEnum.NegyedeviTanuloErtesito, Enums.DokumentumTipusEnum.INegyedeviTanuloiErtesitoWaldorfIskolaknak);
}
[HttpPost]
public ActionResult MasodikNegyedeviTanuloErtesito([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanuloiErtesito(model, NyomtatvanyEnum.MasodikNegyedeviTanuloErtesito, Enums.DokumentumTipusEnum.IINegyedeviTanuloiErtesitoWaldorfIskolaknak);
}
[HttpPost]
public ActionResult HarmadikNegyedeviTanuloErtesito([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanuloiErtesito(model, NyomtatvanyEnum.HarmadikNegyedeviTanuloErtesito, Enums.DokumentumTipusEnum.IIINegyedeviTanuloiErtesitoWaldorfIskolaknak);
}
[HttpPost]
public ActionResult NegyedikNegyedeviTanuloErtesito([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanuloiErtesito(model, NyomtatvanyEnum.NegyedikNegyedeviTanuloErtesito, Enums.DokumentumTipusEnum.IVNegyedeviTanuloiErtesitoWaldorfIskolaknak);
}
#endregion
}
}

View file

@ -0,0 +1,843 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mime;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Mvc;
using Aspose.Cells;
using FastReport;
using FastReport.Utils;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Classes.AsposeHelpers;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Iktatas;
using Kreta.BusinessLogic.Logic;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Classes;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
protected ActionResult StaticDocumentNyomtatas(string documentName, string nyomtatvanyNeve = "Alap", NyomtatvanyFormatumEnum formatum = NyomtatvanyFormatumEnum.PDF)
{
var h = new AsposeHelper();
MemoryStream ms;
if (!string.IsNullOrWhiteSpace(documentName))
{
var sablonPath = Url.Content("~/Resources/AsposeSablonok/" + documentName);
sablonPath = System.Web.Hosting.HostingEnvironment.MapPath(sablonPath);
using (var stream = System.IO.File.OpenRead(sablonPath))
{
ms = (MemoryStream)h.GetStaticDocument(stream, (int)formatum);
}
string extension;
switch (formatum)
{
case NyomtatvanyFormatumEnum.Word:
extension = Constants.ImportExport.FileFormatDocx;
break;
default:
extension = Constants.ImportExport.FileFormatPdf;
break;
}
return new FileContentResult(ms.ToArray(), MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode($"{nyomtatvanyNeve}.{extension}", Encoding.UTF8),
};
}
return null;
}
protected ActionResult Nyomtatas(DataSet ds, string frxNeve, Dictionary<string, object> parameterek = null, string nyomtatvanyNeve = "Alap", bool iktatas = false, string iktatasAzonosito = "Iktatas", string headerImage = null, string footerImage = null, int formatumId = (int)NyomtatvanyFormatumEnum.PDF, int? osztalyId = null, DokumentumKategoriaEnum? dokumentumKategoria = null, Enums.DokumentumTipusEnum? dokumentumTipus = null, NameValueCollection kulcsSzavak = null, FoszamDefinicioValueModel foszamDefinicio = null, bool egyediLablecKellOldalszam = true, bool IsAspose = false, System.Reflection.MethodInfo asposeMetodus = null, AsposeHelperOptions asposeHelperOptions = null, Bitmap qrCode = null)
{
if (ds.IsEmpty())
{
throw new StatusError(
HttpStatusCode.InternalServerError,
CommonResource.Ures);
}
if (!IsAspose)
{
return formatumId == (int)NyomtatvanyFormatumEnum.PDF ? PDFNyomtatas(ds, frxNeve, parameterek, nyomtatvanyNeve, iktatas, iktatasAzonosito, headerImage, footerImage, osztalyId, kulcsSzavak, dokumentumKategoria, dokumentumTipus, foszamDefinicio, egyediLablecKellOldalszam, qrCode) : WordNyomtatas(ds, frxNeve, parameterek, nyomtatvanyNeve, iktatas, iktatasAzonosito, osztalyId: osztalyId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: kulcsSzavak, foszamDefinicio: foszamDefinicio, egyediLablecKellOldalszam: egyediLablecKellOldalszam, qrCode);
}
else
{
if (asposeMetodus == null)
{
throw new ArgumentNullException(nameof(asposeMetodus));
}
if (asposeHelperOptions == null)
{
throw new ArgumentNullException(nameof(asposeHelperOptions));
}
var h = new AsposeHelper(ds, asposeHelperOptions);
MemoryStream ms;
if (!string.IsNullOrWhiteSpace(frxNeve))
{
var sablonPath = Url.Content("~/Resources/AsposeSablonok/" + frxNeve);
sablonPath = System.Web.Hosting.HostingEnvironment.MapPath(sablonPath);
using (var stream = System.IO.File.OpenRead(sablonPath))
{
ms = (MemoryStream)asposeMetodus.Invoke(h, new object[] { stream, formatumId });
}
}
else
{
ms = (MemoryStream)asposeMetodus.Invoke(h, new object[] { null, formatumId });
}
ms.Position = 0;
string extension;
switch (formatumId)
{
case (int)NyomtatvanyFormatumEnum.Word:
extension = Constants.ImportExport.FileFormatDocx;
break;
default:
extension = Constants.ImportExport.FileFormatPdf;
break;
}
return new FileContentResult(ms.ToArray(), MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode($"{nyomtatvanyNeve}.{extension}", Encoding.UTF8),
};
}
}
protected MemoryStream GetMemoryStreamByName(DataSet ds, string frxNeve, Dictionary<string, object> parameterek = null, string nyomtatvanyNeve = "Alap", string headerImage = null, string footerImage = null, int formatumId = (int)NyomtatvanyFormatumEnum.PDF, bool egyediLablecKellOldalszam = true, Enums.DokumentumTipusEnum? dokumentumTipus = null, bool IsAspose = false, System.Reflection.MethodInfo asposeMetodus = null, AsposeHelperOptions asposeHelperOptions = null)
{
if (!IsAspose)
{
const string fileTemplate = "{0}/{1}.frx";
var filePath = Server.MapPath(string.Format(fileTemplate, ApplicationData.NyomtatasiSablonokKonyvtar, frxNeve));
var result = formatumId == (int)NyomtatvanyFormatumEnum.PDF ? GetPdfMemoryStream(ds, parameterek, nyomtatvanyNeve, filePath, egyediLablecKellOldalszam, dokumentumTipus) : GetWordMemoryStream(ds, parameterek, nyomtatvanyNeve, filePath, egyediLablecKellOldalszam, dokumentumTipus);
return result;
}
else
{
if (asposeMetodus == null)
{
throw new ArgumentNullException(nameof(asposeMetodus));
}
if (asposeHelperOptions == null)
{
throw new ArgumentNullException(nameof(asposeHelperOptions));
}
var h = new AsposeHelper(ds, asposeHelperOptions);
if (!string.IsNullOrWhiteSpace(frxNeve))
{
var sablonPath = Url.Content("~/Resources/AsposeSablonok/" + frxNeve);
sablonPath = System.Web.Hosting.HostingEnvironment.MapPath(sablonPath);
return (MemoryStream)asposeMetodus.Invoke(h, new object[] { System.IO.File.OpenRead(sablonPath), formatumId });
}
else
{
return (MemoryStream)asposeMetodus.Invoke(h, new object[] { null, formatumId });
}
}
}
#region PDF generálás
protected ActionResult PDFNyomtatas(DataSet ds, string frxNeve, Dictionary<string, object> parameterek = null, string nyomtatvanyNeve = "Alap", bool iktatas = false, string iktatasAzonosito = "Iktatas", string headerImage = null, string footerImage = null, int? osztalyId = null, NameValueCollection kulcsSzavak = null, DokumentumKategoriaEnum? dokumentumKategoria = null, Enums.DokumentumTipusEnum? dokumentumTipus = null, FoszamDefinicioValueModel foszamDefinicio = null, bool egyediLablecKellOldalszam = true, Bitmap qrCode = null)
{
Config.WebMode = true;
const string _fileTemplate = "{0}/{1}.frx";
var report = new Report();
var mapPath = string.Format(_fileTemplate, ApplicationData.NyomtatasiSablonokKonyvtar, frxNeve);
report.Load(System.Web.Hosting.HostingEnvironment.MapPath(mapPath));
var (IsDokumentumFejlecMegjelenit, IsDokumentumLablecMegjelenit) = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetActualIntezmenyAdatok();
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (!iktatas && !NyomtatvanyokLogic.IsEgyediFejlecLablecTiltott(dokumentumTipus))
{
if (IsDokumentumFejlecMegjelenit && IsDokumentumLablecMegjelenit)
{
Image fejlecImage = helper.GetIntezmenyFejlecDokumentum();
Image lablecImage = helper.GetIntezmenyLablecDokumentum();
NyomtatvanyokLogic.EgyediFejlecLablec(report, fejlecImage, lablecImage, egyediLablecKellOldalszam);
}
if (IsDokumentumFejlecMegjelenit && !IsDokumentumLablecMegjelenit)
{
Image fejlecImage = helper.GetIntezmenyFejlecDokumentum();
NyomtatvanyokLogic.EgyediFejlec(report, fejlecImage);
}
if (IsDokumentumLablecMegjelenit && !IsDokumentumFejlecMegjelenit)
{
Image lablecImage = helper.GetIntezmenyLablecDokumentum();
NyomtatvanyokLogic.EgyediLablec(report, lablecImage, egyediLablecKellOldalszam);
}
}
if (qrCode != null)
{
NyomtatvanyokLogic.AddQrCode(report, qrCode);
}
foreach (DataTable dt in ds.Tables)
{
report.RegisterData(dt, dt.TableName);
}
if (parameterek != null)
{
foreach (var parameter in parameterek)
{
report.SetParameterValue(parameter.Key, parameter.Value);
}
}
if (report.Report.Prepare())
{
FastReport.Export.Pdf.PDFExport pdfExport = new FastReport.Export.Pdf.PDFExport
{
ShowProgress = false,
Subject = "Subject",
Title = nyomtatvanyNeve,
Compressed = true,
AllowPrint = true,
EmbeddingFonts = true,
Creator = Constants.ImportExport.Creator
};
var stream = new MemoryStream();
report.Report.Export(pdfExport, stream);
report.Dispose();
pdfExport.Dispose();
stream.Position = 0;
if (dokumentumTipus == Enums.DokumentumTipusEnum.MunkaidoElszamololapHonap)
{
stream = OldalszamHelyettesitesPdf(stream);
}
var result = File(stream, "application/pdf", $"{nyomtatvanyNeve}.{Constants.ImportExport.FileFormatPdf}");
if (iktatas)
{
if (!dokumentumKategoria.HasValue || !dokumentumTipus.HasValue)
{
throw new ApplicationException(ErrorResource.DokumentumIktatasKategoriaTipusSzukseges);
}
PoszeidonIktatas(result.FileStream, iktatasAzonosito, ClaimData.FelhasznaloId, dokumentumKategoria.Value, dokumentumTipus.Value, osztalyId, kulcsSzavak, foszamDefinicio);
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
return result;
}
return null;
}
protected MemoryStream GetPdfMemoryStreamByPath(DataSet ds, string filePath, Dictionary<string, object> parameterek = null, string pdfNeve = "Alap", bool egyediLablecKellOldalszam = true, Enums.DokumentumTipusEnum? dokumentumTipus = null)
{
var result = GetPdfMemoryStream(ds, parameterek, pdfNeve, filePath, egyediLablecKellOldalszam, dokumentumTipus);
return result;
}
private MemoryStream GetPdfMemoryStream(DataSet ds, Dictionary<string, object> parameterek, string pdfNeve, string filePath, bool egyediLablecKellOldalszam, Enums.DokumentumTipusEnum? dokumentumTipus)
{
Config.WebMode = true;
var report = new Report();
report.Load(filePath);
var (IsDokumentumFejlecMegjelenit, IsDokumentumLablecMegjelenit) = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetActualIntezmenyAdatok();
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (!NyomtatvanyokLogic.IsEgyediFejlecLablecTiltott(dokumentumTipus))
{
if (IsDokumentumFejlecMegjelenit && IsDokumentumLablecMegjelenit)
{
Image fejlecImage = helper.GetIntezmenyFejlecDokumentum();
Image lablecImage = helper.GetIntezmenyLablecDokumentum();
NyomtatvanyokLogic.EgyediFejlecLablec(report, fejlecImage, lablecImage, egyediLablecKellOldalszam);
}
if (IsDokumentumFejlecMegjelenit && !IsDokumentumLablecMegjelenit)
{
Image fejlecImage = helper.GetIntezmenyFejlecDokumentum();
NyomtatvanyokLogic.EgyediFejlec(report, fejlecImage);
}
if (IsDokumentumLablecMegjelenit && !IsDokumentumFejlecMegjelenit)
{
Image lablecImage = helper.GetIntezmenyLablecDokumentum();
NyomtatvanyokLogic.EgyediLablec(report, lablecImage, egyediLablecKellOldalszam);
}
}
foreach (DataTable dt in ds.Tables)
{
report.RegisterData(dt, dt.TableName);
}
if (parameterek != null)
{
foreach (var parameter in parameterek)
{
report.SetParameterValue(parameter.Key, parameter.Value);
}
}
if (report.Report.Prepare())
{
FastReport.Export.Pdf.PDFExport pdfExport = new FastReport.Export.Pdf.PDFExport
{
ShowProgress = false,
Subject = "Subject",
Title = pdfNeve,
Compressed = true,
AllowPrint = true,
EmbeddingFonts = true
};
var stream = new MemoryStream();
report.Report.Export(pdfExport, stream);
report.Dispose();
pdfExport.Dispose();
stream.Position = 0;
if (dokumentumTipus == Enums.DokumentumTipusEnum.MunkaidoElszamololapHonap)
{
stream = OldalszamHelyettesitesPdf(stream);
}
return stream;
}
return null;
}
private MemoryStream OldalszamHelyettesitesPdf(Stream ms)
{
ms.Position = 0;
var ret = new MemoryStream();
Aspose.Pdf.Document doc = new Aspose.Pdf.Document(ms);
var fragmentAbsober = new Aspose.Pdf.Text.TextFragmentAbsorber("{osszoldalszam\\d+}");
fragmentAbsober.TextSearchOptions.IsRegularExpressionUsed = true;
doc.Pages.Accept(fragmentAbsober);
var fragmentCollection = fragmentAbsober.TextFragments;
var sumCounts = fragmentCollection.GroupBy(x => x.Text).Select(group => new { group.Key, Count = group.Count() }).ToList();
foreach (var text in fragmentCollection)
{
text.Text = sumCounts.Single(x => x.Key == text.Text).Count.ToString();
}
doc.Save(ret);
ms.Dispose();
ret.Position = 0;
return ret;
}
#endregion
#region Word generálás
protected ActionResult WordNyomtatas(DataSet ds, string frxNeve, Dictionary<string, object> parameterek = null, string wordNeve = "Alap", bool iktatas = false, string iktatasAzonosito = "Iktatas", int? osztalyId = null, DokumentumKategoriaEnum? dokumentumKategoria = null, Enums.DokumentumTipusEnum? dokumentumTipus = null, NameValueCollection kulcsSzavak = null, FoszamDefinicioValueModel foszamDefinicio = null, bool egyediLablecKellOldalszam = true, Bitmap qrCode = null)
{
Config.WebMode = true;
const string _fileTemplate = "{0}/{1}.frx";
var report = new Report();
report.Load(Server.MapPath(string.Format(_fileTemplate, ApplicationData.NyomtatasiSablonokKonyvtar, frxNeve)));
var (IsDokumentumFejlecMegjelenit, IsDokumentumLablecMegjelenit) = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetActualIntezmenyAdatok();
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (!iktatas && !NyomtatvanyokLogic.IsEgyediFejlecLablecTiltott(dokumentumTipus))
{
if (IsDokumentumFejlecMegjelenit && IsDokumentumLablecMegjelenit)
{
Image fejlecImage = helper.GetIntezmenyFejlecDokumentum();
Image lablecImage = helper.GetIntezmenyLablecDokumentum();
NyomtatvanyokLogic.EgyediFejlecLablec(report, fejlecImage, lablecImage, egyediLablecKellOldalszam);
}
if (IsDokumentumFejlecMegjelenit && !IsDokumentumLablecMegjelenit)
{
Image fejlecImage = helper.GetIntezmenyFejlecDokumentum();
NyomtatvanyokLogic.EgyediFejlec(report, fejlecImage);
}
if (IsDokumentumLablecMegjelenit && !IsDokumentumFejlecMegjelenit)
{
Image lablecImage = helper.GetIntezmenyLablecDokumentum();
NyomtatvanyokLogic.EgyediLablec(report, lablecImage, egyediLablecKellOldalszam);
}
}
if (qrCode != null)
{
NyomtatvanyokLogic.AddQrCode(report, qrCode);
}
foreach (DataTable dt in ds.Tables)
{
report.RegisterData(dt, dt.TableName);
}
if (parameterek != null)
{
foreach (var parameter in parameterek)
{
report.SetParameterValue(parameter.Key, parameter.Value);
}
}
if (report.Report.Prepare())
{
FastReport.Export.RichText.RTFExport textExport = new FastReport.Export.RichText.RTFExport
{
ShowProgress = false,
Creator = Constants.ImportExport.Creator
};
var stream = new MemoryStream();
report.Report.Export(textExport, stream);
report.Dispose();
textExport.Dispose();
stream.Position = 0;
if (dokumentumTipus == Enums.DokumentumTipusEnum.MunkaidoElszamololapHonap)
{
stream = OldalszamHelyettesitesWord(stream);
}
var result = File(stream, "application/doc", $"{wordNeve}.{Constants.ImportExport.FileFormatWord}");
if (iktatas)
{
if (!dokumentumKategoria.HasValue || !dokumentumTipus.HasValue)
{
throw new ApplicationException(ErrorResource.DokumentumIktatasKategoriaTipusSzukseges);
}
PoszeidonIktatas(result.FileStream, iktatasAzonosito, ClaimData.FelhasznaloId, dokumentumKategoria: dokumentumKategoria.Value, dokumentumTipus: dokumentumTipus.Value, osztalyId: osztalyId, kulcsSzavak: kulcsSzavak, foszamDefinicio: foszamDefinicio, formatum: Kreta.Core.Constants.ContentTypes.Word);
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
return result;
}
return null;
}
private MemoryStream GetWordMemoryStream(DataSet ds, Dictionary<string, object> parameterek, string wordNeve, string filePath, bool egyediLablecKellOldalszam, Enums.DokumentumTipusEnum? dokumentumTipus)
{
Config.WebMode = true;
var report = new Report();
report.Load(filePath);
var (IsDokumentumFejlecMegjelenit, IsDokumentumLablecMegjelenit) = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetActualIntezmenyAdatok();
var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (!NyomtatvanyokLogic.IsEgyediFejlecLablecTiltott(dokumentumTipus))
{
if (IsDokumentumFejlecMegjelenit && IsDokumentumLablecMegjelenit)
{
Image fejlecImage = helper.GetIntezmenyFejlecDokumentum();
Image lablecImage = helper.GetIntezmenyLablecDokumentum();
NyomtatvanyokLogic.EgyediFejlecLablec(report, fejlecImage, lablecImage, egyediLablecKellOldalszam);
}
if (IsDokumentumFejlecMegjelenit && !IsDokumentumLablecMegjelenit)
{
Image fejlecImage = helper.GetIntezmenyFejlecDokumentum();
NyomtatvanyokLogic.EgyediFejlec(report, fejlecImage);
}
if (IsDokumentumLablecMegjelenit && !IsDokumentumFejlecMegjelenit)
{
Image lablecImage = helper.GetIntezmenyLablecDokumentum();
NyomtatvanyokLogic.EgyediLablec(report, lablecImage, egyediLablecKellOldalszam);
}
}
foreach (DataTable dt in ds.Tables)
{
report.RegisterData(dt, dt.TableName);
}
if (parameterek != null)
{
foreach (var parameter in parameterek)
{
report.SetParameterValue(parameter.Key, parameter.Value);
}
}
if (report.Report.Prepare())
{
FastReport.Export.RichText.RTFExport textExport = new FastReport.Export.RichText.RTFExport
{
ShowProgress = false,
Creator = Constants.ImportExport.Creator
};
var stream = new MemoryStream();
report.Report.Export(textExport, stream);
report.Dispose();
textExport.Dispose();
stream.Position = 0;
if (dokumentumTipus == Enums.DokumentumTipusEnum.MunkaidoElszamololapHonap)
{
stream = OldalszamHelyettesitesWord(stream);
}
return stream;
}
return null;
}
private MemoryStream OldalszamHelyettesitesWord(Stream ms)
{
ms.Position = 0;
var ret = new MemoryStream();
var loadOptions = new Aspose.Words.LoadOptions();
loadOptions.LoadFormat = Aspose.Words.LoadFormat.Doc;
Aspose.Words.Document doc = new Aspose.Words.Document(ms, loadOptions);
var runs = doc.GetChildNodes(Aspose.Words.NodeType.Run, true).Where(x => Regex.IsMatch(((Aspose.Words.Run)x).Text, "{osszoldalszam\\d+}")).Cast<Aspose.Words.Run>();
var toCount = runs.GroupBy(x => x.Text.Substring(x.Text.IndexOf("{osszoldalszam"), x.Text.IndexOf("}", x.Text.IndexOf("{osszoldalszam")) - x.Text.IndexOf("{osszoldalszam") + 1)).Select(group => new { group.Key, Count = group.Count() }).ToDictionary(group => group.Key, group => group.Count);
foreach (var b in runs)
{
var key = toCount.Single(x => b.Text.Contains(x.Key)).Key;
b.Text = b.Text.Replace(key, toCount[key].ToString());
}
var saveFormat = Aspose.Words.SaveFormat.Doc;
doc.Save(ret, saveFormat);
ms.Dispose();
ret.Position = 0;
return ret;
}
#endregion
#region Excel generálás
protected ActionResult ExcelNyomtatas(DataSet dataSet,
string excelNeve = "Excel",
bool iktatas = false,
string iktatasAzonosito = "Iktatas",
DokumentumKategoriaEnum? dokumentumKategoria = null,
Enums.DokumentumTipusEnum? dokumentumTipus = null,
int? osztalyId = null,
NameValueCollection kulcsSzavak = null,
FoszamDefinicioValueModel foszamDefinicio = null,
List<ExcelNumericTypeColumn> excelNumericTypeColumns = null,
bool lastRowStyleLikeHeader = false,
List<int> sheetsWithoutLastRowStyleLikeHeader = null)
{
var memoryStream = GetExcelMemoryStream(dataSet, excelNumericTypeColumns, lastRowStyleLikeHeader, sheetsWithoutLastRowStyleLikeHeader);
var result = File(memoryStream, Core.Constants.ContentTypes.Xlsx, $"{excelNeve}.xlsx");
if (iktatas)
{
if (!dokumentumKategoria.HasValue || !dokumentumTipus.HasValue)
{
throw new ApplicationException(ErrorResource.DokumentumIktatasKategoriaTipusSzukseges);
}
PoszeidonIktatas(result.FileStream, iktatasAzonosito, ClaimData.FelhasznaloId, dokumentumKategoria.Value, dokumentumTipus.Value, osztalyId: osztalyId, kulcsSzavak: kulcsSzavak, foszamDefinicio: foszamDefinicio, formatum: Core.Constants.ContentTypes.Xlsx);
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
return result;
}
public MemoryStream ExcelNyomtatasByMemoryStream(
DataSet dataSet,
bool iktatas,
string iktatasAzonosito = null,
DokumentumKategoriaEnum? dokumentumKategoria = null,
Enums.DokumentumTipusEnum? dokumentumTipus = null,
bool lastRowStyleLikeHeader = false,
List<int> sheetsWithoutLastRowStyleLikeHeader = null)
{
var memoryStream = GetExcelMemoryStream(dataSet, lastRowStyleLikeHeader: lastRowStyleLikeHeader, sheetsWithoutLastRowStyleLikeHeader: sheetsWithoutLastRowStyleLikeHeader);
if (iktatas)
{
if (!dokumentumKategoria.HasValue || !dokumentumTipus.HasValue)
{
throw new ApplicationException(ErrorResource.DokumentumIktatasKategoriaTipusSzukseges);
}
PoszeidonIktatas(memoryStream, iktatasAzonosito, ClaimData.FelhasznaloId, dokumentumKategoria.Value, dokumentumTipus.Value);
}
return memoryStream;
}
private static MemoryStream GetExcelMemoryStream(DataSet dataSet, List<ExcelNumericTypeColumn> excelNumericTypeColumns = null, bool lastRowStyleLikeHeader = false, List<int> sheetsWithoutLastRowStyleLikeHeader = null)
{
if (dataSet.IsEmpty())
{
throw new StatusError(
HttpStatusCode.InternalServerError,
CommonResource.Ures);
}
MemoryStream memoryStream;
using (var workbook = new Workbook())
{
var mappedSheetName = new Dictionary<int, string>();
for (int dataTableIndex = 0; dataTableIndex < dataSet.Tables.Count; dataTableIndex++)
{
DataTable dataTable = dataSet.Tables[dataTableIndex];
//NOTE: Eltávolítjuk a nem meg felelő charaktereket a sheetName-ből
// { '.', '?', '!', '*', '/', '[', ']', '\'', ':' };
string sheetName = new Regex(@"[!*,./:?[\\\]]").Replace(dataTable.TableName, string.Empty);
if (string.IsNullOrWhiteSpace(sheetName))
{
//NOTE: Ha nincs benne szöveg, akkor bele kell tenni, mert különben elszáll
sheetName = "Kréta.NET export";
}
//NOTE: Maximum 31 karakter hosszú lehet egy sheetName, ezért levágjuk, hogy max olyan hosszú legyen.
sheetName = sheetName.Length > 31 ? sheetName.Substring(0, 31) : sheetName;
mappedSheetName.Add(dataTableIndex, sheetName);
}
//NOTE: módosítjuk az egyező sheetName értékeket
foreach (var item in mappedSheetName.GroupBy(x => x.Value).ToDictionary(t => t.Key, t => t.Select(r => r.Key)).Where(x => x.Value.Count() > 1).ToList())
{
var egyezoFulekSzama = item.Value.Count();
for (int i = 1; i <= egyezoFulekSzama; i++)
{
var reNamedSheetName = $"{item.Key.Wrap(0, 31 - egyezoFulekSzama.ToString().Length - 1)}-{i}";
do
{
//NOTE: ellenőrizni kell a beállítandó sorszámot, hogy már létezik-e, mert csoportonként ismétlődhet a tartalom
//és duplikáció miatt elhal a generálás
int foundIndex = mappedSheetName.LastOrDefault(x => x.Value.Equals(reNamedSheetName)).Key;
if (foundIndex != 0)
{
string actualIndex = reNamedSheetName.Remove(0, reNamedSheetName.LastIndexOf('-') + 1);
int nextIndex = 0;
Int32.TryParse(actualIndex, out nextIndex);
nextIndex += 1;
reNamedSheetName = $"{item.Key.Wrap(0, 31 - nextIndex.ToString().Length - 1)}-{nextIndex}";
}
else
{
break;
}
} while (true);
mappedSheetName[item.Value.ElementAt(i - 1)] = reNamedSheetName;
}
}
for (int dataTableIndex = 0; dataTableIndex < dataSet.Tables.Count; dataTableIndex++)
{
DataTable dataTable = dataSet.Tables[dataTableIndex];
var sheetName = mappedSheetName[dataTableIndex];
Dictionary<int, string> headerNameDictionary = new Dictionary<int, string>();
int columnIndex = 0;
foreach (DataColumn dataColumn in dataTable.Columns.Cast<DataColumn>())
{
headerNameDictionary.Add(columnIndex, dataColumn.ColumnName);
columnIndex++;
}
List<SimpleExportColumnCo> simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos(headerNameDictionary);
Worksheet worksheet = SimpleExportLogic.GetWorksheet(workbook, sheetName, simpleExportColumnCos, dataTableIndex);
//NOTE: Van-e az adott táblán numerikus oszlop amit nem szövegként kell formázni.
var numericTypeColumns = new List<int>();
if (excelNumericTypeColumns.NotNullAndAny())
{
//NOTE: Adott táblára.
var numericTypeColumnsByTable = excelNumericTypeColumns.Where(c => c.TableIndex == dataTableIndex);
if (numericTypeColumnsByTable.Any())
{
numericTypeColumns.AddRange(numericTypeColumnsByTable.Select(c => c.ColumnIndex));
}
else
{
//NOTE: Egészre worksheetre.
var numericTypeColumnForAll = excelNumericTypeColumns.Where(c => c.IsForAll);
if (numericTypeColumnForAll.Any())
{
numericTypeColumns.AddRange(numericTypeColumnForAll.Select(c => c.ColumnIndex));
}
}
}
int rowNumber = 1;
foreach (DataRow dataRow in dataTable.AsEnumerable())
{
for (int columnNumber = 0; columnNumber < headerNameDictionary.Count; columnNumber++)
{
//NOTE: Ahhoz, hogy az excel jól formázza a numerikus értékeket, olyan típussal kell átadni neki.
var stringValue = SDAConvert.ToStringForExcelCell(dataRow[columnNumber]);
if (numericTypeColumns.Contains(columnNumber))
{
if (int.TryParse(stringValue, out int intValue))
{
worksheet.Cells[rowNumber, columnNumber].Value = intValue;
}
else if (double.TryParse(stringValue, out double doubleValue))
{
worksheet.Cells[rowNumber, columnNumber].Value = doubleValue;
}
else
{
worksheet.Cells[rowNumber, columnNumber].Value = stringValue;
}
}
else
{
worksheet.Cells[rowNumber, columnNumber].Value = stringValue;
}
}
if (lastRowStyleLikeHeader
&& (sheetsWithoutLastRowStyleLikeHeader == null || !sheetsWithoutLastRowStyleLikeHeader.Contains(dataTableIndex))
&& dataRow == dataTable.AsEnumerable().Last())
{
for (int columnNumber = 0; columnNumber < headerNameDictionary.Count; columnNumber++)
{
worksheet.Cells[rowNumber, columnNumber].SetStyle(worksheet.Cells[0, columnNumber].GetStyle());
}
}
rowNumber++;
}
}
memoryStream = SimpleExportLogic.GetWorkbookMemoryStream(workbook);
}
return memoryStream;
}
private ActionResult ExcelNyomtatas(MemoryStream stream, string excelNeve, bool iktatas, string iktatasAzonosito, int? osztalyId = null, DokumentumKategoriaEnum? dokumentumKategoria = null, Enums.DokumentumTipusEnum? dokumentumTipus = null, NameValueCollection kulcsSzavak = null, FoszamDefinicioValueModel foszamDefinicio = null)
{
var result = File(stream, Core.Constants.ContentTypes.Xlsx, $"{excelNeve}.{GetNyomtatvanyFileFormat(NyomtatvanyFormatumEnum.Excel.AsInt())}");
if (iktatas)
{
if (!dokumentumKategoria.HasValue || !dokumentumTipus.HasValue)
{
throw new ApplicationException(ErrorResource.DokumentumIktatasKategoriaTipusSzukseges);
}
PoszeidonIktatas(result.FileStream, iktatasAzonosito, ClaimData.FelhasznaloId, dokumentumKategoria.Value, dokumentumTipus.Value, osztalyId: osztalyId, kulcsSzavak: kulcsSzavak, foszamDefinicio: foszamDefinicio, formatum: Core.Constants.ContentTypes.Xlsx);
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
return result;
}
#endregion
#region Zip generálás
#endregion
#region Iktatás
private (NameValueCollection kulcsSzavak, FoszamDefinicioValueModel foszamDefinicio) KulcsszavakEsFoszamGeneralas(NyomtatvanyModel model, Enums.DokumentumTipusEnum dokumentumTipus, DataSet ds, DokumentumElemiSzintEnum foszamDefinicioSzint)
{
if ((model.FoszamDefiniciok.Count < 1)
|| ((model.Kulcsszodefiniciok.Count < 1) && !IsNincsKulcsszoDefinicio(dokumentumTipus)))
{
throw new ApplicationException(ErrorResource.DokumentumIktatasKulcsszoFoszamDefinicioSzukseges);
}
KulcsszoHelper kulcsszoHelper = new KulcsszoHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var kulcsSzavak = kulcsszoHelper.GetKulcsszavak(dokumentumTipus, model.Kulcsszodefiniciok, ds);
var foszamDefinicio = model.FoszamDefiniciok.FirstOrDefault(x => x.Szint == foszamDefinicioSzint);
var foszamDefinicioErtekek = kulcsszoHelper.FillFoszamDefinicioErtekek(kulcsSzavak, foszamDefinicio);
return (kulcsSzavak, foszamDefinicio: foszamDefinicioErtekek);
}
private bool IsNincsKulcsszoDefinicio(Enums.DokumentumTipusEnum dokumentumTipus)
{
switch (dokumentumTipus)
{
case Enums.DokumentumTipusEnum.TantargyfelosztasFormazottExcel:
case Enums.DokumentumTipusEnum.TantargyfelosztasFormazottPDF:
case Enums.DokumentumTipusEnum.TantargyfelosztasKiegeszitettAdatok:
case Enums.DokumentumTipusEnum.OsztalyokSzamaRiport:
case Enums.DokumentumTipusEnum.CsoportokSzamaRiport:
case Enums.DokumentumTipusEnum.FeladatellatasiHelyekRiport:
case Enums.DokumentumTipusEnum.TanulokMegoszlasaEvfolyamokEsAgazatokSzerint:
case Enums.DokumentumTipusEnum.ElfogadottTantargyfelosztasFormazottExcel:
case Enums.DokumentumTipusEnum.ElfogadottTantargyfelosztasFormazottPDF:
case Enums.DokumentumTipusEnum.ReszletesAlkalmazottAdatok:
case Enums.DokumentumTipusEnum.ReszletesTanuloiAdatok:
return true;
default:
return false;
}
}
private void PoszeidonIktatas(Stream stream, string dokumentumNeve, int iktatoID, DokumentumKategoriaEnum dokumentumKategoria, Enums.DokumentumTipusEnum dokumentumTipus, int? osztalyId = null, NameValueCollection kulcsSzavak = null, FoszamDefinicioValueModel foszamDefinicio = null, string formatum = Core.Constants.ContentTypes.Pdf)
{
if (string.IsNullOrWhiteSpace(dokumentumNeve))
{
throw new BusinessLogic.Exceptions.PosszeidonIktatasException();
}
var helper = new PoszeidonHelper(ConnectionTypeExtensions.GetSessionConnectionType(), IktatoRepositoryFactory, IktatoServiceConfiguration);
helper.Iktatas(stream, dokumentumNeve, iktatoID, dokumentumKategoria, dokumentumTipus, osztalyId, kulcsSzavak, foszamDefinicio, formatum);
}
#endregion
}
}

View file

@ -0,0 +1,847 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes.AsposeHelpers;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private ActionResult JogviszonyIskolalatogatasiIgazolas(NyomtatvanyModel model, bool isJogviszony, Enums.DokumentumTipusEnum dokumentumTipus, bool isFelnottkepzesesJogviszonySzures)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (isJogviszony)
{
if (ClaimData.IsSzakkepzoIntezmeny)
{
NyomtatvanyokLogic.ValidateJogviszonyLetolthetosegSzakkepzo(model.TanulocsoportIdList, model.OsztalyIdList, helper, ClaimData.IsSelectedTanev21_22OrLater);
}
else
{
NyomtatvanyokLogic.ValidateFelnottkepzes(model.TanulocsoportIdList, model.OsztalyIdList, helper);
}
if (model.TanulocsoportIdList != null)
{
model.TanuloIdList = helper.GetTanuloIdListByTanulocsoportIdList(model.TanulocsoportIdList);
}
}
var metodus = helper.GetType().GetMethod(nameof(helper.GetIskolalatogatasiIgazolas));
var dsParameterek = new Dictionary<string, object>()
{
{"isFelnottkepzesesJogviszonySzures", isFelnottkepzesesJogviszonySzures},
{"isSzakkepzoIntezmeny", ClaimData.IsSzakkepzoIntezmeny }
};
var frxParameterek = new Dictionary<string, object>()
{
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"TagintezmenyCim", GetTagintezmenyCime(model)},
{"Jogviszony", isJogviszony},
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text},
};
var nyomtatvanyNeve = isJogviszony ? NyomtatvanyEnum.Tanuloijogviszonyigazolas.ToString() : NyomtatvanyEnum.Iskolalatogatasiigazolas.ToString();
return AltalanosTanuloiGeneralas(model, NyomtatvanyEnum.Iskolalatogatasiigazolas.ToString(), DokumentumKategoriaEnum.IgazolasokMulasztasiErtesitok, dokumentumTipus, metodus, 0, dsParameterek, frxParameterek, nyomtatvanyNeve: nyomtatvanyNeve, distinctTables: "Fejlec", tablakFilterByTanuloId: "Tanulok", tanuloIdColumnName: "TanuloId", emptyDocumentTable: "Tanulok", egyediLablecKellOldalszam: false);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult ErtesitesGyamhatosag10Cst([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model, bool isTankoteles, string nyomtatvanyNeve)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitesGyamhivatalnak10CstNT_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitesGyamhivatalnak10CstNT_TorzsHeaderText},
{"TorzsFooterText", string.Empty},
{"CimzoText", NyomtatvanyokResource.ErtesitesGyamhivatalnak5NT_CimzoText},
{"GondviseloText", string.Empty},
{"IsCimzoAndIktatoszamVisible", true },
{"IsGondviseloDetailsVisible", false },
{"IsMulasztasokDetailsVisible", false },
{"IsTiszteletteltextVisible", true },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
return GetMulasztasErtesito(model, frxParameterek, isTankoteles, 10, nyomtatvanyNeve);
}
private ActionResult GetMulasztasErtesito(NyomtatvanyModel model, Dictionary<string, object> egyediFrxParameterek, bool isTankoteles, int igazolatlanMulasztasokSzama, string nyomtatvanyNeve, bool isSzulonek = false)
{
try
{
if (isSzulonek)
{
model.MustGondviseloIsTorvenyes = true;
}
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
var metodus = helper.GetType().GetMethod(nameof(helper.GetErtesitesSzulonekEsIntezmenynek));
var dsParameterek = new Dictionary<string, object>
{
{"iskolaErdekuSzamit", isIskolaerdekuSzamit},
{"igazolatlanOrakSzama", igazolatlanMulasztasokSzama},
{"tankoteles", isTankoteles},
{"kiiratkozottTanulokMegjelenitese", model.KiiratkozottTanulokMegjelenitese },
{"isMuveszetOktatas", false },
{"gondviselonek", isSzulonek },
{"gondviseloIsTorvenyes", model.MustGondviseloIsTorvenyes ?? false }
};
var vezetoNevTitulusString = new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType())
.GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text.Split(new string[] { " - " }, StringSplitOptions.None);
var alulirottSzoveg = string.Format(NyomtatvanyokResource.ErtesitoTanulonakNemTK10_AlulirottText, vezetoNevTitulusString[0], vezetoNevTitulusString[1]);
var frxParameterek = new Dictionary<string, object>
{
{"AlulirottText", alulirottSzoveg},
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)}
};
if (model.TagintezmenyCime)
{
var mukodesihelyVarosKeltezeshez = new MukodesiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMukodesiHelyAdatok(model.TagintezmenyId.Value).Varos;
if (egyediFrxParameterek.ContainsKey("FejlecText"))
{
egyediFrxParameterek["FejlecText"] = $@"{egyediFrxParameterek["FejlecText"]}{model.TagintezmenyCimeDropdown}";
}
egyediFrxParameterek.Add("MukodesiHelyText", $@"{mukodesihelyVarosKeltezeshez}, ");
}
else
{
egyediFrxParameterek.Add("MukodesiHelyText", $@"{NyomtatvanyokResource.Ertesito_IntezmenyCimebolVaros}");
}
foreach (var frxParameter in egyediFrxParameterek)
{
frxParameterek.Add(frxParameter.Key, frxParameter.Value);
}
return AltalanosTanuloiGeneralas(model, "MulasztasErtesito", DokumentumKategoriaEnum.IgazolasokMulasztasiErtesitok, null, metodus, 0, dsParameterek, frxParameterek, nyomtatvanyNeve, excludedTables: "Table1", distinctTables: "", tablakFilterByTanuloId: "MulasztasFej,GondviseloAdatok", tanuloIdColumnName: "TanuloId", emptyDocumentTable: "MulasztasFej", egyediLablecKellOldalszam: false);
}
catch (Exception ex)
{
if (ex.Message == NyomtatvanyokResource.UresDokumentum)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex, NyomtatvanyokResource.MulasztasErtesitoErrorMessage);
}
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult ErtesitesTanuloAlapon(NyomtatvanyModel model, bool isTankoteles, string nyomtatvanyNeve, int? gondviseloTableIndex, int? mulasztasTableIndex, bool isMuveszetOktatas = false)
{
try
{
var asposeHelper = new AsposeHelper();
var asposeMethod = asposeHelper.GetType().GetMethod(nameof(asposeHelper.GetErtesitesTanuloAlapon));
return AltalanosNktMulasztasErtesites(model, isTankoteles, nyomtatvanyNeve, gondviseloTableIndex, mulasztasTableIndex, asposeMethod, isMuveszetOktatas);
}
catch (Exception ex)
{
if (ex.Message == NyomtatvanyokResource.UresDokumentum)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex, NyomtatvanyokResource.MulasztasErtesitoErrorMessage);
}
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult ErtesitesGondviseloAlapon(NyomtatvanyModel model, bool isTankoteles, string nyomtatvanyNeve, bool isMuveszetOktatas = false, bool isSzulonek = false)
{
try
{
if (isTankoteles)
{
model.MustGondviselo = true;
}
var asposeHelper = new AsposeHelper();
var asposeMethod = asposeHelper.GetType().GetMethod(nameof(asposeHelper.GetErtesitesGondviseloAlapon));
if (isSzulonek)
{
model.MustGondviseloIsTorvenyes = true;
}
return AltalanosNktMulasztasErtesites(model, isTankoteles, nyomtatvanyNeve, null, null, asposeMethod, isMuveszetOktatas, isSzulonek: isSzulonek);
}
catch (Exception ex)
{
if (ex.Message.Equals(TanuloResource.ATanulonakNincsRogzitettTorvenyesKepviseloje)
|| ex.Message.Equals(NyomtatvanyokResource.TanulonakNincsRogzitveGondviselo))
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
else
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex, NyomtatvanyokResource.MulasztasErtesitoErrorMessage);
}
}
}
private ActionResult AltalanosNktMulasztasErtesites(NyomtatvanyModel model, bool isTankoteles, string nyomtatvanyNeve, int? gondviseloTableIndex, int? mulasztasTableIndex, MethodInfo asposeMethod, bool isMuveszetOktatas, bool isSzulonek = false)
{
try
{
var connection = ConnectionTypeExtensions.GetSessionConnectionType();
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
var dsHelper = new NyomtatvanyokHelper(connection);
var dsMethod = dsHelper.GetType().GetMethod(nameof(dsHelper.GetErtesitesSzulonekEsIntezmenynek));
var dsParameterek = new Dictionary<string, object>
{
{ "iskolaErdekuSzamit", isIskolaerdekuSzamit },
{ "igazolatlanOrakSzama", model.IgazolatlanOrakSzama },
{ "tankoteles", isTankoteles },
{ "gondviselonek", isSzulonek },
{ "kiiratkozottTanulokMegjelenitese", model.KiiratkozottTanulokMegjelenitese },
{ "isMuveszetOktatas", isMuveszetOktatas },
{ "gondviseloIsTorvenyes", model.MustGondviseloIsTorvenyes ?? false }
};
var frxParameterek = new Dictionary<string, object>
{
};
var (isDokumentumFejlecMegjelenit, isDokumentumLablecMegjelenit) = dsHelper.GetActualIntezmenyAdatok();
var intezmenyHelper = new IntezmenyHelper(connection);
using (var asposeHelperOptions = new AsposeHelperOptions(ClaimData.SelectedTanevID.Value)
{
Margins = null,
DocumentParameters = new AsposeDocumentParameters()
{
Kelt = model.KeltDatum,
KeltFormatum = (KeltFormatumTipusEnum)model.KeltFormatumId,
NyomtatvanyFormatum = (NyomtatvanyFormatumEnum)model.FormatumId,
},
MulasztasErtesitoNktGondviseloTableIndex = gondviseloTableIndex,
MulasztasErtesitoNktMulasztasTableIndex = mulasztasTableIndex,
})
{
if (model.TagintezmenyCime)
{
var mukodesihely = new MukodesiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMukodesiHelyAdatok(model.TagintezmenyId.Value);
asposeHelperOptions.DocumentParameters.IsTagintezmenyAdatokMegjelenjen = model.TagintezmenyCime;
asposeHelperOptions.DocumentParameters.TagintezmenyCime = model.TagintezmenyCimeDropdown.Replace(mukodesihely.Nev, "").Trim(" ,".ToCharArray()).ReplaceMultipleSpacesAndTrim();
asposeHelperOptions.DocumentParameters.TagintezmenyNeve = mukodesihely.Nev?.ReplaceMultipleSpacesAndTrim();
asposeHelperOptions.DocumentParameters.TagintezmenyVaros = mukodesihely.Varos?.ReplaceMultipleSpacesAndTrim();
}
if (model.AlulirottMegnevezesId.IsEntityId())
{
var alulirott = new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true, nyomtatvanyNyelvEnum: 0, isNemzetisegiDokumentum: false).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text;
var index = alulirott.LastIndexOf(" - ");
var nev = alulirott.Substring(0, index).ReplaceMultipleSpacesAndTrim();
var beosztas = alulirott.Substring(index + " - ".Length).ReplaceMultipleSpacesAndTrim();
asposeHelperOptions.DocumentParameters.AlairoSzemely = new Dictionary<string, string>()
{
{"Nev", nev },
{"Beosztas", beosztas },
};
}
if (isDokumentumFejlecMegjelenit)
{
asposeHelperOptions.EgyediFejlec = intezmenyHelper.GetIntezmenyFejlecDokumentum();
}
return AltalanosTanuloiGeneralas(model, $"{nyomtatvanyNeve}.docx", DokumentumKategoriaEnum.IgazolasokMulasztasiErtesitok, null, dsMethod, 0, dsParameterek, frxParameterek, nyomtatvanyNeve: nyomtatvanyNeve, distinctTables: "", tablakFilterByTanuloId: "MulasztasFej,MulasztasAdat,GondviseloAdatok", tanuloIdColumnName: "TanuloId", emptyDocumentTable: "MulasztasFej", egyediLablecKellOldalszam: false, IsAspose: true, asposeMetodus: asposeMethod, asposeHelperOptions: asposeHelperOptions);
}
}
catch (Exception)
{
throw;
}
}
[HttpPost]
public ActionResult IskolalatogatasiIgazolas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return JogviszonyIskolalatogatasiIgazolas(model, false, Enums.DokumentumTipusEnum.IskolalatogatasiLap, false);
}
[HttpPost]
public ActionResult TanuloiJogviszonyIgazolas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return JogviszonyIskolalatogatasiIgazolas(model, true, Enums.DokumentumTipusEnum.TanuloiJogviszonyIgazoloLap_, true);
}
#region Mulasztási értesítők - Nkt.
[HttpPost]
public ActionResult NktErtesitesCsaladGyermekjoletReszere2OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 2;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktErtesitesCsaladGyermekjoletReszere2OraUtanTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesCsaladGyermekjoletReszere10OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 10;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktErtesitesCsaladGyermekjoletReszere10OraUtanTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesCsaladGyermekjoletReszere30OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 30;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktErtesitesCsaladGyermekjoletReszere30OraUtanTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesCsaladGyermekjoletReszere50OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 50;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktErtesitesCsaladGyermekjoletReszere50OraUtanTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesGyermekvedelmiSzakszolgReszere10OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 10;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktErtesitesGyermekvedelmiSzakszolgReszere10OraUtanTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesGyermekvedelmiSzakszolgReszere30OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 30;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktErtesitesGyermekvedelmiSzakszolgReszere30OraUtanTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesGyermekvedelmiSzakszolgReszere50OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 50;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktErtesitesGyermekvedelmiSzakszolgReszere50OraUtanTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesGyamhivatalReszere50OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 50;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktErtesitesGyamhivatalReszere50OraUtanTankoteles), 1, 3);
}
[HttpPost]
public ActionResult NktErtesitesKollegium1OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 1;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktErtesitesKollegium1OraUtanTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktKerelemCsaladtamFeladatkorbenEljaroKormhivatal50utanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 50;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktKerelemCsaladtamFeladatkorbenEljaroKormhivatal50utanTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesAltalanosSzabalysertesiHatosagnak30OraTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 30;
model.IsTankoteles = true;
return ErtesitesTanuloAlapon(model, true, nameof(NktErtesitesAltalanosSzabalysertesiHatosagnak30OraTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesCsaladiPotlekJogosultjanakReszere10OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 10;
model.IsTankoteles = true;
return ErtesitesGondviseloAlapon(model, true, nameof(NktErtesitesCsaladiPotlekJogosultjanakReszere10OraUtanTankoteles), isSzulonek: true);
}
[HttpPost]
public ActionResult NktErtesitesSzulonek1OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 1;
model.IsTankoteles = true;
return ErtesitesGondviseloAlapon(model, true, nameof(NktErtesitesSzulonek1OraUtanTankoteles), isSzulonek: true);
}
[HttpPost]
public ActionResult NktErtesitesSzulonek10OraUtanTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 10;
model.IsTankoteles = true;
return ErtesitesGondviseloAlapon(model, true, nameof(NktErtesitesSzulonek10OraUtanTankoteles), isSzulonek: true);
}
[HttpPost]
public ActionResult NktErtesitesCsaladiPotlekJogosultjanakReszere10OraUtanNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 10;
return ErtesitesGondviseloAlapon(model, false, nameof(NktErtesitesCsaladiPotlekJogosultjanakReszere10OraUtanNemTankoteles), isSzulonek: true);
}
[HttpPost]
public ActionResult NktErtesitesNagykoruMasodikNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 11;
return ErtesitesTanuloAlapon(model, false, nameof(NktErtesitesNagykoruMasodikNemTankoteles), null, null);
}
[HttpPost]
public ActionResult NktKerelemCsaladtamFeladatkorbenEljaroKormhivatal50utanNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 50;
return ErtesitesTanuloAlapon(model, false, nameof(NktKerelemCsaladtamFeladatkorbenEljaroKormhivatal50utanNemTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesGyamhivatalReszere50OraUtanNemTankotelesKiskoru(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 50;
return ErtesitesTanuloAlapon(model, false, nameof(NktErtesitesGyamhivatalReszere50OraUtanNemTankotelesKiskoru), 1, 4);
}
[HttpPost]
public ActionResult NktErtesitesCsaladGyermekjoletReszere11OraUtanNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 11;
return ErtesitesTanuloAlapon(model, false, nameof(NktErtesitesCsaladGyermekjoletReszere11OraUtanNemTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesGyamhivatalReszere50OraUtanNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 50;
return ErtesitesTanuloAlapon(model, false, nameof(NktErtesitesGyamhivatalReszere50OraUtanNemTankoteles), null, 1);
}
[HttpPost]
public ActionResult NktErtesitesSzulonek11OraUtanNemTankotelesKiskoru(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 11;
return ErtesitesGondviseloAlapon(model, false, nameof(NktErtesitesSzulonek11OraUtanNemTankotelesKiskoru), isSzulonek: true);
}
[HttpPost]
public ActionResult NktErtesitesSzulonek10OraUtanNemTankotelesKiskoru(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 10;
return ErtesitesGondviseloAlapon(model, false, nameof(NktErtesitesSzulonek10OraUtanNemTankotelesKiskoru), isSzulonek: true);
}
[HttpPost]
public ActionResult NktErtesitesCsaladGyermekjoletReszere10OraUtanNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 10;
return ErtesitesTanuloAlapon(model, false, nameof(NktErtesitesCsaladGyermekjoletReszere10OraUtanNemTankoteles), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesNagykoruTanulo10OraUtanNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 10;
return ErtesitesTanuloAlapon(model, false, nameof(NktErtesitesNagykoruTanulo10OraUtanNemTankoteles), null, null);
}
[HttpPost]
public ActionResult NktErtesitesGyermekvedelmiSzakszolgReszere10OraUtanNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 10;
return ErtesitesTanuloAlapon(model, false, nameof(NktErtesitesGyermekvedelmiSzakszolgReszere10OraUtanNemTankoteles), null, 2);
}
[HttpPost]
public ActionResult NktErtesitesKollegium10OraUtanNemTankotelesKiskoru(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 10;
return ErtesitesTanuloAlapon(model, false, nameof(NktErtesitesKollegium10OraUtanNemTankotelesKiskoru), 1, 2);
}
[HttpPost]
public ActionResult NktErtesitesAMIElsoErtesitoNagykorunakNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 1;
return ErtesitesTanuloAlapon(model, false, nameof(NktErtesitesAMIElsoErtesitoNagykorunakNemTankoteles), null, null, true);
}
[HttpPost]
public ActionResult NktErtesitesAMIMasodikErtesitoNagykorunakNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 1;
return ErtesitesTanuloAlapon(model, false, nameof(NktErtesitesAMIMasodikErtesitoNagykorunakNemTankoteles), null, null, true);
}
[HttpPost]
public ActionResult NktErtesitesAMIElsoErtesitoSzulonekNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 1;
return ErtesitesGondviseloAlapon(model, false, nameof(NktErtesitesAMIElsoErtesitoSzulonekNemTankoteles), true, isSzulonek: true);
}
[HttpPost]
public ActionResult NktErtesitesAMIMasodikErtesitoSzulonekNemTankoteles(NyomtatvanyModel model)
{
model.IgazolatlanOrakSzama = 1;
return ErtesitesGondviseloAlapon(model, false, nameof(NktErtesitesAMIMasodikErtesitoSzulonekNemTankoteles), true, isSzulonek: true);
}
#endregion
#region Mulasztasi értesítők - Szkt.
[HttpPost]
public ActionResult ErtesitesSzulonekEgyOraUtanTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitoSzulonekTK1_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitoSzulonekTK1_TorzsText},
{"CimzoText", string.Empty},
{"TorzsFooterText", string.Empty},
{"IsCimzoAndIktatoszamVisible", false },
{"IsGondviseloDetailsVisible", false },
{"IsMulasztasokDetailsVisible", false },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
model.IsTankoteles = true;
return GetMulasztasErtesito(model, frxParameterek, true, 1, NyomtatvanyokResource.ErtesitoSzulonekTK1_Fajlnev, isSzulonek: true);
}
[HttpPost]
public ActionResult ErtesitesSzulonekNemTK10([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitesSzulonekNemTK10_Fejlectext},
{"TorzsHeaderText", model.FormatumId == (int)NyomtatvanyFormatumEnum.PDF ? NyomtatvanyokResource.ErtesitesSzulonekNemTK10_TorzsText : NyomtatvanyokResource.ErtesitesSzulonekNemTK10_TorzsText.Replace("<u>", string.Empty).Replace("</u>", string.Empty)},
{"TorzsFooterText", string.Empty},
{"CimzoText", string.Empty},
{"IsCimzoAndIktatoszamVisible", false },
{"IsGondviseloDetailsVisible", false },
{"IsMulasztasokDetailsVisible", false },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
return GetMulasztasErtesito(model, frxParameterek, false, 10, NyomtatvanyokResource.ErtesitesSzulonekNemTK10_Fajlnev, isSzulonek: true);
}
[HttpPost]
public ActionResult ErtesitesTanulonakTizOraUtanNemTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitoTanulonakNemTK10_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitoTanulonakNemTK10_TorzsText},
{"CimzoText", string.Empty},
{"TorzsFooterText", string.Empty},
{"IsCimzoAndIktatoszamVisible", false },
{"IsGondviseloDetailsVisible", false },
{"IsMulasztasokDetailsVisible", false },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
return GetMulasztasErtesito(model, frxParameterek, false, 10, NyomtatvanyokResource.ErtesitoTanulonakNemTK10_Fajlnev);
}
[HttpPost]
public ActionResult ErtesitesSzulonekTizOraUtanCstTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitoSzuloknekCstTK10_FejlecText},
{"TorzsHeaderText", model.FormatumId == (int)NyomtatvanyFormatumEnum.PDF ? NyomtatvanyokResource.ErtesitoSzuloknekCstTK10_TorzsText : NyomtatvanyokResource.ErtesitoSzuloknekCstTK10_TorzsText.Replace("<i>", string.Empty).Replace("</i>", string.Empty)},
{"TorzsFooterText", string.Empty},
{"CimzoText", string.Empty},
{"IsCimzoAndIktatoszamVisible", false },
{"IsGondviseloDetailsVisible", false },
{"IsMulasztasokDetailsVisible", false },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
model.IsTankoteles = true;
return GetMulasztasErtesito(model, frxParameterek, true, 10, NyomtatvanyokResource.ErtesitoSzuloknekCstTK10_Fajlnev, isSzulonek: true);
}
[HttpPost]
public ActionResult ErtesitesSzulonekTizOraUtanCstNemTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitoSzuloknekCstNemTK10_FejlecText},
{"TorzsHeaderText", model.FormatumId == (int)NyomtatvanyFormatumEnum.PDF ? NyomtatvanyokResource.ErtesitoSzuloknekCstNemTK10_TorzsText : NyomtatvanyokResource.ErtesitoSzuloknekCstNemTK10_TorzsText.Replace("<i>", string.Empty).Replace("</i>", string.Empty)},
{"TorzsFooterText", string.Empty},
{"CimzoText", string.Empty},
{"IsCimzoAndIktatoszamVisible", false },
{"IsGondviseloDetailsVisible", false },
{"IsMulasztasokDetailsVisible", false },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
return GetMulasztasErtesito(model, frxParameterek, false, 10, NyomtatvanyokResource.ErtesitoSzuloknekCstNemTK10_Fajlnev, isSzulonek: true);
}
[HttpPost]
public ActionResult ErtesitesGyamhatosag5OraTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitesGyamhatosag5OraNemTK_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitesGyamhivatalnak5TK_TorzsHeaderText},
{"TorzsFooterText", NyomtatvanyokResource.ErtesitesGyamhivatalnak5NT_TorzsFooterText},
{"CimzoText", NyomtatvanyokResource.ErtesitesGyamhivatalnak5NT_CimzoText},
{"IsCimzoAndIktatoszamVisible", true },
{"IsGondviseloDetailsVisible", true },
{"IsMulasztasokDetailsVisible", true },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
model.IsTankoteles = true;
return GetMulasztasErtesito(model, frxParameterek, true, 5, NyomtatvanyokResource.ErtesitesGyamhivatalnak5TK_Fajlnev);
}
[HttpPost]
public ActionResult ErtesitesGyamhatosag5OraNemTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitesGyamhatosag5OraNemTK_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitesGyamhivatalnak5NT_TorzsHeaderText},
{"TorzsFooterText", NyomtatvanyokResource.ErtesitesGyamhivatalnak5NT_TorzsFooterText},
{"CimzoText", NyomtatvanyokResource.ErtesitesGyamhivatalnak5NT_CimzoText},
{"IsCimzoAndIktatoszamVisible", true },
{"IsGondviseloDetailsVisible", true },
{"IsMulasztasokDetailsVisible", true },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
return GetMulasztasErtesito(model, frxParameterek, false, 5, NyomtatvanyokResource.ErtesitesGyamhivatalnak5NT_Fajlnev);
}
[HttpPost]
public ActionResult ErtesitesGyamhatosag25OraTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitesGyamhatosag5OraNemTK_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitesGyamhivatalnak5TK_TorzsHeaderText},
{"TorzsFooterText", NyomtatvanyokResource.ErtesitesGyamhivatalnak25TK_TorzsFooterText},
{"CimzoText", NyomtatvanyokResource.ErtesitesGyamhivatalnak5NT_CimzoText},
{"IsCimzoAndIktatoszamVisible", true },
{"IsGondviseloDetailsVisible", true },
{"IsMulasztasokDetailsVisible", true },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
model.IsTankoteles = true;
return GetMulasztasErtesito(model, frxParameterek, true, 25, NyomtatvanyokResource.ErtesitesGyamhatosag25OraTK_Fajlnev);
}
[HttpPost]
public ActionResult ErtesitesGyamhatosag10CstTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
model.IsTankoteles = true;
return ErtesitesGyamhatosag10Cst(model, true, NyomtatvanyokResource.ErtesitesGyamhivatalnak10CstTK_Fajlnev);
}
[HttpPost]
public ActionResult ErtesitesGyamhatosag10CstNTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return ErtesitesGyamhatosag10Cst(model, false, NyomtatvanyokResource.ErtesitesGyamhivatalnak10CstNT_Fajlnev);
}
[HttpPost]
public ActionResult ErtesitesGyermekjoletiSzolgalat5OraTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitesGyermekjoletiSzolgalat5OraTK_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitesGyermekjoletiSzolgalat5OraTK_TorzsHeaderText},
{"TorzsFooterText", NyomtatvanyokResource.ErtesitesGyermekjoletiSzolgalat5OraTK_TorzsFooterText},
{"CimzoText", NyomtatvanyokResource.ErtesitesGyermekjoletiSzolgalat5OraTK_CimzoText},
{"IsCimzoAndIktatoszamVisible", true },
{"IsGondviseloDetailsVisible", true },
{"IsMulasztasokDetailsVisible", true },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
model.IsTankoteles = true;
return GetMulasztasErtesito(model, frxParameterek, true, 5, NyomtatvanyokResource.ErtesitesGyermekjoletiSzolgalat5OraTK_Fajlnev);
}
[HttpPost]
public ActionResult ErtesitesGyermekjoleti15OraTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitesGyermekjoleti15OraTK_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitesGyermekjoleti15OraTK_TorzsHeaderText},
{"TorzsFooterText", NyomtatvanyokResource.ErtesitesGyermekjoleti15OraTK_TorzsFooterText},
{"CimzoText", NyomtatvanyokResource.ErtesitesGyermekjoleti15OraTK_CimzoText},
{"IsCimzoAndIktatoszamVisible", true },
{"IsGondviseloDetailsVisible", true },
{"IsMulasztasokDetailsVisible", true },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", true },
{"MellekletLabelText", NyomtatvanyokResource.ErtesitesGyermekjoleti15OraTK_MellekletLabelText },
{"IsMellekletLabelVisible", true }
};
model.IsTankoteles = true;
return GetMulasztasErtesito(model, frxParameterek, true, 15, NyomtatvanyokResource.ErtesitesGyermekjoleti15OraTK_Fajlnev);
}
[HttpPost]
public ActionResult ErtesitesGyermekvedelmiszolg5OraTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraTK_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraTK_TorzsHeaderText},
{"TorzsFooterText", NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraTK_TorzsFooterText},
{"CimzoText", NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraTK_CimzoText},
{"IsCimzoAndIktatoszamVisible", true },
{"IsGondviseloDetailsVisible", true },
{"IsMulasztasokDetailsVisible", true },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", true },
{"MellekletLabelText", NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraTK_MellekletLabelText },
{"IsMellekletLabelVisible", true }
};
model.IsTankoteles = true;
return GetMulasztasErtesito(model, frxParameterek, true, 5, NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraTK_Fajlnev);
}
[HttpPost]
public ActionResult ErtesitesGyermekvedelmiszolg5OraNemTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraNemTK_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraNemTK_TorzsHeaderText},
{"TorzsFooterText", NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraNemTK_TorzsFooterText},
{"CimzoText", NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraNemTK_CimzoText},
{"IsCimzoAndIktatoszamVisible", true },
{"IsGondviseloDetailsVisible", true },
{"IsMulasztasokDetailsVisible", true },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", true },
{"MellekletLabelText", NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraNemTK_MellekletLabelText },
{"IsMellekletLabelVisible", true }
};
return GetMulasztasErtesito(model, frxParameterek, false, 5, NyomtatvanyokResource.ErtesitesGyermekvedelmiszolg5OraNemTK_Fajlnev);
}
[HttpPost]
public ActionResult ErtesitesAltSzabalysertes15OraTK([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var frxParameterek = new Dictionary<string, object>
{
{"FejlecText", NyomtatvanyokResource.ErtesitesAltSzabalysertes15OraTK_FejlecText},
{"TorzsHeaderText", NyomtatvanyokResource.ErtesitesAltSzabalysertes15OraTK_TorzsHeaderText},
{"TorzsFooterText", NyomtatvanyokResource.ErtesitesAltSzabalysertes15OraTK_TorzsFooterText},
{"CimzoText", string.Empty},
{"IsCimzoAndIktatoszamVisible", true },
{"IsGondviseloDetailsVisible", true },
{"IsMulasztasokDetailsVisible", true },
{"IsTiszteletteltextVisible", false },
{"IsCimzettLabelVisible", false },
{"MellekletLabelText", string.Empty },
{"IsMellekletLabelVisible", false }
};
model.IsTankoteles = true;
return GetMulasztasErtesito(model, frxParameterek, true, 15, NyomtatvanyokResource.ErtesitesAltSzabalysertes15OraTK_Fajlnev);
}
#endregion Mulasztasi értesítők - Szkt.
}
}

View file

@ -0,0 +1,410 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Web.Mvc;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private static string RemoveTooLongElementOrTrunc(string text, int maxLength = 80)
{
for (int i = 0; i < text.Split('_').Length - 4; i++)
{
text = text.Wrap(0, text.LastIndexOf('_'));
if (text.Length <= maxLength)
{
return text;
}
}
return text.Wrap(0, maxLength);
}
private static string RemoveSpecialCharacters(string text)
{
return text
.ToComparableString()
.Replace("*", "_")
.Replace(" - ", "_")
.Replace('ö', 'o')
.Replace('ü', 'u')
.Replace(' ', '_')
.Replace('-', '_')
.Replace(":", "_")
.Replace(";", "_")
.Replace(",", "_")
.Replace(".", "_");
}
#region KIRStat
public ActionResult KirStatTanulok([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
var output = new MemoryStream();
var zipOutput = new ZipOutputStream(output);
try
{
SZIRStatHelper szirSatHelper = new SZIRStatHelper(ConnectionTypeExtensions.GetSessionConnectionType());
Dictionary<int, string> feladatellatasiHelyFileNevDictionary = szirSatHelper.GetKirSzirFeladatEllatasiHelyDDl(true);
List<int> feladatellatasiHelyIdList = model.FeladatellatasiHelyIdList;
if (feladatellatasiHelyIdList == null || feladatellatasiHelyIdList.Count == 0)
{
feladatellatasiHelyIdList = new List<int>();
foreach (KeyValuePair<int, string> item in feladatellatasiHelyFileNevDictionary)
{
feladatellatasiHelyIdList.Add(item.Key);
}
}
string nyomtatvanyNeve = "KIR_OSA4TANU";
string segedletNeve = "KIR_OSA4TANU_segedlet";
foreach (int id in feladatellatasiHelyIdList)
{
string currentFileNameFeladatellatasiHelyDatummal = $"{RemoveTooLongElementOrTrunc(RemoveSpecialCharacters(feladatellatasiHelyFileNevDictionary[id]))}_{DateTime.Now:yyyy_MM_dd_HH_mm}";
var memoryStreamList = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetKirStatForTanulo(Server.MapPath("~/Resources/KIRStat/XLS/" + nyomtatvanyNeve + ".xlsx"), id);
AddExcelMintZipEntry(zipOutput, memoryStreamList[0], nyomtatvanyNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
AddExcelMintZipEntry(zipOutput, memoryStreamList[1], segedletNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
}
zipOutput.Finish();
output.Position = 0;
return new FileStreamResult(output, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{nyomtatvanyNeve}_{DateTime.Now:yyyy_MM_dd_HH_mm}.{Constants.ImportExport.FileFormatZip}"
};
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult KirStatTanulokSegedlet()
{
FileStream fs = new FileStream(Server.MapPath("~/Resources/KIRStat/PDF/KIR_OSA4TANU_segedlet.pdf"), FileMode.Open, FileAccess.Read);
return new FileStreamResult(fs, Constants.ImportExport.FileFormatPdf)
{
FileDownloadName = $"KIR_OSA4TANU_segedlet.pdf"
};
}
public ActionResult KirStatFelhasznalok([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
var output = new MemoryStream();
var zipOutput = new ZipOutputStream(output);
try
{
SZIRStatHelper szirSatHelper = new SZIRStatHelper(ConnectionTypeExtensions.GetSessionConnectionType());
Dictionary<int, string> feladatellatasiHelyFileNevDictionary = szirSatHelper.GetKirSzirFeladatEllatasiHelyDDl(true);
List<int> feladatellatasiHelyIdList = model.FeladatellatasiHelyIdList;
if (feladatellatasiHelyIdList == null || feladatellatasiHelyIdList.Count == 0)
{
feladatellatasiHelyIdList = new List<int>();
foreach (var item in feladatellatasiHelyFileNevDictionary)
{
feladatellatasiHelyIdList.Add(item.Key);
}
}
string nyomtatvanyNeve = "KIR_OSA2FELH";
string segedletNeve = "KIR_OSA2FELH_segedlet";
bool isKlebelsberg = ClaimData.IsKlebelsberg;
foreach (int id in feladatellatasiHelyIdList)
{
string currentFileNameFeladatellatasiHelyDatummal = $"{RemoveTooLongElementOrTrunc(RemoveSpecialCharacters(feladatellatasiHelyFileNevDictionary[id]))}_{DateTime.Now:yyyy_MM_dd_HH_mm}";
var memoryStreamList = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetKirStatForFelhasznalo(Server.MapPath("~/Resources/KIRStat/XLS/" + nyomtatvanyNeve + ".xlsx"), id, isKlebelsberg);
AddExcelMintZipEntry(zipOutput, memoryStreamList[0], nyomtatvanyNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
AddExcelMintZipEntry(zipOutput, memoryStreamList[1], segedletNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
}
zipOutput.Finish();
output.Position = 0;
return new FileStreamResult(output, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{nyomtatvanyNeve}_{DateTime.Now:yyyy_MM_dd_HH_mm}.{Constants.ImportExport.FileFormatZip}"
};
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult KirStatFelhasznalokSegedlet()
{
FileStream fs = new FileStream(Server.MapPath("~/Resources/KIRStat/PDF/KIR_OSA2FELH_segedlet.pdf"), FileMode.Open, FileAccess.Read);
return new FileStreamResult(fs, Constants.ImportExport.FileFormatPdf)
{
FileDownloadName = $"KIR_OSA2FELH_segedlet.pdf"
};
}
#endregion KIRStat
#region SZIRStat
public ActionResult SzirStatIntezmeny([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
try
{
SZIRStatHelper szirSatHelper = new SZIRStatHelper(ConnectionTypeExtensions.GetSessionConnectionType());
string nyomtatvanyNeve = "SZIR_OSA1INT";
var memoryStreamList = szirSatHelper.GetSzirStatIntezmeny(Server.MapPath("~/Resources/SZIRStat/XLS/" + nyomtatvanyNeve + ".xlsx"));
return new FileStreamResult(memoryStreamList[0], Constants.ImportExport.FileFormatXlsx)
{
FileDownloadName = $"{nyomtatvanyNeve}_{DateTime.Now:yyyy_MM_dd_HH_mm}.{Constants.ImportExport.FileFormatXlsx}"
};
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult SzirStatTanulok([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
var output = new MemoryStream();
var zipOutput = new ZipOutputStream(output);
try
{
SZIRStatHelper szirSatHelper = new SZIRStatHelper(ConnectionTypeExtensions.GetSessionConnectionType());
Dictionary<int, string> feladatellatasiHelyFileNevDictionary = szirSatHelper.GetKirSzirFeladatEllatasiHelyDDl(false);
List<int> feladatellatasiHelyIdList = model.FeladatellatasiHelyIdList;
if (feladatellatasiHelyIdList == null || feladatellatasiHelyIdList.Count == 0)
{
feladatellatasiHelyIdList = new List<int>();
foreach (KeyValuePair<int, string> item in feladatellatasiHelyFileNevDictionary)
{
feladatellatasiHelyIdList.Add(item.Key);
}
}
string nyomtatvanyNeve = "SZIR_OSA4TANU";
string segedletNeve = "SZIR_OSA4TANU_segedlet";
foreach (int id in feladatellatasiHelyIdList)
{
string currentFileNameFeladatellatasiHelyDatummal = $"{RemoveTooLongElementOrTrunc(RemoveSpecialCharacters(feladatellatasiHelyFileNevDictionary[id]))}_{DateTime.Now:yyyy_MM_dd_HH_mm}";
var memoryStreamList = szirSatHelper.GetSzirStatForTanulo(Server.MapPath("~/Resources/SZIRStat/XLS/" + nyomtatvanyNeve + ".xlsx"), id);
AddExcelMintZipEntry(zipOutput, memoryStreamList[0], nyomtatvanyNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
AddExcelMintZipEntry(zipOutput, memoryStreamList[1], segedletNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
}
zipOutput.Finish();
output.Position = 0;
return new FileStreamResult(output, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{nyomtatvanyNeve}_{DateTime.Now:yyyy_MM_dd_HH_mm}.{Constants.ImportExport.FileFormatZip}"
};
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult SzirStatTanulokSegedlet()
{
FileStream fs = new FileStream(Server.MapPath("~/Resources/SZIRStat/PDF/SZIR_OSA4TANU_segedlet.pdf"), FileMode.Open, FileAccess.Read);
return new FileStreamResult(fs, Constants.ImportExport.FileFormatPdf)
{
FileDownloadName = $"SZIR_OSA4TANU_segedlet.pdf"
};
}
public ActionResult SzirStatFelhasznalok([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
var output = new MemoryStream();
var zipOutput = new ZipOutputStream(output);
try
{
SZIRStatHelper szirSatHelper = new SZIRStatHelper(ConnectionTypeExtensions.GetSessionConnectionType());
Dictionary<int, string> feladatellatasiHelyFileNevDictionary = szirSatHelper.GetKirSzirFeladatEllatasiHelyDDl(false);
List<int> feladatellatasiHelyIdList = model.FeladatellatasiHelyIdList;
if (feladatellatasiHelyIdList == null || feladatellatasiHelyIdList.Count == 0)
{
feladatellatasiHelyIdList = new List<int>();
foreach (var item in feladatellatasiHelyFileNevDictionary)
{
feladatellatasiHelyIdList.Add(item.Key);
}
}
string nyomtatvanyNeve = "SZIR_OSA2FELH";
string segedletNeve = "SZIR_OSA2FELH_segedlet";
bool isKlebelsberg = ClaimData.IsKlebelsberg;
foreach (int id in feladatellatasiHelyIdList)
{
string currentFileNameFeladatellatasiHelyDatummal = $"{RemoveTooLongElementOrTrunc(RemoveSpecialCharacters(feladatellatasiHelyFileNevDictionary[id]))}_{DateTime.Now:yyyy_MM_dd_HH_mm}";
var memoryStreamList = szirSatHelper.GetSzirStatForFelhasznalo(Server.MapPath("~/Resources/SZIRStat/XLS/" + nyomtatvanyNeve + ".xlsx"), id, isKlebelsberg);
AddExcelMintZipEntry(zipOutput, memoryStreamList[0], nyomtatvanyNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
AddExcelMintZipEntry(zipOutput, memoryStreamList[1], segedletNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
}
zipOutput.Finish();
output.Position = 0;
return new FileStreamResult(output, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{nyomtatvanyNeve}_{DateTime.Now:yyyy_MM_dd_HH_mm}.{Constants.ImportExport.FileFormatZip}"
};
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult SzirStatFelhasznalokSegedlet()
{
FileStream fs = new FileStream(Server.MapPath("~/Resources/SZIRStat/PDF/SZIR_OSA2FELH_segedlet.pdf"), FileMode.Open, FileAccess.Read);
return new FileStreamResult(fs, Constants.ImportExport.FileFormatPdf)
{
FileDownloadName = $"SZIR_OSA2FELH_segedlet.pdf"
};
}
public ActionResult SzirStatSzak([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
var output = new MemoryStream();
var zipOutput = new ZipOutputStream(output);
try
{
SZIRStatHelper szirSatHelper = new SZIRStatHelper(ConnectionTypeExtensions.GetSessionConnectionType());
Dictionary<int, string> feladatellatasiHelyFileNevDictionary = szirSatHelper.GetKirSzirFeladatEllatasiHelyDDl(false);
List<int> feladatellatasiHelyIdList = model.FeladatellatasiHelyIdList;
if (feladatellatasiHelyIdList == null || feladatellatasiHelyIdList.Count == 0)
{
feladatellatasiHelyIdList = new List<int>();
foreach (var item in feladatellatasiHelyFileNevDictionary)
{
feladatellatasiHelyIdList.Add(item.Key);
}
}
string nyomtatvanyNeve = "SZIR_OSA5SZAK";
//string segedletNeve = "SZIR_OSA5SZAK_segedlet";
if (feladatellatasiHelyIdList.Count > 1)
{
foreach (int id in feladatellatasiHelyIdList)
{
string currentFileNameFeladatellatasiHelyDatummal = $"{RemoveTooLongElementOrTrunc(RemoveSpecialCharacters(feladatellatasiHelyFileNevDictionary[id]))}_{DateTime.Now:yyyy_MM_dd_HH_mm}";
var memoryStreamList = szirSatHelper.GetSzirStatSzak(Server.MapPath("~/Resources/SZIRStat/XLS/" + nyomtatvanyNeve + ".xlsx"), id);
AddExcelMintZipEntry(zipOutput, memoryStreamList[0], nyomtatvanyNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
//AddExcelMintZipEntry(zipOutput, memoryStreamList[1], segedletNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
}
zipOutput.Finish();
output.Position = 0;
return new FileStreamResult(output, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{nyomtatvanyNeve}_{DateTime.Now:yyyy_MM_dd_HH_mm}.{Constants.ImportExport.FileFormatZip}"
};
}
else
{
string currentFileNameFeladatellatasiHelyDatummal = $"{RemoveTooLongElementOrTrunc(RemoveSpecialCharacters(feladatellatasiHelyFileNevDictionary[feladatellatasiHelyIdList[0]]))}_{DateTime.Now:yyyy_MM_dd_HH_mm}";
var memoryStreamList = szirSatHelper.GetSzirStatSzak(Server.MapPath("~/Resources/SZIRStat/XLS/" + nyomtatvanyNeve + ".xlsx"), feladatellatasiHelyIdList[0]);
return new FileStreamResult(memoryStreamList[0], Constants.ImportExport.FileFormatXlsx)
{
FileDownloadName = $"{nyomtatvanyNeve}_{currentFileNameFeladatellatasiHelyDatummal}.{Constants.ImportExport.FileFormatXlsx}"
};
}
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult SzirStatMuv([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
var output = new MemoryStream();
var zipOutput = new ZipOutputStream(output);
try
{
SZIRStatHelper szirSatHelper = new SZIRStatHelper(ConnectionTypeExtensions.GetSessionConnectionType());
Dictionary<int, string> feladatellatasiHelyFileNevDictionary = szirSatHelper.GetKirSzirFeladatEllatasiHelyDDl(false);
List<int> feladatellatasiHelyIdList = model.FeladatellatasiHelyIdList;
if (feladatellatasiHelyIdList == null || feladatellatasiHelyIdList.Count == 0)
{
feladatellatasiHelyIdList = new List<int>();
foreach (var item in feladatellatasiHelyFileNevDictionary)
{
feladatellatasiHelyIdList.Add(item.Key);
}
}
string nyomtatvanyNeve = "SZIR_OSA11MUV";
//string segedletNeve = "SZIR_OSA11MUV_segedlet";
if (feladatellatasiHelyIdList.Count > 1)
{
foreach (int id in feladatellatasiHelyIdList)
{
string currentFileNameFeladatellatasiHelyDatummal = $"{RemoveTooLongElementOrTrunc(RemoveSpecialCharacters(feladatellatasiHelyFileNevDictionary[id]))}_{DateTime.Now:yyyy_MM_dd_HH_mm}";
var memoryStreamList = szirSatHelper.GetSzirStatMuv(Server.MapPath("~/Resources/SZIRStat/XLS/" + nyomtatvanyNeve + ".xlsx"), id);
AddExcelMintZipEntry(zipOutput, memoryStreamList[0], nyomtatvanyNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
//AddExcelMintZipEntry(zipOutput, memoryStreamList[1], segedletNeve + "_" + currentFileNameFeladatellatasiHelyDatummal);
}
zipOutput.Finish();
output.Position = 0;
return new FileStreamResult(output, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{nyomtatvanyNeve}_{DateTime.Now:yyyy_MM_dd_HH_mm}.{Constants.ImportExport.FileFormatZip}"
};
}
else
{
string currentFileNameFeladatellatasiHelyDatummal = $"{RemoveTooLongElementOrTrunc(RemoveSpecialCharacters(feladatellatasiHelyFileNevDictionary[feladatellatasiHelyIdList[0]]))}_{DateTime.Now:yyyy_MM_dd_HH_mm}";
var memoryStreamList = szirSatHelper.GetSzirStatMuv(Server.MapPath("~/Resources/SZIRStat/XLS/" + nyomtatvanyNeve + ".xlsx"), feladatellatasiHelyIdList[0]);
return new FileStreamResult(memoryStreamList[0], Constants.ImportExport.FileFormatXlsx)
{
FileDownloadName = $"{nyomtatvanyNeve}_{currentFileNameFeladatellatasiHelyDatummal}.{Constants.ImportExport.FileFormatXlsx}"
};
}
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#endregion SZIRStat
}
}

View file

@ -0,0 +1,371 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.IO;
using System.Linq;
using System.Web.Mvc;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private ActionResult Osztalynaplok([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model, NyomtatvanyEnum nyomtatvanyTipus = NyomtatvanyEnum.Naplo, Enums.DokumentumTipusEnum dokumentumTipus = Enums.DokumentumTipusEnum.Osztalynaplo)
{
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
try
{
var mentesNaplozarasba = nyomtatvanyTipus == NyomtatvanyEnum.Naplo;
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
var minTanoraSzam = GetMinTanoraSzam();
var isSzovegesNaplo = model.HaladasiNaploFormatumId == 1 || nyomtatvanyTipus == NyomtatvanyEnum.OsztalyozoNaplo;
var isEllenorzo = nyomtatvanyTipus == NyomtatvanyEnum.Ellenorzo;
var buffer = new byte[Constants.General.BufferSize];
string nyomtatvanyNeve;
bool isHaladasiNaplo = false, isOsztalyozoNaplo = false;
if ((model.HaladasiNaploFormatumId == (int)HaladasiNaploFormatumEnum.A4) && (nyomtatvanyTipus != NyomtatvanyEnum.HaladasiNaplo))
{
nyomtatvanyTipus = NyomtatvanyEnum.Naplo_szoveges;
}
switch (nyomtatvanyTipus)
{
case NyomtatvanyEnum.Naplo_szoveges:
nyomtatvanyNeve = model.FuggolegesTantargyak ? NyomtatvanyEnum.Naplo_szoveges_fuggoleges.ToString() : NyomtatvanyEnum.Naplo_szoveges.ToString();
break;
case NyomtatvanyEnum.Naplo:
nyomtatvanyNeve = model.FuggolegesTantargyak ? NyomtatvanyEnum.Naplo_fuggoleges.ToString() : NyomtatvanyEnum.Naplo.ToString();
break;
case NyomtatvanyEnum.OsztalyozoNaplo:
nyomtatvanyNeve = model.FuggolegesTantargyak ? NyomtatvanyEnum.Naplo_fuggoleges.ToString() : NyomtatvanyEnum.Naplo.ToString();
isOsztalyozoNaplo = true;
break;
case NyomtatvanyEnum.HaladasiNaplo:
nyomtatvanyNeve = (model.HaladasiNaploFormatumId == (int)HaladasiNaploFormatumEnum.A4) ? NyomtatvanyEnum.Naplo_szoveges.ToString() : NyomtatvanyEnum.Naplo.ToString();
isHaladasiNaplo = true;
break;
case NyomtatvanyEnum.Ellenorzo:
nyomtatvanyNeve = NyomtatvanyEnum.Ellenorzo.ToString();
break;
default:
nyomtatvanyNeve = NyomtatvanyEnum.Naplo.ToString();
break;
}
var orarendErvenyessegiDatum = model.OrarendErvenyessegiDatum;
if (model.OrarendErvenyessegiDatum == DateTime.MinValue)
{
orarendErvenyessegiDatum = DateTime.Now;
}
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
List<int> osztalyIdList = GetOsztalyIdList(model.OsztalyIdList, oktNevKategoria);
if (osztalyIdList.Count == 0)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
var nyomtatvanyokHelper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var osztalyId in osztalyIdList)
{
var ds = nyomtatvanyokHelper.GetOsztalynaplo(osztalyId, ClaimData.AktivTanevID, isIskolaerdekuSzamit, model.FuggolegesTantargyak, model.ReszletesMulasztasok, model.EgyebFoglalkozasok, minTanoraSzam, orarendErvenyessegiDatum, isEllenorzo, isSzovegesNaplo, model.NaploZaras, osztalyTanuloOrarendbenNemLatszik: true, isMagatartasSzorgalomNemLatszik: !model.MagatartasSzorgalomMegjelenitese);
int orarendUtolsoNapja = nyomtatvanyokHelper.GetOrarendUtolsoNapja(ds.Tables["Orarend"]);
var parameters = new Dictionary<string, object>
{
{"pTargy", StringResourcesUtil.GetString(252)},
{"pJan", StringResourcesUtil.GetString(198)},
{"pFeb", StringResourcesUtil.GetString(199)},
{nameof(orarendUtolsoNapja), orarendUtolsoNapja}
};
string osztalyNev;
if (ds.Tables.Count > 0 && ds.Tables["Fejlec"] != null && ds.Tables["Fejlec"].Rows.Count > 0 && ds.Tables["Fejlec"].Columns.Contains("OsztalyNev"))
{
osztalyNev = ds.Tables["Fejlec"].Rows[0]["OsztalyNev"].ToString();
}
else
{
osztalyNev = StringResourcesUtil.GetString(435); /*Osztály név megadása kötelező!*/
}
parameters.Add("OsztalyNev", osztalyNev);
if (ds.Tables.Count > 0 && ds.Tables["Fejlec"] != null && ds.Tables["Fejlec"].Rows.Count > 0)
{
parameters.Add("MaxOraszam", ds.Tables["Fejlec"].Rows[0]["MaxOraszam"].ToString());
parameters.Add("MinOraszam", ds.Tables["Fejlec"].Rows[0]["MinOraszam"].ToString());
}
var oszlopok = new List<string>();
for (var i = 11; i < ds.Tables["NaploAdatok"].Columns.Count; i++)
{
oszlopok.Add(ds.Tables["NaploAdatok"].Columns[i].ColumnName);
}
parameters.Add("Oszlopok", oszlopok.ToArray());
var ertoszlopok = new List<string>();
for (var i = 0; i < ds.Tables["TanuloTantargyiErtekelesei"].Columns.Count; i++)
{
ertoszlopok.Add(ds.Tables["TanuloTantargyiErtekelesei"].Columns[i].ColumnName);
}
ertoszlopok.Remove("periodusId");
ertoszlopok.Remove("tanuloID");
ertoszlopok.Remove("TanuloCsoportId");
parameters.Add("ErtekelesOszlopok", ertoszlopok.ToArray());
parameters.Add("isLezartNaplo", model.NaploZaras);
parameters.Add("ElmeletGyakorlat", model.ElmeletGyakorlatKulon.ToString());
parameters.Add("FeljegyzesHaviBontas", model.FeljegyzesHaviBontas.ToString());
parameters.Add("FontSizeDifference", model.BetuMeret.AsInt());
var nevmodel = new NyomtatvanyNevGeneralasModel() { OsztalyCsoportId = osztalyId, TanevID = ClaimData.SelectedTanevID.Value };
parameters.Add(nameof(isOsztalyozoNaplo), isOsztalyozoNaplo);
parameters.Add(nameof(isHaladasiNaplo), isHaladasiNaplo);
parameters.Add("AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text);
parameters.Add(nameof(model.EvfolyamSzerepelteteseTanuloiAdatokKozott), model.EvfolyamSzerepelteteseTanuloiAdatokKozott);
parameters.Add(nameof(ClaimData.IsSelectedTanev20_21OrLater), ClaimData.IsSelectedTanev20_21OrLater);
parameters.Add(nameof(ClaimData.IsSelectedTanev21_22OrLater), ClaimData.IsSelectedTanev21_22OrLater);
parameters.Add("IsZaradekDatumVisible", model.ZaradekKeltMegjelenites);
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, ds, Enums.DokumentumElemiSzintEnum.Osztaly);
}
if ((osztalyIdList.Count > 1) && !model.Iktatas)
{
AddNyomtatvanyMintZipEntry(ZipOutPut, ds, nyomtatvanyNeve, parameters, CommonExtensions.NevGeneralas(nyomtatvanyTipus.ToString(), nevmodel), dokumentumTipus: dokumentumTipus);
if (model.NaploZaras && mentesNaplozarasba)
{
nyomtatvanyokHelper.MentesNaplozarasParameterRendszerbeallitasba(osztalyId);
}
}
else
{
var ret = Nyomtatas(ds, nyomtatvanyNeve, parameters, CommonExtensions.NevGeneralas(nyomtatvanyTipus.ToString(), nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyTipus.ToString(), nevmodel, true), osztalyId: osztalyId, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, dokumentumKategoria: DokumentumKategoriaEnum.Naplok, dokumentumTipus: dokumentumTipus, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
if (model.NaploZaras && mentesNaplozarasba)
{
nyomtatvanyokHelper.MentesNaplozarasParameterRendszerbeallitasba(osztalyId);
}
if (osztalyIdList.Count == 1)
{
return ret;
}
}
}
ZipOutPut.Finish();
OutPut.Position = 0;
if (!model.Iktatas)
{
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas(nyomtatvanyNeve, zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
else
{
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult Csoportnaplok(NyomtatvanyModel model, NyomtatvanyEnum nye, Enums.DokumentumTipusEnum dokumentumTipus)
{
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
try
{
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
var buffer = new byte[Constants.General.BufferSize];
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : (OktNevelesiKategoriaEnum?)null;
List<int> csoportIdList = GetCsoportIdList(model.CsoportIdList, oktNevKategoria);
if (csoportIdList.Count == 0)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
foreach (var csoportId in csoportIdList)
{
DataSet ds;
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
switch (nye)
{
case NyomtatvanyEnum.CsoportNaplo:
(int, int)? jelenletAdatok = null;
if (model.JelenletAdatokMegjelenitese)
{
jelenletAdatok = ((int)model.JelenletAdatokOsszesitese, (int)model.JelenletTablazatElrendezese);
}
ds = helper.GetCsoportNaplo(csoportId, model.GyakorlatiOrakMegjelenites, model.ElmeletiOrakMegjelenites, isIskolaerdekuSzamit, model.CsoportnaploTanulokSorrendje, jelenletAdatok, isMagatartasSzorgalomNemLatszik: !model.MagatartasSzorgalomMegjelenitese);
break;
case NyomtatvanyEnum.NapkozisNaplo:
ds = helper.GetNapkozisNaplo(csoportId, isIskolaerdekuSzamit, model.CsoportnaploTanulokSorrendje);
break;
case NyomtatvanyEnum.SzakmaiGyNaplo:
ds = helper.GetSzakmaiGyNaplo(csoportId, isIskolaerdekuSzamit, model.CsoportnaploTanulokSorrendje);
break;
case NyomtatvanyEnum.EgyebFoglalkozasiNaplo:
ds = helper.GetEgyebFoglalkozasiNaplo(csoportId, isIskolaerdekuSzamit, model.CsoportnaploTanulokSorrendje);
break;
default:
ds = helper.GetCsoportNaplo(csoportId, model.GyakorlatiOrakMegjelenites, model.ElmeletiOrakMegjelenites, isIskolaerdekuSzamit, model.CsoportnaploTanulokSorrendje);
break;
}
var parameters = new Dictionary<string, object>
{
{"isLezartNaplo", model.NaploZaras},
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text},
{"JelenletAdatokOsszesitese", (int)model.JelenletAdatokOsszesitese },
{"JelenletTablazatElrendezese", (int)model.JelenletTablazatElrendezese },
{ "FelevHetsorszam", ds.Tables["JelenletFelevEvvegeHetsorszam"] != null ? ds.Tables["JelenletFelevEvvegeHetsorszam"].Rows[0]["FelevHetsorszam"] : -1 },
{ "UtolsoTanitasiNapHetsorszam", ds.Tables["JelenletFelevEvvegeHetsorszam"] != null ? ds.Tables["JelenletFelevEvvegeHetsorszam"].Rows[0]["UtolsoTanitasiNapHetsorszam"] : -1 },
{ "isJelenletAdatokTablakkal", model.JelenletAdatokMegjelenitese },
{ "IsZaradekDatumVisible", model.ZaradekKeltMegjelenites }
};
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value, OsztalyCsoportId = csoportId };
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, ds, Enums.DokumentumElemiSzintEnum.Csoport);
}
if ((csoportIdList.Count > 1) && !model.Iktatas)
{
AddNyomtatvanyMintZipEntry(ZipOutPut, ds, nye.ToString(), parameters, CommonExtensions.NevGeneralas(nye.ToString(), nevmodel), dokumentumTipus: dokumentumTipus);
}
else
{
var ret = Nyomtatas(ds, nye.ToString(), parameters, CommonExtensions.NevGeneralas(nye.ToString(), nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nye.ToString(), nevmodel, true), osztalyId: csoportId, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, dokumentumKategoria: DokumentumKategoriaEnum.Naplok, dokumentumTipus: dokumentumTipus, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
if (csoportIdList.Count == 1)
{
return ret;
}
}
}
ZipOutPut.Finish();
OutPut.Position = 0;
if (!model.Iktatas)
{
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas(nye.ToString(), zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
else
{
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#region Osztály naplók
public ActionResult OsztalyNaplo([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Osztalynaplok(model, NyomtatvanyEnum.Naplo, Enums.DokumentumTipusEnum.Osztalynaplo);
}
public ActionResult HaladasiNaplo([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Osztalynaplok(model, NyomtatvanyEnum.HaladasiNaplo, Enums.DokumentumTipusEnum.HaladasiNaplo);
}
public ActionResult OsztalyozoNaplo([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Osztalynaplok(model, NyomtatvanyEnum.OsztalyozoNaplo, Enums.DokumentumTipusEnum.OsztalyozoNaplo);
}
#endregion
#region Csoport naplók
public ActionResult CsoportNaplo([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Csoportnaplok(model, NyomtatvanyEnum.CsoportNaplo, Enums.DokumentumTipusEnum.CsoportNaplo);
}
public ActionResult NapkozisNaplo([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Csoportnaplok(model, NyomtatvanyEnum.NapkozisNaplo, Enums.DokumentumTipusEnum.NapkozisCsoportNaploja);
}
public ActionResult SzakmaiGyNaplo([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Csoportnaplok(model, NyomtatvanyEnum.SzakmaiGyNaplo, Enums.DokumentumTipusEnum.GyakorlatiFoglalkozasrolVezetettNaplo);
}
public ActionResult EgyebFoglalkozasiNaplo([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Csoportnaplok(model, NyomtatvanyEnum.EgyebFoglalkozasiNaplo, Enums.DokumentumTipusEnum.EgyebFoglalkozasiNaplo);
}
#endregion
}
}

View file

@ -0,0 +1,204 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web.Mvc;
using Kreta.BusinessLogic.Classes.AsposeHelpers;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private ActionResult NemzetisegiBizonyitvanypotlap(NyomtatvanyModel model, string nyomtatvanyNeve, string sablonNeve, System.Reflection.MethodInfo asposeMethod, BizonyitvanypotlapEvfolyamDivIdEnum? evfolyamDivId = null, int nyomtatvanyNyelvEnum = 0, DokumentumTipusEnum? dokumentumTipus = null, bool kellAtsorolasiZaradek = true)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTorzslapAdatok));
var dsParameterek = new Dictionary<string, object>
{
{ "iskolaErdekuSzamit", isIskolaerdekuSzamit},
{ "nyomtatvanyNyelvEnumId", nyomtatvanyNyelvEnum},
{ "isKozossegiSzolgalat", model.KozossegiSzolgalat},
{ "tanitasiHetekSzamaVegzos", model.TanitasiHetekSzamaVegzos},
{ "tanitasiHetekSzamaNemVegzos", model.TanitasiHetekSzamaNemVegzos},
{ "altantargyBeszamitasa", model.AltantargyBeszamitasa},
{ "isMuveszetOktatasi", false},
{ "tanulokNevsorRendezesColumnIndex", model.TanulokNevsorRendezeseId},
{ "isEvesOraszamMegjelenjen", model.EvesOraszamMegjelenjen},
{ "nyomtatvanyErtekelesMegjelenitesId", model.NyomtatvanyErtekelesMegjelenitesId},
{ "nemzetisegiNyelvId", (int)model.NemzetisegiNyelvId },
{ "isNemzetisegi", true },
{ "isShowTanulmanyiAtlag", model.AtlagFeltuntetes },
{ "kiiratkozottTanulokMegjelenitese", model.KiiratkozottTanulokMegjelenitese},
{ "kellAtsorolasiZaradek", kellAtsorolasiZaradek },
{ "isNszfhUjSzkt", false },
{ "is20_21OrLaterTanev", ClaimData.IsSelectedTanev20_21OrLater },
{ "is21_22OrLaterTanev", ClaimData.IsSelectedTanev21_22OrLater }
};
Dictionary<string, object> frxParameterek = new Dictionary<string, object>
{
};
var asposeHelperOptions = new AsposeHelperOptions(ClaimData.SelectedTanevID.Value)
{
Nyelv = model.NemzetisegiNyelvId,
PageNumbering = PageNumberingEnum.None,
PageSize = Aspose.Pdf.PageSize.A4,
Margins = new Aspose.Pdf.MarginInfo(18, 18, 18, 18),
DocumentParameters = new AsposeDocumentParameters()
{
IsAtlagMegjelenites = model.AtlagFeltuntetes,
IsEvesOraszamMegjelenites = model.EvesOraszamMegjelenjen,
BetuMeret = model.BetuMeret,
Kelt = model.KeltDatum,
ErtekelesMegjelenitesFormatum = model.NyomtatvanyErtekelesMegjelenitesId,
IsMulasztasokUjLapra = model.MulasztasokUjLapon,
}
};
if (evfolyamDivId.HasValue)
{
asposeHelperOptions.BizonyitvanypotlapEvfolyamDivId = evfolyamDivId.Value;
}
if (model.AlulirottMegnevezesId.IsEntityId())
{
var alulirott = new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true, nyomtatvanyNyelvEnum: (int)model.NemzetisegiNyelvId, isNemzetisegiDokumentum: true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text;
var r = new Regex(@".*?(?=[()])");
var m = r.Matches(alulirott);
var nev = m[0].Value.ReplaceMultipleSpacesAndTrim();
var nevIdegenNyelven = m[2].Value.ReplaceMultipleSpacesAndTrim();
var beosztas = m[4].Value.Substring(3).ReplaceMultipleSpacesAndTrim();
var beosztasIdegenNyelven = m[6].Value.ReplaceMultipleSpacesAndTrim();
asposeHelperOptions.DocumentParameters.AlairoSzemely = new Dictionary<string, string>()
{
{"Nev", nev },
{"NevIdegenNyelven", nevIdegenNyelven },
{"Beosztas", beosztas },
{"BeosztasIdegennNyelven", beosztasIdegenNyelven }
};
}
return AltalanosTanuloiGeneralas(model, sablonNeve, DokumentumKategoriaEnum.ErtesitokTorzslapBizonyitvany, dokumentumTipus, metodus, 0, dsParameterek, frxParameterek, nyomtatvanyNeve: nyomtatvanyNeve, distinctTables: "Fejlec,Osztaly", tablakFilterByTanuloId: "Tanulok,Ertekeles,Mulasztasok,TanuloLista,OsszefuggoSzakmaiGyakorlat,Feljegyzesek,Hatarozat,TanuloKozossegiSzolgalat,TanuloSNI,TanuloBTM,Felmentesek,FeljegyzesKozossegiSzolgalat" + ((model.AtlagFeltuntetes) ? ",TanuloiAtlag" : ""), tanuloIdColumnName: "TanuloId", emptyDocumentTable: "Tanulok", egyediLablecKellOldalszam: false, IsAspose: true, asposeMetodus: asposeMethod, asposeHelperOptions: asposeHelperOptions);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult NemzetisegiTorzslap(NyomtatvanyModel model, int nyomtatvanyNyelvEnum = 0, DokumentumTipusEnum dokumentumTipus = DokumentumTipusEnum.TorzslapAz1tol3EsFelsobbEvfolyamokSzovegesMinositesehez, bool isMuveszetOktatas = false)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTorzslapAdatok));
var asposeHelper = new AsposeHelper();
System.Reflection.MethodInfo asposeMethod = asposeHelper.GetType().GetMethod(nameof(asposeHelper.GetTorzslap));
var dsParameterek = new Dictionary<string, object>
{
{ "iskolaErdekuSzamit", isIskolaerdekuSzamit},
{ "nyomtatvanyNyelvEnumId", nyomtatvanyNyelvEnum},
{ "isKozossegiSzolgalat", model.KozossegiSzolgalat},
{ "tanitasiHetekSzamaVegzos", model.TanitasiHetekSzamaVegzos},
{ "tanitasiHetekSzamaNemVegzos", model.TanitasiHetekSzamaNemVegzos},
{ "altantargyBeszamitasa", model.AltantargyBeszamitasa},
{ "isMuveszetOktatasi", isMuveszetOktatas},
{ "tanulokNevsorRendezesColumnIndex", model.TanulokNevsorRendezeseId},
{ "isEvesOraszamMegjelenjen", model.EvesOraszamMegjelenjen},
{ "nyomtatvanyErtekelesMegjelenitesId", model.NyomtatvanyErtekelesMegjelenitesId},
{ "isNemzetisegi", true },
{ "nemzetisegiNyelvId", model.NemzetisegiNyelvId},
{ "isShowTanulmanyiAtlag", false },
{ "isNszfhUjSzkt", false },
{ "is20_21OrLaterTanev", ClaimData.IsSelectedTanev20_21OrLater },
{ "is21_22OrLaterTanev", ClaimData.IsSelectedTanev21_22OrLater }
};
var asposeHelperOptions = new AsposeHelperOptions(ClaimData.SelectedTanevID.Value)
{
Nyelv = model.NemzetisegiNyelvId,
PageNumbering = PageNumberingEnum.None,
PageSize = Aspose.Pdf.PageSize.A4,
Margins = new Aspose.Pdf.MarginInfo(18, 18, 18, 18),
DocumentParameters = new AsposeDocumentParameters()
{
AdatokMegjelenitese = model.AdatMegjelenites,
AltantargyBeszamitasa = model.AltantargyBeszamitasa,
EvesOraszamMegjelenites = model.EvesOraszamMegjelenjen,
FejlecMegjelenitese = model.FejlecMegjelenites,
FeljegyzesekMegjelenitese = model.isFeljegyzesekMegjelenitese,
FelmentesekMegjelenitese = model.isFelmentesekMegjelenitese,
Kelt = model.KeltDatum,
KotesmargoTipus = model.KotesMargoTipus,
KozossegiSzolgalatMegjelenitese = model.KozossegiSzolgalat,
OKJMegjelenitese = model.OKJ,
SNIMegjelenites = model.SNIAdatokMegjeleniteseUresen,
TorvenyesKepviseloMegjelenites = model.GondviseloMegjelenites,
BetuMeret = model.BetuMeret,
}
};
return AltalanosTanuloiGeneralas(model, "NemzetisegiTorzslap.html", DokumentumKategoriaEnum.ErtesitokTorzslapBizonyitvany, dokumentumTipus, metodus, 0, dsParameterek, null, nyomtatvanyNeve: "NemzetisegiTorzslap", distinctTables: "Fejlec,Osztaly", isCsoport: isMuveszetOktatas, tablakFilterByTanuloId: "Tanulok,Hatarozat,Feljegyzesek,Mulasztasok,Ertekeles,TanuloLista,TanuloKozossegiSzolgalat,TanuloSNI,TanuloBTM,Felmentesek,FeljegyzesKozossegiSzolgalat,OsszefuggoSzakmaiGyakorlat", tanuloIdColumnName: "TanuloId", IsAspose: true, asposeMetodus: asposeMethod, asposeHelperOptions: asposeHelperOptions);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult NemzetisegiBizonyitvanypotlapElso(NyomtatvanyModel model)
{
string nyomtatvanyNeve = "NemzetisegiBizonyitvany";
var asposeHelper = new AsposeHelper();
System.Reflection.MethodInfo asposeMethod = asposeHelper.GetType().GetMethod(nameof(asposeHelper.GetBizonyitvany));
return NemzetisegiBizonyitvanypotlap(model, nyomtatvanyNeve, $"{nyomtatvanyNeve}.html", asposeMethod, BizonyitvanypotlapEvfolyamDivIdEnum.elsoosztaly);
}
public ActionResult NemzetisegiBizonyitvanypotlapAlso(NyomtatvanyModel model)
{
string nyomtatvanyNeve = "NemzetisegiBizonyitvany";
var asposeHelper = new AsposeHelper();
System.Reflection.MethodInfo asposeMethod = asposeHelper.GetType().GetMethod(nameof(asposeHelper.GetBizonyitvany));
return NemzetisegiBizonyitvanypotlap(model, nyomtatvanyNeve, $"{nyomtatvanyNeve}.html", asposeMethod, BizonyitvanypotlapEvfolyamDivIdEnum.masodiknegyedikosztaly);
}
public ActionResult NemzetisegiBizonyitvanypotlapFelso(NyomtatvanyModel model)
{
string nyomtatvanyNeve = "NemzetisegiBizonyitvany";
var asposeHelper = new AsposeHelper();
System.Reflection.MethodInfo asposeMethod = asposeHelper.GetType().GetMethod(nameof(asposeHelper.GetBizonyitvany));
return NemzetisegiBizonyitvanypotlap(model, nyomtatvanyNeve, $"{nyomtatvanyNeve}.html", asposeMethod, BizonyitvanypotlapEvfolyamDivIdEnum.felsoosztalyok);
}
public ActionResult NemzetisegiGimnaziumiBizonyitvanypotlap(NyomtatvanyModel model)
{
model.KozossegiSzolgalat = true;
string nyomtatvanyNeve = "NemzetisegiGimnaziumiBizonyitvany";
var asposeHelper = new AsposeHelper();
System.Reflection.MethodInfo asposeMethod = asposeHelper.GetType().GetMethod(nameof(asposeHelper.GetGimnaziumiBizonyitvany));
return NemzetisegiBizonyitvanypotlap(model, nyomtatvanyNeve, $"{nyomtatvanyNeve}.html", asposeMethod, kellAtsorolasiZaradek: false);
}
public ActionResult NemzetisegiErettsegiBizonyitvany(NyomtatvanyModel model)
{
string nyomtatvanyNeve = "NemzetisegiErettsegiBizonyitvany";
var asposeHelper = new AsposeHelper();
System.Reflection.MethodInfo asposeMethod = asposeHelper.GetType().GetMethod(nameof(asposeHelper.GetErettsegiBizonyitvany));
return NemzetisegiBizonyitvanypotlap(model, nyomtatvanyNeve, $"{nyomtatvanyNeve}.html", asposeMethod);
}
}
}

View file

@ -0,0 +1,229 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.IO;
using System.Linq;
using System.Web.Mvc;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
public ActionResult TermekOrarendje([ModelBinder(typeof(Helpers.NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Orarendek(model, NyomtatvanyEnum.TeremOrarend, Enums.DokumentumTipusEnum.TermekOrarendje);
}
public ActionResult OsztalyokOrarendje([ModelBinder(typeof(Helpers.NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Orarendek(model, NyomtatvanyEnum.OsztalyOrarendOsszes, Enums.DokumentumTipusEnum.OsztalyokOrarendje);
}
public ActionResult PedagogusokOrarendje([ModelBinder(typeof(Helpers.NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return Orarendek(model, NyomtatvanyEnum.PedagogusOrarendOsszes, Enums.DokumentumTipusEnum.PedagogusOrarendje);
}
private ActionResult Orarendek(NyomtatvanyModel model, NyomtatvanyEnum orarendTipus, Enums.DokumentumTipusEnum dokumentumTipus)
{
try
{
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
DataSet mergedDs = new DataSet();
var needMergedData = false;
var atLeastOneData = false;
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
DokumentumElemiSzintEnum? elemiSzint;
var parameters = new Dictionary<string, object>
{
{"Kelt", DateTime.Now.ToString(Core.Constants.ToStringPattern.HungarianDateWithSuffix)}
};
string nyomtatvanyNeve = "OrarendOsszes";
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
DataSet hetSorszamaDs;
var naptariHetHelper = new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
hetSorszamaDs = naptariHetHelper.GetNaptariHetList();
var het = hetSorszamaDs.Tables[0].AsEnumerable().Where(x => x.Field<int>("HetSorszama") == model.HetSorszama).Select(dataRow => new
{
Kezdete = Convert.ToDateTime(dataRow.Field<DateTime>("HetKezdoNapja")),
Vege = Convert.ToDateTime(dataRow.Field<DateTime>("HetUtolsoNapja"))
}).FirstOrDefault();
DateTime hetKezdete = het.Kezdete;
DateTime hetVege = het.Vege;
List<int> idList;
bool teremId = false;
bool osztalyId = false;
bool pedagogusId = false;
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
switch (orarendTipus)
{
case NyomtatvanyEnum.OsztalyOrarendOsszes:
idList = GetOsztalyIdList(model.OsztalyIdList, oktNevKategoria, forOrarend: true);
osztalyId = true;
elemiSzint = DokumentumElemiSzintEnum.Osztaly;
break;
case NyomtatvanyEnum.PedagogusOrarendOsszes:
idList = GetPedagogusIdList(model.PedagogusIdList);
pedagogusId = true;
elemiSzint = DokumentumElemiSzintEnum.Tanulo;
break;
case NyomtatvanyEnum.TeremOrarend:
idList = GetTeremIdList(model.TeremIdList);
teremId = true;
elemiSzint = DokumentumElemiSzintEnum.Terem;
break;
default:
idList = GetOsztalyIdList(model.OsztalyIdList, oktNevKategoria, forOrarend: true);
osztalyId = true;
elemiSzint = DokumentumElemiSzintEnum.Osztaly;
break;
}
if (idList.Count == 0)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
foreach (var id in idList)
{
if (osztalyId)
{
nevmodel.OsztalyID = id;
}
if (teremId)
{
nevmodel.TeremID = id;
}
if (pedagogusId)
{
nevmodel.TanarID = id;
}
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var ds = helper.GetOrarendOsszes((pedagogusId) ? id : (int?)null, (teremId) ? id : (int?)null, (osztalyId) ? id : (int?)null, model.OrarendTipusaId, hetKezdete, hetVege, model.KapcsolodoCsoportokMegjelenitese, model.OsztalyBontasokMegjelenitese, oktNevKategoria);
if (ds.Tables[0].Rows.Count == 0)
{
if (idList.Count > 1)
{
continue;
}
else
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
}
var orarendUtolsoNapja = helper.GetOrarendUtolsoNapja(ds.Tables["Orarend"], true);
parameters.Add(nameof(orarendUtolsoNapja) + "_" + id, orarendUtolsoNapja);
if (idList.Count > 1)
{
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
TobbNyomtatvanyEgyDataSetbe(ref mergedDs, ds);
needMergedData = true;
}
else
{
if (!model.Iktatas)
{
AddNyomtatvanyMintZipEntry(ZipOutPut, ds, nyomtatvanyNeve, parameters, CommonExtensions.NevGeneralas(orarendTipus.ToString(), nevmodel), formatumId: model.FormatumId, dokumentumTipus: dokumentumTipus);
}
else
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, ds, elemiSzint.Value);
Nyomtatas(ds, nyomtatvanyNeve, parameters, CommonExtensions.NevGeneralas(orarendTipus.ToString(), nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(orarendTipus.ToString(), nevmodel, true), formatumId: model.FormatumId, osztalyId: (osztalyId) ? id : 0, dokumentumKategoria: DokumentumKategoriaEnum.Orarendek, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
atLeastOneData = true;
}
}
else
{
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, ds, elemiSzint.Value);
}
var customMessage = hetKezdete.Date.ToShortDateString() + "-" + hetVege.Date.ToShortDateString();
var notAppendDateTimeNow = true;
return Nyomtatas(ds, nyomtatvanyNeve, parameters, CommonExtensions.NevGeneralas(orarendTipus.ToString(), nevmodel, notAppendDateTimeNow: notAppendDateTimeNow, customMessage: customMessage), model.Iktatas, CommonExtensions.NevGeneralas(orarendTipus.ToString(), nevmodel, true, notAppendDateTimeNow: notAppendDateTimeNow, customMessage: customMessage), formatumId: model.FormatumId, osztalyId: (osztalyId) ? id : 0, dokumentumKategoria: DokumentumKategoriaEnum.Orarendek, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
if (!needMergedData)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, mergedDs, DokumentumElemiSzintEnum.Intezmeny);
}
nevmodel.OsztalyID = null;
nevmodel.TeremID = null;
nevmodel.TanarID = null;
return Nyomtatas(mergedDs, nyomtatvanyNeve, parameters, CommonExtensions.NevGeneralas("Tobb" + orarendTipus.ToString(), nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("Tobb" + orarendTipus.ToString(), nevmodel, true), formatumId: model.FormatumId, osztalyId: 0, dokumentumKategoria: DokumentumKategoriaEnum.Orarendek, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
else
{
if (!atLeastOneData)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
if (!model.Iktatas)
{
ZipOutPut.Finish();
OutPut.Position = 0;
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas(nyomtatvanyNeve, zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
else
{
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
}
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
}
}

View file

@ -0,0 +1,610 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web.Mvc;
using Aspose.BarCode.Generation;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Client.KozpontiKreta.Model;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private string GetIgazolasKiallitasanakOkaText(IgazolasKiallitasanakOkaEnum kiallitasOka)
{
var kiallitasOkaText = string.Empty;
switch (kiallitasOka)
{
case IgazolasKiallitasanakOkaEnum.Folyamatban:
kiallitasOkaText = NyomtatvanyokResource.IgazolasKiallitasanakOkaFolyamatban;
break;
case IgazolasKiallitasanakOkaEnum.KormRendeletAlapjan:
kiallitasOkaText = NyomtatvanyokResource.IgazolasKiallitasanakOkaKormRendeletAlapjan;
break;
}
return kiallitasOkaText;
}
private string GetEgyebIntezmenyiAdatok(NyomtatvanyModel model)
{
var sb = new StringBuilder();
if (!string.IsNullOrWhiteSpace(model.MasodikIntezmenyNeve))
{
sb.Append($"{NyomtatvanyokResource.MasodikIntezmenyNeve} {model.MasodikIntezmenyNeve}");
}
if (!string.IsNullOrWhiteSpace(model.MasodikFeladatellatasiHelyCime))
{
if (sb.Length != 0)
{
sb.AppendLine().AppendLine();
}
sb.Append($"{NyomtatvanyokResource.FeladatellatasiHelyCime} {model.MasodikFeladatellatasiHelyCime}");
}
if (!string.IsNullOrWhiteSpace(model.GyakorlatiKepzesiHelyNeve))
{
if (sb.Length != 0)
{
sb.AppendLine().AppendLine();
}
sb.Append($"{NyomtatvanyokResource.GyakorlatiKepzesiHelyNeve} {model.GyakorlatiKepzesiHelyNeve}");
}
if (!string.IsNullOrWhiteSpace(model.GyakorlatiKepzesiHelyCime))
{
if (sb.Length != 0)
{
sb.AppendLine().AppendLine();
}
sb.Append($"{NyomtatvanyokResource.GyakorlatiKepzesiHelyCime} {model.GyakorlatiKepzesiHelyCime}");
}
return sb.ToString();
}
private Bitmap GenerateQrCodeForPedagogusIgazolas(NyomtatvanyModel model)
{
var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var (NyomtatasiNev, OktatasiAzonosito) = felhasznaloHelper.GetFelhasznaloNevOktAzonById(model.PedagogusId);
var qrCodeText = $"{NyomtatasiNev} - {OktatasiAzonosito} - {model.IgazolasSorszama} - {DateTime.Today.ToString(Core.Constants.ToStringPattern.HungarianDate)}";
var generator = new BarcodeGenerator(EncodeTypes.QR, qrCodeText);
generator.Parameters.Resolution = 400f;
generator.Parameters.Barcode.CodeTextParameters.Location = CodeLocation.None;
generator.Parameters.Barcode.QR.CodeTextEncoding = Encoding.UTF8;
generator.Parameters.Barcode.QR.QrEncodeMode = QREncodeMode.Auto;
generator.Parameters.Barcode.QR.QrEncodeType = QREncodeType.ForceQR;
generator.Parameters.Barcode.QR.QrErrorLevel = QRErrorLevel.LevelL;
return generator.GenerateBarCodeImage();
}
private string GetIgazolasKiallitasHelyEsIdo(NyomtatvanyModel model)
{
var telepulesHelper = new TelepulesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var igazolasKiallitasHely = telepulesHelper.GetTelepulesek().First(t => t.Id == model.IgazolasKiallitasanakHelyeId).TelepulesNev;
if (igazolasKiallitasHely.Contains(Core.Constants.General.Budapest))
{
igazolasKiallitasHely = Core.Constants.General.Budapest;
}
var igazolasKiallitasHelyEsIdo = $"{igazolasKiallitasHely}, {NyomtatvanyokLogic.KeltSzoveg(DateTime.Today, model.FormatumId)}";
return igazolasKiallitasHelyEsIdo;
}
private ActionResult HaladasiMunkafuzet(NyomtatvanyModel model, NyomtatvanyEnum nyomtatvanyEnum, Enums.DokumentumTipusEnum dokumentumTipus)
{
try
{
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
var buffer = new byte[Constants.General.BufferSize];
List<int> idList;
Enums.DokumentumElemiSzintEnum elemiSzint;
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
switch (nyomtatvanyEnum)
{
case NyomtatvanyEnum.HaladasiMunkafuzetOsztalyCsoportonkent:
idList = GetOsztalyCsoportIdListByFelhasznaloId(model.OsztalyCsoportIdList, oktNevKategoria);
if (idList.Count == 0)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
break;
case NyomtatvanyEnum.HaladasiMunkafuzetTanaronkent:
default:
idList = GetPedagogusIdListByFelhasznaloId(model.PedagogusIdList);
break;
}
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
foreach (var id in idList)
{
NyomtatvanyNevGeneralasModel nevmodel;
DataSet ds;
int? osztalyId = null;
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
switch (nyomtatvanyEnum)
{
case NyomtatvanyEnum.HaladasiMunkafuzetOsztalyCsoportonkent:
var isCsoport = !helper.IsCsoportVagyOsztalyByTanev(id);
elemiSzint = (isCsoport) ? DokumentumElemiSzintEnum.Csoport : DokumentumElemiSzintEnum.Osztaly;
ds = helper.GetHaladasiMunkafuzet(id, (int?)null, isCsoport, oktNevKategoria, true);
nevmodel = new NyomtatvanyNevGeneralasModel() { OsztalyCsoportId = id, TanevID = ClaimData.SelectedTanevID.Value };
osztalyId = id;
break;
case NyomtatvanyEnum.HaladasiMunkafuzetTanaronkent:
default:
elemiSzint = DokumentumElemiSzintEnum.Tanulo;
ds = helper.GetHaladasiMunkafuzet((int?)null, id, (bool?)null, null);
nevmodel = new NyomtatvanyNevGeneralasModel() { TanarID = id, TanevID = ClaimData.SelectedTanevID.Value };
break;
}
if (idList.Count > 1)
{
if (ds.Tables[0].Rows.Count == 0)
{
continue;
}
if (!model.Iktatas)
{
ds.Tables.Remove("IktatasAdatok");
if (nyomtatvanyEnum == NyomtatvanyEnum.HaladasiMunkafuzetOsztalyCsoportonkent)
{
ds.Tables.Remove("Tanarok");
}
var stream = ExcelNyomtatasByMemoryStream(ds, false, dokumentumKategoria: DokumentumKategoriaEnum.Pedagogusok, dokumentumTipus: dokumentumTipus);
AddExcelMintZipEntry(ZipOutPut, stream, CommonExtensions.NevGeneralas("HaladasiMunkafuzet", nevmodel));
}
else
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, ds, elemiSzint);
ds.Tables.Remove("IktatasAdatok");
if (nyomtatvanyEnum == NyomtatvanyEnum.HaladasiMunkafuzetOsztalyCsoportonkent)
{
ds.Tables.Remove("Tanarok");
}
ExcelNyomtatas(ds, CommonExtensions.NevGeneralas("HaladasiMunkafuzet", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("HaladasiMunkafuzet", nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.Pedagogusok, dokumentumTipus: dokumentumTipus, osztalyId: osztalyId, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
else
{
if (ds.Tables[0].Rows.Count == 0)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, ds, elemiSzint);
}
ds.Tables.Remove("IktatasAdatok");
if (nyomtatvanyEnum == NyomtatvanyEnum.HaladasiMunkafuzetOsztalyCsoportonkent)
{
ds.Tables.Remove("Tanarok");
}
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas("HaladasiMunkafuzet", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("HaladasiMunkafuzet", nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.Pedagogusok, dokumentumTipus: dokumentumTipus, osztalyId: osztalyId, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
ZipOutPut.Finish();
OutPut.Position = 0;
if (!model.Iktatas)
{
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas("HaladasiMunkafuzet", zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult NemKotottMunkaidoReszletezo(NyomtatvanyModel model, NyomtatvanyEnum nyomtatvany, Enums.DokumentumTipusEnum dokumentumTipus)
{
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetNemKotottMunkaidoReszletezo));
Dictionary<string, object> dsParameterek = new Dictionary<string, object>();
string distinctTables = null;
if (nyomtatvany == NyomtatvanyEnum.KotottMunkaidoNevelesselOktatassalLeNemKotottReszletezoHavi)
{
dsParameterek.Add("honapId", model.HonapId);
distinctTables = "Idoszak";
}
Dictionary<string, object> frxParameterek = new Dictionary<string, object>
{
{"Kelt", model.KeltDatum.ToString(Core.Constants.ToStringPattern.HungarianDateWithSuffix)}
};
return AltalanosPedagogusGeneralas(model, nyomtatvany.ToString(), DokumentumKategoriaEnum.Pedagogusok, dokumentumTipus, metodus, 0, dsParameterek, frxParameterek, distinctTables: distinctTables);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult HelyettesitesekListajaOsszesito(DataSet ds, NyomtatvanyModel model, DokumentumKategoriaEnum dokumentumKategoria, Enums.DokumentumTipusEnum dokumentumTipus, NameValueCollection kulcsSzavak, BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel foszamDefinicio)
{
var parameters = new Dictionary<string, object>
{
{ nameof(model.HelyettesitesListaFormatumId), model.HelyettesitesListaFormatumId },
{ nameof(model.HelyettesitesTipusanakMegjelenitese), model.HelyettesitesTipusanakMegjelenitese }
};
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID };
return Nyomtatas(ds, "HelyettesitesekListaja", parameters, CommonExtensions.NevGeneralas("HelyettesitesekListaja", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("HelyettesitesekListaja", nevmodel, true), formatumId: model.FormatumId, dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: kulcsSzavak, foszamDefinicio: foszamDefinicio);
}
private ActionResult HelyettesitesekListajaPedagogusonkent(DataSet ds, NyomtatvanyModel model, DokumentumKategoriaEnum dokumentumKategoria, Enums.DokumentumTipusEnum dokumentumTipus, NameValueCollection kulcsSzavak, BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel foszamDefinicio)
{
ds.Tables.RemoveAt(ds.Tables.Count - 1);
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID };
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas("HelyettesitesekListaja", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("HelyettesitesekListaja", nevmodel, true), dokumentumKategoria: dokumentumKategoria, dokumentumTipus: dokumentumTipus, kulcsSzavak: kulcsSzavak, foszamDefinicio: foszamDefinicio);
}
[HttpPost]
public ActionResult PedagogusAltalAdottOsztalyzatok([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
var outPut = new MemoryStream();
var zipOutPut = new ZipOutputStream(outPut);
var nincsAdat = true;
try
{
var buffer = new byte[Constants.General.BufferSize];
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
var pedagogusIdList = GetPedagogusIdListByFelhasznaloId(model.PedagogusIdList, oktNevKategoria);
foreach (var pedagogusId in pedagogusIdList)
{
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value, TanarID = pedagogusId };
if (model.PedagogusId != 0)
{
nevmodel.TanarID = pedagogusId;
}
var ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetPedagogusAltalAdottOsztalyzatok(pedagogusId, model.ErtekelesmodSuly, oktNevKategoria);
if (pedagogusIdList.Count > 1)
{
if ((model.ErtekelesmodSuly && ds.Tables.Count == 2)
|| (!model.ErtekelesmodSuly && ds.Tables.Count == 1))
{
continue;
}
nincsAdat = false;
if (!model.Iktatas)
{
ds.Tables.Remove("IktatasAdatok");
var stream = ExcelNyomtatasByMemoryStream(ds, false, dokumentumKategoria: DokumentumKategoriaEnum.Pedagogusok, dokumentumTipus: Enums.DokumentumTipusEnum.PedagogusAltalAdottOsztalyzatokErtekelesek, lastRowStyleLikeHeader: true, sheetsWithoutLastRowStyleLikeHeader: (model.ErtekelesmodSuly ? new List<int> { ds.Tables.Count - 1 } : null));
AddExcelMintZipEntry(zipOutPut, stream, CommonExtensions.NevGeneralas("PedagogusAltalAdottOsztalyzatok", nevmodel));
}
else
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.PedagogusAltalAdottOsztalyzatokErtekelesek, ds, DokumentumElemiSzintEnum.Tanulo);
ds.Tables.Remove("IktatasAdatok");
ExcelNyomtatas(ds, CommonExtensions.NevGeneralas("PedagogusAltalAdottOsztalyzatok", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("PedagogusAltalAdottOsztalyzatok", nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.Pedagogusok, dokumentumTipus: Enums.DokumentumTipusEnum.PedagogusAltalAdottOsztalyzatokErtekelesek, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio, lastRowStyleLikeHeader: true, sheetsWithoutLastRowStyleLikeHeader: (model.ErtekelesmodSuly ? new List<int> { ds.Tables.Count - 1 } : null));
}
}
else
{
if ((model.ErtekelesmodSuly && ds.Tables.Count == 2)
|| (!model.ErtekelesmodSuly && ds.Tables.Count == 1))
{
throw new StatusError(
HttpStatusCode.InternalServerError,
StringResourcesUtil.GetString(3653) /*Üres*/);
}
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.PedagogusAltalAdottOsztalyzatokErtekelesek, ds, DokumentumElemiSzintEnum.Tanulo);
}
ds.Tables.Remove("IktatasAdatok");
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas("PedagogusAltalAdottOsztalyzatok", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("PedagogusAltalAdottOsztalyzatok", nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.Pedagogusok, dokumentumTipus: Enums.DokumentumTipusEnum.PedagogusAltalAdottOsztalyzatokErtekelesek, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio, lastRowStyleLikeHeader: true, sheetsWithoutLastRowStyleLikeHeader: (model.ErtekelesmodSuly ? new List<int> { ds.Tables.Count - 1 } : null));
}
}
zipOutPut.Finish();
outPut.Position = 0;
if (nincsAdat)
{
throw new StatusError(
HttpStatusCode.InternalServerError,
StringResourcesUtil.GetString(3653) /*Üres*/);
}
if (!model.Iktatas)
{
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return new FileStreamResult(outPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas("PedagogusAltalAdottOsztalyzatok", zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult HaladasiMunkafuzetOsztalyCsoportonkent([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return HaladasiMunkafuzet(model, NyomtatvanyEnum.HaladasiMunkafuzetOsztalyCsoportonkent, Enums.DokumentumTipusEnum.HaladasiMunkafuzetOsztalyonkent);
}
[HttpPost]
public ActionResult HaladasiMunkafuzetTanaronkent([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return HaladasiMunkafuzet(model, NyomtatvanyEnum.HaladasiMunkafuzetTanaronkent, Enums.DokumentumTipusEnum.HaladasiMunkafuzetTanaronkent);
}
[HttpPost]
public ActionResult TanarOrarendiLefedettseg(NyomtatvanyModel model)
{
try
{
DataSet ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanarOrarendiLefedettseg();
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas("TanarOrarendiLefedettseg", nevmodel), dokumentumKategoria: DokumentumKategoriaEnum.Pedagogusok, dokumentumTipus: null);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult MunkaidoElszamlololap([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
bool isKlebersbergOrNSZFH =
FeatureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokKlebelsberg)
|| FeatureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokNSZFH);
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetMunkaidoElszamololap));
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
var kotelezoOraszamokResponse = KozpontiKretaHelper.GetKotelezoOraszam(new KotelezoOraszamRequestModel
{
AlkalmazottLista = GetPedagogusIdListByFelhasznaloId(model.PedagogusIdList),
IntezmenyAzonosito = ClaimData.IntezmenyAzonosito,
TanevId = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo().Sorszam,
});
Dictionary<string, object> dsParameterek = new Dictionary<string, object>()
{
{"honapId", model.HonapId},
{"isKlebersbergOrNSZFH", isKlebersbergOrNSZFH},
{"kategoria", oktNevKategoria},
{"bontas", (int)model.MunkaidoelszamolasBontas },
{"felnottkepzesKulon", model.FelnottkepzesiOrakElkulonitese },
{"elmeletGyakorlatKulon", model.ElmeletiGyakorlatiOrakElkulonitese},
{"tanoraiFoglalkozasokUresBlokkMegjelenites", model.TanoraiFoglalkozasokUresBlokkMegjelenites },
{"tanoranKivuliFoglalkozasokUresBlokkMegjelenites", model.TanoranKivuliFoglalkozasokUresBlokkMegjelenites },
{"egyeniFoglalkozasokUresBlokkMegjelenites", model.EgyeniFoglalkozasokUresBlokkMegjelenites },
{"helyettesitesekUresBlokkMegjelenites", model.HelyettesitesekUresBlokkMegjelenites },
{"oktNevLeNemKotottMunkaidoUresBlokkMegjelenites", model.OktNevLeNemKotottMunkaidoUresBlokkMegjelenites },
{"szakszeruHelySzorzo", null },
{"nemSzakszeruHelySzorzo", null },
{"osszevonasSzorzo", null },
{"osszevontFelSzorzo", null },
{"parhuzamosOrakMegjelenitese", model.ParhuzamosOrakMegjelenitese },
};
if (kotelezoOraszamokResponse != null && kotelezoOraszamokResponse.AlkalmazottLista != null && kotelezoOraszamokResponse.AlkalmazottLista.Count > 0)
dsParameterek.Add("kotelezoOraszamok", kotelezoOraszamokResponse.AlkalmazottLista.ToDictionary(x => x.AlkalmazottId, x => x.KotelezoOraszamSzoveg));
else if (model.PedagogusIdList != null)
dsParameterek.Add("kotelezoOraszamok", model.PedagogusIdList.ToDictionary(x => int.Parse(x.ToString()), x => x.ToString(NyomtatvanyokResource.NA)));
else
{
var alkHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var alkalmazottak = alkHelper.GetAlkalmazottak();
List<string> keys = new List<string>(alkalmazottak.Keys);
foreach (string key in keys) alkalmazottak[key] = NyomtatvanyokResource.NA;
dsParameterek.Add("kotelezoOraszamok", alkalmazottak.ToDictionary(x => int.Parse(x.Key), x => x.Value));
}
Dictionary<string, object> frxParameterek = new Dictionary<string, object>
{
{"Kelt", DateTime.Today.ToString(Core.Constants.ToStringPattern.HungarianDateWithSuffix + ".")},
{"bontas", (int)model.MunkaidoelszamolasBontas },
{"TanoraiFoglalkozasokUresBlokkMegjelenites", model.TanoraiFoglalkozasokUresBlokkMegjelenites },
{"TanoranKivuliFoglalkozasokUresBlokkMegjelenites", model.TanoranKivuliFoglalkozasokUresBlokkMegjelenites },
{"EgyeniFoglalkozasokUresBlokkMegjelenites", model.EgyeniFoglalkozasokUresBlokkMegjelenites },
{"HelyettesitesekUresBlokkMegjelenites", model.HelyettesitesekUresBlokkMegjelenites },
{"OktNevLeNemKotottMunkaidoUresBlokkMegjelenites", model.OktNevLeNemKotottMunkaidoUresBlokkMegjelenites },
{"ElmeletiGyakorlatiOrakElkulonitese", model.ElmeletiGyakorlatiOrakElkulonitese },
{"FelnottkepzesiOrakElkulonitese", model.FelnottkepzesiOrakElkulonitese },
{"szakszeruHelySzorzo", null },
{"nemSzakszeruHelySzorzo", null },
{"osszevonasSzorzo", null },
{"osszevontFelSzorzo", null }
};
return AltalanosPedagogusGeneralas(model, NyomtatvanyEnum.MunkaidoElszamololap.ToString(), DokumentumKategoriaEnum.Pedagogusok, Enums.DokumentumTipusEnum.MunkaidoElszamololapHonap, metodus, 2, dsParameterek, frxParameterek, distinctTables: "Honapok,Hetek,EvHonapok", egyediLablecKellOldalszam: false);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult NemKotottMunkaidoReszletezoHeti([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return NemKotottMunkaidoReszletezo(model, NyomtatvanyEnum.KotottMunkaidoNevelesselOktatassalLeNemKotottReszletezoHeti, Enums.DokumentumTipusEnum.NemKotottMunkaidoReszletezoHetiBontas);
}
public ActionResult NemKotottMunkaidoReszletezoHavi([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return NemKotottMunkaidoReszletezo(model, NyomtatvanyEnum.KotottMunkaidoNevelesselOktatassalLeNemKotottReszletezoHavi, Enums.DokumentumTipusEnum.NemKotottMunkaidoReszletezoHaviBontasHonap);
}
[HttpPost]
public ActionResult HelyettesitesekListaja([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
bool isPedagogusonkent = model.FormatumId == (int)NyomtatvanyFormatumEnum.Excel;
DataSet ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetHelyettesitesekListaDetails(model.IdoszakKezdete, model.IdoszakVege, model.HelyettesitesListaFormatumId, isPedagogusonkent);
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.HelyettesitesekListajaHetSorszama, ds, DokumentumElemiSzintEnum.Intezmeny);
}
return isPedagogusonkent
? HelyettesitesekListajaPedagogusonkent(ds, model, DokumentumKategoriaEnum.Pedagogusok, Enums.DokumentumTipusEnum.HelyettesitesekListajaHetSorszama, foszamKulcsSzavak.kulcsSzavak, foszamKulcsSzavak.foszamDefinicio)
: HelyettesitesekListajaOsszesito(ds, model, DokumentumKategoriaEnum.Pedagogusok, Enums.DokumentumTipusEnum.HelyettesitesekListajaHetSorszama, foszamKulcsSzavak.kulcsSzavak, foszamKulcsSzavak.foszamDefinicio);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult HelyettesitesiNaplo([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetHelyettesitesiNaplo));
Dictionary<string, object> dsParameterek = new Dictionary<string, object>()
{
{"bontas", model.HelyettesitesiNaploBontas}
};
Dictionary<string, object> frxParameterek = new Dictionary<string, object>
{
{"Intezmeny_OM_Azon", ClaimData.OrganizationCode},
{"Intezmeny_Nev", ClaimData.OrganizationName.ToUpper()},
{"bontas", (int) model.HelyettesitesiNaploBontas}
};
return AltalanosPedagogusGeneralas(model, "HelyettesitesiNaplo", DokumentumKategoriaEnum.Pedagogusok, Enums.DokumentumTipusEnum.HelyettesitesiNaplo, metodus, 0, dsParameterek, frxParameterek, emptyDocumentTable: "Fejlec");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult PedagogusigazolvanyHelyettKiallitottIgazolas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var nyomtatvanyokHelper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var maHelper = new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.PedagogusIdList = new List<int> { model.PedagogusId };
var alulirottMegnevezese = maHelper.GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text;
var metodus = nyomtatvanyokHelper.GetType().GetMethod(nameof(nyomtatvanyokHelper.GetPedagogusIgazolas));
var dsParameterek = new Dictionary<string, object>()
{
{ "alkalmazottId", model.PedagogusId },
{ "isIntezmenyNevMegjelenik", model.IntezmenyNevenekMegjelenitese },
{ "isFelhelyCimMegjelenik", model.FeladatellatasiHelyCimenekMegjelenitese }
};
var frxParameterek = new Dictionary<string, object>
{
{ "IgazolasSorszama", model.IgazolasSorszama },
{ "ErvenyessegVege", model.ErvenyessegVege.ToString(Core.Constants.ToStringPattern.HungarianDate) },
{ "IgazolasKiallitasanakOka", GetIgazolasKiallitasanakOkaText(model.IgazolasKiallitasanakOka) },
{ "IgazolasKiallitasHelyIdo", GetIgazolasKiallitasHelyEsIdo(model) },
{ "EgyebIntezmenyiAdatok", GetEgyebIntezmenyiAdatok(model) },
{ "AlulirottMegnevezese" , alulirottMegnevezese },
};
var qrCode = GenerateQrCodeForPedagogusIgazolas(model);
return AltalanosPedagogusGeneralas(model, "PedagogusIgazolas", DokumentumKategoriaEnum.Pedagogusok, Enums.DokumentumTipusEnum.pedagogusigazolvany_helyett_kiallitott_igazolas, metodus, 0, dsParameterek, frxParameterek, qrCode: qrCode, egyediLablecKellOldalszam: false, emptyDocumentTable: "Adatok");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
}
}

View file

@ -0,0 +1,134 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private string GetDatumRag(DateTime date)
{
var day = date.Day;
// én, ha 10 az értéke, vagy 1, 2, 4, 5, 7, 9 az utolsó számjegy
if (day == 10)
{
return "én";
}
// kivétel: másodikán
if (day == 2)
{
return "án";
}
var enList = new char[] { '1', '2', '4', '5', '7', '9' };
var dayString = day.ToString();
var lastChar = dayString[dayString.Length - 1];
return enList.Contains(lastChar) ? "én" : "án";
}
public ActionResult EgyuttmukodesiMegallapodas(NyomtatvanyModel model)
{
///TODO: nincs ilyen dokumentum típus
try
{
const string _egyuttmukodesiMegallapodas = "egyuttmukodesiMegallapodas";
const string _EgyuttmukodesiMegallapodas = "EgyuttmukodesiMegallapodas";
var parameters = new Dictionary<string, object>
{
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text}
};
var ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEgyuttmukodesiMegallapodas();
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return Nyomtatas(ds, _egyuttmukodesiMegallapodas, parameters, CommonExtensions.NevGeneralas(_EgyuttmukodesiMegallapodas, nevmodel), formatumId: model.FormatumId);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult Tanuloszerzodes(NyomtatvanyModel model)
{
/// TODO: nincs ilyen dokumentum típus
try
{
const string _tanuloszerzodes = "tanuloszerzodes";
const string _Tanuloszerzodes = "Tanuloszerzodes";
var tanuloIdList = GetTanulokIdList(model.TanuloIdList, model.OsztalyId);
var ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloszerzodes(string.Join(",", tanuloIdList), model.OsztalyId, ClaimData.IsSelectedTanev21_22OrLater && ClaimData.IsSzakkepzoIntezmeny);
var parameters = new Dictionary<string, object>
{
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text},
};
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return Nyomtatas(ds, _tanuloszerzodes, parameters, CommonExtensions.NevGeneralas(_Tanuloszerzodes, nevmodel), formatumId: model.FormatumId);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult NyiltNapSablon(NyomtatvanyModel model)
{
/// TODO: nincs ilyen dokumentum típus
try
{
var ds = new DataSet();
const string _nyiltNapSablon = "nyiltNapSablon";
var intezmenyAdatok = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIntezmenyiAdatok();
string alulirottMegnevezese = new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text;
int index = alulirottMegnevezese.IndexOf(" - ");
string nev = alulirottMegnevezese.Substring(0, index).Trim();
string beosztas = alulirottMegnevezese.Substring(index + " - ".Length).Trim();
var keltDatum = NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId);
var parameters = new Dictionary<string, object>
{
{"Kelt", string.Format("{0}-{1}", keltDatum.Remove(keltDatum.Length - 1), GetDatumRag(model.KeltDatum))},
{"IntezmenyIgazgato", nev},
{"IntezmenyNeve", intezmenyAdatok.Nev},
{"IntezmenyCim", intezmenyAdatok.IntezmenyCim},
{"IntezmenyTelefon", intezmenyAdatok.Telefonszam},
{"IntezmenyOMKod", intezmenyAdatok.OMKod},
{"IntezmenyEmail", intezmenyAdatok.Email},
{"Titulus", beosztas},
};
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return Nyomtatas(ds, _nyiltNapSablon, parameters, CommonExtensions.NevGeneralas(_nyiltNapSablon, nevmodel), formatumId: model.FormatumId, egyediLablecKellOldalszam: false);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
}
}

View file

@ -0,0 +1,753 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.IO;
using System.Linq;
using System.Web.Mvc;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel;
using Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Iktatas;
using Kreta.Client.KozpontiKreta;
using Kreta.Core;
using Kreta.Core.KozpontiModels.MdszModels;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private ActionResult MulasztasiOsszesito(NyomtatvanyModel model, NyomtatvanyEnum nye, Enums.DokumentumTipusEnum? dokumentumTipus)
{
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
try
{
DataSet ds;
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
switch (nye)
{
case NyomtatvanyEnum.OsztalyokHaviHianyzasiOsszesitoje:
ds = helper.GetOsztalyokHaviHianyzasiOsszesitoje();
break;
case NyomtatvanyEnum.IntezmenyiMulasztasiOsszesito:
return ExcelNyomtatas(helper.GetIntezmenyMulasztasiOsszesitojeMemoryStream(), CommonExtensions.NevGeneralas(nye.ToString(), nevmodel), false, null, 0);
default:
ds = helper.GetOsztalyokHaviHianyzasiOsszesitoje();
break;
}
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas(nye.ToString(), nevmodel), dokumentumKategoria: DokumentumKategoriaEnum.Statisztikak, dokumentumTipus: dokumentumTipus);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult OsztalyStatisztika(NyomtatvanyModel model, ErtekelesTipusEnum ertekelesTipusEnum, NapTipusEnum napTipusEnum, Enums.DokumentumTipusEnum dokumentumTipus, string idoszakNev = "")
{
try
{
var parameters = new Dictionary<string, object>
{
{"pTanevId", ClaimData.SelectedTanevID.Value},
{"pIntezmenyId", ClaimData.IntezmenyId},
{"pErtekelestipusaId", ertekelesTipusEnum.AsInt()},
{"pLezaroNaptipusId", napTipusEnum.AsInt()},
{"pMulasztasTipusIdKeses", MulasztasTipusEnum.keses.AsInt()},
{"pMulasztasTipusIdHianyzas", MulasztasTipusEnum.hianyzas.AsInt()},
{"pTanevrendjeTanevKezdeteNaptipusId", NapTipusEnum.elso_tanitasi_nap.AsInt()},
{"pTanoraiDicseretTipusId", EsemenyTipusEnum.Dicseret.AsInt()},
{"pFelszereleshianyTipusId", EsemenyTipusEnum.Felszereleshiany.AsInt()},
{"pHaziFeladatHianyTipusId", EsemenyTipusEnum.HaziFeladatHiany.AsInt()},
{"pAtsoroltTanuloAdatok", model.AtsoroltTanuloAdatokModId},
{"pOsztalyInditasaId", model.OsztalyInditasaId},
{"pElmeletgyakorlat", model.ElmeletGyakorlatKulon ? "1" : "0"},
{"pOsztalyzatTipusTypeID", ((int)GeneratedAdatszotarTipusEnum.OsztalyzatTipus).ToString()},
{"pMagatartasErtekelesTipusTypeID", ((int)GeneratedAdatszotarTipusEnum.MagatartasErtekelesTipus).ToString()},
{"pSzorgalomErtekelesTipusTypeID", ((int)GeneratedAdatszotarTipusEnum.SzorgalomErtekelesTipus).ToString()},
};
var multisheetExcel = (GetOsztalyIdList(model.OsztalyIdList, null).Count > 1) && !model.AlapszintuNyomtatvanyokKulonDokumentumba;
return AltalanosOsztalyFormazottXlsGeneralas(model, new OsztalyStatisztika(ConnectionTypeExtensions.GetSessionConnectionType(), multisheetExcel, isMagatartasSzorgalomNemLatszik: !model.MagatartasSzorgalomMegjelenitese), DokumentumKategoriaEnum.Statisztikak, dokumentumTipus, parameters, "pOsztalyId", "OsztalyStatisztika" + idoszakNev);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult OsztalyokTantargyiStatisztika(NyomtatvanyModel model, ErtekelesTipusEnum ertekelesTipusEnum, NapTipusEnum napTipusEnum, Enums.DokumentumTipusEnum dokumentumTipus, string idoszakNev = "")
{
try
{
var parameters = new Dictionary<string, string>();
parameters.Add("pTanevId", ClaimData.SelectedTanevID.Value.ToString());
parameters.Add("pIntezmenyId", ClaimData.IntezmenyId.ToString());
parameters.Add("pErtekelestipusaId", ertekelesTipusEnum.AsInt().ToString());
parameters.Add("pLezaroNaptipusId", napTipusEnum.AsInt().ToString());
parameters.Add("pTanoraiCsoportTipusIds", CsoportTipusEnum.iskolai_csoport_tanorai_celu_.AsInt().ToString());
parameters.Add("pMulasztasTipusIdKeses", MulasztasTipusEnum.keses.AsInt().ToString());
parameters.Add("pMulasztasTipusIdHianyzas", MulasztasTipusEnum.hianyzas.AsInt().ToString());
parameters.Add("pNemMulasztaIgazolasTipusIds", IgazolasTipusEnum.iskolaerdeku_tavollet.AsInt().ToString());
parameters.Add("pTanevrendjeTanevKezdeteNaptipusId", NapTipusEnum.elso_tanitasi_nap.AsInt().ToString());
parameters.Add("pElmeletgyakorlat", model.ElmeletGyakorlatKulon ? "1" : "0");
parameters.Add("pOktNevKategoria", model.OktNevelesiKategoriaId.ToString());
parameters.Add("pOsztalyzatTipusTypeID", ((int)GeneratedAdatszotarTipusEnum.OsztalyzatTipus).ToString());
parameters.Add("pMagatartasErtekelesTipusTypeID", ((int)GeneratedAdatszotarTipusEnum.MagatartasErtekelesTipus).ToString());
parameters.Add("pSzorgalomErtekelesTipusTypeID", ((int)GeneratedAdatszotarTipusEnum.SzorgalomErtekelesTipus).ToString());
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (FoszamDefinicioValueModel)null);
var osztalyokTantargyiStatisztika = new OsztalyokTantargyiStatisztika(ConnectionTypeExtensions.GetSessionConnectionType(), isMagatartasSzorgalomNemLatszik: !model.MagatartasSzorgalomMegjelenitese);
var excelContent = osztalyokTantargyiStatisztika.ExcelNyomtatas(parameters);
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, osztalyokTantargyiStatisztika.GetSheetDataSet(), DokumentumElemiSzintEnum.Intezmeny);
}
var ret = ExcelNyomtatas(excelContent, CommonExtensions.NevGeneralas("OsztalyokTantargyiStatisztika" + idoszakNev, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("OsztalyokTantargyiStatisztika" + idoszakNev, nevmodel, true), 0, dokumentumKategoria: DokumentumKategoriaEnum.Statisztikak, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
if (!model.Iktatas)
{
return ret;
}
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult OsztalyokCsoportokTantargyiStatisztika(NyomtatvanyModel model, ErtekelesTipusEnum ertekelesTipusEnum, NapTipusEnum napTipusEnum, Enums.DokumentumTipusEnum dokumentumTipus, string idoszakNev = "")
{
try
{
var parameters = new Dictionary<string, string>();
parameters.Add("pTanevId", ClaimData.SelectedTanevID.Value.ToString());
parameters.Add("pErtekelestipusaId", ertekelesTipusEnum.AsInt().ToString());
parameters.Add("pLezaroNaptipusId", napTipusEnum.AsInt().ToString());
parameters.Add("pTanevrendjeTanevKezdeteNaptipusId", NapTipusEnum.elso_tanitasi_nap.AsInt().ToString());
parameters.Add("pAtsoroltTanuloAdatok", "1");
parameters.Add("pOktNevKategoria", model.OktNevelesiKategoriaId.ToString());
parameters.Add("pOsztalyzatTipusTypeID", ((int)GeneratedAdatszotarTipusEnum.OsztalyzatTipus).ToString());
parameters.Add("pMagatartasErtekelesTipusTypeID", ((int)GeneratedAdatszotarTipusEnum.MagatartasErtekelesTipus).ToString());
parameters.Add("pSzorgalomErtekelesTipusTypeID", ((int)GeneratedAdatszotarTipusEnum.SzorgalomErtekelesTipus).ToString());
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (FoszamDefinicioValueModel)null);
var osztalyokTantargyiStatisztika = new OsztalyokCsoportokTantargyiStatisztika(ConnectionTypeExtensions.GetSessionConnectionType());
var excelContent = osztalyokTantargyiStatisztika.ExcelNyomtatas(parameters);
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, osztalyokTantargyiStatisztika.GetSheetDataSet(), DokumentumElemiSzintEnum.Intezmeny);
}
var ret = ExcelNyomtatas(excelContent, CommonExtensions.NevGeneralas("OsztalyokCsoportokTantargyiStatisztika" + idoszakNev, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("OsztalyokCsoportokTantargyiStatisztika" + idoszakNev, nevmodel, true), 0, dokumentumKategoria: DokumentumKategoriaEnum.Statisztikak, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
if (!model.Iktatas)
{
return ret;
}
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
private ActionResult TanulokTantargyiStatisztika(NyomtatvanyModel model, ErtekelesTipusEnum ertekelesTipusEnum, NapTipusEnum napTipusEnum, Enums.DokumentumTipusEnum dokumentumTipus, string idoszakNev = "")
{
try
{
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
var osztalyIdList = GetOsztalyIdList(model.OsztalyIdList, oktNevKategoria);
var parameters = new Dictionary<string, string>();
parameters.Add("pTanevId", ClaimData.SelectedTanevID.Value.ToString());
parameters.Add("pIntezmenyId", ClaimData.IntezmenyId.ToString());
parameters.Add("pErtekelestipusaId", ertekelesTipusEnum.AsInt().ToString());
parameters.Add("pLezaroNaptipusId", napTipusEnum.AsInt().ToString());
parameters.Add("pTanevrendjeTanevKezdeteNaptipusId", NapTipusEnum.elso_tanitasi_nap.AsInt().ToString());
parameters.Add("pMulasztasTipusIdKeses", MulasztasTipusEnum.keses.AsInt().ToString());
parameters.Add("pMulasztasTipusIdHianyzas", MulasztasTipusEnum.hianyzas.AsInt().ToString());
parameters.Add("pAtsoroltTanuloAdatok", model.AtsoroltTanuloAdatokModId.ToString());
parameters.Add("pElmeletgyakorlat", model.ElmeletGyakorlatKulon ? "1" : "0");
parameters.Add("pEvfolyamTipusTypeId", ((int)GeneratedAdatszotarTipusEnum.EvfolyamTipus).ToString());
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (FoszamDefinicioValueModel)null);
var tanulokTantargyiStatisztika = new TanulokTantargyiStatisztika(ConnectionTypeExtensions.GetSessionConnectionType(), osztalyIdList, isMagatartasSzorgalomNemLatszik: !model.MagatartasSzorgalomMegjelenitese);
var excelContent = tanulokTantargyiStatisztika.ExcelNyomtatas(parameters);
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, tanulokTantargyiStatisztika.GetSheetDataSet(), DokumentumElemiSzintEnum.Intezmeny);
}
var ret = ExcelNyomtatas(excelContent, CommonExtensions.NevGeneralas("TanulokTantargyiStatisztika" + idoszakNev, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("TanulokTantargyiStatisztika" + idoszakNev, nevmodel, true), 0, dokumentumKategoria: DokumentumKategoriaEnum.Statisztikak, dokumentumTipus: dokumentumTipus, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
if (!model.Iktatas)
{
return ret;
}
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#region Általános statisztikák
[HttpPost]
public ActionResult IntezmenyiMulasztasiOsszesitoje()
{
return MulasztasiOsszesito(null, NyomtatvanyEnum.IntezmenyiMulasztasiOsszesito, Enums.DokumentumTipusEnum.TanulokMulasztasai);
}
public ActionResult IntezmenyiTanulokNevsoraOsszesitoje()
{
try
{
var ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIntezmenyiTanulokNevsoraOsszesitoje();
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas(NyomtatvanyEnum.IntezmenyiTanulokNevsoraOsszesito.ToString(), nevmodel));
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult OsztalyTanuloinakMulasztasiSzazalekStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var parameters = new Dictionary<string, object>
{
{"pTanevId", ClaimData.SelectedTanevID.Value},
{"pMegtartottVagyMegtarthato", model.MegtartottVagyMegtarthatoModId},
{"tanitasiHetekSzamaVegzos", model.TanitasiHetekSzamaVegzos},
{"tanitasiHetekSzamaNemVegzos", model.TanitasiHetekSzamaNemVegzos},
{"isAltantargyBeszamitasa", model.AltantargyBeszamitasa}
};
var multisheetExcel = (GetOsztalyIdList(model.OsztalyIdList, null).Count > 1) && !model.AlapszintuNyomtatvanyokKulonDokumentumba;
return AltalanosOsztalyFormazottXlsGeneralas(model, new OsztalyTanuloinakMulasztasiSzazalekStatisztika(ConnectionTypeExtensions.GetSessionConnectionType(), multisheetExcel), DokumentumKategoriaEnum.Statisztikak, Enums.DokumentumTipusEnum.TanulokTantargyiMulasztasaTanorakAlapjanOsztalyonkent, parameters, "pOsztalyId", "OsztalyTanuloinakMulasztasiSzazalekStatisztika");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult StatPedagogusTanuloinakTantargyiMulasztasaiMegtartott(NyomtatvanyModel model)
{
try
{
DataSet ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetStatPedagogusTanuloinakTantargyiMulasztasaiMegtartott(ClaimData.FelhasznaloId);
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas(NyomtatvanyEnum.StatPedagogusTanuloinakTantargyiMulasztasaiMegtartott.ToString(), nevmodel), dokumentumKategoria: DokumentumKategoriaEnum.Statisztikak, dokumentumTipus: Enums.DokumentumTipusEnum.TanulokTantargyiMulasztasaTanorakAlapjanOsztalyonkent);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult OsztalyTanuloinakMulasztasiGyakorlatiSzazalekStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var parameters = new Dictionary<string, object>
{
{"pTanevId", ClaimData.SelectedTanevID.Value},
{"pMegtartottVagyMegtarthato", model.MegtartottVagyMegtarthatoModId},
{"tanitasiHetekSzamaVegzos", model.TanitasiHetekSzamaVegzos},
{"tanitasiHetekSzamaNemVegzos", model.TanitasiHetekSzamaNemVegzos},
{"isAltantargyBeszamitasa", model.AltantargyBeszamitasa}
};
var multisheetExcel = (GetOsztalyIdList(model.OsztalyIdList, null).Count > 1) && !model.AlapszintuNyomtatvanyokKulonDokumentumba;
return AltalanosOsztalyFormazottXlsGeneralas(model, new OsztalyTanuloinakMulasztasiGyakorlatiSzazalekStatisztika(ConnectionTypeExtensions.GetSessionConnectionType(), multisheetExcel), DokumentumKategoriaEnum.Statisztikak, Enums.DokumentumTipusEnum.TanulokGyakorlatiMulasztasaTanorakAlapjanOsztalyonkent, parameters, "pOsztalyId", "OsztalyTanuloinakMulasztasiGyakorlatiSzazalekStatisztika");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult HianyzokEsJelenlevokSzama(NyomtatvanyModel model)
{
try
{
var parameters = new Dictionary<string, string>
{
{"pTanevId", ClaimData.SelectedTanevID.Value.ToString()},
{"pMinOraszam", model.TeljesNaposMulasztasSzamitashozMiminalisanMulasztottOrakszamaModId.ToString()}
};
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return ExcelNyomtatas(new HianyzokEsJelenlevokSzama(ConnectionTypeExtensions.GetSessionConnectionType()).ExcelNyomtatas(parameters), CommonExtensions.NevGeneralas("HianyzokEsJelenlevokSzama", nevmodel), false, "Iktatás", dokumentumKategoria: DokumentumKategoriaEnum.Statisztikak);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult OsztalyTanuloinakHaviMulasztasaiOsszesitoje([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
var osztalyIdList = GetOsztalyIdList(model.OsztalyIdList, oktNevKategoria);
var statisztika = new OsztalyTanuloinakHaviMulasztasiOsszesitoje(ConnectionTypeExtensions.GetSessionConnectionType());
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
foreach (var osztalyId in osztalyIdList)
{
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value, OsztalyID = osztalyId };
var parameters = new Dictionary<string, string>
{
{"pTanevId", ClaimData.SelectedTanevID.Value.ToString()},
{"pIntezmenyId", ClaimData.IntezmenyId.ToString()},
{"pOsztalyId", osztalyId.ToString()},
{"pElmeletgyakorlat", model.ElmeletGyakorlatKulon ? "1" : "0"},
{"pMulasztandoOrakszamaTeljesNaposMulasztashoz", model.TeljesNaposMulasztasSzamitashozMiminalisanMulasztottOrakszamaModId.ToString()},
{"pHonapAdatszotarTypeId", ((int)GeneratedAdatszotarTipusEnum.Honapok).ToString()},
};
var excelContent = statisztika.ExcelNyomtatas(parameters);
if (osztalyIdList.Count > 1)
{
if (!model.Iktatas)
{
AddExcelMintZipEntry(ZipOutPut, excelContent, CommonExtensions.NevGeneralas("OsztalyTanuloinakHaviMulasztasiOsszesitoje", nevmodel));
}
else
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.OsztalyTanuloinakHaviMulasztasaiOsszesitoje, statisztika.GetSheetDataSet(), DokumentumElemiSzintEnum.Osztaly);
ExcelNyomtatas(excelContent, CommonExtensions.NevGeneralas("OsztalyTanuloinakHaviMulasztasiOsszesitoje", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("OsztalyTanuloinakHaviMulasztasiOsszesitoje", nevmodel, true), osztalyId, dokumentumKategoria: DokumentumKategoriaEnum.Statisztikak, dokumentumTipus: Enums.DokumentumTipusEnum.OsztalyTanuloinakHaviMulasztasaiOsszesitoje, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
else
{
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.OsztalyTanuloinakHaviMulasztasaiOsszesitoje, statisztika.GetSheetDataSet(), DokumentumElemiSzintEnum.Osztaly);
}
return ExcelNyomtatas(new OsztalyTanuloinakHaviMulasztasiOsszesitoje(ConnectionTypeExtensions.GetSessionConnectionType()).ExcelNyomtatas(parameters), CommonExtensions.NevGeneralas("OsztalyTanuloinakHaviMulasztasiOsszesitoje", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("OsztalyTanuloinakHaviMulasztasiOsszesitoje", nevmodel, true), osztalyId, dokumentumKategoria: DokumentumKategoriaEnum.Statisztikak, dokumentumTipus: Enums.DokumentumTipusEnum.OsztalyTanuloinakHaviMulasztasaiOsszesitoje, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
ZipOutPut.Finish();
OutPut.Position = 0;
if (!model.Iktatas)
{
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas("OsztalyTanuloinakHaviMulasztasiOsszesitoje", zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult OsztalyokHaviHianyzasiOsszesitoje(NyomtatvanyModel model)
{
/// TODO: nincs ilyen dokumentum típus
return MulasztasiOsszesito(model, NyomtatvanyEnum.OsztalyokHaviHianyzasiOsszesitoje, null);
}
[HttpPost]
public ActionResult TanulokSportoloiAdatainakOsszesitoje([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var tanuloIds = new List<int>() { -1 };
if (model.OsztalyIdList != null)
{
var helper = new OsztalyCsoportbaSorolasHelper(ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.IsSzakkepzoIntezmeny, ClaimData.IsSelectedTanev21_22OrLater, ClaimData.AktivTanevID, ClaimData.KovTanevID);
foreach (var item in model.OsztalyIdList)
{
var tanulos = helper.OsztalyTanuloi(item).Where(x => x.Aktiv).ToList();
foreach (var tanulo in tanulos)
{
tanuloIds.Add(int.Parse(tanulo.Value));
}
}
}
if (model.CsoportIdList != null)
{
var helper = new OsztalyCsoportbaSorolasHelper(ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.IsSzakkepzoIntezmeny, ClaimData.IsSelectedTanev21_22OrLater, ClaimData.AktivTanevID, ClaimData.KovTanevID);
foreach (var item in model.CsoportIdList)
{
var tanulos = helper.CsoportTanuloi(item).Where(x => x.Aktiv).ToList();
foreach (var tanulo in tanulos)
{
tanuloIds.Add(int.Parse(tanulo.Value));
}
}
}
var client = new KozpontiClient(KozpontiKretaConfiguration.KtrUrl, KozpontiKretaConfiguration.ApiKey);
var kozpontiResult = client.GetDiakOlimpiaList(new MdszRequestModel()
{
KretaIntezmenyAzonosito = ClaimData.IntezmenyAzonosito,
TanuloIds = tanuloIds.ToArray()
});
var ds = new DataSet();
var dt = new DataTable();
dt.Columns.Add("Tanuló neve", typeof(string));
dt.Columns.Add("Oktatási azonosító", typeof(string));
dt.Columns.Add("Születési hely", typeof(string));
dt.Columns.Add("Születési idő", typeof(string));
dt.Columns.Add("Verseny neve", typeof(string));
dt.Columns.Add("Versenyrész neve", typeof(string));
dt.Columns.Add("Jelleg", typeof(string));
dt.Columns.Add("Korcsoport", typeof(string));
dt.Columns.Add("Esemény helyszíne", typeof(string));
dt.Columns.Add("Esemény kezdete", typeof(string));
dt.Columns.Add("Esemény vége", typeof(string));
dt.Columns.Add("Forduló neve", typeof(string));
dt.Columns.Add("Részt vett", typeof(string));
dt.Columns.Add("Továbbjutott", typeof(string));
dt.Columns.Add("Eredmény", typeof(string));
dt.Columns.Add("Helyezés", typeof(string));
if (kozpontiResult.Count > 0)
{
foreach (var item in kozpontiResult)
{
DataRow row;
row = dt.NewRow();
row["Tanuló neve"] = item.TanuloNev;
row["Oktatási azonosító"] = item.OktatasiAzonosito;
row["Születési hely"] = item.SzuletesiHely;
row["Születési idő"] = item.SzuletesiIdo.ToShortDateString();
row["Verseny neve"] = item.VersenyNev;
row["Versenyrész neve"] = item.VersenyReszNev;
row["Jelleg"] = item.Jelleg;
row["Korcsoport"] = item.Korcsoport;
row["Esemény helyszíne"] = item.Helyszin;
row["Esemény kezdete"] = item.Kezdete.ToShortDateString();
row["Esemény vége"] = item.Vege.ToShortDateString();
row["Forduló neve"] = item.Fordulo;
row["Részt vett"] = item.Resztvett ? CommonResource.Igen : CommonResource.Nem;
row["Továbbjutott"] = item.Tovabbjutott ? CommonResource.Igen : CommonResource.Nem;
row["Eredmény"] = item.Eredmeny;
row["Helyezés"] = item.Helyezes;
dt.Rows.Add(row);
}
}
ds.Tables.Add(dt);
return ExcelNyomtatas(ds, "TanulokSportoloiAdatainakOsszesitoje");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#endregion
#region Osztály statisztikák
public ActionResult OsztalyFeleviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyStatisztika(model, ErtekelesTipusEnum.felevi_jegy_ertekeles, NapTipusEnum.elso_felev_vege, Enums.DokumentumTipusEnum.OsztalyFeleviStatisztika, "Felev");
}
public ActionResult OsztalyEvVegiStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyStatisztika(model, ErtekelesTipusEnum.evvegi_jegy_ertekeles, NapTipusEnum.utolso_tanitasi_nap, Enums.DokumentumTipusEnum.OsztalyEvVegiStatisztika, "Evvege");
}
public ActionResult OsztalyElsoNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyStatisztika(model, ErtekelesTipusEnum.I_ne_jegy_ertekeles, NapTipusEnum.I_negyedev_vege, Enums.DokumentumTipusEnum.OsztalyINegyedeviStatisztika, "INegyedev");
}
public ActionResult OsztalyMasodikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyStatisztika(model, ErtekelesTipusEnum.II_ne_jegy_ertekeles, NapTipusEnum.elso_felev_vege, Enums.DokumentumTipusEnum.OsztalyIINegyedeviStatisztika, "IINegyedev");
}
public ActionResult OsztalyHarmadikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyStatisztika(model, ErtekelesTipusEnum.III_ne_jegy_ertekeles, NapTipusEnum.III_negyedev_vege, Enums.DokumentumTipusEnum.OsztalyIIINegyedeviStatisztika, "IIINegyedev");
}
public ActionResult OsztalyNegyedikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyStatisztika(model, ErtekelesTipusEnum.IV_ne_jegy_ertekeles, NapTipusEnum.utolso_tanitasi_nap, Enums.DokumentumTipusEnum.OsztalyIVNegyedeviStatisztika, "IVNegyedev");
}
#endregion Osztálystatisztikák
#region Osztályok tantárgyi statisztika
public ActionResult OsztalyokFeleviTantargyiStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokTantargyiStatisztika(model, ErtekelesTipusEnum.felevi_jegy_ertekeles, NapTipusEnum.elso_felev_vege, Enums.DokumentumTipusEnum.OsztalyokFeleviTantargyiStatisztika, "Felev");
}
public ActionResult OsztalyokEvVegiTantargyiStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokTantargyiStatisztika(model, ErtekelesTipusEnum.evvegi_jegy_ertekeles, NapTipusEnum.utolso_tanitasi_nap, Enums.DokumentumTipusEnum.OsztalyokEvVegiTantargyiStatisztika, "Evvege");
}
public ActionResult OsztalyokElsoNegyedeviTantargyiStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokTantargyiStatisztika(model, ErtekelesTipusEnum.I_ne_jegy_ertekeles, NapTipusEnum.I_negyedev_vege, Enums.DokumentumTipusEnum.OsztalyokINegyedeviTantargyiStatisztika, "INegyedev");
}
public ActionResult OsztalyokMasodikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokTantargyiStatisztika(model, ErtekelesTipusEnum.II_ne_jegy_ertekeles, NapTipusEnum.elso_felev_vege, Enums.DokumentumTipusEnum.OsztalyokIINegyedeviTantargyiStatisztika, "IINegyedev");
}
public ActionResult OsztalyokHarmadikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokTantargyiStatisztika(model, ErtekelesTipusEnum.III_ne_jegy_ertekeles, NapTipusEnum.III_negyedev_vege, Enums.DokumentumTipusEnum.OsztalyokIIINegyedeviTantargyiStatisztika, "IIINegyedev");
}
public ActionResult OsztalyokNegyedikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokTantargyiStatisztika(model, ErtekelesTipusEnum.IV_ne_jegy_ertekeles, NapTipusEnum.utolso_tanitasi_nap, Enums.DokumentumTipusEnum.OsztalyokIVNegyedeviTantargyiStatisztika, "IVNegyedev");
}
#endregion Osztályok tantárgyi statisztika
#region Osztályok-csoportok tantárgyi statisztika
public ActionResult OsztalyokCsoportokFeleviTantargyiStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokCsoportokTantargyiStatisztika(model, ErtekelesTipusEnum.felevi_jegy_ertekeles, NapTipusEnum.elso_felev_vege, Enums.DokumentumTipusEnum.OsztalyokCsoportokFeleviTantargyiStatisztika, "Felev");
}
public ActionResult OsztalyokCsoportokEvVegiTantargyiStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokCsoportokTantargyiStatisztika(model, ErtekelesTipusEnum.evvegi_jegy_ertekeles, NapTipusEnum.utolso_tanitasi_nap, Enums.DokumentumTipusEnum.OsztalyokCsoportokEvVegiTantargyiStatisztika, "Evvege");
}
public ActionResult OsztalyokCsoportokElsoNegyedeviTantargyiStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokCsoportokTantargyiStatisztika(model, ErtekelesTipusEnum.I_ne_jegy_ertekeles, NapTipusEnum.I_negyedev_vege, Enums.DokumentumTipusEnum.OsztalyokCsoportokINegyedeviTantargyiStatisztika, "INegyedev");
}
public ActionResult OsztalyokCsoportokMasodikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokCsoportokTantargyiStatisztika(model, ErtekelesTipusEnum.II_ne_jegy_ertekeles, NapTipusEnum.elso_felev_vege, Enums.DokumentumTipusEnum.OsztalyokCsoportokIINegyedeviTantargyiStatisztika, "IINegyedev");
}
public ActionResult OsztalyokCsoportokHarmadikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokCsoportokTantargyiStatisztika(model, ErtekelesTipusEnum.III_ne_jegy_ertekeles, NapTipusEnum.III_negyedev_vege, Enums.DokumentumTipusEnum.OsztalyokCsoportokIIINegyedeviTantargyiStatisztika, "IIINegyedev");
}
public ActionResult OsztalyokCsoportokNegyedikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return OsztalyokCsoportokTantargyiStatisztika(model, ErtekelesTipusEnum.IV_ne_jegy_ertekeles, NapTipusEnum.utolso_tanitasi_nap, Enums.DokumentumTipusEnum.OsztalyokCsoportokIVNegyedeviTantargyiStatisztika, "IVNegyedev");
}
#endregion Osztályok-csoportok tantárgyi statisztika
#region Tanulók tantárgyi statisztika
public ActionResult TanulokFeleviTantargyiStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanulokTantargyiStatisztika(model, ErtekelesTipusEnum.felevi_jegy_ertekeles, NapTipusEnum.elso_felev_vege, Enums.DokumentumTipusEnum.TanulokFeleviTantargyiStatisztika, "Felev");
}
public ActionResult TanulokEvVegiTantargyiStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanulokTantargyiStatisztika(model, ErtekelesTipusEnum.evvegi_jegy_ertekeles, NapTipusEnum.utolso_tanitasi_nap, Enums.DokumentumTipusEnum.TanulokEvVegiTantargyiStatisztika, "Evvege");
}
public ActionResult TanulokElsoNegyedeviTantargyiStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanulokTantargyiStatisztika(model, ErtekelesTipusEnum.I_ne_jegy_ertekeles, NapTipusEnum.I_negyedev_vege, Enums.DokumentumTipusEnum.TanulokINegyedeviTantargyiStatisztika, "INegyedev");
}
public ActionResult TanulokMasodikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanulokTantargyiStatisztika(model, ErtekelesTipusEnum.II_ne_jegy_ertekeles, NapTipusEnum.elso_felev_vege, Enums.DokumentumTipusEnum.TanulokIINegyedeviTantargyiStatisztika, "IINegyedev");
}
public ActionResult TanulokHarmadikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanulokTantargyiStatisztika(model, ErtekelesTipusEnum.III_ne_jegy_ertekeles, NapTipusEnum.III_negyedev_vege, Enums.DokumentumTipusEnum.TanulokIIINegyedeviTantargyiStatisztika, "IIINegyedev");
}
public ActionResult TanulokNegyedikNegyedeviStatisztika([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return TanulokTantargyiStatisztika(model, ErtekelesTipusEnum.IV_ne_jegy_ertekeles, NapTipusEnum.utolso_tanitasi_nap, Enums.DokumentumTipusEnum.TanulokIVNegyedeviTantargyiStatisztika, "IVNegyedev");
}
public ActionResult TanulokGyorsBejegyzesStatisztika(NyomtatvanyModel model, NyomtatvanyEnum nyomtatvanyTipus = NyomtatvanyEnum.TanulokGyorsBejegyzesStatisztika)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTanulokGyorsBejegyzesStatisztika));
var dsParameterek = new Dictionary<string, object>()
{
{ "osztalyId", model.OsztalyId },
};
var tanulokBejegyzesei = new TanulokGyorsbejegyzeseiExcel(ConnectionTypeExtensions.GetSessionConnectionType());
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
model.OsztalyIdList = GetOsztalyIdList(model.OsztalyIdList, oktNevKategoria);
if (model.OsztalyIdList.Count == 0)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
if (model.OsztalyIdList.Count == 1)
{
model.AlapszintuNyomtatvanyokKulonDokumentumba = false;
}
model.TanuloIdList = null;
var frxParameterek = new Dictionary<string, object>();
return AltalanosTanuloiGeneralas(model, NyomtatvanyEnum.TanulokGyorsBejegyzesStatisztika.ToString(), DokumentumKategoriaEnum.Tanulok, Enums.DokumentumTipusEnum.TanulokMulasztasai, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec", tablakFilterByTanuloId: "TanulokMulasztasai", tanuloIdColumnName: "TanuloId", formazottExcelGenerator: tanulokBejegyzesei, emptyDocumentTable: "TanuloAlapAdatok");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult TanulokBejegyzesStatisztika(NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTanulokBejegyzesStatisztika));
var dsParameterek = new Dictionary<string, object>()
{
{ "osztalyId", model.OsztalyId },
};
var tanulokBejegyzesei = new TanulokBejegyzeseiExcel(ConnectionTypeExtensions.GetSessionConnectionType());
OktNevelesiKategoriaEnum? oktNevKategoria = (model.OktNevelesiKategoriaId.IsEntityId()) ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
model.OsztalyIdList = GetOsztalyIdList(model.OsztalyIdList, oktNevKategoria);
if (model.OsztalyIdList.Count == 0)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
if (model.OsztalyIdList.Count == 1)
{
model.AlapszintuNyomtatvanyokKulonDokumentumba = false;
}
model.TanuloIdList = null;
var frxParameterek = new Dictionary<string, object>() { { "Kelt", model.KeltDatum.ToString(Core.Constants.ToStringPattern.HungarianDateWithSuffix) } };
return AltalanosTanuloiGeneralas(model, NyomtatvanyEnum.TanulokBejegyzesStatisztika.ToString(), DokumentumKategoriaEnum.Tanulok, Enums.DokumentumTipusEnum.TanulokMulasztasai, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec", tablakFilterByTanuloId: "TanulokMulasztasai", tanuloIdColumnName: "TanuloId", formazottExcelGenerator: tanulokBejegyzesei, emptyDocumentTable: "TanuloBejegyzes");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#endregion Tanulók tantárgyi statisztika
#region Lázár Ervin program statisztikái
public ActionResult EloadasokTanuloinakOsszesitoje(NyomtatvanyModel model)
{
try
{
var ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEloadasokTanuloinakOsszesitoje(model.OsztalyIdList, model.OktNevelesiKategoriaId);
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas(NyomtatvanyEnum.EloadasokTanuloinakOsszesitoje.ToString(), nevmodel));
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#endregion
}
}

View file

@ -0,0 +1,419 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using System.IO;
using System.Web.Mvc;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel;
using Kreta.BusinessLogic.Utils;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private RedirectToRouteResult KozpontiKretaLetoltottDokumentumIktatas(NyomtatvanyModel model, MemoryStream stream, string riportNeve, Enums.DokumentumTipusEnum dokumentumTipus, string formatum)
{
var ds = new DataSet();
var table = Newtonsoft.Json.Linq.JObject.Parse("{}").ToDataTable();
table.TableName = "IktatasAdatok";
ds.Tables.Add(table);
var (kulcsSzavak, foszamDefinicio) = KulcsszavakEsFoszamGeneralas(model, dokumentumTipus, ds, DokumentumElemiSzintEnum.Intezmeny);
PoszeidonIktatas(stream, riportNeve, ClaimData.FelhasznaloId, DokumentumKategoriaEnum.TanugyiEllenorzes, dokumentumTipus, 0, kulcsSzavak: kulcsSzavak, foszamDefinicio: foszamDefinicio, formatum: formatum);
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
private ActionResult KozpontiKretaRiportLekeres(NyomtatvanyModel model, KozpontiKretaDokumentumTipusEnum riportNev, Enums.DokumentumTipusEnum dokumentumTipus, string formatum, string kiterjesztes, KozpontiKretaDokumentumTipusEnum? riportTipus = null, string riportFormatumUriPart = "")
{
if (!riportTipus.HasValue)
{
riportTipus = riportNev;
}
var tanevCo = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo();
var tanevNev = tanevCo.Nev.Replace("/", "_");
var riportNeve = $"{riportNev}_{ClaimData.IntezmenyAzonosito}_{tanevNev}";
try
{
var stream = KozpontiKretaHelper.GetRiportDokumentum(riportTipus.Value, ApplicationData.SystemType, tanevCo, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value, riportFormatumUriPart);
if (model.Iktatas)
{
return KozpontiKretaLetoltottDokumentumIktatas(model, stream, riportNeve, dokumentumTipus, formatum);
}
return File(stream, formatum, riportNeve + $".{kiterjesztes}");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult TanevKozbenKilepettTanulokNyomtatas([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
try
{
var ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevKozbenKilepettTanulok();
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.TanevKozbenKilepettTanulok, ds, DokumentumElemiSzintEnum.Intezmeny);
}
ds.Tables.Remove("IktatasAdat");
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas("TanevKozbenKilepettTanulok", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("TanevKozbenKilepettTanulok", nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.TanugyiEllenorzes, dokumentumTipus: Enums.DokumentumTipusEnum.TanevKozbenKilepettTanulok, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult OsztalyokEvesOraszama([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
try
{
var oktNevelesiKategoriaId = model.OktNevelesiKategoriaId.IsEntityId() ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
var ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyokEvesOraszama(model.TanitasiHetekSzamaVegzos, model.TanitasiHetekSzamaNemVegzos, model.AltantargyBeszamitasa, oktNevelesiKategoriaId);
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.OsztalyokEvesOraszamaiOsszesitoSegedletATorzslaponMegjelenoEvesOraszamokEllenorzesehez, ds, DokumentumElemiSzintEnum.Intezmeny);
}
ds.Tables.Remove("IktatasAdat");
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas("OsztalyokEvesOraszama", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas("OsztalyokEvesOraszama", nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.TanugyiEllenorzes, dokumentumTipus: Enums.DokumentumTipusEnum.OsztalyokEvesOraszamaiOsszesitoSegedletATorzslaponMegjelenoEvesOraszamokEllenorzesehez, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#region Naplóellenőrzés
[HttpPost]
public ActionResult NaplobaNemBejegyzettFoglalkozasokByOsztaly([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
var outPut = new MemoryStream();
var zipOutPut = new ZipOutputStream(outPut);
var oktNevKategoria = model.OktNevelesiKategoriaId.IsEntityId() ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
var osztalyIdList = GetOsztalyIdList(model.OsztalyIdList, oktNevKategoria);
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
var nyomtatvanyNeve = "NaplobaBeNemJegyzettFoglalkozasok";
try
{
if (osztalyIdList.Count == 0)
{
throw new ApplicationException(NyomtatvanyokResource.UresDokumentum);
}
var result = new DataSet();
var resultIktatas = new DataSet();
for (var i = 0; i < osztalyIdList.Count; i++)
{
var osztalyId = osztalyIdList[i];
Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(osztalyId).ToString(), out OktNevelesiKategoriaEnum kategoria);
var ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNaplobaNemBejegyzettFoglalkozasok(osztalyId, model.PedagogusId, kategoria);
result.Tables.Add(ds.Tables[0].Copy());
if (osztalyIdList.Count > 1)
{
if (model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
nevmodel.OsztalyID = osztalyId;
if (!model.Iktatas)
{
var excelResult = ExcelNyomtatas(result, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel)) as FileStreamResult;
AddExcelMintZipEntry(zipOutPut, excelResult.FileStream as MemoryStream, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel));
}
else
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.NaplobaBeNemJegyzettFoglalkozasokOrarendAlapjan, ds, Enums.DokumentumElemiSzintEnum.Osztaly);
ExcelNyomtatas(result, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.TanugyiEllenorzes, dokumentumTipus: Enums.DokumentumTipusEnum.NaplobaBeNemJegyzettFoglalkozasokOrarendAlapjan, osztalyId: osztalyId, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
result = new DataSet();
}
else
{
if (model.Iktatas)
{
resultIktatas.Merge(ds.Tables["IktatasiAdatok"]);
resultIktatas.Merge(ds.Tables["TanarIktatasiAdatok"]);
}
}
}
else
{
nevmodel.OsztalyID = osztalyId;
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.NaplobaBeNemJegyzettFoglalkozasokOrarendAlapjan, ds, Enums.DokumentumElemiSzintEnum.Osztaly);
}
return ExcelNyomtatas(result, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.TanugyiEllenorzes, dokumentumTipus: Enums.DokumentumTipusEnum.NaplobaBeNemJegyzettFoglalkozasokOrarendAlapjan, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.NaplobaBeNemJegyzettFoglalkozasokOrarendAlapjan, resultIktatas, Enums.DokumentumElemiSzintEnum.Intezmeny);
}
return ExcelNyomtatas(result, CommonExtensions.NevGeneralas(nyomtatvanyNeve + "TobbOsztaly", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve + "TobbOsztaly", nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.TanugyiEllenorzes, dokumentumTipus: Enums.DokumentumTipusEnum.NaplobaBeNemJegyzettFoglalkozasokOrarendAlapjan, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
if (model.Iktatas)
{
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
zipOutPut.Finish();
outPut.Position = 0;
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return new FileStreamResult(outPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas(nyomtatvanyNeve, zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult NaplobaNemBejegyzettFoglalkozasokByPedagogus([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
var outPut = new MemoryStream();
var zipOutPut = new ZipOutputStream(outPut);
var pedagogusIdList = GetPedagogusIdListByFelhasznaloId(model.PedagogusIdList);
var foszamKulcsSzavak = (kulcsSzavak: (NameValueCollection)null, foszamDefinicio: (BusinessLogic.Helpers.Nyomtatvanyok.Iktatas.FoszamDefinicioValueModel)null);
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
var nyomtatvanyNeve = NyomtatvanyokResource.NaplobaNemBejegyzettFoglalkozasokByPedagogus_Fajlnev;
try
{
var result = new DataSet();
var resultIktatas = new DataSet();
Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(model.OsztalyId).ToString(), out OktNevelesiKategoriaEnum kategoria);
for (var i = 0; i < pedagogusIdList.Count; i++)
{
var pedagogusId = pedagogusIdList[i];
var ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNaplobaNemBejegyzettFoglalkozasok(model.OsztalyId, pedagogusId, kategoria);
result.Tables.Add(ds.Tables[0].Copy());
if (pedagogusIdList.Count > 1)
{
if (model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
nevmodel.TanarID = pedagogusId;
if (!model.Iktatas)
{
var excelResult = ExcelNyomtatas(result, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel)) as FileStreamResult;
AddExcelMintZipEntry(zipOutPut, excelResult.FileStream as MemoryStream, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel));
}
else
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.NaplobaBeNemJegyzettFoglalkozasokOrarendAlapjan, ds, Enums.DokumentumElemiSzintEnum.Tanulo);
ExcelNyomtatas(result, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.TanugyiEllenorzes, dokumentumTipus: Enums.DokumentumTipusEnum.PedagogusokNaplobaBeNemJegyzettOraiOsszesOrarendAlapjan, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
result = new DataSet();
}
else
{
if (model.PedagogusIdList == null && !result.Tables.Contains(NyomtatvanyokResource.Osszes))
{
var osszesTable = ds.Tables[0].Clone();
osszesTable.TableName = NyomtatvanyokResource.Osszes;
var elsoTabla = result.Tables[0];
result.Tables.Remove(elsoTabla);
result.Tables.Add(osszesTable);
result.Tables.Add(elsoTabla);
}
if (result.Tables.Contains(NyomtatvanyokResource.Osszes) && ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Rows[0][0] != DBNull.Value)
{
result.Tables[NyomtatvanyokResource.Osszes].Merge(ds.Tables[0]);
}
if (model.Iktatas)
{
resultIktatas.Merge(ds.Tables["IktatasiAdatok"]);
resultIktatas.Merge(ds.Tables["TanarIktatasiAdatok"]);
}
}
}
else
{
nevmodel.TanarID = pedagogusId;
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.NaplobaBeNemJegyzettFoglalkozasokOrarendAlapjan, ds, Enums.DokumentumElemiSzintEnum.Tanulo);
}
return ExcelNyomtatas(result, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve, nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.TanugyiEllenorzes, dokumentumTipus: Enums.DokumentumTipusEnum.PedagogusokNaplobaBeNemJegyzettOraiOsszesOrarendAlapjan, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
}
if (!model.AlapszintuNyomtatvanyokKulonDokumentumba)
{
if (model.Iktatas)
{
foszamKulcsSzavak = KulcsszavakEsFoszamGeneralas(model, Enums.DokumentumTipusEnum.NaplobaBeNemJegyzettFoglalkozasokOrarendAlapjan, resultIktatas, Enums.DokumentumElemiSzintEnum.Intezmeny);
}
return ExcelNyomtatas(result, CommonExtensions.NevGeneralas(nyomtatvanyNeve + "TobbPedagogus", nevmodel), model.Iktatas, CommonExtensions.NevGeneralas(nyomtatvanyNeve + "TobbPedagogus", nevmodel, true), dokumentumKategoria: DokumentumKategoriaEnum.TanugyiEllenorzes, dokumentumTipus: Enums.DokumentumTipusEnum.PedagogusokNaplobaBeNemJegyzettOraiOsszesOrarendAlapjan, kulcsSzavak: foszamKulcsSzavak.kulcsSzavak, foszamDefinicio: foszamKulcsSzavak.foszamDefinicio);
}
if (model.Iktatas)
{
return RedirectToAction("Index", Constants.Controllers.IktatottDokumentumok, new { area = Constants.Areas.Nyomtatvanyok });
}
zipOutPut.Finish();
outPut.Position = 0;
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return new FileStreamResult(outPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas(nyomtatvanyNeve, zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult PedagogusokBeNemIrtOraiHaviBontasban(NyomtatvanyModel model)
{
try
{
var parameters = new Dictionary<string, string>
{
{"pTanevId", ClaimData.SelectedTanevID.Value.ToString()},
{"pIntezmenyId", ClaimData.IntezmenyId.ToString()},
{"pFeladatKategoriaId", model.OktNevelesiKategoriaId.IsEntityId() ? model.OktNevelesiKategoriaId.ToString() : null }
};
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return ExcelNyomtatas(new PedagogusokBeNemIrtOraiHaviBontasban(ConnectionTypeExtensions.GetSessionConnectionType()).ExcelNyomtatas(parameters), CommonExtensions.NevGeneralas("PedagogusokBeNemIrtOraiHaviBontasban", nevmodel), false, "Iktatás", 0, dokumentumKategoria: DokumentumKategoriaEnum.Statisztikak);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#endregion Naplóellenőrzés
#region Fenntartói dokumentumok
public ActionResult KozpontiKretaElfogadottTtfExcel([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
return KozpontiKretaRiportLekeres(model, KozpontiKretaDokumentumTipusEnum.TtfExcel, Enums.DokumentumTipusEnum.ElfogadottTantargyfelosztasFormazottExcel, Core.Constants.ContentTypes.Xlsx, Constants.ImportExport.FileFormatXlsx, KozpontiKretaDokumentumTipusEnum.TtfElfogadottExcel, Constants.ImportExport.FileFormatXlsx);
}
public ActionResult KozpontiKretaElfogadottTtfPdf([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
return KozpontiKretaRiportLekeres(model, KozpontiKretaDokumentumTipusEnum.TtfPdf, Enums.DokumentumTipusEnum.ElfogadottTantargyfelosztasFormazottPDF, Core.Constants.ContentTypes.Pdf, Constants.ImportExport.FileFormatPdf, KozpontiKretaDokumentumTipusEnum.TtfElfogadottPdf, Constants.ImportExport.FileFormatPdf);
}
public ActionResult KozpontiKretaTtfExcel([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return KozpontiKretaRiportLekeres(model, KozpontiKretaDokumentumTipusEnum.TtfExcel, Enums.DokumentumTipusEnum.TantargyfelosztasFormazottExcel, Core.Constants.ContentTypes.Xlsx, Core.Constants.ImportExport.FileExtensionExcelX, riportFormatumUriPart: Constants.ImportExport.FileFormatXlsx);
}
public ActionResult KozpontiKretaTtfPdf([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return KozpontiKretaRiportLekeres(model, KozpontiKretaDokumentumTipusEnum.TtfPdf, Enums.DokumentumTipusEnum.TantargyfelosztasFormazottPDF, Core.Constants.ContentTypes.Pdf, Core.Constants.ImportExport.FileExtensionPdf, riportFormatumUriPart: Constants.ImportExport.FileFormatPdf);
}
public ActionResult KozpontiKretaOsztalyokSzama([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return KozpontiKretaRiportLekeres(model, KozpontiKretaDokumentumTipusEnum.OsztalyokSzamaRiport, Enums.DokumentumTipusEnum.OsztalyokSzamaRiport, Core.Constants.ContentTypes.Xlsx, Constants.ImportExport.FileFormatXlsx);
}
public ActionResult KozpontiKretaCsoportokSzama([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return KozpontiKretaRiportLekeres(model, KozpontiKretaDokumentumTipusEnum.CsoportokSzamaRiport, Enums.DokumentumTipusEnum.CsoportokSzamaRiport, Core.Constants.ContentTypes.Xlsx, Constants.ImportExport.FileFormatXlsx);
}
public ActionResult KozpontiKretaFeladatellatasiHelyek([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
return KozpontiKretaRiportLekeres(model, KozpontiKretaDokumentumTipusEnum.FeladatellatasiHelyekRiport, Enums.DokumentumTipusEnum.FeladatellatasiHelyekRiport, Core.Constants.ContentTypes.Xlsx, Constants.ImportExport.FileFormatXlsx);
}
public ActionResult AgazatiTanuloiLetszamEvfolyamonkentNemenkent([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
return KozpontiKretaRiportLekeres(model, KozpontiKretaDokumentumTipusEnum.AgazatiTanuloiLetszamEvfolyamonkentNemenkentRiport, Enums.DokumentumTipusEnum.TanulokMegoszlasaEvfolyamokEsAgazatokSzerint, Core.Constants.ContentTypes.Xlsx, Constants.ImportExport.FileFormatXlsx);
}
public ActionResult ReszletesAlkalmazottiport([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
return KozpontiKretaRiportLekeres(model, KozpontiKretaDokumentumTipusEnum.ReszletesAlkalmazottRiport, Enums.DokumentumTipusEnum.ReszletesAlkalmazottAdatok, Core.Constants.ContentTypes.Xlsx, Constants.ImportExport.FileFormatXlsx);
}
public ActionResult ReszletesTanuloRiport([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))] NyomtatvanyModel model)
{
return KozpontiKretaRiportLekeres(model, KozpontiKretaDokumentumTipusEnum.ReszletesTanulokRiport, Enums.DokumentumTipusEnum.ReszletesTanuloiAdatok, Core.Constants.ContentTypes.Xlsx, Constants.ImportExport.FileFormatXlsx);
}
public ActionResult EbedNormativaRiport([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEbedNormativaRiport(model.Oraszam, model.IsAmiHianyzasIsMegjelenjen);
return ExcelNyomtatas(ds, CommonExtensions.NevGeneralas("EbedNormativaRiport", new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value }));
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
#endregion Fenntartói dokumentumok
}
}

View file

@ -0,0 +1,464 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web.Mvc;
using ICSharpCode.SharpZipLib.Zip;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.Nyomtatvanyok.Excel;
using Kreta.Core;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Logic;
using Kreta.Web.Classes;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
public partial class NyomtatvanyokController : BaseNyomtatvanyokController
{
private ActionResult JelenletiIv(NyomtatvanyModel model, NyomtatvanyEnum nye)
{
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
try
{
var buffer = new byte[Constants.General.BufferSize];
ActionResult egyediJelenletiIv = new FileStreamResult(OutPut, Constants.ImportExport.ContentType);
var parameters = new Dictionary<string, object> {
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"PHMegjelenitese", model.PHMegjelenitese }
};
foreach (var foglalkozasId in GetFoglalkozasIdList(model.FoglalkozasIdList))
{
DataSet ds = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloJelenletiIvAlkalmankent(foglalkozasId, model.KeltDatum);
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value, FoglalkozasID = foglalkozasId };
if (GetFoglalkozasIdList(model.FoglalkozasIdList).Count > 1)
{
using (var stream = GetMemoryStreamByName(ds, nye.ToString(), parameters, CommonExtensions.NevGeneralas(nye.ToString(), nevmodel), formatumId: model.FormatumId))
{
AddZipEntry(ZipOutPut, stream, $"{CommonExtensions.NevGeneralas(nye.ToString(), nevmodel)}", model.FormatumId);
}
}
else
{
egyediJelenletiIv = Nyomtatas(ds, nye.ToString(), parameters, CommonExtensions.NevGeneralas(nye.ToString(), nevmodel), formatumId: model.FormatumId);
}
}
ZipOutPut.Finish();
OutPut.Position = 0;
var zipnevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
if (GetFoglalkozasIdList(model.FoglalkozasIdList).Count > 1)
{
return new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{CommonExtensions.NevGeneralas(nye.ToString(), zipnevmodel)}.{Constants.ImportExport.FileFormatZip}"
};
}
return egyediJelenletiIv;
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult JelenletiIvAlkalmankent(NyomtatvanyModel model)
{
/// TODO: nincs ilyen dokumentum típus
return JelenletiIv(model, NyomtatvanyEnum.JelenletiIvAlkalmankent);
}
[HttpPost]
public ActionResult JelenletiIv15Alkalom(NyomtatvanyModel model)
{
/// TODO: nincs ilyen dokumentum típus
return JelenletiIv(model, NyomtatvanyEnum.JelenletiIv15Alkalmas);
}
[HttpPost]
public ActionResult AlairoIv15Alkalom(NyomtatvanyModel model)
{
/// TODO: nincs ilyen dokumentum típus
return JelenletiIv(model, NyomtatvanyEnum.AlairoIv15Alkalom);
}
public ActionResult TanuloiKapcsolatKereses(NyomtatvanyModel model)
{
var OutPut = new MemoryStream();
var ZipOutPut = new ZipOutputStream(OutPut);
try
{
var buffer = new byte[Constants.General.BufferSize];
ActionResult fileStremResult = new FileStreamResult(OutPut, Constants.ImportExport.ContentType);
var tanuloiKapcsolatKeresesAdatok = NyomtatvanyokLogic.TanuloiKapcsolatKeresesAdatok(model.KeltDatum);
var nemJelenlevoTanulok = new List<string>();
var tanulok = NyomtatvanyokLogic.GetTanulokKapcsolatKereso(model, tanuloiKapcsolatKeresesAdatok);
var jelenlevoTanulok = tanulok.Count(x => x.tanuloKapcsolatKeresoAdatok.Tables[0].Rows.Count > 0);
if (jelenlevoTanulok > 1)
{
foreach (var tanulo in tanulok.Where(x => x.tanuloKapcsolatKeresoAdatok.Tables[0].Rows.Count > 0))
{
var stream = ExcelNyomtatasByMemoryStream(tanulo.tanuloKapcsolatKeresoAdatok, false);
var fajlNev = RemoveSpecialCharacters("Tanulói kapcsolat " + DateTime.Now.ToString("yyyyMMddHHmm") + " " + tanulo.tanuloNev);
AddExcelMintZipEntry(ZipOutPut, stream, fajlNev);
}
}
else if (jelenlevoTanulok == 1)
{
var tanulo = tanulok.FirstOrDefault(x => x.tanuloKapcsolatKeresoAdatok.Tables[0].Rows.Count > 0);
var fajlNev = RemoveSpecialCharacters("Tanulói kapcsolat " + DateTime.Now.ToString("yyyyMMddHHmm") + " " + tanulo.tanuloNev);
fileStremResult = ExcelNyomtatas(tanulo.tanuloKapcsolatKeresoAdatok, fajlNev);
}
else
{
throw new Exception(NyomtatvanyokResource.JelzettNaponTanulonakNemVoltJelen);
}
ZipOutPut.Finish();
OutPut.Position = 0;
if (jelenlevoTanulok > 1)
{
fileStremResult = new FileStreamResult(OutPut, Constants.ImportExport.ContentType)
{
FileDownloadName = $"{RemoveSpecialCharacters("Tanulói kapcsolat " + DateTime.Now.ToString("yyyyMMddHHmm"))}.{Constants.ImportExport.FileFormatZip}"
};
}
return fileStremResult;
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult FeljegyzesekReszletezese([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTanulokFeljegyzesekReszletezese));
var dsParameterek = new Dictionary<string, object>();
var frxParameterek = new Dictionary<string, object>()
{
{"Osztalyfonok", StringResourcesUtil.GetString(29)},
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text}
};
return AltalanosTanuloiGeneralas(model, NyomtatvanyEnum.TanulokFeljegyzesekReszletezese.ToString(), DokumentumKategoriaEnum.Tanulok, Enums.DokumentumTipusEnum.FeljegyzesekReszletezese, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec", tablakFilterByTanuloId: "FeljegyzesReszletezes", tanuloIdColumnName: "TANULO_ID");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult TantargyiMulasztasokReszletezese([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTanulokTantargyMulasztasokReszletezese));
var dsParameterek = new Dictionary<string, object>()
{
{ "iskolaErdekuSzamit", isIskolaerdekuSzamit }
};
var frxParameterek = new Dictionary<string, object>
{
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text}
};
return AltalanosTanuloiGeneralas(model, "TanulokTantargyiMulasztasokReszletezese", DokumentumKategoriaEnum.Tanulok, Enums.DokumentumTipusEnum.TantargyiMulasztasokReszletezese, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec", tablakFilterByTanuloId: "Tanulo,Tantargy,MulasztasokReszletezese", tanuloIdColumnName: "TanuloId");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult TanulokMulasztasai(NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTanulokMulasztasokKesesek));
Dictionary<string, object> dsParameterek = new Dictionary<string, object>();
dsParameterek.Add("elmeletgyakorlat", model.ElmeletGyakorlatKulon);
model.FormatumId = NyomtatvanyFormatumEnum.Excel.AsInt();
var multisheet = (model.OsztalyIdList.Count > 1) && (!model.AlapszintuNyomtatvanyokKulonDokumentumba);
var tanulokMulasztasai = new TanulokMulasztasaiExcel(ConnectionTypeExtensions.GetSessionConnectionType(), isMultisheetExcel: multisheet, elmeletGyakorlat: model.ElmeletGyakorlatKulon);
Dictionary<string, object> frxParameterek = new Dictionary<string, object>() { { "Kelt", model.KeltDatum.ToString(Core.Constants.ToStringPattern.HungarianDateWithSuffix) } };
return AltalanosTanuloiGeneralas(model, NyomtatvanyEnum.TanulokMulasztasok.ToString(), DokumentumKategoriaEnum.Tanulok, Enums.DokumentumTipusEnum.TanulokMulasztasai, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec", tablakFilterByTanuloId: "TanulokMulasztasai", tanuloIdColumnName: "TanuloId", formazottExcelGenerator: tanulokMulasztasai);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult KozossegiSzolgalatokExcelExport(NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
KozossegiSzolgalatokSearchCo co = new KozossegiSzolgalatokSearchCo();
co.OsztalyCsoportIdList = model.OsztalyIdList;
co.TanuloIdList = model.TanuloIdList;
DataSet dataSet = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetKozossegiSzolgalatokExcelExport(co);
//NOTE: Az osztály összesítő táblák 4. oszlopa, illetve az összes többi tábla 5. oszlopa numerikus formában kell megjelennie.
var excelNumericTypeColumns = new List<ExcelNumericTypeColumn>();
excelNumericTypeColumns.AddRange(Enumerable.Range(0, model.OsztalyIdList.Count).Select(x => new ExcelNumericTypeColumn(3, x)));
excelNumericTypeColumns.Add(new ExcelNumericTypeColumn(4));
return ExcelNyomtatas(dataSet, FeljegyzesekResource.KozossegiSzolgalatokExportFileName, excelNumericTypeColumns: excelNumericTypeColumns);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult FelmentesekHatarozatok([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTanulokFelmentesekHatarozatok));
var dsParameterek = new Dictionary<string, object>();
var frxParameterek = new Dictionary<string, object>
{
{"Osztalyfonok", StringResourcesUtil.GetString(29)},
{"Tantargy", StringResourcesUtil.GetString(2882)},
{"MentessegOka", StringResourcesUtil.GetString(2883)},
{"Tipus", StringResourcesUtil.GetString(2884)},
{"Kelt", NyomtatvanyokLogic.KeltSzoveg(model.KeltDatum, model.KeltFormatumId)},
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text}
};
return AltalanosTanuloiGeneralas(model, NyomtatvanyEnum.TanulokFelmentesekHatarozatok.ToString(), DokumentumKategoriaEnum.Tanulok, Enums.DokumentumTipusEnum.FelmentesekHatarozatok, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec", tablakFilterByTanuloId: "FelmentesekDataSource", tanuloIdColumnName: "TANULO_ID");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult TanuloiAdatlapok([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTanuloiAdatlap));
Dictionary<string, object> dsParameterek = new Dictionary<string, object>()
{
{ "isSzakkepzoIntezmenyAnd21_22TanevOrLater", ClaimData.IsSelectedTanev21_22OrLater && ClaimData.IsSzakkepzoIntezmeny }
};
Dictionary<string, object> frxParameterek = new Dictionary<string, object>()
{
{ "MagantanuloText", ClaimData.IsSelectedTanev20_21OrLater ? TanuloResource.EgyeniMunkarend : TanuloResource.Magantanulo }
};
return AltalanosTanuloiGeneralas(model, "TanuloiAdatlap", DokumentumKategoriaEnum.Tanulok, Enums.DokumentumTipusEnum.TanuloiAdatlapok, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec", tablakFilterByTanuloId: "Tanulok", tanuloIdColumnName: "TanuloId");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult TanuloJegyeiReszletezes([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetTanulokJegyeiReszletezes));
var dsParameterek = new Dictionary<string, object>()
{
{ "isMagatartasSzorgalomNemLatszik" , !model.MagatartasSzorgalomMegjelenitese }
};
var frxParameterek = new Dictionary<string, object>
{
{"AlulirottMegnevezese", new AlkalmazottMunkaugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAlkalmazottByVezetoiOraszamOk(true).Where(x => x.Value == model.AlulirottMegnevezesId.ToString()).FirstOrDefault()?.Text}
};
var multisheet = (model.OsztalyIdList.Count > 1) && (!model.AlapszintuNyomtatvanyokKulonDokumentumba);
var tanuloJegyeiReszletezes = new TanuloJegyeiReszletezesExcelbe(ConnectionTypeExtensions.GetSessionConnectionType(), multisheet);
return AltalanosTanuloiGeneralas(model, "TanuloJegyekReszletezese", DokumentumKategoriaEnum.Tanulok, Enums.DokumentumTipusEnum.ErtekelesekReszletezese, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec", tablakFilterByTanuloId: "JegyekReszletezese", tanuloIdColumnName: "TanuloId", formazottExcelGenerator: tanuloJegyeiReszletezes);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
public ActionResult Ellenorzo([ModelBinder(typeof(NyomtatvanyModelBinderWithPoszeidonIktatasDefiniciok))]
NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var isIskolaerdekuSzamit = GetIsIskolaerdekuSzamit();
var minTanoraSzam = GetMinTanoraSzam();
var nyomtatvanyNeve = NyomtatvanyEnum.Ellenorzo.ToString();
model.FormatumId = (int)NyomtatvanyFormatumEnum.PDF;
// Azért, hogy tanulói szinten legyen generálva
model.AlapszintuNyomtatvanyokKulonDokumentumba = true;
if (model.TanuloIdList == null)
{
model.TanuloIdList = new List<int> { -1 };
}
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetEllenorzo));
Dictionary<string, object> dsParameterek = new Dictionary<string, object>() {
{ "aktivtanevId", ClaimData.AktivTanevID },
{ "iskolaErdekuSzamit", isIskolaerdekuSzamit },
{ "fuggolegesTantargyak", model.FuggolegesTantargyak },
{ "isReszletesMulasztasok", model.ReszletesMulasztasok },
{ "isEgyebFoglalkozasok", model.EgyebFoglalkozasok },
{ "minTanoraSzam", minTanoraSzam },
{ "orarendErvenyessegiDatum", model.OrarendErvenyessegiDatum },
{ "isEllenorzo", true },
{ "isSzovegesNaplo", true },
{ "isMagatartasSzorgalomNemLatszik" , !model.MagatartasSzorgalomMegjelenitese }
};
Dictionary<string, object> frxParameterek = new Dictionary<string, object>() {
{ "ElmeletGyakorlat", model.ElmeletGyakorlatKulon.ToString() }
};
return AltalanosTanuloiGeneralas(model, nyomtatvanyNeve, DokumentumKategoriaEnum.Tanulok, Enums.DokumentumTipusEnum.OsztalyTanuloinakEllenorzokonyve, metodus, 0, dsParameterek, frxParameterek, distinctTables: "Fejlec,Tanarok", tablakFilterByTanuloId: "TanuloAlapAdatok,TanuloElerhetosegei,TanuloMentessegei,TanuloHatarozatok,FeljegyzesekATanulorol,TanuloMulasztasai,TanuloGonviselokAdatai,TanuloZaradek,TanuloSzoveges,TanuloKozossegiSzolgalat,TanuloTantargyiErtekelesei,TanuloHetirend,Orarend,ErtekelesFeljegyzesei1Felev,ErtekelesFeljegyzesei2Felev", tanuloIdColumnName: "TanuloId", emptyDocumentTable: "TanuloAlapAdatok");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult KozossegiSzolgalatJelentkezesLap(NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetKozossegiJelentkezesLap));
Dictionary<string, object> dsParameterek = new Dictionary<string, object>();
Dictionary<string, object> frxParameterek = new Dictionary<string, object> { { "Kelt", model.KeltDatum.ToString(Core.Constants.ToStringPattern.HungarianDateWithSuffix) } };
return AltalanosTanuloiGeneralas(model, NyomtatvanyEnum.KozossegiJelentkezesLap.ToString(), DokumentumKategoriaEnum.Tanulok, Enums.DokumentumTipusEnum.KozossegiSzolgalatiJelentkezesiLap, metodus, 0, dsParameterek, frxParameterek, distinctTables: "IntezmenyAdatok", tablakFilterByTanuloId: "TanuloAdatok,GondviseloAdatok", tanuloIdColumnName: "TanuloId", egyediLablecKellOldalszam: false);
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult KozossegiSzolgalatNaplo(NyomtatvanyModel model)
{
try
{
var helper = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
System.Reflection.MethodInfo metodus = helper.GetType().GetMethod(nameof(helper.GetKozossegiSzolgalatNaplo));
var dsParameterek = new Dictionary<string, object>();
var frxParameterek = new Dictionary<string, object> { { "Kelt", model.KeltDatum.ToString(Core.Constants.ToStringPattern.HungarianDateWithSuffix) } };
return AltalanosTanuloiGeneralas(model, NyomtatvanyEnum.KozossegiSzolgalatNaplo.ToString(), DokumentumKategoriaEnum.Tanulok, null, metodus, 0, dsParameterek, frxParameterek, distinctTables: "IntezmenyAdatok", tablakFilterByTanuloId: "Tanulok,Reszletek", tanuloIdColumnName: "TanuloId");
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
[HttpPost]
public ActionResult BukasraAlloTanulok(NyomtatvanyModel model)
{
try
{
List<int> osztalyCsoportIdList = model.OsztalyCsoportIdList?.Where(x => x.IsEntityId()).Distinct().ToList();
if (osztalyCsoportIdList == null || osztalyCsoportIdList.Count <= 0)
{
OktNevelesiKategoriaEnum? feladatKategoria = model.OktNevelesiKategoriaId.IsEntityId() ? (OktNevelesiKategoriaEnum?)model.OktNevelesiKategoriaId : null;
DataSet osztalyCsoportDataSet = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetKapcsolodoOsztalyCsoportDataSet(true, true, true, feladatKategoria);
var osztalyCsoportIdListByTanar = new List<int>();
foreach (DataRow dataRow in osztalyCsoportDataSet.Tables[0].Rows)
{
osztalyCsoportIdListByTanar.Add(Convert.ToInt32(dataRow["ID"]));
}
osztalyCsoportIdList = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType())
.GetOsztalyCsoportCoList()
.Where(x => osztalyCsoportIdListByTanar.Contains(x.Id) && x.IsOsztaly)
.OrderBy(x => x.EvfolyamTipusOrder)
.ThenBy(x => x.Nev)
.Select(x => x.Id)
.ToList();
}
DataSet dataSet = new NyomtatvanyokHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetBukasraAlloTanulok(osztalyCsoportIdList);
var nevmodel = new NyomtatvanyNevGeneralasModel() { TanevID = ClaimData.SelectedTanevID.Value };
return ExcelNyomtatas(dataSet, CommonExtensions.NevGeneralas("BukasraAlloTanulok", nevmodel));
}
catch (Exception ex)
{
throw NyomtatvanyokLogic.NyomtatvanyError(ex);
}
}
}
}

View file

@ -0,0 +1,420 @@
using System.Collections.Generic;
using System.Web.Mvc;
using Kreta.BusinessLogic.Security;
using Kreta.Core.FeatureToggle;
using Kreta.Resources;
using Kreta.Web.Areas.Nyomtatvanyok.Models;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.Nyomtatvanyok.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)]
[MvcRolePackageAuthorize(new string[] { KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Tanar.ClaimValue })]
public class TermekportalController : Controller
{
private IFeatureContext FeatureContext { get; }
public TermekportalController(IFeatureContext featureContext)
{
FeatureContext = featureContext;
}
// GET: Nyomtatvanyok/Termekportal
public ActionResult Index()
{
var model = new PanelBarBaseModel();
model.PanelName = Constants.Termekportal.PANELNAME;
model.ChildModels = ChildModelsFeltoltes();
return View("Index", model);
}
private List<PanelBarChildModel> ChildModelsFeltoltes()
{
List<PanelBarChildModel> panelBarChildModels = new List<PanelBarChildModel>();
List<object> data;
var isAdmin = ClaimData.FelhasznaloSzerepCsomagok.Contains(KretaClaimPackages.Adminisztrator.ClaimValue);
#region GINOP 6.2.3
var HOIdb = FeatureContext.IsEnabled(Core.Constants.FeatureName.HOIAdatbazis);
if (isAdmin && HOIdb)
{
data = new List<object>();
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.GINOPEszkozspecifikacio,
DocumentType = Constants.Termekportal.LINK,
ActionLink = Constants.Termekportal.GINOP_ESZKOZSPECIFIKACIO
});
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.IKTSegedlet,
DocumentType = Constants.Termekportal.PDF,
ActionLink = Constants.Termekportal.IKT_SEGEDLET
});
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.EszkozSpecJavaslat,
DocumentType = Constants.Termekportal.XLS,
ActionLink = Constants.Termekportal.ESZKOZ_SPECIFIKACIO_JAVASLAT
});
panelBarChildModels.Add(new PanelBarChildModel
{
PartialViewName = Constants.Termekportal.PARTIALVIEWNAME,
PartialViewTitle = NyomtatvanyokResource.GINOP623,
Data = data
});
}
#endregion
#region Tudásbázis csoport
if (isAdmin)
{
data = new List<object>();
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.TudasbazisLeiras,
DocumentType = Constants.Termekportal.LINK,
ActionLink = Constants.Termekportal.TUDASBAZIS
});
panelBarChildModels.Add(new PanelBarChildModel()
{
PartialViewName = Constants.Termekportal.PARTIALVIEWNAME,
PartialViewTitle = NyomtatvanyokResource.TudasbazisCsoport,
Data = data
});
}
#endregion
#region Adatszolgáltatások csoport
if (isAdmin)
{
data = new List<object>();
data.Add(new TermekportalModel
{
Name = TermekportalResource.KRETAElozetesTantargyfelosztasSegedlet,
DocumentType = Constants.Termekportal.PDF,
ActionLink = Constants.Termekportal.ETTF
});
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.AdatszolgGyorsAttekintesSegedlet,
DocumentType = Constants.Termekportal.PDF,
ActionLink = Constants.Termekportal.ADATSZOLG_GYORSATTEKINTES
});
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.PedagogusIktKompetencia,
DocumentType = Constants.Termekportal.PDF,
ActionLink = Constants.Termekportal.PEDAGOGUS_IKT
});
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.BeiratkozasAdatszolg,
DocumentType = Constants.Termekportal.PDF,
ActionLink = Constants.Termekportal.BEIRATKOZAS_ADATASZOLG
});
panelBarChildModels.Add(new PanelBarChildModel()
{
PartialViewName = Constants.Termekportal.PARTIALVIEWNAME,
PartialViewTitle = NyomtatvanyokResource.AdatszolgCsoport,
Data = data
});
}
#endregion
#region E-learning csoport
data = new List<object>();
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.FelkszeszitesKRETAPedagogusmodulKepzes,
DocumentType = Constants.Termekportal.LINK,
ActionLink = Constants.Termekportal.FELKESZITES_A_KRETAHOZ
});
if (isAdmin)
{
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.KretaAdminKepzes,
DocumentType = Constants.Termekportal.LINK,
ActionLink = Constants.Termekportal.KRETA_ADMIN
});
}
panelBarChildModels.Add(new PanelBarChildModel()
{
PartialViewName = Constants.Termekportal.PARTIALVIEWNAME,
PartialViewTitle = NyomtatvanyokResource.ELearningCsoport,
Data = data
});
#endregion
#region Felhasználói kézikönyvek csoport
data = new List<object>();
if (isAdmin)
{
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.ENaploGyorsAttekintesSegedlet,
DocumentType = Constants.Termekportal.PDF,
ActionLink = Constants.Termekportal.ENAPLO_GYORSATTEKINTES
});
}
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.PedagogusFelhasznaloiKezikonyv,
DocumentType = Constants.Termekportal.PDF,
ActionLink = Constants.Termekportal.PEDAGOGUS_KEZIKONYV
});
panelBarChildModels.Add(new PanelBarChildModel()
{
PartialViewName = Constants.Termekportal.PARTIALVIEWNAME,
PartialViewTitle = NyomtatvanyokResource.FelhasznaloiKezikonyvekCsoport,
Data = data
});
#endregion
#region KRÉTA Poszeidon iktatórendszer modul
if (isAdmin)
{
data = new List<object>();
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.IntezmenyiUgyiratkezeloiSegedlet,
DocumentType = Constants.Termekportal.PDF,
ActionLink = Constants.Termekportal.INTEZMENYI_UGYIRAT
});
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.PoszeidonWebesFelhasznaloiDokumentacio,
DocumentType = Constants.Termekportal.PDF,
ActionLink = Constants.Termekportal.POSZEIDON_WEBES_KEZIKONYV
});
panelBarChildModels.Add(new PanelBarChildModel()
{
PartialViewName = Constants.Termekportal.PARTIALVIEWNAME,
PartialViewTitle = TermekportalResource.KRETAPoszeidonIratkezeloModulCIM,
Data = data
});
}
#endregion
#region Egyéb dokumentumok csoport
if (isAdmin)
{
data = new List<object>();
data.Add(new TermekportalModel
{
Name = NyomtatvanyokResource.IntezmenyiBemutatoanyag,
DocumentType = Constants.Termekportal.PDF,
ActionLink = Constants.Termekportal.INTEZMENYI_BEMUTATO
});
panelBarChildModels.Add(new PanelBarChildModel()
{
PartialViewName = Constants.Termekportal.PARTIALVIEWNAME,
PartialViewTitle = NyomtatvanyokResource.EgyebDokumentumokCsoport,
Data = data
});
}
#endregion
#region Kréta rendszer moduljainak leírása
if (isAdmin)
{
data = new List<object>();
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAIntezmenyiAdminisztraciosRendszerModulCIM,
Description = TermekportalResource.KRETAIntezmenyiAdminisztraciosRendszerModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAElektronikusNaploModulCIM,
Description = TermekportalResource.KRETAElektronikusNaploModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAElektronikusEllenorzoModulCIM,
Description = TermekportalResource.KRETAElektronikusEllenorzoModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETATantargyfelosztasModulCIM,
Description = TermekportalResource.KRETATantargyfelosztasModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAKozpontiRendszerModulCIM,
Description = TermekportalResource.KRETAKozpontiRendszerModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAAdatszolgaltatasModulCIM,
Description = TermekportalResource.KRETAAdatszolgaltatasModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAKozmuAdatszolgaltatasModulCIM,
Description = TermekportalResource.KRETAKozmuAdatszolgaltatasModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETABeiratkozasModulCIM,
Description = TermekportalResource.KRETABeiratkozasModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETABeleptetoModulCIM,
Description = TermekportalResource.KRETABeleptetoModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETADualisKepzesModulCIM,
Description = TermekportalResource.KRETADualisKepzesModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAPoszeidonIratkezeloModulCIM,
Description = TermekportalResource.KRETAPoszeidonIratkezeloModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAKlebelsbergOsztondijModulCIM,
Description = TermekportalResource.KRETAKlebelsbergOsztondijModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETASzuloiModulCIM,
Description = TermekportalResource.KRETASzuloiModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAPenzugyiModulCIM,
Description = TermekportalResource.KRETAPenzugyiModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAGazdalkodasiModulCIM,
Description = TermekportalResource.KRETAGazdalkodasiModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAHumaneroforrasModulCIM,
Description = TermekportalResource.KRETAHumaneroforrasModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAeUgyintezesiModulCIM,
Description = TermekportalResource.KRETAeUgyintezesiModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAIntezmenyiMonitoringModulCIM,
Description = TermekportalResource.KRETAIntezmenyiMonitoringModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAPedagogusMonitoringModulCIM,
Description = TermekportalResource.KRETAPedagogusMonitoringModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETASzakkepzesiModulCIM,
Description = TermekportalResource.KRETASzakkepzesiModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAFelnottkepzesiModulCIM,
Description = TermekportalResource.KRETAFelnottkepzesiModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETASzakkepzesiJelentkezesModulCIM,
Description = TermekportalResource.KRETASzakkepzesiJelentkezesModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETATanuloMonitoringModulCIM,
Description = TermekportalResource.KRETATanuloMonitoringModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAEszkozNyilvantartoModulCIM,
Description = TermekportalResource.KRETAEszkozNyilvantartoModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETAProjektNyilvantartoModulCIM,
Description = TermekportalResource.KRETAProjektNyilvantartoModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETASzakkepzesiFelnottkepzesiModulCIM,
Description = TermekportalResource.KRETASzakkepzesiFelnottkepzesiModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KRETADigitalisKollaboraciosTerModulCIM,
Description = TermekportalResource.KRETADigitalisKollaboraciosTerModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.KretaFenntartoiEllenorzesModulCIM,
Description = TermekportalResource.KretaFenntartoiEllenorzesModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.PedagogusokPalyazatbanTortenoReszvetelenekNyomonkovetesiEllenorzesiModulCIM,
Description = TermekportalResource.PedagogusokPalyazatbanTortenoReszvetelenekNyomonkovetesiEllenorzesiModulSZOVEG
});
data.Add(new TermekLeirasModel()
{
Title = TermekportalResource.UzletiTervezesModulCIM,
Description = TermekportalResource.UzletiTervezesModulSZOVEG
});
data.Add(new TermekLeirasModel
{
Title = TermekportalResource.KRETAIFMModulCIM,
Description = TermekportalResource.KRETAIFMModulSZOVEG,
});
data.Add(new TermekLeirasModel
{
Title = TermekportalResource.FeltarModulCIM,
Description = TermekportalResource.FeltarModulSZOVEG,
});
panelBarChildModels.Add(new PanelBarChildModel()
{
PartialViewName = Constants.Termekportal.PARTIALVIEWNAME,
PartialViewTitle = TermekportalResource.KRETARendszerModuljainakLeirasa,
Data = data
});
}
#endregion
return panelBarChildModels;
}
}
}