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 { {"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(); 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(); 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(); 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 { {"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 { {"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 { {"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 { {"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() { -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() { { "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(); 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() { { "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() { { "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 } }