621 lines
27 KiB
C#
621 lines
27 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Exceptions;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
|
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.DataAccessObjects.Csoport;
|
|
using Kreta.DataAccessManual.Interfaces;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework.Util;
|
|
using Kreta.Resources;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers
|
|
{
|
|
public class CsoportHelper : LogicBase
|
|
{
|
|
public CsoportHelper(IConnectionType connectionType) : base(connectionType) { }
|
|
|
|
public IDictionary<string, string> GetCsoportok(string baseText = null, int? tanarId = null)
|
|
{
|
|
if (GridParameters == null)
|
|
{
|
|
GridParameters = new GridParameters() { OrderBy = "Evfolyam ASC" };
|
|
}
|
|
|
|
var ds = Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport(GridParameters);
|
|
return dal.GetCsoportokForDDL(tanarId: tanarId);
|
|
});
|
|
|
|
return LogicUtil.CreateDropdownContent(ds, "ID", "Nev", baseText, sort: false);
|
|
}
|
|
|
|
public IDictionary<string, string> GetNapkozisCsoportok(string baseText = null, int? tanarId = null)
|
|
{
|
|
if (GridParameters == null)
|
|
{
|
|
GridParameters = new GridParameters() { OrderBy = "Evfolyam ASC" };
|
|
}
|
|
|
|
var ds = Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport(GridParameters);
|
|
return dal.GetNapkozisCsoportokForDDL(tanarId: tanarId);
|
|
});
|
|
|
|
return LogicUtil.CreateDropdownContent(ds, "ID", "Nev", baseText, sort: false);
|
|
}
|
|
|
|
public IDictionary<string, string> GetSzakmaiGyCsoportok(string baseText = null, int? tanarId = null)
|
|
{
|
|
if (GridParameters == null)
|
|
{
|
|
GridParameters = new GridParameters() { OrderBy = "Evfolyam ASC" };
|
|
}
|
|
|
|
var ds = Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport(GridParameters);
|
|
return dal.GetSzakmaiGyCsoportokForDDL(tanarId: tanarId);
|
|
});
|
|
|
|
return LogicUtil.CreateDropdownContent(ds, "ID", "Nev", baseText, sort: false);
|
|
}
|
|
|
|
public IDictionary<string, string> GetTanoranKivuliCsoportok()
|
|
{
|
|
if (GridParameters == null)
|
|
{
|
|
GridParameters = new GridParameters() { OrderBy = "Evfolyam ASC" };
|
|
}
|
|
|
|
var ds = Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport(GridParameters);
|
|
return dal.GetTanoranKivuliCsoportokForDDL(TanevId, IntezmenyId);
|
|
});
|
|
|
|
return LogicUtil.CreateDropdownContent(ds, "Id", "Nev", null);
|
|
}
|
|
|
|
public CsoportCO GetGroupByID(int csoportId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport();
|
|
var entity = dal.Get(csoportId);
|
|
var co = ConvertEntityToCo(entity);
|
|
|
|
co.HasTanuloBesorolas = h.OsztalyCsoport().HasTanuloBesorolas(csoportId);
|
|
|
|
if (entity.FeladatEllatasiHelyId.IsEntityId())
|
|
{
|
|
var oktNevFeladatNev = entity.FeladatEllatasiHely.OktatasiNevelesiFeladatTipus.GetDisplayName<OktatasiNevelesiFeladatEnum>(TanevId);
|
|
co.FeladatEllatasiHelyName = $"{entity.FeladatEllatasiHely.MukodesiHely.Nev ?? string.Empty} - {oktNevFeladatNev}";
|
|
}
|
|
|
|
return co;
|
|
});
|
|
}
|
|
|
|
public IEnumerable<NemTanoraiCeluCsoportTipusCO> GetNemTanoraiCeluCsoportTipusokForErtekeles()
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var nemTanoraiCeluCsoportTipusok = new List<NemTanoraiCeluCsoportTipusDao>();
|
|
|
|
var isNemTanoraiCeluCsoportokErtekelesEnabled = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.nem_tanorai_celu_csoportok_ertekelesi_lehetosege);
|
|
if (!isNemTanoraiCeluCsoportokErtekelesEnabled)
|
|
{
|
|
nemTanoraiCeluCsoportTipusok = h.Csoport().GetNemTanoraiCeluCsoportTipusList();
|
|
}
|
|
|
|
var response = new List<NemTanoraiCeluCsoportTipusCO>();
|
|
|
|
foreach (var item in nemTanoraiCeluCsoportTipusok)
|
|
{
|
|
response.Add(new NemTanoraiCeluCsoportTipusCO
|
|
{
|
|
CsoportTipusId = item.CsoportTipusId
|
|
});
|
|
}
|
|
|
|
return response;
|
|
});
|
|
}
|
|
|
|
public void DeleteGroupById(int classId, bool updateTanoraEvesSorszam = true)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport();
|
|
var entity = dal.Get(classId);
|
|
var osztalyCsoport = new OsztalyCsoportHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
|
|
if (h.OsztalyCsoport().HasTanuloBesorolas(classId))
|
|
{
|
|
throw new CannotBeDeletedException(string.Format(ErrorResource.Az0OsztalyCsoportNemTorolthetoMertKapcsolodikVagyKapcsolodottHozzaTanulo, entity.Nev));
|
|
}
|
|
|
|
if (!osztalyCsoport.HasTanitasiOra(classId))
|
|
{
|
|
var orarendiOraDal = h.OrarendiOra();
|
|
var orarendiOraList = entity.OrarendiOra.Where(x => !x.Torolt).ToList();
|
|
|
|
orarendiOraList.ForEach(x => orarendiOraDal.Delete(x.ID));
|
|
}
|
|
|
|
if (entity.Foglalkozasok.Any(x => !x.Torolt))
|
|
{
|
|
throw new CannotBeDeletedException(string.Format(ErrorResource.A0CsoporthozTantargyfelosztasElemVanRogzitveKerjukToroljeATTFetEztKovetoenMarTorolhetoACsoportIs, entity.Nev));
|
|
}
|
|
|
|
var fogadooraList = entity.Fogadoora_OsztalyCsoport.Where(x => !x.Torolt).ToList();
|
|
|
|
if (fogadooraList.Any())
|
|
{
|
|
if (fogadooraList.All(x => x.Fogadoora.FogadooraKezdete < DateTime.Today))
|
|
{
|
|
var fogadooraDal = h.Fogadoora();
|
|
fogadooraList.ForEach(x => fogadooraDal.DeleteFogadooraOsztalyCsoportByFogadooraIdOsztalyCsoportId(x.FogadooraId, classId));
|
|
}
|
|
}
|
|
|
|
dal.Delete(classId, IntezmenyId, TanevId, updateTanoraEvesSorszam);
|
|
});
|
|
}
|
|
|
|
public void UpdateCo(CsoportCO co, int modifierId)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport(GridParameters);
|
|
var entity = dal.Get(co.Id);
|
|
|
|
if (entity.FeladatEllatasiHelyId != co.FeladatEllatasiHelyId
|
|
&& !new FeladatEllatasiHelyHelper(new DalHandlerConnectionType(ConnectionType, h)).IsAzonosKategoria(entity.FeladatEllatasiHelyId, co.FeladatEllatasiHelyId)
|
|
&& h.OsztalyCsoport().HasTanuloBesorolas(co.Id)
|
|
&& co.FeladatEllatasiHelyId.IsEntityId() && !co.IsFromSzervezet)
|
|
{
|
|
throw new BlException(OsztalyCsoportResource.FeladatellatasiHelyNemModosithatoMertVanTanuloBesorolva);
|
|
}
|
|
|
|
var utkozoTanevrendDatumok = new List<string>();
|
|
var tanevrendHelper = new TanevrendHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
|
|
int? ocsEvfolyamTipusa = null;
|
|
if (co.OsztalyBontasId.HasValue)
|
|
{
|
|
var ocsDal = h.OsztalyCsoport(GridParameters);
|
|
var osztaly = ocsDal.Get(co.OsztalyBontasId.Value);
|
|
ocsEvfolyamTipusa = osztaly.EvfolyamTipusa;
|
|
entity.KepzesiForma = osztaly.KepzesiForma;
|
|
|
|
var osztalyTanevrendjei = tanevrendHelper.GetOsztalycsoportTanevrendje(null, osztaly.ID, false);
|
|
var csoportTanevrendjei = tanevrendHelper.GetOsztalycsoportTanevrendje(null, co.Id, false);
|
|
utkozoTanevrendDatumok = osztalyTanevrendjei.Where(x => csoportTanevrendjei.Exists(y => y.TanevrendId == x.TanevrendId)).Select(x => x.Datum.ToString(Constants.ToStringPattern.HungarianDateWithSuffix)).ToList();
|
|
}
|
|
|
|
var mustInsertOrUpdateTanevrendje = false;
|
|
var oldOsztalyId = -1;
|
|
if (co.OsztalyBontasId != entity.OsztalyBontasId)
|
|
{
|
|
mustInsertOrUpdateTanevrendje = true;
|
|
oldOsztalyId = entity.OsztalyBontasId;
|
|
}
|
|
|
|
var needTTFFoglalkozasTipusUpdate = entity.Tipusa != co.CsoportTipus;
|
|
|
|
ConvertToEntity(h, entity, co, true, ocsEvfolyamTipusa);
|
|
dal.Update(entity);
|
|
|
|
if (mustInsertOrUpdateTanevrendje)
|
|
{
|
|
if (co.OsztalyBontasId.IsEntityId())
|
|
{
|
|
if (utkozoTanevrendDatumok.Count > 0)
|
|
{
|
|
throw new BlException(string.Format(OsztalyCsoportResource.OsztalybontasEsetenLeteznekMegegyezoTanevrendek, string.Join(",", utkozoTanevrendDatumok)));
|
|
}
|
|
|
|
tanevrendHelper.InsertTanevRendjeNewBontottCsoport(co.OsztalyBontasId.Value, co.Id);
|
|
}
|
|
else
|
|
{
|
|
tanevrendHelper.DeleteTanevRendjeNewBontottCsoport(oldOsztalyId, co.Id, modifierId);
|
|
}
|
|
}
|
|
|
|
if (needTTFFoglalkozasTipusUpdate && co.CsoportTipus.HasValue)
|
|
{
|
|
h.Csoport().UpdateTTFFoglalkozasTipusByCsoportTipus(TanevId, co.Id, co.CsoportTipus.Value, co.OsztalyBontasId.HasValue, modifierId);
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
public int InsertCo(CsoportCO co)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport(GridParameters);
|
|
var entity = dal.Get();
|
|
ConvertToEntity(h, entity, co, false, null);
|
|
return dal.Insert(entity);
|
|
});
|
|
}
|
|
|
|
public List<CsoportGridItemCo> GetCsoportKeresesCoList(CsoportSearchCo co, int? felhasznaloSzervezetId = null)
|
|
{
|
|
var isFromSzervezet = co?.IsFromSzervezet ?? false;
|
|
var result = Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dataSet = h.Csoport(GridParameters).CsoportKereses(TanevId, IntezmenyId, co.ConvertToPco());
|
|
|
|
List<CsoportGridItemCo> coList;
|
|
if (isFromSzervezet)
|
|
{
|
|
var szervezetIds = !felhasznaloSzervezetId.IsEntityId() ? new List<int>() : h.SzervezetDal().GetLathatoSzervezetek(IntezmenyId, TanevId, felhasznaloSzervezetId, (int)SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek);
|
|
var intezmenyiAdminIds = felhasznaloSzervezetId.IsEntityId() ? new List<int>() : h.Felhasznalo().GetAllIntezmenyiAdmin(TanevId);
|
|
|
|
coList = dataSet.Tables[0].AsEnumerable().Select(dataRow =>
|
|
{
|
|
var szervezetId = dataRow.Field<int?>("SzervezetId");
|
|
var isSzerkesztheto = (felhasznaloSzervezetId.IsEntityId() && szervezetId.IsEntityId() && szervezetIds.Contains(szervezetId.Value)) ||
|
|
(!felhasznaloSzervezetId.IsEntityId() && intezmenyiAdminIds.Contains(FelhasznaloId) && intezmenyiAdminIds.Contains(dataRow.Field<int?>("RogzitoId") ?? FelhasznaloId));
|
|
|
|
return new CsoportGridItemCo(dataRow, isSzerkesztheto, true);
|
|
}).ToList();
|
|
}
|
|
else
|
|
{
|
|
coList = dataSet.Tables[0].AsEnumerable().Select(x => new CsoportGridItemCo(x, true, false)).ToList();
|
|
}
|
|
|
|
return coList;
|
|
});
|
|
|
|
return result;
|
|
}
|
|
|
|
public string CsoportTobbesModify(CsoportTobbesModCO csoportTobbesModCO, bool updateTanoraEvesSorszam = true)
|
|
{
|
|
if (!csoportTobbesModCO.CsoportId.HasValue)
|
|
{
|
|
throw new BlException(OsztalyCsoportResource.NemLetezoCsoport);
|
|
}
|
|
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport(GridParameters);
|
|
var entity = dal.Get(csoportTobbesModCO.CsoportId.Value);
|
|
|
|
if (csoportTobbesModCO.Tipusa.HasValue)
|
|
{
|
|
entity.Tipusa = csoportTobbesModCO.Tipusa.Value;
|
|
}
|
|
if (csoportTobbesModCO.EvfolyamTipusa.HasValue)
|
|
{
|
|
entity.EvfolyamTipusa = csoportTobbesModCO.EvfolyamTipusa.Value;
|
|
}
|
|
|
|
if (csoportTobbesModCO.FeladatEllatasiHelyId.HasValue)
|
|
{
|
|
if (entity.FeladatEllatasiHelyId != csoportTobbesModCO.FeladatEllatasiHelyId.Value && !new FeladatEllatasiHelyHelper(new DalHandlerConnectionType(ConnectionType, h)).IsAzonosKategoria(entity.FeladatEllatasiHelyId, csoportTobbesModCO.FeladatEllatasiHelyId.Value) && h.OsztalyCsoport().HasTanuloBesorolas(csoportTobbesModCO.CsoportId.Value))
|
|
{
|
|
return entity.Nev;
|
|
}
|
|
|
|
entity.FeladatEllatasiHelyId = csoportTobbesModCO.FeladatEllatasiHelyId.Value;
|
|
entity.FeladatKategoriaId = new FeladatEllatasiHelyHelper(new DalHandlerConnectionType(ConnectionType, h)).GetFeladatKategoriaId(csoportTobbesModCO.FeladatEllatasiHelyId.Value);
|
|
}
|
|
if (csoportTobbesModCO.OsztalyBontas.HasValue)
|
|
{
|
|
if (csoportTobbesModCO.OsztalyBontas > 0)
|
|
{
|
|
if (csoportTobbesModCO.OsztalyBontasId.HasValue)
|
|
{
|
|
var osztaly = h.Osztaly().Get(csoportTobbesModCO.OsztalyBontasId.Value);
|
|
entity.OsztalyBontas = osztaly;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
entity.OsztalyBontasId = -1;
|
|
if (!csoportTobbesModCO.EvfolyamTipusa.HasValue)
|
|
{
|
|
entity.EvfolyamTipusa = (int)EvfolyamTipusEnum.na;
|
|
}
|
|
}
|
|
}
|
|
if (csoportTobbesModCO.Vegzos.HasValue)
|
|
{
|
|
entity.VegzosEvfolyam = csoportTobbesModCO.Vegzos.ToBool();
|
|
}
|
|
if (csoportTobbesModCO.TervezettLetszam.HasValue)
|
|
{
|
|
entity.TervezettLetszam = csoportTobbesModCO.TervezettLetszam;
|
|
}
|
|
if (csoportTobbesModCO.Keresztfeleves.HasValue)
|
|
{
|
|
entity.Keresztfeleves = csoportTobbesModCO.Keresztfeleves.ToBool();
|
|
}
|
|
if (csoportTobbesModCO.IsGyogypedagogiaiLogopediai.HasValue)
|
|
{
|
|
entity.IsGyogypedagogiaiLogopediai = csoportTobbesModCO.IsGyogypedagogiaiLogopediai.ToBool();
|
|
}
|
|
if (csoportTobbesModCO.TechnikaiCsoport.HasValue)
|
|
{
|
|
entity.IsTechnikai = csoportTobbesModCO.TechnikaiCsoport.ToBool();
|
|
}
|
|
if (csoportTobbesModCO.CsoportNaploMegnyitasa.HasValue)
|
|
{
|
|
entity.CsoportnaploMegnyitasa = csoportTobbesModCO.CsoportNaploMegnyitasa.Value;
|
|
}
|
|
if (csoportTobbesModCO.CsoportNaploLezarasa.HasValue)
|
|
{
|
|
entity.CsoportnaploZarasa = csoportTobbesModCO.CsoportNaploLezarasa.Value;
|
|
}
|
|
if (csoportTobbesModCO.MuveszetiAgId.HasValue)
|
|
{
|
|
entity.MuveszetiAgId = csoportTobbesModCO.MuveszetiAgId.Value;
|
|
}
|
|
if (csoportTobbesModCO.ZenemuveszetiAgTipusId.HasValue)
|
|
{
|
|
entity.ZenemuveszetiAgTipusId = csoportTobbesModCO.ZenemuveszetiAgTipusId.Value;
|
|
}
|
|
|
|
if (csoportTobbesModCO.CsoportVezeto.HasValue)
|
|
{
|
|
entity.CsoportVezetoId = csoportTobbesModCO.CsoportVezeto.Value;
|
|
}
|
|
if (csoportTobbesModCO.Terem.HasValue)
|
|
{
|
|
entity.TeremId = csoportTobbesModCO.Terem.Value;
|
|
}
|
|
if (csoportTobbesModCO.SzervezetId.HasValue)
|
|
{
|
|
entity.SzervezetId = csoportTobbesModCO.SzervezetId.Value;
|
|
}
|
|
|
|
dal.Update(entity, updateTanoraEvesSorszam);
|
|
|
|
return null;
|
|
});
|
|
}
|
|
|
|
public bool IsNyariSzakmaiGyakorlatos(int csoportId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport();
|
|
return dal.IsNyariSzakmaiGyakorlatos(TanevId, csoportId);
|
|
});
|
|
}
|
|
|
|
private CsoportCO ConvertEntityToCo(ICsoport entity)
|
|
{
|
|
var co = new CsoportCO
|
|
{
|
|
Id = entity.ID,
|
|
CsoportNeve = entity.Nev,
|
|
CsoportTipus = entity.Tipusa,
|
|
Megjegyzes = entity.Megjegyzes,
|
|
VegzosEvfolyamCsoport = entity.VegzosEvfolyam,
|
|
KeresztfelevesCsoport = entity.Keresztfeleves,
|
|
IsGyogypedagogiaiLogopediai = entity.IsGyogypedagogiaiLogopediai,
|
|
TechnikaiCsoport = entity.IsTechnikai,
|
|
CsoportvezetoId = entity.CsoportVezetoId > 0 ? entity.CsoportVezetoId : (int?)null,
|
|
EvfolyamTipusa = entity.EvfolyamTipusa > 0 ? entity.EvfolyamTipusa : (int?)null,
|
|
TeremID = entity.TeremId > 0 ? entity.TeremId : (int?)null,
|
|
FeladatEllatasiHelyId = entity.FeladatEllatasiHelyId > 0 ? entity.FeladatEllatasiHelyId : 0,
|
|
TanevNeve = entity.Tanev.Nev,
|
|
TanulokSzama = entity.Tanulo.Count(x => (!x.Torolt && (x.KilepesDatum == null || x.KilepesDatum > DateTime.Now))),
|
|
|
|
CsoportvezetoNeve = entity.CsoportVezeto == null ? string.Empty : entity.CsoportVezeto.NyomtatasiNev,
|
|
TeremNev = entity.Terem != null ? entity.Terem.Nev : string.Empty,
|
|
CsoportNaploLeirasa = entity.CsoportnaploLeiras,
|
|
Naploszam = entity.Naploszam,
|
|
CsoportNaploMegnyitasa = entity.CsoportnaploMegnyitasa,
|
|
CsoportNaploLezarasa = entity.CsoportnaploZarasa,
|
|
|
|
TervezettLetszam = entity.TervezettLetszam,
|
|
OsztalyBontasId = entity.OsztalyBontasId > 0 ? (int?)entity.OsztalyBontasId : null,
|
|
OsztalyBontas = entity.OsztalyBontasId > 0,
|
|
OsztalyBontasNev = entity.OsztalyBontasId > 0 ? entity.OsztalyBontas.Nev : string.Empty,
|
|
|
|
IsAutoEgyeniCsoport = entity.IsAutoEgyeniCsoport,
|
|
MuveszetiAgId = entity.MuveszetiAgId,
|
|
ZenemuveszetiAgTipusId = entity.ZenemuveszetiAgTipusId,
|
|
|
|
KepzesiFormaId = entity.KepzesiForma,
|
|
|
|
SzervezetNeve = entity.Szervezet == null ? string.Empty : entity.Szervezet.Nev,
|
|
SzervezetId = entity.SzervezetId,
|
|
};
|
|
|
|
return co;
|
|
}
|
|
|
|
private void ConvertToEntity(IDalHandler h, ICsoport entity, CsoportCO co, bool isUpdate, int? ocsEvfolyamTipusId)
|
|
{
|
|
if (co.IsAutoEgyeniCsoport && isUpdate)
|
|
{
|
|
entity.Nev = co.CsoportNeve;
|
|
|
|
List<int> osszevontEvfolyamTipusIds = EnumExtensions.GetEvfolyamTipusDictionaryItems(TanevId, true).Select(x => x.Id).ToList();
|
|
bool isOsszevontEvfolyamTipus = osszevontEvfolyamTipusIds.Any(x => x == ocsEvfolyamTipusId);
|
|
if (ocsEvfolyamTipusId == (int)EvfolyamTipusEnum.na || isOsszevontEvfolyamTipus)
|
|
{
|
|
entity.EvfolyamTipusa = co.EvfolyamTipusa ?? (int)EvfolyamTipusEnum.na;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
entity.Nev = co.CsoportNeve;
|
|
entity.Megjegyzes = co.Megjegyzes;
|
|
entity.VegzosEvfolyam = co.VegzosEvfolyamCsoport;
|
|
entity.Keresztfeleves = co.KeresztfelevesCsoport;
|
|
entity.IsGyogypedagogiaiLogopediai = co.IsGyogypedagogiaiLogopediai;
|
|
entity.IsTechnikai = co.TechnikaiCsoport;
|
|
entity.OsztalyBontasId = co.OsztalyBontasId ?? -1;
|
|
entity.TervezettLetszam = co.TervezettLetszam;
|
|
entity.KepzesiForma = co.KepzesiFormaId;
|
|
|
|
if (co.TeremID.HasValue && co.TeremID.Value > 0)
|
|
{
|
|
entity.TeremId = co.TeremID.Value;
|
|
}
|
|
else
|
|
{ entity.TeremId = -1; }
|
|
entity.Tipusa = co.CsoportTipus;
|
|
if (co.CsoportvezetoId.HasValue && co.CsoportvezetoId.Value > 0)
|
|
{
|
|
entity.CsoportVezetoId = co.CsoportvezetoId.Value;
|
|
}
|
|
else if (isUpdate)
|
|
{
|
|
entity.CsoportVezeto = null;
|
|
}
|
|
|
|
entity.EvfolyamTipusa = co.EvfolyamTipusa ?? (int)EvfolyamTipusEnum.na;
|
|
|
|
if (co.FeladatEllatasiHelyId > 0)
|
|
{
|
|
entity.FeladatEllatasiHelyId = co.FeladatEllatasiHelyId;
|
|
entity.FeladatKategoriaId = new FeladatEllatasiHelyHelper(new DalHandlerConnectionType(ConnectionType, h)).GetFeladatKategoriaId(co.FeladatEllatasiHelyId);
|
|
}
|
|
else if (isUpdate)
|
|
{
|
|
entity.FeladatEllatasiHely = null;
|
|
}
|
|
|
|
entity.CsoportnaploMegnyitasa = co.CsoportNaploMegnyitasa.HasValue ? (DateTime?)co.CsoportNaploMegnyitasa.Value : null;
|
|
|
|
entity.CsoportnaploZarasa = co.CsoportNaploLezarasa.HasValue ? (DateTime?)co.CsoportNaploLezarasa.Value : null;
|
|
entity.Naploszam = co.Naploszam;
|
|
entity.CsoportnaploLeiras = co.CsoportNaploLeirasa;
|
|
entity.MuveszetiAgId = co.MuveszetiAgId;
|
|
entity.ZenemuveszetiAgTipusId = co.ZenemuveszetiAgTipusId;
|
|
|
|
if (co.SzervezetId.HasValue)
|
|
{
|
|
entity.SzervezetId = co.SzervezetId.Value;
|
|
}
|
|
|
|
entity.TanevId = TanevId;
|
|
}
|
|
}
|
|
|
|
public List<CsoportItemCo> GetCsoportCoList()
|
|
{
|
|
DataSet dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Csoport().GetCsoportDataSet(TanevId));
|
|
|
|
var result = new List<CsoportItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new CsoportItemCo(dataRow);
|
|
result.Add(item);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<CsoportItemCo> GetCsoportListBySzervezet(int? szervezetTipus = null, int? szervezetId = null)
|
|
{
|
|
DataSet dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.Csoport().GetCsoportDataSet(TanevId));
|
|
|
|
var result = new List<CsoportItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new CsoportItemCo(dataRow);
|
|
if (item.SzervezetId.Equals(szervezetId))
|
|
{
|
|
result.Add(item);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public IDictionary<string, string> GetOsszefuggoSzakGyakosCsoportok()
|
|
{
|
|
var result = Dal.CustomConnection.Run(ConnectionType, (h) => h.Csoport().GetOsszefuggoSzakGyakosCsoportok(TanevId));
|
|
return LogicUtil.CreateDropdownContent(result, "ID", "Nev", sort: false);
|
|
}
|
|
|
|
public IDictionary<string, string> GetEgyeniCsoportData(int tanuloId, int osztalyId, bool isKovTanev)
|
|
{
|
|
var amiEgyeniCsoportok = Constants.AMIEgyeniCsoportok;
|
|
var ds = Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
DateTime? kovTanevElsoNapja = null;
|
|
if (isKovTanev)
|
|
{
|
|
kovTanevElsoNapja = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanevKezdete();
|
|
}
|
|
|
|
return h.Csoport().GetEgyeniCsoportData(tanuloId, osztalyId, TanevId, amiEgyeniCsoportok, isKovTanev, kovTanevElsoNapja);
|
|
});
|
|
return LogicUtil.CreateDropdownContent(ds, "Id", "Nev", sort: false);
|
|
}
|
|
|
|
public int? GetCsoportOsztalyBontasId(int csoportId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var csoportDal = h.Csoport();
|
|
var csoport = csoportDal.Get(csoportId);
|
|
return csoport.OsztalyBontasId.IsEntityId() ? csoport.OsztalyBontasId : (int?)null;
|
|
});
|
|
}
|
|
|
|
public DataSet GetTanuloOsztalyByCsoportAndDatum(int csoportId, DateTime datum)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
return h.Csoport().GetOsztalyIdByCsoportIdAndDatum(TanevId, IntezmenyId, csoportId, datum);
|
|
});
|
|
}
|
|
|
|
public (int munkarenddelNemRendelkezo, int munkarenddelRendelkezo) GetCsoportMunkarendSzama(int osztalyCsoportId, bool isAktivTanev)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport(GridParameters);
|
|
var dataSet = dal.GetCsoportMunkarendSzama(osztalyCsoportId, isAktivTanev);
|
|
var dataRow = dataSet.Tables[0].Rows[0];
|
|
return (munkarenddelNemRendelkezo: (int)dataRow[0], munkarenddelRendelkezo: (int)dataRow[1]);
|
|
});
|
|
}
|
|
|
|
public List<OsztalyCsoportTanuloMunkarendItemCo> GetCsoportTanuloiByMunkarend(int osztalycsoportId, bool hasMunkarend, bool isAktivTanev)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
|
{
|
|
var dal = h.Csoport(GridParameters);
|
|
var dataSet = dal.GetCsoportTanuloiByMunkarend(osztalycsoportId, hasMunkarend, isAktivTanev);
|
|
|
|
var result = new List<OsztalyCsoportTanuloMunkarendItemCo>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var item = new OsztalyCsoportTanuloMunkarendItemCo(dataRow);
|
|
result.Add(item);
|
|
}
|
|
return result;
|
|
});
|
|
}
|
|
}
|
|
}
|