1607 lines
68 KiB
C#
1607 lines
68 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Exceptions;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
|
using Kreta.BusinessLogic.Interfaces;
|
|
using Kreta.BusinessLogic.Logic;
|
|
using Kreta.BusinessLogic.Utils;
|
|
using Kreta.Client.KozpontiKreta.Model;
|
|
using Kreta.Core;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.Core.Domain;
|
|
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.Framework.Entities;
|
|
using Kreta.Resources;
|
|
using OfficeOpenXml;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers
|
|
{
|
|
public class AlkalmazottHelper : LogicBase
|
|
{
|
|
public AlkalmazottHelper(IConnectionType connectionType) : base(connectionType) { }
|
|
|
|
public DataSet GetInfoForLoginAlkalmazott()
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.GetInfoForLoginAlkalmazott(FelhasznaloId, TanevId);
|
|
});
|
|
}
|
|
|
|
public List<AlkalmazottItemCo> SearchAlkalmazott(AlkalmazottSearchCo co, int? felhasznaloSzervezetId = null)
|
|
{
|
|
var isFromSzervezet = co?.IsFromSzervezet ?? false;
|
|
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dataSet = h.Alkalmazott(GridParameters).SearchAlkalmazott(co.ConvertToPco(), IntezmenyId, TanevId, IntezmenyAzonosito);
|
|
|
|
List<AlkalmazottItemCo> coList;
|
|
if (isFromSzervezet)
|
|
{
|
|
var szervezetIds = !felhasznaloSzervezetId.IsEntityId() ? new List<int>() : h.SzervezetDal().GetLathatoSzervezetek(IntezmenyId, TanevId, felhasznaloSzervezetId, (int)SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek);
|
|
var intezmenyiAdminIds = felhasznaloSzervezetId.IsEntityId() ? new List<int>() : h.Felhasznalo().GetAllIntezmenyiAdmin(TanevId);
|
|
|
|
coList = dataSet.Tables[0].AsEnumerable().Select(dataRow =>
|
|
{
|
|
var szervezetId = dataRow.Field<int?>("SzervezetId");
|
|
var isSzerkesztheto = (felhasznaloSzervezetId.IsEntityId() && szervezetId.IsEntityId() && szervezetIds.Contains(szervezetId.Value)) ||
|
|
(!felhasznaloSzervezetId.IsEntityId() && intezmenyiAdminIds.Contains(FelhasznaloId));
|
|
|
|
return new AlkalmazottItemCo(dataRow, isSzerkesztheto);
|
|
}).ToList();
|
|
}
|
|
else
|
|
{
|
|
coList = dataSet.Tables[0].AsEnumerable().Select(x => new AlkalmazottItemCo(x, true)).ToList();
|
|
}
|
|
|
|
return coList;
|
|
});
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<KirAlkalmazott> SearchAlkalmazottForKir(FelhasznaloKirSearchCo alkalmazottKirSearchCoco)
|
|
{
|
|
var kirAlkalmazottList = new List<KirAlkalmazott>();
|
|
var allandoLakcimList = new List<KirCim>();
|
|
var tartozkodasiCimList = new List<KirCim>();
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott(GridParameters);
|
|
|
|
kirAlkalmazottList = dal.SearchAlkalmazottForKir(alkalmazottKirSearchCoco, TanevId);
|
|
allandoLakcimList = dal.GetKirAlkalmazottCim(IntezmenyId, TanevId, kirAlkalmazottList.Select(x => x.Id), CimTipusEnum.allando_lakcim);
|
|
tartozkodasiCimList = dal.GetKirAlkalmazottCim(IntezmenyId, TanevId, kirAlkalmazottList.Select(x => x.Id), CimTipusEnum.tartozkodasi_hely);
|
|
});
|
|
|
|
kirAlkalmazottList.ForEach(alkalmazott =>
|
|
{
|
|
var allandoLakcim = allandoLakcimList.Where(cim => cim.FelhasznaloId == alkalmazott.Id).FirstOrDefault();
|
|
alkalmazott.AllandoLakcim = allandoLakcim;
|
|
allandoLakcimList.Remove(allandoLakcim);
|
|
|
|
var tartozkodasiCim = tartozkodasiCimList.Where(cim => cim.FelhasznaloId == alkalmazott.Id).FirstOrDefault();
|
|
alkalmazott.TartozkodasiCim = tartozkodasiCim;
|
|
tartozkodasiCimList.Remove(tartozkodasiCim);
|
|
});
|
|
|
|
return kirAlkalmazottList;
|
|
}
|
|
|
|
public List<IskolaorCo> GetIskolaor()
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var iskolaorDataSet = h.Alkalmazott().GetIskolaor(TanevId);
|
|
|
|
var iskolaorList = new List<IskolaorCo>();
|
|
|
|
if (iskolaorDataSet.Tables[0].Rows.Count > 0)
|
|
{
|
|
foreach (DataRow dataRow in iskolaorDataSet.Tables[0].Rows)
|
|
{
|
|
var iskolaorAdatok = new IskolaorCo
|
|
{
|
|
Id = SDAConvert.ToInt32(dataRow["Id"]),
|
|
IdpEgyediAzonosito = SDAConvert.ToGuid(dataRow["IdpEgyediAzonosito"]),
|
|
Nev = SDAConvert.ToString(dataRow["Nev"]),
|
|
AlapertelmezettEmailCim = SDAConvert.ToString(dataRow["EmailCim"]),
|
|
AlapertelmezettTelefonszam = SDAConvert.ToString(dataRow["Telefonszam"]),
|
|
MukodesiHelyNeve = SDAConvert.ToString(dataRow["MukodesiHelyNev"]),
|
|
OktatasiNevelesiFeladatTipusId = SDAConvert.ToInt32(dataRow["OktatasiNevelesiFeladatTipusId"]),
|
|
FeladatEllatasiHelyId = SDAConvert.ToInt32(dataRow["FeladatEllatasiHelyId"])
|
|
};
|
|
|
|
iskolaorList.Add(iskolaorAdatok);
|
|
}
|
|
}
|
|
|
|
return iskolaorList;
|
|
});
|
|
}
|
|
|
|
public void DeleteAlkalmazott(int id)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var alkalmazottDal = h.Alkalmazott();
|
|
var entity = alkalmazottDal.Get(id);
|
|
var message = string.Empty;
|
|
|
|
var osztalyai = entity.OfoOsztalyai.Where(x => !x.Torolt).Select(x => x.Nev).ToList();
|
|
if (osztalyai.Count > 0)
|
|
{
|
|
message += $"{ErrorResource.OsztalyfonokAzAlabbiOsztalyokban} {string.Join(", ", osztalyai)}{Environment.NewLine}";
|
|
}
|
|
|
|
var csoportjai = entity.VezetoCsoportjai.Where(x => !x.Torolt).Select(x => x.Nev).ToList();
|
|
if (csoportjai.Count > 0)
|
|
{
|
|
message += $"{ErrorResource.CsoportvezetoAzAlabbiCsoportokban} {string.Join(", ", csoportjai)}{Environment.NewLine}";
|
|
}
|
|
|
|
var foglalkozasai = entity.Foglalkozas.Where(x => !x.Torolt).ToList();
|
|
if (foglalkozasai.Count > 0)
|
|
{
|
|
var items = foglalkozasai.Aggregate(string.Empty, (current, f) => current + $" {f.OsztalyCsoport.Nev}({f.Tantargy.Nev}){Environment.NewLine}");
|
|
|
|
message += $"{ErrorResource.TTFenKeresztulKapcsolodikAzAlabbiOsztCsopokhoz}{Environment.NewLine}{items}";
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(message))
|
|
{
|
|
if (entity.ID == FelhasznaloId)
|
|
throw new EntityDeleteFailedException("Felhasznalo", "Felhasznalo", StringResourcesUtils.GetString(3244) /*Felhasználó nem törölheti önmagát!*/ );
|
|
|
|
alkalmazottDal.Delete(entity.ID);
|
|
}
|
|
else
|
|
{
|
|
var errorMessage = $"{entity.NyomtatasiNev} {ErrorResource.NemTorolhetoAzAlabbiKapcsolodasokMiatt}{Environment.NewLine}{Environment.NewLine}{message}{Environment.NewLine}";
|
|
throw new CannotBeDeletedException(errorMessage);
|
|
}
|
|
});
|
|
}
|
|
|
|
public void DeleteEletpalyaModell(int id)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.EletpalyaModell();
|
|
dal.Delete(id);
|
|
});
|
|
}
|
|
|
|
public void DeleteVegzettseg(int id)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.VegzettsegDal();
|
|
dal.Delete(id);
|
|
});
|
|
}
|
|
|
|
public void DeleteTovabbiMunkaugyiAdatok(int id)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.TovabbiMunkaugyiAdatok();
|
|
dal.Delete(id);
|
|
});
|
|
}
|
|
|
|
public int GetBetoltetlenAllashelyekSzama()
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.GetBetoltetlenAllashelyekSzama(TanevId, IntezmenyId);
|
|
});
|
|
}
|
|
|
|
public int? GetAlkalmazottKKKepesite(int alkalmazottId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
var entity = dal.Get(alkalmazottId);
|
|
return entity.KKKepesitesId;
|
|
});
|
|
}
|
|
|
|
public string GetSpecialisAlkalmazottakNevEloTag(string nevEloTag)
|
|
{
|
|
return "[" + nevEloTag + " " + (Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dataSet = h.Alkalmazott().GetSpecialisAlkalmazottakNeve(TanevId, nevEloTag);
|
|
|
|
var nevek = from DataRow myRow in dataSet.Tables[0].Rows select myRow[0].ToString();
|
|
|
|
return GetLegkisebbNevEloTag(nevEloTag, nevek.ToList());
|
|
})).ToString() + "]";
|
|
}
|
|
|
|
private int GetLegkisebbNevEloTag(string nevEloTag, List<string> nevek)
|
|
{
|
|
var minimumHasznalhato = 1;
|
|
var szamok = new List<int>();
|
|
|
|
for (var i = 0; i < nevek.Count; i++)
|
|
{
|
|
nevek[i] = nevek[i].Substring(0, nevek[i].IndexOf("]"));
|
|
|
|
nevek[i] = nevek[i].Replace(nevEloTag, "").Replace("[", "").Replace("]", "").Trim();
|
|
}
|
|
|
|
foreach (var nev in nevek)
|
|
{
|
|
if (int.TryParse(nev, out var aktualis))
|
|
{
|
|
szamok.Add(aktualis);
|
|
}
|
|
}
|
|
|
|
foreach (var item in szamok.OrderBy(x => x))
|
|
{
|
|
if (item == minimumHasznalhato)
|
|
{
|
|
minimumHasznalhato++;
|
|
}
|
|
}
|
|
|
|
return minimumHasznalhato;
|
|
}
|
|
|
|
public DataSet GetCim(int alkalmazottId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Felhasznalo(GridParameters);
|
|
return dal.GetUserCim(alkalmazottId);
|
|
});
|
|
}
|
|
|
|
public DataSet GetTelefonSzam(int alkalmazottId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Felhasznalo(GridParameters);
|
|
return dal.GetUserTelefon(alkalmazottId);
|
|
});
|
|
}
|
|
|
|
public DataSet GetEmails(int alkalmazottId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Felhasznalo(GridParameters);
|
|
return dal.GetUserEmailCim(alkalmazottId);
|
|
});
|
|
}
|
|
|
|
public List<AlkalmazottElerhetosegEmailCO> GetEmailsCoList(int alkalmazottId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var felhasznalo = h.Felhasznalo().Get(alkalmazottId);
|
|
return felhasznalo.Email.Where(x => !x.Torolt && !x.IsHibasanMegadva).Select(x => new AlkalmazottElerhetosegEmailCO
|
|
{
|
|
Alapertelmezett = x.Alapertelmezett,
|
|
AlkalmazottId = x.FelhasznaloId,
|
|
EmailCim = x.EmailCim,
|
|
EmailTipusa = x.EmailTipusa,
|
|
ID = x.ID,
|
|
}).ToList();
|
|
});
|
|
}
|
|
|
|
public List<AlkalmazottElerhetosegTelCO> GetPhonesCoList(int alkalmazottId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var felhasznalo = h.Felhasznalo().Get(alkalmazottId);
|
|
return felhasznalo.Telefon.Where(x => !x.Torolt).Select(x => new AlkalmazottElerhetosegTelCO
|
|
{
|
|
Alapertelmezett = x.Alapertelmezett,
|
|
AlkalmazottId = x.FelhasznaloId,
|
|
ID = x.ID,
|
|
Leiras = x.Leiras,
|
|
Telefonszam = x.TelefonSzam,
|
|
TelefonTipusa = x.TelefonTipusa,
|
|
}).ToList();
|
|
});
|
|
}
|
|
|
|
public AlkalmazottElerhetosegCimCO GetAlkalmazottCimById(int id)
|
|
{
|
|
var co = new AlkalmazottElerhetosegCimCO();
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var oCim = h.Cim().Get(id);
|
|
|
|
co.ID = oCim.ID;
|
|
co.AlkalmazottId = oCim.FelhasznaloId;
|
|
co.Iranyitoszam = oCim.IranyitoSzam;
|
|
co.HelysegNev = oCim.Varos;
|
|
co.KozteruletNev = oCim.Kozterulet;
|
|
co.KozteruletTipusNev = oCim.KozteruletJellegeNev != null && oCim.KozteruletJellegeNev.Equals("-") ? string.Empty : oCim.KozteruletJellegeNev;
|
|
co.Hazszam = oCim.Hazszam;
|
|
co.Emelet = oCim.Emelet;
|
|
co.Ajto = oCim.Ajto;
|
|
co.CimTipus = oCim.CimTipusa;
|
|
co.Orszag = oCim.Orszag;
|
|
co.Alapertelmezett = oCim.Alapertelmezett;
|
|
});
|
|
return co;
|
|
}
|
|
|
|
public void AlkalmazottCimMentese(FelhasznaloElerhetosegCimCO adat, int? kovTanevId, bool isKirSzinkron = false)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var cimDal = h.Cim();
|
|
if (adat.Alapertelmezett)
|
|
{
|
|
cimDal.SetAlapertelmezett(adat.FelhasznaloId, FelhasznaloId, TanevId);
|
|
}
|
|
|
|
var felhasznaloDal = h.Felhasznalo();
|
|
ICim AlkalmazottCim;
|
|
|
|
if (adat.ID.IsEntityId())
|
|
{
|
|
AlkalmazottCim = cimDal.Get(adat.ID.Value);
|
|
}
|
|
else
|
|
{
|
|
AlkalmazottCim = cimDal.Get();
|
|
AlkalmazottCim.TanevId = TanevId;
|
|
}
|
|
|
|
adat.CimTipus = adat.CimTipus.IsEntityId() ? adat.CimTipus : (int)CimTipusEnum.allando_lakcim;
|
|
adat.Orszag = adat.Orszag.IsEntityId() ? adat.Orszag : (int)OrszagTipusEnum.Magyarorszag;
|
|
|
|
SetAlkalmazottDataForUpdate(AlkalmazottCim, adat, isKirSzinkron);
|
|
|
|
if (adat.FelhasznaloId.IsEntityId())
|
|
{
|
|
AlkalmazottCim.FelhasznaloId = adat.FelhasznaloId;
|
|
|
|
var alkalmazott = felhasznaloDal.Get(adat.FelhasznaloId);
|
|
if (adat.ID.IsEntityId())
|
|
{
|
|
var letezoAzonosTipusuCimekSzama = alkalmazott.Cim.Count(x => !x.Torolt && x.CimTipusa == adat.CimTipus && x.ID != AlkalmazottCim.ID);
|
|
|
|
if (letezoAzonosTipusuCimekSzama == 0)
|
|
{
|
|
cimDal.Update(AlkalmazottCim);
|
|
UpdateAlkalmazottCimKovTanev(h, kovTanevId, adat.FelhasznaloId);
|
|
}
|
|
else
|
|
{
|
|
throw new BlException(ErrorResource.AKivalsztottTipusuCimMarFellettveve);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var azonosTipusuCimekSzama = alkalmazott.Cim.Count(x => !x.Torolt && x.CimTipusa == adat.CimTipus);
|
|
|
|
if (azonosTipusuCimekSzama == 0)
|
|
{
|
|
cimDal.Insert(AlkalmazottCim);
|
|
UpdateAlkalmazottCimKovTanev(h, kovTanevId, adat.FelhasznaloId);
|
|
}
|
|
else
|
|
{
|
|
throw new BlException(ErrorResource.AKivalsztottTipusuCimMarFellettveve);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
private void SetAlkalmazottDataForUpdate(ICim alkalmazottCim, FelhasznaloElerhetosegCimCO adat, bool isKirSzinkron)
|
|
{
|
|
if (isKirSzinkron)
|
|
{
|
|
alkalmazottCim.IranyitoSzam = adat.Iranyitoszam ?? alkalmazottCim.IranyitoSzam;
|
|
alkalmazottCim.Varos = adat.HelysegNev ?? alkalmazottCim.Varos;
|
|
alkalmazottCim.Kozterulet = adat.KozteruletNev ?? alkalmazottCim.Kozterulet;
|
|
alkalmazottCim.KozteruletJellegeNev = adat.KozteruletTipusNev ?? alkalmazottCim.KozteruletJellegeNev;
|
|
alkalmazottCim.Hazszam = adat.Hazszam ?? alkalmazottCim.Hazszam;
|
|
alkalmazottCim.Emelet = adat.Emelet ?? alkalmazottCim.Emelet;
|
|
alkalmazottCim.Ajto = adat.Ajto ?? alkalmazottCim.Ajto;
|
|
alkalmazottCim.CimTipusa = adat.CimTipus.Value;
|
|
alkalmazottCim.Orszag = adat.Orszag.Value;
|
|
alkalmazottCim.Alapertelmezett = adat.Alapertelmezett;
|
|
}
|
|
else
|
|
{
|
|
alkalmazottCim.IranyitoSzam = adat.Iranyitoszam;
|
|
alkalmazottCim.Varos = adat.HelysegNev;
|
|
alkalmazottCim.Kozterulet = adat.KozteruletNev;
|
|
alkalmazottCim.KozteruletJellegeNev = adat.KozteruletTipusNev;
|
|
alkalmazottCim.Hazszam = adat.Hazszam;
|
|
alkalmazottCim.Emelet = adat.Emelet;
|
|
alkalmazottCim.Ajto = adat.Ajto;
|
|
alkalmazottCim.CimTipusa = adat.CimTipus.Value;
|
|
alkalmazottCim.Orszag = adat.Orszag.Value;
|
|
alkalmazottCim.Alapertelmezett = adat.Alapertelmezett;
|
|
}
|
|
}
|
|
|
|
private void UpdateAlkalmazottCimKovTanev(IDalHandler h, int? kovTanevId, int alkalmazottId)
|
|
{
|
|
//entityhandler-ben lenne a helye, de a mentés folyamatában a sorrendezés miatt, nem kerülhet még oda
|
|
if (alkalmazottId > 0 && kovTanevId.HasValue && kovTanevId != TanevId)
|
|
{
|
|
h.Alkalmazott().FollowUpAlkalmazottCim(IntezmenyId, TanevId, kovTanevId.Value, alkalmazottId);
|
|
}
|
|
}
|
|
|
|
public AlkalmazottElerhetosegTelCO GetAlkalmazottElerhetosegTelById(int id)
|
|
{
|
|
var co = new AlkalmazottElerhetosegTelCO();
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Telefon();
|
|
var oTelefon = dal.Get(id);
|
|
co.ID = oTelefon.ID;
|
|
co.Alapertelmezett = oTelefon.Alapertelmezett;
|
|
co.Telefonszam = oTelefon.TelefonSzam;
|
|
co.AlkalmazottId = oTelefon.FelhasznaloId;
|
|
co.Leiras = oTelefon.Leiras;
|
|
co.TelefonTipusa = oTelefon.TelefonTipusa;
|
|
});
|
|
|
|
return co;
|
|
}
|
|
|
|
public void AlkalmazottGondviseloCimTorlese(int id)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h => h.Cim().Delete(id));
|
|
}
|
|
|
|
public void AlkalmazottElerhetosegTelTorlese(int id)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Telefon();
|
|
dal.Delete(id);
|
|
});
|
|
}
|
|
|
|
public bool HasAlkalmazottAlapertelmezettTelefon(int id)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var felhasznaloDal = h.Felhasznalo();
|
|
var alkalmazott = felhasznaloDal.Get(id);
|
|
return alkalmazott.Telefon.Any(x => x.Alapertelmezett && !x.Torolt);
|
|
});
|
|
}
|
|
|
|
public AlkalmazottElerhetosegEmailCO GetAlkalmazottElerhetosegEmailById(int id)
|
|
{
|
|
var co = new AlkalmazottElerhetosegEmailCO();
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var oEmail = h.Email().Get(id);
|
|
|
|
co.ID = oEmail.ID;
|
|
co.Alapertelmezett = oEmail.Alapertelmezett;
|
|
co.AlkalmazottId = oEmail.FelhasznaloId;
|
|
co.EmailCim = oEmail.EmailCim;
|
|
co.EmailTipusa = oEmail.EmailTipusa;
|
|
});
|
|
return co;
|
|
}
|
|
|
|
public void AlkalmazottElerhetosegEmailTorlese(int id)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Email();
|
|
dal.Delete(id);
|
|
});
|
|
}
|
|
|
|
public bool HasAlkalmazottAlapertelmezettEmail(int id)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var felhasznaloDal = h.Felhasznalo();
|
|
var alkalmazott = felhasznaloDal.Get(id);
|
|
return alkalmazott.Email.Any(x => x.Alapertelmezett && !x.Torolt);
|
|
});
|
|
}
|
|
|
|
public void ValidateForDuplicateEntriesAlkalmazottElerhetoseg<T>(int alkalmazottId, T recordValue, ValidateElerhetosegType validateType, int recordType, int? recordID)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, handler =>
|
|
{
|
|
var alkalmazottEntity = handler.Alkalmazott().Get(alkalmazottId);
|
|
switch (validateType)
|
|
{
|
|
case ValidateElerhetosegType.Telefon:
|
|
if (recordID.HasValue && recordID.Value != 0)
|
|
{
|
|
if (alkalmazottEntity.Telefon.Any(x => x.FelhasznaloId <= 0 && x.TelefonSzam.Equals(recordValue) && x.TelefonTipusa == recordType && !x.Torolt && recordID != x.ID))
|
|
{
|
|
throw new BlException(ErrorResource.AMegadottTelefonszamMarRogzitveVan);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (alkalmazottEntity.Telefon.Any(x => x.FelhasznaloId <= 0 && x.TelefonSzam.Equals(recordValue) && x.TelefonTipusa == recordType && !x.Torolt))
|
|
{
|
|
throw new BlException(ErrorResource.AMegadottTelefonszamMarRogzitveVan);
|
|
}
|
|
}
|
|
break;
|
|
case ValidateElerhetosegType.Email:
|
|
if (recordID.HasValue && recordID.Value != 0)
|
|
{
|
|
if (alkalmazottEntity.Email.Any(x => x.FelhasznaloId <= 0 && x.EmailCim.Equals(recordValue) && x.EmailTipusa == recordType && !x.Torolt && recordID != x.ID))
|
|
{
|
|
throw new BlException(ErrorResource.AMegadottEmailcimMarRogzitveVan);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (alkalmazottEntity.Email.Any(x => x.FelhasznaloId <= 0 && x.EmailCim.Equals(recordValue) && x.EmailTipusa == recordType && !x.Torolt))
|
|
{
|
|
throw new BlException(ErrorResource.AMegadottEmailcimMarRogzitveVan);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
public TovabbiMunkaugyiAdatokCO GetTovabbiMunkaugyiAdatokAdatai(int modelId)
|
|
{
|
|
var co = new TovabbiMunkaugyiAdatokCO();
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.TovabbiMunkaugyiAdatok();
|
|
var oTovabbiMunkaugyiAdatok = dal.Get(modelId);
|
|
|
|
co.MunkaidoKedvezmenyOka = oTovabbiMunkaugyiAdatok.MunkaidoKedvezmenyOka;
|
|
co.ID = oTovabbiMunkaugyiAdatok.ID;
|
|
co.AlkalmazottId = oTovabbiMunkaugyiAdatok.AlkalmazottId;
|
|
co.KotelezoOraszam = oTovabbiMunkaugyiAdatok.KotelezoOraszam;
|
|
co.MunkaidoKedvezmenyOraszam = oTovabbiMunkaugyiAdatok.MunkaidoKedvezmenyOraszam;
|
|
if (oTovabbiMunkaugyiAdatok.BesorolasiFokozat.HasValue)
|
|
{
|
|
co.BesorolasiFokozat = oTovabbiMunkaugyiAdatok.BesorolasiFokozat;
|
|
}
|
|
else
|
|
{
|
|
co.BesorolasiFokozat = (int)BesorolasiFokozatTipusEnum.na;
|
|
}
|
|
co.MunkaKor = oTovabbiMunkaugyiAdatok.MunkakorTipusa;
|
|
co.FoglalkoztatasModja = oTovabbiMunkaugyiAdatok.MunkaviszonyTipusa;
|
|
co.AlkalmazasKezdete = oTovabbiMunkaugyiAdatok.AlkalmazasKezdete;
|
|
co.AlkalmazasVege = oTovabbiMunkaugyiAdatok.AlkalmazasMegszunese;
|
|
co.FeladatellatasiHely = oTovabbiMunkaugyiAdatok.FeladatEllatasiHelyId;
|
|
co.Nyugdijas = oTovabbiMunkaugyiAdatok.Nyugdijas;
|
|
co.FoglalkoztatasTipusa = oTovabbiMunkaugyiAdatok.FoglalkoztatasTipus;
|
|
co.ReszmunkaidosSzazalek = oTovabbiMunkaugyiAdatok.ReszmunkaidoSzazalek;
|
|
co.VezetoiOraszamOka = oTovabbiMunkaugyiAdatok.VezetoiOraszamok;
|
|
});
|
|
return co;
|
|
}
|
|
|
|
public InfoTovabbiMunkaugyiAdatokPopUpCO GetTovabbiMunkaugyiAdatokAdataiForInfoWindow(int modelId)
|
|
{
|
|
var co = new InfoTovabbiMunkaugyiAdatokPopUpCO();
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.TovabbiMunkaugyiAdatok(GridParameters);
|
|
var oTovabbiMunkaugyiAdatok = dal.Get(modelId);
|
|
|
|
co.ID = oTovabbiMunkaugyiAdatok.ID;
|
|
co.AlkalmazottId = oTovabbiMunkaugyiAdatok.AlkalmazottId;
|
|
co.KotelezoOraszam = oTovabbiMunkaugyiAdatok.KotelezoOraszam;
|
|
co.MunkaidoKedvezmenyOraszam = oTovabbiMunkaugyiAdatok.MunkaidoKedvezmenyOraszam;
|
|
if (oTovabbiMunkaugyiAdatok.BesorolasiFokozat.HasValue)
|
|
{
|
|
co.PedagogusFokozat = oTovabbiMunkaugyiAdatok.BesorolasiFokozat;
|
|
}
|
|
else
|
|
{
|
|
co.PedagogusFokozat = (int)BesorolasiFokozatTipusEnum.na;
|
|
}
|
|
co.MunkaKor = oTovabbiMunkaugyiAdatok.MunkakorTipusa;
|
|
co.FoglalkoztatasiJogviszony = oTovabbiMunkaugyiAdatok.MunkaviszonyTipusa;
|
|
co.AlkalmazasKezdete = oTovabbiMunkaugyiAdatok.AlkalmazasKezdete;
|
|
co.AlkalmazasVege = oTovabbiMunkaugyiAdatok.AlkalmazasMegszunese;
|
|
co.FeladatellatasiHely = oTovabbiMunkaugyiAdatok.FeladatEllatasiHely.MukodesiHely.Nev;
|
|
co.Nyugdijas = oTovabbiMunkaugyiAdatok.Nyugdijas;
|
|
co.MunkaidoKedvezmenyOka = oTovabbiMunkaugyiAdatok.MunkaidoKedvezmenyOka;
|
|
co.FoglalkoztatasTipusa = oTovabbiMunkaugyiAdatok.FoglalkoztatasTipus;
|
|
});
|
|
return co;
|
|
}
|
|
|
|
public void CreateOrUpdateTovabbiMunkaugyiAdatok(TovabbiMunkaugyiAdatokCO data, bool isKlebelsbergKozpontOrNSZFH, bool isNszfhUjSzkt)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.TovabbiMunkaugyiAdatok();
|
|
var ujMunkaugyi = true;
|
|
ITovabbiMunkaugyiAdatok munkaugyiDto;
|
|
if (data.ID > 0)
|
|
{
|
|
ujMunkaugyi = false;
|
|
munkaugyiDto = dal.Get(data.ID);
|
|
}
|
|
else
|
|
{
|
|
munkaugyiDto = dal.Get();
|
|
}
|
|
|
|
munkaugyiDto.AlkalmazottId = data.AlkalmazottId.Value;
|
|
if (!(isKlebelsbergKozpontOrNSZFH && data.FoglalkoztatasTipusa == (int)FoglalkoztatasTipusaEnum.Oraado) && data.MunkaidoKedvezmenyOraszam.HasValue)
|
|
{
|
|
munkaugyiDto.MunkaidoKedvezmenyOraszam = data.MunkaidoKedvezmenyOraszam.Value;
|
|
}
|
|
|
|
munkaugyiDto.Nyugdijas = data.Nyugdijas;
|
|
|
|
if (data.MunkaKor.HasValue)
|
|
{
|
|
munkaugyiDto.MunkakorTipusa = (int)data.MunkaKor;
|
|
}
|
|
else
|
|
{
|
|
munkaugyiDto.MunkakorTipusa = (int)MunkakorTipusEnum.na;
|
|
}
|
|
|
|
munkaugyiDto.MunkaviszonyTipusa = data.FoglalkoztatasModja ?? (int)MunkaviszonyTipusEnum.na;
|
|
if (data.AlkalmazasKezdete.HasValue && data.AlkalmazasVege.HasValue)
|
|
{
|
|
if (data.AlkalmazasKezdete < data.AlkalmazasVege)
|
|
{
|
|
munkaugyiDto.AlkalmazasKezdete = data.AlkalmazasKezdete;
|
|
munkaugyiDto.AlkalmazasMegszunese = data.AlkalmazasVege;
|
|
}
|
|
else
|
|
{
|
|
throw new BlException(ErrorResource.AlkalmazasKezdeteDatumNemLehetNagyobbMintAVege);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
munkaugyiDto.AlkalmazasKezdete = data.AlkalmazasKezdete;
|
|
munkaugyiDto.AlkalmazasMegszunese = data.AlkalmazasVege;
|
|
}
|
|
|
|
if (!(isKlebelsbergKozpontOrNSZFH && data.FoglalkoztatasTipusa == (int)FoglalkoztatasTipusaEnum.Oraado))
|
|
{
|
|
munkaugyiDto.MunkaidoKedvezmenyOka = data.MunkaidoKedvezmenyOka;
|
|
}
|
|
munkaugyiDto.BesorolasiFokozat = data.BesorolasiFokozat;
|
|
|
|
if (data.FoglalkoztatasTipusa.HasValue)
|
|
{
|
|
munkaugyiDto.FoglalkoztatasTipus = data.FoglalkoztatasTipusa;
|
|
}
|
|
|
|
if (data.FeladatellatasiHely.HasValue && data.FeladatellatasiHely.Value != munkaugyiDto.FeladatEllatasiHelyId)
|
|
{
|
|
var feladatellatasiHely = h.FeladatEllatasiHelyDal(GridParameters).Get(data.FeladatellatasiHely.Value);
|
|
munkaugyiDto.FeladatEllatasiHely = feladatellatasiHely;
|
|
}
|
|
|
|
if (data.VezetoiOraszamOka.HasValue)
|
|
{
|
|
munkaugyiDto.VezetoiOraszamok = data.VezetoiOraszamOka;
|
|
}
|
|
else
|
|
{
|
|
throw new BlException(isNszfhUjSzkt ? ErrorResource.VezetoiMegbizasMegadasaKotelezo : ErrorResource.VezetoiOraszamOkaMegadasaKotelezo);
|
|
}
|
|
|
|
if ((isKlebelsbergKozpontOrNSZFH && data.FoglalkoztatasTipusa.HasValue && data.FoglalkoztatasTipusa.Value == (int)FoglalkoztatasTipusaEnum.Oraado) || data.VezetoiOraszamOka.Value != (int)VezetoiOraszamokTipusEnum.Nincs || !isKlebelsbergKozpontOrNSZFH)
|
|
{
|
|
if (data.KotelezoOraszam.HasValue)
|
|
{
|
|
munkaugyiDto.KotelezoOraszam = data.KotelezoOraszam.Value;
|
|
}
|
|
else
|
|
{
|
|
throw new BlException(ErrorResource.AKotelezoOraszamMezoMegadasaKotelezoAMunkaugyiAdatokTabFulon);
|
|
}
|
|
munkaugyiDto.MunkaidoKedvezmenyOka = data.MunkaidoKedvezmenyOka;
|
|
munkaugyiDto.MunkaidoKedvezmenyOraszam = data.MunkaidoKedvezmenyOraszam;
|
|
}
|
|
|
|
if (isKlebelsbergKozpontOrNSZFH && data.FoglalkoztatasTipusa.HasValue && data.FoglalkoztatasTipusa.Value == (int)FoglalkoztatasTipusaEnum.Reszmunkaidos)
|
|
{
|
|
if (data.ReszmunkaidosSzazalek.HasValue)
|
|
{
|
|
munkaugyiDto.ReszmunkaidoSzazalek = data.ReszmunkaidosSzazalek;
|
|
}
|
|
else
|
|
{
|
|
throw new BlException(ErrorResource.AReszmunkaidoSzazalekMezoMegadasaKotelezoAMunkaugyiAdatokTabFulon);
|
|
}
|
|
}
|
|
|
|
if (data.FoglalkoztatasTipusa.HasValue && data.FoglalkoztatasTipusa.Value != (int)FoglalkoztatasTipusaEnum.Oraado && data.VezetoiOraszamOka.HasValue && data.VezetoiOraszamOka.Value == (int)VezetoiOraszamokTipusEnum.Nincs)
|
|
{
|
|
munkaugyiDto.KotelezoOraszam = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue<double>(RendszerBeallitasTipusEnum.Egy_statuszra_juto_kotelezo_oraszam);
|
|
}
|
|
|
|
if (!data.MunkaidoKedvezmenyOka.HasValue)
|
|
{
|
|
munkaugyiDto.MunkaidoKedvezmenyOraszam = null;
|
|
}
|
|
|
|
munkaugyiDto.TanevId = TanevId;
|
|
|
|
if (ujMunkaugyi)
|
|
{
|
|
dal.Insert(munkaugyiDto);
|
|
}
|
|
else
|
|
{
|
|
dal.Update(munkaugyiDto);
|
|
}
|
|
});
|
|
}
|
|
|
|
public DataSet GetTovabbiMunkaugyiAdatokGrid(int tanarId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.TovabbiMunkaugyiAdatok(GridParameters);
|
|
return dal.GetTovabbiMunkaugyiAdatokGrid(tanarId);
|
|
});
|
|
}
|
|
|
|
public string GetAlkalmazottNevById(int id)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.GetAlkalmazottNevById(id, TanevId, IntezmenyId);
|
|
});
|
|
}
|
|
|
|
public bool IsKozossegiSzolgalatKezelo()
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.IsKozossegiSzolgalatKezelo(FelhasznaloId, TanevId);
|
|
});
|
|
}
|
|
|
|
public bool IsPortasMunkakor()
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
var result = dal.IsPortasMunkakor(FelhasznaloId, TanevId);
|
|
|
|
return result;
|
|
});
|
|
}
|
|
|
|
public bool IsLEPKezelo()
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.IsLEPKezelo(FelhasznaloId, TanevId);
|
|
});
|
|
}
|
|
|
|
public bool IsAlkalmazottPedagogus()
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
var isAlkalmazottPedagogus = dal.IsAlkalmazottPedagogus(IntezmenyId, TanevId, FelhasznaloId);
|
|
return isAlkalmazottPedagogus;
|
|
});
|
|
}
|
|
|
|
public KirAlkalmazottAlapadatok GetAlkalmazottAlapadatok(int id)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.GetAlkalmazottAlapadatok(id, TanevId, IntezmenyId);
|
|
|
|
});
|
|
}
|
|
|
|
public string GetAlkalmazottSztszKod(int alkalmazottId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.Get(alkalmazottId).SZTSZKod;
|
|
});
|
|
}
|
|
|
|
public KirAlkalmazottMunkaugyiAdatok GetAlkalmazottElsodlegesMunkaugyiAdatok(int id)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.GetAlkalmazottElsodlegesMunkaugyiAdatok(id, TanevId);
|
|
});
|
|
}
|
|
|
|
#region Export helpers
|
|
|
|
public DataSet GetAlkalmazottakLakcimmelExport(AlkalmazottSearchCo co, bool isShowId = false)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
|
|
var dataSet = dal.GetAlkalmazottakLakcimmelExcelExport(TanevId, co.ConvertToPco(), isShowId);
|
|
var dataTable = dataSet.Tables[0];
|
|
dataTable.Columns.Remove("NeveElotagNelkul");
|
|
|
|
return dataSet;
|
|
});
|
|
}
|
|
|
|
public MemoryStream GetAlkalmazottakLakcimmelExcelExport(AlkalmazottSearchCo co)
|
|
{
|
|
var dataSet = GetAlkalmazottakLakcimmelExport(co);
|
|
var dataTable = dataSet.Tables[0];
|
|
ExportLogic.TryCreateHeaderIfNotExist(dataTable);
|
|
|
|
var stream = new MemoryStream();
|
|
|
|
using (var excel = new ExcelPackage(stream))
|
|
{
|
|
var workSheet = excel.Workbook.Worksheets.Add(AlkalmazottResource.AlkalmazottakLakcimmel);
|
|
|
|
workSheet.Cells[1, 1].LoadFromDataTable(dataTable, true);
|
|
|
|
ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, dataTable.Columns.Count]);
|
|
|
|
workSheet.Column(3).Style.Numberformat.Format = SDAFormat.ShortDate;
|
|
workSheet.Cells.AutoFitColumns();
|
|
excel.Save();
|
|
}
|
|
|
|
stream.Position = 0;
|
|
|
|
return stream;
|
|
}
|
|
|
|
public MemoryStream GetAlkalmazottakMunkaugyiAdataiExcelExport(bool isKlebersbergOrNSZFH, AlkalmazottSearchCo co, IKozpontiKretaHelper kozpontiKretaHelper, bool isSelectedTanev21_22OrLater = false)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
|
|
var dataSet = dal.GetAlkalmazottakMunkaugyiAdataiExcelExport(TanevId, isKlebersbergOrNSZFH, IntezmenyId, IntezmenyAzonosito, co.ConvertToPco(), isSelectedTanev21_22OrLater);
|
|
var dataTable = dataSet.Tables[0].ConnectDictionaryColumns();
|
|
ExportLogic.TryCreateHeaderIfNotExist(dataTable);
|
|
|
|
//NOTE: Datatable oszlopnevei hogy ne kelljen beégetni
|
|
var columnNames = dataTable.Columns.Cast<DataColumn>()
|
|
.Select(x => x.ColumnName)
|
|
.ToArray();
|
|
|
|
var stream = new MemoryStream();
|
|
|
|
dataTable = dataTable.AsEnumerable().OrderBy(x => x.Field<string>(FelhasznalokResource.AlkalmazottTeljesNeve)).ThenBy(e => e.Field<int>(columnNames[0])).ThenBy(e => e.Field<int>(columnNames[1])).CopyToDataTable();
|
|
|
|
ReplaceKotelezoOraszamFromKTR(dataTable, kozpontiKretaHelper);
|
|
|
|
using (var excel = new ExcelPackage(stream))
|
|
{
|
|
var workSheet = excel.Workbook.Worksheets.Add(AlkalmazottResource.AlkalmazottakMunkaugyiAdatai);
|
|
dataTable.Columns.Remove(columnNames[0]);
|
|
dataTable.Columns.Remove(columnNames[1]);
|
|
|
|
workSheet.Cells[1, 1].LoadFromDataTable(dataTable, true);
|
|
|
|
ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, dataTable.Columns.Count]);
|
|
ExportLogic.SetRowColorAlternate(workSheet, dataTable.Rows.Count);
|
|
|
|
workSheet.Cells.AutoFitColumns();
|
|
|
|
if (isKlebersbergOrNSZFH)
|
|
{
|
|
//Fontos a dataTable-ben visszaadott oszlopok sorszáma!!! Jelenleg a 15 = 'Pedagógus heti óraszáma'
|
|
CustomEnvironmentMethods.Klebersberg.DeleteColumnFromWorksheet(workSheet, 15);
|
|
}
|
|
|
|
excel.Save();
|
|
}
|
|
|
|
stream.Position = 0;
|
|
|
|
return stream;
|
|
});
|
|
}
|
|
|
|
public MemoryStream GetAlkalmazottakSzemelyiAdataiExcelExport(AlkalmazottSearchCo co)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
|
|
var dataSet = dal.GetAlkalmazottakSzemelyiAdataiExcelExport(TanevId, co.ConvertToPco());
|
|
var dataTable = dataSet.Tables[0];
|
|
ExportLogic.TryCreateHeaderIfNotExist(dataTable);
|
|
var stream = new MemoryStream();
|
|
|
|
using (var excel = new ExcelPackage(stream))
|
|
{
|
|
var workSheet = excel.Workbook.Worksheets.Add(AlkalmazottResource.AlkalmazottakSzemelyiAdatai);
|
|
|
|
workSheet.Cells[1, 1].LoadFromDataTable(dataTable, true);
|
|
|
|
ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, dataTable.Rows.Count]);
|
|
|
|
workSheet.Column(12).Style.Numberformat.Format = SDAFormat.ShortDate;
|
|
workSheet.Cells.AutoFitColumns();
|
|
|
|
excel.Save();
|
|
}
|
|
|
|
stream.Position = 0;
|
|
|
|
return stream;
|
|
});
|
|
}
|
|
|
|
#endregion Export helpers
|
|
|
|
public void UpdateIktSzandeknyilatkozat(int tanarId, bool isElfogadottSzandeknyilatkozat)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
var alkalmazott = dal.Get(tanarId);
|
|
alkalmazott.ElfogadottSzandeknyilatkozat = isElfogadottSzandeknyilatkozat;
|
|
dal.Update(alkalmazott);
|
|
});
|
|
}
|
|
|
|
public DataSet TanevValtasAlkalmazottTorlesKereses()
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott(GridParameters);
|
|
return dal.TanevValtasAlkalmazottTorlesKereses(TanevId);
|
|
});
|
|
}
|
|
|
|
public List<int> GetAlkalmazottIds(int? alkalmazottFilterId)
|
|
{
|
|
var result = new List<int>();
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
var ds = dal.GetAlkalmazottakForTavolletjelento(alkalmazottFilterId, TanevId, IntezmenyId);
|
|
|
|
foreach (DataRow row in ds.Tables[0].Rows)
|
|
{
|
|
result.Add(row.Field<int>("ID"));
|
|
}
|
|
});
|
|
|
|
return result;
|
|
}
|
|
|
|
public Dictionary<string, string> GetAllAlkalmazott(int? alkalmazottFilterId, bool isNemCsakFointezmenyesek, bool isOktatasiAzonositoval)
|
|
{
|
|
var result = new Dictionary<string, string>();
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott(GridParameters);
|
|
DataSet ds = null;
|
|
if (isNemCsakFointezmenyesek)
|
|
{
|
|
ds = dal.GetAlkalmazottak(TanevId, alkalmazottFilterId.HasValue ? new List<int> { alkalmazottFilterId.Value } : null);
|
|
}
|
|
else
|
|
{
|
|
ds = dal.GetAlkalmazottakForTavolletjelento(alkalmazottFilterId, TanevId, IntezmenyId);
|
|
}
|
|
|
|
foreach (DataRow row in ds.Tables[0].Rows)
|
|
{
|
|
result.Add(
|
|
row.Field<int>("ID").ToString(),
|
|
!isOktatasiAzonositoval ? row.Field<string>("Nev") : string.Format("{0} ({1})", row.Field<string>("Nev"), row.Field<string>("OktatasiAzonosito"))
|
|
);
|
|
}
|
|
});
|
|
|
|
return result;
|
|
}
|
|
|
|
public Dictionary<string, string> GetAllAlkalmazottByIntezmeny(bool isOktatasiAzonositoval, int tanevId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var result = new Dictionary<string, string>();
|
|
|
|
var ds = h.Alkalmazott().GetAllAlkalmazottByIntezmeny(IntezmenyId, tanevId);
|
|
foreach (var row in ds.Tables[0].AsEnumerable())
|
|
{
|
|
result.Add(row.Field<Guid>("IdpEgyediAzonosito").ToString(), !isOktatasiAzonositoval ? row.Field<string>("Nev") : string.Format("{0} ({1})", row.Field<string>("Nev"), row.Field<string>("OktatasiAzonosito")));
|
|
}
|
|
return result;
|
|
});
|
|
}
|
|
|
|
public IDictionary<string, string> GetAlkalmazottak()
|
|
{
|
|
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
|
LogicUtil.CreateDropdownContent(h.Alkalmazott().GetAlkalmazottak(TanevId), "ID", "Nev", null, false));
|
|
|
|
return result;
|
|
}
|
|
|
|
public DataSet GetAlkalmazottNeveEsEmailCime(int? emailTipus, IList<int> vezetoOraszamOkok, int? userId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott(GridParameters);
|
|
return dal.GetAlkalmazottNeveEsEmailCime(TanevId, emailTipus, vezetoOraszamOkok, userId);
|
|
});
|
|
}
|
|
|
|
public bool HasSZTSZKOD(int alkalmazottId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.HasSZTSZKOD(alkalmazottId, TanevId);
|
|
});
|
|
}
|
|
|
|
public bool IsIgazgatoOrHasTTF(int alkalmazottId)
|
|
{
|
|
return IsIgazgato(alkalmazottId) || HasTTF(alkalmazottId);
|
|
}
|
|
|
|
public bool IsIgazgato(int alkalmazottId)
|
|
{
|
|
var ds = GetAlkalmazottNeveEsEmailCime(null, new List<int> { (int)VezetoiOraszamokTipusEnum.igazgato }, alkalmazottId);
|
|
return ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0;
|
|
}
|
|
|
|
public bool HasTTF(int alkalmazottId)
|
|
{
|
|
var list = new TantargyFelosztasHelper(ConnectionType).GetTantargyFelosztasCoList(new TantargyFelosztasKeresesCo { Tanar = alkalmazottId });
|
|
return list.Count > 0;
|
|
}
|
|
|
|
public bool HasValidMunkaviszony(int alkalmazottId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.HasValidMunkaviszony(alkalmazottId, TanevId);
|
|
});
|
|
}
|
|
|
|
public Dictionary<int, TavolletAlkalmazottCo> GetAlkalmazottIDTavolletAlkalmazott(IList<int> alkalmazottIds)
|
|
{
|
|
var result = new Dictionary<int, TavolletAlkalmazottCo>();
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
var ds = dal.GetAlkalmazottIDTavolletAlkalmazott(alkalmazottIds, null);
|
|
|
|
foreach (DataRow row in ds.Tables[0].Rows)
|
|
{
|
|
result.Add(row.Field<int>("ID"), new TavolletAlkalmazottCo
|
|
{
|
|
AlkalmazottGuid = Guid.Parse(row.Field<string>("C_EGYEDIAZONOSITO")),
|
|
AlkalmazottNev = row.Field<string>("C_NYOMTATASINEV"),
|
|
AlkalmazottSzTSz = row.Field<string>("C_SZTSZKOD"),
|
|
FunkcioTerulet = row.Field<string>("C_FUNKCIOTERULET"),
|
|
});
|
|
}
|
|
});
|
|
|
|
return result;
|
|
}
|
|
|
|
public Dictionary<string, TavolletAlkalmazottCo> GetAlkalmazottSztszAzonositoTavolletAlkalmazott(IList<string> alkalmazottSztszAzonositok)
|
|
{
|
|
var result = new Dictionary<string, TavolletAlkalmazottCo>();
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
var ds = dal.GetAlkalmazottIDTavolletAlkalmazott(null, alkalmazottSztszAzonositok);
|
|
|
|
foreach (DataRow row in ds.Tables[0].Rows)
|
|
{
|
|
var sztsz = row.Field<string>("C_SZTSZKOD");
|
|
if (result.ContainsKey(sztsz))
|
|
{
|
|
result[sztsz].AlkalmazottNev += $", {row.Field<string>("C_NYOMTATASINEV")}";
|
|
continue;
|
|
}
|
|
|
|
result.Add(sztsz, new TavolletAlkalmazottCo
|
|
{
|
|
AlkalmazottGuid = Guid.Parse(row.Field<string>("C_EGYEDIAZONOSITO")),
|
|
AlkalmazottNev = row.Field<string>("C_NYOMTATASINEV"),
|
|
AlkalmazottSzTSz = row.Field<string>("C_SZTSZKOD"),
|
|
FunkcioTerulet = row.Field<string>("C_FUNKCIOTERULET"),
|
|
});
|
|
}
|
|
});
|
|
|
|
return result;
|
|
}
|
|
|
|
public string GetSZTSZKOD(int felhasznaloId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.GetSZTSZKOD(felhasznaloId, TanevId);
|
|
});
|
|
}
|
|
|
|
public int GetAlkalmazottIdByGUID(string alkalmazottGuid)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.Alkalmazott();
|
|
return dal.GetAlkalmazottIdByGUID(alkalmazottGuid, TanevId, IntezmenyId);
|
|
});
|
|
}
|
|
|
|
public List<AlkalmazottItemCo> GetAlkalmazottCoList(AlkalmazottSearchCo searchCo = null)
|
|
{
|
|
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Alkalmazott().GetAlkalmazottData(TanevId));
|
|
|
|
var result = new List<AlkalmazottItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new AlkalmazottItemCo(dataRow, true);
|
|
result.Add(item);
|
|
}
|
|
|
|
#region Filtering
|
|
|
|
if (searchCo != null)
|
|
{
|
|
if (searchCo.FeladatEllatasiHelyId.HasValue || searchCo.SearchPedagogusFokozat.HasValue || !string.IsNullOrWhiteSpace(searchCo.SearchNyugdijas)
|
|
|| searchCo.NABesorolasiFokozat == true || searchCo.NincsMunkakor == true || searchCo.NincsFoglalkoztatasModja == true
|
|
|| searchCo.NemCsillagosMunkakor == true || searchCo.NemBelepettAlkalmazottKetHet == true || searchCo.NincsBelepesAlkalmazott == true
|
|
|| searchCo.NincsEmail == true || searchCo.AktivAlkalmazottak == true)
|
|
{
|
|
result = result.Where(x =>
|
|
x.MunkaugyiAdatokId.IsEntityId() &&
|
|
(!x.AlkalmazasKezdeteDate.HasValue || x.AlkalmazasKezdeteDate <= DateTime.Now) &&
|
|
(!x.AlkalmazasMegszuneseDate.HasValue || x.AlkalmazasMegszuneseDate >= DateTime.Now)).ToList();
|
|
}
|
|
|
|
if (searchCo.NincsAlkalmazottSZTSZ == true)
|
|
{
|
|
result = result.Where(x =>
|
|
x.IsBetoltetlenAllashely == false &&
|
|
x.MunkakorTipusId != (int)MunkakorTipusEnum.KulsoGyakorlatiHely &&
|
|
x.MunkakorTipusId != (int)MunkakorTipusEnum.Hittanoktato &&
|
|
!x.FelhasznaloNyomtatasiNev.StartsWith("[")).ToList();
|
|
}
|
|
|
|
if (searchCo.NincsEmail == true)
|
|
{
|
|
result = result.Where(x => string.IsNullOrWhiteSpace(x.AlapertelmezettEmailCim)).ToList();
|
|
}
|
|
|
|
if (searchCo.NincsBelepesAlkalmazott == true)
|
|
{
|
|
result = result.Where(x => string.IsNullOrWhiteSpace(x.BejelentkezesiNev)).ToList();
|
|
}
|
|
|
|
if (searchCo.NemBelepettAlkalmazottKetHet == true)
|
|
{
|
|
result = result.Where(x => x.UtolsoBelepes == null || x.UtolsoBelepes <= DateTime.Now.AddDays(-14)).ToList();
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(searchCo.Nev))
|
|
{
|
|
result = result.Where(x => x.FelhasznaloNyomtatasiNevComparableString.Contains(searchCo.Nev.ToComparableString())).ToList();
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(searchCo.SzuletesiHely.ReplaceMultipleSpacesAndTrim()))
|
|
{
|
|
result = result.Where(x => x.FelhasznaloSzuletesiHely.Contains(searchCo.SzuletesiHely.ToComparableString())).ToList();
|
|
}
|
|
|
|
if (searchCo.NANem == true)
|
|
{
|
|
result = result.Where(x => (
|
|
!x.NemeId.IsEntityId() || x.NemeId == (int)NemEnum.NA) &&
|
|
!x.FelhasznaloNyomtatasiNev.ToComparableString().StartsWith("[ho") &&
|
|
!x.FelhasznaloNyomtatasiNev.ToComparableString().StartsWith("[bta")).ToList();
|
|
}
|
|
else if (searchCo.Nem.HasValue)
|
|
{
|
|
result = result.Where(x => x.NemeId == searchCo.Nem).ToList();
|
|
}
|
|
|
|
if (searchCo.SzuletesiDatumTol.HasValue)
|
|
{
|
|
result = result.Where(x => x.FelhasznaloSzuletesiIdo >= searchCo.SzuletesiDatumTol).ToList();
|
|
}
|
|
|
|
if (searchCo.SzuletesiDatumIg.HasValue)
|
|
{
|
|
result = result.Where(x => x.FelhasznaloSzuletesiIdo <= searchCo.SzuletesiDatumIg).ToList();
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(searchCo.OktatasiAzonosito))
|
|
{
|
|
var oktatasiAzonosito = searchCo.OktatasiAzonosito.Replace("_", string.Empty);
|
|
result = result.Where(x => !string.IsNullOrWhiteSpace(x.FelhasznaloOktatasiAzonositoComparableString) && x.FelhasznaloOktatasiAzonositoComparableString.StartsWith(oktatasiAzonosito.ToComparableString())).ToList();
|
|
}
|
|
|
|
if (searchCo.NABesorolasiFokozat == true)
|
|
{
|
|
result = result.Where(x => x.BesorolasiFokozatTipusId == (int)BesorolasiFokozatTipusEnum.na).ToList();
|
|
}
|
|
else if (searchCo.SearchPedagogusFokozat.HasValue)
|
|
{
|
|
result = result.Where(x => x.BesorolasiFokozatTipusId == searchCo.SearchPedagogusFokozat).ToList();
|
|
}
|
|
|
|
if (searchCo.NincsMunkakor == true)
|
|
{
|
|
result = result.Where(x => x.MunkakorTipusId == (int)MunkakorTipusEnum.na).ToList();
|
|
}
|
|
|
|
if (searchCo.NemCsillagosMunkakor == true)
|
|
{
|
|
var csillagosMunkakorok = new List<MunkakorTipusEnum>
|
|
{
|
|
MunkakorTipusEnum.AltalAnosIskolaiTanar,
|
|
MunkakorTipusEnum.gimnaziumi_tanar,
|
|
MunkakorTipusEnum.szakmai_elmeleti_tantargyat_oktato_tanar,
|
|
MunkakorTipusEnum.szakmai_tanar_szakoktato_gyakorlati_oktato,
|
|
MunkakorTipusEnum.kollegiumi_nevelotanar,
|
|
MunkakorTipusEnum.konyvtarostanar_tanito,
|
|
MunkakorTipusEnum.Iskolapszichologus,
|
|
MunkakorTipusEnum.FejlesztoPedagogus,
|
|
MunkakorTipusEnum.gyogypedagogus,
|
|
MunkakorTipusEnum.kozismereti_tantargyat_nemzetisegi_nyelven_oktato_tanar,
|
|
MunkakorTipusEnum.idegennyelvtanar,
|
|
MunkakorTipusEnum.testnevelo,
|
|
MunkakorTipusEnum.enekzene_tanar,
|
|
MunkakorTipusEnum.kozismereti_tantargyat_oktato_kozepiskolai_tanar,
|
|
MunkakorTipusEnum.kozismereti_tantargyat_oktato_tanar_szakkozepiskola,
|
|
MunkakorTipusEnum.KulsoGyakorlatiHely,
|
|
MunkakorTipusEnum.iskolatitkar,
|
|
MunkakorTipusEnum.gondozono_es_takarito,
|
|
MunkakorTipusEnum.laborans,
|
|
MunkakorTipusEnum.konyvtaros,
|
|
MunkakorTipusEnum.gyermek_es_ifjusagvedelmi_felelos,
|
|
MunkakorTipusEnum.pedagogiai_asszisztens,
|
|
MunkakorTipusEnum.gyogypedagogiai_asszisztens,
|
|
MunkakorTipusEnum.szabadido_szervezo,
|
|
MunkakorTipusEnum.pszichopedagogus,
|
|
MunkakorTipusEnum.muszaki_vezeto,
|
|
MunkakorTipusEnum.apolo,
|
|
MunkakorTipusEnum.uszomester,
|
|
MunkakorTipusEnum.rendszergazda,
|
|
MunkakorTipusEnum.munkaugyi_szemelyzeti_eloado,
|
|
MunkakorTipusEnum.gazdasagi_dolgozo,
|
|
MunkakorTipusEnum.muszaki_dolgozo,
|
|
MunkakorTipusEnum.oktatastechnikus,
|
|
MunkakorTipusEnum.ugyviteli_gepkezelo,
|
|
MunkakorTipusEnum.ugyviteli_dolgozo,
|
|
MunkakorTipusEnum.kisegito_dolgozo
|
|
}.Cast<int>().ToList();
|
|
|
|
result = result.Where(x => x.MunkakorTipusId.HasValue && !csillagosMunkakorok.Contains(x.MunkakorTipusId.Value)).ToList();
|
|
}
|
|
|
|
if (searchCo.NincsFoglalkoztatasModja == true)
|
|
{
|
|
result = result.Where(x => x.MunkaviszonyTipusId == (int)MunkaviszonyTipusEnum.na).ToList();
|
|
}
|
|
|
|
if (searchCo.FeladatEllatasiHelyId.IsEntityId())
|
|
{
|
|
result = result.Where(x => x.FeladatellatasihelyId == searchCo.FeladatEllatasiHelyId).ToList();
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(searchCo.SearchNyugdijas))
|
|
{
|
|
var isNyugdijas = Convert.ToBoolean(Convert.ToInt16(searchCo.SearchNyugdijas));
|
|
result = result.Where(x => x.IsNyugdijas == isNyugdijas).ToList();
|
|
}
|
|
|
|
if (searchCo.TanitottOsztalyId.IsEntityId())
|
|
{
|
|
var tantargyfelosztasItemCoList = new TantargyFelosztasHelper(ConnectionType).GetTantargyfelosztasCoList(osztalyCsoportId: searchCo.TanitottOsztalyId);
|
|
var tanitottOsztalyTanarIdList = tantargyfelosztasItemCoList.Select(x => x.TanarId).Distinct().ToList();
|
|
|
|
result = result.Where(x => tanitottOsztalyTanarIdList.Contains(x.Id)).ToList();
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(searchCo.Foallas))
|
|
{
|
|
var isFoallas = Convert.ToBoolean(Convert.ToInt16(searchCo.Foallas));
|
|
result = result.Where(x => x.IsFoallas == isFoallas).ToList();
|
|
}
|
|
|
|
if (searchCo.NincsAlkalmazottSZTSZ == true)
|
|
{
|
|
result = result.Where(x => x.SztszKod == null).ToList();
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(searchCo.SzervezetNev))
|
|
{
|
|
result = result.Where(x => x.SzervezetNeve.ToUpper().Contains(searchCo.SzervezetNev.ToUpper())).ToList();
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(searchCo.SzervezetAzonosito))
|
|
{
|
|
result = result.Where(x => x.SzervezetAzonositoja.ToUpper().Contains(searchCo.SzervezetAzonosito.ToUpper())).ToList();
|
|
}
|
|
|
|
if (searchCo.IsFromSzervezet)
|
|
{
|
|
if (searchCo.SzervezetId.IsEntityId())
|
|
{
|
|
result = result.Where(x => x.SzervezetId == searchCo.SzervezetId).ToList();
|
|
}
|
|
else
|
|
{
|
|
result = result.Where(x => x.SzervezetId.IsEntityId()).ToList();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
result = result.Where(x => !x.SzervezetId.IsEntityId()).ToList();
|
|
}
|
|
}
|
|
|
|
#endregion Filtering
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<AlkalmazottItemCo> GetAlkalmazottCoListBySzervezet(int? szervezetTipus = null, int? szervezetId = null)
|
|
{
|
|
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Alkalmazott().GetAlkalmazottData(TanevId));
|
|
|
|
var result = new List<AlkalmazottItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new AlkalmazottItemCo(dataRow, true);
|
|
if (item.SzervezetId.Equals(szervezetId))
|
|
{
|
|
result.Add(item);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<EszkozIgenylesItemCo> GetEszkozIRTanarokExcel()
|
|
{
|
|
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Alkalmazott().GetEszkozIgenylesAlkalmazottakExportData(TanevId, true));
|
|
|
|
var result = new List<EszkozIgenylesItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new EszkozIgenylesItemCo(dataRow);
|
|
if (!result.Any(x => x.Id == item.Id) && item.HasTanarAlkalmazottMunkakorTipus && Constants.FeltarAlkalmazottEszkozigenylesMunkakorTipusList.Contains(item.MunkakorTipusaId))
|
|
{
|
|
result.Add(item);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public List<EszkozIgenylesItemCo> GetEszkozIRNemTanarokExcel()
|
|
{
|
|
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Alkalmazott().GetEszkozIgenylesAlkalmazottakExportData(TanevId, true));
|
|
|
|
var result = new List<EszkozIgenylesItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new EszkozIgenylesItemCo(dataRow);
|
|
if (!result.Any(x => x.Id == item.Id) && !item.HasTanarAlkalmazottMunkakorTipus || (item.HasTanarAlkalmazottMunkakorTipus && !Constants.FeltarAlkalmazottEszkozigenylesMunkakorTipusList.Contains(item.MunkakorTipusaId)))
|
|
{
|
|
result.Add(item);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<EszkozIgenylesItemCo> GetEszkozIRAlkalmazottakFelhasznaloVagyNaploNelkulExcel()
|
|
{
|
|
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Alkalmazott().GetEszkozIgenylesAlkalmazottakExportData(TanevId, true));
|
|
|
|
var result = new List<EszkozIgenylesItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new EszkozIgenylesItemCo(dataRow);
|
|
if (!result.Any(x => x.Id == item.Id) && item.HasTanarAlkalmazottMunkakorTipus && Constants.FeltarAlkalmazottEszkozigenylesMunkakorTipusList.Contains(item.MunkakorTipusaId) && (!item.HasBelepes || !item.HasNaploSzerepkor))
|
|
{
|
|
result.Add(item);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<EszkozIgenylesItemCo> GetEszkozIRNemRegisztraltTanarokExcel()
|
|
{
|
|
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Alkalmazott().GetEszkozIgenylesAlkalmazottakExportData(TanevId, true));
|
|
|
|
var result = new List<EszkozIgenylesItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new EszkozIgenylesItemCo(dataRow);
|
|
if (!result.Any(x => x.Id == item.Id) && item.HasTanarAlkalmazottMunkakorTipus && Constants.FeltarAlkalmazottEszkozigenylesMunkakorTipusList.Contains(item.MunkakorTipusaId) && !item.HasEszkozIgenyles)
|
|
{
|
|
result.Add(item);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<EszkozIgenylesItemCo> GetEszkozIRRegisztraltTanarokExcel()
|
|
{
|
|
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Alkalmazott().GetEszkozIgenylesAlkalmazottakExportData(TanevId, false));
|
|
|
|
var result = new List<EszkozIgenylesItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new EszkozIgenylesItemCo(dataRow);
|
|
if (!result.Any(x => x.Id == item.Id) && item.HasTanarAlkalmazottMunkakorTipus && item.HasEszkozIgenyles)
|
|
{
|
|
result.Add(item);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<AlkalmazottElerhetosegTelCO> GetTelefonszamItemCoList(int alkalmazottId)
|
|
{
|
|
var ret = new List<AlkalmazottElerhetosegTelCO>();
|
|
var ds = GetTelefonSzam(alkalmazottId);
|
|
foreach (var item in ds.Tables[0].AsEnumerable())
|
|
{
|
|
ret.Add(new AlkalmazottElerhetosegTelCO
|
|
{
|
|
Alapertelmezett = item.Field<bool>("Alapertelmezett_BOOL"),
|
|
AlkalmazottId = alkalmazottId,
|
|
ID = item.Field<int>("ID"),
|
|
Telefonszam = item.Field<string>("TelefonSzam"),
|
|
TelefonTipusa = item.Field<int>("Tipus"),
|
|
});
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
public bool IsTeljesNevTulHosszu(string teljesNev)
|
|
{
|
|
return CommonUtilsDal.KopaszNev(teljesNev).Length > Core.Constants.General.CsaladiEsUtonevEgyuttMaxLength;
|
|
}
|
|
|
|
public bool AnyKozpontilagSzinkorizaltAlkalmazottFromList(List<int> alkalmazottIdList)
|
|
{
|
|
var result = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Alkalmazott().AnyKozpontilagSzinkorizaltAlkalmazottFromList(alkalmazottIdList, TanevId));
|
|
return result;
|
|
}
|
|
|
|
public void SaveAlkalmazottBankszamlaAdatok(int alkalmazottId, BankszamlaCo bankszamlaCo)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var alkalmazottDal = h.Alkalmazott();
|
|
var alkalmazott = alkalmazottDal.Get(alkalmazottId);
|
|
|
|
var bankszamlaszam = new StringBuilder(bankszamlaCo.BankszamlaSzam);
|
|
bankszamlaszam.Replace("-", "").Replace(" ", "");
|
|
h.Felhasznalo().SaveBankszamlaAdatok(false, alkalmazottId, bankszamlaszam.ToString(), bankszamlaCo.BankszamlaTulajdonos, bankszamlaCo.BankszamlaTulajdonosNeve.ReplaceMultipleSpacesAndTrim(), alkalmazottId);
|
|
|
|
var subject = EmailResource.BankszamlaAdatokModositasSubject;
|
|
string emailcim;
|
|
Guid? emailGuid;
|
|
|
|
var intezmenyCo = new IntezmenyHelper(new DalHandlerConnectionType(ConnectionType, h)).GetAktivIntezmenyNevCim();
|
|
var intezmenyUrl = CommonUtils.GetIntezmenyUrl(IntezmenyAzonosito);
|
|
var intezmenyNev = intezmenyCo.Nev;
|
|
var intezmenyCim = intezmenyCo.IntezmenyCim;
|
|
|
|
var message = string.Format(EmailResource.BankszamlaAdatokModositasTanuloContent, alkalmazott.NyomtatasiNev, bankszamlaCo.BankszamlaSzam, bankszamlaCo.SzamlavezetoBank, bankszamlaCo.BankszamlaTulajdonos.GetDisplayName<BankszamlaTulajdonosTipusEnum>(TanevId), bankszamlaCo.BankszamlaTulajdonosNeve, intezmenyUrl, intezmenyNev, intezmenyCim);
|
|
var email = alkalmazott.Email.SingleOrDefault(e => e.Alapertelmezett && !e.Torolt && !e.IsHibasanMegadva);
|
|
if (email != default)
|
|
{
|
|
emailcim = email.EmailCim;
|
|
emailGuid = email.Guid;
|
|
new UzenetekHelper(new DalHandlerConnectionType(ConnectionType, h)).EmailKuldes(message, subject, emailcim, emailGuid);
|
|
}
|
|
});
|
|
}
|
|
|
|
public void SaveAlkalmazottNyugdijAdatok(MentoriNyugdijCo mentoriNyugdijCo, bool isKlebelsbergKozpontOrNSZFH, bool isNszfhUjSzkt)
|
|
{
|
|
if (mentoriNyugdijCo.MunkaugyiAdatId.HasValue)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var munkaugyiAdatDal = h.AlkalmazottMunkaugyiAdatokDal();
|
|
var alkalmazottmunkaugyiAdat = munkaugyiAdatDal.Get(mentoriNyugdijCo.MunkaugyiAdatId.Value);
|
|
alkalmazottmunkaugyiAdat.IsNyugdijas = mentoriNyugdijCo.IsNyugdijas;
|
|
alkalmazottmunkaugyiAdat.NyugdijKezdet = mentoriNyugdijCo.NyugdijKezdet;
|
|
alkalmazottmunkaugyiAdat.NyugdijTipus = mentoriNyugdijCo.NyugdijTipusId;
|
|
munkaugyiAdatDal.FullUpdate(alkalmazottmunkaugyiAdat);
|
|
});
|
|
}
|
|
}
|
|
|
|
private void ReplaceKotelezoOraszamFromKTR(DataTable dataTable, IKozpontiKretaHelper kozpontiKretaHelper)
|
|
{
|
|
var alkalmazottLista = dataTable.AsEnumerable().Select(e => e.Field<int>("FelhasznaloId")).ToList();
|
|
|
|
var kotelezoOraszamokResponse = kozpontiKretaHelper.GetKotelezoOraszam(new KotelezoOraszamRequestModel
|
|
{
|
|
AlkalmazottLista = alkalmazottLista,
|
|
IntezmenyAzonosito = IntezmenyAzonosito,
|
|
TanevId = TanevId
|
|
});
|
|
|
|
if (kotelezoOraszamokResponse != null && kotelezoOraszamokResponse.AlkalmazottLista != null && kotelezoOraszamokResponse.AlkalmazottLista.Count > 0)
|
|
{
|
|
for (var r = 0; r < dataTable.Rows.Count; r++)
|
|
{
|
|
var alkalmazottId = Convert.ToInt32(dataTable.Rows[r]["FelhasznaloId"]);
|
|
var alkalmazott = kotelezoOraszamokResponse.AlkalmazottLista.FirstOrDefault(x => x.AlkalmazottId == alkalmazottId);
|
|
if (alkalmazott != null && alkalmazott.KotelezoOraszamMin > 0 && alkalmazott.KotelezoOraszamMax > 0)
|
|
{
|
|
dataTable.Rows[r][AlkalmazottResource.KotelezoOraszama] = alkalmazott.KotelezoOraszamSzoveg;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|