214 lines
9.7 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|