kreta/KretaWeb/Areas/HRModul/Models/TavolletSearchBaseModel.cs
2024-03-13 00:33:46 +01:00

196 lines
9 KiB
C#

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<string>();
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<int> { 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<string>();
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,
};
}
}
}