using System; using System.ComponentModel.DataAnnotations; using System.IO; using System.Web.Mvc; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Interfaces; using Kreta.Core.Configuratiaton; using Kreta.Core.Configuratiaton.Interface; using Kreta.Core.Logic; using Kreta.Enums; using Kreta.Resources; using Kreta.Web.Models; using Kreta.Web.Models.EditorTemplates; using Kreta.Web.Security; namespace Kreta.Web.Areas.Adminisztracio.Models { public class SajatAdatlapInfoModel : PanelBarChildModel { public SajatAdatlapInfoModel() { AlapAdat = new AlapAdatModel(); Gondviselo = new GondviseloModel(); TanuloIgazolvany = new TanuloIgazolvanyModel(); Felhasznalo4TAdatokModel = new Felhasznalo4TAdatokModel(); ApaczaiMentorNyugdijModel = new MentoriNyugdijModel(); } public AlapAdatModel AlapAdat { get; set; } public GondviseloModel Gondviselo { get; set; } public TanuloIgazolvanyModel TanuloIgazolvany { get; set; } public TanuloBankszamlaModel TanuloBankszamla { get; set; } public AlkalmazottBankszamlaModel AlkalmazottBankszamla { get; set; } public BankszamlaIgenylesModel MkbBankszamlaIgenylesModel { get; set; } public BankszamlaIgenylesModel OtpBankszamlaIgenylesModel { get; set; } public EgyhaztartasbanElokModel EgyhaztartasbanElokModel { get; set; } public Felhasznalo4TAdatokModel Felhasznalo4TAdatokModel { get; set; } public MentoriNyugdijModel ApaczaiMentorNyugdijModel { get; set; } public bool HideControlsForApaczaiOD { get; set; } public bool HideControlsForAlkalmazott { get; set; } #region AlapAdat public class AlapAdatModel { [Display(Name = nameof(AlkalmazottResource.OktatasiAzonosito), ResourceType = typeof(AlkalmazottResource))] public string OktatasiAzonosito { get; set; } [Display(Name = nameof(AlkalmazottResource.Elotag), ResourceType = typeof(AlkalmazottResource))] public string EloTag { get; set; } [Display(Name = nameof(AlkalmazottResource.CsaladiNev), ResourceType = typeof(AlkalmazottResource))] public string CsaladiNev { get; set; } [Display(Name = nameof(AlkalmazottResource.Utonev), ResourceType = typeof(AlkalmazottResource))] public string Utonev { get; set; } [Display(Name = nameof(AlkalmazottResource.SzuletesiElotag), ResourceType = typeof(AlkalmazottResource))] public string SzuletesiElotag { get; set; } [Display(Name = nameof(AlkalmazottResource.SzuletesiCsaladiNev), ResourceType = typeof(AlkalmazottResource))] public string SzuletesiCsaladNev { get; set; } [Display(Name = nameof(AlkalmazottResource.SzuletesiUtonev), ResourceType = typeof(AlkalmazottResource))] public string SzuletesiUtonev { get; set; } [Display(Name = nameof(AlkalmazottResource.AnyjaElotag), ResourceType = typeof(AlkalmazottResource))] public string AnyjaElotag { get; set; } [Display(Name = nameof(AlkalmazottResource.AnyjaCsaladiNeve), ResourceType = typeof(AlkalmazottResource))] public string AnyjaCsaladiNeve { get; set; } [Display(Name = nameof(AlkalmazottResource.AnyjaUtoneve), ResourceType = typeof(AlkalmazottResource))] public string AnyjaUtonev { get; set; } [Display(Name = nameof(TanuloResource.Anyanyelv), ResourceType = typeof(TanuloResource))] public string Anyanyelv { get; set; } [Display(Name = nameof(TanuloResource.SzuletesiOrszag), ResourceType = typeof(TanuloResource))] public string SzuletesiOrszag { get; set; } [Display(Name = nameof(TanuloResource.SzuletesiHely), ResourceType = typeof(TanuloResource))] public string SzuletesiHely { get; set; } [Display(Name = nameof(TanuloResource.SzuletesiIdo), ResourceType = typeof(TanuloResource))] public DateTime SzuletesiIdo { get; set; } [Display(Name = nameof(TanuloResource.SzuletesiIdo), ResourceType = typeof(TanuloResource))] public string SzuletesiIdo_SDATE => SzuletesiIdo.ToString(Core.Constants.ToStringPattern.HungarianDateWithSpaces); [Display(Name = nameof(TanuloResource.Allampolgarsag), ResourceType = typeof(TanuloResource))] public string Allampolgarsag { get; set; } [Display(Name = nameof(TanuloResource.Allampolgarsag2), ResourceType = typeof(TanuloResource))] public string Allampolgarsag2 { get; set; } [Display(Name = nameof(TanuloResource.IgazolvanyTipus), ResourceType = typeof(TanuloResource))] public string IgazolvanyTipus { get; set; } [Display(Name = nameof(TanuloResource.IgazolvanySzam), ResourceType = typeof(TanuloResource))] public string IgazolvanySzam { get; set; } [Display(Name = nameof(AlkalmazottResource.Felhasznalonev), ResourceType = typeof(AlkalmazottResource))] public string BelepesiNev { get; set; } [Display(Name = nameof(TanuloResource.Osztaly), ResourceType = typeof(TanuloResource))] public string OsztalyNev { get; set; } [Display(Name = nameof(OsztalyCsoportResource.Osztalyfonok), ResourceType = typeof(OsztalyCsoportResource))] public string OsztalyfonokNev { get; set; } [Display(Name = nameof(OsztalyCsoportResource.Terem), ResourceType = typeof(OsztalyCsoportResource))] public string TeremNev { get; set; } [Display(Name = nameof(TanuloResource.Evfolyam), ResourceType = typeof(TanuloResource))] public string EvfolyamNev { get; set; } } #endregion public class TanuloAdatModel : IKretaIdentity { public string ID { get; set; } [Display(Name = nameof(TanuloResource.Tanulo), ResourceType = typeof(TanuloResource))] public string TanuloNev { get; set; } [Display(Name = nameof(TanuloResource.OktatasiAzonosito), ResourceType = typeof(TanuloResource))] public string OktAzon { get; set; } [Display(Name = nameof(TanuloResource.Osztaly), ResourceType = typeof(TanuloResource))] public string OsztalyNev { get; set; } [Display(Name = nameof(OsztalyCsoportResource.Osztalyfonok), ResourceType = typeof(OsztalyCsoportResource))] public string OsztalyfonokNev { get; set; } [Display(Name = nameof(OsztalyCsoportResource.Terem), ResourceType = typeof(OsztalyCsoportResource))] public string TeremNev { get; set; } } #region Elerhetőségek public class ElerhetosegCimModel : IKretaIdentity { public string ID { get; set; } [Display(Name = nameof(TanuloResource.Tipus), ResourceType = typeof(TanuloResource))] public string CimTipus_DNAME { get; set; } [Display(Name = nameof(TanuloResource.Iranyitoszam), ResourceType = typeof(TanuloResource))] public string Irsz { get; set; } [Display(Name = nameof(TanuloResource.Helyseg), ResourceType = typeof(TanuloResource))] public string Varos { get; set; } [Display(Name = nameof(TanuloResource.Cim), ResourceType = typeof(TanuloResource))] public string Cim { get; set; } [Display(Name = nameof(TanuloResource.Kozterulet), ResourceType = typeof(TanuloResource))] public string Kozterulet { get; set; } [Display(Name = nameof(TanuloResource.KozteruletJellege), ResourceType = typeof(TanuloResource))] public string KozteruletJellegeNev { get; set; } [Display(Name = nameof(TanuloResource.Hazszam), ResourceType = typeof(TanuloResource))] public string HazSzam { get; set; } [Display(Name = nameof(TanuloResource.Emelet), ResourceType = typeof(TanuloResource))] public string Emelet { get; set; } [Display(Name = nameof(TanuloResource.Ajto), ResourceType = typeof(TanuloResource))] public string Ajto { get; set; } [Display(Name = nameof(TanuloResource.Alapertelmezett), ResourceType = typeof(TanuloResource))] public bool Alapertelmezett_BOOL { get; set; } } public class ElerhetosegTelModel : IKretaIdentity { public string ID { get; set; } [Display(Name = nameof(TanuloResource.Tipus), ResourceType = typeof(TanuloResource))] public string Tipus_DNAME { get; set; } [Display(Name = nameof(TanuloResource.Telefonszam), ResourceType = typeof(TanuloResource))] public string TelefonSzam { get; set; } [Display(Name = nameof(TanuloResource.Alapertelmezett), ResourceType = typeof(TanuloResource))] public bool Alapertelmezett_BOOL { get; set; } } public class ElerhetosegEmailModel : IKretaIdentity { public string ID { get; set; } [Display(Name = nameof(TanuloResource.Tipus), ResourceType = typeof(TanuloResource))] public string Tipus_DNAME { get; set; } [Display(Name = nameof(TanuloResource.EmailCim), ResourceType = typeof(TanuloResource))] public string EmailCim { get; set; } [Display(Name = nameof(TanuloResource.Alapertelmezett), ResourceType = typeof(TanuloResource))] public bool Alapertelmezett_BOOL { get; set; } } public class TargyiEszkozModel : IKretaIdentity { public string ID { get; set; } [Display(Name = nameof(TanarResource.Megnevezes), ResourceType = typeof(TanarResource))] public string Megnevezes { get; set; } [Display(Name = nameof(TanarResource.GyariSzam), ResourceType = typeof(TanarResource))] public string GyariSzam { get; set; } [Display(Name = nameof(TanarResource.LeltariSzam), ResourceType = typeof(TanarResource))] public string LeltariSzam { get; set; } } #endregion public class GondviseloModel { [Display(Name = nameof(TanuloResource.TeljesNev), ResourceType = typeof(TanuloResource))] public string GondviseloNeve { get; set; } [Display(Name = nameof(TanuloResource.RokonsagiFok), ResourceType = typeof(TanuloResource))] public string RokonsagiFok { get; set; } [Display(Name = nameof(TanuloResource.TorvenyesKepviselo), ResourceType = typeof(TanuloResource))] public string IsTorvenyesKepviselo { get; set; } } public class TanuloIgazolvanyModel { [Display(Name = nameof(TanuloResource.IgazolvanySzama), ResourceType = typeof(TanuloResource))] public string Igazolvanyszam { get; set; } [Display(Name = nameof(TanuloResource.IgazolvanyTipus), ResourceType = typeof(TanuloResource))] public string IgazolvanyTipus { get; set; } [Display(Name = nameof(TanuloResource.DiakigazolvanySzam), ResourceType = typeof(TanuloResource))] public string DiakigazolvanySzam { get; set; } public DateTime? DiakigazolvanyKelte { get; set; } [Display(Name = nameof(TanuloResource.DiakigazolvanyKelte), ResourceType = typeof(TanuloResource))] public string DiakigazolvanyKelte_SDATE => DiakigazolvanyKelte.ToShortDateString(); [Display(Name = nameof(TanuloResource.TajSzam), ResourceType = typeof(TanuloResource))] public string TajSzam { get; set; } [Display(Name = nameof(TanuloResource.AdoazonositoJel), ResourceType = typeof(TanuloResource))] public string AdoazonositoJel { get; set; } } public static SajatAdatlapInfoModel ConvertTanarAdatCoToModel(TanarAdatCO co, EgyhaztartasbanElokCo egyhaztartasbanElokCo) { var model = new SajatAdatlapInfoModel { AlapAdat = new AlapAdatModel { OktatasiAzonosito = co.OktatasiAzonosito, EloTag = co.Elotag, CsaladiNev = co.MunkavallaloCsaladiNev, Utonev = co.MunkavallaloUtonev, AnyjaCsaladiNeve = co.AnyjaCsaladiNeve, AnyjaUtonev = co.AnyjaUtoneve, AnyjaElotag = co.AnyjaNeveElotag, SzuletesiCsaladNev = co.SzuletesiCsaladiNev, SzuletesiUtonev = co.SzuletesiUtonev, SzuletesiElotag = co.SzuletesiNevElotag, SzuletesiHely = co.SzuletesiHely, SzuletesiIdo = co.SzuletesiIdo, IgazolvanyTipus = co.IgazolvanyTipus.GetDisplayName(ClaimData.SelectedTanevID.Value), IgazolvanySzam = co.IgazolvanySzam, BelepesiNev = co.BelepesiNev }, AlkalmazottBankszamla = new AlkalmazottBankszamlaModel("SajatAdatlapHelper.alkalmazottBankszamlaMentesClick") { BankszamlaSzam = co.BankszamlaSzam, BankszamlaTulajdonos = co.BankszamlaTulajdonos, BankszamlaTulajdonosNeve = co.BankszamlaTulajdonosNeve, SzamlavezetoBank = co.SzamlavezetoBank, IsApaczaiMentor = co.IsApaczaiMentor, }, EgyhaztartasbanElokModel = GetEgyhaztartasbanElokModel(egyhaztartasbanElokCo), ApaczaiMentorNyugdijModel = new MentoriNyugdijModel { IsApaczaiMentor = co.IsApaczaiMentor, IsNyugdijas = co.IsNyugdijas, NyugdijKezdet = co.NyugdijKezdet, NyugdijTipusId = co.NyugdijTipusId, MunkaugyiAdatId = co.MunkaugyiAdatId } }; return model; } public static SajatAdatlapInfoModel ConvertTanuloAdatCoToModel(TanuloAdatCO co, BankszamlaIgenylesCo bankszamlaIgenylesCo, EgyhaztartasbanElokCo egyhaztartasbanElokCo) { var model = new SajatAdatlapInfoModel { AlapAdat = new AlapAdatModel { OktatasiAzonosito = co.OktatasiAzonosito, EloTag = co.Elotag, CsaladiNev = co.CsaladiNev, Utonev = co.UtoNev, AnyjaCsaladiNeve = co.AnyjaCsaladiNev, AnyjaUtonev = co.AnyjaUtoNev, AnyjaElotag = co.AnyjaNeveElotag, SzuletesiCsaladNev = co.SzuletesiCsaladiNev, SzuletesiUtonev = co.SzuletesiUtoNev, SzuletesiElotag = co.SzuletesiNevElotag, SzuletesiOrszag = co.SzuletesiOrszag.GetDisplayName(ClaimData.SelectedTanevID.Value), SzuletesiHely = co.SzuletesiHely, SzuletesiIdo = co.SzuletesiIdo, Anyanyelv = co.Anyanyelv.GetDisplayName(ClaimData.SelectedTanevID.Value), Allampolgarsag = co.Allampolgarsag.GetDisplayName(ClaimData.SelectedTanevID.Value), Allampolgarsag2 = co.Allampolgarsag2.GetDisplayName(ClaimData.SelectedTanevID.Value), BelepesiNev = co.BelepesiNev, OsztalyNev = co.OsztalyNev, EvfolyamNev = co.EvfolyamNev, OsztalyfonokNev = co.OsztalyfonokNev, TeremNev = co.TeremNev }, TanuloIgazolvany = new TanuloIgazolvanyModel { AdoazonositoJel = co.AdoazonositoJel, DiakigazolvanyKelte = co.DiakigazolvanyKelte, DiakigazolvanySzam = co.DiakigazolvanySzam, Igazolvanyszam = co.Igazolvanyszam, IgazolvanyTipus = co.IgazolvanyTipus.GetDisplayName(ClaimData.SelectedTanevID.Value), TajSzam = co.TajSzam }, TanuloBankszamla = new TanuloBankszamlaModel("SajatAdatlapHelper.tanuloBankszamlaMentesClick") { BankszamlaSzam = co.BankszamlaSzam, BankszamlaTulajdonos = co.BankszamlaTulajdonos, BankszamlaTulajdonosNeve = co.BankszamlaTulajdonosNeve, SzamlavezetoBank = co.SzamlavezetoBank, }, MkbBankszamlaIgenylesModel = GetBankszamlaIgenylesModel(bankszamlaIgenylesCo), OtpBankszamlaIgenylesModel = GetBankszamlaIgenylesModel(bankszamlaIgenylesCo), EgyhaztartasbanElokModel = GetEgyhaztartasbanElokModel(egyhaztartasbanElokCo), Felhasznalo4TAdatokModel = new Felhasznalo4TAdatokModel() { AnyjaUtonev = co.AnyjaUtoNev, AnyjaVezeteknev = co.AnyjaCsaladiNev, Elotag = co.Elotag, SzuletesiDatum = co.SzuletesiIdo, SzuletesiHely = co.SzuletesiHely, SzuletesiUtonev = co.SzuletesiUtoNev, SzuletesiVezeteknev = co.SzuletesiCsaladiNev, Utonev = co.UtoNev, Vezeteknev = co.CsaladiNev, }, }; return model; } public static SajatAdatlapInfoModel ConvertGondviseloAdatCoToModel(TanuloGondviseloCO co, Felhasznalo4TAdatokCo felhasznalo4TAdatokCo, BankszamlaIgenylesCo bankszamlaIgenylesCo, EgyhaztartasbanElokCo egyhaztartasbanElokCo) { var model = new SajatAdatlapInfoModel { AlapAdat = new AlapAdatModel { BelepesiNev = co.GondviseloBelepesiNeve }, Gondviselo = new GondviseloModel { RokonsagiFok = co.RokonsagiFok.GetDisplayName(ClaimData.SelectedTanevID.Value), IsTorvenyesKepviselo = co.IsTorvenyesKepviselo.GetDisplayName(), GondviseloNeve = co.GondviseloNeve }, TanuloBankszamla = new TanuloBankszamlaModel("SajatAdatlapHelper.tanuloBankszamlaMentesClick") { BankszamlaSzam = co.TanuloBankszamlaCo.BankszamlaSzam, BankszamlaTulajdonos = co.TanuloBankszamlaCo.BankszamlaTulajdonos, BankszamlaTulajdonosNeve = co.TanuloBankszamlaCo.BankszamlaTulajdonosNeve, SzamlavezetoBank = co.TanuloBankszamlaCo.SzamlavezetoBank, IsReadonly = !co.IsTorvenyesKepviselo }, MkbBankszamlaIgenylesModel = GetBankszamlaIgenylesModel(bankszamlaIgenylesCo, co), OtpBankszamlaIgenylesModel = GetBankszamlaIgenylesModel(bankszamlaIgenylesCo, co), EgyhaztartasbanElokModel = GetEgyhaztartasbanElokModel(egyhaztartasbanElokCo), Felhasznalo4TAdatokModel = new Felhasznalo4TAdatokModel(felhasznalo4TAdatokCo) { IsEditable = false } }; return model; } private static BankszamlaIgenylesModel GetBankszamlaIgenylesModel(BankszamlaIgenylesCo bankszamlaIgenylesCo, TanuloGondviseloCO gondviselo = null) where T : IBankszamlaIgenylesConfiguration { bool showIgenyles = false; string igenylesOldalUrl = string.Empty; //NOTE: Ha az adatbátzisban az intézmény adatokban(T_INTEZMENYADATOK) be van állítva, hogy szakképző az intézmény(C_ISSZAKKEPZO = 'T'), akkor lehet csak megjeleníteni a funkciót. // Csak az NSZFH-s intézményeknél lehet true. if (ClaimData.IsSzakkepzoIntezmeny) { //NOTE: Csak abban az esetben lehet igényelni bankszámlát, ha // - még nincs bankszámlaszáma(azaz null vagy üres string a Bankszamlaszam) és // - a tanuló bármelyik osztálya megfelelő évfolyamú(Kreta.Core.Constants.BankszamlatIgenyelhetoTanuloOsztalyEvfolyamTipusIdList). if (string.IsNullOrWhiteSpace(bankszamlaIgenylesCo.Bankszamlaszam) && bankszamlaIgenylesCo.IsTanuloIgenyelhetBankszamlatByOsztalyEvfolyamTipus) { bool isGondviselo = gondviselo != null; //NOTE: Ha a felhasználó gondviselő, csak abban az esetben lehet igényelni bankszámlát, ha // - törvényes képviselő. if (isGondviselo) { if (gondviselo.IsTorvenyesKepviselo) { showIgenyles = true; } } //NOTE: Ha a felhasználó tanuló, minden esetben lehet igényelni bankszámlát. else { showIgenyles = true; } } var bankszamlaIgenylesConfiguration = DependencyResolver.Current.GetService(); //NOTE: Beállítjuk a bankszámla igénylés oldal url-jét az MKB-nak megfelelő titkosítás szerint, ha // - meg kell jeleníteni a korábbi feltételek alapján és // - létezik a publikus kulcs és // - amit encrypt-álunk, az nem lesz null vagy üres string. if (showIgenyles && File.Exists(bankszamlaIgenylesConfiguration.PublicKeyFileName)) { string token = UrlLogic.JweEncrypt( bankszamlaIgenylesConfiguration.PublicKeyFileName, bankszamlaIgenylesConfiguration.PublicKeyFilePassword, bankszamlaIgenylesCo.EgyediAzonosito); if (!string.IsNullOrWhiteSpace(token)) { igenylesOldalUrl = string.Format(bankszamlaIgenylesConfiguration.FormUrl, bankszamlaIgenylesCo.UrlHost, token); } } //NOTE: Ha valami miatt mégsem sikerült beállítani a bankszámla igénylés oldal url-jét akkor nem jelenítjük meg az igénylés gombot. if (string.IsNullOrWhiteSpace(igenylesOldalUrl)) { showIgenyles = false; } } var model = new BankszamlaIgenylesModel { ShowIgenyles = showIgenyles, IgenylesOldalUrl = igenylesOldalUrl, }; return model; } private static EgyhaztartasbanElokModel GetEgyhaztartasbanElokModel(EgyhaztartasbanElokCo co) { var model = new EgyhaztartasbanElokModel() { }; if (co.Sorok.Count > 0) { foreach (var item in co.Sorok) { model.Sorok.Add(new EgyhaztartasbanElokRowModel() { ID = item.ID, Nev = item.Nev, AnyjaNev = item.AnyjaNev, SzuletesiIdo = item.SzuletesiIdo, SzuletesiHely = item.SzuletesiHely, Taj = item.Taj, RokonsagiFok = item.RokonsagiFok, Email = item.Email, Telefon = item.Telefon }); } } return model; } } }