init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,136 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Felmentes;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
using Kreta.Core.Validation.Exceptions.Enum;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.DataAccessManual.ParameterClasses;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo
|
||||
{
|
||||
public static class TanitasiOraSubqueries
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the filters to be executory from the template. The order of filters does not matter.
|
||||
/// </summary>
|
||||
public static List<JavasoltJelenletGetResponseCo> ListJavasoltJelenlet(int teacherId, int intezmenyId, string intezmenyAzonosito, int tanevId, IDalHandler h, JavasoltJelenletGetRequestCo request, Enums.OktNevelesiKategoriaEnum? oktatasNevelesKategoriaEnum)
|
||||
{
|
||||
var response = new List<JavasoltJelenletGetResponseCo>();
|
||||
var tanarHelyettesitesLogic = new HelyettesitesLogic.Tanar(teacherId, tanevId, intezmenyId, intezmenyAzonosito, oktatasNevelesKategoriaEnum);
|
||||
|
||||
foreach (var tanitasiOraKey in request.Key)
|
||||
{
|
||||
var tanitasiOraEntity = h.TanitasiOra().Get(tanitasiOraKey.TanitasiOraId);
|
||||
|
||||
if (tanitasiOraEntity.TanarId != teacherId && !tanarHelyettesitesLogic.IsHelyettesito(tanitasiOraEntity.OsztalyCsoportId, tanitasiOraEntity.TantargyId))
|
||||
{
|
||||
throw new ValidationException(ValidationErrorType.Undefined, NaploApiResource.NincsJogosultsagaCsakASajatVagyHelyettesitesiOraKerdezhetoLe);
|
||||
}
|
||||
|
||||
var osztalyTanuloi = OraSubqueries.GetOsztalyTanuloi(teacherId, new OsztalyTanuloiRequestCo() { OsztalyCsoportId = tanitasiOraEntity.OsztalyCsoportId, OraShortDatuma = tanitasiOraEntity.Datum }, intezmenyAzonosito, intezmenyId, tanevId);
|
||||
var igazolasLista = h.IgazolasDal().GetIgazolasokListajaGrid(
|
||||
new IgazolasokListajaSearchPCO
|
||||
{
|
||||
OsztalyCsoportSearch = tanitasiOraEntity.OsztalyCsoportId,
|
||||
IgazolasDatuma = tanitasiOraEntity.OraKezdete
|
||||
},
|
||||
oktatasNevelesKategoriaEnum).Tables[0];
|
||||
|
||||
response.Add(new JavasoltJelenletGetResponseCo
|
||||
{
|
||||
TanitasiOraId = tanitasiOraKey.TanitasiOraId,
|
||||
TanuloLista = GetTanuloListaWithSzuroLista(osztalyTanuloi.TanuloLista, igazolasLista, tanitasiOraEntity.TantargyId, tanitasiOraEntity.OraKezdete, tanitasiOraEntity.OraVege, tanitasiOraKey.TanitasiOraId, tanitasiOraEntity.OsztalyCsoportId)
|
||||
});
|
||||
}
|
||||
|
||||
return response;
|
||||
|
||||
bool HasTanuloIgazolas(int tanuloId, DataTable igazolasLista) => igazolasLista.AsEnumerable().Any(x => x.Field<int>("TanuloId") == tanuloId);
|
||||
|
||||
List<JavasoltJelenletTanuloGetResponseCo> GetTanuloListaWithSzuroLista(List<TanuloResponseCo> tanuloLista, DataTable igazolasLista, int tantargyId, DateTime oraKezdetDatuma, DateTime oraVegDatuma, int tanitasiOraId, int osztalyCsoportId)
|
||||
{
|
||||
var javasoltJelenletTanuloLista = new List<JavasoltJelenletTanuloGetResponseCo>();
|
||||
|
||||
if (!tanuloLista.Any())
|
||||
{
|
||||
return javasoltJelenletTanuloLista;
|
||||
}
|
||||
|
||||
var parhuzamosOranNaplozottTanuloIdList = TanitasiOraLogic.ListParhuzamosOranNaplozottMulasztasTanuloId(oraKezdetDatuma, oraVegDatuma, tanitasiOraId, new MobileConnectionType(teacherId, intezmenyId, intezmenyAzonosito, tanevId), h);
|
||||
var elozoOranHianyzottTanuloIdList = OraLogic.ListElozoOranHianyzottTanuloId(oraKezdetDatuma, osztalyCsoportId, teacherId, intezmenyId, intezmenyAzonosito, tanevId);
|
||||
var isMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled = SystemSettingsLogic.IsMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled(intezmenyAzonosito, tanevId, teacherId, intezmenyId);
|
||||
var isMagantanuloOralatogatasAloliMentessegEnabled = SystemSettingsLogic.IsMagantanuloOralatogatasAloliMentessegEnabled(tantargyId, intezmenyAzonosito, tanevId, teacherId, intezmenyId);
|
||||
var felmentesek = FelmentesSubqueries.ListFelmentes(new FelmentesGetRequestCo
|
||||
{
|
||||
TanuloIds = tanuloLista.Select(t => t.Id),
|
||||
FelhasznaloId = teacherId,
|
||||
IntezmenyId = intezmenyId,
|
||||
IntezmenyAzonosito = intezmenyAzonosito,
|
||||
TanevId = tanevId,
|
||||
TantargyId = tantargyId
|
||||
});
|
||||
|
||||
foreach (var tanulo in tanuloLista)
|
||||
{
|
||||
var javasoltJelenletTemplateTipusSzuroLista = new List<IJavasoltJelenletSzuroGetResponseCo>
|
||||
{
|
||||
new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Default)
|
||||
};
|
||||
|
||||
if (HasTanuloIgazolas(tanulo.Id, igazolasLista))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Igazolas));
|
||||
}
|
||||
|
||||
if (elozoOranHianyzottTanuloIdList?.Contains(tanulo.Id) ?? false)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.ElozoOranHianyzott));
|
||||
}
|
||||
|
||||
if (isMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled && parhuzamosOranNaplozottTanuloIdList.Contains(tanulo.Id))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.ParhuzamosOranNaplozott));
|
||||
}
|
||||
|
||||
if (felmentesek.ContainsKey(tanulo.Id) && TanuloLogic.CalculateIsNowFelmentett(felmentesek[tanulo.Id], oraKezdetDatuma, intezmenyId, intezmenyAzonosito, tanevId, FelmentesType.OralatogatasAlol))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Felmentes));
|
||||
}
|
||||
|
||||
if (tanulo.TanugyiAdatok.IsSzakmaiGyakorlatonLevo)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.SzakmaiGyakorlat));
|
||||
}
|
||||
|
||||
if (tanulo.TanugyiAdatok.IsJogviszonySzunetelteto)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.JogviszonySzuneteltetes));
|
||||
}
|
||||
|
||||
if (TanuloLogic.CalculateIsNowMagantanulo(tanulo.IsMaganTanulo, tanulo.MaganTanulosagKezdetDatuma, tanulo.MaganTanulosagVegeDatuma, oraKezdetDatuma) && isMagantanuloOralatogatasAloliMentessegEnabled)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.MagantanuloOralatogatasAloliMentesseg));
|
||||
}
|
||||
|
||||
javasoltJelenletTanuloLista.Add(new JavasoltJelenletTanuloGetResponseCo
|
||||
{
|
||||
TanuloId = tanulo.Id,
|
||||
JavasoltJelenletTemplateTipusSzuroLista = javasoltJelenletTemplateTipusSzuroLista
|
||||
});
|
||||
}
|
||||
|
||||
return javasoltJelenletTanuloLista;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue