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

753 lines
44 KiB
C#

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
}
}