using System; using System.Collections.Generic; using System.Data; using System.Linq; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Classes.ComboBox; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.BusinessLogic.Logic.TanuloErtekeles; using Kreta.BusinessLogic.Utils; using Kreta.Client.Leltar; using Kreta.Client.Leltar.Request; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.Core.Enum; using Kreta.Core.Exceptions; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.Util; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Resources; using SDA.DataProvider; namespace Kreta.BusinessLogic.Helpers { public class TanarHelper : LogicBase { public TanarHelper(IConnectionType connectionType) : base(connectionType) { } public bool AddOrUpdateTeacher(ILeltarClient leltarClient, TanarAdatCO data, bool update, bool isSzirIntezmeny, bool isActivTanev, bool? isKlebelsbergKozpontOrNSZFH = null, int alkalmazottId = -1, bool kellFollowUp = true, bool isFromSzervezet = false, bool isDualis = false) { var isLeltarSyncSuccess = true; Dal.CustomConnection.Run(ConnectionType, h => { try { var alkalmazottDal = h.Alkalmazott(); var emailDal = h.Email(); var felhasznaloBelepesDal = h.FelhasznaloBelepes(); var szerepkorDal = h.Szerepkor(); var cimDal = h.Cim(); var telefonDal = h.Telefon(); var tanarDal = h.TanarDal(); var feladatellatasiHelyDal = h.FeladatEllatasiHelyDal(); var munkaugyiAdatDal = h.AlkalmazottMunkaugyiAdatokDal(); var felhasznaloDal = h.Felhasznalo(); IAlkalmazott alkalmazott = null; if (update) { alkalmazott = alkalmazottDal.Get(alkalmazottId); } else { alkalmazott = alkalmazottDal.Get(); } alkalmazott.OktatasiAzonosito = data.OktatasiAzonosito; alkalmazott.IsOktAzonNelkul = data.IsOktatasiAzonositoNelkul; alkalmazott.Neme = (int)data.Nem; alkalmazott.NevSorrend = false; alkalmazott.Elotag = Extensions.NameExtensions.CleanElotag(data.Elotag); alkalmazott.Vezeteknev = data.MunkavallaloCsaladiNev; alkalmazott.Utonev = data.MunkavallaloUtonev; alkalmazott.NyomtatasiNev = Extensions.NameExtensions.GetNevSorrendben("F", alkalmazott.Elotag, alkalmazott.Vezeteknev, alkalmazott.Utonev); alkalmazott.KeresesiNev = CommonUtilsDal.KopaszNev(alkalmazott.NyomtatasiNev); alkalmazott.SzuletesiNevSorrend = data.SzuletesiNevSorrend; alkalmazott.SzuletesiNevElotag = Extensions.NameExtensions.CleanElotag(data.SzuletesiNevElotag); alkalmazott.SzuletesiVezeteknev = !data.SzuletesiNevSorrend ? data.SzuletesiCsaladiNev.ReplaceMultipleSpacesAndTrim() : data.SzuletesiUtonev.ReplaceMultipleSpacesAndTrim(); alkalmazott.SzuletesiUtonev = !data.SzuletesiNevSorrend ? data.SzuletesiUtonev.ReplaceMultipleSpacesAndTrim() : data.SzuletesiCsaladiNev.ReplaceMultipleSpacesAndTrim(); alkalmazott.SzuletesiNev = Extensions.NameExtensions.GetNevSorrendben("F", alkalmazott.SzuletesiNevElotag, alkalmazott.SzuletesiVezeteknev, alkalmazott.SzuletesiUtonev); alkalmazott.AnyjaNeveSorrend = data.AnyjaNeveSorrend; alkalmazott.AnyjaNeveElotag = Extensions.NameExtensions.CleanElotag(data.AnyjaNeveElotag); alkalmazott.AnyjaVezetekneve = !data.AnyjaNeveSorrend ? data.AnyjaCsaladiNeve.ReplaceMultipleSpacesAndTrim() : data.AnyjaUtoneve.ReplaceMultipleSpacesAndTrim(); alkalmazott.AnyjaUtoneve = !data.AnyjaNeveSorrend ? data.AnyjaUtoneve.ReplaceMultipleSpacesAndTrim() : data.AnyjaCsaladiNeve.ReplaceMultipleSpacesAndTrim(); alkalmazott.AnyjaNeve = Extensions.NameExtensions.GetNevSorrendben("F", alkalmazott.AnyjaNeveElotag, alkalmazott.AnyjaVezetekneve, alkalmazott.AnyjaUtoneve); alkalmazott.SzuletesiDatum = data.SzuletesiIdo; alkalmazott.SzuletesiHely = data.SzuletesiHely; alkalmazott.IgazolvanySzam = data.IgazolvanySzam; alkalmazott.IgazolvanyTipusa = data.IgazolvanyTipus.HasValue ? (int)data.IgazolvanyTipus : (int)IgazolvanyTipusEnum.na; alkalmazott.Allampolgarsaga = data.Allampolgarsag ?? (int)AllampolgarsagEnum.magyar; alkalmazott.Allampolgarsaga2 = data.Allampolgarsag2; alkalmazott.SzuletesiOrszag = data.SzuletesiOrszag ?? (int)OrszagTipusEnum.Magyarorszag; alkalmazott.NyilvantartasKezdete = data.AlkalmazasKezdete ?? DateTime.Now; alkalmazott.Foallas = data.Foallasu; alkalmazott.Szakvizsga = data.Szakvizsga; alkalmazott.SzakertoiVizsgaelnoki = data.SzakertoiVagyVizsgaelnokiTevekenysegu; alkalmazott.Tovabbkepzes = data.SzakmaiTovabbkepzes; alkalmazott.Diakolimpia = data.DiakolimpiaiJog; alkalmazott.KozossegiSzolgalatKezelo = data.KozossegiSzolgalatKezelo; alkalmazott.LepKezelo = data.LEPModulKezelo; alkalmazott.AdoazonositoJel = data.AdoazonositoJel; alkalmazott.TAJSzam = data.TajSzam; alkalmazott.Megjegyzes = data.Megjegyzes; alkalmazott.IsKuldhetoPedMinositesSzRnek = data.IsKuldhetoPedMinositesSzRnek; //alkalmazott.SZTSZKod = data.SZTSZKod; // Központi tölti!!! alkalmazott.AllandoHelyettesitesre = data.AllandoHelyettesitesre; alkalmazott.IsHrKezelo = data.IsHrKezelo; alkalmazott.IsSzakOktatasertFelelos = data.IsSzakiranyuOktatasertFelelos; alkalmazott.IsDualisKepzohelyiOktato = data.IsDualisKepzohelyiOktato; alkalmazott.Anyanyelve = data.Anyanyelve ?? (int)AnyanyelvEnum.magyar; alkalmazott.HasEfopEszkoz = data.HasEfopEszkoz; var kelleFelhasznaloBelepestLetrehozni = false; var trimmedBejelentkezesiNev = data.BelepesiNev.ReplaceMultipleSpacesAndTrim(); var connectionType = new DalHandlerConnectionType(ConnectionType, h); var felhasznaloBelepesHelper = new FelhasznaloBelepesHelper(connectionType); if (update) { alkalmazottDal.Update(alkalmazott); if (!string.IsNullOrWhiteSpace(trimmedBejelentkezesiNev)) { var belepes = alkalmazott.FelhasznaloBelepes.SingleOrDefault(b => !b.Torolt); if (belepes != null && belepes.BejelentkezesiNev != trimmedBejelentkezesiNev) { belepes.BejelentkezesiNev = trimmedBejelentkezesiNev; belepes.TanevId = TanevId; felhasznaloBelepesDal.Update(belepes); } else if (alkalmazott.FelhasznaloBelepes.All(x => x.Torolt)) { kelleFelhasznaloBelepestLetrehozni = !isSzirIntezmeny; } if (!kelleFelhasznaloBelepestLetrehozni && !string.IsNullOrWhiteSpace(data.Jelszo)) { felhasznaloBelepesHelper.ChangeUserPassword(trimmedBejelentkezesiNev, data.Jelszo); } } } else { if (!data.BetoltetlenAllashely) { kelleFelhasznaloBelepestLetrehozni = !isSzirIntezmeny; } alkalmazott.TanevId = TanevId; alkalmazottDal.Insert(alkalmazott, kellFollowUp && !data.FollowUpolniId.HasValue); if (isActivTanev) { h.Felhasznalo().UpdateProfile(alkalmazott.ID, null); } } if (kelleFelhasznaloBelepestLetrehozni) { var alapertelmezettJelszo = string.IsNullOrWhiteSpace(data.Jelszo) ? $"{alkalmazott.SzuletesiDatum:yyyyMMdd}" : data.Jelszo; if (!string.IsNullOrWhiteSpace(trimmedBejelentkezesiNev)) { felhasznaloBelepesHelper.GrantLogin(alkalmazott.ID, trimmedBejelentkezesiNev, alapertelmezettJelszo); } } var feluletiJogosultsagSzint = data.JogosultsagiSzint ?? new List(); HandleLeltarJogosultsagSync(leltarClient, h, alkalmazott, feluletiJogosultsagSzint, ref isLeltarSyncSuccess); szerepkorDal.RemoveAll(alkalmazott); foreach (var jog in feluletiJogosultsagSzint) { var szerepkor = szerepkorDal.Get(tanarDal.GetSzerepkorId(jog, TanevId)); if (!alkalmazott.Szerepkor.Contains(szerepkor) && szerepkor.SzerepkorTipus != (int)SzerepkorTipusEnum.Ellenorzo) { szerepkorDal.AddAlkalmazottSzerepkor(alkalmazott, szerepkor); } } // munkaügyi adatok var munkaugyi = alkalmazott.MunkaugyiAdatok.FirstOrDefault(x => !x.Torolt); var ujmunkaugyi = false; var isKKOrNSZFH = isKlebelsbergKozpontOrNSZFH ?? false; if (munkaugyi == null) { munkaugyi = munkaugyiAdatDal.Get(); ujmunkaugyi = true; } if (data.MunkaidoKedvezmenyOraszam.HasValue) { munkaugyi.MunkaidoKedvezmenyOraszam = data.MunkaidoKedvezmenyOraszam.Value; } if (!data.MunkaidoKedvezmenyOraszam.HasValue) { munkaugyi.MunkaidoKedvezmenyOraszam = null; } munkaugyi.EgyebTevekenysegekTipusId = data.EgyebTevekenysegekTipusId; munkaugyi.IsInternetetOktCelraHasznal = data.IsInternetetOktCelraHasznal; munkaugyi.IsInformatKepIsmRendelkezik = data.IsInformatKepIsmRendelkezik; munkaugyi.IsIktEszkozoketLgalabb40Hasznal = data.IsIktEszkozoketLgalabb40Hasznal; munkaugyi.Nyugdijas = data.Nyugdijas; if (data.BesorolasiFokozat.HasValue) { munkaugyi.SzakertoMesterpedagogus = data.BesorolasiFokozat.Value == (int)BesorolasiFokozatTipusEnum.mesterpedagogus && data.SzakertoMesterpedagogusKutatotanar; munkaugyi.IsSzakertoKutatotanar = data.BesorolasiFokozat.Value == (int)BesorolasiFokozatTipusEnum.kutatotanar && data.SzakertoMesterpedagogusKutatotanar; } else { munkaugyi.SzakertoMesterpedagogus = false; munkaugyi.IsSzakertoKutatotanar = false; } var munkakor = false; if (data.MunkaKor.HasValue) { if (data.FoglalkoztatasTipusa == (int)FoglalkoztatasTipusaEnum.Oraado && !data.TartosHelyettesites) { munkakor = true; munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.oraado; } else if (!data.TartosHelyettesites) { munkakor = true; } munkaugyi.MunkakorTipusa = (int)data.MunkaKor; } else { munkaugyi.MunkakorTipusa = (int)MunkakorTipusEnum.na; } munkaugyi.IsVezetopedagogus = data.VezetoPedagogusVezetoOvodaPedagogus; munkaugyi.MunkaviszonyTipusa = data.FoglalkoztatasiJogviszony ?? (int)MunkaviszonyTipusEnum.na; if (data.AlkalmazasKezdete.HasValue && data.AlkalmazasVege.HasValue) { if (data.AlkalmazasKezdete <= data.AlkalmazasVege) { munkaugyi.AlkalmazasKezdete = data.AlkalmazasKezdete; munkaugyi.AlkalmazasMegszunese = data.AlkalmazasVege; } else { throw new BlException(ErrorResource.AlkalmazasKezdeteDatumNemLehetNagyobbMintAVege); } } else { munkaugyi.AlkalmazasKezdete = data.AlkalmazasKezdete; munkaugyi.AlkalmazasMegszunese = data.AlkalmazasVege; } munkaugyi.BetoltetlenAllashely = data.BetoltetlenAllashely; munkaugyi.IsKulsoAlkalmazott = data.IsKulsoAlkalmazott; munkaugyi.UtazoGyogypedagogus = data.UtazoGyogypedagogus; munkaugyi.CsokkentettMunkaidos = data.CsokkentettMunkaidos; munkaugyi.TartosHelyettesites = data.TartosHelyettesites; munkaugyi.FoglalkoztatasTipus = data.FoglalkoztatasTipusa; munkaugyi.Attanito = data.Attanito; munkaugyi.AttanitoMasIntezmenynel = data.AttanitoMasIntezmeny; munkaugyi.IsAttanitoSzCnBelul = data.IsAttanitoSzCnBelul; //munkaugyi.Szabadallashely = data.SzabadAllashely; munkaugyi.TanevId = TanevId; munkaugyi.IsOktatoiFeladatok = data.OktatoiFeladatokatIsEllat; munkaugyi.IsOsztalyfonok = data.IsOsztalyfonok; munkaugyi.DualisKepzohelyNeve = data.DualisKepzohelyNeve; munkaugyi.DualisKepzohelyAdoszama = data.DualisKepzohelyAdoszama; if (data.SzervezetId.HasValue) { munkaugyi.SzervezetId = data.SzervezetId.Value; } munkaugyi.IsApaczaiMentor = data.IsApaczaiMentor; if (data.TartosHelyettesites) { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.tartosan_tavollevo; } munkaugyi.MunkaidoKedvezmenyOka = data.MunkaidoKedvezmenyOka; if (data.BesorolasiFokozat.HasValue) { munkaugyi.BesorolasiFokozat = data.BesorolasiFokozat.Value; } else { munkaugyi.BesorolasiFokozat = null; } if (data.VezetoiOraszamOka.HasValue) { munkaugyi.VezetoiOraszamok = data.VezetoiOraszamOka.Value; } if (data.FoglalkoztatasTipusa.HasValue && data.VezetoiOraszamOka.HasValue && (isKKOrNSZFH && (data.FoglalkoztatasTipusa.Value == (int)FoglalkoztatasTipusaEnum.Oraado || data.VezetoiOraszamOka.Value != (int)VezetoiOraszamokTipusEnum.Nincs)) || !isKKOrNSZFH) { if (data.Oraszam.HasValue) { munkaugyi.KotelezoOraszam = data.Oraszam.Value; if (!data.BetoltetlenAllashely) { if (data.Oraszam.Value >= 22 && !munkakor && !data.TartosHelyettesites && (data.BesorolasiFokozat.HasValue && data.BesorolasiFokozat.Value != (int)BesorolasiFokozatTipusEnum.mesterpedagogus)) { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.teljes_munkaidos; } else if (data.Oraszam.Value < 22 && !munkakor && !data.TartosHelyettesites) { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.reszmunkaidos; } } } else if (!data.IsDualisKepzohelyiOktato) { throw new BlException(ErrorResource.AKotelezoOraszamMezoMegadasaKotelezoAMunkaugyiAdatokTabFulon); } } if (data.FoglalkoztatasTipusa.HasValue && isKKOrNSZFH && data.FoglalkoztatasTipusa.Value == (int)FoglalkoztatasTipusaEnum.Reszmunkaidos) { if (data.ReszmunkaidosSzazalek.HasValue) { munkaugyi.ReszmunkaidoSzazalek = data.ReszmunkaidosSzazalek; } else { throw new BlException(ErrorResource.AReszmunkaidoSzazalekMezoMegadasaKotelezoAMunkaugyiAdatokTabFulon); } } // NOTE: Ha van kiválasztva következő tanéves felhely, akkor azzal végezzük el először a mentést, hogy az followup-olódjon // a következő tanéves felhasználóhoz if (data.FeladatellatasiHelyKovTanev.HasValue) { if (data.FeladatellatasiHelyKovTanev != munkaugyi.FeladatEllatasiHelyId) { var feladatellatasiHely = feladatellatasiHelyDal.Get(data.FeladatellatasiHelyKovTanev.Value); munkaugyi.FeladatEllatasiHely = feladatellatasiHely; } } else { if (data.FeladatellatasiHely.IsEntityId() && data.FeladatellatasiHely != munkaugyi.FeladatEllatasiHelyId) { var feladatellatasiHely = feladatellatasiHelyDal.Get(data.FeladatellatasiHely.Value); munkaugyi.FeladatEllatasiHely = feladatellatasiHely; } } if (data.FoglalkoztatasTipusa.HasValue && data.VezetoiOraszamOka.HasValue && data.FoglalkoztatasTipusa.Value != (int)FoglalkoztatasTipusaEnum.Oraado && data.VezetoiOraszamOka.Value == (int)VezetoiOraszamokTipusEnum.Nincs) { munkaugyi.KotelezoOraszam = new SystemSettingsHelper(connectionType).GetSystemSettingValue(RendszerBeallitasTipusEnum.Egy_statuszra_juto_kotelezo_oraszam); } if (ujmunkaugyi) { munkaugyi.Alkalmazott = alkalmazott; munkaugyiAdatDal.Insert(munkaugyi); } else { munkaugyiAdatDal.FullUpdate(munkaugyi); } // Módosításnál az előző értéket nem törölte if (!update) //Csak insert esetén fusson le! { if (!isDualis) { var isUpdateCim = true; var cim = alkalmazott.Cim.FirstOrDefault(x => x.CimTipusa == (int)CimTipusEnum.allando_lakcim && !x.Torolt); if (cim == null) { cim = cimDal.Get(); isUpdateCim = false; cim.FelhasznaloId = alkalmazott.ID; } cim.Ajto = data.Ajto; cim.CimTipusa = (int)CimTipusEnum.allando_lakcim; cim.Emelet = data.Emelet; cim.Hazszam = data.Hazszam; cim.IranyitoSzam = data.Iranyitoszam; cim.Kozterulet = data.KozteruletNeve; cim.KozteruletJellegeNev = data.KozteruletJellegeNev ?? KozteruletJellegEnum.na.GetDisplayName(TanevId); cim.Orszag = data.Orszag ?? (int)OrszagTipusEnum.Magyarorszag; cim.Varos = data.HelysegNeve; cim.TanevId = TanevId; cim.Alapertelmezett = data.AlapertelmezettCim; if (isUpdateCim) { cimDal.Update(cim); } else { cimDal.Insert(cim); cimDal.AddFelhasznaloCim(alkalmazott, cim); } } if (!alkalmazott.Email.Any(x => !x.Torolt && !x.IsPublic) && data.Email != null) { var email = emailDal.Get(); email.EmailCim = data.Email; email.EmailTipusa = data.EmailTipus ?? (int)EmailTipusEnum.Hivatalos; email.TanevId = TanevId; email.Alapertelmezett = true; email.IsPublic = false; emailDal.Insert(email); emailDal.AddFelhasznaloEmail(alkalmazott, email); } else if (alkalmazott.Email.Any(x => x.Alapertelmezett && !x.Torolt && !x.IsPublic) && update) { var email = alkalmazott.Email.First(x => x.Alapertelmezett && !x.Torolt && !x.IsPublic); if (!email.EmailCim.Equals(data.Email)) { if (!string.IsNullOrWhiteSpace(data.Email)) { email.EmailCim = data.Email; emailDal.Update(email); } } } var needDeleteAlapertelmezettTelefon = false; if (!string.IsNullOrWhiteSpace(data.Telefon) && !update) { var telefon = telefonDal.Get(); telefon.Alapertelmezett = true; telefon.FelhasznaloId = alkalmazott.ID; telefon.TelefonSzam = data.Telefon; telefon.TelefonTipusa = data.TelefonTipus.Value; telefon.TanevId = TanevId; telefon.IsPublic = false; telefonDal.Insert(telefon); telefonDal.AddFelhasznaloTelefon(alkalmazott, telefon); } else if (string.IsNullOrWhiteSpace(data.Telefon) && update) { var telefon = alkalmazott.Telefon.FirstOrDefault(x => x.Alapertelmezett && !x.Torolt && !x.IsPublic); if (telefon != null && telefon.ID > 0) { telefonDal.Delete(telefon.ID); } var telefon2 = alkalmazott.Telefon.FirstOrDefault(x => !x.Alapertelmezett && !x.Torolt && !x.IsPublic); if (telefon2 != null && !string.IsNullOrWhiteSpace(data.Telefon2)) { needDeleteAlapertelmezettTelefon = true; telefon2.TelefonSzam = data.Telefon2; telefon2.TelefonTipusa = data.TelefonTipus2.Value; telefon2.Alapertelmezett = true; telefonDal.Update(telefon2); } } else if (alkalmazott.Telefon.Any(x => x.Alapertelmezett && !x.Torolt && !x.IsPublic) && update) { var telefon = alkalmazott.Telefon.First(x => x.Alapertelmezett && !x.Torolt && !x.IsPublic); telefon.TelefonSzam = data.Telefon; telefon.TelefonTipusa = data.TelefonTipus.Value; telefonDal.Update(telefon); } else if (!alkalmazott.Telefon.Any(x => x.Alapertelmezett && !x.Torolt && !x.IsPublic) && !string.IsNullOrWhiteSpace(data.Telefon)) { var telefon = telefonDal.Get(); telefon.Alapertelmezett = true; telefon.FelhasznaloId = alkalmazott.ID; telefon.TelefonSzam = data.Telefon; telefon.TelefonTipusa = data.TelefonTipus.Value; telefon.TanevId = TanevId; telefon.IsPublic = false; telefonDal.Insert(telefon); telefonDal.AddFelhasznaloTelefon(alkalmazott, telefon); } if (!needDeleteAlapertelmezettTelefon) { if (!string.IsNullOrWhiteSpace(data.Telefon2) && !update) { var telefon2 = telefonDal.Get(); telefon2.Alapertelmezett = false; telefon2.FelhasznaloId = alkalmazott.ID; telefon2.TelefonSzam = data.Telefon2; telefon2.TelefonTipusa = data.TelefonTipus2.Value; telefon2.TanevId = TanevId; telefon2.IsPublic = false; telefonDal.Insert(telefon2); telefonDal.AddFelhasznaloTelefon(alkalmazott, telefon2); } else if (string.IsNullOrWhiteSpace(data.Telefon2) && update) { var telefon = alkalmazott.Telefon.FirstOrDefault(x => !x.Alapertelmezett && !x.Torolt && !x.IsPublic); if (telefon != null && telefon.ID > 0) { telefonDal.Delete(telefon.ID); } } else if (alkalmazott.Telefon.Any(x => !x.Alapertelmezett && !x.Torolt && !x.IsPublic) && update) { var telefon = alkalmazott.Telefon.First(x => !x.Alapertelmezett && !x.Torolt && !x.IsPublic); telefon.TelefonSzam = data.Telefon2; telefon.TelefonTipusa = data.TelefonTipus2.Value; telefonDal.Update(telefon); } else if (!alkalmazott.Telefon.Any(x => !x.Alapertelmezett && !x.Torolt && !x.IsPublic) && !string.IsNullOrWhiteSpace(data.Telefon2)) { var telefon2 = telefonDal.Get(); telefon2.Alapertelmezett = !alkalmazott.Telefon.Any(x => x.Alapertelmezett && !x.Torolt && !x.IsPublic); telefon2.FelhasznaloId = alkalmazott.ID; telefon2.TelefonSzam = data.Telefon2; telefon2.TelefonTipusa = data.TelefonTipus2.Value; telefon2.TanevId = TanevId; telefon2.IsPublic = false; telefonDal.Insert(telefon2); telefonDal.AddFelhasznaloTelefon(alkalmazott, telefon2); } } } alkalmazottDal.Update(alkalmazott, !data.FollowUpolniId.HasValue); // NOTE: ha van következő tanéves felhely be van állítva, akkor az aktív éves felhelyet visszaírjuk úgy, hogy ne followup- // olódjon if (data.FeladatellatasiHelyKovTanev.IsEntityId() && data.FeladatellatasiHely.IsEntityId()) { var feladatellatasiHely = feladatellatasiHelyDal.Get(data.FeladatellatasiHely.Value); alkalmazott = alkalmazottDal.Get(alkalmazott.ID); alkalmazott.MunkaugyiAdatok.First(x => !x.Torolt).FeladatEllatasiHely = feladatellatasiHely; alkalmazottDal.Update(alkalmazott, false); } if (data.FollowUpolniId.HasValue) { felhasznaloDal.OktAzon4TAlapjanFollowUp((int)Validation4TEnum.Alkalmazott, alkalmazott.ID, data.FollowUpolniId.Value); } // TODO: Ez KRETA2-12005 task-nak a hotfix-e. // Ezt az egész részt refaktorizálni kell, mert akár 3-szor is update-elünk és/vagy FollowUp-olunk egy alkalmazott mentésekor. alkalmazottDal.FollowUpById(alkalmazott.ID); } catch (UniqueKeyViolationException) { throw new UniqueKeyViolationException(ErrorResource.AMegadottOktatasiAzonositoVagyFelhasznalonevMarLetezik); } }); return isLeltarSyncSuccess; } private void HandleLeltarJogosultsagSync(ILeltarClient leltarClient, IDalHandler dalHandler, IAlkalmazott alkalmazott, List feluletiJogosultsagSzint, ref bool isLeltarSyncSuccess) { var leltarConcernedId = (int)SzerepkorTipusEnum.LeltarConcerned; var alkalmazottSzerepkorIds = alkalmazott.Szerepkor.Select(sz => sz.SzerepkorTipus.Value); var isLeltarSyncNeeded = alkalmazottSzerepkorIds.Difference(feluletiJogosultsagSzint).Contains(leltarConcernedId); if (isLeltarSyncNeeded) { var isLeltarSzerepkorDelete = alkalmazottSzerepkorIds.Contains(leltarConcernedId); var request = CreateLeltarKretaUserSyncRequest(dalHandler, alkalmazott, isLeltarSzerepkorDelete); var leltarSyncResult = leltarClient.KretaUserSync(request); isLeltarSyncSuccess = leltarSyncResult; // Ha nem sikerült a szinkron leltár oldalon, if (!leltarSyncResult) { // és töröltük volna a jogosultságot, if (isLeltarSzerepkorDelete) { // akkor hozzáadjuk a felületről érkezőekhez. feluletiJogosultsagSzint.Add(leltarConcernedId); } // és felvettük volna a jogosultságot, else { // akkor elvesszük a felületről érkezőekhez. feluletiJogosultsagSzint.Remove(leltarConcernedId); } } } } private KretaUserSyncRequest CreateLeltarKretaUserSyncRequest(IDalHandler dalHandler, IAlkalmazott alkalmazott, bool isLeltarSzerepkorDelete) { var roles = isLeltarSzerepkorDelete ? new string[] { } : new string[] { "LELTAR_CONCERNED" }; var intezmenyNev = dalHandler.IntezmenyDal().GetIntezmenyNevById(IntezmenyId, TanevId); var jogosultsagotSzerkesztoSzemelyNev = dalHandler.Felhasznalo().Get(FelhasznaloId).NyomtatasiNev; var munkaugyiAdatok = alkalmazott.MunkaugyiAdatok.Single(ma => !ma.Torolt); var funkcioTerulet = dalHandler.FeladatEllatasiHelyDal().Get(munkaugyiAdatok.FeladatEllatasiHelyId).MukodesiHely.Funkcioterulet; return new KretaUserSyncRequest { IdpEgyediAzonosito = alkalmazott.IdpEgyediAzonosito.ToString(), Roles = roles, LoginNev = SetLeltarRequestNaParameter(alkalmazott.FelhasznaloBelepes.SingleOrDefault(b => !b.Torolt)?.BejelentkezesiNev), Azonosito = SetLeltarRequestNaParameter(alkalmazott.AdoazonositoJel), MegjelenitesiNev = alkalmazott.NyomtatasiNev, Beosztas = munkaugyiAdatok.MunkakorTipusa.Value.GetDisplayName(TanevId), IntezmenyNeve = intezmenyNev, FunkcioTerulet = SetLeltarRequestNaParameter(funkcioTerulet), SztszKod = SetLeltarRequestNaParameter(alkalmazott.SZTSZKod), KretaRendszerAzonosito = IntezmenyAzonosito, JogosultsagotSzerkesztoSzemelyNev = jogosultsagotSzerkesztoSzemelyNev }; } private string SetLeltarRequestNaParameter(string parameter) { const string NA = nameof(NA); return !string.IsNullOrWhiteSpace(parameter) ? parameter : NA; } public IDictionary GetTanarok(string baseText = null, bool oktatasiAzonositoval = false, bool isForMentor = false, bool isCsoportnelkuli = false, int? aktualisCsoportvezetoId = null) { return Dal.CustomConnection.Run(ConnectionType, h => { return LogicUtil.CreateDropdownContent(h.TanarDal().GetTanarokForDDL(oktatasiAzonositoval, TanevId, isForMentor, isCsoportnelkuli, aktualisCsoportvezetoId), "ID", "Nev", baseText, sort: false); }); } public IDictionary GetTeachersNameList(bool kellKeremValasszon = true, bool oktatasiAzonositoval = false) { return Dal.CustomConnection.Run(ConnectionType, h => { var result = LogicUtil.CreateDropdownContent(h.TanarDal().GetTeacherNames(oktatasiAzonositoval: oktatasiAzonositoval), "ID", "Nev", null, false); //Kérem válasszon... if (!kellKeremValasszon) { result.Remove(""); } return result; }); } public IDictionary GetAlkalmazottNevek(bool oktatasiAzonositoval = false, bool isFromSzervezet = false, int? szervezetId = null, int? szervezetekHalmaza = null) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(); return LogicUtil.CreateDropdownContent(dal.GetAlkalmazottNames(TanevId, IntezmenyId, oktatasiAzonositoval, isFromSzervezet, szervezetId, szervezetekHalmaza), "ID", "Nev", null, false); }); } public IDictionary GetTanarNevek(string baseText = "", bool oktatasiAzonositoval = false, bool csakNaploJogkorrel = false) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(); return LogicUtil.CreateDropdownContent(dal.GetTeacherNames(oktatasiAzonositoval: oktatasiAzonositoval, tanevId: TanevId, csakNaploJogkorrel: csakNaploJogkorrel), "ID", "Nev", baseText, false); }); } public IDictionary GetTanarokByTanitottOsztaly(int osztalyId, string baseText = null, bool oktatasiAzonositoval = false) { return Dal.CustomConnection.Run(ConnectionType, h => { return LogicUtil.CreateDropdownContent(h.TanarDal().GetTanarokByTanitottOsztalyForDDL(osztalyId, TanevId, oktatasiAzonositoval), "ID", "Nev", baseText, false); }); } public DataSet GetTanulotTanitoTanarok(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetTanulotTanitoTanarok(id); }); } public List GetTanarErtekelesCoList(int id) { DataSet dataSet = GetTanarErtekeles(id); SetOsztalyzatText(dataSet); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new AlkalmazottErtekelesItemCo(dataRow); result.Add(item); } return result; } private DataSet GetTanarErtekeles(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetTeacherRating(id); }); } public List GetMegtartottTanoraCoList(int id) { DataSet dataSet = GetMegtartottOrak(id); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new AlkalmazottMegtartottTanoraItemCo(dataRow); result.Add(item); } return result; } private DataSet GetMegtartottOrak(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetHeldSubject(id); }); } public List GetTanarTanmenetCoList(int id) { DataSet dataSet = GetTanarTanmenet(id); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new AlkalmazottTanmenetItemCo(dataRow); result.Add(item); } return result; } private DataSet GetTanarTanmenet(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetTeacherSyllabus(id); }); } public List GetTeacherSubjectsHoursCoList(int id) { DataSet dataSet = GetTeacherSubjectsHours(id); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new AlkalmazottOrarendiOrakItemCo(dataRow); result.Add(item); } return result; } private DataSet GetTeacherSubjectsHours(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetTimeTableSubjects(id); }); } public List GetTeacherRoutinesCoList(int id) { DataSet dataSet = GetTeacherRoutines(id); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new AlkalmazottFoglalkozasItemCo(dataRow); result.Add(item); } return result; } private DataSet GetTeacherRoutines(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetTeacherRoutines(id); }); } public List GetTeacherAddressDataCoList(int id) { DataSet dataSet = GetTeacherAddressData(id); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new AlkalmazottElerhetosegCimItemCo(dataRow); result.Add(item); } return result; } private DataSet GetTeacherAddressData(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetTeacherAddressData(id); }); } public List GetTeacherEmailsCoList(int id) { DataSet dataSet = GetTeacherEmails(id); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new AlkalmazottElerhetosegEmailItemCo(dataRow); result.Add(item); } return result; } private DataSet GetTeacherEmails(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetTeacherEmails(id); }); } public List GetTeacherPhonesCoList(int id) { DataSet dataSet = GetTeacherPhones(id); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new AlkalmazottElerhetosegTelefonItemCo(dataRow); result.Add(item); } return result; } private DataSet GetTeacherPhones(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetTeacherPhones(id); }); } private double BukasAtlag(IDalHandler h) { return new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue(RendszerBeallitasTipusEnum.Bukas_Veszelyre_Figyelmeztetes_Hatara); } public DataSet GetTanarTanulok(int? foglalkozasId, int? foglalkozasTipus, bool csakBukasraAllok, int? feladatKategoriaId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetTeacherStudents(FelhasznaloId, TanevId, foglalkozasId, foglalkozasTipus, BukasAtlag(h), csakBukasraAllok, feladatKategoriaId); }); } public DataSet GetTanarNemTanitottTanulok(int? osztalyCsoportID) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetTeacherNonStudents(FelhasznaloId, IntezmenyId, TanevId, osztalyCsoportID); }); } public List GetPedagogusEletpalyamodellCoList(int id) { DataSet dataSet = GetPedagogusEletpalyaModell(id); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new AlkalmazottPedagogusEletpalyamodellItemCo(dataRow); result.Add(item); } return result; } private DataSet GetPedagogusEletpalyaModell(int tanarId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(GridParameters); return dal.GetPedagogusEletpalyamodell(tanarId); }); } public List GetVegzettsegCoLst(int tanarId) { var ds = Dal.CustomConnection.Run(ConnectionType, h => h.TanarDal().GetVegzettseg(tanarId, TanevId)); var result = new List(); foreach (var dataRow in ds.Tables[0].AsEnumerable()) { result.Add(new VegzettsegItemCo(dataRow)); } return result; } public List GetEszkozokCoList(int id) { DataSet dataSet = GetAlkalmazottEszkozei(id); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var item = new AlkalmazottEszkozItemCo(dataRow); result.Add(item); } return result; } private DataSet GetAlkalmazottEszkozei(int userId) { return Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.Alkalmazott(GridParameters); return dal.GetAlkalmazottEszkozei(userId, TanevId, IntezmenyId); }); } /// INFO @DevKornel: Mobil használja public TanarAdatCO GetTanarAdatok(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var oTanar = h.Alkalmazott().Get(id); var tanarCo = new TanarAdatCO { Id = id }; var oCim = oTanar.Cim.FirstOrDefault(X => X.CimTipusa == (int)CimTipusEnum.allando_lakcim && !X.Torolt); if (oCim != null) { tanarCo.Ajto = oCim.Ajto; tanarCo.Emelet = oCim.Emelet; tanarCo.Hazszam = oCim.Hazszam; tanarCo.Iranyitoszam = oCim.IranyitoSzam; tanarCo.KozteruletJellegeNev = oCim.KozteruletJellegeNev; tanarCo.KozteruletNeve = oCim.Kozterulet; tanarCo.HelysegNeve = oCim.Varos; tanarCo.Orszag = oCim.Orszag; tanarCo.AlapertelmezettCim = oCim.Alapertelmezett; } var tanarMunkaugyiAdatok = oTanar.MunkaugyiAdatok.FirstOrDefault(x => !x.Torolt); if (tanarMunkaugyiAdatok != null) { tanarCo.AlkalmazasKezdete = tanarMunkaugyiAdatok.AlkalmazasKezdete; tanarCo.AlkalmazasVege = tanarMunkaugyiAdatok.AlkalmazasMegszunese; tanarCo.FeladatellatasiHely = tanarMunkaugyiAdatok.FeladatEllatasiHelyId; tanarCo.FoglalkoztatasiJogviszony = tanarMunkaugyiAdatok.MunkaviszonyTipusa; tanarCo.Oraszam = tanarMunkaugyiAdatok.KotelezoOraszam; if (tanarMunkaugyiAdatok.MunkaidoKedvezmenyOraszam != null) { tanarCo.MunkaidoKedvezmenyOraszam = tanarMunkaugyiAdatok.MunkaidoKedvezmenyOraszam; } tanarCo.MunkaKor = tanarMunkaugyiAdatok.MunkakorTipusa; tanarCo.MunkaidoKedvezmenyOraszam = tanarMunkaugyiAdatok.MunkaidoKedvezmenyOraszam; tanarCo.VezetoiOraszamOka = tanarMunkaugyiAdatok.VezetoiOraszamok; tanarCo.ReszmunkaidosSzazalek = tanarMunkaugyiAdatok.ReszmunkaidoSzazalek; tanarCo.Foallasu = oTanar.Foallas; tanarCo.SzakertoMesterpedagogus = tanarMunkaugyiAdatok.SzakertoMesterpedagogus; tanarCo.IsSzakertoKutatotanar = tanarMunkaugyiAdatok.IsSzakertoKutatotanar; tanarCo.SzakertoMesterpedagogusKutatotanar = tanarMunkaugyiAdatok.SzakertoMesterpedagogus || tanarMunkaugyiAdatok.IsSzakertoKutatotanar; tanarCo.VezetoPedagogusVezetoOvodaPedagogus = tanarMunkaugyiAdatok.IsVezetopedagogus; tanarCo.BetoltetlenAllashely = tanarMunkaugyiAdatok.BetoltetlenAllashely; tanarCo.IsKulsoAlkalmazott = tanarMunkaugyiAdatok.IsKulsoAlkalmazott; //tanarCo.SzabadAllashely = tanarMunkaugyiAdatok.Szabadallashely; tanarCo.TartosHelyettesites = tanarMunkaugyiAdatok.TartosHelyettesites; tanarCo.Nyugdijas = tanarMunkaugyiAdatok.Nyugdijas; tanarCo.FoglalkoztatasTipusa = tanarMunkaugyiAdatok.FoglalkoztatasTipus; tanarCo.UtazoGyogypedagogus = tanarMunkaugyiAdatok.UtazoGyogypedagogus; tanarCo.CsokkentettMunkaidos = tanarMunkaugyiAdatok.CsokkentettMunkaidos; tanarCo.Attanito = tanarMunkaugyiAdatok.Attanito; tanarCo.AttanitoMasIntezmeny = tanarMunkaugyiAdatok.AttanitoMasIntezmenynel; tanarCo.IsAttanitoSzCnBelul = tanarMunkaugyiAdatok.IsAttanitoSzCnBelul; tanarCo.EgyebTevekenysegekTipusId = tanarMunkaugyiAdatok.EgyebTevekenysegekTipusId; tanarCo.IsOsztalyfonok = tanarMunkaugyiAdatok.IsOsztalyfonok; tanarCo.IsInternetetOktCelraHasznal = tanarMunkaugyiAdatok.IsInternetetOktCelraHasznal; tanarCo.IsInformatKepIsmRendelkezik = tanarMunkaugyiAdatok.IsInformatKepIsmRendelkezik; tanarCo.IsIktEszkozoketLgalabb40Hasznal = tanarMunkaugyiAdatok.IsIktEszkozoketLgalabb40Hasznal; /*if (!tanarMunkaugyiAdatok.PedagogusStatuszaIsNull) { tanarCO.PedagogusStatusza = tanarMunkaugyiAdatok.PedagogusStatusza; }*/ if (tanarMunkaugyiAdatok.BesorolasiFokozat != null) { tanarCo.BesorolasiFokozat = tanarMunkaugyiAdatok.BesorolasiFokozat; } else { tanarCo.BesorolasiFokozat = (int)BesorolasiFokozatTipusEnum.na; } if (tanarMunkaugyiAdatok.SzervezetId.IsEntityId()) { tanarCo.DualisKepzohelyNeve = tanarMunkaugyiAdatok.Szervezet.Nev; tanarCo.DualisKepzohelyAdoszama = tanarMunkaugyiAdatok.Szervezet.Azonosito; tanarCo.SzervezetId = tanarMunkaugyiAdatok.SzervezetId; } else { if (!string.IsNullOrWhiteSpace(tanarMunkaugyiAdatok.DualisKepzohelyNeve) && !string.IsNullOrWhiteSpace(tanarMunkaugyiAdatok.DualisKepzohelyAdoszama)) { var szervezetId = h.SzervezetDal().GetSzervezetIdNevAzonosito(TanevId, tanarMunkaugyiAdatok.DualisKepzohelyNeve, tanarMunkaugyiAdatok.DualisKepzohelyAdoszama); tanarCo.DualisKepzohelyNeve = tanarMunkaugyiAdatok.DualisKepzohelyNeve; tanarCo.DualisKepzohelyAdoszama = tanarMunkaugyiAdatok.DualisKepzohelyAdoszama; tanarCo.SzervezetId = szervezetId; } else { tanarCo.DualisKepzohelyNeve = tanarMunkaugyiAdatok.SzervezetId.IsEntityId() ? tanarMunkaugyiAdatok.Szervezet.Nev : tanarMunkaugyiAdatok.DualisKepzohelyNeve; tanarCo.DualisKepzohelyAdoszama = tanarMunkaugyiAdatok.SzervezetId.IsEntityId() ? tanarMunkaugyiAdatok.Szervezet.Azonosito : tanarMunkaugyiAdatok.DualisKepzohelyAdoszama; } } tanarCo.MunkaidoKedvezmenyOka = tanarMunkaugyiAdatok.MunkaidoKedvezmenyOka; tanarCo.OktatoiFeladatokatIsEllat = tanarMunkaugyiAdatok.IsOktatoiFeladatok; tanarCo.IsApaczaiMentor = tanarMunkaugyiAdatok.IsApaczaiMentor; tanarCo.IsNyugdijas = tanarMunkaugyiAdatok.IsNyugdijas; tanarCo.NyugdijKezdet = tanarMunkaugyiAdatok.NyugdijKezdet; tanarCo.NyugdijTipusId = tanarMunkaugyiAdatok.NyugdijTipus; tanarCo.MunkaugyiAdatId = tanarMunkaugyiAdatok.ID; } tanarCo.Megjegyzes = oTanar.Megjegyzes; tanarCo.AdoazonositoJel = oTanar.AdoazonositoJel; tanarCo.TajSzam = oTanar.TAJSzam; tanarCo.AnyjaNeveSorrend = oTanar.AnyjaNeveSorrend; tanarCo.AnyjaNeveElotag = oTanar.AnyjaNeveElotag; tanarCo.AnyjaCsaladiNeve = !oTanar.AnyjaNeveSorrend ? oTanar.AnyjaVezetekneve.ReplaceMultipleSpacesAndTrim() : oTanar.AnyjaUtoneve.ReplaceMultipleSpacesAndTrim(); tanarCo.AnyjaUtoneve = !oTanar.AnyjaNeveSorrend ? oTanar.AnyjaUtoneve.ReplaceMultipleSpacesAndTrim() : oTanar.AnyjaVezetekneve.ReplaceMultipleSpacesAndTrim(); tanarCo.Azonosito = oTanar.FelhasznaloBelepes.Where(x => !x.Torolt).ToList().Count > 0 ? oTanar.FelhasznaloBelepes.Single(x => !x.Torolt).BejelentkezesiNev : string.Empty; tanarCo.Elotag = oTanar.Elotag; tanarCo.Szakvizsga = oTanar.Szakvizsga; tanarCo.SzakertoiVagyVizsgaelnokiTevekenysegu = oTanar.SzakertoiVizsgaelnoki; tanarCo.SzakmaiTovabbkepzes = oTanar.Tovabbkepzes; tanarCo.HasEfopEszkoz = oTanar.HasEfopEszkoz; var osszesMunkaugyiAdatList = oTanar.MunkaugyiAdatok.Where(x => x.Torolt == false).Select(x => x.AlkalmazasMegszunese).ToList(); osszesMunkaugyiAdatList.AddRange(oTanar.TovabbiMunkaugyiAdatok.Where(x => x.Torolt == false).Select(x => x.AlkalmazasMegszunese).ToList()); tanarCo.ActiveStatusz = osszesMunkaugyiAdatList.Any(x => x == null || x > DateTime.Now); if (oTanar.Email.Count > 0) { var email = oTanar.Email.FirstOrDefault(x => !x.Torolt && !x.IsPublic); tanarCo.Email = email?.EmailCim; } tanarCo.IgazolvanySzam = oTanar.IgazolvanySzam; tanarCo.IgazolvanyTipus = oTanar.IgazolvanyTipusa; if (oTanar.Szerepkor.Count > 0) { tanarCo.JogosultsagiSzint = oTanar.Szerepkor.Select(x => x.SzerepkorTipus.Value).ToList(); } tanarCo.Elotag = oTanar.Elotag; tanarCo.MunkavallaloCsaladiNev = oTanar.Vezeteknev; tanarCo.MunkavallaloUtonev = oTanar.Utonev; tanarCo.Nem = oTanar.Neme; tanarCo.OktatasiAzonosito = oTanar.OktatasiAzonosito; tanarCo.IsOktatasiAzonositoNelkul = oTanar.IsOktAzonNelkul; tanarCo.OMKod = oTanar.OMKod; tanarCo.SzuletesiHely = oTanar.SzuletesiHely; tanarCo.SzuletesiOrszag = oTanar.SzuletesiOrszag; tanarCo.SzuletesiIdo = oTanar.SzuletesiDatum; tanarCo.Allampolgarsag = oTanar.Allampolgarsaga; tanarCo.Allampolgarsag2 = oTanar.Allampolgarsaga2; tanarCo.SzuletesiNevSorrend = oTanar.SzuletesiNevSorrend; tanarCo.SzuletesiCsaladiNev = !oTanar.SzuletesiNevSorrend ? oTanar.SzuletesiVezeteknev.ReplaceMultipleSpacesAndTrim() : oTanar.SzuletesiUtonev.ReplaceMultipleSpacesAndTrim(); tanarCo.SzuletesiUtonev = !oTanar.SzuletesiNevSorrend ? oTanar.SzuletesiUtonev.ReplaceMultipleSpacesAndTrim() : oTanar.SzuletesiVezeteknev.ReplaceMultipleSpacesAndTrim(); tanarCo.SzuletesiNevElotag = oTanar.SzuletesiNevElotag; tanarCo.NyomtatasiNev = oTanar.NyomtatasiNev; if (oTanar.Telefon.Count > 0) { var tAlap = oTanar.Telefon.FirstOrDefault(x => x.Alapertelmezett && !x.Torolt && !x.IsPublic); tanarCo.Telefon = tAlap?.TelefonSzam; tanarCo.TelefonTipus = tAlap != null ? tAlap.TelefonTipusa : (int)TelefonTipusEnum.Ismeretlen; var tMasodik = oTanar.Telefon.FirstOrDefault(x => !x.Alapertelmezett && !x.Torolt && !x.IsPublic); tanarCo.Telefon2 = tMasodik?.TelefonSzam; tanarCo.TelefonTipus2 = tMasodik != null ? tMasodik.TelefonTipusa : (int)TelefonTipusEnum.Ismeretlen; } tanarCo.Anyanyelve = oTanar.Anyanyelve; var temp = oTanar.FelhasznaloBelepes.FirstOrDefault(b => !b.Torolt); if (temp != null) { tanarCo.BelepesiNev = temp.BejelentkezesiNev; } tanarCo.DiakolimpiaiJog = oTanar.Diakolimpia; tanarCo.KozossegiSzolgalatKezelo = oTanar.KozossegiSzolgalatKezelo; tanarCo.LEPModulKezelo = oTanar.LepKezelo; tanarCo.SZTSZKod = oTanar.SZTSZKod; tanarCo.SZTSZKod2 = oTanar.SZTSZKod2; tanarCo.AllandoHelyettesitesre = oTanar.AllandoHelyettesitesre ?? false; tanarCo.IsHrKezelo = oTanar.IsHrKezelo; tanarCo.IsKuldhetoPedMinositesSzRnek = oTanar.IsKuldhetoPedMinositesSzRnek; tanarCo.IsSzakiranyuOktatasertFelelos = oTanar.IsSzakOktatasertFelelos; tanarCo.IsDualisKepzohelyiOktato = oTanar.IsDualisKepzohelyiOktato; tanarCo.IsKozpontilagSzinkronizalt = oTanar.IsKozpontilagSzinkronizalt; tanarCo.BankszamlaSzam = oTanar.Bankszamlaszam; tanarCo.BankszamlaTulajdonos = oTanar.BankszamlaTulajdonosTipus; tanarCo.BankszamlaTulajdonosNeve = oTanar.BankszamlatulajNeve; tanarCo.SzamlavezetoBank = h.Felhasznalo().GetBankszamlaVezetoBankNeve(IntezmenyAzonosito, oTanar.Bankszamlaszam); return tanarCo; }); } public DataRow GetProfil(Guid? userIdpUniqueId = null) { return Dal.CustomConnection.Run(ConnectionType, h => { var tanarProfilDataSet = h.TanarDal().GetProfil(FelhasznaloId, TanevId, userIdpUniqueId); if (tanarProfilDataSet.Tables[0].Rows.Count < 1) { throw new BlException(BlExceptionType.NemLetezoEntitas); } return tanarProfilDataSet.Tables[0].Rows[0]; }); } public KirTanarAdatCo GetTanarAdatokForKir(int id) { return Dal.CustomConnection.Run(ConnectionType, h => { var oTanar = h.Alkalmazott().Get(id); return KirTanarAdatCo.EntityToCo(oTanar); }); } public void UpdateTeacherFromKir(KirTanarAdatCo kirTanarAdatCo) { Dal.CustomConnection.Run(ConnectionType, h => { try { var dal = h.Alkalmazott(); var alkalmazott = dal.Get(kirTanarAdatCo.Id.Value); alkalmazott.OktatasiAzonosito = kirTanarAdatCo.OktatasiAzonosito; alkalmazott.Neme = (int)kirTanarAdatCo.Nem; alkalmazott.NevSorrend = kirTanarAdatCo.NevSorrend; alkalmazott.Elotag = Extensions.NameExtensions.CleanElotag(kirTanarAdatCo.Elotag); alkalmazott.Utonev = kirTanarAdatCo.MunkavallaloUtonev; alkalmazott.Vezeteknev = kirTanarAdatCo.MunkavallaloCsaladiNev; alkalmazott.NyomtatasiNev = Extensions.NameExtensions.GetNevSorrendben("F", alkalmazott.Elotag, alkalmazott.Vezeteknev, alkalmazott.Utonev); alkalmazott.KeresesiNev = CommonUtilsDal.KopaszNev(alkalmazott.NyomtatasiNev); alkalmazott.SzuletesiNevSorrend = kirTanarAdatCo.SzuletesiNevSorrend; alkalmazott.SzuletesiVezeteknev = !kirTanarAdatCo.SzuletesiNevSorrend ? kirTanarAdatCo.SzuletesiCsaladiNev.ReplaceMultipleSpacesAndTrim() : kirTanarAdatCo.SzuletesiUtonev.ReplaceMultipleSpacesAndTrim(); alkalmazott.SzuletesiUtonev = !kirTanarAdatCo.SzuletesiNevSorrend ? kirTanarAdatCo.SzuletesiUtonev.ReplaceMultipleSpacesAndTrim() : kirTanarAdatCo.SzuletesiCsaladiNev.ReplaceMultipleSpacesAndTrim(); alkalmazott.SzuletesiNev = Extensions.NameExtensions.GetNevSorrendben("F", alkalmazott.SzuletesiNevElotag, alkalmazott.SzuletesiVezeteknev, alkalmazott.SzuletesiUtonev); alkalmazott.AnyjaNeveSorrend = kirTanarAdatCo.AnyjaNeveSorrend; alkalmazott.AnyjaVezetekneve = !kirTanarAdatCo.AnyjaNeveSorrend ? kirTanarAdatCo.AnyjaCsaladiNeve.ReplaceMultipleSpacesAndTrim() : kirTanarAdatCo.AnyjaUtoneve.ReplaceMultipleSpacesAndTrim(); alkalmazott.AnyjaUtoneve = !kirTanarAdatCo.AnyjaNeveSorrend ? kirTanarAdatCo.AnyjaUtoneve.ReplaceMultipleSpacesAndTrim() : kirTanarAdatCo.AnyjaCsaladiNeve.ReplaceMultipleSpacesAndTrim(); alkalmazott.AnyjaNeve = Extensions.NameExtensions.GetNevSorrendben("F", alkalmazott.AnyjaNeveElotag, alkalmazott.AnyjaVezetekneve, alkalmazott.AnyjaUtoneve); if (kirTanarAdatCo.SzuletesiIdo.HasValue) { alkalmazott.SzuletesiDatum = kirTanarAdatCo.SzuletesiIdo.Value; } alkalmazott.SzuletesiHely = kirTanarAdatCo.SzuletesiHely; alkalmazott.SzuletesiOrszag = kirTanarAdatCo.SzuletesiOrszag.Value; alkalmazott.Allampolgarsaga = kirTanarAdatCo.Allampolgarsag.Value; alkalmazott.Allampolgarsaga2 = kirTanarAdatCo.Allampolgarsag2.Value; dal.Update(alkalmazott); var munkaugyi = alkalmazott.MunkaugyiAdatok.FirstOrDefault(x => !x.Torolt); if (kirTanarAdatCo.AlkalmazasKezdete.HasValue && kirTanarAdatCo.AlkalmazasVege.HasValue) { if (kirTanarAdatCo.AlkalmazasKezdete < kirTanarAdatCo.AlkalmazasVege) { munkaugyi.AlkalmazasKezdete = kirTanarAdatCo.AlkalmazasKezdete; munkaugyi.AlkalmazasMegszunese = kirTanarAdatCo.AlkalmazasVege; } else { throw new BlException(ErrorResource.AlkalmazasKezdeteDatumNemLehetNagyobbMintAVege); } } else { munkaugyi.AlkalmazasKezdete = kirTanarAdatCo.AlkalmazasKezdete; munkaugyi.AlkalmazasMegszunese = kirTanarAdatCo.AlkalmazasVege; } munkaugyi.FoglalkoztatasTipus = kirTanarAdatCo.FoglalkoztatasTipusa; munkaugyi.TanevId = TanevId; h.AlkalmazottMunkaugyiAdatokDal().FullUpdate(munkaugyi); dal.Update(alkalmazott); } catch (UniqueKeyViolationException) { throw new UniqueKeyViolationException(ErrorResource.AMegadottOktatasiAzonositoVagyFelhasznalonevMarLetezik); } }); } public int InsertTeacherFromKir(KirTanarAdatCo kirTanarAdatCo, bool kellFollowUp = true) { return Dal.CustomConnection.Run(ConnectionType, h => { try { var dal = h.Alkalmazott(); var alkalmazott = dal.Get(); alkalmazott.OktatasiAzonosito = kirTanarAdatCo.OktatasiAzonosito; alkalmazott.Neme = (int)kirTanarAdatCo.Nem; alkalmazott.NevSorrend = kirTanarAdatCo.NevSorrend; alkalmazott.Elotag = Extensions.NameExtensions.CleanElotag(kirTanarAdatCo.Elotag); alkalmazott.Vezeteknev = kirTanarAdatCo.MunkavallaloCsaladiNev; alkalmazott.Utonev = kirTanarAdatCo.MunkavallaloUtonev; alkalmazott.NyomtatasiNev = Extensions.NameExtensions.GetNevSorrendben("F", alkalmazott.Elotag, alkalmazott.Vezeteknev, alkalmazott.Utonev); alkalmazott.KeresesiNev = CommonUtilsDal.KopaszNev(alkalmazott.NyomtatasiNev); alkalmazott.SzuletesiNevSorrend = kirTanarAdatCo.SzuletesiNevSorrend; alkalmazott.SzuletesiNevElotag = null; alkalmazott.SzuletesiVezeteknev = !kirTanarAdatCo.SzuletesiNevSorrend ? kirTanarAdatCo.SzuletesiCsaladiNev.ReplaceMultipleSpacesAndTrim() : kirTanarAdatCo.SzuletesiUtonev.ReplaceMultipleSpacesAndTrim(); alkalmazott.SzuletesiUtonev = !kirTanarAdatCo.SzuletesiNevSorrend ? kirTanarAdatCo.SzuletesiUtonev.ReplaceMultipleSpacesAndTrim() : kirTanarAdatCo.SzuletesiCsaladiNev.ReplaceMultipleSpacesAndTrim(); alkalmazott.SzuletesiNev = Extensions.NameExtensions.GetNevSorrendben("F", alkalmazott.SzuletesiNevElotag, alkalmazott.SzuletesiVezeteknev, alkalmazott.SzuletesiUtonev); alkalmazott.AnyjaNeveSorrend = kirTanarAdatCo.AnyjaNeveSorrend; alkalmazott.AnyjaNeveElotag = null; alkalmazott.AnyjaVezetekneve = !kirTanarAdatCo.AnyjaNeveSorrend ? kirTanarAdatCo.AnyjaCsaladiNeve.ReplaceMultipleSpacesAndTrim() : kirTanarAdatCo.AnyjaUtoneve.ReplaceMultipleSpacesAndTrim(); alkalmazott.AnyjaUtoneve = !kirTanarAdatCo.AnyjaNeveSorrend ? kirTanarAdatCo.AnyjaUtoneve.ReplaceMultipleSpacesAndTrim() : kirTanarAdatCo.AnyjaCsaladiNeve.ReplaceMultipleSpacesAndTrim(); alkalmazott.AnyjaNeve = Extensions.NameExtensions.GetNevSorrendben("F", alkalmazott.AnyjaNeveElotag, alkalmazott.AnyjaVezetekneve, alkalmazott.AnyjaUtoneve); if (kirTanarAdatCo.SzuletesiIdo.HasValue) { alkalmazott.SzuletesiDatum = kirTanarAdatCo.SzuletesiIdo.Value; } alkalmazott.SzuletesiHely = kirTanarAdatCo.SzuletesiHely; alkalmazott.SzuletesiOrszag = kirTanarAdatCo.SzuletesiOrszag.Value; alkalmazott.Allampolgarsaga = kirTanarAdatCo.Allampolgarsag.Value; alkalmazott.Allampolgarsaga2 = kirTanarAdatCo.Allampolgarsag2.Value; dal.Insert(alkalmazott, kellFollowUp); var alkalmazottMunkaugyiDal = h.AlkalmazottMunkaugyiAdatokDal(); var munkaugyi = alkalmazottMunkaugyiDal.Get(); if (kirTanarAdatCo.AlkalmazasKezdete.HasValue && kirTanarAdatCo.AlkalmazasVege.HasValue) { if (kirTanarAdatCo.AlkalmazasKezdete < kirTanarAdatCo.AlkalmazasVege) { munkaugyi.AlkalmazasKezdete = kirTanarAdatCo.AlkalmazasKezdete; munkaugyi.AlkalmazasMegszunese = kirTanarAdatCo.AlkalmazasVege; } else { throw new BlException(ErrorResource.AlkalmazasKezdeteDatumNemLehetNagyobbMintAVege); } } else { munkaugyi.AlkalmazasKezdete = kirTanarAdatCo.AlkalmazasKezdete; munkaugyi.AlkalmazasMegszunese = kirTanarAdatCo.AlkalmazasVege; } munkaugyi.FoglalkoztatasTipus = kirTanarAdatCo.FoglalkoztatasTipusa; munkaugyi.TanevId = TanevId; munkaugyi.Alkalmazott = alkalmazott; alkalmazottMunkaugyiDal.Insert(munkaugyi); dal.Update(alkalmazott); return alkalmazott.ID; } catch (UniqueKeyViolationException) { throw new UniqueKeyViolationException(ErrorResource.AMegadottOktatasiAzonositoVagyFelhasznalonevMarLetezik); } }); } public TanarEletpalyaModellCO GetPedagogusEletpalyaModellAdatai(int modelId) { return Dal.CustomConnection.Run(ConnectionType, h => { var co = new TanarEletpalyaModellCO(); var modell = h.EletpalyaModell().Get(modelId); co.Datum = modell.MinositesDatum; co.Fokozat = modell.Fokozat; co.ID = modell.ID; co.Statusz = modell.PortfolioStatusz; co.TanarID = modell.TanarId; return co; }); } public TanarVegzettsegCO GetVegzettsegekModelAdatai(int modelId) { return Dal.CustomConnection.Run(ConnectionType, h => { var co = new TanarVegzettsegCO(); var vegzettseg = h.VegzettsegDal().Get(modelId); co.ID = vegzettseg.ID; co.TanarID = vegzettseg.TanarId; co.Vegzettseg = vegzettseg.VegzettsegTipusId; if (vegzettseg.Kepesites.Count > 0) { co.Kepesites = vegzettseg.Kepesites.Select(x => x.KepesitesTipusId.Value).ToList(); } co.Egyeb = vegzettseg.Egyeb; return co; }); } public void CreateOrUpdateEletpalyaModell(TanarEletpalyaModellCO co) { Dal.CustomConnection.Run(ConnectionType, h => { if (co.Fokozat == null) { throw new BlException("fokozat megadása kötelező"); } if (co.Datum == null) { throw new BlException("datum megadása kötelező"); } if (co.Statusz == null) { throw new BlException("statusz megadása kötelező"); } if (!co.TanarID.HasValue || co.TanarID == 0) { throw new BlException("tanar megadása kötelező"); } var eletpalyaModellDal = h.EletpalyaModell(); var entity = eletpalyaModellDal.Get(); if (co.ID != 0) { entity = eletpalyaModellDal.Get(co.ID); } entity.Fokozat = co.Fokozat.Value; entity.MinositesDatum = Convert.ToDateTime(co.Datum); entity.PortfolioStatusz = co.Statusz.Value; entity.TanevId = TanevId; entity.TanarId = co.TanarID.Value; if (entity.MinositesDatum <= entity.Tanar.SzuletesiDatum) { throw new BlException(ErrorResource.NemVehetoFelMinositesASzuletesiDatumElottiIdopontra); } var dal = h.TanarDal(); if (co.ID != 0) { dal.UpdateAlkalmazottEletpalyaModell(entity); } else { dal.Insert(entity); } }); } public void CreateOrUpdateVegzettseg(TanarVegzettsegCO co) { Dal.CustomConnection.Run(ConnectionType, h => { var vegzettsegDal = h.VegzettsegDal(); var entity = vegzettsegDal.Get(); if (co.ID != 0) { entity = vegzettsegDal.Get(co.ID); } if (!co.Vegzettseg.HasValue) { throw new BlException(AlkalmazottResource.VegzettsegMegadasaKotelezo); } entity.VegzettsegTipusId = co.Vegzettseg; entity.Egyeb = co.Egyeb; entity.TanevId = TanevId; entity.TanarId = co.TanarID.Value; if (co.Kepesites.Count > 0) { var kepesitesDal = h.KepesitesDal(); if (co.ID != 0) { kepesitesDal.RemoveAll(entity); } else { vegzettsegDal.Insert(entity); } foreach (var kepesites in co.Kepesites) { var kepesitesek = kepesitesDal.Get(kepesites, TanevId); if (!entity.Kepesites.Contains(kepesitesek)) { kepesitesDal.AddvegzettsegKepesites(entity, kepesitesek); } } } else { throw new BlException(AlkalmazottResource.SzakMegadasaKotelezo); } vegzettsegDal.FullUpdate(entity); }); } public void AlkalmazottTobbesModify(TanarTobbesModCO tanarTobbesModCO, bool NeedUpdateMunkaidoAdatai, bool isKlebelsbergKozpontOrNSZFH, bool isNszfhUjSzkt) { Dal.CustomConnection.Run(ConnectionType, h => { if (!tanarTobbesModCO.AlkalmazottId.HasValue) { throw new BlException(AlkalmazottResource.NemLetezoAlkalmazott); } var alk = h.Alkalmazott().Get(tanarTobbesModCO.AlkalmazottId.Value); if (tanarTobbesModCO.Nem.HasValue) { alk.Neme = tanarTobbesModCO.Nem.Value; } if (tanarTobbesModCO.Szakvizsga.HasValue) { alk.Szakvizsga = tanarTobbesModCO.Szakvizsga.ToBool(); } if (tanarTobbesModCO.SzakertoiVagyVizsgaelnokiTevekenysegu.HasValue) { alk.SzakertoiVizsgaelnoki = tanarTobbesModCO.SzakertoiVagyVizsgaelnokiTevekenysegu.ToBool(); } if (tanarTobbesModCO.SzakmaiTovabbkepzes.HasValue) { alk.Tovabbkepzes = tanarTobbesModCO.SzakmaiTovabbkepzes.ToBool(); } var munkaugyi = alk.MunkaugyiAdatok.FirstOrDefault(x => !x.Torolt); if (munkaugyi == null) { throw new BlException(AlkalmazottResource.AlkalmazottnakNincsenekMunkaugyiAdatai); } if (NeedUpdateMunkaidoAdatai) { if (!(isKlebelsbergKozpontOrNSZFH && tanarTobbesModCO.FoglalkoztatasTipusa == (int)FoglalkoztatasTipusaEnum.Oraado) && tanarTobbesModCO.MunkaidoKedvezmenyOraszam.HasValue) { munkaugyi.MunkaidoKedvezmenyOraszam = tanarTobbesModCO.MunkaidoKedvezmenyOraszam.Value; } if (!tanarTobbesModCO.MunkaidoKedvezmenyOraszam.HasValue) { munkaugyi.MunkaidoKedvezmenyOraszam = null; } } if (tanarTobbesModCO.Nyugdijas.HasValue) { munkaugyi.Nyugdijas = tanarTobbesModCO.Nyugdijas.ToBool(); } TobbesModSetGyESGyed(tanarTobbesModCO, munkaugyi); TobbesModSetKotelezoOraszam(tanarTobbesModCO, munkaugyi, isKlebelsbergKozpontOrNSZFH, NeedUpdateMunkaidoAdatai, isNszfhUjSzkt); TobbesModSetMunkaKor(tanarTobbesModCO, munkaugyi); TobbesModSetBesorolasiFokozat(tanarTobbesModCO, munkaugyi); if (tanarTobbesModCO.PedagogusFokozat.HasValue && (tanarTobbesModCO.PedagogusFokozat.Value == (int)BesorolasiFokozatTipusEnum.kutatotanar || tanarTobbesModCO.PedagogusFokozat.Value == (int)BesorolasiFokozatTipusEnum.mesterpedagogus)) { if (tanarTobbesModCO.SzakertoMesterpedagogusKutatotanar.HasValue && munkaugyi.SzakertoMesterpedagogus != tanarTobbesModCO.SzakertoMesterpedagogusKutatotanar.ToBool()) { munkaugyi.SzakertoMesterpedagogus = tanarTobbesModCO.SzakertoMesterpedagogusKutatotanar.ToBool(); } } else if (tanarTobbesModCO.PedagogusFokozat.HasValue) { munkaugyi.SzakertoMesterpedagogus = false; } if (tanarTobbesModCO.FoglalkoztatasiJogviszony.HasValue) { munkaugyi.MunkaviszonyTipusa = tanarTobbesModCO.FoglalkoztatasiJogviszony.Value; } if (tanarTobbesModCO.AlkalmazasKezdete.HasValue) { munkaugyi.AlkalmazasKezdete = tanarTobbesModCO.AlkalmazasKezdete.Value; } if (tanarTobbesModCO.AlkalmazasVege.HasValue) { munkaugyi.AlkalmazasMegszunese = tanarTobbesModCO.AlkalmazasVege.Value; } if (tanarTobbesModCO.FeladatellatasiHely.HasValue) { munkaugyi.FeladatEllatasiHelyId = tanarTobbesModCO.FeladatellatasiHely.Value; } if (tanarTobbesModCO.VezetoiOraszamOka.HasValue) { munkaugyi.VezetoiOraszamok = tanarTobbesModCO.VezetoiOraszamOka.Value; } if (!(isKlebelsbergKozpontOrNSZFH && tanarTobbesModCO.FoglalkoztatasTipusa == (int)FoglalkoztatasTipusaEnum.Oraado) && tanarTobbesModCO.MunkaidoKedvezmenyOka.HasValue) { munkaugyi.MunkaidoKedvezmenyOka = tanarTobbesModCO.MunkaidoKedvezmenyOka.Value; } if (tanarTobbesModCO.Foallasu.HasValue) { alk.Foallas = tanarTobbesModCO.Foallasu.ToBool(); } if (tanarTobbesModCO.VezetoPedagogusVezetoOvodaPedagogus.HasValue) { munkaugyi.IsVezetopedagogus = tanarTobbesModCO.VezetoPedagogusVezetoOvodaPedagogus.ToBool(); } if (tanarTobbesModCO.FoglalkoztatasTipusa.HasValue) { munkaugyi.FoglalkoztatasTipus = tanarTobbesModCO.FoglalkoztatasTipusa; } if (tanarTobbesModCO.Attanito.HasValue) { munkaugyi.Attanito = tanarTobbesModCO.Attanito.ToBool(); } if (tanarTobbesModCO.AttanitoMasIntezmeny.HasValue) { munkaugyi.AttanitoMasIntezmenynel = tanarTobbesModCO.AttanitoMasIntezmeny.ToBool(); } if (tanarTobbesModCO.IsAttanitoSzCnBelul.HasValue) { munkaugyi.IsAttanitoSzCnBelul = tanarTobbesModCO.IsAttanitoSzCnBelul.ToBool(); } if (tanarTobbesModCO.IsOsztalyfonok.HasValue) { munkaugyi.IsOsztalyfonok = tanarTobbesModCO.IsOsztalyfonok.ToBool(); } if (tanarTobbesModCO.IsInternetetOktCelraHasznal.HasValue) { munkaugyi.IsInternetetOktCelraHasznal = tanarTobbesModCO.IsInternetetOktCelraHasznal.ToBool(); } if (tanarTobbesModCO.IsInformatKepIsmRendelkezik.HasValue) { munkaugyi.IsInformatKepIsmRendelkezik = tanarTobbesModCO.IsInformatKepIsmRendelkezik.ToBool(); } if (tanarTobbesModCO.IsIktEszkozoketLgalabb40Hasznal.HasValue) { munkaugyi.IsIktEszkozoketLgalabb40Hasznal = tanarTobbesModCO.IsIktEszkozoketLgalabb40Hasznal.ToBool(); } if (tanarTobbesModCO.HasEfopEszkoz.HasValue) { alk.HasEfopEszkoz = tanarTobbesModCO.HasEfopEszkoz.ToBool(); } if (tanarTobbesModCO.AllandoHelyettesitesre.HasValue) { alk.AllandoHelyettesitesre = tanarTobbesModCO.AllandoHelyettesitesre.ToBool(); } if (tanarTobbesModCO.FoglalkoztatasTipusa.HasValue && isKlebelsbergKozpontOrNSZFH && tanarTobbesModCO.FoglalkoztatasTipusa.Value == (int)FoglalkoztatasTipusaEnum.Reszmunkaidos) { if (tanarTobbesModCO.ReszmunkaidosSzazalek.HasValue) { munkaugyi.ReszmunkaidoSzazalek = tanarTobbesModCO.ReszmunkaidosSzazalek; } else { throw new BlException(ErrorResource.AReszmunkaidoSzazalekMezoMegadasaKotelezoAMunkaugyiAdatokTabFulon); } } if (tanarTobbesModCO.IsKuldhetoPedMinositesSzRnek.HasValue) { alk.IsKuldhetoPedMinositesSzRnek = tanarTobbesModCO.IsKuldhetoPedMinositesSzRnek.ToBool(); } if (tanarTobbesModCO.OktatoiFeladatokatIsEllat.HasValue) { munkaugyi.IsOktatoiFeladatok = tanarTobbesModCO.OktatoiFeladatokatIsEllat.ToBool(); } alk.TanevId = TanevId; munkaugyi.TanevId = TanevId; var dal = h.TanarDal(); dal.FullUpdate(alk, munkaugyi); }); } public void SzervezetAlkalmazottTobbesModify(TanarTobbesModCO tanarTobbesModCO) { Dal.CustomConnection.Run(ConnectionType, h => { if (!tanarTobbesModCO.AlkalmazottId.HasValue) { throw new BlException(AlkalmazottResource.NemLetezoAlkalmazott); } var alk = h.Alkalmazott().Get(tanarTobbesModCO.AlkalmazottId.Value); if (tanarTobbesModCO.Nem.HasValue) { alk.Neme = tanarTobbesModCO.Nem.Value; } if (tanarTobbesModCO.OktatoSzervezetId.IsEntityId()) { var munkaugyi = alk.MunkaugyiAdatok.FirstOrDefault(x => !x.Torolt); if (munkaugyi == null) { throw new BlException(AlkalmazottResource.AlkalmazottnakNincsenekMunkaugyiAdatai); } munkaugyi.SzervezetId = tanarTobbesModCO.OktatoSzervezetId.Value; alk.TanevId = TanevId; munkaugyi.TanevId = TanevId; var dal = h.TanarDal(); dal.FullUpdate(alk, munkaugyi); } }); } public string GetTanarNev(int tanarId) { return Dal.CustomConnection.Run(ConnectionType, h => { return h.TanarDal().GetTanarNev(tanarId); }); } private void TobbesModSetGyESGyed(TanarTobbesModCO tanarTobbesModCO, IMunkaugyiAdatok munkaugyi) { if (tanarTobbesModCO.GyESGyed.HasValue) { munkaugyi.TartosHelyettesites = tanarTobbesModCO.GyESGyed.ToBool(); if (tanarTobbesModCO.GyESGyed.ToBool()) { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.tartosan_tavollevo; } } } private void TobbesModSetBesorolasiFokozat(TanarTobbesModCO tanarTobbesModCO, IMunkaugyiAdatok munkaugyi) { const int mesterpedagogusKuszobOraszam = 18; if (tanarTobbesModCO.PedagogusFokozat.HasValue) { if (tanarTobbesModCO.PedagogusFokozat.Value == (int)BesorolasiFokozatTipusEnum.mesterpedagogus && !munkaugyi.TartosHelyettesites) { if (munkaugyi.KotelezoOraszam >= mesterpedagogusKuszobOraszam) { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.teljes_munkaidos; } else { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.reszmunkaidos; } } munkaugyi.BesorolasiFokozat = tanarTobbesModCO.PedagogusFokozat.Value; } } private void TobbesModSetKotelezoOraszam(TanarTobbesModCO tanarTobbesModCO, IMunkaugyiAdatok munkaugyi, bool isKK, bool NeedUpdateMunkaidoAdatai, bool isNszfhUjSzkt) { if (NeedUpdateMunkaidoAdatai) { if (!munkaugyi.BetoltetlenAllashely) { if (tanarTobbesModCO.VezetoiOraszamOka.HasValue) { munkaugyi.VezetoiOraszamok = tanarTobbesModCO.VezetoiOraszamOka.Value; } else { throw new BlException(isNszfhUjSzkt ? ErrorResource.VezetoiMegbizasMegadasaKotelezo : ErrorResource.VezetoiOraszamOkaMegadasaKotelezo); } } if (tanarTobbesModCO.VezetoiOraszamOka.HasValue && tanarTobbesModCO.FoglalkoztatasTipusa.HasValue && (isKK && tanarTobbesModCO.FoglalkoztatasTipusa.Value == (int)FoglalkoztatasTipusaEnum.Oraado || tanarTobbesModCO.VezetoiOraszamOka.Value != (int)VezetoiOraszamokTipusEnum.Nincs) || !isKK) { const int StandardKotelezpOraszamKuszob = 22; if (tanarTobbesModCO.KotelezoOraszam.HasValue) { if (tanarTobbesModCO.KotelezoOraszam.Value >= StandardKotelezpOraszamKuszob && !munkaugyi.TartosHelyettesites) { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.teljes_munkaidos; } else { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.reszmunkaidos; } munkaugyi.KotelezoOraszam = tanarTobbesModCO.KotelezoOraszam.Value; } else { throw new BlException(ErrorResource.AKotelezoOraszamMezoMegadasaKotelezoAMunkaugyiAdatokTabFulon); } } } } private void TobbesModSetMunkaKor(TanarTobbesModCO tanarTobbesModCO, IMunkaugyiAdatok munkaugyi) { if (tanarTobbesModCO.MunkaKor.HasValue) { TobbesModSetPedagogusStatusza(munkaugyi); munkaugyi.MunkakorTipusa = tanarTobbesModCO.MunkaKor.Value; } } private void TobbesModSetPedagogusStatusza(IMunkaugyiAdatok munkaugyi) { const int vezetoKotelezeoOraszamKuszob = 2; if (munkaugyi.FoglalkoztatasTipus == (int)FoglalkoztatasTipusaEnum.Oraado && !munkaugyi.TartosHelyettesites) { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.oraado; } else if (!munkaugyi.TartosHelyettesites) { if (munkaugyi.KotelezoOraszam >= vezetoKotelezeoOraszamKuszob) { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.teljes_munkaidos; } else { munkaugyi.PedagogusStatusza = (int)PedagogusStatuszEnum.reszmunkaidos; } } } public IDictionary GetOsztalyfonokOsztalyfonokHelyettesByTanevForDDL() { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(); var ds = dal.GetOsztalyfonokOsztalyfonokhelyettesForDDL(TanevId, IntezmenyId); return LogicUtil.CreateDropdownContent(ds, "ID", "Nev"); }); } public DataSet GetUtolsoBeNemIrtOrak(int itezmenyId, int tanarId, int darab) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(); return dal.GetUtolsoBeNemIrtOrak(itezmenyId, TanevId, tanarId, darab); }); } public DataSet GetKiirtHelyettesitesek(int itezmenyId, int tanarId, int darab) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(); return dal.GetKiirtHelyettesitesek(itezmenyId, TanevId, tanarId, darab); }); } public DataSet GetMulasztasokSzama(int tanarId, bool isSzuperOsztalyFonok, int darab) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(); return dal.GetMulasztasokSzama(TanevId, tanarId, isSzuperOsztalyFonok, darab); }); } public DataSet GetBukasokSzama(int tanarId, int darab) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(); return dal.GetBukasokSzama(TanevId, tanarId, darab, BukasAtlag(h)); }); } public DataSet GetTanarDashboardUzenet(int felhasznaloId) { return Dal.CustomConnection.Run(ConnectionType, h => { return h.DashboardUzenet().GetTanarDashboardUzenetDataSet(felhasznaloId); }); } public DataSet GetCovidFertozottek(int tanarId) { return Dal.CustomConnection.Run(ConnectionType, h => { return h.Felhasznalo().GetCovidFertozottekByTanarDataSet(TanevId, tanarId); }); } public void SetOsztalyzatText(DataSet ds) { foreach (DataRow row in ds.Tables[0].Rows) { if (row.Field("C_TARGYKATEGORIA") == (int)TargyKategoriaTipusEnum.Szorgalom) { row["OSZTALYZAT_DNAME"] = TanuloErtekelesLogicWeb.GetOsztalyzatTextSzorgalom(row.Field("OSZTALYZAT"), TanevId); } } } public List GetKapcsolodoTanarokForComboBox(OktNevelesiKategoriaEnum? feladatKategoria, int? felhasznaloId = null) { DataSet dataSet = GetKapcsolodoTanarokDataSet(feladatKategoria, felhasznaloId); List result = LogicUtil.CreateMvcGroupedSelectListItem(dataSet, "ID", null, "GroupName", valueFormat: "{Nev} ({OktatasiAzonosito})"); return result; } public DataSet GetKapcsolodoTanarokDataSet(OktNevelesiKategoriaEnum? feladatKategoria, int? felhasznaloId = null) { DataSet result = Dal.CustomConnection.Run(ConnectionType, h => h.TanarDal().GetTanarokByOktNevKategoria(TanevId, feladatKategoria, felhasznaloId)); return result; } public bool HasTanarAlapertelmezettCim() { return Dal.CustomConnection.Run(ConnectionType, h => { var felhasznaloDal = h.Felhasznalo(); var tanar = felhasznaloDal.Get(FelhasznaloId); return tanar.Cim.Any(x => x.Alapertelmezett && !x.Torolt && x.Gondviselo == null); }); } public bool HasTanarMentorCsoport(int tanarId) { return Dal.CustomConnection.Run(ConnectionType, h => { var alkalmazottDal = h.Alkalmazott(); return alkalmazottDal.AlkalmazottHasMentorCsoport(tanarId, TanevId, (int)CsoportTipusEnum.apaczai_mentorcsoport); }); } public List GetAlkalmazottTovabbkepzesek(int alkalmazottId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.Alkalmazott(GridParameters); var tovabbkepzesekDs = dal.GetAlkalmazottTovabbkepzesek(alkalmazottId); var tovabbkepzesek = tovabbkepzesekDs.Tables[0].AsEnumerable().Select(t => new TovabbkepzesCo { ID = t.Field(nameof(TovabbkepzesCo.ID)), TovabbkepzesMegnevezese = t.Field(nameof(TovabbkepzesCo.TovabbkepzesMegnevezese)), TanusitvanySorszama = t.Field(nameof(TovabbkepzesCo.TanusitvanySorszama)), Oraszam = t.Field(nameof(TovabbkepzesCo.Oraszam)), Helyszin = t.Field(nameof(TovabbkepzesCo.Helyszin)), EngedelySzama = t.Field(nameof(TovabbkepzesCo.EngedelySzama)), Datum = t.Field(nameof(TovabbkepzesCo.Datum)) }).ToList(); return tovabbkepzesek; }); } public void SaveTovabbkepzes(TovabbkepzesCo tovabbkepzesCo) { Dal.CustomConnection.Run(ConnectionType, h => { var tovabbkepzesDal = h.TovabbkepzesDal(); var tovabbkepzesEntity = tovabbkepzesDal.Get(tovabbkepzesCo.ID); tovabbkepzesEntity.TovabbkepzesMegnevezese = tovabbkepzesCo.TovabbkepzesMegnevezese; tovabbkepzesEntity.TanusitvanySorszama = tovabbkepzesCo.TanusitvanySorszama; tovabbkepzesEntity.Oraszam = tovabbkepzesCo.Oraszam; tovabbkepzesEntity.Helyszin = tovabbkepzesCo.Helyszin; tovabbkepzesEntity.EngedelySzama = tovabbkepzesCo.EngedelySzama; tovabbkepzesEntity.Datum = tovabbkepzesCo.Datum; tovabbkepzesEntity.AlkalmazottId = tovabbkepzesCo.AlkalmazottId; tovabbkepzesEntity.TanevId = TanevId; tovabbkepzesEntity.IntezmenyId = IntezmenyId; if (tovabbkepzesCo.ID.HasValue) { tovabbkepzesDal.FullUpdate(tovabbkepzesEntity); } else { tovabbkepzesDal.Insert(tovabbkepzesEntity); } }); } public void DeleteTovabbkepzes(int tovabbkepzesId) { Dal.CustomConnection.Run(ConnectionType, h => { var tovabbkepzesDal = h.TovabbkepzesDal(); tovabbkepzesDal.Delete(tovabbkepzesId); }); } public TovabbkepzesCo GetTovabbkepzes(int tovabbkepzesId) { return Dal.CustomConnection.Run(ConnectionType, h => { var tovabbkepzesDal = h.TovabbkepzesDal(); var tovabbkepzesEntity = tovabbkepzesDal.Get(tovabbkepzesId); return new TovabbkepzesCo { ID = tovabbkepzesEntity.ID, AlkalmazottId = tovabbkepzesEntity.AlkalmazottId, TovabbkepzesMegnevezese = tovabbkepzesEntity.TovabbkepzesMegnevezese, TanusitvanySorszama = tovabbkepzesEntity.TanusitvanySorszama, Oraszam = tovabbkepzesEntity.Oraszam, Helyszin = tovabbkepzesEntity.Helyszin, EngedelySzama = tovabbkepzesEntity.EngedelySzama, Datum = tovabbkepzesEntity.Datum }; }); } public Dictionary GetTanarNevSzuletesiDatumok(bool isDualisKepzohelyiOktatok = false) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanarDal(); return dal.GetAlkalmazottNameBirthdays(TanevId, isDualisKepzohelyiOktatok).Tables[0].AsEnumerable().ToDictionary(x => x.Field("ID"), x => (Tanar: x.Field("Nev"), SzuletesiDatum: x.Field("SzuletesiDatum"))); }); } } }