1346 lines
70 KiB
C#
1346 lines
70 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Text.RegularExpressions;
|
|
using System.Web.Http;
|
|
using System.Web.Http.ModelBinding;
|
|
using Kendo.Mvc.Extensions;
|
|
using Kendo.Mvc.UI;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Exceptions;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Logic;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Client.Leltar;
|
|
using Kreta.Core;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Core.FeatureToggle;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework;
|
|
using Kreta.Framework.Entities;
|
|
using Kreta.Framework.Util;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.Alkalmazott.Helpers;
|
|
using Kreta.Web.Areas.Alkalmazott.Models;
|
|
using Kreta.Web.Areas.Tanulo.Helper;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Helpers.Grid;
|
|
using Kreta.Web.Models;
|
|
using Kreta.Web.Security;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Kreta.Web.Areas.Alkalmazott.ApiControllers
|
|
{
|
|
|
|
public class BaseAlkalmazottApiController : ApiController
|
|
{
|
|
protected readonly ILeltarClient _leltarClient;
|
|
|
|
public BaseAlkalmazottApiController(ILeltarClient leltarClient)
|
|
{
|
|
_leltarClient = leltarClient ?? throw new ArgumentNullException(nameof(leltarClient));
|
|
}
|
|
|
|
public AlkalmazottInfoModel.AlapadatModel GetAlkalmazottDataForInfo(int id)
|
|
{
|
|
var tanarAdatCO = GetAlkalmazottData(id);
|
|
return Helpers.AlkalmazottViewHelper.ConvertCOToAlapadatModel(tanarAdatCO);
|
|
}
|
|
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)]
|
|
public AlkalmazottInfoModel.ElsodlegesMunkaugyiAdatok GetAlkalmazottElsodlegesMunkaugyiAdatokDataForInfo(int id, bool isKlebelsberg)
|
|
{
|
|
var tanarAdatCO = GetAlkalmazottData(id);
|
|
var result = Helpers.AlkalmazottViewHelper.ConvertCOToElsodlegesMunkaugyiAdatokModel(tanarAdatCO);
|
|
result.IsKlebelsberg = isKlebelsberg;
|
|
|
|
var connectionType = ConnectionTypeExtensions.GetActiveSessionConnectionType();
|
|
|
|
var intezmenyAdatok = new IntezmenyHelper(connectionType).GetIntezmenyiAdatok();
|
|
|
|
result.IsApaczaiMentorVisible = intezmenyAdatok.IsSzakkepzo && intezmenyAdatok.IsSzakkepzoJuttatas;
|
|
|
|
var helper = new FeladatEllatasiHelyHelper(connectionType);
|
|
if (result.FeladatellatasiHely > 0)
|
|
{
|
|
result.FeladatellatasiHely_NAME = helper.GetFeladatEllatasiHelyAdatok(result.FeladatellatasiHely.Value).MukodesiHelyNev;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public AlkalmazottModel GetAlkalmazottDataForModify(int id)
|
|
{
|
|
var tanarAdatCO = GetAlkalmazottData(id);
|
|
return Helpers.AlkalmazottViewHelper.ConvertCOToModel(tanarAdatCO);
|
|
}
|
|
|
|
private TanarAdatCO GetAlkalmazottData(int id)
|
|
{
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
return helper.GetTanarAdatok(id);
|
|
}
|
|
|
|
public DataSourceResult GetAlkalmazottGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var (gridParameter, modelList, _, _, _) = GetGridData(data, request);
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
|
{
|
|
try
|
|
{
|
|
var (gridParameter, modelList, exportAttributeName, sheetName, fileName) = GetGridData(data, request);
|
|
|
|
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottGridModel>(exportAttributeName);
|
|
|
|
var memoryStream = SimpleExportLogic.GetExport(sheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
|
|
|
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
|
}
|
|
}
|
|
|
|
private (GridParameters gridParameter, List<AlkalmazottGridModel> modelList, string exportAttributeName, string sheetName, string fileName) GetGridData(string data, DataSourceRequest request)
|
|
{
|
|
var connection = ConnectionTypeExtensions.GetSessionConnectionType();
|
|
// NOTE: Az oktatási azonosító maszkolása miatt kell kivenni
|
|
data = data.Replace("_", string.Empty);
|
|
|
|
var model = JsonConvert.DeserializeObject<AlkalmazottSearchModel>(data);
|
|
|
|
var gridParameter = Converter.GridParameter(request);
|
|
|
|
int? felhasznaloSzervezetId = null;
|
|
if (ClaimData.FelhasznaloSzerepkor != SzerepkorTipusEnum.Adminisztrator)
|
|
{
|
|
felhasznaloSzervezetId = new SzervezetHelper(connection).GetAlkalmazottSzervezetId(ClaimData.FelhasznaloId);
|
|
model.SzervezetId = felhasznaloSzervezetId;
|
|
}
|
|
var coList = new AlkalmazottHelper(connection).SearchAlkalmazott(model.ConvertModelToCo(), felhasznaloSzervezetId);
|
|
var modelList = coList.Select(x => new AlkalmazottGridModel(x)).ToList();
|
|
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
|
|
|
var exportAttributeName = model.IsFromSzervezet ? AlkalmazottGridModel.DualisAlkalmazottExportAttributeId : AlkalmazottGridModel.AlkalmazottExportAttributeId;
|
|
var sheetName = model.IsFromSzervezet ? DualisResource.TabOktatok : AlkalmazottResource.Alkalmazottak;
|
|
var fileName = model.IsFromSzervezet ? string.Format(AlkalmazottResource.DualisAlkalmazottTablazatExportFileName, DateTime.Now.ToString("yyyyMMddHHmm")) : AlkalmazottResource.AlkalmazottTablazatExportFileName;
|
|
|
|
return (gridParameter, modelList, exportAttributeName, sheetName, fileName);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteAlkalmazott([FromBody] int id)
|
|
{
|
|
if (id == ClaimData.FelhasznaloId)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, AlkalmazottResource.AlkalmazottNemTorolhetiOnmagat);
|
|
}
|
|
|
|
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
try
|
|
{
|
|
helper.DeleteAlkalmazott(id);
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (CannotBeDeletedException e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
var alkalmazottNev = helper.GetAlkalmazottNevById(id);
|
|
var errorMessage = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, alkalmazottNev, ex.ConnectionErrorMessage);
|
|
|
|
throw new StatusError(HttpStatusCode.BadRequest, errorMessage);
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public IHttpActionResult DeleteSelectedAlkalmazott(List<int> alkalmazottIdList)
|
|
{
|
|
var errorMsg = string.Empty;
|
|
var counter = 0;
|
|
|
|
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
foreach (var alkalmazottId in alkalmazottIdList)
|
|
{
|
|
try
|
|
{
|
|
helper.DeleteAlkalmazott(alkalmazottId);
|
|
counter++;
|
|
}
|
|
catch (CannotBeDeletedException ex)
|
|
{
|
|
errorMsg += $"{ex.Message}{Environment.NewLine}";
|
|
continue;
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
var alkalmazottNev = helper.GetAlkalmazottNevById(alkalmazottId);
|
|
var errorMessage = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, alkalmazottNev, ex.ConnectionErrorMessage);
|
|
|
|
errorMsg += $"{errorMessage}{Environment.NewLine}{Environment.NewLine}";
|
|
continue;
|
|
}
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(errorMsg))
|
|
{
|
|
return Json(new { Message = string.Format(ErrorResource.NSorTorlesSikeres, counter) });
|
|
}
|
|
|
|
if (counter > 0)
|
|
{
|
|
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
|
|
}
|
|
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveAlkalmazott(AlkalmazottModel model)
|
|
{
|
|
try
|
|
{
|
|
AlkalmazottCustomValidation(ModelState, model);
|
|
if (ModelState.IsValid)
|
|
{
|
|
var thelper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var featureContext = (IFeatureContext)Request.GetDependencyScope().GetService(typeof(IFeatureContext));
|
|
var isKlebelsbergKozpontOrNSZFH =
|
|
featureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokKlebelsberg)
|
|
|| featureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokNSZFH);
|
|
|
|
var co = Helpers.AlkalmazottViewHelper.ConvertModelToCO(model);
|
|
|
|
var kellFollowUp = ClaimData.KovTanevID.HasValue
|
|
&& !ClaimData.IsKovTanev
|
|
&& model.MunkaugyAdatModel.AlkalmazasVege.HasValue
|
|
&& model.MunkaugyAdatModel.AlkalmazasVege.Value > new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo().UtolsoNap;
|
|
|
|
bool isLeltarSyncSuccess;
|
|
if (model.AlkalmazottId.HasValue)
|
|
{
|
|
isLeltarSyncSuccess = thelper.AddOrUpdateTeacher(_leltarClient, co, update: true, isSzirIntezmeny: ClaimData.IsSzirIntezmeny, ClaimData.IsActivTanev, isKlebelsbergKozpontOrNSZFH, alkalmazottId: model.AlkalmazottId.Value, kellFollowUp: kellFollowUp);
|
|
}
|
|
else
|
|
{
|
|
isLeltarSyncSuccess = thelper.AddOrUpdateTeacher(_leltarClient, co, update: false, isSzirIntezmeny: ClaimData.IsSzirIntezmeny, ClaimData.IsActivTanev, isKlebelsbergKozpontOrNSZFH, kellFollowUp: kellFollowUp);
|
|
}
|
|
|
|
return Request.CreateResponse(HttpStatusCode.OK, isLeltarSyncSuccess);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
catch (Check4TValidacioExistsException)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznaloiAdatokkalMarLetezikFelhasznalo);
|
|
}
|
|
catch (BlException e)
|
|
{
|
|
var error = new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
public static void AlkalmazottCustomValidation(ModelStateDictionary modelState, AlkalmazottModel model)
|
|
{
|
|
if (!model.AlkalmazottId.IsEntityId())
|
|
{
|
|
if (string.IsNullOrWhiteSpace(model.CimElerhetosegModel.Iranyitoszam_Str))
|
|
{
|
|
if (model.CimElerhetosegModel.Orszag == (int)OrszagTipusEnum.Magyarorszag)
|
|
{
|
|
modelState.AddModelError("CimElerhetosegModel.Iranyitoszam", AlkalmazottResource.IranyitoszamKitolteseKotelezo);
|
|
}
|
|
else
|
|
{
|
|
modelState.AddModelError("CimElerhetosegModel.Iranyitoszam_Str", AlkalmazottResource.IranyitoszamKitolteseKotelezo);
|
|
}
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(model.CimElerhetosegModel.HelysegNev_Str))
|
|
{
|
|
if (model.CimElerhetosegModel.Orszag == (int)OrszagTipusEnum.Magyarorszag)
|
|
{
|
|
modelState.AddModelError("CimElerhetosegModel.HelysegNev", AlkalmazottResource.HelysegKitolteseKotelezo);
|
|
}
|
|
else
|
|
{
|
|
modelState.AddModelError("CimElerhetosegModel.HelysegNev_Str", AlkalmazottResource.IranyitoszamKitolteseKotelezo);
|
|
}
|
|
}
|
|
|
|
if (model.CimElerhetosegModel.KozteruletNev == null)
|
|
{
|
|
modelState.AddModelError("CimElerhetosegModel.KozteruletNev", AlkalmazottResource.KozteruletNevenekKitolteseKotelezo);
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(model.CimElerhetosegModel.KozteruletTipus_Str))
|
|
{
|
|
if (model.CimElerhetosegModel.Orszag != (int)OrszagTipusEnum.Magyarorszag)
|
|
{
|
|
modelState.AddModelError("CimElerhetosegModel.KozteruletTipus_Str", AlkalmazottResource.IranyitoszamKitolteseKotelezo);
|
|
}
|
|
}
|
|
|
|
if (model.CimElerhetosegModel.Hazszam == null)
|
|
{
|
|
modelState.AddModelError("CimElerhetosegModel.Hazszam", AlkalmazottResource.HazszamKitolteseKotelezo);
|
|
}
|
|
}
|
|
|
|
if ((model.AlapAdatModel.MunkavallaloCsaladiNev.Length + model.AlapAdatModel.MunkavallaloUtonev.Length) > Core.Constants.General.CsaladiEsUtonevEgyuttMaxLength)
|
|
{
|
|
modelState.AddModelError("AlapAdatModel.MunkavallaloCsaladiNev", AlkalmazottResource.ACsaladiEsUtonevEgyuttNemLehetHosszabb61Karakternel);
|
|
}
|
|
|
|
if ((model.AlapAdatModel.SzuletesiCsaladiNev.Length + model.AlapAdatModel.SzuletesiUtonev.Length) > Core.Constants.General.SzuletesiCsaladiEsUtonevEgyuttMaxLength)
|
|
{
|
|
modelState.AddModelError("AlapAdatModel.SzuletesiCsaladiNev", AlkalmazottResource.ASzuletesiCsaladiEsUtonevEgyuttNemLehetHosszabb64Karakternel);
|
|
}
|
|
|
|
if ((model.AlapAdatModel.AnyjaCsaladiNeve.Length + model.AlapAdatModel.AnyjaUtoneve.Length) > Core.Constants.General.AnyaCsaladiEsUtonevEgyuttMaxLength)
|
|
{
|
|
modelState.AddModelError("AlapAdatModel.AnyjaCsaladiNeve", AlkalmazottResource.AzAnyaCsaladiEsUtoneveEgyuttNemLehetHosszabb64Karakternel);
|
|
}
|
|
|
|
if (model.AlapAdatModel.SzuletesiIdo.HasValue && model.AlapAdatModel.SzuletesiIdo.Value > DateTime.Now.AddYears(-14))
|
|
{
|
|
modelState.AddModelError("AlapAdatModel.SzuletesiIdo", StringResourcesUtil.GetString(4299)); //A születési dátum minimum 14 évvel ez előttinek kell lennie!
|
|
}
|
|
|
|
if (model.AlapAdatModel.SzuletesiIdo.HasValue && model.AlapAdatModel.SzuletesiIdo.Value < DateTime.Now.AddYears(-100))
|
|
{
|
|
modelState.AddModelError("AlapAdatModel.SzuletesiIdo", StringResourcesUtil.GetString(4300)); //A születési dátum nem lehet a jelenlegi dátum előtt 100 évvel!
|
|
}
|
|
|
|
if (model.MunkaugyAdatModel.AlkalmazasKezdete.HasValue && model.MunkaugyAdatModel.AlkalmazasKezdete.Value < DateTime.Now.AddYears(-100))
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.AlkalmazasKezdete", AlkalmazottResource.AlkalmazasKezdeteNemLehetAJelenlegiDatumElott100evvel);
|
|
}
|
|
|
|
if (model.MunkaugyAdatModel.AlkalmazasVege.HasValue && model.MunkaugyAdatModel.AlkalmazasKezdete.HasValue &&
|
|
model.MunkaugyAdatModel.AlkalmazasVege.Value < model.MunkaugyAdatModel.AlkalmazasKezdete.Value)
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.AlkalmazasVege", AlkalmazottResource.AlkalmazasVegeNemLehetKorabbanMintAKezdete);
|
|
}
|
|
|
|
if (model.MunkaugyAdatModel.AlkalmazasKezdete.HasValue &&
|
|
model.AlapAdatModel.SzuletesiIdo.HasValue &&
|
|
model.MunkaugyAdatModel.AlkalmazasKezdete.Value < model.AlapAdatModel.SzuletesiIdo.Value)
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.AlkalmazasKezdete", StringResourcesUtil.GetString(4302)); //Az alkalmazás kezdete nem lehet korábban mint a születési dátum!
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(model.AlapAdatModel.OktatasiAzonosito) || !string.IsNullOrWhiteSpace(model.JogosultsagModel.BelepesiNev))
|
|
{
|
|
var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var tanevMegnevezes = GetTanevMegnevezesForBelepesCheck();
|
|
var anotherYearId = Kreta.Web.Classes.Utils.GetAnotherYearId();
|
|
var tanevIds = new List<int>
|
|
{
|
|
ClaimData.SelectedTanevID.Value
|
|
};
|
|
if (anotherYearId.HasValue)
|
|
{
|
|
tanevIds.Add(anotherYearId.Value);
|
|
}
|
|
|
|
var list = felhasznaloHelper.Check4TFelhOktAzonValidation(tanevIds, (int)Validation4TEnum.Alkalmazott,
|
|
"F", model.AlapAdatModel.SzuletesiNevElotag, model.AlapAdatModel.SzuletesiCsaladiNev, model.AlapAdatModel.SzuletesiUtonev,
|
|
"F", model.AlapAdatModel.AnyjaNeveElotag, model.AlapAdatModel.AnyjaCsaladiNeve, model.AlapAdatModel.AnyjaUtoneve,
|
|
model.AlapAdatModel.SzuletesiHely, model.AlapAdatModel.SzuletesiIdo, model.AlapAdatModel.OktatasiAzonosito, model.JogosultsagModel.BelepesiNev);
|
|
var selectedTanevUtkozes = list.Where(x => (!model.AlkalmazottId.HasValue || (x.ID != model.AlkalmazottId && x.ElozoTanevRekordId != model.AlkalmazottId))
|
|
&& x.TanevId == ClaimData.SelectedTanevID.Value).ToList();
|
|
var anotherTanevUtkozes = list.Where(x => (!model.AlkalmazottId.HasValue || (x.ID != model.AlkalmazottId && x.ElozoTanevRekordId != model.AlkalmazottId))
|
|
&& anotherYearId.HasValue && x.TanevId == anotherYearId.Value).ToList();
|
|
|
|
var followUpolnivalo = list.Find(x => (!model.AlkalmazottId.HasValue || x.ID != model.AlkalmazottId) && x.TanevId != ClaimData.SelectedTanevID.Value
|
|
&& x.ValidationType == (int)Validation4TEnum.Alkalmazott && SDAConvert.ToString(x.OktatasiAzonosito) == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito)
|
|
&& ((x.SzuletesiNevSorrend == "F" && model.AlapAdatModel.SzuletesiCsaladiNev == x.SzuletesiCsaladiNev && model.AlapAdatModel.SzuletesiUtonev == x.SzuletesiUtonev)
|
|
|| (model.AlapAdatModel.SzuletesiCsaladiNev == x.SzuletesiUtonev && model.AlapAdatModel.SzuletesiUtonev == x.SzuletesiCsaladiNev))
|
|
&& SDAConvert.ToString(model.AlapAdatModel.SzuletesiNevElotag) == x.SzuletesiNevElotag
|
|
&& ((x.AnyjaNevSorrend == "F" && model.AlapAdatModel.AnyjaCsaladiNeve == x.AnyjaCsaladiNev && model.AlapAdatModel.AnyjaUtoneve == x.AnyjaUtonev)
|
|
|| (model.AlapAdatModel.AnyjaCsaladiNeve == x.AnyjaUtonev && model.AlapAdatModel.AnyjaUtoneve == x.AnyjaCsaladiNev))
|
|
&& SDAConvert.ToString(model.AlapAdatModel.AnyjaNeveElotag) == x.AnyjaElotag
|
|
&& x.OktatasiAzonosito == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito)
|
|
&& x.SzuletesiHely == SDAConvert.ToString(model.AlapAdatModel.SzuletesiHely) && x.SzuletesiIdo == model.AlapAdatModel.SzuletesiIdo);
|
|
if (followUpolnivalo != null)
|
|
{
|
|
model.FollowUpolniId = followUpolnivalo.ID;
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(model.AlapAdatModel.OktatasiAzonosito) && selectedTanevUtkozes.Any(x => x.OktatasiAzonosito == model.AlapAdatModel.OktatasiAzonosito && x.ValidationType == (int)Validation4TEnum.Alkalmazott))
|
|
{
|
|
modelState.AddModelError("AlapAdatModel.OktatasiAzonosito", string.Format(ErrorResource.OktatasiAzonositoFoglaltAltal, string.Join(", ", selectedTanevUtkozes
|
|
.Where(x => x.OktatasiAzonosito == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito) && x.ValidationType == (int)Validation4TEnum.Alkalmazott)
|
|
.Select(x => x.NyomtatasiNev)), string.Empty));
|
|
}
|
|
else if (!string.IsNullOrWhiteSpace(model.AlapAdatModel.OktatasiAzonosito) && followUpolnivalo == null &&
|
|
anotherTanevUtkozes.Any(x => x.OktatasiAzonosito == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito) && x.ValidationType == (int)Validation4TEnum.Alkalmazott))
|
|
{
|
|
modelState.AddModelError("AlapAdatModel.OktatasiAzonosito", string.Format(ErrorResource.OktatasiAzonositoFoglaltAltal, string.Join(", ", anotherTanevUtkozes
|
|
.Where(x => x.OktatasiAzonosito == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito) && !x.GondviseloId.HasValue && x.ValidationType == (int)Validation4TEnum.Alkalmazott)
|
|
.Select(x => x.NyomtatasiNev)), tanevMegnevezes));
|
|
}
|
|
|
|
var selectedTanevUtkozesForBejelentkezesiNev = selectedTanevUtkozes.Where(x => x.BejelentkezesiNev?.ToComparableString() == model.JogosultsagModel.BelepesiNev?.ToComparableString());
|
|
var anotherTanevUtkozesForBejelentkezesiNev = anotherYearId.HasValue && followUpolnivalo == null ? anotherTanevUtkozes.Where(x => x.BejelentkezesiNev?.ToComparableString() == model.JogosultsagModel.BelepesiNev?.ToComparableString()) : new List<Felh4TOktAzonValidationCo>();
|
|
|
|
TanuloLogic.FelhasznalonevValidacio(modelState, "JogosultsagModel.BelepesiNev", selectedTanevUtkozesForBejelentkezesiNev, anotherTanevUtkozesForBejelentkezesiNev, tanevMegnevezes);
|
|
|
|
if (!model.MunkaugyAdatModel.BetoltetlenAllashely && model.AlapAdatModel.SzuletesiIdo.HasValue)
|
|
{
|
|
if (list.Any(x => (!model.AlkalmazottId.HasValue || x.ID != model.AlkalmazottId) && x.TanevId == ClaimData.SelectedTanevID.Value
|
|
&& x.ValidationType == (int)Validation4TEnum.Alkalmazott
|
|
&& ((x.SzuletesiNevSorrend == "F" && model.AlapAdatModel.SzuletesiCsaladiNev == x.SzuletesiCsaladiNev && model.AlapAdatModel.SzuletesiUtonev == x.SzuletesiUtonev)
|
|
|| (model.AlapAdatModel.SzuletesiCsaladiNev == x.SzuletesiUtonev && model.AlapAdatModel.SzuletesiUtonev == x.SzuletesiCsaladiNev))
|
|
&& SDAConvert.ToString(model.AlapAdatModel.SzuletesiNevElotag) == x.SzuletesiNevElotag
|
|
&& ((x.AnyjaNevSorrend == "F" && model.AlapAdatModel.AnyjaCsaladiNeve == x.AnyjaCsaladiNev && model.AlapAdatModel.AnyjaUtoneve == x.AnyjaUtonev)
|
|
|| (model.AlapAdatModel.AnyjaCsaladiNeve == x.AnyjaUtonev && model.AlapAdatModel.AnyjaUtoneve == x.AnyjaCsaladiNev))
|
|
&& SDAConvert.ToString(model.AlapAdatModel.AnyjaNeveElotag) == x.AnyjaElotag
|
|
&& SDAConvert.ToString(model.JogosultsagModel.BelepesiNev) == x.BejelentkezesiNev
|
|
&& x.OktatasiAzonosito == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito)
|
|
&& x.SzuletesiHely == SDAConvert.ToString(model.AlapAdatModel.SzuletesiHely) && x.SzuletesiIdo == model.AlapAdatModel.SzuletesiIdo))
|
|
{
|
|
throw new Check4TValidacioExistsException(string.Empty);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (model.AlapAdatModel.Allampolgarsag == model.AlapAdatModel.Allampolgarsag2)
|
|
{
|
|
modelState.AddModelError("AlapAdatModel.Allampolgarsag2", ErrorResource.MegegyezoAllapolgarsag);
|
|
}
|
|
|
|
if (ClaimData.IsSzakkepzoIntezmeny && !string.IsNullOrWhiteSpace(model.AlapAdatModel.OktatasiAzonosito) && !BusinessLogic.Extensions.FelhasznaloExtensions.IsValidOktatasiAzonosito(model.AlapAdatModel.OktatasiAzonosito))
|
|
{
|
|
modelState.AddModelError("AlapAdatModel.OktatasiAzonosito", ErrorResource.AMegadottOktatasiAzonositoHibas);
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(model.AlapAdatModel.AdoazonositoJel))
|
|
{
|
|
var rgx = new Regex(@"^\d{10}$");
|
|
if (!rgx.IsMatch(model.AlapAdatModel.AdoazonositoJel))
|
|
{
|
|
modelState.AddModelError("AlapAdatModel.AdoazonositoJel", AlkalmazottResource.AdoazonositoJelFormatumaNemMegfelelo);
|
|
}
|
|
}
|
|
|
|
Kreta.Web.Classes.Utils.TajSzamValidation(modelState, "AlapAdatModel.TajSzam", model.AlapAdatModel.TajSzam);
|
|
|
|
if (model.JogosultsagModel != null)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(model.JogosultsagModel.BelepesiNev) && model.JogosultsagModel.BelepesiNev.Trim().Length == 0)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(5488));
|
|
}
|
|
}
|
|
if (model.CimElerhetosegModel != null)
|
|
{
|
|
Kreta.Web.Classes.Utils.TelefonSzamValidation(modelState, model.CimElerhetosegModel.Telefon, model.CimElerhetosegModel.TelefonTipus, TelefonszamTulajdonosEnum.AlkalmazottElsodleges);
|
|
Kreta.Web.Classes.Utils.TelefonSzamValidation(modelState, model.CimElerhetosegModel.Telefon2, model.CimElerhetosegModel.TelefonTipus2, TelefonszamTulajdonosEnum.AlkalmazottMasodlagos);
|
|
}
|
|
|
|
if (model.MunkaugyAdatModel.FoglalkoztatasTipusa == (int)FoglalkoztatasTipusaEnum.Reszmunkaidos && !model.MunkaugyAdatModel.ReszmunkaidosSzazalek.HasValue)
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.ReszmunkaidosSzazalek", ErrorResource.AReszmunkaidoSzazalekMezoMegadasaKotelezoAMunkaugyiAdatokTabFulon);
|
|
}
|
|
|
|
if (model.MunkaugyAdatModel.FoglalkoztatasTipusa == (int)FoglalkoztatasTipusaEnum.Oraado && !model.MunkaugyAdatModel.Oraszam.HasValue)
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.Oraszam", ErrorResource.AzOraszamMegadasaKotelezoAMunkaugyiAdatokTabFulon);
|
|
}
|
|
|
|
if (model.MunkaugyAdatModel.MunkaKor == (int)MunkakorTipusEnum.iskolaor)
|
|
{
|
|
if (!model.AlkalmazottId.HasValue)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(model.CimElerhetosegModel.Emailcim))
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.Emailcim", ErrorResource.EmailCimMegadasaKotelezo);
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(model.CimElerhetosegModel.Telefon))
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.Telefon", ErrorResource.TelefonszamMegadasaKotelezo);
|
|
}
|
|
|
|
if (!model.CimElerhetosegModel.EmailTipus.HasValue)
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.EmailTipus", ErrorResource.EmailTipusMegadasaKotelezo);
|
|
}
|
|
|
|
if (!model.CimElerhetosegModel.TelefonTipus.HasValue)
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.TelefonTipus", ErrorResource.TelefonTipusKotelezo);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var thelper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var data = thelper.GetTanarAdatok(model.AlkalmazottId.Value);
|
|
|
|
if (string.IsNullOrWhiteSpace(data.Email))
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.Emailcim", ErrorResource.EmailCimMegadasaKotelezo);
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(data.Telefon))
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.Telefon", ErrorResource.TelefonszamMegadasaKotelezo);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!model.MunkaugyAdatModel.VezetoiOraszamOka.IsEntityId() && !model.MunkaugyAdatModel.IsDualisKepzohelyFromSzervezet)
|
|
{
|
|
var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny;
|
|
modelState.AddModelError("MunkaugyAdatModel.VezetoiOraszamOka", isNszfhUjSzkt ? ErrorResource.VezetoiMegbizasMegadasaKotelezo : ErrorResource.VezetoiOraszamOkaMegadasaKotelezo);
|
|
}
|
|
|
|
//Ha aktív tanévben módosítunk
|
|
if (ClaimData.KovTanevID.HasValue && ClaimData.IsActivTanev && !model.MunkaugyAdatModel.IsDualisKepzohelyFromSzervezet)
|
|
{
|
|
if (new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo(ClaimData.KovTanevID).IsKivalaszthato)
|
|
{
|
|
var felhelyHelper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
if (model.MunkaugyAdatModel.FeladatellatasiHely.HasValue)
|
|
{
|
|
var kovtanevFelhely = felhelyHelper.GetKovTanevIdByAktTanevId(model.MunkaugyAdatModel.FeladatellatasiHely.Value);
|
|
//NOTE: Ha a kiválasztott felhely nem létezik a következő tanévben, és nem még választott a következő tanévre felhelyet, akkor hibát dobunk
|
|
if (!kovtanevFelhely.IsEntityId() && !model.MunkaugyAdatModel.FeladatellatasiHelyKovTanev.HasValue)
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.FeladatellatasiHely", AlkalmazottResource.KovTanevesFelhelyNemLetezik);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var isSzakkepzoJuttatas = new IntezmenyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetIntezmenyiAdatok().IsSzakkepzoJuttatas;
|
|
if (model.MunkaugyAdatModel.IsApaczaiMentor && (ClaimData.IsSzakkepzoIntezmeny || isSzakkepzoJuttatas))
|
|
{
|
|
if (string.IsNullOrWhiteSpace(model.AlapAdatModel.MunkavallaloCsaladiNev)
|
|
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.MunkavallaloUtonev)
|
|
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.SzuletesiCsaladiNev)
|
|
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.SzuletesiUtonev)
|
|
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.AnyjaCsaladiNeve)
|
|
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.AnyjaUtoneve)
|
|
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.SzuletesiHely)
|
|
|| !model.AlapAdatModel.SzuletesiIdo.HasValue
|
|
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.TajSzam)
|
|
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.AdoazonositoJel)
|
|
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.OktatasiAzonosito)
|
|
|| !model.MunkaugyAdatModel.IsAlkalmazottMentorAdatokKitoltve)
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.IsAlkalmazottMentorAdatokKitoltve", ErrorResource.MentoradatokMegadasaKotelezoKerjukMindenMegallapodashozSzuksegesAdatotRogzitsen);
|
|
}
|
|
|
|
}
|
|
else if (model.AlkalmazottId.HasValue && !model.MunkaugyAdatModel.IsApaczaiMentor && (ClaimData.IsSzakkepzoIntezmeny || isSzakkepzoJuttatas))
|
|
{
|
|
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
|
var thelper = new TanarHelper(connectionType);
|
|
var data = thelper.GetTanarAdatok(model.AlkalmazottId.Value);
|
|
if (data.IsApaczaiMentor && thelper.HasTanarMentorCsoport(model.AlkalmazottId.Value))
|
|
{
|
|
modelState.AddModelError("MunkaugyAdatModel.IsApaczaiMentor", ErrorResource.NemAllithatoAlkalmazottMentorCsoporttal);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static string GetTanevMegnevezesForBelepesCheck() => ClaimData.IsKovTanev ? ErrorResource.AzAktualisTaneven : ErrorResource.AKovetkezoTaneven;
|
|
|
|
private static void AlkalmazottTobbesModCustomValidation(ModelStateDictionary modelState, AlkalmazottModModel model)
|
|
{
|
|
if (model.AlkalmazasKezdete.HasValue && model.AlkalmazasKezdete.Value < DateTime.Now.AddYears(-100))
|
|
{
|
|
modelState.AddModelError("model.AlkalmazasKezdete", AlkalmazottResource.AlkalmazasKezdeteNemLehetAJelenlegiDatumElott100evvel);
|
|
}
|
|
if (model.AlkalmazasVege.HasValue && model.AlkalmazasKezdete.HasValue && model.AlkalmazasVege.Value < model.AlkalmazasKezdete.Value)
|
|
{
|
|
modelState.AddModelError("model.AlkalmazasVege", AlkalmazottResource.AlkalmazasVegeNemLehetKorabbanMintAKezdete);
|
|
}
|
|
}
|
|
|
|
#region Elérhetőség info tab
|
|
public DataSourceResult GetElerhetosegCimGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegCimGridData(id, request);
|
|
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public HttpResponseMessage GetExportElerhetosegCimGrid(int id, DataSourceRequest request)
|
|
{
|
|
try
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegCimGridData(id, request);
|
|
|
|
return GetElerhetosegCimExportFile(gridParameter, modelList, AdatszolgaltatasokResource.ElerhetosegCimExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.ElerhetosegCimExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
|
}
|
|
}
|
|
|
|
private HttpResponseMessage GetElerhetosegCimExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegCimModel> modelList, string worksheetName, string fileName, int tanevId)
|
|
{
|
|
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
|
|
|
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.ElerhetosegCimModel>(AlkalmazottInfoModel.ElerhetosegCimModel.ElerhetosegCimExportAttributeId);
|
|
|
|
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
|
|
|
|
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
|
|
}
|
|
|
|
private (GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegCimModel> modelList, string alkalmazottNev) GetElerhetosegCimGridData(int id, DataSourceRequest request)
|
|
{
|
|
var gridParameter = Converter.GridParameter(request);
|
|
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var coList = helper.GetTeacherAddressDataCoList(id);
|
|
|
|
var modelList = new List<AlkalmazottInfoModel.ElerhetosegCimModel>();
|
|
|
|
foreach (var co in coList)
|
|
{
|
|
var gridModel = new AlkalmazottInfoModel.ElerhetosegCimModel(co);
|
|
modelList.Add(gridModel);
|
|
}
|
|
|
|
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
|
|
}
|
|
|
|
public DataSourceResult GetElerhetosegTelefonGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegTelefonGridData(id, request);
|
|
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public HttpResponseMessage GetExportElerhetosegTelefonGrid(int id, DataSourceRequest request)
|
|
{
|
|
try
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegTelefonGridData(id, request);
|
|
|
|
return GetElerhetosegTelefonExportFile(gridParameter, modelList, AdatszolgaltatasokResource.ElerhetosegTelefonExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.ElerhetosegTelefonExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
|
}
|
|
}
|
|
|
|
private HttpResponseMessage GetElerhetosegTelefonExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegTelefonModel> modelList, string worksheetName, string fileName, int tanevId)
|
|
{
|
|
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
|
|
|
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.ElerhetosegTelefonModel>(AlkalmazottInfoModel.ElerhetosegTelefonModel.ElerhetosegTelefonExportAttributeId);
|
|
|
|
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
|
|
|
|
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
|
|
}
|
|
|
|
private (GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegTelefonModel> modelList, string alkalmazottNev) GetElerhetosegTelefonGridData(int id, DataSourceRequest request)
|
|
{
|
|
var gridParameter = Converter.GridParameter(request);
|
|
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var coList = helper.GetTeacherPhonesCoList(id);
|
|
|
|
var modelList = new List<AlkalmazottInfoModel.ElerhetosegTelefonModel>();
|
|
|
|
foreach (var co in coList)
|
|
{
|
|
var gridModel = new AlkalmazottInfoModel.ElerhetosegTelefonModel(co);
|
|
modelList.Add(gridModel);
|
|
}
|
|
|
|
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
|
|
}
|
|
|
|
public DataSourceResult GetElerhetosegEmailGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegEmailGridData(id, request);
|
|
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public HttpResponseMessage GetExportElerhetosegEmailGrid(int id, DataSourceRequest request)
|
|
{
|
|
try
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegEmailGridData(id, request);
|
|
|
|
return GetElerhetosegEmailExportFile(gridParameter, modelList, AdatszolgaltatasokResource.ElerhetosegEmailExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.ElerhetosegEmailExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
|
}
|
|
}
|
|
|
|
private HttpResponseMessage GetElerhetosegEmailExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegEmailModel> modelList, string worksheetName, string fileName, int tanevId)
|
|
{
|
|
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
|
|
|
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.ElerhetosegEmailModel>(AlkalmazottInfoModel.ElerhetosegEmailModel.ElerhetosegEmailExportAttributeId);
|
|
|
|
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
|
|
|
|
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
|
|
}
|
|
|
|
private (GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegEmailModel> modelList, string alkalmazottNev) GetElerhetosegEmailGridData(int id, DataSourceRequest request)
|
|
{
|
|
var gridParameter = Converter.GridParameter(request);
|
|
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var coList = helper.GetTeacherEmailsCoList(id);
|
|
|
|
var modelList = new List<AlkalmazottInfoModel.ElerhetosegEmailModel>();
|
|
|
|
foreach (var co in coList)
|
|
{
|
|
var gridModel = new AlkalmazottInfoModel.ElerhetosegEmailModel(co);
|
|
modelList.Add(gridModel);
|
|
}
|
|
|
|
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
|
|
}
|
|
#endregion
|
|
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
|
|
public DataSourceResult GetAlkalmazottElerhetosegCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
helper.GridParameters = Converter.GridParameter(request);
|
|
var ds = helper.GetCim(int.Parse(id));
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
|
|
public DataSourceResult GetAlkalmazottElerhetosegTelGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
helper.GridParameters = Converter.GridParameter(request);
|
|
var ds = helper.GetTelefonSzam(int.Parse(id));
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
|
|
public DataSourceResult GetAlkalmazottElerhetosegEmailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
helper.GridParameters = Converter.GridParameter(request);
|
|
var ds = helper.GetEmails(int.Parse(id));
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
public CimElerhetosegModel GetAlkalmazottElerhetosegCim(int id)
|
|
{
|
|
var co = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetAlkalmazottCimById(id);
|
|
|
|
return CimElerhetosegModel.ConvertCoToModel(co);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveElerhetosegCim(CimElerhetosegModel model)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
try
|
|
{
|
|
var co = CimElerhetosegModel.ConvertModelToFelhasznaloElerhetosegCo(model);
|
|
|
|
new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).AlkalmazottCimMentese(co, ClaimData.KovTanevID);
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (BlException e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteElerhetosegCim([FromBody] int id)
|
|
{
|
|
try
|
|
{
|
|
new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).AlkalmazottGondviseloCimTorlese(id);
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, AlkalmazottResource.Cim, ex.ConnectionErrorMessage);
|
|
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
|
}
|
|
}
|
|
|
|
public CimElerhetosegModel GetAlkalmazottElerhetosegTel(int id)
|
|
{
|
|
var co = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetAlkalmazottElerhetosegTelById(id);
|
|
|
|
return CimElerhetosegModel.ConvertCoToModel(co);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveElerhetosegTel(CimElerhetosegModel model)
|
|
{
|
|
Classes.Utils.TelefonSzamValidation(ModelState, model.Telefon, model.TelefonTipus, TelefonszamTulajdonosEnum.Alkalmazott);
|
|
AlkalmazottLogic.AlkalmazottTelefonCustomValidation(ModelState, model);
|
|
|
|
if (ModelState.IsValid)
|
|
{
|
|
var co = CimElerhetosegModel.ConvertModelToFelhasznaloElerhetosegTelCo(model);
|
|
try
|
|
{
|
|
new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ValidateForDuplicateEntriesAlkalmazottElerhetoseg<string>(co.FelhasznaloId, co.Telefonszam, ValidateElerhetosegType.Telefon, co.TelefonTipusa, co.ID);
|
|
new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).FelhasznaloElerhetosegTelMentese(co, ClaimData.KovTanevID);
|
|
}
|
|
catch (BlException ex)
|
|
{
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
|
|
}
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteElerhetosegTel([FromBody] int id)
|
|
{
|
|
try
|
|
{
|
|
new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).AlkalmazottElerhetosegTelTorlese(id);
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, AlkalmazottResource.Telefonszam, ex.ConnectionErrorMessage);
|
|
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
|
}
|
|
}
|
|
|
|
public CimElerhetosegModel GetAlkalmazottElerhetosegEmail(int id)
|
|
{
|
|
var co = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetAlkalmazottElerhetosegEmailById(id);
|
|
|
|
return CimElerhetosegModel.ConvertCoToModel(co);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveElerhetosegEmail(CimElerhetosegModel model)
|
|
{
|
|
AlkalmazottLogic.AlkalmazottEmailCustomValidation(ModelState, model);
|
|
if (ModelState.IsValid)
|
|
{
|
|
var co = CimElerhetosegModel.ConvertModelToFelhasznaloElerhetosegEmailCo(model);
|
|
try
|
|
{
|
|
new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ValidateForDuplicateEntriesAlkalmazottElerhetoseg<string>(co.FelhasznaloId, co.EmailCim, ValidateElerhetosegType.Telefon, co.EmailTipusa, co.ID);
|
|
new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).FelhasznaloElerhetosegEmailMentese(co, ClaimData.KovTanevID);
|
|
}
|
|
catch (BlException ex)
|
|
{
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
|
|
}
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteElerhetosegEmail([FromBody] int id)
|
|
{
|
|
try
|
|
{
|
|
new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).AlkalmazottElerhetosegEmailTorlese(id);
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, AlkalmazottResource.EmailCim, ex.ConnectionErrorMessage);
|
|
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
|
}
|
|
}
|
|
|
|
#region Foglalkozás tab
|
|
public DataSourceResult GetFoglalkozasGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetFoglalkozasGridData(id, request);
|
|
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public HttpResponseMessage GetExportFoglalkozasGrid(int id, DataSourceRequest request)
|
|
{
|
|
try
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetFoglalkozasGridData(id, request);
|
|
|
|
return GetFoglalkozasExportFile(gridParameter, modelList, AdatszolgaltatasokResource.FoglalkozasExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.FoglalkozasExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
|
}
|
|
}
|
|
|
|
private HttpResponseMessage GetFoglalkozasExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.FoglalkozasModel> modelList, string worksheetName, string fileName, int tanevId)
|
|
{
|
|
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
|
|
|
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.FoglalkozasModel>(AlkalmazottInfoModel.FoglalkozasModel.FoglalkozasExportAttributeId);
|
|
|
|
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
|
|
|
|
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
|
|
}
|
|
|
|
private (GridParameters gridParameter, List<AlkalmazottInfoModel.FoglalkozasModel> modelList, string alkalmazottNev) GetFoglalkozasGridData(int id, DataSourceRequest request)
|
|
{
|
|
var gridParameter = Converter.GridParameter(request);
|
|
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var coList = helper.GetTeacherRoutinesCoList(id);
|
|
|
|
var modelList = new List<AlkalmazottInfoModel.FoglalkozasModel>();
|
|
|
|
foreach (var co in coList)
|
|
{
|
|
var gridModel = new AlkalmazottInfoModel.FoglalkozasModel(co);
|
|
modelList.Add(gridModel);
|
|
}
|
|
|
|
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
|
|
}
|
|
#endregion
|
|
|
|
#region Órarendi Óra tab
|
|
public DataSourceResult GetOrarendiOraGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetOrarendiOraGridData(id, request);
|
|
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public HttpResponseMessage GetExportOrarendiOraGrid(int id, DataSourceRequest request)
|
|
{
|
|
try
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetOrarendiOraGridData(id, request);
|
|
|
|
return GetOrarendiOraExportFile(gridParameter, modelList, AdatszolgaltatasokResource.OrarendiOraExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.OrarendiOraExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
|
}
|
|
}
|
|
|
|
private HttpResponseMessage GetOrarendiOraExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.OrarendiOraModel> modelList, string worksheetName, string fileName, int tanevId)
|
|
{
|
|
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
|
|
|
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.OrarendiOraModel>(AlkalmazottInfoModel.OrarendiOraModel.OrarendiOraExportAttributeId);
|
|
|
|
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
|
|
|
|
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
|
|
}
|
|
|
|
private (GridParameters gridParameter, List<AlkalmazottInfoModel.OrarendiOraModel> modelList, string alkalmazottNev) GetOrarendiOraGridData(int id, DataSourceRequest request)
|
|
{
|
|
var gridParameter = Converter.GridParameter(request);
|
|
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var coList = helper.GetTeacherSubjectsHoursCoList(id);
|
|
|
|
var modelList = new List<AlkalmazottInfoModel.OrarendiOraModel>();
|
|
|
|
foreach (var co in coList)
|
|
{
|
|
var gridModel = new AlkalmazottInfoModel.OrarendiOraModel(co);
|
|
modelList.Add(gridModel);
|
|
}
|
|
|
|
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
|
|
}
|
|
#endregion
|
|
|
|
#region Tanmenet tab
|
|
public DataSourceResult GetTanmenetGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetTanmenetGridData(id, request);
|
|
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public HttpResponseMessage GetExportTanmenetGrid(int id, DataSourceRequest request)
|
|
{
|
|
try
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetTanmenetGridData(id, request);
|
|
|
|
return GetTanmenetExportFile(gridParameter, modelList, AdatszolgaltatasokResource.TanmenetExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.TanmenetExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
|
}
|
|
}
|
|
|
|
private HttpResponseMessage GetTanmenetExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.TanmenetModel> modelList, string worksheetName, string fileName, int tanevId)
|
|
{
|
|
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
|
|
|
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.TanmenetModel>(AlkalmazottInfoModel.TanmenetModel.TanmenetExportAttributeId);
|
|
|
|
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
|
|
|
|
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
|
|
}
|
|
|
|
private (GridParameters gridParameter, List<AlkalmazottInfoModel.TanmenetModel> modelList, string alkalmazottNev) GetTanmenetGridData(int id, DataSourceRequest request)
|
|
{
|
|
var gridParameter = Converter.GridParameter(request);
|
|
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var coList = helper.GetTanarTanmenetCoList(id);
|
|
|
|
var modelList = new List<AlkalmazottInfoModel.TanmenetModel>();
|
|
|
|
foreach (var co in coList)
|
|
{
|
|
var gridModel = new AlkalmazottInfoModel.TanmenetModel(co);
|
|
modelList.Add(gridModel);
|
|
}
|
|
|
|
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
|
|
}
|
|
#endregion
|
|
|
|
#region Megtartott órák tab
|
|
public DataSourceResult GetMegtartottTanoraGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetMegtartottTanoraGridData(id, request);
|
|
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public HttpResponseMessage GetExportMegtartottTanoraGrid(int id, DataSourceRequest request)
|
|
{
|
|
try
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetMegtartottTanoraGridData(id, request);
|
|
|
|
return GetMegtartottTanoraExportFile(gridParameter, modelList, AdatszolgaltatasokResource.MegtartottTanoraExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.MegtartottTanoraExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
|
}
|
|
}
|
|
|
|
private HttpResponseMessage GetMegtartottTanoraExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.MegtartottTanoraModel> modelList, string worksheetName, string fileName, int tanevId)
|
|
{
|
|
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
|
|
|
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.MegtartottTanoraModel>(AlkalmazottInfoModel.MegtartottTanoraModel.MegtartottTanoraExportAttributeId);
|
|
|
|
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
|
|
|
|
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
|
|
}
|
|
|
|
private (GridParameters gridParameter, List<AlkalmazottInfoModel.MegtartottTanoraModel> modelList, string alkalmazottNev) GetMegtartottTanoraGridData(int id, DataSourceRequest request)
|
|
{
|
|
var gridParameter = Converter.GridParameter(request);
|
|
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var coList = helper.GetMegtartottTanoraCoList(id);
|
|
|
|
var modelList = new List<AlkalmazottInfoModel.MegtartottTanoraModel>();
|
|
|
|
foreach (var co in coList)
|
|
{
|
|
var gridModel = new AlkalmazottInfoModel.MegtartottTanoraModel(co);
|
|
modelList.Add(gridModel);
|
|
}
|
|
|
|
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
|
|
}
|
|
#endregion
|
|
|
|
#region Értékelés tab
|
|
public DataSourceResult GetErtekelesGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetErtekelesGridData(id, request);
|
|
|
|
return modelList.ToDataSourceResult(gridParameter);
|
|
}
|
|
|
|
public HttpResponseMessage GetExportErtekelesGrid(int id, DataSourceRequest request)
|
|
{
|
|
try
|
|
{
|
|
var (gridParameter, modelList, alkalmazottNev) = GetErtekelesGridData(id, request);
|
|
|
|
return GetErtekelesExportFile(gridParameter, modelList, AdatszolgaltatasokResource.ErtekelesExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.ErtekelesExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
|
}
|
|
}
|
|
|
|
private HttpResponseMessage GetErtekelesExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.ErtekelesModel> modelList, string worksheetName, string fileName, int tanevId)
|
|
{
|
|
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
|
|
|
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.ErtekelesModel>(AlkalmazottInfoModel.ErtekelesModel.ErtekelesExportAttributeId);
|
|
|
|
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
|
|
|
|
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
|
|
}
|
|
|
|
private (GridParameters gridParameter, List<AlkalmazottInfoModel.ErtekelesModel> modelList, string alkalmazottNev) GetErtekelesGridData(int id, DataSourceRequest request)
|
|
{
|
|
var gridParameter = Converter.GridParameter(request);
|
|
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var coList = helper.GetTanarErtekelesCoList(id);
|
|
|
|
var modelList = new List<AlkalmazottInfoModel.ErtekelesModel>();
|
|
|
|
foreach (var co in coList)
|
|
{
|
|
var gridModel = new AlkalmazottInfoModel.ErtekelesModel(co);
|
|
modelList.Add(gridModel);
|
|
}
|
|
|
|
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
|
|
}
|
|
#endregion
|
|
|
|
public HttpResponseMessage SaveModAlkalmazott(AlkalmazottModModel model)
|
|
{
|
|
if (!model.IsFromSzervezet)
|
|
{
|
|
AlkalmazottTobbesModCustomValidation(ModelState, model);
|
|
}
|
|
if (ModelState.IsValid)
|
|
{
|
|
try
|
|
{
|
|
var featureContext = (IFeatureContext)Request.GetDependencyScope().GetService(typeof(IFeatureContext));
|
|
var isKlebelsbergKozpontOrNSZFH =
|
|
featureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokKlebelsberg)
|
|
|| featureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokNSZFH);
|
|
|
|
var co = model.IsFromSzervezet ? ConvertSzervezetAlkalmazottModModelToCO(model) : ConvertAlkalmazottModModelToCO(model);
|
|
|
|
var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny;
|
|
if (string.IsNullOrWhiteSpace(model.AlkalmazottArray))
|
|
{
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
if (!model.IsFromSzervezet)
|
|
{
|
|
helper.AlkalmazottTobbesModify(co, model.NeedUpdateMunkaidoAdatai, isKlebelsbergKozpontOrNSZFH, isNszfhUjSzkt);
|
|
}
|
|
else
|
|
{
|
|
helper.SzervezetAlkalmazottTobbesModify(co);
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
var alkalmazottArray = model.AlkalmazottArray.Split(',');
|
|
foreach (var item in alkalmazottArray)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(item))
|
|
{
|
|
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
co.AlkalmazottId = int.Parse(item);
|
|
if (!model.IsFromSzervezet)
|
|
{
|
|
helper.AlkalmazottTobbesModify(co, model.NeedUpdateMunkaidoAdatai, isKlebelsbergKozpontOrNSZFH, isNszfhUjSzkt);
|
|
}
|
|
else
|
|
{
|
|
helper.SzervezetAlkalmazottTobbesModify(co);
|
|
}
|
|
}
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (BlException e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
private TanarTobbesModCO ConvertAlkalmazottModModelToCO(AlkalmazottModModel model)
|
|
{
|
|
return new TanarTobbesModCO()
|
|
{
|
|
AlkalmazottId = model.AlkalmazottId,
|
|
AlkalmazottArray = model.AlkalmazottArray,
|
|
Nem = model.ModifyNem,
|
|
PedagogusFokozat = model.PedagogusFokozat,
|
|
KotelezoOraszam = model.Oraszam,
|
|
MunkaidoKedvezmenyOka = model.MunkaidoKedvezmenyOka,
|
|
MunkaidoKedvezmenyOraszam = model.MunkaidoKedvezmenyOraszam,
|
|
MunkaKor = model.MunkaKor,
|
|
FoglalkoztatasiJogviszony = model.FoglalkoztatasiJogviszony,
|
|
AlkalmazasKezdete = model.AlkalmazasKezdete,
|
|
FeladatellatasiHely = model.FeladatellatasiHely,
|
|
GyESGyed = model.TartosHelyettesites,
|
|
Foallasu = model.Foallasu,
|
|
Nyugdijas = model.Nyugdijas,
|
|
AlkalmazasVege = model.AlkalmazasVege,
|
|
FoglalkoztatasTipusa = model.FoglalkoztatasTipusa,
|
|
ReszmunkaidosSzazalek = model.ReszmunkaidosSzazalek,
|
|
VezetoiOraszamOka = model.VezetoiOraszamOka,
|
|
Szakvizsga = model.Szakvizsga,
|
|
//SzabadAllashely = model.SzabadAllashely,
|
|
SzakertoiVagyVizsgaelnokiTevekenysegu = model.SzakertoiVagyVizsgaelnokiTevekenysegu,
|
|
SzakmaiTovabbkepzes = model.SzakmaiTovabbkepzes,
|
|
SzakertoMesterpedagogusKutatotanar = model.SzakertoMesterpedagogusKutatotanar,
|
|
VezetoPedagogusVezetoOvodaPedagogus = model.VezetoPedagogusVezetoOvodaPedagogus,
|
|
Attanito = model.Attanito,
|
|
AttanitoMasIntezmeny = model.AttanitoMasIntezmeny,
|
|
IsAttanitoSzCnBelul = model.IsAttanitoSzCnBelul,
|
|
AllandoHelyettesitesre = model.AllandoHelyettesitesre,
|
|
IsKuldhetoPedMinositesSzRnek = model.IsKuldhetoPedMinositesSzRnek,
|
|
OktatoiFeladatokatIsEllat = GetOktatoiFeladatokatIsEllat(model),
|
|
IsOsztalyfonok = model.IsOsztalyfonok,
|
|
IsInternetetOktCelraHasznal = model.IsInternetetOktCelraHasznal,
|
|
IsInformatKepIsmRendelkezik = model.IsInformatKepIsmRendelkezik,
|
|
IsIktEszkozoketLgalabb40Hasznal = model.IsIktEszkozoketLgalabb40Hasznal,
|
|
HasEfopEszkoz = model.HasEfopEszkoz,
|
|
};
|
|
}
|
|
|
|
private TanarTobbesModCO ConvertSzervezetAlkalmazottModModelToCO(AlkalmazottModModel model)
|
|
{
|
|
return new TanarTobbesModCO()
|
|
{
|
|
AlkalmazottId = model.AlkalmazottId,
|
|
AlkalmazottArray = model.AlkalmazottArray,
|
|
Nem = model.ModifyNem,
|
|
OktatoSzervezetId = model.OktatoSzervezetId
|
|
};
|
|
}
|
|
|
|
private int? GetOktatoiFeladatokatIsEllat(AlkalmazottModModel model)
|
|
{
|
|
if (model.MunkaKor.HasValue)
|
|
{
|
|
if (Core.Constants.NszfhTovabbiMunkakorTipusIdList.Contains(model.MunkaKor.Value))
|
|
{
|
|
return model.OktatoiFeladatokatIsEllat;
|
|
}
|
|
|
|
return (int)IgenNemEnum.Nem;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
|
|
[NonAction]
|
|
public HttpResponseMessage SaveDualisKepzohelyiOktato(DualisKepzohelyiOktatoModel model, bool isFromSzervezet)
|
|
{
|
|
var co = new TanarAdatCO()
|
|
{
|
|
Nem = (int)NemEnum.Ferfi,
|
|
NevElotag = model.NevEloTag,
|
|
Elotag = model.NevEloTag,
|
|
SzuletesiNevElotag = model.NevEloTag,
|
|
SzuletesiCsaladiNev = AlkalmazottResource.DualisCsaladNev,
|
|
SzuletesiUtonev = AlkalmazottResource.KulsoGyakorlatiUtoNev,
|
|
AnyjaCsaladiNeve = AlkalmazottResource.DualisCsaladNev,
|
|
AnyjaUtoneve = model.NevEloTag,
|
|
MunkavallaloCsaladiNev = model.CsaladiNev,
|
|
MunkavallaloUtonev = model.Utonev,
|
|
FeladatellatasiHely = model.FeladatellatasiHely,
|
|
SzuletesiHely = AlkalmazottResource.Ismeretlen,
|
|
SzuletesiIdo = new DateTime(1950, 01, 01),
|
|
MunkaKor = model.MunkaKor,
|
|
FoglalkoztatasiJogviszony = (int)MunkaviszonyTipusEnum.na,
|
|
BetoltetlenAllashely = false,
|
|
VezetoiOraszamOka = (int)VezetoiOraszamokTipusEnum.Nincs,
|
|
IsDualisKepzohelyiOktato = true,
|
|
DualisKepzohelyNeve = model.DualisKepzohelyNeve,
|
|
DualisKepzohelyAdoszama = model.DualisKepzohelyAdoszama,
|
|
SzervezetId = model.OktatoSzervezetId,
|
|
IsSzakiranyuOktatasertFelelos = model.IsSzakiranyuOktatasertFelelos,
|
|
BelepesiNev = model.JogosultsagModel.BelepesiNev,
|
|
Jelszo = model.JogosultsagModel.Jelszo,
|
|
JogosultsagiSzint = ClaimData.IsActivTanev ? model.JogosultsagModel.JogosultsagiSzint.Select(int.Parse).ToList() : new List<int> { (int)SzerepkorTipusEnum.Naplo }
|
|
};
|
|
if (isFromSzervezet && model.OktatoSzervezetId.IsEntityId())
|
|
{
|
|
var szervezetCo = new SzervezetHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetDualisKepzohelyById(model.OktatoSzervezetId.Value);
|
|
co.DualisKepzohelyNeve = szervezetCo.KepzohelyNeve;
|
|
co.DualisKepzohelyAdoszama = szervezetCo.KepzohelyAdoszama;
|
|
}
|
|
var h = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
h.AddOrUpdateTeacher(_leltarClient, co, update: false, isSzirIntezmeny: ClaimData.IsSzirIntezmeny, ClaimData.IsActivTanev, isFromSzervezet: isFromSzervezet, isDualis: true);
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
}
|
|
}
|