543 lines
24 KiB
C#
543 lines
24 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Classes.ComboBox;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Utils;
|
|
using Kreta.Core;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.DataAccess.Interfaces;
|
|
using Kreta.DataAccessManual;
|
|
using Kreta.DataAccessManual.Interfaces;
|
|
using Kreta.DataAccessManual.Model.TantargyFelosztas;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Resources;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers
|
|
{
|
|
public class TantargyFelosztasHelper : LogicBase
|
|
{
|
|
public TantargyFelosztasHelper(IConnectionType connectionType) : base(connectionType) { }
|
|
|
|
public DataSet GetTantargyFelosztasData(int? tanarId = null, int? csoportId = null, List<int> tantargyIds = null, int? targyKatId = null, int? foglalkozasTipusId = null,
|
|
int? feladatKategoriaId = null, int? feladatellatasiHelyId = null, int? evfolyamId = null, double? oraszam = null, bool? isImportalt = null, bool osztalybontasokkal = false, bool kapcsolodoCsoportokkal = false, bool isFromSzervezet = false)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas(GridParameters);
|
|
return dal.GetTantargyFelosztasokKereses(tanarId, csoportId, tantargyIds, targyKatId, foglalkozasTipusId, TanevId, evfolyamId, feladatKategoriaId, feladatellatasiHelyId, oraszam: oraszam, isImportalt: isImportalt, osztalybontasokkal: osztalybontasokkal, kapcsolodoCsoportokkal: kapcsolodoCsoportokkal, isFromSzervezet: isFromSzervezet);
|
|
});
|
|
}
|
|
|
|
public List<TantargyfelosztasItemCo> GetTantargyFelosztasCoList(TantargyFelosztasKeresesCo searchCo)
|
|
{
|
|
var coList = GetTantargyfelosztasCoList(searchCo.Tanar, searchCo.OsztalyCsoport, searchCo.IsOsztalybontasokkal, searchCo.IsKapcsolodoCsoportokkal, searchCo.IsFromSzervezet, searchCo.SzervezetId);
|
|
return FilterTantargyfelosztasItemCoList(coList, searchCo);
|
|
}
|
|
|
|
public IDictionary<string, string> GetTantargyFelosztasForDDL(int tanarId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
return LogicUtil.CreateDropdownContent(dal.GetFoglalkozasokForDDL(tanarId, TanevId), "ID", "Nev", null);
|
|
});
|
|
}
|
|
|
|
public int CreateOrUpdateFelosztas(TantargyFelosztasCO co, bool isForceInsert = false, bool isFromSzervezet = false)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
var dm = new TantargyFelosztasDM
|
|
{
|
|
Id = co.ID,
|
|
TanevId = TanevId,
|
|
TanarId = co.TanarID,
|
|
OsztalyCsoportId = co.OsztalyCsoportID,
|
|
};
|
|
|
|
if (isFromSzervezet)
|
|
{
|
|
dm.FoglalkozasTipusa = (int)Enums.FoglalkozasTipusEnum.dualis_foglalkozas;
|
|
dm.TantargyId = co.TantargyID;
|
|
dm.Oraszam = 1;
|
|
dm.TuloraSzam = 0;
|
|
dm.OsszevontOra = false;
|
|
dm.NemzetisegiOra = false;
|
|
dm.MegbizasiOraszam = 0;
|
|
}
|
|
else
|
|
{
|
|
dm.FoglalkozasTipusa = co.FoglalkozasTipusa;
|
|
dm.TantargyId = co.TantargyID;
|
|
dm.Oraszam = co.Oraszam;
|
|
dm.TuloraSzam = co.TuloraSzam;
|
|
dm.OsszevontOra = co.OsszevontOra;
|
|
dm.NemzetisegiOra = co.NemzetisegiOra;
|
|
dm.MegbizasiOraszam = co.MegbizasiOraszam;
|
|
};
|
|
|
|
if (!CheckTtfCorrectTanevId(helper, dm))
|
|
{
|
|
throw new BlException(ErrorResource.HibasTanevBeallitasok);
|
|
}
|
|
|
|
var (id, removeFromOrarendOra) = dal.CreateOrUpdateFelosztas(dm, IntezmenyId, isForceInsert);
|
|
|
|
if (removeFromOrarendOra)
|
|
{
|
|
helper.OrarendiOra().SetFoglalkozasToNull(id, FelhasznaloId);
|
|
}
|
|
|
|
return id;
|
|
});
|
|
}
|
|
|
|
private bool CheckTtfCorrectTanevId(IDalHandler h, TantargyFelosztasDM ttf)
|
|
{
|
|
var osztalyCsoport = h.OsztalyCsoport().Get(ttf.OsztalyCsoportId);
|
|
var tanar = h.Alkalmazott().Get(ttf.TanarId);
|
|
var tantargy = h.Tantargy().GetTantargy(ttf.TantargyId);
|
|
var tanevIds = new List<int>
|
|
{
|
|
osztalyCsoport.TanevId,
|
|
tanar.TanevId,
|
|
tantargy.TanevId
|
|
};
|
|
|
|
return tanevIds.All(t => t == TanevId);
|
|
}
|
|
|
|
internal DataSet GetTTFToExport(int? tanarId, int? csoportId, int? tantargyId, int? targyKatId, int? foglalkozasTipusId, int? feladatKategoriaId, int? feladatellatasiHelyId, int? evfolyamId, double? oraszam, bool? isImportalt, bool osztalybontasokkal, bool kapcsolodoCsoportokkal, bool isFromSzervezet)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
return dal.GetTTFToExport(TanevId, tanarId, csoportId, tantargyId, targyKatId, foglalkozasTipusId, feladatKategoriaId, feladatellatasiHelyId, evfolyamId, oraszam, isImportalt, osztalybontasokkal, kapcsolodoCsoportokkal, isFromSzervezet);
|
|
});
|
|
}
|
|
|
|
public TantargyFelosztasCO GetTantargyFelosztas(int felosztasId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var entity = helper.Foglalkozas().Get(felosztasId);
|
|
bool modosithato = entity.OrarendiOra.Count == 0 && entity.TanitasiOra.Count == 0;
|
|
return new TantargyFelosztasCO()
|
|
{
|
|
ID = felosztasId,
|
|
FoglalkozasTipusa = entity.FoglalkozasTipusa,
|
|
Oraszam = entity.Oraszam,
|
|
OsztalyCsoportID = entity.OsztalyCsoportId,
|
|
TanarID = entity.TanarId,
|
|
TantargyID = entity.TantargyId,
|
|
TanevID = entity.TanevId,
|
|
Modosithato = modosithato,
|
|
Nev = !string.IsNullOrWhiteSpace(entity.Nev) ? entity.Nev : string.Empty,
|
|
OsszevontOra = entity.IsOsszevontOra,
|
|
NemzetisegiOra = entity.IsNemzetisegi,
|
|
MegbizasiOraszam = entity.MegbizasiOraszam,
|
|
TuloraSzam = entity.TuloraSzam
|
|
};
|
|
});
|
|
}
|
|
|
|
public TantargyFelosztasKapcsolataiCO GetTantargyFelosztasKapcsolatai(int felosztasId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas(GridParameters);
|
|
DataTable table = dal.GetTantargyFelosztasKapcsolatai(felosztasId, TanevId).Tables[0];
|
|
if (table.Rows.Count > 0)
|
|
{
|
|
return new TantargyFelosztasKapcsolataiCO
|
|
{
|
|
DiakokSzama = Convert.ToInt32(table.Rows[0]["DiakokSzama"]),
|
|
TanorakSzama = Convert.ToInt32(table.Rows[0]["TanorakSzama"]),
|
|
ErtekelesekSzama = Convert.ToInt32(table.Rows[0]["ErtekelesekSzama"]),
|
|
MulasztasokSzama = Convert.ToInt32(table.Rows[0]["MulasztasokSzama"])
|
|
};
|
|
}
|
|
|
|
return new TantargyFelosztasKapcsolataiCO();
|
|
});
|
|
}
|
|
|
|
public DataSet GetFormazottTTFExport(int formatMode)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
return helper.TantargyFelosztas().GetFormazottTTFExport(IntezmenyId, TanevId, formatMode, IntezmenyAzonosito);
|
|
});
|
|
}
|
|
|
|
public TantargyFelosztasAlapAdatokCO GetTantargyFelosztasAdatok(int felosztasId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas(GridParameters);
|
|
DataTable table = dal.GetTantargyFelosztasAdatok(felosztasId).Tables[0];
|
|
if (table.Rows.Count > 0)
|
|
{
|
|
return new TantargyFelosztasAlapAdatokCO
|
|
{
|
|
Csoport = table.Rows[0]["OsztalyCsoportNev"].ToString(),
|
|
FoglalkozasHelye = table.Rows[0]["FeladatellatasiHelyNev"].ToString(),
|
|
FoglalkozasTipus = table.Rows[0]["FoglalkozasTipusa"].ToString(),
|
|
HetiOraszam = table.Rows[0]["Oraszam"].ToString(),
|
|
MunkakorTipus = table.Rows[0]["MunkakorTipus"].ToString(),
|
|
MunkavallaloNev = table.Rows[0]["MunkavallaloNev"].ToString(),
|
|
Tantargynev = table.Rows[0]["Tantargy"].ToString(),
|
|
Tanev = table.Rows[0]["Tanev"].ToString(),
|
|
TuloraSzam = table.Rows[0]["TuloraSzam"].ToString(),
|
|
OsszevontOra = table.Rows[0]["OsszevontOra_BNAME"].ToString(),
|
|
NemzetisegiOra = table.Rows[0]["NemzetisegiOra_BNAME"].ToString(),
|
|
MegbizasiOraszam = table.Rows[0]["MegbizasiOraszam"].ToString()
|
|
};
|
|
}
|
|
|
|
return new TantargyFelosztasAlapAdatokCO();
|
|
});
|
|
}
|
|
|
|
public void DeleteTargyFelosztas(int id)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
var foglalkozas = helper.Foglalkozas().Get(id);
|
|
|
|
dal.Delete(foglalkozas);
|
|
});
|
|
}
|
|
|
|
public DataSet GetTantargyFoglalkozasai(int tantargyId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas(GridParameters);
|
|
return dal.GetTantargyFoglalkozasai(tantargyId, TanevId);
|
|
});
|
|
}
|
|
|
|
public void DeleteAllTargyFelosztas()
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas(GridParameters);
|
|
dal.DeleteAllTargyFelosztas(TanevId);
|
|
});
|
|
}
|
|
|
|
public DataSet GetFoglalkozasok(int? tanarId, int? osztalyId = null, bool? isOsszefuggoSzakGyak = null, bool filterNincsBeloleOra = false, bool isKapcsolodoCsoportok = false)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas(GridParameters);
|
|
return dal.GetFoglalkozasok(TanevId, tanarId, osztalyId, isOsszefuggoSzakGyak, filterNincsBeloleOra, isKapcsolodoCsoportok);
|
|
});
|
|
}
|
|
|
|
public void TantargyfelosztasVisszamenolegesModositas(TantargyFelosztasVisszamenolegesCO data)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
dal.TantargyfelosztasVisszamenolegesModositas(IntezmenyId, TanevId, FelhasznaloId, TantargyFelosztasVisszamenolegesCO.ConvertCOToPCO(data));
|
|
});
|
|
}
|
|
|
|
public List<int> GetEgyszerAdhatoErtekelesekTanatargyfelosztasModositasAlapjan(TantargyFelosztasVisszamenolegesCO data)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
List<int> list = new List<int>();
|
|
DataSet ds = dal.GetEgyszerAdhatoErtekelesekTanatargyfelosztasModositasAlapjan(IntezmenyId, TanevId, TantargyFelosztasVisszamenolegesCO.ConvertCOToPCO(data));
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
foreach (DataRow item in ds.Tables[0].Rows)
|
|
{
|
|
list.Add(SDAConvert.ToInt32(item["EredetiErtekelesId"].ToString()));
|
|
}
|
|
}
|
|
return list;
|
|
});
|
|
}
|
|
|
|
public void UpdateOrarendiOraAfterTantargyfelosztasUpdate(TantargyFelosztasVisszamenolegesCO data)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
dal.UpdateOrarendiOraAfterTantargyfelosztasUpdate(IntezmenyId, TanevId, FelhasznaloId, TantargyFelosztasVisszamenolegesCO.ConvertCOToPCO(data));
|
|
});
|
|
}
|
|
|
|
public void RemoveOrarendiOraTTFRelation(int ttfId)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
dal.RemoveOrarendiOraTTFRelation(IntezmenyId, TanevId, ttfId);
|
|
});
|
|
}
|
|
|
|
public DataSet TantargyfelosztasbanValtozoOrarendiOrak(TantargyFelosztasVisszamenolegesCO data)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
return dal.TantargyfelosztasbanValtozoOrarendiOrak(IntezmenyId, TanevId, TantargyFelosztasVisszamenolegesCO.ConvertCOToPCO(data));
|
|
});
|
|
}
|
|
|
|
public void FizikaiTorlesTantargyfelosztas()
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
dal.FizikaiTorlesTantargyfelosztas(IntezmenyId, TanevId, FelhasznaloId);
|
|
});
|
|
}
|
|
|
|
public DataSet GetFoglalkozasById(int TTFId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
return helper.TantargyFelosztas().GetFoglalkozasById(TTFId);
|
|
});
|
|
}
|
|
|
|
public DataSet GetFoglalkozasDataById(int TTFId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
return helper.TantargyFelosztas().GetFoglalkozasDataById(TTFId);
|
|
});
|
|
}
|
|
|
|
public List<ComboBoxListItem> GetTanarAltalErtekelhetoCsoportokForDDL(int szuperOsztalyfonok, DateTime date, string osztalyGroupName = null, string csoportGroupName = null)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(osztalyGroupName))
|
|
{ osztalyGroupName = CommonResource.Osztaly; } /*Osztály*/
|
|
if (string.IsNullOrWhiteSpace(csoportGroupName))
|
|
{ csoportGroupName = CommonResource.Csoport; } /*Csoport*/
|
|
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
var ds = dal.GetTanarAltalErtekelhetoCsoportok(FelhasznaloId, TanevId, szuperOsztalyfonok, date, osztalyGroupName, csoportGroupName);
|
|
return LogicUtil.CreateMvcGroupedSelectListItem(ds, "OsztalyCsoportId", "Nev", "GroupName");
|
|
});
|
|
}
|
|
|
|
public IDictionary<string, string> GetTanarDolgozatTantargyakForDDL(int szuperOsztalyfonok, DateTime date)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
return LogicUtil.CreateDropdownContent(dal.GetTanarDolgozatTantargyak(FelhasznaloId, TanevId, szuperOsztalyfonok, date), "TantargyId", "TantargyNev", null);
|
|
});
|
|
}
|
|
|
|
public List<TantargyfelosztasItemCo> GetTantargyfelosztasCoList(int? alkalmazottId = null, int? osztalyCsoportId = null, bool isOsztalybontasokkal = false, bool isKacsolodoCsoportokkal = false, bool isFromSzervezet = false, int? szervezetId = null)
|
|
{
|
|
var dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Foglalkozas().GetTantargyfelosztasDataSet(IntezmenyId, TanevId, alkalmazottId, osztalyCsoportId, isOsztalybontasokkal: isOsztalybontasokkal, isKapcsolodoCsoportokkal: isKacsolodoCsoportokkal, isFromSzervezet: isFromSzervezet, szervezetId: szervezetId));
|
|
var coList = new List<TantargyfelosztasItemCo>();
|
|
|
|
var szervezetIds = new List<int>();
|
|
var intezmenyiAdminIds = new List<int>();
|
|
if (isFromSzervezet)
|
|
{
|
|
szervezetIds = !szervezetId.IsEntityId() ? new List<int>() : Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.SzervezetDal().GetLathatoSzervezetek(IntezmenyId, TanevId, szervezetId, (int)SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek));
|
|
intezmenyiAdminIds = szervezetId.IsEntityId() ? new List<int>() : Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Felhasznalo().GetAllIntezmenyiAdmin(TanevId));
|
|
}
|
|
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var iSzerkesztheto = true;
|
|
if (isFromSzervezet)
|
|
{
|
|
var rowSzervezetId = dataRow.Field<int?>("SzervezetId");
|
|
var isSzerkesztheto = (szervezetId.IsEntityId() && rowSzervezetId.IsEntityId() && szervezetIds.Contains(rowSzervezetId.Value)) ||
|
|
(!szervezetId.IsEntityId() && intezmenyiAdminIds.Contains(FelhasznaloId) && intezmenyiAdminIds.Contains(dataRow.Field<int?>("RogzitoId") ?? FelhasznaloId));
|
|
}
|
|
|
|
var item = new TantargyfelosztasItemCo(dataRow, iSzerkesztheto);
|
|
|
|
if (item.IsOsszevontOra)
|
|
{
|
|
item.TtfKorrekcioOraszam = item.Oraszam;
|
|
item.Oraszam = 0;
|
|
}
|
|
else
|
|
{
|
|
item.TtfKorrekcioOraszam = 0;
|
|
}
|
|
coList.Add(item);
|
|
}
|
|
return coList;
|
|
}
|
|
|
|
public bool DuplicatedTantargyfelosztas(int tanarId, int osztalyCsoportId, int tantargyId, int? id)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas(GridParameters);
|
|
return dal.TantargyFelosztasLetezik(tanarId, osztalyCsoportId, tantargyId, id, TanevId).IsEntityId();
|
|
});
|
|
}
|
|
|
|
public void CreateOrUpdateEgyeniTantargyFelosztasForAMI(FoglalkozasAmiTanuloCo co)
|
|
{
|
|
co.TantargyfelosztasCo.ID = CreateOrUpdateFelosztas(co.TantargyfelosztasCo, isForceInsert: true);
|
|
InsertOrUpdateFoglalkozasAmiTanulo(co);
|
|
}
|
|
|
|
public void InsertOrUpdateFoglalkozasAmiTanulo(FoglalkozasAmiTanuloCo co)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.FoglalkozasAmiTanuloDal();
|
|
IFoglalkozasAmiTanulo entity;
|
|
|
|
if (co.AmiFoglalkozasId.IsEntityId())
|
|
{ entity = dal.Get(co.AmiFoglalkozasId.Value); }
|
|
else
|
|
{ entity = dal.Get(); }
|
|
|
|
entity.TanevId = TanevId;
|
|
entity.FoglalkozasId = co.TantargyfelosztasCo.ID.Value;
|
|
entity.AMIFotargyId = co.AMIFotargyId;
|
|
entity.AmiTagozatId = co.AmiTagozatId;
|
|
entity.AMITantargyKotelezosegId = co.AMITantargyKotelezosegId;
|
|
entity.EvfolyamTipusId = co.EvfolyamTipusId;
|
|
entity.TanuloId = co.TanuloId;
|
|
|
|
if (co.AmiFoglalkozasId.IsEntityId())
|
|
{ dal.FullUpdate(entity); }
|
|
else
|
|
{ dal.Insert(entity); }
|
|
});
|
|
}
|
|
|
|
public void DeleteFoglalkozasAmiTanulo(int foglalkozasAmiTanuloId)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h => h.FoglalkozasAmiTanuloDal().Delete(foglalkozasAmiTanuloId));
|
|
}
|
|
|
|
public (bool, string, string) ValidateAmiCsoportTtf(int osztalyCsoportId, int tanarId, int tantargyId, int id)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
var ds = dal.GetFoglalkozasokByOsztalyCsoport(osztalyCsoportId, TanevId);
|
|
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
foreach (DataRow row in ds.Tables[0].Rows)
|
|
{
|
|
if (row.Field<int>("TanarId") == tanarId && row.Field<int>("TantargyId") == tantargyId && row.Field<int>("ID") != id)
|
|
{
|
|
return (false, row.Field<string>("TanarNev"), row.Field<string>("TantargyNev"));
|
|
}
|
|
}
|
|
}
|
|
|
|
return (true, string.Empty, string.Empty);
|
|
});
|
|
}
|
|
|
|
public int GetTeremByFoglalkozas(int foglalkozasId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
|
{
|
|
var dal = helper.TantargyFelosztas();
|
|
return dal.GetTeremByFoglalkozas(foglalkozasId);
|
|
});
|
|
}
|
|
|
|
private List<TantargyfelosztasItemCo> FilterTantargyfelosztasItemCoList(List<TantargyfelosztasItemCo> coList, TantargyFelosztasKeresesCo searchCo)
|
|
{
|
|
if (searchCo == null)
|
|
{
|
|
return coList;
|
|
}
|
|
|
|
IEnumerable<TantargyfelosztasItemCo> result = coList;
|
|
if (searchCo.FeladatKategoriaId.IsEntityId() && !searchCo.IsFromSzervezet)
|
|
{
|
|
result = result.Where(x => x.FeladatKategoriaId == searchCo.FeladatKategoriaId.Value);
|
|
}
|
|
if (searchCo.Tanar.IsEntityId())
|
|
{
|
|
result = result.Where(x => x.TanarId == searchCo.Tanar.Value);
|
|
}
|
|
if (searchCo.Tantargy.IsEntityId())
|
|
{
|
|
result = result.Where(x => x.TantargyId == searchCo.Tantargy.Value);
|
|
}
|
|
if (searchCo.Feladatellatasihely.IsEntityId() && !searchCo.IsFromSzervezet)
|
|
{
|
|
result = result.Where(x => x.FeladatEllatasihelyId == searchCo.Feladatellatasihely.Value);
|
|
}
|
|
if (searchCo.Oraszam.HasValue)
|
|
{
|
|
result = result.Where(x => x.Oraszam == searchCo.Oraszam.Value);
|
|
}
|
|
if (searchCo.IsFromSzervezet)
|
|
{
|
|
result = result.Where(x => x.TipusId == (int)Enums.FoglalkozasTipusEnum.dualis_foglalkozas);
|
|
}
|
|
else
|
|
{
|
|
result = result.Where(x => x.TipusId != (int)Enums.FoglalkozasTipusEnum.dualis_foglalkozas || !x.SzervezetId.IsEntityId());
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(searchCo.DualisKepzohelyNeve))
|
|
{
|
|
result = result.Where(x => x.DualisKepzohelyNeve.Contains(searchCo.DualisKepzohelyNeve));
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(searchCo.DualisKepzohelyAdoszama))
|
|
{
|
|
result = result.Where(x => x.DualisKepzohelyAdoszama.Contains(searchCo.DualisKepzohelyAdoszama));
|
|
}
|
|
|
|
return result.ToList();
|
|
}
|
|
|
|
public bool ValidateTantargyfelosztasVisszamenolegesModositas(TantargyFelosztasVisszamenolegesCO co, out string errorMessage)
|
|
{
|
|
errorMessage = null;
|
|
|
|
var ds = Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.TantargyFelosztas();
|
|
|
|
var pco = TantargyFelosztasVisszamenolegesCO.ConvertCOToPCO(co);
|
|
return dal.ValidateTantargyfelosztasVisszamenolegesModositas(pco);
|
|
});
|
|
|
|
var utkozoDatumok = ds.Tables[0].AsEnumerable().Select(r => r.Field<DateTime>("Datum").ToString(Constants.ToStringPattern.HungarianDate));
|
|
if (utkozoDatumok.Any())
|
|
{
|
|
errorMessage = string.Format(TantargyfelosztasResource.TtfVisszamenolegesModositasHiba, string.Join(", ", utkozoDatumok));
|
|
}
|
|
|
|
return string.IsNullOrWhiteSpace(errorMessage);
|
|
}
|
|
|
|
public void HandleTanarValtozasOrarendiOrakon(int foglalkozasId)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
h.TantargyFelosztas().HandleTanarValtozasOrarendiOrakon(foglalkozasId);
|
|
});
|
|
}
|
|
}
|
|
}
|