kreta/KretaWeb/Areas/GRModul/ApiControllers/UzletiTervezesApiController.cs
2024-03-13 00:33:46 +01:00

107 lines
4.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Security;
using Kreta.Core.KozpontiModels.UzletiTervezesModels;
using Kreta.Enums;
using Kreta.Resources;
using Kreta.Web.Areas.GRModul.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.GRModul.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.GazdasagiUgyintezo.ClaimValue)]
public class UzletiTervezesApiController : ApiController
{
private readonly IKozpontiKretaHelper KozpontiKretaHelper;
private readonly Dictionary<HonapokEnum, int> honapSorszamaByHonap = new Dictionary<HonapokEnum, int>
{
{ HonapokEnum.Januar, 1 },
{ HonapokEnum.Februar, 2 },
{ HonapokEnum.Marcius, 3 },
{ HonapokEnum.Aprilis, 4 },
{ HonapokEnum.Majus, 5 },
{ HonapokEnum.Junius, 6 },
{ HonapokEnum.Julius, 7 },
{ HonapokEnum.Augusztus, 8 },
{ HonapokEnum.Szeptember, 9 },
{ HonapokEnum.Oktober, 10 },
{ HonapokEnum.November, 11 },
{ HonapokEnum.December, 12 }
};
public UzletiTervezesApiController(IKozpontiKretaHelper kozpontiKretaHelper)
{
KozpontiKretaHelper = kozpontiKretaHelper ?? throw new ArgumentNullException(nameof(kozpontiKretaHelper));
}
public HttpResponseMessage GetUzletiTervek(string data)
{
var model = JsonConvert.DeserializeObject<UzletiTervSearchModel>(data);
TanevCO tanevCO;
TanevHelper tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
tanevCO = tanevHelper.GetTanevInfo();
DateTime idoszak = GetIdoszak(model.Honap, tanevCO.KezdoNap.Date.Year, tanevCO.UtolsoTanitasiNapVegzos.Date.Year);
var result = KozpontiKretaHelper.GetIntezmenyUzletiTerv(new UzletiTervezesIntezmenyRequestModel()
{ IntezmenyAzonosito = ClaimData.IntezmenyAzonosito, Idoszak = idoszak });
if (result == null)
{
throw new StatusError(Enums.ManualEnums.CustomHTTPStatusEnum.HibaMiattNincsMegjelenithetoAdat, GRModulResource.KozpontiSzerverNemElerheto);
}
return Request.CreateResponse(HttpStatusCode.OK, result.ToDataSourceResult(), Configuration.Formatters.JsonFormatter);
}
public HttpResponseMessage GetAlkalmazottTenyAdatok(string data)
{
var model = JsonConvert.DeserializeObject<UzletiTervSearchModel>(data);
TanevCO tanevCO;
TanevHelper tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
tanevCO = tanevHelper.GetTanevInfo();
DateTime idoszak = GetIdoszak(model.Honap, tanevCO.KezdoNap.Date.Year, tanevCO.UtolsoTanitasiNapVegzos.Date.Year);
var result = KozpontiKretaHelper.GetIntezmenyUzletiTervAlkalmazottaknak(new UzletiTervezesAlkalmazottRequestModel()
{ IntezmenyAzonosito = ClaimData.IntezmenyAzonosito, Idoszak = idoszak });
if (result == null)
{
throw new StatusError(Enums.ManualEnums.CustomHTTPStatusEnum.HibaMiattNincsMegjelenithetoAdat, GRModulResource.KozpontiSzerverNemElerheto);
}
return Request.CreateResponse(HttpStatusCode.OK, result.ToDataSourceResult(), Configuration.Formatters.JsonFormatter);
}
private DateTime GetIdoszak(HonapokEnum honap, int kezdoNapEv, int utolsoTanitasaNapEv)
{
DateTime idoszak;
switch (honap)
{
case HonapokEnum.Szeptember:
case HonapokEnum.Oktober:
case HonapokEnum.November:
case HonapokEnum.December:
idoszak = new DateTime(kezdoNapEv, honapSorszamaByHonap[honap], 1);
break;
default:
idoszak = new DateTime(utolsoTanitasaNapEv, honapSorszamaByHonap[honap], 1);
break;
}
return idoszak;
}
}
}