kreta/Kreta.BusinessLogic/Helpers/TanarHelper.cs
2024-03-13 00:33:46 +01:00

2008 lines
95 KiB
C#

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<int>();
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<double>(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<int> 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<MunkakorTipusEnum>(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<string, string> 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<string, string> 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<string, string> 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<string, string> 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<string, string> 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<AlkalmazottErtekelesItemCo> GetTanarErtekelesCoList(int id)
{
DataSet dataSet = GetTanarErtekeles(id);
SetOsztalyzatText(dataSet);
var result = new List<AlkalmazottErtekelesItemCo>();
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<AlkalmazottMegtartottTanoraItemCo> GetMegtartottTanoraCoList(int id)
{
DataSet dataSet = GetMegtartottOrak(id);
var result = new List<AlkalmazottMegtartottTanoraItemCo>();
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<AlkalmazottTanmenetItemCo> GetTanarTanmenetCoList(int id)
{
DataSet dataSet = GetTanarTanmenet(id);
var result = new List<AlkalmazottTanmenetItemCo>();
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<AlkalmazottOrarendiOrakItemCo> GetTeacherSubjectsHoursCoList(int id)
{
DataSet dataSet = GetTeacherSubjectsHours(id);
var result = new List<AlkalmazottOrarendiOrakItemCo>();
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<AlkalmazottFoglalkozasItemCo> GetTeacherRoutinesCoList(int id)
{
DataSet dataSet = GetTeacherRoutines(id);
var result = new List<AlkalmazottFoglalkozasItemCo>();
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<AlkalmazottElerhetosegCimItemCo> GetTeacherAddressDataCoList(int id)
{
DataSet dataSet = GetTeacherAddressData(id);
var result = new List<AlkalmazottElerhetosegCimItemCo>();
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<AlkalmazottElerhetosegEmailItemCo> GetTeacherEmailsCoList(int id)
{
DataSet dataSet = GetTeacherEmails(id);
var result = new List<AlkalmazottElerhetosegEmailItemCo>();
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<AlkalmazottElerhetosegTelefonItemCo> GetTeacherPhonesCoList(int id)
{
DataSet dataSet = GetTeacherPhones(id);
var result = new List<AlkalmazottElerhetosegTelefonItemCo>();
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<double>(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<AlkalmazottPedagogusEletpalyamodellItemCo> GetPedagogusEletpalyamodellCoList(int id)
{
DataSet dataSet = GetPedagogusEletpalyaModell(id);
var result = new List<AlkalmazottPedagogusEletpalyamodellItemCo>();
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<VegzettsegItemCo> GetVegzettsegCoLst(int tanarId)
{
var ds = Dal.CustomConnection.Run(ConnectionType, h => h.TanarDal().GetVegzettseg(tanarId, TanevId));
var result = new List<VegzettsegItemCo>();
foreach (var dataRow in ds.Tables[0].AsEnumerable())
{
result.Add(new VegzettsegItemCo(dataRow));
}
return result;
}
public List<AlkalmazottEszkozItemCo> GetEszkozokCoList(int id)
{
DataSet dataSet = GetAlkalmazottEszkozei(id);
var result = new List<AlkalmazottEszkozItemCo>();
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<string, string> 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<int?>("C_TARGYKATEGORIA") == (int)TargyKategoriaTipusEnum.Szorgalom)
{
row["OSZTALYZAT_DNAME"] = TanuloErtekelesLogicWeb.GetOsztalyzatTextSzorgalom(row.Field<int?>("OSZTALYZAT"), TanevId);
}
}
}
public List<ComboBoxListItem> GetKapcsolodoTanarokForComboBox(OktNevelesiKategoriaEnum? feladatKategoria, int? felhasznaloId = null)
{
DataSet dataSet = GetKapcsolodoTanarokDataSet(feladatKategoria, felhasznaloId);
List<ComboBoxListItem> 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<TovabbkepzesCo> 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<int>(nameof(TovabbkepzesCo.ID)),
TovabbkepzesMegnevezese = t.Field<string>(nameof(TovabbkepzesCo.TovabbkepzesMegnevezese)),
TanusitvanySorszama = t.Field<string>(nameof(TovabbkepzesCo.TanusitvanySorszama)),
Oraszam = t.Field<int?>(nameof(TovabbkepzesCo.Oraszam)),
Helyszin = t.Field<string>(nameof(TovabbkepzesCo.Helyszin)),
EngedelySzama = t.Field<string>(nameof(TovabbkepzesCo.EngedelySzama)),
Datum = t.Field<DateTime?>(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<int, (string Tanar, DateTime SzuletesiDatum)> 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<int>("ID"), x => (Tanar: x.Field<string>("Nev"), SzuletesiDatum: x.Field<DateTime>("SzuletesiDatum")));
});
}
}
}