863 lines
46 KiB
C#
863 lines
46 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Web.Mvc;
|
|
using Kreta.BusinessLogic.Caching;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Classes.ComboBox;
|
|
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers.DokumentumHelpers;
|
|
using Kreta.BusinessLogic.Helpers.SystemSettings;
|
|
using Kreta.BusinessLogic.Logic;
|
|
using Kreta.BusinessLogic.Logic.TanuloErtekeles;
|
|
using Kreta.Core;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.Core.FeatureToggle;
|
|
using Kreta.Core.Validation.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.Caching.DictionaryItemTables;
|
|
using Kreta.KretaServer.SystemSettings;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers
|
|
{
|
|
public class TanuloErtekelesHelper : LogicBase
|
|
{
|
|
public TanuloErtekelesHelper(IConnectionType connectionType) : base(connectionType) { }
|
|
|
|
public TanuloErtekelesCo GetTanuloErtekelesCoById(int id)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
ITanuloErtekeles entity = h.TanuloErtekelesDal().Get(id);
|
|
List<int> nemzetiDokumentumNyelvek = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
|
|
|
|
TanuloErtekelesCo co = new TanuloErtekelesCo(entity, nemzetiDokumentumNyelvek, TanevId);
|
|
return co;
|
|
});
|
|
}
|
|
|
|
public DataSet GetTanuloErtekelesDataSetByTantargyForGrid(int tanarId, int osztalyCsoportId, int tantargyId, DateTime? datum, bool isFromSzervezet)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var tanuloErtekelesGridHelperCo = new TanuloErtekelesGridHelperCo
|
|
{
|
|
DataSet = h.TanuloErtekelesDal(GridParameters).GetTanuloErtekelesDataSetByTantargy(TanevId, tanarId, tantargyId, osztalyCsoportId, datum, isFromSzervezet),
|
|
Datum = datum,
|
|
TanuloErtekelesVisibilityCo = null,
|
|
EgyszerAdhatoErtekelesTipusIds = EnumExtensions.GetErtekelesTipusDictionaryItems(TanevId, true).Select(x => x.Id).ToList(),
|
|
ErtekelesModDictionary = GetErtekelesModDictionary()
|
|
};
|
|
SetTanuloErtekelesGridHelperCo(h, tanuloErtekelesGridHelperCo);
|
|
|
|
DataSet gridDataSet = TanuloErtekelesLogicWeb.GetTanuloErtekelesDataSetByTantargyForGrid(tanuloErtekelesGridHelperCo);
|
|
return gridDataSet;
|
|
});
|
|
}
|
|
|
|
public DataSet GetTanuloErtekelesDataSetByMagatartasSzorgalomForGrid(int tanarId, int osztalyCsoportId, DateTime? datum)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var tanuloErtekelesGridHelperCo = new TanuloErtekelesGridHelperCo
|
|
{
|
|
DataSet = h.TanuloErtekelesDal(GridParameters).GetTanuloErtekelesDataSetByMagatartasSzorgalom(TanevId, tanarId, osztalyCsoportId, datum),
|
|
Datum = datum,
|
|
TanuloErtekelesVisibilityCo = null,
|
|
EgyszerAdhatoErtekelesTipusIds = EnumExtensions.GetErtekelesTipusDictionaryItems(TanevId, true).Select(x => x.Id).ToList(),
|
|
ErtekelesModDictionary = GetErtekelesModDictionary()
|
|
};
|
|
SetTanuloErtekelesGridHelperCo(h, tanuloErtekelesGridHelperCo);
|
|
|
|
DataSet gridDataSet = TanuloErtekelesLogicWeb.GetTanuloErtekelesDataSetByMagatartasSzorgalomForGrid(tanuloErtekelesGridHelperCo);
|
|
return gridDataSet;
|
|
});
|
|
}
|
|
|
|
public DataSet GetTanuloErtekelesDataSetByTanuloForGrid(int? tanarId, int tanuloId, bool isTanuloView, DateTime? datum, int oktatasiNevelesiFeladatId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var feladatKategoriaId = h.OktatasNevelesiFeladatDal().GetFeladatKategoriaId(oktatasiNevelesiFeladatId, TanevId);
|
|
|
|
bool isVegzosOsztalyTanuloja = GetIsVegzosOsztalyTanuloja(tanuloId, h);
|
|
var tanuloErtekelesVisibilityCo = new TanuloErtekelesVisibilityCo
|
|
{
|
|
IsTanuloView = isTanuloView,
|
|
IsINegyedevesJegyHidden = IsINegyedevesJegyHidden(),
|
|
IsIiNegyedevesJegyHidden = IsIiNegyedevesJegyHidden(),
|
|
IsFeleviJegyHidden = IsFeleviJegyHidden(),
|
|
IsIiiNegyedevesJegyHidden = IsIiiNegyedevesJegyHidden(),
|
|
IsIvNegyedevesJegyHidden = IsIvNegyedevesJegyHidden(isVegzosOsztalyTanuloja),
|
|
IsEvvegiJegyHidden = IsEvvegiJegyHidden(isVegzosOsztalyTanuloja),
|
|
KesleltetettMegjelenitesOraszam = GetKesleltetettMegjelenitesOraszam()
|
|
};
|
|
var tanuloErtekelesGridHelperCo = new TanuloErtekelesGridHelperCo
|
|
{
|
|
DataSet = h.TanuloErtekelesDal().GetTanuloErtekelesDataSetByTanulo(IntezmenyId, TanevId, tanarId, tanuloId, datum, oktatasiNevelesiFeladatId, feladatKategoriaId),
|
|
Datum = datum,
|
|
TanuloErtekelesVisibilityCo = tanuloErtekelesVisibilityCo,
|
|
EgyszerAdhatoErtekelesTipusIds = EnumExtensions.GetErtekelesTipusDictionaryItems(TanevId, true).Select(x => x.Id).ToList(),
|
|
ErtekelesModDictionary = GetErtekelesModDictionary()
|
|
};
|
|
SetTanuloErtekelesGridHelperCo(h, tanuloErtekelesGridHelperCo);
|
|
|
|
DataSet gridDataSet = TanuloErtekelesLogicWeb.GetTanuloErtekelesDataSetByTanuloForGrid(tanuloErtekelesGridHelperCo);
|
|
return gridDataSet;
|
|
});
|
|
}
|
|
|
|
public DataSet GetTanuloErtekelesDataSetByFotargyAltargyForGrid(int tanarId, int tanuloId, int fotargyAltargyId, DateTime? datum, int feladatKategoriaId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var tanuloErtekelesGridHelperCo = new TanuloErtekelesGridHelperCo
|
|
{
|
|
DataSet = h.TanuloErtekelesDal().GetTanuloErtekelesDataSetByFotargyAltargy(IntezmenyId, TanevId, tanarId, tanuloId, fotargyAltargyId, datum, feladatKategoriaId),
|
|
Datum = datum,
|
|
TanuloErtekelesVisibilityCo = null,
|
|
EgyszerAdhatoErtekelesTipusIds = EnumExtensions.GetErtekelesTipusDictionaryItems(TanevId, true).Select(x => x.Id).ToList(),
|
|
ErtekelesModDictionary = GetErtekelesModDictionary()
|
|
};
|
|
SetTanuloErtekelesGridHelperCo(h, tanuloErtekelesGridHelperCo);
|
|
|
|
DataSet gridDataSet = TanuloErtekelesLogicWeb.GetTanuloErtekelesDataSetByFotargyAltargyForGrid(tanuloErtekelesGridHelperCo);
|
|
return gridDataSet;
|
|
});
|
|
}
|
|
|
|
private void SetTanuloErtekelesGridHelperCo(IDalHandler h, TanuloErtekelesGridHelperCo tanuloErtekelesGridHelperCo)
|
|
{
|
|
tanuloErtekelesGridHelperCo.TanevId = TanevId;
|
|
tanuloErtekelesGridHelperCo.FelevVegeDatum = h.TanevRendjeDal().GetElsoFelevVege(IntezmenyId, TanevId);
|
|
tanuloErtekelesGridHelperCo.NaplozarasDatuma = new OrarendHelper(new DalHandlerConnectionType(ConnectionType, h)).GetNaplozarasDate(startDate: null);
|
|
tanuloErtekelesGridHelperCo.IsJegyekAtlagaMegjelenik = GetIsJegyekAtlagaMegjelenik();
|
|
}
|
|
|
|
public DataSet GetTanuloErtekelesDataSetForDetailGrid(int tanuloId, int? tantargyId, bool showToroltElemek, bool isTanuloView, int felhasznaloId, int ertekelesMegjelenesFajtaEnumId, DateTime? datum, int? feladatKategoriaId, int? oktatasiNevelesiFeladatId, bool isDualisKepzesEnabled)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var fkId = feladatKategoriaId ?? 0;
|
|
|
|
if (oktatasiNevelesiFeladatId.HasValue)
|
|
{
|
|
fkId = h.OktatasNevelesiFeladatDal().GetFeladatKategoriaId(oktatasiNevelesiFeladatId.Value, TanevId);
|
|
}
|
|
|
|
int? tanarId = isTanuloView ? (int?)null : felhasznaloId;
|
|
DataSet result = h.TanuloErtekelesDal(GridParameters).GetTanuloErtekelesDetailDataSet(TanevId, tanuloId, tantargyId, showToroltElemek, tanarId, ertekelesMegjelenesFajtaEnumId, datum, fkId, oktatasiNevelesiFeladatId, isDualisKepzesEnabled);
|
|
var dataTable = result.Tables[0];
|
|
if (isTanuloView)
|
|
{
|
|
RemoveTanuloJogosultsagMiattiErtekelesek(new List<int> { tanuloId }, dataTable);
|
|
}
|
|
|
|
DateTime naplozarasDatuma = new OrarendHelper(new DalHandlerConnectionType(ConnectionType, h)).GetNaplozarasDate(startDate: null);
|
|
|
|
TanuloErtekelesLogicWeb.SetTanuloErtekelesDataSetForDetailGridDataTable(dataTable, ertekelesMegjelenesFajtaEnumId, naplozarasDatuma, TanevId);
|
|
return result;
|
|
});
|
|
}
|
|
|
|
public DataSet GetTanuloErtekelesListGridDataSet(TanuloErtekelesListCo tanuloErtekelesListCo, bool pErtekelesTextTemaval = false, bool utolagosOsztalyszures = false)
|
|
{
|
|
DataSet dataSet = GetTanuloErtekelesListDataSet(tanuloErtekelesListCo, utolagosOsztalyszures);
|
|
TanuloErtekelesLogicWeb.SetTanuloErtekelesListGridDataSet(dataSet, TanevId, pErtekelesTextTemaval);
|
|
return dataSet;
|
|
}
|
|
|
|
public QuadrupleList<string, string, string, string> GetTanuloLegfrissebbTanuloErtekelesList(int tanuloId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
int kesleltetettMegjelenitesOraszam = GetKesleltetettMegjelenitesOraszam();
|
|
DataSet tanuloErtekelesDataSet = h.TanuloErtekelesDal().GetLegfrissebbTanuloErtekelesDataSet(IntezmenyId, TanevId, tanuloId, kesleltetettMegjelenitesOraszam);
|
|
|
|
List<int> egyszerAdhatoErtekelesTipusIds = EnumExtensions.GetErtekelesTipusDictionaryItems(TanevId, true).Select(x => x.Id).ToList();
|
|
QuadrupleList<string, string, string, string> result = TanuloErtekelesLogicWeb.GetTanuloLegfrissebbTanuloErtekelesList(tanuloErtekelesDataSet, egyszerAdhatoErtekelesTipusIds);
|
|
return result;
|
|
});
|
|
}
|
|
|
|
public DataSet GetTanuloErtekelesDataSetForGrid(DolgozatokAtlagaSearchCo searchCo)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dolgozatGridHelperCo = new DolgozatGridHelperCo
|
|
{
|
|
DataSet = h.TanuloErtekelesDal(GridParameters).GetErtekelesDolgozatAtlagDataSet(IntezmenyId, TanevId, searchCo.ToPco()),
|
|
Datum = searchCo.Datum,
|
|
TanevId = TanevId
|
|
};
|
|
DataSet gridDataSet = TanuloErtekelesLogicWeb.GetDolgozatErtekelesDataSetForGrid(dolgozatGridHelperCo);
|
|
return gridDataSet;
|
|
});
|
|
}
|
|
|
|
public DataSet GetDolgozatReszletekDataSetForGrid(int? osztalyCsoportId, int? tantargyId, string ertekelesTemaja, DateTime? datum)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
return h.TanuloErtekelesDal(GridParameters).GetDolgozatReszletekDataSet(osztalyCsoportId, tantargyId, ertekelesTemaja, datum);
|
|
});
|
|
}
|
|
|
|
public MemoryStream GetTanulokJegyeiByTipusIdExcelExport(int tipusId, TanuloErtekelesListCo searchModel)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
DataSet dataSet = h.Tanulo().GetTanulokJegyeiByErtekelesTipusExcelExport(TanevId, tipusId, searchModel.ToPco());
|
|
|
|
dataSet.Tables[0].ChangeColumnDataType("Százalékos értékelés", typeof(string));
|
|
|
|
foreach (DataRow row in dataSet.Tables[0].Rows)
|
|
{
|
|
if (row.Field<int?>("C_TARGYKATEGORIA") == (int)TargyKategoriaTipusEnum.Szorgalom)
|
|
{
|
|
row["Osztályzat"] = TanuloErtekelesLogicWeb.GetOsztalyzatTextSzorgalom(row.Field<int?>("C_ERTEKELESOSZTALYZATID"), TanevId);
|
|
}
|
|
|
|
if (!(string.IsNullOrWhiteSpace(row.Field<string>("Százalékos értékelés"))))
|
|
{
|
|
row["Százalékos értékelés"] = row["Százalékos értékelés"] + "%";
|
|
}
|
|
}
|
|
|
|
dataSet.Tables[0].Columns.Remove("C_TARGYKATEGORIA");
|
|
dataSet.Tables[0].Columns.Remove("C_ERTEKELESOSZTALYZATID");
|
|
|
|
DataTable dataTable = dataSet.Tables[0];
|
|
ExportLogic.TryCreateHeaderIfNotExist(dataTable);
|
|
|
|
MemoryStream memoryStream = TanuloErtekelesLogicWeb.GetTanulokJegyeiByTipusIdExcelExport(dataTable, tipusId);
|
|
return memoryStream;
|
|
});
|
|
}
|
|
|
|
public void DeleteTanuloErtekelesById(int id, int? szervezetTipusId = null)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var ertekeles = h.TanuloErtekelesDal().Get(id);
|
|
|
|
h.TanuloErtekelesDal().Delete(id);
|
|
if (!szervezetTipusId.HasValue)
|
|
{
|
|
UpdateTantargyAtlagByTanuloTantargy(h, ertekeles.TanuloId, ertekeles.TantargyId, ertekeles.OsztalyCsoport.FeladatEllatasiHely.OktatasiNevelesiFeladatTipus);
|
|
}
|
|
});
|
|
}
|
|
|
|
/// INFO @DevKornel: Mobil használja
|
|
public void SaveTanuloErtekelesListMobilV2(int felhasznaloId, OsztalyCsoportErtekelesRequestCo osztalyCsoportErtekelesRequestCo)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var tanuloErtekelesCoList = TanuloErtekelesLogicMobil.GetTanuloErtekelesCoListV2(IntezmenyId, felhasznaloId, osztalyCsoportErtekelesRequestCo);
|
|
tanuloErtekelesCoList = new TanuloErtekelesValidacioMobil(new DalHandlerConnectionType(ConnectionType, h)).Validate(h, tanuloErtekelesCoList, out List<ValidationExceptionItem> errors);
|
|
SaveTanuloErtekelesList(h, felhasznaloId, tanuloErtekelesCoList);
|
|
|
|
if (errors.Any())
|
|
{
|
|
var validationException = TanuloErtekelesLogicMobil.GetValidationException(errors);
|
|
throw validationException;
|
|
}
|
|
});
|
|
}
|
|
|
|
public void SaveTanuloErtekelesList(int felhasznaloId, List<TanuloErtekelesCo> tanuloErtekelesCoList, int? szervezetTipusId = null)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
SaveTanuloErtekelesList(h, felhasznaloId, tanuloErtekelesCoList, szervezetTipusId);
|
|
});
|
|
}
|
|
|
|
private void SaveTanuloErtekelesList(IDalHandler h, int felhasznaloId, List<TanuloErtekelesCo> tanuloErtekelesCoList, int? szervezetTipusId = null)
|
|
{
|
|
tanuloErtekelesCoList.ForEach(x => SaveOrUpdateTanuloErtekeles(h, felhasznaloId, x, szervezetTipusId));
|
|
}
|
|
|
|
private ITanuloErtekeles SaveOrUpdateTanuloErtekeles(IDalHandler h, int felhasznaloId, TanuloErtekelesCo tanuloErtekelesCo, int? szervezetTipusId = null)
|
|
{
|
|
ITanuloErtekelesDal dal = h.TanuloErtekelesDal();
|
|
bool isNew = !tanuloErtekelesCo.Id.IsEntityId();
|
|
var entity = isNew ? dal.Get() : dal.Get(tanuloErtekelesCo.Id.Value);
|
|
DateTime datum = tanuloErtekelesCo.Datum;
|
|
bool isMagatartasSzorgalom = tanuloErtekelesCo.IsMagatartasSzorgalom;
|
|
|
|
TanuloErtekelesLogicBase.SetDefaultTanuloErtekelesProperties(entity, tanuloErtekelesCo, datum, isMagatartasSzorgalom, isNew);
|
|
|
|
if (isNew)
|
|
{
|
|
int? rogziteskoriTanuloOsztalyId = GetRogziteskoriOsztalyId(h, tanuloErtekelesCo, datum, szervezetTipusId);
|
|
|
|
TanuloErtekelesLogicBase.SetNewTanuloErtekelesProperties(entity, tanuloErtekelesCo, felhasznaloId, isMagatartasSzorgalom, rogziteskoriTanuloOsztalyId);
|
|
dal.Insert(entity);
|
|
SetNyelviesitesProperties(h, entity, tanuloErtekelesCo, isMagatartasSzorgalom);
|
|
dal.FullUpdate(entity);
|
|
}
|
|
else
|
|
{
|
|
SetNyelviesitesProperties(h, entity, tanuloErtekelesCo, isMagatartasSzorgalom);
|
|
dal.FullUpdate(entity);
|
|
}
|
|
|
|
if (tanuloErtekelesCo.TantargyId != null && !szervezetTipusId.HasValue)
|
|
{
|
|
UpdateTantargyAtlagByTanuloTantargy(h, tanuloErtekelesCo.TanuloId, tanuloErtekelesCo.TantargyId.Value, entity.OsztalyCsoport.FeladatEllatasiHely.OktatasiNevelesiFeladatTipus);
|
|
}
|
|
|
|
return entity;
|
|
}
|
|
|
|
private void SetNyelviesitesProperties(IDalHandler h, ITanuloErtekeles entity, TanuloErtekelesCo tanuloErtekelesCo, bool isMagatartasSzorgalom)
|
|
{
|
|
ITanuloErtekelesDal dal = h.TanuloErtekelesDal();
|
|
if (!TanuloErtekelesLogicBase.NyelviesithetoTanuloErtekelesTipusIdList.Contains(entity.TipusId))
|
|
{
|
|
dal.RemoveAllTanuloErtekelesNyelv(entity);
|
|
return;
|
|
}
|
|
|
|
var nemzetiDokumentumNyelvek = new SystemSettingsHelper(new DalHandlerConnectionType(ConnectionType, h)).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Nemzeti_Nyelvi_Dokumentum_Nyelvek);
|
|
if (!nemzetiDokumentumNyelvek.Any() || !TanuloErtekelesLogicBase.NyelviesithetoTanuloErtekelesTipusIdList.Contains(tanuloErtekelesCo.TipusId))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var tanuloErtekelesNyelvHelperCo = new TanuloErtekelesNyelvHelperCo
|
|
{
|
|
IsMagatartasSzorgalom = isMagatartasSzorgalom,
|
|
ErtekelesSzoveg = tanuloErtekelesCo.ErtekelesSzoveg,
|
|
ErtekelesTema = tanuloErtekelesCo.ErtekelesTema,
|
|
MagatartasSzoveg = tanuloErtekelesCo.MagatartasSzoveg,
|
|
SzorgalomSzoveg = tanuloErtekelesCo.SzorgalomSzoveg,
|
|
};
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.nemet))
|
|
{
|
|
tanuloErtekelesNyelvHelperCo.NyelvEnum = AnyanyelvEnum.nemet;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesSzovegNyelv = tanuloErtekelesCo.ErtekelesSzovegNemet;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesSzovegFormazottNyelv = tanuloErtekelesCo.ErtekelesSzovegFormazottNemet;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesTemaNyelv = tanuloErtekelesCo.ErtekelesTemaNemet;
|
|
tanuloErtekelesNyelvHelperCo.MagatartasSzovegNyelv = tanuloErtekelesCo.MagatartasSzovegNemet;
|
|
tanuloErtekelesNyelvHelperCo.MagatartasSzovegFormazottNyelv = tanuloErtekelesCo.MagatartasSzovegFormazottNemet;
|
|
tanuloErtekelesNyelvHelperCo.SzorgalomSzovegNyelv = tanuloErtekelesCo.ErtekelesSzovegNemet;
|
|
tanuloErtekelesNyelvHelperCo.SzorgalomSzovegFormazottNyelv = tanuloErtekelesCo.SzorgalomSzovegFormazottNemet;
|
|
SetNyelvProperties(h, entity, tanuloErtekelesNyelvHelperCo);
|
|
}
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.horvat))
|
|
{
|
|
tanuloErtekelesNyelvHelperCo.NyelvEnum = AnyanyelvEnum.horvat;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesSzovegNyelv = tanuloErtekelesCo.ErtekelesSzovegHorvat;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesSzovegFormazottNyelv = tanuloErtekelesCo.ErtekelesSzovegFormazottHorvat;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesTemaNyelv = tanuloErtekelesCo.ErtekelesTemaHorvat;
|
|
tanuloErtekelesNyelvHelperCo.MagatartasSzovegNyelv = tanuloErtekelesCo.MagatartasSzovegHorvat;
|
|
tanuloErtekelesNyelvHelperCo.MagatartasSzovegFormazottNyelv = tanuloErtekelesCo.MagatartasSzovegFormazottHorvat;
|
|
tanuloErtekelesNyelvHelperCo.SzorgalomSzovegNyelv = tanuloErtekelesCo.ErtekelesSzovegHorvat;
|
|
tanuloErtekelesNyelvHelperCo.SzorgalomSzovegFormazottNyelv = tanuloErtekelesCo.SzorgalomSzovegFormazottHorvat;
|
|
SetNyelvProperties(h, entity, tanuloErtekelesNyelvHelperCo);
|
|
}
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.roman))
|
|
{
|
|
tanuloErtekelesNyelvHelperCo.NyelvEnum = AnyanyelvEnum.roman;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesSzovegNyelv = tanuloErtekelesCo.ErtekelesSzovegRoman;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesSzovegFormazottNyelv = tanuloErtekelesCo.ErtekelesSzovegFormazottRoman;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesTemaNyelv = tanuloErtekelesCo.ErtekelesTemaRoman;
|
|
tanuloErtekelesNyelvHelperCo.MagatartasSzovegNyelv = tanuloErtekelesCo.MagatartasSzovegRoman;
|
|
tanuloErtekelesNyelvHelperCo.MagatartasSzovegFormazottNyelv = tanuloErtekelesCo.MagatartasSzovegFormazottRoman;
|
|
tanuloErtekelesNyelvHelperCo.SzorgalomSzovegNyelv = tanuloErtekelesCo.ErtekelesSzovegRoman;
|
|
tanuloErtekelesNyelvHelperCo.SzorgalomSzovegFormazottNyelv = tanuloErtekelesCo.SzorgalomSzovegFormazottRoman;
|
|
SetNyelvProperties(h, entity, tanuloErtekelesNyelvHelperCo);
|
|
}
|
|
if (DokumentumNyelvesitesHelper.IsNemzetiDokumentumNyelvActive(nemzetiDokumentumNyelvek, AnyanyelvEnum.szerb))
|
|
{
|
|
tanuloErtekelesNyelvHelperCo.NyelvEnum = AnyanyelvEnum.szerb;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesSzovegNyelv = tanuloErtekelesCo.ErtekelesSzovegSzerb;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesSzovegFormazottNyelv = tanuloErtekelesCo.ErtekelesSzovegFormazottSzerb;
|
|
tanuloErtekelesNyelvHelperCo.ErtekelesTemaNyelv = tanuloErtekelesCo.ErtekelesTemaSzerb;
|
|
tanuloErtekelesNyelvHelperCo.MagatartasSzovegNyelv = tanuloErtekelesCo.MagatartasSzovegSzerb;
|
|
tanuloErtekelesNyelvHelperCo.MagatartasSzovegFormazottNyelv = tanuloErtekelesCo.MagatartasSzovegFormazottSzerb;
|
|
tanuloErtekelesNyelvHelperCo.SzorgalomSzovegNyelv = tanuloErtekelesCo.ErtekelesSzovegSzerb;
|
|
tanuloErtekelesNyelvHelperCo.SzorgalomSzovegFormazottNyelv = tanuloErtekelesCo.SzorgalomSzovegFormazottSzerb;
|
|
SetNyelvProperties(h, entity, tanuloErtekelesNyelvHelperCo);
|
|
}
|
|
}
|
|
|
|
private int? GetRogziteskoriOsztalyId(IDalHandler h, TanuloErtekelesCo tanuloErtekelesCo, DateTime? datum, int? szervezetTipusId = null)
|
|
{
|
|
var osztalyCsoportFeladatKategoriaId = new OsztalyCsoportHelper(new DalHandlerConnectionType(ConnectionType, h)).GetOsztalyCsoportFeladatKategoria(tanuloErtekelesCo.OsztalyCsoportId.Value);
|
|
if (osztalyCsoportFeladatKategoriaId != (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas)
|
|
{
|
|
return new TanuloHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanuloOsztalyIdByFeladatKategoria(tanuloErtekelesCo.TanuloId, datum, (OktNevelesiKategoriaEnum)osztalyCsoportFeladatKategoriaId, szervezetTipusId);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
private void SetNyelvProperties(IDalHandler h, ITanuloErtekeles entity, TanuloErtekelesNyelvHelperCo tanuloErtekelesNyelvHelperCo)
|
|
{
|
|
ITanuloErtekelesNyelv tanuloErtekelesNyelv = entity.TanuloErtekelesNyelv.FirstOrDefault(x => !x.Torolt && x.NyelvId == (int)tanuloErtekelesNyelvHelperCo.NyelvEnum);
|
|
var isNew = tanuloErtekelesNyelv == null;
|
|
if (isNew)
|
|
{
|
|
tanuloErtekelesNyelv = h.TanuloErtekelesNyelvDal().Get();
|
|
tanuloErtekelesNyelv.NyelvId = (int)tanuloErtekelesNyelvHelperCo.NyelvEnum;
|
|
tanuloErtekelesNyelv.TanuloErtekelesId = entity.ID;
|
|
}
|
|
|
|
if (!tanuloErtekelesNyelvHelperCo.IsMagatartasSzorgalom)
|
|
{
|
|
tanuloErtekelesNyelv.SzorgalomSzoveg = null;
|
|
tanuloErtekelesNyelv.SzorgalomSzovegFormazott = null;
|
|
tanuloErtekelesNyelv.MagatartasSzoveg = null;
|
|
tanuloErtekelesNyelv.MagatartasSzovegFormazott = null;
|
|
|
|
if (!string.IsNullOrWhiteSpace(tanuloErtekelesNyelvHelperCo.ErtekelesSzoveg))
|
|
{
|
|
tanuloErtekelesNyelv.ErtekelesSzoveg = tanuloErtekelesNyelvHelperCo.ErtekelesSzovegNyelv;
|
|
tanuloErtekelesNyelv.ErtekelesSzovegFormazott = tanuloErtekelesNyelvHelperCo.ErtekelesSzovegFormazottNyelv;
|
|
}
|
|
else
|
|
{
|
|
tanuloErtekelesNyelv.ErtekelesSzoveg = null;
|
|
tanuloErtekelesNyelv.ErtekelesSzovegFormazott = null;
|
|
}
|
|
tanuloErtekelesNyelv.ErtekelesTema = !string.IsNullOrWhiteSpace(tanuloErtekelesNyelvHelperCo.ErtekelesTema) ? tanuloErtekelesNyelvHelperCo.ErtekelesTemaNyelv : null;
|
|
}
|
|
else
|
|
{
|
|
tanuloErtekelesNyelv.ErtekelesSzoveg = null;
|
|
tanuloErtekelesNyelv.ErtekelesSzovegFormazott = null;
|
|
tanuloErtekelesNyelv.ErtekelesTema = null;
|
|
|
|
if (!string.IsNullOrWhiteSpace(tanuloErtekelesNyelvHelperCo.MagatartasSzoveg))
|
|
{
|
|
tanuloErtekelesNyelv.MagatartasSzoveg = tanuloErtekelesNyelvHelperCo.MagatartasSzovegNyelv;
|
|
tanuloErtekelesNyelv.MagatartasSzovegFormazott = tanuloErtekelesNyelvHelperCo.MagatartasSzovegFormazottNyelv;
|
|
}
|
|
else
|
|
{
|
|
tanuloErtekelesNyelv.MagatartasSzoveg = null;
|
|
tanuloErtekelesNyelv.MagatartasSzovegFormazott = null;
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(tanuloErtekelesNyelvHelperCo.SzorgalomSzoveg))
|
|
{
|
|
tanuloErtekelesNyelv.SzorgalomSzoveg = tanuloErtekelesNyelvHelperCo.SzorgalomSzovegNyelv;
|
|
tanuloErtekelesNyelv.SzorgalomSzovegFormazott = tanuloErtekelesNyelvHelperCo.SzorgalomSzovegFormazottNyelv;
|
|
}
|
|
else
|
|
{
|
|
tanuloErtekelesNyelv.SzorgalomSzoveg = null;
|
|
tanuloErtekelesNyelv.SzorgalomSzovegFormazott = null;
|
|
}
|
|
}
|
|
|
|
if (isNew)
|
|
{
|
|
h.TanuloErtekelesDal().AddTanuloErtekelesNyelv(entity, tanuloErtekelesNyelv);
|
|
}
|
|
else
|
|
{
|
|
h.TanuloErtekelesNyelvDal().Update(tanuloErtekelesNyelv);
|
|
}
|
|
}
|
|
|
|
public ITanuloErtekeles SaveOrUpdateTanuloErtekeles(int felhasznaloId, TanuloErtekelesCo tanuloErtekelesCo, int? szervezetTipusId = null)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
return SaveOrUpdateTanuloErtekeles(h, felhasznaloId, tanuloErtekelesCo, szervezetTipusId);
|
|
});
|
|
}
|
|
|
|
public List<ComboBoxListItem> GetDolgozatTemakForComboBox(int? osztalyCsoportId, int? tantargyId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var comboBoxListItemList = new List<ComboBoxListItem>();
|
|
DataSet dataSet = h.TanuloErtekelesDal().GetDolgozatErtekelesTemak(IntezmenyId, TanevId, osztalyCsoportId, tantargyId);
|
|
|
|
foreach (var tema in dataSet.Tables[0].AsEnumerable().Select(r => r.Field<string>("ErtekelesTema")).OrderBy(r => r))
|
|
{
|
|
comboBoxListItemList.Add(
|
|
new ComboBoxListItem
|
|
{
|
|
Text = tema,
|
|
Value = tema
|
|
});
|
|
}
|
|
|
|
return comboBoxListItemList;
|
|
});
|
|
}
|
|
|
|
private bool GetIsJegyekAtlagaMegjelenik()
|
|
{
|
|
bool result = SystemSettingsManager.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Ertekelesnel_a_naplojegyek_atlaga_megjelenik, IntezmenyAzonosito, TanevId);
|
|
return result;
|
|
}
|
|
|
|
/// INFO @DevKornel: Mobil használja
|
|
private bool GetIsVegzosOsztalyTanuloja(int tanuloId, IDalHandler h)
|
|
{
|
|
var isVegzosOsztalyTanuloja = false;
|
|
|
|
int? osztalyId = new TanuloHelper(new DalHandlerConnectionType(ConnectionType, h)).GetTanuloAlapkepzesesOsztalyId(tanuloId);
|
|
if (osztalyId.IsEntityId())
|
|
{
|
|
isVegzosOsztalyTanuloja = new OsztalyCsoportHelper(new DalHandlerConnectionType(ConnectionType, h)).GetIsVegzosOsztalyCsoport(osztalyId.Value);
|
|
}
|
|
|
|
return isVegzosOsztalyTanuloja;
|
|
}
|
|
|
|
private bool IsINegyedevesJegyHidden()
|
|
{
|
|
DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.I_Negyedeves_jegyek_megjelenesenek_datuma, IntezmenyAzonosito, TanevId);
|
|
return megjelenitesDate > DateTime.UtcNow;
|
|
}
|
|
|
|
private bool IsIiNegyedevesJegyHidden()
|
|
{
|
|
DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.II_Negyedeves_jegyek_megjelenesenek_datuma, IntezmenyAzonosito, TanevId);
|
|
return megjelenitesDate > DateTime.UtcNow;
|
|
}
|
|
|
|
private bool IsFeleviJegyHidden()
|
|
{
|
|
DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Felevi_jegyek_megjelenesenek_datuma, IntezmenyAzonosito, TanevId);
|
|
return megjelenitesDate > DateTime.UtcNow;
|
|
}
|
|
|
|
private bool IsIiiNegyedevesJegyHidden()
|
|
{
|
|
DateTime? megjelenitesDate = SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.III_Negyedeves_jegyek_megjelenesenek_datuma, IntezmenyAzonosito, TanevId);
|
|
return megjelenitesDate > DateTime.UtcNow;
|
|
}
|
|
|
|
private bool IsIvNegyedevesJegyHidden(bool isVegzosOsztalyTanuloja)
|
|
{
|
|
DateTime? megjelenitesDate;
|
|
DateTime? ivNegyedevesJegyMegjelenitesDate = SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.IV_Negyedeves_jegyek_megjelenesenek_datuma, IntezmenyAzonosito, TanevId);
|
|
if (isVegzosOsztalyTanuloja)
|
|
{
|
|
//NOTE: Ha végzős, akkor a végzős évvégi jegy megjelenítés és a IV. negyedéves jegy megjelenítés dátum közül a korábbit vesszük figyelembe!
|
|
List<DateTime?> megjelenitesDateList = new List<DateTime?>
|
|
{
|
|
ivNegyedevesJegyMegjelenitesDate,
|
|
SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma_vegzos, IntezmenyAzonosito, TanevId)
|
|
};
|
|
megjelenitesDate = megjelenitesDateList.OfType<DateTime>().Min();
|
|
}
|
|
else
|
|
{
|
|
//NOTE: Ha nem végzős, akkor a IV. negyedéves jegy megjelenítés dátumát vesszük figyelembe!
|
|
megjelenitesDate = ivNegyedevesJegyMegjelenitesDate;
|
|
}
|
|
|
|
return megjelenitesDate > DateTime.UtcNow;
|
|
}
|
|
|
|
private bool IsEvvegiJegyHidden(bool isVegzosOsztalyTanuloja)
|
|
{
|
|
//NOTE: Ha végzős, akkor a végzős évvégi jegy megjelenítés dátumát vesszük figyelembe, különben az évvégi jegy megjelenítés dátumát!
|
|
DateTime? megjelenitesDate = isVegzosOsztalyTanuloja ? SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma_vegzos, IntezmenyAzonosito, TanevId) : SystemSettingsManager.GetSystemSettingValue<DateTime?>(RendszerBeallitasTipusEnum.Ev_vegi_jegyek_megjelenesenek_datuma, IntezmenyAzonosito, TanevId);
|
|
return megjelenitesDate > DateTime.UtcNow;
|
|
}
|
|
|
|
/// INFO @DevKornel: Mobil használja
|
|
public int GetKesleltetettMegjelenitesOraszam()
|
|
{
|
|
int result = SystemSettingsManager.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Ertekelesek_megjelenese_az_ellenorzo_modulban, IntezmenyAzonosito, TanevId);
|
|
return result;
|
|
}
|
|
|
|
/// INFO @DevKornel: Mobil használja
|
|
public void RemoveTanuloJogosultsagMiattiErtekelesek(List<int> tanuloIds, DataTable dataTable)
|
|
{
|
|
var isVegzosOsztalyTanulojaByTanuloId = new Dictionary<int, bool>();
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
foreach (var tanuloId in tanuloIds)
|
|
{
|
|
isVegzosOsztalyTanulojaByTanuloId.Add(tanuloId, GetIsVegzosOsztalyTanuloja(tanuloId, h));
|
|
}
|
|
});
|
|
|
|
int kesleltetettMegjelenitesOraszam = GetKesleltetettMegjelenitesOraszam();
|
|
for (int i = dataTable.Rows.Count - 1; i >= 0; --i)
|
|
{
|
|
var tanuloId = dataTable.Rows[i].Field<int>("TanuloId");
|
|
int tipusId = SDAConvert.ToInt32(dataTable.Rows[i]["TipusId"]);
|
|
DateTime created = SDAConvert.ToDateTime(dataTable.Rows[i]["Created"]).Value;
|
|
|
|
bool isErtesitesElkuldve = SDAConvert.ToBooleanFromTF(dataTable.Rows[i]["IsErtesitesElkuldve"]);
|
|
//NOTE: Ha nincs elküldve az értesítés, csak akkor kell vizsgálni a többi szűrő feltételt, különben vissza kell adnunk az értékelést mindenképpen.
|
|
if (!isErtesitesElkuldve)
|
|
{
|
|
//NOTE: Nem adjuk vissza a tanuló értékelést, ha...
|
|
// - az étrékelés típusa bármelyik egyszer adható értékelés és el kell rejtenünk.
|
|
// - a megjelenítési időpont(created + késleltés óraszám) későbbi, mint a DateTime.Now.
|
|
if (tipusId == (int)ErtekelesTipusEnum.I_ne_jegy_ertekeles && IsINegyedevesJegyHidden() ||
|
|
tipusId == (int)ErtekelesTipusEnum.II_ne_jegy_ertekeles && IsIiNegyedevesJegyHidden() ||
|
|
tipusId == (int)ErtekelesTipusEnum.felevi_jegy_ertekeles && IsFeleviJegyHidden() ||
|
|
tipusId == (int)ErtekelesTipusEnum.III_ne_jegy_ertekeles && IsIiiNegyedevesJegyHidden() ||
|
|
tipusId == (int)ErtekelesTipusEnum.IV_ne_jegy_ertekeles && IsIvNegyedevesJegyHidden(isVegzosOsztalyTanulojaByTanuloId[tanuloId]) ||
|
|
tipusId == (int)ErtekelesTipusEnum.evvegi_jegy_ertekeles && IsEvvegiJegyHidden(isVegzosOsztalyTanulojaByTanuloId[tanuloId]) ||
|
|
created.AddHours(kesleltetettMegjelenitesOraszam) > DateTime.Now)
|
|
{
|
|
dataTable.Rows.RemoveAt(i);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/// INFO @DevKornel: Mobil használja
|
|
public DataSet GetTanuloErtekelesListDataSet(TanuloErtekelesListCo tanuloErtekelesListCo, bool utolagosOsztalyszures = false)
|
|
{
|
|
if (tanuloErtekelesListCo.TantargyUids != null && tanuloErtekelesListCo.TantargyUids.Contains("-1"))
|
|
{
|
|
tanuloErtekelesListCo.TantargyUids.Remove("-1");
|
|
tanuloErtekelesListCo.TantargyUids.Add("Magatartas");
|
|
tanuloErtekelesListCo.TantargyUids.Add("Szorgalom");
|
|
}
|
|
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
List<int> szervezetIdList = null;
|
|
if (tanuloErtekelesListCo.SzervezetId.IsEntityId())
|
|
{
|
|
szervezetIdList = h.SzervezetDal(GridParameters).GetLathatoSzervezetek(IntezmenyId, TanevId, tanuloErtekelesListCo.SzervezetId.Value, (int)SzervezetAdatokHalmazaEnum.SzervezetEsAlSzervezetek);
|
|
}
|
|
|
|
DataSet result = h.TanuloErtekelesDal(GridParameters).GetTanuloErtekelesListDataSet(tanuloErtekelesListCo.ToPco(szervezetIdList), utolagosOsztalyszures);
|
|
return result;
|
|
});
|
|
}
|
|
|
|
/// INFO @DevKornel: Mobil használja
|
|
public DataSet GetTantargyiAtlagListDataSet(List<int> tantargyIds, List<int> tanuloIds, int? oktatasiNevelesiFeladatId = null)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
return h.TanuloErtekelesDal(GridParameters).GetTantargyiAtlagListDataSet(TanevId, tantargyIds, tanuloIds, oktatasiNevelesiFeladatId);
|
|
});
|
|
}
|
|
|
|
public DataSet GetErtekelesFoglalkozasData(bool isDualisErtekeles = false)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
DataSet result = h.Foglalkozas().GetFelhasznaloFoglalkozasokErtekelesekhez(TanevId, FelhasznaloId);
|
|
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 responseDs = new DataSet();
|
|
responseDs.Tables.Add(result.Tables[0].Clone());
|
|
|
|
|
|
if (isDualisErtekeles)
|
|
{
|
|
foreach (var dr in result.Tables[0].AsEnumerable().Where(x => x.Field<int?>("CsoportTipusId").HasValue && x.Field<int?>("CsoportTipusId").Value == (int)CsoportTipusEnum.dualis_kepzesi_csoport))
|
|
{
|
|
responseDs.Tables[0].ImportRow(dr);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach (DataRow dr in result.Tables[0].Rows)
|
|
{
|
|
var csoportTipusId = dr.Field<int?>("CsoportTipusId");
|
|
if (!isNemTanoraiCeluCsoportokErtekelesEnabled && csoportTipusId.HasValue && nemTanoraiCeluCsoportTipusok.Any(x => x.CsoportTipusId == csoportTipusId.Value))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
responseDs.Tables[0].ImportRow(dr);
|
|
}
|
|
}
|
|
|
|
return responseDs;
|
|
});
|
|
}
|
|
|
|
public DataSet GetErtekelesFotargyiFoglalkozasData()
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
DataSet result = h.Foglalkozas().GetErtekelesFotargyiFoglalkozasData(TanevId, FelhasznaloId);
|
|
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 responseDs = new DataSet();
|
|
responseDs.Tables.Add(result.Tables[0].Clone());
|
|
|
|
foreach (DataRow dr in result.Tables[0].Rows)
|
|
{
|
|
var csoportTipusId = dr.Field<int?>("CsoportTipusId");
|
|
if (!isNemTanoraiCeluCsoportokErtekelesEnabled && csoportTipusId.HasValue && nemTanoraiCeluCsoportTipusok.Any(x => x.CsoportTipusId == csoportTipusId.Value))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
responseDs.Tables[0].ImportRow(dr);
|
|
}
|
|
|
|
return responseDs;
|
|
});
|
|
}
|
|
|
|
public bool HasTantargyFotargyAltargy(int fotargyAltargyId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
bool result = h.Tantargy().HasTantargyFotargyAltargy(IntezmenyId, TanevId, fotargyAltargyId);
|
|
return result;
|
|
});
|
|
}
|
|
|
|
public string GetAtlag(int osztalyCsoportId, int tantargyId, AtlagMegjelenitesTipus atlagMegjelenitesTipus, AtlagbaBeleszamitoOsztalyTipus atlagbaBeleszamitoOsztalyTipus, DateTime? datum = null)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
string result = "-";
|
|
|
|
var tantargy = h.Tantargy().GetTantargy(tantargyId);
|
|
if (!tantargy.IsTanulmanyiAtlagbaNemSzamit)
|
|
{
|
|
DataSet dataSet = h.TanuloErtekelesDal().GetAtlag(osztalyCsoportId, tantargyId, TanevId, atlagMegjelenitesTipus, atlagbaBeleszamitoOsztalyTipus, datum);
|
|
DataTable dataTable = dataSet.Tables[0];
|
|
|
|
if (dataTable.Rows.Count > 0)
|
|
{
|
|
DataRow dataRow = dataTable.Rows[0];
|
|
result = SDAConvert.ToString(dataRow["Atlag"]);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
});
|
|
}
|
|
|
|
public void UpdateTantargyAtlag()
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
h.TanuloErtekelesDal().UpdateTantargyAtlag(IntezmenyId, TanevId, FelhasznaloId);
|
|
});
|
|
}
|
|
|
|
public void UpdateTantargyAtlagByTanuloTantargy(IDalHandler h, int tanuloId, int tantargyId, int oktatasNevelesiFeladatId)
|
|
{
|
|
TantargyiAtlagCache tantargyiAtlagCache = KretaServer.KretaServer.Instance.CacheManager.AquireCacheMobile<TantargyiAtlagCache>();
|
|
var cacheEnabledAndNotNull = DependencyResolver.Current.GetService<IFeatureContext>()?.IsEnabled(Constants.FeatureName.MobileEllenorzoApiCache) != null && tantargyiAtlagCache != null;
|
|
|
|
h.TanuloErtekelesDal().UpdateTantargyAtlagByTanuloTantargy(IntezmenyId, TanevId, FelhasznaloId, tanuloId, tantargyId, oktatasNevelesiFeladatId);
|
|
if (cacheEnabledAndNotNull)
|
|
{
|
|
tantargyiAtlagCache.RemoveTantargyiAtlag(tanuloId, IntezmenyAzonosito, tantargyId.ToString(), oktatasNevelesiFeladatId);
|
|
}
|
|
}
|
|
|
|
public void AtlagUjraSzamitasVisszamenolegesModositasUtan(TantargyFelosztasVisszamenolegesCO ttfCo)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
|
|
UpdateAtlagByOsztalyCsoportTantargy(h, ttfCo.EredetiOsztalyCsoportId, ttfCo.EredetiTantargyId);
|
|
UpdateAtlagByOsztalyCsoportTantargy(h, ttfCo.ModosultOsztalyCsoportId, ttfCo.ModosultTantargyId);
|
|
});
|
|
}
|
|
|
|
public void UpdateAtlagByOsztalyCsoportTantargy(IDalHandler h, int osztalyCsoportId, int? tantargyId = null)
|
|
{
|
|
//TODO: cache törlése lsd. UpdateTantargyAtlagByTanuloTantargy?
|
|
|
|
h.TanuloErtekelesDal().UpdateAtlagByOsztalyCsoportTantargy(IntezmenyId, TanevId, FelhasznaloId, osztalyCsoportId, tantargyId);
|
|
}
|
|
|
|
public bool CheckTanuloListEgyszerAdhatoTanuloErtekelesValidation(Dictionary<int, int?> tanuloErtekelesDictionary, int tipusId, int? tantargyId, DateTime? datum, int feladatKategoriaId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
bool result = h.TanuloErtekelesDal().CheckTanuloListEgyszerAdhatoTanuloErtekelesValidation(tanuloErtekelesDictionary, tipusId, tantargyId, datum, feladatKategoriaId);
|
|
return result;
|
|
});
|
|
}
|
|
|
|
public DataSet ValidateTanuloListTanuloMentesseg(List<int> tanuloIdList, int tantargyId, DateTime ertekelesDatum)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
DataSet result = h.TanuloErtekelesDal().ValidateTanuloListTanuloMentesseg(tanuloIdList, tantargyId, ertekelesDatum);
|
|
return result;
|
|
});
|
|
}
|
|
|
|
/// INFO @DevKornel: Mobil használja
|
|
public void RemoveMasEvfolyamTanuloErtekelesek(DataTable dataTable, List<(int tanuloId, int feladatKategoriaId, int? evfolyamTipusId)> tanuloIdAndFeladatKategoriaIdAndEvfolyamTipusIdList)
|
|
{
|
|
for (int i = dataTable.Rows.Count - 1; i >= 0; --i)
|
|
{
|
|
(int tanuloId, int feladatKategoriaId, int? evfolyamTipusId) tanuloIdAndFeladatKategoriaAndEvfolyamTipusIdItem = (SDAConvert.ToInt32(dataTable.Rows[i]["TanuloId"]), SDAConvert.ToInt32(dataTable.Rows[i]["FeladatKategoriaId"]), SDAConvert.ToNullableInt32(dataTable.Rows[i]["RogziteskoriTanuloOsztalyEvfolyamTipusId"]));
|
|
|
|
if (!tanuloIdAndFeladatKategoriaIdAndEvfolyamTipusIdList.Contains(tanuloIdAndFeladatKategoriaAndEvfolyamTipusIdItem))
|
|
{
|
|
dataTable.Rows.RemoveAt(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
private Dictionary<int, ErtekelesModCo> GetErtekelesModDictionary()
|
|
{
|
|
List<ErtekelesModDictionaryItem> ertekelesModDictionaryItems = EnumExtensions.GetErtekelesModDictionaryItems(TanevId);
|
|
|
|
var ertekelesDict = ertekelesModDictionaryItems.Select(x => new ErtekelesModCo
|
|
{
|
|
Id = x.Id,
|
|
Color = x.Color,
|
|
IsBold = x.IsBold
|
|
}).ToDictionary(e => e.Id);
|
|
return ertekelesDict;
|
|
}
|
|
|
|
public void SaveTanuloErtekelesListMobil(int felhasznaloId, Classes.MobileApi.Naplo.V3.Co.Ertekeles.OsztalyCsoportErtekelesRequestCo osztalyCsoportErtekelesRequestCo)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var tanuloErtekelesCoList = TanuloErtekelesLogicMobil.GetTanuloErtekelesCoList(IntezmenyId, felhasznaloId, osztalyCsoportErtekelesRequestCo);
|
|
tanuloErtekelesCoList = new TanuloErtekelesValidacioMobil(new DalHandlerConnectionType(ConnectionType, h)).Validate(h, tanuloErtekelesCoList, out List<ValidationExceptionItem> errors);
|
|
SaveTanuloErtekelesList(h, felhasznaloId, tanuloErtekelesCoList);
|
|
|
|
if (errors.Any())
|
|
{
|
|
var validationException = TanuloErtekelesLogicMobil.GetValidationException(errors);
|
|
throw validationException;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|