2098 lines
98 KiB
C#
2098 lines
98 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Web.Mvc;
|
|
using Kendo.Mvc;
|
|
using Kendo.Mvc.Infrastructure;
|
|
using Kendo.Mvc.UI;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Classes.ComboBox;
|
|
using Kreta.BusinessLogic.Exceptions;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
|
using Kreta.Core;
|
|
using Kreta.Enums;
|
|
using Kreta.Framework;
|
|
using Kreta.Framework.Entities;
|
|
using Kreta.Framework.Util;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.OsztalyCsoport.Models;
|
|
using Kreta.Web.Areas.TanuloErtekeles.Models.TanuloErtekeles;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Helpers.Grid;
|
|
using Kreta.Web.Helpers.Modal;
|
|
using Kreta.Web.Models.EditorTemplates;
|
|
using Kreta.Web.Security;
|
|
using Newtonsoft.Json;
|
|
using static Kreta.Core.Constants;
|
|
|
|
namespace Kreta.Web.Areas.OsztalyCsoport.Logic
|
|
{
|
|
public abstract class OsztalyCsoportLogic
|
|
{
|
|
protected static readonly List<int> nyelviElokeszitosOsztalyok = new List<int> { (int)EvfolyamTipusEnum._5_Ny, (int)EvfolyamTipusEnum._7_Ny, (int)EvfolyamTipusEnum._9_Ny };
|
|
const int csoportMaxLetszam = 999;
|
|
const int osztalyMaxLetszam = 40;
|
|
|
|
public static readonly List<int> AmiEvfoylamIdList = new List<int>
|
|
{
|
|
(int)EvfolyamTipusEnum.na,
|
|
(int)EvfolyamTipusEnum.Elokepzo1,
|
|
(int)EvfolyamTipusEnum.Elokepzo2,
|
|
(int)EvfolyamTipusEnum._1,
|
|
(int)EvfolyamTipusEnum._2,
|
|
(int)EvfolyamTipusEnum._3,
|
|
(int)EvfolyamTipusEnum._4,
|
|
(int)EvfolyamTipusEnum._5,
|
|
(int)EvfolyamTipusEnum._6,
|
|
(int)EvfolyamTipusEnum._7,
|
|
(int)EvfolyamTipusEnum._8,
|
|
(int)EvfolyamTipusEnum._9,
|
|
(int)EvfolyamTipusEnum._10,
|
|
(int)EvfolyamTipusEnum._11,
|
|
(int)EvfolyamTipusEnum._12,
|
|
(int)EvfolyamTipusEnum._13,
|
|
(int)EvfolyamTipusEnum._1_13,
|
|
(int)EvfolyamTipusEnum._2_14,
|
|
(int)EvfolyamTipusEnum.Osszevont_osztaly,
|
|
(int)EvfolyamTipusEnum._3_15
|
|
};
|
|
|
|
public static readonly List<int> SzakkepzoEvfolyamIdList = new List<int>
|
|
{
|
|
(int)EvfolyamTipusEnum._1_9_4_es_szintu_szakkepzo_iskola,
|
|
(int)EvfolyamTipusEnum._2_10_4_es_szintu_szakkepzo_iskola,
|
|
(int)EvfolyamTipusEnum._3_11_4_es_szintu_szakkepzo_iskola,
|
|
(int)EvfolyamTipusEnum._4_12_4_es_szintu_szakkepzo_iskola_4_eves_,
|
|
(int)EvfolyamTipusEnum.ksz_11_4_es_szintu_szakkepzo_iskola_kozismeret_nelkuli,
|
|
(int)EvfolyamTipusEnum.ksz_12_4_es_szintu_szakkepzo_iskola_kozismeret_nelkuli,
|
|
(int)EvfolyamTipusEnum._9_orientacios_evfolyam,
|
|
(int)EvfolyamTipusEnum._9_ny_technikum_nyelvi_elokeszito,
|
|
(int)EvfolyamTipusEnum._9_kny_technikum_ket_tanitasi_nyelvu_elokeszito,
|
|
(int)EvfolyamTipusEnum._9_technikum,
|
|
(int)EvfolyamTipusEnum._9_technikum_ket_tanitasi_nyelvu_,
|
|
(int)EvfolyamTipusEnum._10_technikum,
|
|
(int)EvfolyamTipusEnum._10_technikum_ket_tanitasi_nyelvu_,
|
|
(int)EvfolyamTipusEnum._11_technikum,
|
|
(int)EvfolyamTipusEnum._11_technikum_ket_tanitasi_nyelvu_,
|
|
(int)EvfolyamTipusEnum._12_technikum,
|
|
(int)EvfolyamTipusEnum._12_technikum_ket_tanitasi_nyelvu_,
|
|
(int)EvfolyamTipusEnum._13_technikum,
|
|
(int)EvfolyamTipusEnum._13_technikum_ket_tanitasi_nyelvu_,
|
|
(int)EvfolyamTipusEnum._14_technikum_6_eves_kepzes_,
|
|
(int)EvfolyamTipusEnum._14_technikum_ket_tanitasi_nyelvu_6_eves_kepzes_,
|
|
(int)EvfolyamTipusEnum._1_13_5_os_szintu_technikum,
|
|
(int)EvfolyamTipusEnum._2_14_5_os_szintu_technikum,
|
|
(int)EvfolyamTipusEnum.muhelyiskola_osztaly,
|
|
(int)EvfolyamTipusEnum.ksz_13_4_es_szintu_szakkepzo_iskola_kozismeret_nelkuli,
|
|
(int)EvfolyamTipusEnum._3_15_5_os_szintu_technikum,
|
|
(int)EvfolyamTipusEnum.dobbanto_elokeszito,
|
|
};
|
|
|
|
public static string SaveOsztalyGroup(ModOsztalyModel model)
|
|
{
|
|
var errorMessage = string.Empty;
|
|
var helper = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var co = model.ConvertModelToTobbesModCO();
|
|
|
|
var sikertelenUpdateOsztalyNev = string.Empty;
|
|
if (string.IsNullOrWhiteSpace(model.OsztalyIDArrayString))
|
|
{
|
|
sikertelenUpdateOsztalyNev = helper.UpdateOsztalyTobbes(co);
|
|
if (!string.IsNullOrWhiteSpace(sikertelenUpdateOsztalyNev))
|
|
{
|
|
errorMessage += $"{Core.Constants.General.Sortores}{sikertelenUpdateOsztalyNev}";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach (var item in model.OsztalyIdArray)
|
|
{
|
|
co.ID = int.Parse(item);
|
|
sikertelenUpdateOsztalyNev = helper.UpdateOsztalyTobbes(co);
|
|
if (!string.IsNullOrWhiteSpace(sikertelenUpdateOsztalyNev))
|
|
{
|
|
errorMessage += $"{Core.Constants.General.Sortores}{sikertelenUpdateOsztalyNev}";
|
|
}
|
|
}
|
|
}
|
|
|
|
return errorMessage;
|
|
}
|
|
|
|
public static string DeleteOsztalyok(List<int> osztalyIdLista, bool csoportokTorlese, out bool deleteError)
|
|
{
|
|
var message = new StringBuilder();
|
|
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
|
var osztalyHelper = new OsztalyHelper(connectionType);
|
|
deleteError = false;
|
|
|
|
foreach (var osztalyId in osztalyIdLista)
|
|
{
|
|
try
|
|
{
|
|
message.AppendFormat(OsztalyCsoportResource.Az0NevuOsztalyTorleseSikeresenMegtortent, osztalyHelper.DeleteClass(osztalyId, csoportokTorlese, ClaimData.FelhasznaloId, updateTanoraEvesSorszam: false)).AppendLine();
|
|
}
|
|
catch (CannotBeDeletedException e)
|
|
{
|
|
deleteError = true;
|
|
message.AppendLine(e.Message);
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
deleteError = true;
|
|
message.AppendFormat(ErrorResource.Az0NemTorolhetoMertEgyVagyTobbKapcsolodasaVanKapcsolatok1, CommonResource.Osztaly, ex.ConnectionErrorMessage).AppendLine();
|
|
}
|
|
}
|
|
|
|
if (osztalyIdLista.Any())
|
|
{
|
|
new TanoraHelper(connectionType).UpdateTanitasiOraEvesSorszamTeljesTanev();
|
|
}
|
|
|
|
if (!deleteError)
|
|
{
|
|
if (osztalyIdLista.Count == 1)
|
|
{
|
|
message.Clear();
|
|
message.Append(CommonResource.ATorlesSikeresenMegtortent);
|
|
}
|
|
else if (osztalyIdLista.Count > 1)
|
|
{
|
|
message.Clear();
|
|
message.AppendFormat(OsztalyCsoportResource.XDarabOsztályTorleseSikeresenMegtortent, osztalyIdLista.Count);
|
|
}
|
|
}
|
|
|
|
return message.ToString();
|
|
}
|
|
|
|
protected static Dictionary<string, string> ValidateBaseOsztaly(OsztalyBaseModel model)
|
|
{
|
|
var customModelState = new Dictionary<string, string>();
|
|
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo();
|
|
|
|
ValidateOsztalyCsoportNev(customModelState, model.OsztalyNev, model.ID);
|
|
|
|
if (model.OsztalynaploMegnyitasa.HasValue && !(model.OsztalynaploMegnyitasa.Value >= tanev.KezdoNap && model.OsztalynaploMegnyitasa.Value <= tanev.UtolsoNap))
|
|
{
|
|
customModelState.Add("OsztalynaploMegnyitasa", string.Format(OsztalyCsoportResource.OsztalynaploMegnyitasiDatuma0Es1KozottiIdoszakbanLehet, tanev.KezdoNap.ToShortDateString(), tanev.UtolsoNap.ToShortDateString()));
|
|
}
|
|
|
|
if (model.OsztalyfonokId.HasValue && model.OsztalyfonokHelyettesId.HasValue && model.OsztalyfonokId == model.OsztalyfonokHelyettesId)
|
|
{
|
|
customModelState.Add("OsztalyfonokHelyettesId", Framework.StringResourcesUtil.GetString(3872)); //Az osztályfőnök és a helyettes nem lehet azonos!
|
|
}
|
|
|
|
ValidateTervezettLetszam(customModelState, model.TervezettLetszam, osztalyMaxLetszam);
|
|
|
|
if (model.OsztalynaploLezarasa.HasValue && (model.OsztalynaploLezarasa.Value < tanev.KezdoNap || model.OsztalynaploLezarasa.Value > tanev.UtolsoNap))
|
|
{
|
|
//Az osztálynapló lezárásának dátuma a tanév első és utolsó napja között lehet
|
|
customModelState.Add("OsztalynaploLezarasa", StringResourcesUtil.GetString(3874));
|
|
}
|
|
|
|
if (model.OsztalynaploMegnyitasa.HasValue && model.OsztalynaploLezarasa.HasValue && model.OsztalynaploLezarasa.Value < model.OsztalynaploMegnyitasa.Value)
|
|
{
|
|
//Az osztálynapló lezárás dátuma nem lehet korábban, mint a megnyitás dátuma.
|
|
var key = customModelState.ContainsKey("OsztalynaploLezarasa") ? "OsztalynaploLezarasaEgyeb" : "OsztalynaploLezarasa";
|
|
customModelState.Add(key, StringResourcesUtil.GetString(3927));
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(model.OsztalypenzBankszamlaszama))
|
|
{
|
|
var regex = new Regex(RegularExpressions.Bankszamla);
|
|
|
|
if (!regex.Match(model.OsztalypenzBankszamlaszama).Success)
|
|
{
|
|
customModelState.Add("OsztalypenzBankszamlaszama", OsztalyCsoportResource.AzOsztalypenzBankszamlaszamaHibasFormatumu);
|
|
}
|
|
}
|
|
|
|
if (!model.KepzesiForma.HasValue && !(ClaimData.IsSzakkepzoIntezmeny && ClaimData.IsSelectedTanev21_22OrLater))
|
|
{
|
|
customModelState.Add("KepzesiForma", OsztalyCsoportResource.KepzestipusMegadasaKotelezo);
|
|
}
|
|
|
|
ValidateAmiEvfolyam(customModelState, model.FeladatEllatasiHelyId.Value, model.EvfolyamTipusa.Value);
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateNaplosorszamEsTorzslapszamBeallitasaiModelList(List<NaplosorszamEsTorzslapszamBeallitasaiModel> naplosorszamEsTorzslapszamBeallitasaiModelList)
|
|
{
|
|
Dictionary<string, string> customModelState = new Dictionary<string, string>();
|
|
foreach (NaplosorszamEsTorzslapszamBeallitasaiModel model in naplosorszamEsTorzslapszamBeallitasaiModelList)
|
|
{
|
|
if (model.Naplosorszam.HasValue && model.Naplosorszam < 0)
|
|
{
|
|
customModelState.Add(
|
|
$"NaplosorszamEsTorzslapszamBeallitasaiGrid_Naplosorszam_{model.Id}",
|
|
string.Format(TanuloResource.NaploSorszamaNemNullaVagyPozitivSzam, model.Nev, model.BelepesDatum.ToString(ToStringPattern.HungarianDate), model.KilepesDatum?.ToString(ToStringPattern.HungarianDate)));
|
|
}
|
|
|
|
if (model.Torzslapszam?.Length > 500)
|
|
{
|
|
customModelState.Add(
|
|
$"NaplosorszamEsTorzslapszamBeallitasaiGrid_Torzslapszam_{model.Id}",
|
|
string.Format(TanuloResource.TorzslapSzamaTobbMint500Karakter, model.Nev, model.BelepesDatum.ToString(ToStringPattern.HungarianDate), model.KilepesDatum?.ToString(ToStringPattern.HungarianDate)));
|
|
}
|
|
}
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateOsztalyGroup(ModOsztalyModel model)
|
|
{
|
|
var customModelState = new Dictionary<string, string>();
|
|
|
|
if (model.Evfolyam.HasValue && nyelviElokeszitosOsztalyok.Contains(model.Evfolyam.Value) && !(model.NyelviElokeszito.HasValue && model.NyelviElokeszito.ToBool()))
|
|
{
|
|
customModelState.Add("Evfolyam", OsztalyCsoportResource.NyelviElokeszitosOsztalyt5ny7ny9nyCsakNyelviElőkészítőLenyilóListaIgenreAllitasavalLehetFelvenni);
|
|
}
|
|
|
|
ValidateOsztalynaplo(customModelState, model.OsztalynaploMegnyitasa, model.OsztalynaploLezarasa);
|
|
|
|
ValidateTervezettLetszam(customModelState, model.TervezettLetszam, osztalyMaxLetszam);
|
|
|
|
if (model.Evfolyam.HasValue)
|
|
{
|
|
ValidateAmiEvfolyamGroup(customModelState, model.OsztalyIdArray, model.Evfolyam.Value);
|
|
}
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static void AktTanevOsztalyVisszairatkoztatasJogviszonyCustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary modelState, AktTanevOsztalyVisszairatkoztatasModel model)
|
|
{
|
|
VisszairatkozasJogviszonyCustomValidation(modelState, model.JogviszonyKezdete, model.Datum, model.JogviszonyKeletkezesenekJogcimeId, model.JogviszonyTipusaId);
|
|
}
|
|
|
|
public static void KovTanevVisszairatkoztatasJogviszonyCustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary modelState, KovTanevVisszairatkoztatasModel model)
|
|
{
|
|
VisszairatkozasJogviszonyCustomValidation(modelState, model.JogviszonyKezdete, model.Datum, model.JogviszonyKeletkezesenekJogcimeId, model.JogviszonyTipusaId);
|
|
}
|
|
|
|
private static void VisszairatkozasJogviszonyCustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary modelState, DateTime? jogviszonyKezdete, DateTime? datum, int? jogviszonyKeletkezesenekJogcimeId, int? jogviszonyTipusaId)
|
|
{
|
|
if (!jogviszonyKezdete.HasValue)
|
|
{
|
|
modelState.AddModelError(nameof(jogviszonyKezdete), ErrorResource.JogviszonyKezdeteKitolteseKotelezo);
|
|
}
|
|
else
|
|
{
|
|
if (jogviszonyKezdete.Value > datum)
|
|
{
|
|
modelState.AddModelError(nameof(jogviszonyKezdete), ErrorResource.JogviszonyKezdeteNemLehetKesobbMintABeleptetes);
|
|
}
|
|
}
|
|
|
|
if (!jogviszonyKeletkezesenekJogcimeId.IsEntityId())
|
|
{
|
|
modelState.AddModelError(nameof(jogviszonyKeletkezesenekJogcimeId), ErrorResource.JogviszonyKeletkezesenekJogcimeKitolteseKotelezo);
|
|
}
|
|
|
|
if (!jogviszonyTipusaId.IsEntityId())
|
|
{
|
|
modelState.AddModelError(nameof(jogviszonyTipusaId), ErrorResource.JogviszonyTipusaKitolteseKotelez);
|
|
}
|
|
}
|
|
|
|
public static ModOsztalyModel SetModPopUpModel(List<ModOsztalyModel> osztalyList)
|
|
{
|
|
ModOsztalyModel model = new ModOsztalyModel();
|
|
if (osztalyList.Count == 1)
|
|
{
|
|
model = GetOsztalyModProperties(osztalyList[0].ID);
|
|
}
|
|
else
|
|
{
|
|
foreach (var item in osztalyList)
|
|
{
|
|
model.OsztalyIDArrayString += item.ID.ToString() + ",";
|
|
model.OsztalyNevArray += item.Nev.ToString() + ", ";
|
|
}
|
|
|
|
model.OsztalyIDArrayString = model.OsztalyIDArrayString.Remove(model.OsztalyIDArrayString.Length - 1);
|
|
model.OsztalyNevArray = model.OsztalyNevArray.Remove(model.OsztalyNevArray.Length - 2);
|
|
}
|
|
model.IsIntezmenySzakkepzo = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIntezmenyiAdatok().IsSzakkepzo;
|
|
model.AmiFelhelyIdsJSON = JsonConvert.SerializeObject(GetFeladatEllatasiHelyIdsBySelectedOktNevelesiKategoria((int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas));
|
|
|
|
return model;
|
|
}
|
|
|
|
public static TanuloSorolasModel GetModelForPartialViewOsztaly(string dataType, int osztalyid)
|
|
{
|
|
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanev = tanevHelper.GetTanevInfo();
|
|
var datum = dataType == "AktData" ? (DateTime?)DateTime.Now : null;
|
|
var ds = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportTanulok(osztalyid, datum, tanev.OraFelvetelKezdete, isGroupedByKilepesDatum: true);
|
|
var model = TanuloBesorolasLogic.GenerateTanuloSorolasModelCsoportOsztaly(ds, isCsoportView: false);
|
|
model.IsInfoView = true;
|
|
return model;
|
|
}
|
|
|
|
public static PopUpModel GetPopUpModelForBesorolasModDatumOsztaly(int tanuloid, int osztalyid)
|
|
{
|
|
BeSorolasModel model = new BeSorolasModel();
|
|
DataSet ds;
|
|
|
|
var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
ds = helper.GetTanuloSorolasData(tanuloid, osztalyid);
|
|
|
|
if (ds != null)
|
|
{
|
|
DataRow dr = ds.Tables[0].Rows[0];
|
|
|
|
model.OsztalyCsoportId = osztalyid;
|
|
model.OsztalyCsoportNev = dr.Field<string>("OsztalyCsoportNev");
|
|
model.TanuloId = tanuloid;
|
|
model.TanuloNev = dr.Field<string>("TanuloNev");
|
|
model.BesorolasDatum = dr.Field<DateTime?>("BesorolasDatum");
|
|
}
|
|
|
|
PopUpModel pm = new PopUpModel(model, "_TanuloBesorolasModPartial");
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "OsztalyTanuloHelper.BesorolasWindowCancel" });
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "OsztalyTanuloHelper.BesorolasWindowSave" });
|
|
|
|
return pm;
|
|
}
|
|
|
|
public static PopUpModel GetPopUpModelForKisorolasModDatumOsztaly(int tanuloid, int osztalyid)
|
|
{
|
|
KiSorolasModel model = new KiSorolasModel();
|
|
DataSet ds;
|
|
|
|
var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
ds = helper.GetTanuloSorolasData(tanuloid, osztalyid);
|
|
|
|
if (ds != null)
|
|
{
|
|
DataRow dr = ds.Tables[0].Rows[0];
|
|
|
|
model.OsztalyCsoportId = osztalyid;
|
|
model.OsztalyCsoportNev = dr.Field<string>("OsztalyCsoportNev");
|
|
model.TanuloId = tanuloid;
|
|
model.TanuloNev = dr.Field<string>("TanuloNev");
|
|
model.KisorolasDatum = dr.Field<DateTime?>("KisorolasDatum");
|
|
}
|
|
|
|
PopUpModel pm = new PopUpModel(model, "_TanuloKisorolasModPartial");
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "OsztalyTanuloHelper.KisorolasWindowCancel" });
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "OsztalyTanuloHelper.KisorolasWindowSave" });
|
|
|
|
return pm;
|
|
}
|
|
|
|
public static PopUpModel GetPopUpModelForKisorolasOsztaly(int tanuloid, int osztalyid)
|
|
{
|
|
KiSorolasModel model = new KiSorolasModel();
|
|
DataSet ds;
|
|
|
|
var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
ds = helper.GetTanuloSorolasData(tanuloid, osztalyid);
|
|
|
|
if (ds != null)
|
|
{
|
|
DataRow dr = ds.Tables[0].Rows[0];
|
|
|
|
model.OsztalyCsoportId = osztalyid;
|
|
model.OsztalyCsoportNev = dr.Field<string>("OsztalyCsoportNev");
|
|
model.TanuloId = tanuloid;
|
|
model.TanuloNev = dr.Field<string>("TanuloNev");
|
|
model.KisorolasDatum = dr.Field<DateTime?>("KisorolasDatum");
|
|
}
|
|
|
|
PopUpModel pm = new PopUpModel(model, "_TanuloKisorolasModPartial");
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "OsztalyTanuloHelper.KisorolasWindowCancel" });
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "OsztalyTanuloHelper.KisorolasWindowSave" });
|
|
|
|
return pm;
|
|
}
|
|
|
|
public static ModOsztalyModel GetOsztalyModProperties(int? osztalyID = null)
|
|
{
|
|
OsztalyCO co;
|
|
|
|
OsztalyHelper h = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
co = h.GetClassById(osztalyID.Value);
|
|
|
|
return ModOsztalyModel.ConvertCOToModModel(co);
|
|
}
|
|
|
|
public static Dictionary<int, bool> GetFeladatellatasiHelyIsSzakkepzesesDictionary()
|
|
{
|
|
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
return helper.GetFeladatellatasiHelyIsSzakkepzesesDictionary();
|
|
}
|
|
|
|
public static Dictionary<int, bool> GetFeladatellatasiHelyIsNktDictionary()
|
|
{
|
|
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
return helper.GetFeladatellatasiHelyIsNkt();
|
|
}
|
|
|
|
public static List<int> GetIdsBySelectedOktatasiNevelesiFeladat(int oktatasiNevelesiFeladatId)
|
|
{
|
|
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
return helper.GetIdsBySelectedOktatasiNevelesiFeladat(oktatasiNevelesiFeladatId);
|
|
}
|
|
|
|
public static List<int> GetFeladatEllatasiHelyIdsBySelectedOktNevelesiKategoria(int oktNevelesiKategoriaId)
|
|
{
|
|
return new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
|
.GetFeladatEllatasiHelyDDl(string.Empty, oktNevelesiKategoriaId).Select(x => Convert.ToInt32(x.Key)).ToList();
|
|
}
|
|
|
|
public static List<SelectListItem> GetKepzesList()
|
|
{
|
|
List<SelectListItem> list = new List<SelectListItem>();
|
|
var itemList = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.TanterviJelleg, ClaimData.SelectedTanevID.Value, true);
|
|
foreach (var item in itemList)
|
|
{
|
|
SelectListItem sli = new SelectListItem() { Text = item.Value, Value = item.Key };
|
|
|
|
if (item.Key == ((int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas).ToString())
|
|
{
|
|
sli.Selected = true;
|
|
}
|
|
|
|
list.Add(sli);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public static DataSourceResult GetOsztalyTanuloi(string osztalyId, DataSourceRequest request)
|
|
{
|
|
var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType())
|
|
{
|
|
GridParameters = Converter.GridParameter(request)
|
|
};
|
|
DataSet tanuloDataSet = helper.GetOsztalyCsoportMindenkoriTanuloiTanuloCsoportonkent(int.Parse(osztalyId));
|
|
return tanuloDataSet.ToDataSourceResult();
|
|
}
|
|
|
|
public static DataSourceResult GetOsztalyBontasCsoportjai(string osztalyID, DataSourceRequest request)
|
|
{
|
|
var thelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType())
|
|
{
|
|
GridParameters = Converter.GridParameter(request)
|
|
};
|
|
|
|
var osztalyId = int.Parse(osztalyID);
|
|
Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(osztalyId).ToString(), out OktNevelesiKategoriaEnum kategoria);
|
|
|
|
var csoportok = thelper.GetGroupsOfClass(osztalyId, kategoria);
|
|
return csoportok.ToDataSourceResult();
|
|
}
|
|
|
|
public static DataSourceResult GetOsztalyFoglalkozasai(int osztalyID, DataSourceRequest request)
|
|
{
|
|
var fhelper = new FoglalkozasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
fhelper.GridParameters = Converter.GridParameter(request);
|
|
|
|
Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(osztalyID).ToString(), out OktNevelesiKategoriaEnum kategoria);
|
|
|
|
var foglalkozasok = fhelper.GetOsztalyCsoportFoglalkozasai(osztalyID, kategoria);
|
|
var dataSourceResult = foglalkozasok.ToDataSourceResult();
|
|
if (dataSourceResult != null && foglalkozasok.Tables.Count == 1)
|
|
{
|
|
dataSourceResult.AggregateResults = new List<AggregateResult>
|
|
{
|
|
new AggregateResult(foglalkozasok.Tables[0].ExtendedProperties["Oraszam_SUM"], new SumFunction {SourceField = "Oraszam"})
|
|
};
|
|
}
|
|
|
|
return dataSourceResult;
|
|
}
|
|
|
|
public static DataSourceResult GetOsztalyOrarendiOrai(string osztalyID, DataSourceRequest request, bool isFromSzervezet = false)
|
|
{
|
|
var ohelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
ohelper.GridParameters = Converter.GridParameter(request);
|
|
var tanulok = ohelper.GetOsztalyCsoportOrarendiOrai(int.Parse(osztalyID), isFromSzervezet);
|
|
return tanulok.ToDataSourceResult();
|
|
}
|
|
|
|
public static DataSourceResult GetOsztalyTanmenetei(int osztalyID, DataSourceRequest request)
|
|
{
|
|
var thelper = new TanmenetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
thelper.GridParameters = Converter.GridParameter(request);
|
|
|
|
Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(osztalyID).ToString(), out OktNevelesiKategoriaEnum kategoria);
|
|
|
|
var tanmenetek = thelper.GetOsztalyCsoportTanmenetei(osztalyID, kategoria);
|
|
return tanmenetek.ToDataSourceResult();
|
|
}
|
|
|
|
public static DataSourceResult GetOsztalyErtekelesListGrid(string osztalyId, DataSourceRequest request, int feladatKategoriaId)
|
|
{
|
|
int.TryParse(osztalyId, out int id);
|
|
|
|
var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
|
{
|
|
GridParameters = Converter.GridParameter(request)
|
|
};
|
|
var tanuloErtekelesListModel = new TanuloErtekelesListModel
|
|
{
|
|
OsztalyCsoportIdSearch = id,
|
|
FeladatKategoriaIdSearch = feladatKategoriaId
|
|
};
|
|
DataSet dataSet = helper.GetTanuloErtekelesListGridDataSet(tanuloErtekelesListModel.ToCo());
|
|
|
|
return dataSet.ToDataSourceResult();
|
|
}
|
|
|
|
public static DataSourceResult GetOsztalyIgazolasai(int osztalyID, DataSourceRequest request)
|
|
{
|
|
var ihelper = new IgazolasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
ihelper.GridParameters = Converter.GridParameter(request);
|
|
|
|
Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(osztalyID).ToString(), out OktNevelesiKategoriaEnum kategoria);
|
|
|
|
var igazolasok = ihelper.GetOsztalyCsoportIgazolasok(osztalyID, kategoria);
|
|
return igazolasok.ToDataSourceResult();
|
|
}
|
|
|
|
public static List<ComboBoxListItem> GetEvfolyamListFilter(string cascadeFilter)
|
|
{
|
|
int? feladHelyId = null;
|
|
int temp;
|
|
if (int.TryParse(cascadeFilter, out temp))
|
|
feladHelyId = temp;
|
|
|
|
DataSet evfolyamTipusok;
|
|
var result = new List<ComboBoxListItem>();
|
|
|
|
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
evfolyamTipusok = helper.GetFeladatellatasiHelyhezTartozoEvfolyamtipusokSzama(feladHelyId.HasValue ? (int)feladHelyId : -1);
|
|
|
|
if (evfolyamTipusok != null && evfolyamTipusok.Tables.Count > 0 && evfolyamTipusok.Tables[0] != null && evfolyamTipusok.Tables[0].Rows.Count > 0)
|
|
{
|
|
foreach (DataRow iRow in evfolyamTipusok.Tables[0].Rows)
|
|
{
|
|
ComboBoxListItem sli = new ComboBoxListItem()
|
|
{
|
|
Text = iRow.Field<string>("Name").ToString(),
|
|
Value = iRow.Field<int>("ID").ToString(),
|
|
GroupName = StringResourcesUtil.GetString(3931)
|
|
};
|
|
result.Add(sli);
|
|
}
|
|
}
|
|
var evfolyamTipusList = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.EvfolyamTipus, ClaimData.SelectedTanevID.Value);
|
|
foreach (var item in evfolyamTipusList)
|
|
{
|
|
if (!result.Exists(x => x.Value == item.Key))
|
|
{
|
|
ComboBoxListItem sli = new ComboBoxListItem()
|
|
{
|
|
Text = item.Value,
|
|
Value = item.Key,
|
|
GroupName = StringResourcesUtil.GetString(3285)
|
|
};
|
|
result.Add(sli);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
protected static Dictionary<string, string> ValidateBaseCsoport(CsoportBaseModel model, bool getOsztalyBontasEvfolyama = true, bool isAmi = false)
|
|
{
|
|
var customModelState = new Dictionary<string, string>();
|
|
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo();
|
|
|
|
ValidateOsztalyCsoportNev(customModelState, model.CsoportNeve, model.ID);
|
|
|
|
if (model.OsztalyBontas)
|
|
{
|
|
if (model.ID.HasValue && model.OsztalyBontasId.HasValue && !ValidateOsztalybontas(model.ID.ToString().Split(','), model.OsztalyBontasId.Value))
|
|
{
|
|
customModelState.Add("OsztalyBontas", OsztalyCsoportResource.OsztalybontashozMarTartoznakDiakok);
|
|
}
|
|
|
|
if (model.OsztalyBontasId == null)
|
|
{
|
|
customModelState.Add("OsztalyBontasId", OsztalyCsoportResource.HaACsoportOsztalybontasosOsztalyMegadasaKotelezo);
|
|
}
|
|
else
|
|
{
|
|
if (getOsztalyBontasEvfolyama)
|
|
{
|
|
if (int.TryParse(((VegzosOsztalyModel)GetOsztalyEvfolyama(model.OsztalyBontasId.ToString())).EvfolyamTipusa.ToString(), out int evfolyamId))
|
|
{
|
|
model.EvfolyamTipusa = evfolyamId;
|
|
}
|
|
else
|
|
{
|
|
model.EvfolyamTipusa = (int)EvfolyamTipusEnum.na;
|
|
}
|
|
}
|
|
|
|
model.FeladatEllatasiHelyId = GetOsztalyFeladatEllatasiHelye(model.OsztalyBontasId.Value);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
model.OsztalyBontasId = null;
|
|
}
|
|
|
|
ValidateCsoportNaplo(customModelState, model.CsoportNaploMegnyitasa, model.CsoportNaploLezarasa);
|
|
|
|
ValidateTervezettLetszam(customModelState, model.TervezettLetszam, csoportMaxLetszam);
|
|
|
|
if (model.EvfolyamTipusa.HasValue)
|
|
{
|
|
ValidateAmiEvfolyam(customModelState, model.FeladatEllatasiHelyId.Value, model.EvfolyamTipusa.Value);
|
|
}
|
|
|
|
if (model.CsoportTipusId == (int)CsoportTipusEnum.apaczai_mentorcsoport)
|
|
{
|
|
var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var csoportok = osztalyCsoportHelper.GetCsoportokByCsoportvezeto(model.CsoportvezetoId.Value, false);
|
|
if (csoportok.Any(x => x.CsoportTipus == model.CsoportTipusId
|
|
&& (
|
|
(model.ID.HasValue && x.Id != model.ID)
|
|
|| !model.ID.HasValue
|
|
)
|
|
))
|
|
{
|
|
customModelState.Add("CsoportvezetoId", OsztalyCsoportResource.MarVanMentorCsoportja);
|
|
}
|
|
}
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateCsoportGroup(CsoportModModel model)
|
|
{
|
|
var customModelState = new Dictionary<string, string>();
|
|
if (model.OsztalyBontas.HasValueAndPositive())
|
|
{
|
|
if (model.OsztalyBontasId == null)
|
|
{
|
|
customModelState.Add("OsztalyBontasId", OsztalyCsoportResource.HaACsoportOsztalybontasosOsztalyMegadasaKotelezo);
|
|
}
|
|
else
|
|
{
|
|
if (!ValidateOsztalybontas(model.CsoportIdArray, model.OsztalyBontasId.Value))
|
|
{
|
|
customModelState.Add("OsztalyBontas", OsztalyCsoportResource.OsztalybontashozMarTartoznakDiakok);
|
|
}
|
|
}
|
|
|
|
if (int.TryParse(((VegzosOsztalyModel)GetOsztalyEvfolyama(model.OsztalyBontasId?.ToString()))?.EvfolyamTipusa.ToString(), out int evfolyamId))
|
|
{
|
|
model.EvfolyamTipusa = evfolyamId;
|
|
}
|
|
else
|
|
{
|
|
model.EvfolyamTipusa = (int)EvfolyamTipusEnum.na;
|
|
}
|
|
|
|
if (model.OsztalyBontasId.HasValue)
|
|
{
|
|
model.FeladatEllatasiHelyId = GetOsztalyFeladatEllatasiHelye(model.OsztalyBontasId.Value);
|
|
}
|
|
}
|
|
|
|
ValidateCsoportNaplo(customModelState, model.CsoportNaploMegnyitasa, model.CsoportNaploLezarasa);
|
|
|
|
ValidateTervezettLetszam(customModelState, model.TervezettLetszam, csoportMaxLetszam);
|
|
|
|
if (model.EvfolyamTipusa.HasValue)
|
|
{
|
|
ValidateAmiEvfolyamGroup(customModelState, model.CsoportIdArray, model.EvfolyamTipusa.Value);
|
|
if (!model.OsztalyBontas.HasValue || (model.OsztalyBontas.HasValue && model.OsztalyBontas.Value != 0))
|
|
{
|
|
ValidateOsztalybontasEvfolyam(customModelState, model.CsoportIDArrayString, model.EvfolyamTipusa.Value);
|
|
}
|
|
}
|
|
|
|
if (model.FeladatEllatasiHelyId.HasValue)
|
|
{
|
|
ValidateOsztalybontasFeladatellatasiHely(customModelState, model.CsoportIDArrayString, model.FeladatEllatasiHelyId.Value);
|
|
}
|
|
if (model.IsGyogypedagogiaiLogopediai.HasValue)
|
|
{
|
|
ValidateOsztalybontasGyogypedagogiaiLogopediai(customModelState, model.CsoportIDArrayString, model.IsGyogypedagogiaiLogopediai.ToBool());
|
|
}
|
|
|
|
if (model.TechnikaiCsoport.HasValue)
|
|
{
|
|
ValidateOsztalybontasTechnikai(customModelState, model.CsoportIDArrayString, model.TechnikaiCsoport.ToBool());
|
|
}
|
|
|
|
if (model.Vegzos.HasValue)
|
|
{
|
|
ValidateOsztalybontasVegzosEvfolyam(customModelState, model.CsoportIDArrayString);
|
|
}
|
|
return customModelState;
|
|
}
|
|
|
|
public static string SaveCsoportGroup(CsoportModModel model)
|
|
{
|
|
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
|
var errorMessage = string.Empty;
|
|
var csoportHelper = new CsoportHelper(connectionType);
|
|
|
|
var sikertelenUpdateCsoportNev = string.Empty;
|
|
if (string.IsNullOrWhiteSpace(model.CsoportIDArrayString))
|
|
{
|
|
sikertelenUpdateCsoportNev = csoportHelper.CsoportTobbesModify(model.ConvertToCo());
|
|
if (!string.IsNullOrWhiteSpace(sikertelenUpdateCsoportNev))
|
|
{
|
|
errorMessage += $"{Core.Constants.General.Sortores}{sikertelenUpdateCsoportNev}";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach (var item in model.CsoportIdArray)
|
|
{
|
|
model.ID = int.Parse(item);
|
|
|
|
sikertelenUpdateCsoportNev = csoportHelper.CsoportTobbesModify(model.ConvertToCo(), updateTanoraEvesSorszam: false);
|
|
if (!string.IsNullOrWhiteSpace(sikertelenUpdateCsoportNev))
|
|
{
|
|
errorMessage += $"{Core.Constants.General.Sortores}{sikertelenUpdateCsoportNev}";
|
|
}
|
|
}
|
|
|
|
if (model.CsoportIdArray.Length > 0)
|
|
{
|
|
new TanoraHelper(connectionType).UpdateTanitasiOraEvesSorszamTeljesTanev();
|
|
}
|
|
}
|
|
|
|
return errorMessage;
|
|
}
|
|
|
|
public static void SaveNewEgyeniCsoport(EgyeniCsoportModel model)
|
|
{
|
|
CsoportHelper csHelper = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
model.CsoportNeve = model.CsoportNeve.ReplaceMultipleSpacesAndTrim();
|
|
|
|
csHelper.InsertCo(model.ConvertToCsoportCo());
|
|
}
|
|
|
|
public static string DeleteCsoportGroup(List<int> csoportLista, out bool deleteError)
|
|
{
|
|
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
|
var h = new CsoportHelper(connectionType);
|
|
string errorMsg = string.Empty, entityName = string.Empty;
|
|
var counter = 0;
|
|
|
|
foreach (var csoportId in csoportLista)
|
|
{
|
|
try
|
|
{
|
|
h.DeleteGroupById(csoportId, updateTanoraEvesSorszam: false);
|
|
counter++;
|
|
}
|
|
catch (CannotBeDeletedException ex)
|
|
{
|
|
errorMsg += $"{ex.Message}{Environment.NewLine}";
|
|
continue;
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
var csoportCO = h.GetGroupByID(csoportId);
|
|
entityName = csoportCO.CsoportNeve;
|
|
|
|
errorMsg += string.Format(ErrorResource.CsoportNemTorolhetoKapcsolatMiatt, entityName, ex.ConnectionErrorMessage) + Environment.NewLine + Environment.NewLine;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
if (csoportLista.Any())
|
|
{
|
|
new TanoraHelper(connectionType).UpdateTanitasiOraEvesSorszamTeljesTanev();
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(errorMsg))
|
|
{
|
|
deleteError = false;
|
|
return string.Format(ErrorResource.NSorTorlesSikeres, counter);
|
|
}
|
|
|
|
if (counter > 0)
|
|
{
|
|
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
|
|
}
|
|
|
|
deleteError = true;
|
|
return errorMsg;
|
|
}
|
|
|
|
public static DataSourceResult GetCsoportTanuloi(string csoportId, DataSourceRequest request)
|
|
{
|
|
var thelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
thelper.GridParameters = Converter.GridParameter(request);
|
|
var tanulok = thelper.GetOsztalyCsoportMindenkoriTanuloi(int.Parse(csoportId));
|
|
return tanulok.ToDataSourceResult();
|
|
}
|
|
|
|
public static DataSourceResult GetCsoportFoglalkozasai(int csoportId, DataSourceRequest request)
|
|
{
|
|
var fhelper = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
fhelper.GridParameters = Converter.GridParameter(request);
|
|
|
|
Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(csoportId).ToString(), out OktNevelesiKategoriaEnum kategoria);
|
|
|
|
var foglalkozasok = fhelper.GetOsztalyCsoportFoglalkozasai(csoportId, kategoria);
|
|
var dataSourceResult = foglalkozasok.ToDataSourceResult();
|
|
if (dataSourceResult != null && foglalkozasok.Tables.Count == 1)
|
|
{
|
|
dataSourceResult.AggregateResults = new List<AggregateResult>
|
|
{
|
|
new AggregateResult(foglalkozasok.Tables[0].ExtendedProperties["Oraszam_SUM"], new SumFunction {SourceField = "Oraszam"})
|
|
};
|
|
}
|
|
|
|
return dataSourceResult;
|
|
}
|
|
|
|
public static DataSourceResult GetCsoportOrarendiOrai(string csoportId, DataSourceRequest request, bool isFromSzervezet = false)
|
|
{
|
|
var ohelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
ohelper.GridParameters = Converter.GridParameter(request);
|
|
var orarendiorak = ohelper.GetOsztalyCsoportOrarendiOrai(int.Parse(csoportId), isFromSzervezet);
|
|
return orarendiorak.ToDataSourceResult();
|
|
}
|
|
|
|
public static DataSourceResult GetCsoportTanmenetei(int csoportId, DataSourceRequest request)
|
|
{
|
|
var thelper = new TanmenetHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
thelper.GridParameters = Converter.GridParameter(request);
|
|
|
|
Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(csoportId).ToString(), out OktNevelesiKategoriaEnum kategoria);
|
|
|
|
var tanmenetek = thelper.GetOsztalyCsoportTanmenetei(csoportId, kategoria);
|
|
return tanmenetek.ToDataSourceResult();
|
|
}
|
|
|
|
public static DataSourceResult GetCsoportMegtartottTanorai(string csoportId, DataSourceRequest request)
|
|
{
|
|
var ohelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
ohelper.GridParameters = Converter.GridParameter(request);
|
|
|
|
DataSet ds = ohelper.GetOsztalyCsoportMegtartottOrai(int.Parse(csoportId));
|
|
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
public static DataSourceResult GetCsoportErtekelesListGrid(string csoportId, DataSourceRequest request, int feladatKategoriaId)
|
|
{
|
|
int.TryParse(csoportId, out int id);
|
|
|
|
var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
|
{
|
|
GridParameters = Converter.GridParameter(request)
|
|
};
|
|
var tanuloErtekelesListModel = new TanuloErtekelesListModel
|
|
{
|
|
OsztalyCsoportIdSearch = id,
|
|
FeladatKategoriaIdSearch = feladatKategoriaId
|
|
};
|
|
DataSet dataSet = helper.GetTanuloErtekelesListGridDataSet(tanuloErtekelesListModel.ToCo());
|
|
|
|
return dataSet.ToDataSourceResult();
|
|
}
|
|
|
|
public static int GetOsztalyFeladatEllatasiHelye(int osztalyId)
|
|
{
|
|
return new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFeladatEllatasiHelyByOsztalyId(osztalyId);
|
|
}
|
|
|
|
public static VegzosOsztalyModel GetOsztalyEvfolyama(string osztalyId)
|
|
{
|
|
if (int.TryParse(osztalyId, out int oID))
|
|
{
|
|
OsztalyCsoportHelper h = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
var lista = h.GetOsztalyCsoportEvfolyama(oID);
|
|
|
|
VegzosOsztalyModel model = new VegzosOsztalyModel();
|
|
model.EvfolyamTipusa = (int?)lista[0];
|
|
model.VegzosEvfolyam = (bool)lista[1];
|
|
|
|
return model;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public static string GetEgyeniCsoportAlapertelmezettNev()
|
|
{
|
|
var helper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
var csoportList = helper.GetCsoportok();
|
|
var egyeniCsoportokSzama = csoportList.Count(x => x.Value.IndexOf(CommonResource.EgyeniCsoportAlapertelmezettNev, StringComparison.OrdinalIgnoreCase) >= 0);
|
|
return $"{CommonResource.EgyeniCsoportAlapertelmezettNev} {egyeniCsoportokSzama + 1}";
|
|
}
|
|
|
|
public static CsoportModModel GetCsoportBasePropertiesMod(int? csoportID)
|
|
{
|
|
CsoportCO co = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGroupByID(csoportID.Value);
|
|
return new CsoportModModel()
|
|
{
|
|
ID = co.Id,
|
|
CsoportNeve = co.CsoportNeve,
|
|
CsoportTipus = co.CsoportTipus,
|
|
FeladatEllatasiHelyId = co.FeladatEllatasiHelyId,
|
|
OsztalyBontas = co.OsztalyBontas.ToNullableInt(),
|
|
OsztalyBontasId = co.OsztalyBontasId,
|
|
EvfolyamTipusa = co.EvfolyamTipusa,
|
|
Vegzos = co.VegzosEvfolyamCsoport.ToNullableInt(),
|
|
TervezettLetszam = co.TervezettLetszam,
|
|
Keresztfeleves = co.KeresztfelevesCsoport.ToNullableInt(),
|
|
CsoportNaploMegnyitasa = co.CsoportNaploMegnyitasa,
|
|
CsoportNaploLezarasa = co.CsoportNaploLezarasa,
|
|
MuveszetiAgId = co.MuveszetiAgId,
|
|
ZenemuveszetiAgTipusId = co.ZenemuveszetiAgTipusId
|
|
};
|
|
}
|
|
|
|
public static TanuloSorolasModel GetModelForPartialViewCsoport(string dataType, int csoportId)
|
|
{
|
|
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanev = tanevHelper.GetTanevInfo();
|
|
var datum = dataType == "AktData" ? (DateTime?)DateTime.Now : null;
|
|
var ds = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportTanulok(csoportId, datum, tanev.OraFelvetelKezdete, isGroupedByKilepesDatum: true);
|
|
var model = TanuloBesorolasLogic.GenerateTanuloSorolasModelCsoportOsztaly(ds, isCsoportView: true);
|
|
model.IsInfoView = true;
|
|
return model;
|
|
}
|
|
|
|
public static PopUpModel GetPopUpModelForBesorolasModDatumCsoport(int tanuloId, int csoportId)
|
|
{
|
|
BeSorolasModel model = new BeSorolasModel();
|
|
var ds = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloSorolasData(tanuloId, csoportId);
|
|
|
|
if (ds != null)
|
|
{
|
|
DataRow dr = ds.Tables[0].Rows[0];
|
|
|
|
model.OsztalyCsoportId = csoportId;
|
|
model.OsztalyCsoportNev = dr.Field<string>("OsztalyCsoportNev");
|
|
model.TanuloId = tanuloId;
|
|
model.TanuloNev = dr.Field<string>("TanuloNev");
|
|
model.BesorolasDatum = dr.Field<DateTime?>("BesorolasDatum");
|
|
}
|
|
|
|
PopUpModel pm = new PopUpModel(model, "_TanuloBesorolasModPartial");
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "CsoportTanuloHelper.BesorolasWindowCancel" });
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "CsoportTanuloHelper.BesorolasWindowSave" });
|
|
|
|
return pm;
|
|
}
|
|
|
|
public static PopUpModel GetPopUpModelForKisorolasModDatumCsoport(int tanuloId, int csoportId)
|
|
{
|
|
KiSorolasModel model = new KiSorolasModel();
|
|
var ds = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloSorolasData(tanuloId, csoportId);
|
|
|
|
if (ds != null)
|
|
{
|
|
DataRow dr = ds.Tables[0].Rows[0];
|
|
|
|
model.OsztalyCsoportId = csoportId;
|
|
model.OsztalyCsoportNev = dr.Field<string>("OsztalyCsoportNev");
|
|
model.TanuloId = tanuloId;
|
|
model.TanuloNev = dr.Field<string>("TanuloNev");
|
|
model.KisorolasDatum = dr.Field<DateTime?>("KisorolasDatum");
|
|
}
|
|
|
|
PopUpModel pm = new PopUpModel(model, "_TanuloKisorolasModPartial");
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "CsoportTanuloHelper.KisorolasWindowCancel" });
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "CsoportTanuloHelper.KisorolasWindowSave" });
|
|
|
|
return pm;
|
|
}
|
|
|
|
public static PopUpModel GetPopUpModelForKisorolasCsoport(int tanuloId, int csoportId)
|
|
{
|
|
KiSorolasModel model = new KiSorolasModel();
|
|
DataSet ds;
|
|
|
|
var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
ds = helper.GetTanuloSorolasData(tanuloId, csoportId);
|
|
|
|
if (ds != null)
|
|
{
|
|
DataRow dr = ds.Tables[0].Rows[0];
|
|
|
|
model.OsztalyCsoportId = csoportId;
|
|
model.OsztalyCsoportNev = dr.Field<string>("OsztalyCsoportNev");
|
|
model.TanuloId = tanuloId;
|
|
model.TanuloNev = dr.Field<string>("TanuloNev");
|
|
model.KisorolasDatum = dr.Field<DateTime?>("KisorolasDatum");
|
|
}
|
|
|
|
PopUpModel pm = new PopUpModel(model, "_TanuloKisorolasModPartial");
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "CsoportTanuloHelper.KisorolasWindowCancel" });
|
|
pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "CsoportTanuloHelper.KisorolasWindowSave" });
|
|
|
|
return pm;
|
|
}
|
|
|
|
public static DateTime GetSearchDate()
|
|
{
|
|
var tanevData = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo();
|
|
|
|
DateTime searchDate = DateTime.Now.Date;
|
|
if (searchDate < tanevData.KezdoNap)
|
|
{
|
|
searchDate = tanevData.KezdoNap;
|
|
}
|
|
|
|
return searchDate;
|
|
}
|
|
|
|
public static void SaveNaplosorszamEsTorzslapszamBeallitasai(List<NaplosorszamEsTorzslapszamBeallitasaiModel> naplosorszamEsTorzslapszamBeallitasaiModelList)
|
|
{
|
|
var helper = new TanuloTanugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
foreach (var model in naplosorszamEsTorzslapszamBeallitasaiModelList)
|
|
{
|
|
helper.UpdateNaplosorszamEsTorzslapszam(model.TanuloTanugyiAdatokId, model.Naplosorszam, model.Torzslapszam);
|
|
}
|
|
}
|
|
|
|
public static void SaveNaplosorszamListGroup(List<int> osztalyIdList)
|
|
{
|
|
var helper = new TanuloTanugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
helper.UpdateNaplosorszamListGroup(osztalyIdList);
|
|
|
|
}
|
|
|
|
private static void ValidateTervezettLetszam(Dictionary<string, string> customModelState, int? tervezettLetszam, int maxTervezettLetszam)
|
|
{
|
|
if (tervezettLetszam.HasValue && (tervezettLetszam < 0 || tervezettLetszam > maxTervezettLetszam))
|
|
{
|
|
customModelState.Add("TervezettLetszam", string.Format(OsztalyCsoportResource.ATervezettLetszamCsak0Es1KozottLehet, 0, maxTervezettLetszam));
|
|
}
|
|
}
|
|
|
|
private static void ValidateOsztalyCsoportNev(Dictionary<string, string> customModelState, string osztalyCsoportNev, int? id)
|
|
{
|
|
var letezoOsztalyCsoport = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportNev(osztalyCsoportNev, id);
|
|
|
|
if (letezoOsztalyCsoport.Tables[0].Rows.Count > 0)
|
|
{
|
|
var osztalyVagyCsoport = letezoOsztalyCsoport.Tables[0].Rows[0].Field<int?>("OsztalyId") == null ? OsztalyCsoportResource.Csoport.ToLower() : OsztalyCsoportResource.Osztaly.ToLower();
|
|
var osztalyCsoportKategoria = string.Empty;
|
|
|
|
var oktNevKategoriaId = letezoOsztalyCsoport.Tables[0].Rows[0].Field<int?>("KategoriaId") ?? -1;
|
|
|
|
switch (oktNevKategoriaId)
|
|
{
|
|
case (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas:
|
|
osztalyCsoportKategoria = "AMI";
|
|
break;
|
|
case (int)OktNevelesiKategoriaEnum.Kollegium:
|
|
osztalyCsoportKategoria = "Kollégiumi";
|
|
break;
|
|
case (int)OktNevelesiKategoriaEnum.EGYMI:
|
|
osztalyCsoportKategoria = nameof(OktNevelesiKategoriaEnum.EGYMI);
|
|
break;
|
|
case -1:
|
|
osztalyCsoportKategoria = "duális";
|
|
break;
|
|
default:
|
|
osztalyCsoportKategoria = "";
|
|
break;
|
|
}
|
|
|
|
customModelState.Add("OsztalyCsoportNev", string.Format(OsztalyCsoportResource.ValidateLetezoOsztalyCsoport, osztalyCsoportKategoria, osztalyVagyCsoport));
|
|
}
|
|
}
|
|
|
|
private static void ValidateCsoportNaplo(Dictionary<string, string> customModelState, DateTime? csoportNaploMegnyitasa, DateTime? csoportNaploLezarasa)
|
|
{
|
|
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo();
|
|
if (csoportNaploMegnyitasa.HasValue && (csoportNaploMegnyitasa.Value < tanev.KezdoNap /*.AddMonths(-1)*/|| csoportNaploMegnyitasa.Value > tanev.UtolsoNap))
|
|
{
|
|
customModelState.Add("CsoportNaploMegnyitasa", OsztalyCsoportResource.ACsoportnaploMegnyitasanakDatumaATanevElsoEsUtolsoNapjaKozottLehet);
|
|
}
|
|
|
|
if (csoportNaploLezarasa.HasValue && (csoportNaploLezarasa.Value < tanev.KezdoNap /*.AddMonths(-1)*/|| csoportNaploLezarasa.Value > tanev.UtolsoNap))
|
|
{
|
|
customModelState.Add("CsoportNaploLezarasa", OsztalyCsoportResource.ACsoportnaploLezarasanakDatumaATanevElsoEsUtolsoNapjaKozottLehet);
|
|
}
|
|
|
|
if (csoportNaploMegnyitasa.HasValue && csoportNaploLezarasa.HasValue && csoportNaploLezarasa.Value < csoportNaploMegnyitasa.Value)
|
|
{
|
|
var key = customModelState.ContainsKey("CsoportNaploLezarasa") ? "CsoportNaploLezarasa1" : "CsoportNaploLezarasa";
|
|
customModelState.Add(key, OsztalyCsoportResource.ACsoportnaploLezarasDatumaNemLehetKorabbanMintAMegnyitasDatuma);
|
|
}
|
|
}
|
|
|
|
private static void ValidateOsztalynaplo(Dictionary<string, string> customModelState, DateTime? osztalyNaploMegnyitasa, DateTime? osztalyNaploLezarasa)
|
|
{
|
|
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo();
|
|
if (osztalyNaploMegnyitasa.HasValue && (osztalyNaploMegnyitasa.Value < tanev.KezdoNap /*.AddMonths(-1)*/|| osztalyNaploMegnyitasa.Value > tanev.UtolsoNap))
|
|
{
|
|
customModelState.Add("OsztalynaploMegnyitasa", OsztalyCsoportResource.AzOsztalynaploMegnyitasanakDatumaATanevElsoEsUtolsoNapjaKozottLehet);
|
|
}
|
|
|
|
if (osztalyNaploLezarasa.HasValue && (osztalyNaploLezarasa.Value < tanev.KezdoNap /*.AddMonths(-1)*/|| osztalyNaploLezarasa.Value > tanev.UtolsoNap))
|
|
{
|
|
customModelState.Add("OsztalynaploLezarasa", OsztalyCsoportResource.AzOsztalynaploLezarasanakDatumaATanevElsoEsUtolsoNapjaKozottLehet);
|
|
}
|
|
|
|
if (osztalyNaploMegnyitasa.HasValue && osztalyNaploLezarasa.HasValue && osztalyNaploLezarasa.Value < osztalyNaploMegnyitasa.Value)
|
|
{
|
|
var key = customModelState.ContainsKey("OsztalynaploLezarasa") ? "OsztalynaploLezarasa1" : "OsztalynaploLezarasa";
|
|
customModelState.Add(key, OsztalyCsoportResource.AzOsztalynaploLezarasDatumaNemLehetKorabbanMintAMegnyitasDatuma);
|
|
}
|
|
}
|
|
|
|
private static bool ValidateOsztalybontas(string[] csoportIDArray, int osztalyBontasId)
|
|
{
|
|
var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
DateTime? tanevElsoNapja = null;
|
|
if (ClaimData.KovTanevID == ClaimData.SelectedTanevID)
|
|
{
|
|
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var co = tanevHelper.GetTanevInfo();
|
|
tanevElsoNapja = co.KezdoNap;
|
|
}
|
|
|
|
foreach (var csoportId in csoportIDArray)
|
|
{
|
|
DataSet dataSet = osztalyCsoportHelper.GetOsztalyCsoportTanulok(int.Parse(csoportId), DateTime.Now, ClaimData.KovTanevID == ClaimData.SelectedTanevID ? tanevElsoNapja : null);
|
|
|
|
if (!osztalyCsoportHelper.IsTanulokOsztalyTagjai(osztalyBontasId, ClaimData.KovTanevID == ClaimData.SelectedTanevID ? tanevElsoNapja.Value : DateTime.Now,
|
|
dataSet.Tables[0].AsEnumerable().Select(x => x.Field<int>("TanuloId")).ToList()))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
private static void ValidateAmiEvfolyamGroup(Dictionary<string, string> customModelState, string[] osztalyCsoportIdArray, int evfolyamTipusa)
|
|
{
|
|
var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
if (!AmiEvfoylamIdList.Contains(evfolyamTipusa))
|
|
{
|
|
foreach (var id in osztalyCsoportIdArray)
|
|
{
|
|
if (helper.GetOsztalyCsoportFeladatKategoria(int.Parse(id)) == (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas)
|
|
{
|
|
customModelState.Add("EvfolyamTipusa", ErrorResource.AKivalasztottOsztalyoknakNemAllithatoBeCsakAmisEvfolyamTipus);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void ValidateAmiEvfolyam(Dictionary<string, string> customModelState, int feladatellatasiHelyId, int evfolyamTipusa)
|
|
{
|
|
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
if (!AmiEvfoylamIdList.Contains(evfolyamTipusa) && helper.GetFeladatKategoriaId(feladatellatasiHelyId) == (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas)
|
|
{
|
|
customModelState.Add("EvfolyamTipusa", ErrorResource.AKivalasztottOsztalyoknakNemAllithatoBeCsakAmisEvfolyamTipus);
|
|
}
|
|
}
|
|
|
|
private static void ValidateOsztalybontasEvfolyam(Dictionary<string, string> customModelState, string csoportIdString, int evfolyamTipusa)
|
|
{
|
|
var hibasCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybontasosCsoportokHibasEvfolyammal(csoportIdString, evfolyamTipusa);
|
|
if (!string.IsNullOrWhiteSpace(hibasCsoportok))
|
|
{
|
|
customModelState.Add("EvfolyamTipusa", string.Format(ErrorResource.AKovetkezoCsoportoknakNemLehetBeallitaniAzEvfolyamotOsztalybontasMiatt0, hibasCsoportok));
|
|
}
|
|
}
|
|
|
|
private static void ValidateOsztalybontasGyogypedagogiaiLogopediai(Dictionary<string, string> customModelState, string csoportIdString, bool gyogypedagogiaiLogopediai)
|
|
{
|
|
var hibasCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybontasosCsoportokHibasGyogypedagogiaiLogopediai(csoportIdString, gyogypedagogiaiLogopediai);
|
|
if (!string.IsNullOrWhiteSpace(hibasCsoportok))
|
|
{
|
|
customModelState.Add("IsGyogypedagogiaiLogopediai", string.Format(ErrorResource.AKovetkezoCsoportoknakNemLehetBeallitaniAGyogypedagogiaiLogopediaiOsztalybontasMiatt01, hibasCsoportok));
|
|
}
|
|
}
|
|
|
|
private static void ValidateOsztalybontasTechnikai(Dictionary<string, string> customModelState, string csoportIdString, bool technikaiCsoport)
|
|
{
|
|
var hibasCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybontasosCsoportokHibasTechnikaiCsoport(csoportIdString, technikaiCsoport);
|
|
if (!string.IsNullOrWhiteSpace(hibasCsoportok))
|
|
{
|
|
customModelState.Add("TechnikaiCsoport", string.Format(ErrorResource.AKovetkezoCsoportoknakNemLehetBeallitaniATechnikaiOsztalybontasMiatt, hibasCsoportok));
|
|
}
|
|
}
|
|
|
|
private static void ValidateOsztalybontasFeladatellatasiHely(Dictionary<string, string> customModelState, string csoportIdString, int feladatellatasiHelyId)
|
|
{
|
|
var hibasCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybontasosCsoportokHibasFeladatellatasiHellyel(csoportIdString, feladatellatasiHelyId);
|
|
if (!string.IsNullOrWhiteSpace(hibasCsoportok))
|
|
{
|
|
customModelState.Add("FeladatEllatasiHelyId", string.Format(ErrorResource.AKovetkezoCsoportoknakNemLehetBeallitaniAFeladatellatasiHelyetOsztalybontasMiatt0, hibasCsoportok));
|
|
}
|
|
}
|
|
|
|
private static void ValidateOsztalybontasVegzosEvfolyam(Dictionary<string, string> customModelState, string csoportIdString)
|
|
{
|
|
var hibasCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybontasosCsoportokVegzos(csoportIdString);
|
|
if (!string.IsNullOrWhiteSpace(hibasCsoportok))
|
|
{
|
|
customModelState.Add("Vegzos", string.Format(ErrorResource.AKovetkezoOsztalybontottCsoportoknalVegzosJelolesNemLehetseges, hibasCsoportok));
|
|
}
|
|
}
|
|
|
|
#region Export
|
|
|
|
public static ActionResult ExportEvfolyamAktualisLetszamadataiForOsztaly(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchModel model)
|
|
{
|
|
MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEvfolyamAktualisLetszamadataiExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate()));
|
|
var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = OsztalyCsoportResource.EvfolyamAktualisLetszamadataiExportFileName };
|
|
return result;
|
|
}
|
|
|
|
public static ActionResult ExportOsztalyokMindenAdata(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchModel model)
|
|
{
|
|
var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny;
|
|
MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyokMindenAdataExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate()), isNszfhUjSzkt, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater, ClaimData.IsSzakkepzoIntezmeny);
|
|
var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = OsztalyCsoportResource.OsztalyokMindenAdataExportFileName };
|
|
return result;
|
|
}
|
|
|
|
public static ActionResult ExportOsztalybaJaroTanulok(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchModel model)
|
|
{
|
|
MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybaJaroTanulokExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate()));
|
|
var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? OsztalyCsoportResource.OsztalybaJaroNovendekekExportFileName : OsztalyCsoportResource.OsztalybaJaroTanulokExportFileName };
|
|
return result;
|
|
}
|
|
|
|
public static ActionResult ExportOsztalyokAktualisLetszamadatai(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchModel model)
|
|
{
|
|
MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetExportOsztalyokAktualisLetszamadataiExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate()));
|
|
var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = OsztalyCsoportResource.OsztalyokAktualisLetszamadataiExportFileName };
|
|
return result;
|
|
}
|
|
|
|
public static ActionResult ExportCsoportokMindenAdata(OktNevelesiKategoriaEnum? feladatKategoria, CsoportSearchModel model)
|
|
{
|
|
MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportokMindenAdataExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate()), ClaimData.IsSelectedTanev21_22OrLater, ClaimData.IsSzakkepzoIntezmeny);
|
|
var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = OsztalyCsoportResource.CsoportokMindenAdataExportFileName };
|
|
return result;
|
|
}
|
|
|
|
public static ActionResult ExportCsoportbaJaroTanulok(OktNevelesiKategoriaEnum? feladatKategoria, CsoportSearchModel model)
|
|
{
|
|
MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportbaJaroTanulokExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate()), ClaimData.IsActivTanev);
|
|
var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? OsztalyCsoportResource.CsoportbaJaroNovendekekExportFileName : OsztalyCsoportResource.CsoportbaJaroTanulokExportFileName };
|
|
return result;
|
|
}
|
|
|
|
#endregion
|
|
|
|
public static int? GetOsztalyKepzesiFormaja(int osztalyId)
|
|
{
|
|
return new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyKepzesiFormajaByOsztalyId(osztalyId);
|
|
}
|
|
|
|
public static GyogypedaogiaiLogopediaiOsztalyModel GetOsztalyByOsztalyId(int osztalyId)
|
|
{
|
|
OsztalyCO co = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyByOsztalyId(osztalyId);
|
|
return new GyogypedaogiaiLogopediaiOsztalyModel()
|
|
{
|
|
ID = co.Id,
|
|
FeladatEllatasiHelyId = co.FeladatEllatasiHelyId,
|
|
KepzesiForma = co.KepzesiForma,
|
|
EvfolyamTipusa = co.EvfolyamTipusa,
|
|
IsGyogypedagogiaiLogopediai = co.IsGyogypedagogiaiLogopediai,
|
|
TechnikaiOsztaly = co.TechnikaiOsztaly
|
|
};
|
|
}
|
|
|
|
public static DataSourceResult GetOsztalyTanuloinakKepzesiJellemzoi(int osztalyId, int jegyzekTipus, DataSourceRequest request)
|
|
{
|
|
var ohelper = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
ohelper.GridParameters = Converter.GridParameter(request);
|
|
var osztalyTanuloinakKepzesiJellemzoi = ohelper.GetOsztalyTanuloinakKepzesiJellemzoi(osztalyId, jegyzekTipus, ClaimData.IsActivTanev);
|
|
return osztalyTanuloinakKepzesiJellemzoi.ToDataSourceResult(ohelper.GridParameters);
|
|
}
|
|
|
|
public static void SetCsoportMunkarendVisibility(CsoportBaseModel omodel, int? csoportId = null)
|
|
{
|
|
if (csoportId.HasValue)
|
|
{
|
|
var csoportHelper = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var (munkarenddelNemRendelkezo, munkarenddelRendelkezo) = csoportHelper.GetCsoportMunkarendSzama(csoportId.Value, ClaimData.IsActivTanev);
|
|
omodel.OsztalyCsoportTanuloinakMunkarendjeModel.IsUresMegjelenik = munkarenddelNemRendelkezo > 0;
|
|
omodel.OsztalyCsoportTanuloinakMunkarendjeModel.IsGridMegjelenik = munkarenddelRendelkezo > 0;
|
|
}
|
|
}
|
|
|
|
public static void SetOsztalyMunkarendVisibility(OsztalyBaseModel omodel, int? osztalyId = null)
|
|
{
|
|
if (osztalyId.HasValue)
|
|
{
|
|
var osztalyHelper = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var (munkarenddelNemRendelkezo, munkarenddelRendelkezo) = osztalyHelper.GetOsztalyMunkarendSzama(osztalyId.Value, ClaimData.IsActivTanev);
|
|
omodel.OsztalyCsoportTanuloinakMunkarendjeModel.IsUresMegjelenik = munkarenddelNemRendelkezo > 0;
|
|
omodel.OsztalyCsoportTanuloinakMunkarendjeModel.IsGridMegjelenik = munkarenddelRendelkezo > 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
public class AlapkepzesOsztalyCsoportLogic : OsztalyCsoportLogic
|
|
{
|
|
public static void SaveOsztaly(AlapkepzesOsztalyModel model)
|
|
{
|
|
model.OsztalyNev = model.OsztalyNev.ReplaceMultipleSpacesAndTrim();
|
|
if (model.ID > 0)
|
|
{
|
|
new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo());
|
|
}
|
|
else
|
|
{
|
|
if (model.OsztalynaploMegnyitasa.HasValue && !model.OsztalynaploLezarasa.HasValue)
|
|
model.OsztalynaploLezarasa = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetUtolsoTanitasiNapDate();
|
|
|
|
new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo());
|
|
}
|
|
}
|
|
|
|
public static void SetOsztalySzakkepzesesBasicProperties(AlapkepzesOsztalyModel omodel)
|
|
{
|
|
if (!omodel.SzakmacsoportId.HasValue)
|
|
{
|
|
omodel.SzakmacsoportId = (int)SzakmacsoportTipusEnum.Na;
|
|
}
|
|
if (!omodel.AgazatId.HasValue)
|
|
{
|
|
omodel.AgazatId = (int)AgazatTipusEnum.Na;
|
|
}
|
|
if (!omodel.SzakkepesitesId.HasValue)
|
|
{
|
|
omodel.SzakkepesitesId = (int)SzakkepesitesTipusEnum.Na;
|
|
}
|
|
if (!omodel.ReszSzakkepesitesId.HasValue)
|
|
{
|
|
omodel.ReszSzakkepesitesId = (int)ReszszakkepesitesTipusEnum.Na;
|
|
}
|
|
if (!omodel.AgazatUjSzktTipusId.HasValue)
|
|
{
|
|
omodel.AgazatUjSzktTipusId = (int)AgazatUjSzktTipusEnum.na;
|
|
}
|
|
if (!omodel.SzakmaTipusId.HasValue)
|
|
{
|
|
omodel.SzakmaTipusId = (int)SzakmaTipusEnum.na;
|
|
}
|
|
if (!omodel.SzakmairanyTipusId.HasValue)
|
|
{
|
|
omodel.SzakmairanyTipusId = (int)SzakmairanyTipusEnum.na;
|
|
}
|
|
}
|
|
|
|
public static AlapkepzesOsztalyModel GetOsztalyBasicProperties(int? osztalyID = null)
|
|
{
|
|
OsztalyCO co;
|
|
if (osztalyID.HasValue)
|
|
{
|
|
OsztalyHelper h = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
co = h.GetClassById(osztalyID.Value);
|
|
}
|
|
else
|
|
{
|
|
co = new OsztalyCO
|
|
{
|
|
KepzesiForma = (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas
|
|
};
|
|
}
|
|
|
|
if (!co.OsztalynaploMegnyitasa.HasValue)
|
|
{
|
|
TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanev = thelper.GetTanevInfo();
|
|
co.OsztalynaploMegnyitasa = tanev.KezdoNap.AddMonths(0);
|
|
}
|
|
|
|
return AlapkepzesOsztalyModel.ConvertToModel(co);
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateOsztaly(AlapkepzesOsztalyModel model)
|
|
{
|
|
var customModelState = ValidateBaseOsztaly(model);
|
|
ValidateNyelviElokeszito(customModelState, model);
|
|
|
|
if (ClaimData.IsSzakkepzoIntezmeny)
|
|
ValidateSzakkepzo(customModelState, model);
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static void ValidateNyelviElokeszito(Dictionary<string, string> customModelState, AlapkepzesOsztalyModel model)
|
|
{
|
|
if (!model.IsNszfhUjSzkt && nyelviElokeszitosOsztalyok.Contains(model.EvfolyamTipusa.Value) && !model.NyelviElokeszito)
|
|
{
|
|
customModelState.Add("NyelviElokeszito", OsztalyCsoportResource.NyelviElokeszitosOsztalytCsakAJelolonegyzetKipipalasavalLehetLetrehozniModositani);
|
|
}
|
|
}
|
|
|
|
public static void ValidateSzakkepzo(Dictionary<string, string> customModelState, AlapkepzesOsztalyModel model)
|
|
{
|
|
if (SzakkepzoEvfolyamIdList.Contains(model.EvfolyamTipusa.Value) && !model.JogviszonyTipusId.HasValue)
|
|
{
|
|
customModelState.Add("JogviszonyTipus", OsztalyCsoportResource.SzakkepzoOsztalytCsakJogviszonyKijelolesevelLehetLetrehozni);
|
|
}
|
|
if (!SzakkepzoEvfolyamIdList.Contains(model.EvfolyamTipusa.Value) && model.JogviszonyTipusId.HasValue)
|
|
{
|
|
customModelState.Add("JogviszonyTipus", OsztalyCsoportResource.OsztondijraNemJogosultSzakkepzoOsztalynalJogviszonytNemKellMegadni);
|
|
}
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateCsoport(AlapkepzesCsoportModel model)
|
|
{
|
|
var customModelState = ValidateBaseCsoport(model);
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static void SaveCsoport(AlapkepzesCsoportModel model)
|
|
{
|
|
model.CsoportNeve = model.CsoportNeve.ReplaceMultipleSpacesAndTrim();
|
|
if (model.IsFromSzervezet)
|
|
{
|
|
model.CsoportTipusId = (int)CsoportTipusEnum.dualis_kepzesi_csoport;
|
|
}
|
|
if (model.ID.IsEntityId())
|
|
{
|
|
new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo(), ClaimData.FelhasznaloId);
|
|
}
|
|
else
|
|
{
|
|
if (model.CsoportNaploMegnyitasa.HasValue && !model.CsoportNaploLezarasa.HasValue)
|
|
model.CsoportNaploLezarasa = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetUtolsoTanitasiNapDate();
|
|
|
|
var newID = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo());
|
|
if (model.OsztalyBontasId.IsEntityId())
|
|
new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertTanevRendjeNewBontottCsoport(model.OsztalyBontasId.Value, newID);
|
|
}
|
|
}
|
|
|
|
public static AlapkepzesCsoportModel GetCsoportBaseProperties(int? csoportId)
|
|
{
|
|
CsoportCO co;
|
|
AlapkepzesCsoportModel model;
|
|
if (csoportId.HasValue)
|
|
{
|
|
CsoportHelper cshelper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
co = cshelper.GetGroupByID(csoportId.Value);
|
|
}
|
|
else
|
|
{
|
|
co = new CsoportCO();
|
|
co.CsoportTipus = (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_;
|
|
|
|
TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanev = thelper.GetTanevInfo();
|
|
co.CsoportNaploMegnyitasa = tanev.KezdoNap.AddMonths(0);
|
|
}
|
|
|
|
model = AlapkepzesCsoportModel.ConvertToModel(co);
|
|
return model;
|
|
}
|
|
|
|
public static CsoportModModel GetModelForCsoportModPopup(List<AlapkepzesCsoportModel> csoportLista, bool isFromSzervezet = false)
|
|
{
|
|
CsoportModModel csmodel = new CsoportModModel();
|
|
|
|
if (csoportLista.Count == 1)
|
|
{
|
|
csmodel = GetCsoportBasePropertiesMod(csoportLista[0].ID);
|
|
if (csmodel.CsoportTipus == (int)Enums.CsoportTipusEnum.dualis_kepzesi_csoport && !isFromSzervezet)
|
|
{
|
|
throw new StatusError((int)HttpStatusCode.BadRequest, ErrorResource.DualisKepzesiCsoportNemModosithato);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach (var item in csoportLista)
|
|
{
|
|
csmodel.CsoportIDArrayString += item.ID.ToString() + ",";
|
|
csmodel.CsoportNevArray += item.CsoportNeve.ToString() + ", ";
|
|
}
|
|
|
|
csmodel.CsoportIDArrayString = csmodel.CsoportIDArrayString.Remove(csmodel.CsoportIDArrayString.Length - 1);
|
|
csmodel.CsoportNevArray = csmodel.CsoportNevArray.Remove(csmodel.CsoportNevArray.Length - 2);
|
|
}
|
|
|
|
return csmodel;
|
|
}
|
|
|
|
public static void ValidateTobbesModFeladatKategoria(string idArrayString)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(idArrayString))
|
|
{
|
|
var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
var gimnaziumAlapkepzeseskentKezelendo = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Szakgimnaziumok_Alapkezpeseskent_Tudjak_Kezelni_osztalyokat_Tanulokat);
|
|
if (gimnaziumAlapkepzeseskentKezelendo)
|
|
{
|
|
if (!osztalyCsoportHelper.IsOsztalyCsoportokAzonosOktatasNevelesiFeladatTipus(idArrayString, OktatasiNevelesiFeladatEnum.MuveszetiSzakgimnazium))
|
|
{
|
|
if (!osztalyCsoportHelper.IsOsztalyCsoportokAzonosKategoria(idArrayString, OktNevelesiKategoriaEnum.NevelesOktatas))
|
|
{
|
|
throw new StatusError((int)HttpStatusCode.BadRequest, ErrorResource.CsakAlapkezpesesFeladatellatasiHelyhezVagyCsakMuveszetiSzakgimnaziumhozTartozoOsztalyokCsoportokatLehetEgyuttModositani);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!osztalyCsoportHelper.IsOsztalyCsoportokAzonosKategoria(idArrayString, OktNevelesiKategoriaEnum.NevelesOktatas))
|
|
{
|
|
throw new StatusError((int)HttpStatusCode.BadRequest, ErrorResource.CsakAlapkezpesesFeladatellatasiHelyhezTartozoOsztalyokCsoportokatLehetEgyuttModositani);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SetOsztalyKepzesiJellemzokVisibility(AlapkepzesOsztalyModel omodel, int? osztalyId = null)
|
|
{
|
|
if (osztalyId.HasValue)
|
|
{
|
|
var osztalyHelper = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var (SzktCount, OkjCount, NktCount, UresCount, ReszszakmaCount) = osztalyHelper.GetOsztalyTanuloinakSzamaKepzesiJellemzokSzerint(osztalyId.Value, ClaimData.IsActivTanev);
|
|
omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsUjSzktMegjelenik = SzktCount > 0;
|
|
omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsRegiSzktMegjelenik = OkjCount > 0;
|
|
omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsNktMegjelenik = NktCount > 0;
|
|
omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsUresMegjelenik = UresCount > 0;
|
|
omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsReszszakmakMegjelenik = ReszszakmaCount > 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
public class AmiOsztalyCsoportLogic : OsztalyCsoportLogic
|
|
{
|
|
public static void SaveOsztaly(AmiOsztalyModel model)
|
|
{
|
|
model.OsztalyNev = model.OsztalyNev.ReplaceMultipleSpacesAndTrim();
|
|
if (model.ID > 0)
|
|
{
|
|
new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo());
|
|
}
|
|
else
|
|
{
|
|
new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo());
|
|
}
|
|
}
|
|
|
|
public static AmiOsztalyModel GetOsztalyBasicProperties(int? osztalyID = null)
|
|
{
|
|
OsztalyCO co;
|
|
if (osztalyID.HasValue)
|
|
{
|
|
OsztalyHelper h = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
co = h.GetClassById(osztalyID.Value);
|
|
}
|
|
else
|
|
{
|
|
co = new OsztalyCO();
|
|
co.KepzesiForma = (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas;
|
|
}
|
|
|
|
if (!co.OsztalynaploMegnyitasa.HasValue)
|
|
{
|
|
TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanev = thelper.GetTanevInfo();
|
|
co.OsztalynaploMegnyitasa = tanev.KezdoNap.AddMonths(0);
|
|
|
|
}
|
|
|
|
return AmiOsztalyModel.ConvertToModel(co);
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateOsztaly(AmiOsztalyModel model)
|
|
{
|
|
var customModelState = ValidateBaseOsztaly(model);
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static void ValidateZenemuveszetiAg(Dictionary<string, string> customModelState, int muveszetiAgId, int? zenemuveszetiAgTipusId)
|
|
{
|
|
if (muveszetiAgId == (int)MuveszetiAgEnum.ZenemuveszetiAg && !zenemuveszetiAgTipusId.HasValue)
|
|
{
|
|
customModelState.Add("ZenemuveszetiAgTipusId", ErrorResource.ZenemuveszetiAgTipusanakMegadasaKotelezo);
|
|
}
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateCsoport(AmiCsoportModel model)
|
|
{
|
|
var getOsztalyBontasEvfolyama = false;
|
|
if (model.OsztalyBontas && model.OsztalyBontasId.HasValue)
|
|
{
|
|
List<int> osszevontEvfolyamTipusIds = EnumExtensions.GetEvfolyamTipusDictionaryItems(ClaimData.SelectedTanevID.Value, true).Select(x => x.Id).ToList();
|
|
bool isOsszevontEvfolyamTipus = osszevontEvfolyamTipusIds.Any(x => x == GetEvfolyamTipusa(model.OsztalyBontasId.Value));
|
|
if (!isOsszevontEvfolyamTipus)
|
|
{
|
|
getOsztalyBontasEvfolyama = true;
|
|
}
|
|
}
|
|
|
|
var customModelState = ValidateBaseCsoport(model, getOsztalyBontasEvfolyama, true);
|
|
ValidateZenemuveszetiAg(customModelState, model.MuveszetiAgId.Value, model.ZenemuveszetiAgTipusId);
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
private static int GetEvfolyamTipusa(int osztalyBontasId)
|
|
{
|
|
OsztalyHelper osztalyHelper = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
var osztaly = osztalyHelper.GetClassById(osztalyBontasId);
|
|
|
|
return osztaly.EvfolyamTipusa;
|
|
}
|
|
|
|
public static void SaveCsoport(AmiCsoportModel model)
|
|
{
|
|
model.CsoportNeve = model.CsoportNeve.ReplaceMultipleSpacesAndTrim();
|
|
if (model.ID.HasValue)
|
|
{
|
|
new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo(), ClaimData.FelhasznaloId);
|
|
}
|
|
else
|
|
{
|
|
var newID = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo());
|
|
if (model.OsztalyBontasId.HasValue && model.OsztalyBontasId.Value > 0)
|
|
new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertTanevRendjeNewBontottCsoport(model.OsztalyBontasId.Value, newID);
|
|
}
|
|
}
|
|
|
|
public static AmiCsoportModel GetCsoportBaseProperties(int? csoportId)
|
|
{
|
|
CsoportCO co;
|
|
AmiCsoportModel model;
|
|
if (csoportId.HasValue)
|
|
{
|
|
CsoportHelper cshelper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
co = cshelper.GetGroupByID(csoportId.Value);
|
|
}
|
|
else
|
|
{
|
|
co = new CsoportCO();
|
|
co.CsoportTipus = (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_;
|
|
|
|
TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanev = thelper.GetTanevInfo();
|
|
co.CsoportNaploMegnyitasa = tanev.KezdoNap.AddMonths(0);
|
|
}
|
|
|
|
if (co.OsztalyBontas && co.OsztalyBontasId.HasValue)
|
|
{
|
|
List<int> osszevontEvfolyamTipusIds = EnumExtensions.GetEvfolyamTipusDictionaryItems(ClaimData.SelectedTanevID.Value, true).Select(x => x.Id).ToList();
|
|
bool isOsszevontEvfolyamTipus = osszevontEvfolyamTipusIds.Any(x => x == GetEvfolyamTipusa(co.OsztalyBontasId.Value));
|
|
co.OsszevontOsztaly = isOsszevontEvfolyamTipus;
|
|
}
|
|
|
|
model = AmiCsoportModel.ConvertToModel(co);
|
|
return model;
|
|
}
|
|
|
|
public static CsoportModModel GetModelForCsoportModPopup(List<AmiCsoportModel> csoportLista)
|
|
{
|
|
CsoportModModel csmodel = new CsoportModModel();
|
|
|
|
if (csoportLista.Count == 1)
|
|
{
|
|
csmodel = GetCsoportBasePropertiesMod(csoportLista[0].ID);
|
|
}
|
|
else
|
|
{
|
|
foreach (var item in csoportLista)
|
|
{
|
|
csmodel.CsoportIDArrayString += item.ID.ToString() + ",";
|
|
csmodel.CsoportNevArray += item.CsoportNeve.ToString() + ", ";
|
|
}
|
|
|
|
csmodel.CsoportIDArrayString = csmodel.CsoportIDArrayString.Remove(csmodel.CsoportIDArrayString.Length - 1);
|
|
csmodel.CsoportNevArray = csmodel.CsoportNevArray.Remove(csmodel.CsoportNevArray.Length - 2);
|
|
}
|
|
|
|
return csmodel;
|
|
}
|
|
|
|
internal static object GetOsztalyMuvesztiAgAdatok(int osztalyId)
|
|
{
|
|
var osztalyCo = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetClassById(osztalyId);
|
|
|
|
return new { MuveszetiAgId = osztalyCo.MuveszetiAgId };
|
|
}
|
|
|
|
internal static void ValidateTobbesModAutoEgyeniCsoport(string csoportIDArrayString)
|
|
{
|
|
var autoEgyeniCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAutoEgyeniCsoportok(csoportIDArrayString);
|
|
if (!string.IsNullOrWhiteSpace(autoEgyeniCsoportok))
|
|
{
|
|
throw new StatusError((int)HttpStatusCode.BadRequest, string.Format(ErrorResource.AutoEgyeniCsoportotNemLehetEgyuttModositaniKijeloltCsoportok0, autoEgyeniCsoportok));
|
|
}
|
|
}
|
|
|
|
public static void SetOsztalyKepzesiJellemzokVisibility(AmiOsztalyModel omodel, int? osztalyId = null)
|
|
{
|
|
if (osztalyId.HasValue)
|
|
{
|
|
var osztalyHelper = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var (SzktCount, OkjCount, NktCount, UresCount, ReszszakmaCount) = osztalyHelper.GetOsztalyTanuloinakSzamaKepzesiJellemzokSzerint(osztalyId.Value, ClaimData.IsActivTanev);
|
|
omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsUjSzktMegjelenik = SzktCount > 0;
|
|
omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsRegiSzktMegjelenik = OkjCount > 0;
|
|
omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsNktMegjelenik = NktCount > 0;
|
|
omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsUresMegjelenik = UresCount > 0;
|
|
omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsReszszakmakMegjelenik = ReszszakmaCount > 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
public class KollegiumOsztalyCsoportLogic : OsztalyCsoportLogic
|
|
{
|
|
public static void SaveOsztaly(AlapkepzesOsztalyModel model)
|
|
{
|
|
model.OsztalyNev = model.OsztalyNev.ReplaceMultipleSpacesAndTrim();
|
|
if (model.ID > 0)
|
|
{
|
|
new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo());
|
|
}
|
|
else
|
|
{
|
|
new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo());
|
|
}
|
|
}
|
|
|
|
public static void SetOsztalySzakkepzesesBasicProperties(AlapkepzesOsztalyModel omodel)
|
|
{
|
|
if (!omodel.SzakmacsoportId.HasValue)
|
|
{
|
|
omodel.SzakmacsoportId = (int)SzakmacsoportTipusEnum.Na;
|
|
}
|
|
if (!omodel.AgazatId.HasValue)
|
|
{
|
|
omodel.AgazatId = (int)AgazatTipusEnum.Na;
|
|
}
|
|
if (!omodel.SzakkepesitesId.HasValue)
|
|
{
|
|
omodel.SzakkepesitesId = (int)SzakkepesitesTipusEnum.Na;
|
|
}
|
|
if (!omodel.ReszSzakkepesitesId.HasValue)
|
|
{
|
|
omodel.ReszSzakkepesitesId = (int)ReszszakkepesitesTipusEnum.Na;
|
|
}
|
|
if (!omodel.AgazatUjSzktTipusId.HasValue)
|
|
{
|
|
omodel.AgazatUjSzktTipusId = (int)AgazatUjSzktTipusEnum.na;
|
|
}
|
|
if (!omodel.SzakmaTipusId.HasValue)
|
|
{
|
|
omodel.SzakmaTipusId = (int)SzakmaTipusEnum.na;
|
|
}
|
|
if (!omodel.SzakmairanyTipusId.HasValue)
|
|
{
|
|
omodel.SzakmairanyTipusId = (int)SzakmairanyTipusEnum.na;
|
|
}
|
|
}
|
|
|
|
public static AlapkepzesOsztalyModel GetOsztalyBasicProperties(int? osztalyID = null)
|
|
{
|
|
OsztalyCO co;
|
|
if (osztalyID.HasValue)
|
|
{
|
|
OsztalyHelper h = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
co = h.GetClassById(osztalyID.Value);
|
|
}
|
|
else
|
|
{
|
|
co = new OsztalyCO
|
|
{
|
|
KepzesiForma = (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas
|
|
};
|
|
}
|
|
|
|
if (!co.OsztalynaploMegnyitasa.HasValue)
|
|
{
|
|
TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanev = thelper.GetTanevInfo();
|
|
co.OsztalynaploMegnyitasa = tanev.KezdoNap.AddMonths(0);
|
|
}
|
|
|
|
return AlapkepzesOsztalyModel.ConvertToModel(co);
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateOsztaly(AlapkepzesOsztalyModel model)
|
|
{
|
|
var customModelState = ValidateBaseOsztaly(model);
|
|
ValidateNyelviElokeszito(customModelState, model);
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static void ValidateNyelviElokeszito(Dictionary<string, string> customModelState, AlapkepzesOsztalyModel model)
|
|
{
|
|
if (nyelviElokeszitosOsztalyok.Contains(model.EvfolyamTipusa.Value) && !model.NyelviElokeszito)
|
|
{
|
|
customModelState.Add("NyelviElokeszito", OsztalyCsoportResource.NyelviElokeszitosOsztalytCsakAJelolonegyzetKipipalasavalLehetLetrehozniModositani);
|
|
}
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateCsoport(AlapkepzesCsoportModel model)
|
|
{
|
|
var customModelState = ValidateBaseCsoport(model);
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static void SaveCsoport(AlapkepzesCsoportModel model)
|
|
{
|
|
model.CsoportNeve = model.CsoportNeve.ReplaceMultipleSpacesAndTrim();
|
|
if (model.ID.HasValue)
|
|
{
|
|
new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo(), ClaimData.FelhasznaloId);
|
|
}
|
|
else
|
|
{
|
|
var newID = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo());
|
|
if (model.OsztalyBontasId.HasValue && model.OsztalyBontasId.Value > 0)
|
|
new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertTanevRendjeNewBontottCsoport(model.OsztalyBontasId.Value, newID);
|
|
}
|
|
}
|
|
|
|
public static AlapkepzesCsoportModel GetCsoportBaseProperties(int? csoportId)
|
|
{
|
|
CsoportCO co;
|
|
AlapkepzesCsoportModel model;
|
|
if (csoportId.HasValue)
|
|
{
|
|
CsoportHelper cshelper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
co = cshelper.GetGroupByID(csoportId.Value);
|
|
}
|
|
else
|
|
{
|
|
co = new CsoportCO();
|
|
co.CsoportTipus = (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_;
|
|
|
|
TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanev = thelper.GetTanevInfo();
|
|
co.CsoportNaploMegnyitasa = tanev.KezdoNap.AddMonths(0);
|
|
}
|
|
|
|
model = AlapkepzesCsoportModel.ConvertToModel(co);
|
|
return model;
|
|
}
|
|
|
|
public static CsoportModModel GetModelForCsoportModPopup(List<AlapkepzesCsoportModel> csoportLista)
|
|
{
|
|
CsoportModModel csmodel = new CsoportModModel();
|
|
|
|
if (csoportLista.Count == 1)
|
|
{
|
|
csmodel = GetCsoportBasePropertiesMod(csoportLista[0].ID);
|
|
}
|
|
else
|
|
{
|
|
foreach (var item in csoportLista)
|
|
{
|
|
csmodel.CsoportIDArrayString += item.ID.ToString() + ",";
|
|
csmodel.CsoportNevArray += item.CsoportNeve.ToString() + ", ";
|
|
}
|
|
|
|
csmodel.CsoportIDArrayString = csmodel.CsoportIDArrayString.Remove(csmodel.CsoportIDArrayString.Length - 1);
|
|
csmodel.CsoportNevArray = csmodel.CsoportNevArray.Remove(csmodel.CsoportNevArray.Length - 2);
|
|
}
|
|
|
|
return csmodel;
|
|
}
|
|
}
|
|
|
|
public class EGYMIOsztalyCsoportLogic : OsztalyCsoportLogic
|
|
{
|
|
public static void SaveOsztaly(AlapkepzesOsztalyModel model)
|
|
{
|
|
model.OsztalyNev = model.OsztalyNev.ReplaceMultipleSpacesAndTrim();
|
|
if (model.ID > 0)
|
|
{
|
|
new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo());
|
|
}
|
|
else
|
|
{
|
|
new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo());
|
|
}
|
|
}
|
|
|
|
public static void SetOsztalySzakkepzesesBasicProperties(AlapkepzesOsztalyModel omodel)
|
|
{
|
|
if (!omodel.SzakmacsoportId.HasValue)
|
|
{
|
|
omodel.SzakmacsoportId = (int)SzakmacsoportTipusEnum.Na;
|
|
}
|
|
if (!omodel.AgazatId.HasValue)
|
|
{
|
|
omodel.AgazatId = (int)AgazatTipusEnum.Na;
|
|
}
|
|
if (!omodel.SzakkepesitesId.HasValue)
|
|
{
|
|
omodel.SzakkepesitesId = (int)SzakkepesitesTipusEnum.Na;
|
|
}
|
|
if (!omodel.ReszSzakkepesitesId.HasValue)
|
|
{
|
|
omodel.ReszSzakkepesitesId = (int)ReszszakkepesitesTipusEnum.Na;
|
|
}
|
|
if (!omodel.AgazatUjSzktTipusId.HasValue)
|
|
{
|
|
omodel.AgazatUjSzktTipusId = (int)AgazatUjSzktTipusEnum.na;
|
|
}
|
|
if (!omodel.SzakmaTipusId.HasValue)
|
|
{
|
|
omodel.SzakmaTipusId = (int)SzakmaTipusEnum.na;
|
|
}
|
|
if (!omodel.SzakmairanyTipusId.HasValue)
|
|
{
|
|
omodel.SzakmairanyTipusId = (int)SzakmairanyTipusEnum.na;
|
|
}
|
|
}
|
|
|
|
public static AlapkepzesOsztalyModel GetOsztalyBasicProperties(int? osztalyID = null)
|
|
{
|
|
OsztalyCO co;
|
|
if (osztalyID.HasValue)
|
|
{
|
|
OsztalyHelper h = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
co = h.GetClassById(osztalyID.Value);
|
|
}
|
|
else
|
|
{
|
|
co = new OsztalyCO
|
|
{
|
|
KepzesiForma = (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas
|
|
};
|
|
}
|
|
|
|
if (!co.OsztalynaploMegnyitasa.HasValue)
|
|
{
|
|
TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanev = thelper.GetTanevInfo();
|
|
co.OsztalynaploMegnyitasa = tanev.KezdoNap.AddMonths(0);
|
|
}
|
|
|
|
return AlapkepzesOsztalyModel.ConvertToModel(co);
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateOsztaly(AlapkepzesOsztalyModel model)
|
|
{
|
|
var customModelState = ValidateBaseOsztaly(model);
|
|
ValidateNyelviElokeszito(customModelState, model);
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static void ValidateNyelviElokeszito(Dictionary<string, string> customModelState, AlapkepzesOsztalyModel model)
|
|
{
|
|
if (nyelviElokeszitosOsztalyok.Contains(model.EvfolyamTipusa.Value) && !model.NyelviElokeszito)
|
|
{
|
|
customModelState.Add("NyelviElokeszito", OsztalyCsoportResource.NyelviElokeszitosOsztalytCsakAJelolonegyzetKipipalasavalLehetLetrehozniModositani);
|
|
}
|
|
}
|
|
|
|
public static Dictionary<string, string> ValidateCsoport(AlapkepzesCsoportModel model)
|
|
{
|
|
var customModelState = ValidateBaseCsoport(model);
|
|
|
|
return customModelState;
|
|
}
|
|
|
|
public static void SaveCsoport(AlapkepzesCsoportModel model)
|
|
{
|
|
model.CsoportNeve = model.CsoportNeve.ReplaceMultipleSpacesAndTrim();
|
|
if (model.ID.HasValue)
|
|
{
|
|
new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo(), ClaimData.FelhasznaloId);
|
|
}
|
|
else
|
|
{
|
|
var newID = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo());
|
|
if (model.OsztalyBontasId.HasValue && model.OsztalyBontasId.Value > 0)
|
|
new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertTanevRendjeNewBontottCsoport(model.OsztalyBontasId.Value, newID);
|
|
}
|
|
}
|
|
|
|
public static AlapkepzesCsoportModel GetCsoportBaseProperties(int? csoportId)
|
|
{
|
|
CsoportCO co;
|
|
AlapkepzesCsoportModel model;
|
|
if (csoportId.HasValue)
|
|
{
|
|
CsoportHelper cshelper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
co = cshelper.GetGroupByID(csoportId.Value);
|
|
}
|
|
else
|
|
{
|
|
co = new CsoportCO();
|
|
co.CsoportTipus = (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_;
|
|
|
|
TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanev = thelper.GetTanevInfo();
|
|
co.CsoportNaploMegnyitasa = tanev.KezdoNap.AddMonths(0);
|
|
}
|
|
|
|
model = AlapkepzesCsoportModel.ConvertToModel(co);
|
|
return model;
|
|
}
|
|
|
|
public static CsoportModModel GetModelForCsoportModPopup(List<AlapkepzesCsoportModel> csoportLista)
|
|
{
|
|
CsoportModModel csmodel = new CsoportModModel();
|
|
|
|
if (csoportLista.Count == 1)
|
|
{
|
|
csmodel = GetCsoportBasePropertiesMod(csoportLista[0].ID);
|
|
}
|
|
else
|
|
{
|
|
foreach (var item in csoportLista)
|
|
{
|
|
csmodel.CsoportIDArrayString += item.ID.ToString() + ",";
|
|
csmodel.CsoportNevArray += item.CsoportNeve.ToString() + ", ";
|
|
}
|
|
|
|
csmodel.CsoportIDArrayString = csmodel.CsoportIDArrayString.Remove(csmodel.CsoportIDArrayString.Length - 1);
|
|
csmodel.CsoportNevArray = csmodel.CsoportNevArray.Remove(csmodel.CsoportNevArray.Length - 2);
|
|
}
|
|
|
|
return csmodel;
|
|
}
|
|
|
|
|
|
}
|
|
}
|