using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.Core.SAP.CommunicationModels; using Kreta.Enums.ManualEnums; using Kreta.Resources; using Kreta.Web.Helpers; using Kreta.Web.Security; namespace Kreta.Web.Areas.HRModul.Models { public class TavolletSearchBaseModel { public bool SrcKezeles { get; set; } public bool SrcIsAdminCall { get; set; } public bool SrcIsLeaderCall { get; set; } public int SzabadsagKeret { get; set; } public string SzabadsagKeretDisplayValue => this.SzabadsagKeret <= 0 ? "-" : this.SzabadsagKeret.ToString(); public int IgenybeVehetoTavolletek { get; set; } public string IgenybeVehetoTavolletekDisplayValue => this.IgenybeVehetoTavolletek <= 0 ? "-" : this.IgenybeVehetoTavolletek.ToString(); public int IgenybeVettTavolletek { get; set; } public int FuggobenLevoTavolletek { get; set; } public string SzTSzAzonosito { get; set; } public string UtolsoSzinkronDisplayValue => UtolsoSzinkron.HasValue ? SDAFormat.GetShortDateFormat(UtolsoSzinkron.Value) : "-"; public DateTime? UtolsoSzinkron { get; set; } public bool IsTavolletFoIntezmenye { get; set; } [Display(Name = nameof(HRModulResource.TavolletOka), ResourceType = typeof(HRModulResource))] public int? SrcTipus { get; set; } [Display(Name = nameof(HRModulResource.AlkalmazottAk), ResourceType = typeof(HRModulResource))] public int[] SrcAlkalmazott { get; set; } public string[] SzTSzArray { get; set; } public int? AlkalmazottFilterId { get; set; } [Display(Name = nameof(HRModulResource.Statusz), ResourceType = typeof(HRModulResource))] public int? SrcStatusz { get; set; } [Display(Name = nameof(HRModulResource.TavolletRogzitesEve), ResourceType = typeof(HRModulResource))] public int[] SrcNaptariEv { get; set; } [Display(Name = nameof(HRModulResource.TavolletKezdet), ResourceType = typeof(HRModulResource))] public DateTime? SrcIdoszakKezdet { get; set; } public DateTime MinimumSrcIdoszakKezdet { get; set; } [Display(Name = nameof(HRModulResource.TavolletVeg), ResourceType = typeof(HRModulResource))] public DateTime? SrcIdoszakVeg { get; set; } public DateTime MinimumSrcIdoszakVeg { get; set; } [Display(Name = nameof(HRModulResource.RogzitesDatuma), ResourceType = typeof(HRModulResource))] public DateTime? SrcRogzitesDatumaTol { get; set; } [Display(Name = nameof(HRModulResource.RogzitesDatuma), ResourceType = typeof(HRModulResource))] public DateTime? SrcRogzitesDatumaIg { get; set; } [Display(Name = nameof(HRModulResource.MelleklettelRendelkezik), ResourceType = typeof(HRModulResource))] public int? SrcMelleklettelRendelkezik { get; set; } [Display(Name = nameof(HRModulResource.FoIntezmenyeE), ResourceType = typeof(HRModulResource))] public int? SrcFoIntezmenyeE { get; set; } [Display(Name = nameof(HRModulResource.ToroltekMegjelenitese), ResourceType = typeof(HRModulResource))] public int? SrcToroltekMegjelenitese { get; set; } internal TavolletSearchCo ConvertToCo() { return ConvertToCo(ClaimData.IntezmenyId, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value); } internal TavolletSearchCo ConvertToCo(int intezmenyId, string intezmenyAzonosito, int tanevId) { return new TavolletSearchCo() { NaptariEv = (SrcNaptariEv != null && SrcNaptariEv.Length > 0) ? SrcNaptariEv : new int[] { DateTime.Now.Year }, HivoAlkalmazottId = ClaimData.FelhasznaloId, TanevId = tanevId, IntezmenyId = intezmenyId, IntezmenyAzonosito = intezmenyAzonosito, TipusId = SrcTipus, AlkalmazottIdArray = SrcAlkalmazott, StatuszId = SrcStatusz, TavolletKezdete = SrcIdoszakKezdet, TavolletVege = SrcIdoszakVeg, RogzitesDatumaTol = SrcRogzitesDatumaTol, RogzitesDatumaIg = SrcRogzitesDatumaIg.HasValue ? SrcRogzitesDatumaIg.Value.Date.AddDays(1).AddSeconds(-1) : SrcRogzitesDatumaIg, MelleklettelRendelkezik = (!SrcMelleklettelRendelkezik.HasValue ? (bool?)null : SrcMelleklettelRendelkezik.Value == (int)IgenNemEnum.Igen), FoIntezmenyeE = (!SrcFoIntezmenyeE.HasValue ? (bool?)null : SrcFoIntezmenyeE.Value == (int)IgenNemEnum.Igen), ToroltekMegjelenitese = SrcToroltekMegjelenitese.HasValue && SrcToroltekMegjelenitese.Value == (int)IgenNemEnum.Igen, }; } internal TavolletjelentoListaRequestModel ConvertToTavolletjelentoListaRequestModel(int tanevId) { if (SrcAlkalmazott?.Length > 0) { var aIds = SrcAlkalmazott.ToList(); var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var aa = alkalmazottHelper.GetAlkalmazottIDTavolletAlkalmazott(aIds); var szTSzArray = new List(); foreach (var alkalmazott in aa) { var sztszKod = alkalmazott.Value.AlkalmazottSzTSz; if (!string.IsNullOrWhiteSpace(sztszKod)) { szTSzArray.Add(sztszKod); } } SzTSzArray = szTSzArray.ToArray(); } return new TavolletjelentoListaRequestModel { NaptariEv = ((SrcNaptariEv != null) && (SrcNaptariEv.Length > 0)) ? SrcNaptariEv : new int[] { DateTime.Now.Year }, HivoAlkalmazottId = ClaimData.FelhasznaloId, TanevId = tanevId, KretaIntezmenyId = ClaimData.IntezmenyId, KretaIntezmenyAzonosito = ClaimData.IntezmenyAzonosito, TavolletTipusId = SrcTipus, AlkalmazottIdArray = SrcAlkalmazott, SzTSzArray = SzTSzArray, TavolletStatuszId = SrcStatusz, IdoszakKezdet = SrcIdoszakKezdet, IdoszakVeg = SrcIdoszakVeg, RogzitesDatumaTol = SrcRogzitesDatumaTol, RogzitesDatumaIg = SrcRogzitesDatumaIg.HasValue ? SrcRogzitesDatumaIg.Value.Date.AddDays(1).AddSeconds(-1) : SrcRogzitesDatumaIg, IsMelleklettelRendelkezik = (!SrcMelleklettelRendelkezik.HasValue ? (bool?)null : SrcMelleklettelRendelkezik.Value == (int)IgenNemEnum.Igen), IsFoIntezmenyeE = SrcKezeles ? (SrcFoIntezmenyeE.HasValue ? SrcFoIntezmenyeE.Value == IgenNemEnum.Igen.AsInt() : (bool?)null) : IsTavolletFoIntezmenye, IsToroltekMegjelenitese = SrcToroltekMegjelenitese.HasValue && SrcToroltekMegjelenitese.Value == (int)IgenNemEnum.Igen, }; } internal TavolletAdatokRequestModel ConvertToTavolletAdatokRequestModel(int tanevId, int? felhasznaloId = null) { var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()); if (!ClaimData.IsDefaultAdminUser && felhasznaloId.HasValue) { var aa = alkalmazottHelper.GetAlkalmazottIDTavolletAlkalmazott(new List { felhasznaloId.Value }); foreach (var alkalmazott in aa) { SzTSzArray = new string[] { alkalmazott.Value.AlkalmazottSzTSz }; } } else { if (SrcAlkalmazott?.Length > 0) { var aIds = SrcAlkalmazott.ToList(); var aa = alkalmazottHelper.GetAlkalmazottIDTavolletAlkalmazott(aIds); var szTSzArray = new List(); foreach (var alkalmazott in aa) { var sztszKod = alkalmazott.Value.AlkalmazottSzTSz; if (!string.IsNullOrWhiteSpace(sztszKod)) { szTSzArray.Add(sztszKod); } } SzTSzArray = szTSzArray.ToArray(); } else { SzTSzArray = null; } } return new TavolletAdatokRequestModel { NaptariEv = ((SrcNaptariEv != null) && (SrcNaptariEv.Length > 0)) ? SrcNaptariEv : new int[] { DateTime.Now.Year }, TanevId = tanevId, KretaIntezmenyId = ClaimData.IntezmenyId, KretaIntezmenyAzonosito = ClaimData.IntezmenyAzonosito, AlkalmazottIdArray = SrcAlkalmazott, SzTSzArray = SzTSzArray, IsFoIntezmeny = SrcFoIntezmenyeE.HasValue ? SrcFoIntezmenyeE.Value == IgenNemEnum.Igen.AsInt() : (bool?)null, }; } } }