kreta/Kreta.DataAccessManual/ParameterClasses/AlkalmazottSearchPco.cs
2024-03-13 00:33:46 +01:00

214 lines
9.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using Kreta.Core;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
namespace Kreta.DataAccessManual.ParameterClasses
{
public class AlkalmazottSearchPco
{
public string Nev { get; set; }
public string SzuletesiHely { get; set; }
public int? Nem { get; set; }
public DateTime? SzuletesiDatumTol { get; set; }
public DateTime? SzuletesiDatumIg { get; set; }
public int? TanitottOsztalyId { get; set; }
public string OktatasiAzonosito { get; set; }
public int? FeladatEllatasiHelyId { get; set; }
public string Foallas { get; set; }
public string SearchNyugdijas { get; set; }
public int? SearchPedagogusFokozat { get; set; }
public bool? NANem { get; set; }
public bool? NABesorolasiFokozat { get; set; }
public bool? NincsMunkakor { get; set; }
public bool? NincsFoglalkoztatasModja { get; set; }
public bool? NemCsillagosMunkakor { get; set; }
public bool? NincsEmail { get; set; }
public bool? AktivAlkalmazottak { get; set; }
public bool? NincsBelepesAlkalmazott { get; set; }
public bool? NemBelepettAlkalmazottKetHet { get; set; }
public bool? NincsOktAzon { get; set; }
public bool MunkaugyiAdatokKlebelsbergOrNSZFH { get; set; }
public bool? NincsAlkalmazottSZTSZ { get; set; }
public bool? IsTanarAlkalmazottMunkaKor { get; set; }
public int? SzervezetId { get; set; }
public bool IsFromSzervezet { get; set; }
public string SzervezetNev { get; set; }
public string SzervezetAzonosito { get; set; }
/// <summary>
/// Minden paramétert meg kell adni.
/// </summary>
/// <param name="parameters">SQL paraméterek listája.</param>
/// <param name="emailAlias">A T_EMAIL_OSSZES esetén szűrőként használt alias.</param>
/// <param name="felhasznalobelepesAlias">A T_FELHASZNALOBELEPES_OSSZES esetén szűrőként használt alias.</param>
/// <param name="felhasznaloAlias">A T_FELHASZNALO_OSSZES esetén szűrőként használt alias.</param>
/// <param name="munkaugyiAlias">A 'MUNKAUGYIADATOK' esetén szűrőként használt alias.</param>
/// <param name="foglalkozasAlias">A T_FOGLALKOZAS_OSSZES esetén szűrőként használt alias.</param>
/// <param name="alkalmazottAlias">A T_ALKALMAZOTT_OSSZES esetén szűrőként használt alias.</param>
public StringBuilder ToWhereClause(IList<CommandParameter> parameters,
string emailAlias,
string felhasznalobelepesAlias,
string felhasznaloAlias,
string munkaugyiAlias,
string foglalkozasAlias,
string alkalmazottAlias,
string szervezetAlias
)
{
var whereClause = new StringBuilder();
if (!string.IsNullOrWhiteSpace(emailAlias) && NincsEmail.HasValue && NincsEmail.Value)
{
whereClause.Append($@"
AND {emailAlias}.ID IS NULL
");
}
if (NincsBelepesAlkalmazott.HasValue && NincsBelepesAlkalmazott.Value)
{
whereClause.Append($@"
AND {felhasznalobelepesAlias}.C_BEJELENTKEZESINEV IS NULL
");
}
if (NemBelepettAlkalmazottKetHet.HasValue && NemBelepettAlkalmazottKetHet.Value)
{
whereClause.Append($@"
AND ({felhasznalobelepesAlias}.C_UTOLSOBELEPES <= DATEADD(DAY,-14,GETDATE()) OR {felhasznalobelepesAlias}.C_UTOLSOBELEPES IS NULL)
");
}
if (!string.IsNullOrWhiteSpace(Nev))
{
whereClause.Append($@" AND LOWER({felhasznaloAlias}.C_NYOMTATASINEV) LIKE '%' + :pNev + '%'");
parameters.Add(new CommandParameter("pNev", Nev.ToLowerInvariant().Replace("[", "[[]")));
}
if (!string.IsNullOrWhiteSpace(SzuletesiHely))
{
whereClause.Append($@" AND LOWER({felhasznaloAlias}.C_SZULETESIHELY) LIKE '%' + :pSzuletesiHely + '%'");
parameters.Add(new CommandParameter("pSzuletesiHely", SzuletesiHely));
}
if (NANem.HasValue && NANem.Value)
{
whereClause.Append($@" AND ( {felhasznaloAlias}.C_NEME = :pNem OR {felhasznaloAlias}.C_NEME IS NULL ) AND {felhasznaloAlias}.C_NYOMTATASINEV NOT LIKE '[[]HO%' AND {felhasznaloAlias}.C_NYOMTATASINEV NOT LIKE '[[]BTA%'");
parameters.Add(new CommandParameter("pNem", (int)NemEnum.NA));
}
else if (Nem.HasValue)
{
whereClause.Append($@" AND {felhasznaloAlias}.C_NEME = :pNem");
parameters.Add(new CommandParameter("pNem", Nem.Value));
}
if (SzuletesiDatumTol.HasValue)
{
whereClause.Append($@" AND {felhasznaloAlias}.C_SZULETESIDATUM >= :pSzuletesiDatumTol");
parameters.Add(new CommandParameter("pSzuletesiDatumTol", SzuletesiDatumTol.Value));
}
if (SzuletesiDatumIg.HasValue)
{
whereClause.Append($@" AND {felhasznaloAlias}.C_SZULETESIDATUM <= :pSzuletesiDatumIg");
parameters.Add(new CommandParameter("pSzuletesiDatumIg", SzuletesiDatumIg.Value));
}
if (!string.IsNullOrWhiteSpace(OktatasiAzonosito))
{
whereClause.Append($@" AND {felhasznaloAlias}.C_OKTATASIAZONOSITO LIKE :pOktatasiAzonosito + '%'");
parameters.Add(new CommandParameter("pOktatasiAzonosito", OktatasiAzonosito));
}
if (NABesorolasiFokozat.HasValue && NABesorolasiFokozat.Value) // NAPedKep)
{
whereClause.Append($@" AND {munkaugyiAlias}.C_BESOROLASIFOKOZAT = :pBesorolasiFokozat");
parameters.Add(new CommandParameter("pBesorolasiFokozat", (int)BesorolasiFokozatTipusEnum.na));
}
else if (SearchPedagogusFokozat.HasValue)
{
whereClause.Append($@" AND {munkaugyiAlias}.C_BESOROLASIFOKOZAT = :pBesorolasiFokozat");
parameters.Add(new CommandParameter("pBesorolasiFokozat", SearchPedagogusFokozat.Value));
}
if (NincsMunkakor.HasValue && NincsMunkakor.Value) // emptyMunkakor)
{
whereClause.Append($@" AND {munkaugyiAlias}.C_MUNKAKORTIPUSA = :pMunkakorTipus");
parameters.Add(new CommandParameter("pMunkakorTipus", (int)MunkakorTipusEnum.na));
}
if (NemCsillagosMunkakor.HasValue && NemCsillagosMunkakor.Value)
{
whereClause.Append($@" AND {munkaugyiAlias}.C_MUNKAKORTIPUSA NOT IN
(6914, 6361, 6432, 6433, 6461, 553, 6414,
6812, 597, 6392, 6375, 6457, 6352, 6393,
6394, 6709, 584, 561, 589, 3026, 563, 585,
559, 564, 6421, 565, 566, 568, 594, 6404,
569, 571, 586, 590, 570, 572)");
}
if (NincsFoglalkoztatasModja.HasValue && NincsFoglalkoztatasModja.Value) // emptyFoglalkoztatasModja)
{
whereClause.Append($@" AND {munkaugyiAlias}.C_MUNKAVISZONYTIPUSA = :pMunkaviszonyTipusa");
parameters.Add(new CommandParameter("pMunkaviszonyTipusa", (int)MunkaviszonyTipusEnum.na));
}
if (FeladatEllatasiHelyId.HasValue)
{
whereClause.Append($@" AND {munkaugyiAlias}.C_FELADATELLATASIHELYID = :pFeladatEllatasiHelyId");
parameters.Add(new CommandParameter("pFeladatEllatasiHelyId", FeladatEllatasiHelyId.Value));
}
if (!string.IsNullOrWhiteSpace(SearchNyugdijas))
{
var param = SearchNyugdijas.Equals("1") ? "T" : "F";
whereClause.Append($@" AND {munkaugyiAlias}.C_NYUGDIJAS = :pNyugdijas");
parameters.Add(new CommandParameter("pNyugdijas", param));
}
if (TanitottOsztalyId.HasValue)
{
whereClause.Append($@" AND {foglalkozasAlias}.C_OSZTALYCSOPORTID = :pTanitottOsztalyId");
parameters.Add(new CommandParameter("pTanitottOsztalyId", TanitottOsztalyId.Value));
}
if (!string.IsNullOrWhiteSpace(Foallas))
{
var param = Foallas.Equals("1") ? "T" : "F";
whereClause.Append($@" AND {alkalmazottAlias}.C_FOALLAS = :pFoallas");
parameters.Add(new CommandParameter("pFoallas", param));
}
if (NincsAlkalmazottSZTSZ.HasValue && NincsAlkalmazottSZTSZ.Value)
{
whereClause.Append($@" AND {alkalmazottAlias}.C_SZTSZKOD IS NULL");
}
if (IsFromSzervezet)
{
if (!string.IsNullOrWhiteSpace(SzervezetNev))
{
whereClause.Append($@" AND LOWER({szervezetAlias}.C_NEV) LIKE '%' + :pSzervezetNev + '%'");
parameters.Add(new CommandParameter("pSzervezetNev", SzervezetNev));
}
if (!string.IsNullOrWhiteSpace(SzervezetAzonosito))
{
whereClause.Append($@" AND LOWER({szervezetAlias}.C_AZONOSITO) LIKE '%' + :pSzervezetAzonosito + '%'");
parameters.Add(new CommandParameter("pSzervezetAzonosito", SzervezetAzonosito));
}
}
else
{
whereClause.Append($@" AND {szervezetAlias}.ID IS NULL ");
}
return whereClause;
}
}
}