This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,74 @@
using System.Collections.Generic;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Resources;
using Kreta.Web.Areas.HRModul.Logic;
using Kreta.Web.Areas.HRModul.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.HRModul.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.TavolletIgenylo.ClaimValue)]
//[ApiFeatureAuthorize(Core.Constants.FeatureName.HRModul)]
public class TavolletListaApiController : ApiController
{
public DataSourceResult GetTavolletListaGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TavolletListaSearchModel>(data);
var LResult = new List<TavolletListaGridModel>();
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var (kozpontiResult, sztszAzonositok) = new TavolletListaLogic().GetTavolletBefogadottLista(model, helper, alkalmazottHelper);
if (!kozpontiResult?.IsSuccess ?? true)
{
return new DataSourceResult
{
Errors = "error"
};
}
if (kozpontiResult.Data != null)
{
var aa = alkalmazottHelper.GetAlkalmazottSztszAzonositoTavolletAlkalmazott(sztszAzonositok);
foreach (var item in kozpontiResult.Data)
{
LResult.Add(new TavolletListaGridModel
{
ID = item.Id.ToString(),
TipusId_DNAME = item.TavolletTipusNev,
SzTSzAzonosito = item.SzTSzAzonosito,
IdoszakKezdet = item.TavolletKezdete,
IdoszakVeg = item.TavolletVege,
TavolletIdotartamNap = item.TavolletIdotartamaNap,
EvesSzabadsagKeret = item.EvesKeret,
AlkalmazottNev = (aa.TryGetValue(item.SzTSzAzonosito, out var value) ? value.AlkalmazottNev : ErrorResource.NevSzinkronizalasaSikertelen)
});
}
if (LResult.Count > 0)
{
var result = new DataSourceResult
{
Data = LResult.ToDataSourceResult(request).Data,
Total = LResult.Count
};
return result;
}
}
return new DataSourceResult();
}
}
}

View file

@ -0,0 +1,396 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Security;
using Kreta.Client.Tavollet;
using Kreta.Core;
using Kreta.Core.Configuratiaton;
using Kreta.Core.Iktato.Poszeidon.Factory.Interface;
using Kreta.Core.SAP.CommunicationModels;
using Kreta.Core.SAP.CommunicationModels.TavolletIgenyekKezelese;
using Kreta.Core.SAP.Enums;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.HRModul.Logic;
using Kreta.Web.Areas.HRModul.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.HRModul.ApiControllers
{
[ApiRoleClaimsAuthorize(true)]
[ApiRolePackageAuthorize(KretaClaimPackages.TavolletIgenylo.ClaimValue)]
//[ApiFeatureAuthorize(Core.Constants.FeatureName.HRModul)]
public class TavolletjelentoApiController : ApiController
{
private IIktatoRepositoryFactory IktatoRepositoryFactory { get; }
private IktatoServiceConfiguration IktatoServiceConfiguration { get; }
private readonly IFileServiceHelper fileServiceHelper;
public TavolletjelentoApiController(IIktatoRepositoryFactory iktatoRepositoryFactory, IktatoServiceConfiguration iktatoServiceConfiguration, IFileServiceHelper fileServiceHelper)
{
IktatoRepositoryFactory = iktatoRepositoryFactory ?? throw new ArgumentNullException(nameof(iktatoRepositoryFactory));
IktatoServiceConfiguration = iktatoServiceConfiguration ?? throw new ArgumentNullException(nameof(iktatoServiceConfiguration));
this.fileServiceHelper = fileServiceHelper;
}
public DataSourceResult GetTavolletjelentoGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
List<TavolletjelentoGridModel> LResult = new List<TavolletjelentoGridModel>();
var model = JsonConvert.DeserializeObject<TavolletjelentoSearchModel>(data);
var kozpontiResult = new TavolletjelentoLogic().GetTavolletjelentoLista(model, helper);
if (!kozpontiResult?.IsSuccess ?? true)
{
return new DataSourceResult
{
Errors = "error"
};
}
if (kozpontiResult != null && kozpontiResult.IsSuccess && kozpontiResult.TavolletjelentoResultList != null)
{
bool isIntezmenyvezeto = helper.IsIntezmenyvezeto(ClaimData.FelhasznaloId);
foreach (var item in kozpontiResult.TavolletjelentoResultList)
{
LResult.Add(new TavolletjelentoGridModel()
{
ID = item.TavolletJelentoId.ToString(),
TipusId = item.TavolletTipusId,
StatuszId = item.TavolletStatuszId.ToString(),
Torolt_BOOL = item.IsTorolt,
IsTorolheto = helper.IsTorolheto(item, isIntezmenyvezeto),
AlkalmazottNev = item.AlkalmazottNev,
SzTSzAzonosito = item.AlkalmazottSzTSz,
AlkalmazottGuid = item.AlkalmazottGuid.ToString(),
RogzitoGuid = item.RogzitoGuid.ToString(),
IdoszakKezdet = item.TavolletKezdete,
IdoszakVeg = item.TavolletVege,
HasMelleklet_BOOL = item.IsMellekletTartozikHozza,
HasMelleklet_BNAME = item.IsMellekletTartozikHozza ? CommonResource.Igen : CommonResource.Nem,
RogzitesDatuma = item.RogzitesIdopontja,
MunkanapSzam = item.TavolletIdotartamaNap,
StatuszId_DNAME = item.TavolletStatuszId.GetDisplayName<TavolletStatuszEnum>(ClaimData.SelectedTanevID.Value),
TipusId_DNAME = item.TavolletTipusId.GetDisplayName<TavolletTipusEnum>(ClaimData.SelectedTanevID.Value),
HatralevoNapokSzama = item.HatralevoNapokSzama ?? default
});
}
if (LResult.Count > 0)
{
var result = new DataSourceResult
{
Data = LResult.ToDataSourceResult(request).Data,
Total = LResult.Count
};
return result;
}
}
return new DataSourceResult();
}
public DataSourceResult GetTavolletjelentoDokGrid(int tavolletId)
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var result = helper.TavolletjelentoDokList(tavolletId);
return result.ToDataSourceResult();
}
public DataSourceResult GetAlkalmazottakAdatai(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var model = JsonConvert.DeserializeObject<TavolletjelentoSearchModel>(data);
List<TavolletAlkalmazottGridModel> LResult = new List<TavolletAlkalmazottGridModel>();
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevCo = tanev.GetTanevInfo();
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
var kozpontiResult = client.GetTavolletAlkalmazottakAdatai(model.ConvertToTavolletAdatokRequestModel(tanevCo.Sorszam));
if (!kozpontiResult?.IsSuccess ?? true)
{
return new DataSourceResult
{
Errors = "error"
};
}
if (kozpontiResult.TavolletAdatokResultList != null)
{
foreach (var item in kozpontiResult.TavolletAdatokResultList)
{
LResult.Add(new TavolletAlkalmazottGridModel()
{
ID = item.AlkalmazottId.ToString(),
AlkalmazottNev = item.AlkalmazottNev,
SzTSzAzonosito = item.SzTSzAzonosito,
IsFointezmenyeE_BNAME = item.IsTavolletFoIntezmenye ? CommonResource.Igen : CommonResource.Nem,
SzabadsagKeret = item.EvesKeret,
IgenybeVehetoTavolletek = item.FelhasznalhatoKeret,
IgenybeVettTavolletek = item.FelhasznaltKeret,
FuggobenLevoTavolletek = item.FuggoTavolletIgenyek,
});
}
if (LResult.Count > 0)
{
var result = new DataSourceResult
{
Data = LResult.ToDataSourceResult(request).Data,
Total = LResult.Count
};
return result;
}
}
return new DataSourceResult();
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public int GetTavolletIdotartam(TavolletjelentoDateModel model)
{
if (model.TavolletKezdet.HasValue && model.TavolletVeg.HasValue)
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
return helper.GetTavolletIdotartam(model.TavolletKezdet.Value.ToLocalTime(), model.TavolletVeg.Value.ToLocalTime());
}
return 0;
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveTavollet(TavolletjelentoModel model)
{
TavolletjelentoLogic tavolletJelentoLogic = new TavolletjelentoLogic();
tavolletJelentoLogic.CustomValidation(ModelState, model);
if (ModelState.IsValid)
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model = tavolletJelentoLogic.UpdateModelAuthorizationData(model);
var co = tavolletJelentoLogic.ConvertModelToCo(model);
var saveModel = tavolletJelentoLogic.SaveOrUpdateTavollet(model, co);
if (model.Muvelet == WorkflowMuveletEnum.UjRogzites && saveModel.AlkalmazottList != null && saveModel.AlkalmazottList.Any(i => string.IsNullOrWhiteSpace(i.RogzitoFunkcioTerulet)))
{
ModelState.AddModelError("NincsFTError", string.Format(HRModulResource.FunkcioTeruletHianyzik,
string.Join(", ", saveModel.AlkalmazottList.Where(i => string.IsNullOrWhiteSpace(i.RogzitoFunkcioTerulet)).Select(d => d.AlkalmazottNev))));
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
var kozpontiResult = client.SaveOrUpdateTavollet(saveModel);
if (kozpontiResult.IsSuccess)
{
if (model.FilesArray != null && model.FilesArray.Count > 0)
{
var entitys = new List<int>();
foreach (var item in kozpontiResult.AlkalmazottResultList)
{
entitys.Add(item.TavolletJelentoId);
}
helper.InsertDokumentum(IktatoRepositoryFactory, IktatoServiceConfiguration, fileServiceHelper, co, entitys);
}
tavolletJelentoLogic.SendEmail(co, model.EredetiRogzitoGuid);
return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
ModelState.AddModelStateErrorsFromString(kozpontiResult.ErrorMessage);
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveTobbesTavollet(TavolletjelentoTobbesModel tobbesModel)
{
TavolletjelentoLogic tavolletJelentoLogic = new TavolletjelentoLogic();
tavolletJelentoLogic.CustomValidation(ModelState, tobbesModel);
if (ModelState.IsValid)
{
var tavolletjelentoModel = new TavolletjelentoModel()
{
Muvelet = WorkflowMuveletEnum.CsakModositas,
StatuszId = (int)TavolletStatuszEnum.Fuggo,
MegjegyzesMezo = tobbesModel.MegjegyzesMezo,
AlkalmazottList = tobbesModel.TavolletAlkalmazottIdArray,
TavolletIdotartamNap = tobbesModel.TavolletIdotartamNap,
TavolletOka = tobbesModel.TavolletOka,
TavolletKezdet = tobbesModel.TavolletKezdet,
TavolletVeg = tobbesModel.TavolletVeg
};
var co = tavolletJelentoLogic.ConvertModelToCo(tavolletjelentoModel);
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var saveModel = tavolletJelentoLogic.SaveOrUpdateTavollet(tavolletjelentoModel, co);
//var saveModel = new TavolletjelentoCRUDRequestModel();
//saveModel.Action = WorkflowMuveletek.Modosit;
//saveModel.TavolletTipusId = tobbesModel.TavolletOka.Value;
//saveModel.TavolletStatuszId = (int)TavolletStatuszEnum.Fuggo;
//saveModel.TavolletKezdete = tobbesModel.TavolletKezdet.Value.ToLocalTime();
//saveModel.TavolletVege = tobbesModel.TavolletVeg.Value.ToLocalTime();
//saveModel.TavolletIdotartamaNap = tobbesModel.TavolletIdotartamNap ?? default;
//saveModel.Megjegyzes = tobbesModel.Megjegyzes;
//saveModel.RogzitoNev = ClaimData.FelhasznaloNev;
//saveModel.RogzitoGuid = Guid.Parse(felhasznaloHelper.GetFelhasznaloEgyediAzonosito(ClaimData.FelhasznaloId));
//saveModel.RogzitoIntezmenyAzonosito = ClaimData.IntezmenyAzonosito;
//saveModel.TanevId
foreach (var tavollet in tobbesModel.TavolletekDictionary)
{
saveModel.AlkalmazottList.Add(new TavolletAlkalmazottData
{
TavolletJelentoId = tavollet.Key,
AlkalmazottSzTSz = tavollet.Value.AlkalmazottSzTSz,
RogzitoFunkcioTerulet = tavollet.Value.RogzitoFunkcioTerulet,
});
}
var kozpontiResult = client.SaveOrUpdateTavollet(saveModel);
if (kozpontiResult.IsSuccess)
{
co.StatuszId = (int)TavolletStatuszEnum.Fuggo;
tavolletJelentoLogic.SendEmail(co);
return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
ModelState.AddModelStateErrorsFromString(kozpontiResult.ErrorMessage);
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public void SaveTavolletElfogadas([FromBody] List<TavolletjelentoElfogadasModel> ids)
{
var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
var saveModels = new List<IntezmenyiTavolletIgenyElfogadasRequestModel>();
var rogzitoGuid = Guid.Parse(felhasznaloHelper.GetFelhasznaloEgyediAzonosito(ClaimData.FelhasznaloId));
foreach (var item in ids)
{
var saveModel = new IntezmenyiTavolletIgenyElfogadasRequestModel
{
Action = WorkflowMuveletek.Jovahagy,
TavolletTipusId = (int)item.TipusId,
TavolletStatuszId = (int)HRModulHelper.GetElfogadasStatuszByTipus(item.TipusId),
RogzitoNev = ClaimData.FelhasznaloNev,
RogzitoGuid = rogzitoGuid,
TavolletJelentoId = item.ID
};
saveModels.Add(saveModel);
}
var kozpontiResult = client.JovahagyTavolletek(saveModels);
if (!kozpontiResult.IsSuccess)
{
throw new StatusError(HttpStatusCode.BadRequest, kozpontiResult.ErrorMessage);
}
foreach (var item in kozpontiResult.Data)
{
new TavolletjelentoLogic().SendEmail(item,
(int)HRModulHelper.GetElfogadasStatuszByTipus(ids.Where(x => x.ID == item.TavolletJelentoId).First().TipusId)
);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public void SaveTavolletElutasitas([FromBody] List<TavolletjelentoElutasitasModel> ids)
{
var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var saveModels = new TavolletjelentoCRUDRequestModel
{
Action = WorkflowMuveletek.Elutasit,
TavolletStatuszId = (int)TavolletStatuszEnum.Elutasitva,
RogzitoNev = ClaimData.FelhasznaloNev,
RogzitoGuid = Guid.Parse(felhasznaloHelper.GetFelhasznaloEgyediAzonosito(ClaimData.FelhasznaloId)),
};
foreach (var item in ids)
{
saveModels.AlkalmazottList.Add(new TavolletAlkalmazottData
{
TavolletJelentoId = item.ID
});
}
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
var kozpontiResult = client.SaveOrUpdateTavollet(saveModels);
if (!kozpontiResult.IsSuccess)
{
throw new StatusError(HttpStatusCode.BadRequest, kozpontiResult.ErrorMessage);
}
foreach (var alkalmazott in kozpontiResult.AlkalmazottResultList)
{
new TavolletjelentoLogic().SendEmail(alkalmazott, (int)TavolletStatuszEnum.Elutasitva, ids.Single(x => x.ID == alkalmazott.TavolletJelentoId).RogzitoGuid);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public void DeleteTavollet(TavolletjelentoDeleteModel model)
{
var tavolletDeleteModel = new TavolletjelentoLogic().DeleteTavollet(model);
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
client.DeleteTavollet(tavolletDeleteModel);
}
}
}

View file

@ -0,0 +1,49 @@
using System.Net.Mime;
using System.Text;
using System.Web;
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Security;
using Kreta.Resources;
using Kreta.Web.Areas.HRModul.Logic;
using Kreta.Web.Areas.HRModul.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.HRModul.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageAuthorize(KretaClaimPackages.TavolletIgenylo.ClaimValue)]
//[MvcFeatureMaintenance(Core.Constants.FeatureName.HRModul)]
//[MvcFeatureAuthorize(Core.Constants.FeatureName.HRModul)]
public class TavolletListaController : Controller
{
public ActionResult Index()
{
if (ClaimData.IsAdministrator || new HRModulHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).IsHrKezelo() || new TavolletjelentoLogic().HasSZTSZKOD(ClaimData.FelhasznaloId))
{
var model = new TavolletListaLogic().GetTavolletListaSearchModel();
return View("Index", model);
}
return View("~/Areas/HRModul/Views/Tavolletjelento/IndexError.cshtml");
}
[HttpPost]
[MvcValidateAjaxAntiForgeryToken]
public ActionResult Export(TavolletListaSearchModel model)
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var (kozpontiResult, sztszAzonositok) = new TavolletListaLogic().GetTavolletBefogadottLista(model, helper, alkalmazottHelper);
using (var ms = helper.GetTavolletListaExport(kozpontiResult, sztszAzonositok, alkalmazottHelper))
{
return new FileContentResult(ms.ToArray(), MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode(HRModulResource.SzamfejtettTavolletekExportFileName, Encoding.UTF8),
};
}
}
}
}

View file

@ -0,0 +1,212 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Net;
using System.Net.Mime;
using System.Text;
using System.Web;
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Security;
using Kreta.Client.Tavollet;
using Kreta.Core;
using Kreta.Core.Configuratiaton;
using Kreta.Core.Iktato.Poszeidon.Factory.Interface;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.HRModul.Logic;
using Kreta.Web.Areas.HRModul.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Models.EditorTemplates;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.HRModul.Controllers
{
[MvcRoleClaimsAuthorize(true)]
[MvcRolePackageAuthorize(KretaClaimPackages.TavolletIgenylo.ClaimValue)]
//[MvcFeatureMaintenance(Core.Constants.FeatureName.HRModul)]
//[MvcFeatureAuthorize(Core.Constants.FeatureName.HRModul)]
public class TavolletjelentoController : Controller
{
private IIktatoRepositoryFactory IktatoRepositoryFactory { get; }
private IktatoServiceConfiguration IktatoServiceConfiguration { get; }
private IFileServiceHelper FileServiceHelper { get; }
public TavolletjelentoController(IIktatoRepositoryFactory iktatoServiceFactory, IktatoServiceConfiguration iktatoServiceConfiguration, IFileServiceHelper fileServiceHelper)
{
IktatoRepositoryFactory = iktatoServiceFactory ?? throw new ArgumentNullException(nameof(iktatoServiceFactory));
IktatoServiceConfiguration = iktatoServiceConfiguration ?? throw new ArgumentNullException(nameof(iktatoServiceConfiguration));
FileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
}
public ActionResult Index()
{
var logic = new TavolletjelentoLogic();
if (!logic.HasValidMunkaviszony(ClaimData.FelhasznaloId))
{
return View("IndexErrorMunkaviszony");
}
if (ClaimData.IsAdministrator || logic.HasSZTSZKOD(ClaimData.FelhasznaloId))
{
var model = logic.GetNewTavolletjelentoSearchModel(false);
return View("Index", model);
}
else
{
return View("IndexError");
}
}
public ActionResult Kezeles()
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (helper.IsLeader() || ClaimData.IsDefaultAdminUser || ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Adminisztrator || helper.IsHrKezelo())
{
var logic = new TavolletjelentoLogic();
var model = logic.GetNewTavolletjelentoSearchModel(true);
return View("Index", model);
}
return View("~/Views/ErrorHandler/AccessDenied.cshtml");
}
public ActionResult FoglalkoztatottakAdatai()
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (helper.IsLeader() || ClaimData.IsDefaultAdminUser || ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Adminisztrator || helper.IsHrKezelo())
{
var logic = new TavolletjelentoLogic();
var model = logic.GetNewTavolletjelentoSearchModel(true);
return View("FoglalkoztatottakAdatai", model);
}
return View("~/Views/ErrorHandler/AccessDenied.cshtml");
}
public ActionResult OpenTavolletjelentoDetailPopUp(int Id)
{
var model = new TavolletjelentoLogic().GetModifyTavolletjelentoModel(Id);
model.ViewType = TavolletjelentoViewTypeEnum.Detail;
var pm = new PopUpModel(model, "Tavolletjelento_Bevitel");
pm = pm.AddCancelBtn(pm, "TavolletjelentoHelper.CancelTavolletjelentoWindow");
return PartialView(Constants.General.PopupView, pm);
}
public ActionResult OpenTavolletjelentoNewPopUp(bool isKezeles)
{
var model = new TavolletjelentoLogic().GetNewTavolletjelentoModel(isKezeles);
var pm = new PopUpModel(model, "Tavolletjelento_Bevitel");
pm = pm.AddCancelBtn(pm, "TavolletjelentoHelper.CancelTavolletjelentoWindow");
pm = pm.AddBtn(pm, "saveBtn", HRModulResource.Feladas, "TavolletjelentoHelper.GetFilesToPost", containerCssClass: "BtnOk");
return PartialView(Constants.General.PopupView, pm);
}
public ActionResult OpenTavolletjelentoModifyPopUp(int Id, bool IsHianypotlas, WorkflowMuveletEnum Muvelet, Guid? eredetiRogzitoGuid)
{
var model = new TavolletjelentoLogic().GetModifyTavolletjelentoModel(Id, Muvelet);
var btnMsg = HRModulResource.Modositas;
if (model.IsHianypotlas && Muvelet == WorkflowMuveletEnum.CsakModositas)
{
btnMsg = HRModulResource.Ujrafeladás;
}
else if (model.Muvelet == WorkflowMuveletEnum.Hianypotlas && model.IsLeaderCall)
{
btnMsg = HRModulResource.HPVisszakuldes;
model.EredetiRogzitoGuid = eredetiRogzitoGuid;
}
var pm = new PopUpModel(model, "Tavolletjelento_Bevitel");
pm = pm.AddCancelBtn(pm, "TavolletjelentoHelper.CancelTavolletjelentoWindow");
pm = pm.AddBtn(pm, "ModifyBtn", btnMsg, "TavolletjelentoHelper.GetFilesToPost", containerCssClass: "BtnOk");
return PartialView(Constants.General.PopupView, pm);
}
public ActionResult OpenTobbesTavolletjelentoModifyPopUp(List<int> Ids, bool ElteroSorok = false)
{
var model = new TavolletjelentoLogic().GetTobbesModifyTavolletjelentoModel(Ids);
var btnMsg = HRModulResource.Modositasok;
var pm = new PopUpModel(model, "Tavolletjelento_TobbesBevitel");
pm = pm.AddCancelBtn(pm, "TavolletjelentoHelper.CancelTavolletjelentoWindow");
pm = pm.AddBtn(pm, "ModifyBtn", btnMsg, "TavolletjelentoHelper.saveTobbesTavollet", containerCssClass: "BtnOk");
return PartialView(Constants.General.PopupView, pm);
}
public ActionResult GetFile(int fileId, string isDokumentum)
{
try
{
var helper = new PoszeidonHelper(ConnectionTypeExtensions.GetSessionConnectionType(), IktatoRepositoryFactory, IktatoServiceConfiguration);
var (fajlnev, tartalom) = (isDokumentum == "T") ? helper.Lekeres(fileId.ToString()) : helper.LekeresCsatolmany(FileServiceHelper, fileId.ToString());
return new FileStreamResult(new MemoryStream(tartalom), "application/octet-stream")
{
FileDownloadName = fajlnev
};
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ex.Message, ex);
}
}
[HttpPost]
[MvcValidateAjaxAntiForgeryToken]
public ActionResult Export(TavolletjelentoSearchModel model)
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var kozpontiResult = new TavolletjelentoLogic().GetTavolletjelentoLista(model, helper);
using (var ms = helper.GetTavolletjelentoExport(kozpontiResult))
{
return new FileContentResult(ms.ToArray(), MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode(HRModulResource.TavolletIgenyekExportFileName, Encoding.UTF8),
};
}
}
public ActionResult ExportAlkalmazottakAdatai(TavolletjelentoSearchModel model)
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (helper.IsLeader() || ClaimData.IsDefaultAdminUser || ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Adminisztrator || helper.IsHrKezelo())
{
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevCo = tanev.GetTanevInfo();
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
var kozpontiResult = client.GetTavolletAlkalmazottakAdatai(model.ConvertToTavolletAdatokRequestModel(tanevCo.Sorszam));
using (var ms = helper.GetTavolletAlkalmazottakAdataiExport(kozpontiResult))
{
return new FileContentResult(ms.ToArray(), MediaTypeNames.Application.Octet)
{
FileDownloadName = HttpUtility.UrlEncode(HRModulResource.AlkalmazottakAdataiExportFileName, Encoding.UTF8),
};
}
}
// Megfelelő jog nélkül nem lehet exportálni!
throw new StatusError((int)HttpStatusCode.InternalServerError, HRModulResource.NincsJogosultsagaALetolteshez);
}
}
}

View file

@ -0,0 +1,24 @@
using System.Web.Mvc;
namespace Kreta.Web.Areas.HRModul
{
public class HRModulAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "HRModul";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"HRModul_default",
"HRModul/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
}

View file

@ -0,0 +1,121 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using Kreta.BusinessLogic.Helpers;
using Kreta.Client.Tavollet;
using Kreta.Core.Configuratiaton;
using Kreta.Core.SAP.CommunicationModels.SzamfejtettTavolletek;
using Kreta.Enums;
using Kreta.Web.Areas.HRModul.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.HRModul.Logic
{
public class TavolletListaLogic
{
public TavolletListaSearchModel GetTavolletListaSearchModel()
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
TavolletListaSearchModel model = new TavolletListaSearchModel()
{
SrcIsLeaderCall = helper.IsLeader(),
};
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevCo = tanev.GetTanevInfo();
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
if (!ClaimData.IsDefaultAdminUser)
{
var kozpontiResult = client.GetTavolletAlkalmazottakAdatai(model.ConvertToTavolletAdatokRequestModel(tanevCo.Sorszam, ClaimData.FelhasznaloId));
if (kozpontiResult.IsSuccess && kozpontiResult.TavolletAdatokResultList != null && kozpontiResult.TavolletAdatokResultList.Count > 0)
{
model.SzTSzAzonosito = kozpontiResult.TavolletAdatokResultList[0].SzTSzAzonosito;
model.SzabadsagKeret = kozpontiResult.TavolletAdatokResultList[0].EvesKeret;
model.IgenybeVehetoTavolletek = kozpontiResult.TavolletAdatokResultList[0].FelhasznalhatoKeret;
model.IgenybeVettTavolletek = kozpontiResult.TavolletAdatokResultList[0].FelhasznaltKeret;
model.FuggobenLevoTavolletek = kozpontiResult.TavolletAdatokResultList[0].FuggoTavolletIgenyek;
model.UtolsoSzinkron = kozpontiResult.TavolletAdatokResultList[0].UtolsoSzinkron;
model.IsTavolletFoIntezmenye = kozpontiResult.TavolletAdatokResultList[0].IsTavolletFoIntezmenye;
}
}
else
{
model.IsTavolletFoIntezmenye = true;
}
if ((ClaimData.FelhasznaloSzerepkor == Enums.SzerepkorTipusEnum.Adminisztrator) || helper.IsHrKezelo())
model.SrcIsAdminCall = true;
if (!model.SrcIsLeaderCall && !model.SrcIsAdminCall)
{
model.SrcAlkalmazott = new int[] { ClaimData.FelhasznaloId };
model.AlkalmazottFilterId = ClaimData.FelhasznaloId;
}
model.MinimumSrcIdoszakKezdet = model.MinimumSrcIdoszakVeg = helper.GetMinimumNaptariEv(ClaimData.IsAdministrator);
model.SrcNaptariEv = new int[] { DateTime.Now.Year };
return model;
}
public (IntezmenyiTavolletBefogadottResponseModel, List<string>) GetTavolletBefogadottLista(TavolletListaSearchModel model, HRModulHelper helper, AlkalmazottHelper alkalmazottHelper)
{
IntezmenyiTavolletBefogadottResponseModel kozpontiResult = null;
List<string> sztszAzonositok = null;
var isLeader = helper.IsLeader();
if (!isLeader && ClaimData.FelhasznaloSzerepkor != SzerepkorTipusEnum.Adminisztrator && !helper.IsHrKezelo())
{
model.SrcAlkalmazott = new int[] { ClaimData.FelhasznaloId };
}
else
{
if (model.SrcAlkalmazott == null || model.SrcAlkalmazott.Length < 1)
{
model.SrcAlkalmazott = alkalmazottHelper.GetAlkalmazottIds(null).ToArray();
}
else
{
model.SrcAlkalmazott = model.SrcAlkalmazott.Intersect(alkalmazottHelper.GetAlkalmazottIds(null)).ToArray();
}
}
if (model.SrcAlkalmazott.Length > 0)
{
var alkalmazottByAlkalmazottId = alkalmazottHelper.GetAlkalmazottIDTavolletAlkalmazott(model.SrcAlkalmazott.ToList());
sztszAzonositok = alkalmazottByAlkalmazottId.Values.Where(x => !string.IsNullOrWhiteSpace(x.AlkalmazottSzTSz)).Select(x => x.AlkalmazottSzTSz).Distinct().ToList();
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
var requestModel = new IntezmenyiTavolletBefogadottRequestModel
{
SzTSzAzonositok = sztszAzonositok,
TavolletRogzitesEvek = (model.SrcNaptariEv != null && model.SrcNaptariEv.Length > 0) ? model.SrcNaptariEv.ToList() : new List<int> { DateTime.Now.Year },
TavolletKezdete = model.SrcIdoszakKezdet,
TavolletVege = model.SrcIdoszakVeg,
TavolletTipusId = model.SrcTipus
};
if (!isLeader && ClaimData.FelhasznaloSzerepkor != SzerepkorTipusEnum.Adminisztrator && !helper.IsHrKezelo())
{
kozpontiResult = client.GetAlkalmazottakTavolletAdatok(requestModel);
}
else
{
kozpontiResult = client.GetVezetokTavolletAdatok(requestModel);
}
}
return (kozpontiResult, sztszAzonositok);
}
}
}

View file

@ -0,0 +1,835 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Configuration;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Client.Tavollet;
using Kreta.Core.Configuratiaton;
using Kreta.Core.SAP.CommunicationModels;
using Kreta.Core.SAP.Enums;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.HRModul.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.HRModul.Logic
{
public class TavolletjelentoLogic
{
public TavolletjelentoSearchModel GetNewTavolletjelentoSearchModel(bool isKezeles)
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
TavolletjelentoSearchModel model = new TavolletjelentoSearchModel()
{
SrcIsLeaderCall = isKezeles && helper.IsLeader(),
SrcToroltekMegjelenitese = IgenNemEnum.Igen.AsInt(),
SrcKezeles = isKezeles,
};
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevCo = tanev.GetTanevInfo();
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
if (!ClaimData.IsDefaultAdminUser)
{
var kozpontiResult = client.GetTavolletAlkalmazottakAdatai(model.ConvertToTavolletAdatokRequestModel(tanevCo.Sorszam, ClaimData.FelhasznaloId));
if (kozpontiResult.IsSuccess && kozpontiResult.TavolletAdatokResultList != null && kozpontiResult.TavolletAdatokResultList.Count > 0)
{
model.SzTSzAzonosito = kozpontiResult.TavolletAdatokResultList[0].SzTSzAzonosito;
model.SzabadsagKeret = kozpontiResult.TavolletAdatokResultList[0].EvesKeret;
model.IgenybeVehetoTavolletek = kozpontiResult.TavolletAdatokResultList[0].FelhasznalhatoKeret;
model.IgenybeVettTavolletek = kozpontiResult.TavolletAdatokResultList[0].FelhasznaltKeret;
model.FuggobenLevoTavolletek = kozpontiResult.TavolletAdatokResultList[0].FuggoTavolletIgenyek;
model.UtolsoSzinkron = kozpontiResult.TavolletAdatokResultList[0].UtolsoSzinkron;
model.IsTavolletFoIntezmenye = kozpontiResult.TavolletAdatokResultList[0].IsTavolletFoIntezmenye;
}
}
else
{
model.IsTavolletFoIntezmenye = true;
}
var tavolletJogosultSzerepkor = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Tavollet_Jogosult_Szerepkor);
if (ClaimData.IsAdministrator || helper.IsLeader()
|| (ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.alkalmazott && tavolletJogosultSzerepkor.Contains((int)TavolletJogosultSzerepkorEnum.Alkalmazott))
|| (ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Naplo && tavolletJogosultSzerepkor.Contains((int)TavolletJogosultSzerepkorEnum.Pedagogus))
|| helper.IsHrKezelo()
&& model.IsTavolletFoIntezmenye)
{
model.SrcTavolletRogzitheto = true;
model.SrcFoIntezmenyeE = 1;
}
if ((ClaimData.FelhasznaloSzerepkor == Enums.SzerepkorTipusEnum.Adminisztrator)
|| (helper.IsHrKezelo()))
model.SrcIsAdminCall = true;
if (!isKezeles)
{
model.SrcAlkalmazott = new int[] { ClaimData.FelhasznaloId };
model.AlkalmazottFilterId = ClaimData.FelhasznaloId;
}
model.MinimumSrcIdoszakKezdet = model.MinimumSrcIdoszakVeg = helper.GetMinimumNaptariEv(ClaimData.IsAdministrator);
model.SrcNaptariEv = new int[] { DateTime.Now.Year };
return model;
}
public TavolletjelentoModel GetNewTavolletjelentoModel(bool isKezeles)
{
var now = DateTime.Now;
var model = new TavolletjelentoModel
{
TavolletKezdet = now.StartOfWeek(DayOfWeek.Monday),
TavolletVeg = now.StartOfWeek(DayOfWeek.Monday).AddDays(5),
ViewType = TavolletjelentoViewTypeEnum.New,
//
MinKezdet = now.Day < 6
? new DateTime(now.AddMonths(-1).Year, now.AddMonths(-1).Month, 1)
: new DateTime(now.Year, now.Month, 1),
Muvelet = WorkflowMuveletEnum.UjRogzites,
IsKezeles = isKezeles,
};
var helper = new HRModulHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
model.IsLeaderCall = helper.IsLeader();
model.TavolletIdotartamNap = helper.GetTavolletIdotartam(model.TavolletKezdet.Value, model.TavolletVeg.Value);
var attribute = (StringLengthAttribute)typeof(TavolletjelentoModel).GetProperty(nameof(model.Megjegyzes)).GetCustomAttributes(typeof(StringLengthAttribute), false).First();
model.MegjegyzesMezoMaxHossza = attribute.MaximumLength;
if ((ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Adminisztrator)
|| helper.IsHrKezelo())
model.IsAdminCall = true;
if (!isKezeles)
{
model.AlkalmazottList = new string[] { string.Format("{0}", ClaimData.FelhasznaloId) };
model.AlkalmazottFilterId = ClaimData.FelhasznaloId;
}
return model;
}
public TavolletjelentoModel GetModifyTavolletjelentoModel(int id, WorkflowMuveletEnum muvelet = WorkflowMuveletEnum.CsakModositas)
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
//var model = ConvertCoToModel(helper.GetTavolletCO(id));
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
var alkalmazottak = new List<TavolletAlkalmazottData>();
alkalmazottak.Add(new TavolletAlkalmazottData
{
TavolletJelentoId = id
});
var kozpontiResult = client.GetTavollet(new TavolletjelentoCRUDRequestModel { AlkalmazottList = alkalmazottak });
var co = new TavolletjelentoCO()
{
ID = kozpontiResult.TavolletJelentoId,
TavolletOka = kozpontiResult.TavolletTipusId.GetDisplayName<TavolletTipusEnum>(ClaimData.SelectedTanevID.Value),
TavolletOkaId = kozpontiResult.TavolletTipusId,
AlkalmazottNeve = kozpontiResult.AlkalmazottNev,
TavolletKezdet = kozpontiResult.TavolletKezdete,
TavolletVeg = kozpontiResult.TavolletVege,
TavolletIdotartamNap = kozpontiResult.TavolletIdotartamaNap,
StatuszId = kozpontiResult.TavolletStatuszId,
StatuszNeve = kozpontiResult.TavolletStatuszId.GetDisplayName<TavolletStatuszEnum>(ClaimData.SelectedTanevID.Value),
RogzitoNeve = kozpontiResult.RogzitoNev,
MegjegyzesekList = kozpontiResult.MegjegyzesekList,
//Dokumentum = kozpontiResult.DokumentumokList,
AlkalmazottId = ClaimData.IntezmenyAzonosito == kozpontiResult.RogzitoIntezmenyAzonosito
? alkalmazottHelper.GetAlkalmazottIdByGUID(kozpontiResult.AlkalmazottGuid.ToString())
: default
};
var model = ConvertCoToModel(co);
model.IsNemRogzitoIntezmeny = ClaimData.IntezmenyAzonosito != kozpontiResult.RogzitoIntezmenyAzonosito;
model.OsszefuzottMegjegyzesek = new List<TavolletjelentoMegjegyzesItem>();
foreach (var megjegyzes in kozpontiResult.MegjegyzesekList)
{
var megjegyzesLine = string.Format("{0} ({1}) - {2}", megjegyzes.RogzitesIdopontja.ToString("yyyy.MM.dd HH:mm:ss"), megjegyzes.RogzitoNev, megjegyzes.Megjegyzes);
model.OsszefuzottMegjegyzesek.Add(new TavolletjelentoMegjegyzesItem(megjegyzesLine, (megjegyzes.MegjegyzesTipus == MegjegyzesTipusok.Hianypotlas ? "hp" : "")));
}
var attribute = (StringLengthAttribute)typeof(TavolletjelentoModel).GetProperty(nameof(model.MegjegyzesMezo)).GetCustomAttributes(typeof(StringLengthAttribute), false).First();
model.MegjegyzesMezoMaxHossza = attribute.MaximumLength;
model.ViewType = TavolletjelentoViewTypeEnum.Modify;
model.IsHianypotlas = model.StatuszId == (int)TavolletStatuszEnum.HianypotlasraVisszakuldve || model.StatuszId == (int)TavolletStatuszEnum.Tankerulet_altal_hianypotlasra_visszakuldve;
model.IsLeaderCall = helper.IsLeader();
model.Muvelet = muvelet;
if ((ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Adminisztrator)
|| helper.IsHrKezelo())
model.IsAdminCall = true;
return model;
}
public TavolletjelentoTobbesModel GetTobbesModifyTavolletjelentoModel(List<int> ids)
{
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
var alkalmazottak = new List<TavolletAlkalmazottData>();
var alkalmazottIds = new List<int>();
var alkalmazottNevek = new List<string>();
var tavolletekDict = new Dictionary<int, AlkalmazottAdat>();
foreach (var id in ids)
{
alkalmazottak.Add(new TavolletAlkalmazottData
{
TavolletJelentoId = id
});
}
var kozpontiResult = client.GetTavolletDetailList(new TavolletjelentoCRUDRequestModel { AlkalmazottList = alkalmazottak });
foreach (var alkalmazott in kozpontiResult.TavolletjelentoResultList)
{
alkalmazottIds.Add(alkalmazottHelper.GetAlkalmazottIdByGUID(alkalmazott.AlkalmazottGuid.ToString()));
alkalmazottNevek.Add(alkalmazott.AlkalmazottNev);
tavolletekDict.Add(alkalmazott.TavolletJelentoId, new AlkalmazottAdat { AlkalmazottSzTSz = alkalmazott.AlkalmazottSzTSz, RogzitoFunkcioTerulet = alkalmazott.RogzitoFunkcioTerulet });
}
var model = new TavolletjelentoTobbesModel();
var idArrayString = string.Join(",", ids);
model.TavolletIDArrayString = idArrayString;
model.TavolletAlkalmazottIdArrayString = string.Join(",", alkalmazottIds.Distinct());
model.TavolletAlkalmazottNevArray = string.Join(", ", alkalmazottNevek.Distinct());
model.TavolletekDictionary = tavolletekDict;
var firstTipusId = kozpontiResult.TavolletjelentoResultList.FirstOrDefault()?.TavolletTipusId;
var firstTavolletKezdete = kozpontiResult.TavolletjelentoResultList.FirstOrDefault()?.TavolletKezdete;
var firstTavolletVege = kozpontiResult.TavolletjelentoResultList.FirstOrDefault()?.TavolletVege;
model.ElteroSorok = kozpontiResult.TavolletjelentoResultList.Any(i => i.TavolletTipusId != firstTipusId) ||
kozpontiResult.TavolletjelentoResultList.Any(I => I.TavolletKezdete != firstTavolletKezdete) ||
kozpontiResult.TavolletjelentoResultList.Any(i => i.TavolletVege != firstTavolletVege);
model.FelhasznaloTobbszorKivalasztva =
kozpontiResult.TavolletjelentoResultList.Select(i => i.AlkalmazottGuid).Count() !=
kozpontiResult.TavolletjelentoResultList.Select(i => i.AlkalmazottGuid).Distinct().Count();
return model;
}
public TavolletjelentoCRUDRequestModel SaveOrUpdateTavollet(TavolletjelentoModel model, TavolletjelentoCO co)
{
//FIXME!!!4!!!!
var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var HRModulHelper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var alkalmazottak = new List<TavolletAlkalmazottData>();
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevCo = tanev.GetTanevInfo();
var aIds = model.AlkalmazottList.Select(int.Parse).Distinct().ToList();
var aa = alkalmazottHelper.GetAlkalmazottIDTavolletAlkalmazott(aIds);
if (model.AlkalmazottList.Length > 0 && model.Muvelet != WorkflowMuveletEnum.CsakModositas)
{
if (model.Muvelet != WorkflowMuveletEnum.Elutasitas)
{
foreach (var id in aIds)
{
alkalmazottak.Add(new TavolletAlkalmazottData
{
TavolletJelentoId = model.ID ?? default,
RogzitoFunkcioTerulet = aa[id].FunkcioTerulet,
AlkalmazottSzTSz = aa[id].AlkalmazottSzTSz,
AlkalmazottGuid = aa[id].AlkalmazottGuid,
AlkalmazottNev = aa[id].AlkalmazottNev,
});
}
}
else
{
foreach (var alkalmazott in model.AlkalmazottList)
{
alkalmazottak.Add(new TavolletAlkalmazottData
{
TavolletJelentoId = model.ID ?? default,
});
}
}
}
else
{
if (model.AlkalmazottList.Length > 0 && !model.ID.HasValue)
{
//foreach (var alkalmazott in model.AlkalmazottList)
//{
// alkalmazottak.Add(new TavolletAlkalmazottData
// {
// TavolletJelentoId = default
// });
//}
}
else
{
alkalmazottak.Add(new TavolletAlkalmazottData
{
TavolletJelentoId = model.ID.Value,
RogzitoFunkcioTerulet = aa[aIds.First()].FunkcioTerulet,
AlkalmazottSzTSz = aa[aIds.First()].AlkalmazottSzTSz,
});
}
}
var request = new TavolletjelentoCRUDRequestModel();
request.AlkalmazottList = alkalmazottak;
if (co != null)
{/*
saveModel.Action = WorkflowMuveletek.Modosit;
saveModel.TavolletTipusId = tobbesModel.TavolletOka.Value;
saveModel.TavolletStatuszId = (int)TavolletStatuszEnum.Fuggo;
saveModel.TavolletKezdete = tobbesModel.TavolletKezdet.Value.ToLocalTime();
saveModel.TavolletVege = tobbesModel.TavolletVeg.Value.ToLocalTime();
saveModel.TavolletIdotartamaNap = tobbesModel.TavolletIdotartamNap ?? default;
saveModel.Megjegyzes = tobbesModel.Megjegyzes;
saveModel.RogzitoNev = ClaimData.FelhasznaloNev;
saveModel.RogzitoGuid = Guid.Parse(felhasznaloHelper.GetFelhasznaloEgyediAzonosito(ClaimData.FelhasznaloId));
saveModel.RogzitoIntezmenyAzonosito = ClaimData.IntezmenyAzonosito;
*/
request.KretaIntezmenyAzonosito = ClaimData.IntezmenyAzonosito;
request.KretaIntezmenyId = ClaimData.IntezmenyId;
request.TanevId = tanevCo.Sorszam;
//request.FunkcioTerulet = felhasznaloHelper.GetFunkcioTeruletSAPKod(ClaimData.FelhasznaloId);
request.RogzitoIntezmenyAzonosito = ClaimData.IntezmenyAzonosito;
request.RogzitoGuid = Guid.Parse(felhasznaloHelper.GetFelhasznaloEgyediAzonosito(ClaimData.FelhasznaloId));
request.RogzitoNev = ClaimData.FelhasznaloNev;// alkalmazottHelper.GetAlkalmazottNevById(ClaimData.FelhasznaloId); //ClaimData.FelhasznaloNev
request.TavolletNaptariEv = DateTime.Now.Year; //TODO: ha következő évre rögzítünk, akkor az az év legyen?
request.TavolletKezdete = model.TavolletKezdet.HasValue ? model.TavolletKezdet.Value.ToLocalTime() : default; //TODO
request.TavolletVege = model.TavolletVeg.HasValue ? model.TavolletVeg.Value.ToLocalTime() : default; //TODO
request.TavolletIdotartamaNap = model.TavolletIdotartamNap.Value;
request.TavolletIdotartamaOra = 0;
request.TavolletTipusId = model.TavolletOka ?? default; //TODO
request.Megjegyzes = co.Megjegyzes;
request.IsMellekletTartozikHozza = model.FilesArray != null && model.FilesArray.Count > 0;
}
switch (model.Muvelet)
{
case WorkflowMuveletEnum.UjRogzites:
if (HRModulHelper.IsIntezmenyvezeto(ClaimData.FelhasznaloId))
{
request.TavolletStatuszId = (int)HRModulHelper.GetElfogadasStatuszByTipus((TavolletTipusEnum)co.TavolletOkaId);
}
else
{
request.TavolletStatuszId = (int)TavolletStatuszEnum.Fuggo;
}
request.Action = WorkflowMuveletek.Letrehoz;
break;
case WorkflowMuveletEnum.CsakModositas:
if (model.StatuszId == (int)TavolletStatuszEnum.HianypotlasraVisszakuldve || model.StatuszId == (int)TavolletStatuszEnum.Tankerulet_altal_hianypotlasra_visszakuldve)
{
request.TavolletStatuszId = (int)TavolletStatuszEnum.Fuggo;
}
else
{
request.TavolletStatuszId = model.StatuszId;
}
request.Action = WorkflowMuveletek.Modosit;
break;
case WorkflowMuveletEnum.Hianypotlas:
request.TavolletStatuszId = (int)TavolletStatuszEnum.HianypotlasraVisszakuldve;
request.Action = WorkflowMuveletek.Hianypotlas;
break;
case WorkflowMuveletEnum.Elutasitas:
request.TavolletStatuszId = (int)TavolletStatuszEnum.Elutasitva;
request.Action = WorkflowMuveletek.Elutasit;
break;
}
return request;
}
public TavolletjelentoCRUDRequestModel ElfogadTavollet(TavolletjelentoModel model, TavolletjelentoCO co)
{
var alkalmazottak = new List<TavolletAlkalmazottData>();
if (model.AlkalmazottList.Length > 0)
{
foreach (var alkalmazott in model.AlkalmazottList)
{
alkalmazottak.Add(new TavolletAlkalmazottData
{
TavolletJelentoId = int.Parse(alkalmazott),
});
}
}
var request = new TavolletjelentoCRUDRequestModel();
request.AlkalmazottList = alkalmazottak;
request.TavolletTipusId = model.TavolletOka ?? 0;
request.Action = WorkflowMuveletek.Modosit;
request.TavolletKezdete = model.TavolletKezdet.HasValue ? model.TavolletKezdet.Value.ToLocalTime() : default;
request.TavolletVege = model.TavolletVeg.HasValue ? model.TavolletVeg.Value.ToLocalTime() : default;
request.TavolletStatuszId = model.StatuszId;
return request;
}
public TavolletjelentoCRUDRequestModel DeleteTavollet(TavolletjelentoDeleteModel model)
{
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
//var megjegyzes = CreateTimestampedComment(model.Note);
//if (!string.IsNullOrWhiteSpace(megjegyzes))
//{
// megjegyzes += string.IsNullOrWhiteSpace(megjegyzes) ? megjegyzes : "\n" + megjegyzes;
//}
var alkalmazottak = new List<TavolletAlkalmazottData>();
alkalmazottak.Add(new TavolletAlkalmazottData
{
TavolletJelentoId = model.Id
});
var request = new TavolletjelentoCRUDRequestModel
{
AlkalmazottList = alkalmazottak,
Megjegyzes = model.Note,
Action = WorkflowMuveletek.Torol,
RogzitoNev = alkalmazottHelper.GetAlkalmazottNevById(ClaimData.FelhasznaloId),
RogzitoGuid = Guid.Parse(felhasznaloHelper.GetFelhasznaloEgyediAzonosito(ClaimData.FelhasznaloId))
};
return request;
}
public void CustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary ModelState, TavolletjelentoModel model)
{
if (model.AlkalmazottList.Length > 0)
{
var alkalmazottakSzTSzAzonositoNelkul = new List<string>();
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var alkalmazott in model.AlkalmazottList)
{
if (!HasSZTSZKOD(Convert.ToInt32(alkalmazott)))
{
alkalmazottakSzTSzAzonositoNelkul.Add(alkalmazottHelper.GetAlkalmazottNevById(Convert.ToInt32(alkalmazott)));
}
}
if (alkalmazottakSzTSzAzonositoNelkul.Count > 0)
{
ModelState.AddModelError("NincsSzTSzAzonositoError",
string.Format(HRModulResource.NincsSzTSzAzonosito, string.Join(", ", alkalmazottakSzTSzAzonositoNelkul)));
}
}
if (model.AlkalmazottList.Length > 1 && model.FilesArray != null && model.FilesArray.Any())
{
ModelState.AddModelError("FilesArrayError", HRModulResource.WarnCsatolmanyNemRogzithetoTobbAlkalmazottnak);
}
if (!string.IsNullOrWhiteSpace(model.MegjegyzesMezo))
{
var attribute = (StringLengthAttribute)typeof(TavolletjelentoModel).GetProperty(nameof(model.Megjegyzes)).GetCustomAttributes(typeof(StringLengthAttribute), false).First();
if (model.MegjegyzesMezo.Length > attribute.MaximumLength)
{
ModelState.AddModelError("MegjegyzesMaxHossz", HRModulResource.MegjegyzesMax255Karakter);
}
}
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tavolletJogosultSzerepkor = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Tavollet_Jogosult_Szerepkor);
var error = true;
if ((ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.alkalmazott && tavolletJogosultSzerepkor.Contains((int)TavolletJogosultSzerepkorEnum.Alkalmazott))
|| (ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Naplo && tavolletJogosultSzerepkor.Contains((int)TavolletJogosultSzerepkorEnum.Pedagogus))
|| ClaimData.IsAdministrator || helper.IsLeader() || helper.IsHrKezelo())
{
error = false;
}
if (error)
{
ModelState.AddModelError("JogosultsagError", HRModulResource.NincsJogosultsagaTavolletetRogziteni);
}
else
{
if ((DateTime.Now.Hour >= 16 && model.TavolletKezdet.HasValue && model.TavolletKezdet.Value.Day - 1 == DateTime.Now.Day)
&& (!ClaimData.IsAdministrator || !helper.IsLeader()))
{
ModelState.AddModelError("RogzitesiIdoError", HRModulResource.MaMarNemRogzithetTavolletetHolnapra);
}
}
if (!model.TavolletKezdet.HasValue)
{
ModelState.AddModelError("RogzitesiIdoError", HRModulResource.TavolletKezdetKotelezo);
}
if (!model.TavolletVeg.HasValue)
{
ModelState.AddModelError("RogzitesiIdoError", HRModulResource.TavolletVegKotelezo);
}
if (model.TavolletKezdet.Value > model.TavolletVeg.Value)
{
ModelState.AddModelError("DatumError", HRModulResource.KezdetNemLehetNagyobbAVegenel);
}
if (model.TavolletKezdet.Value < DateTime.Now &&
DateTime.Now.Day > 5 &&
model.TavolletKezdet.Value.Month < DateTime.Now.Month &&
model.TavolletKezdet.Value.Year == model.TavolletVeg.Value.Year)
{
ModelState.AddModelError("DatumError", HRModulResource.TavolletRogziteseNemLehetsegesAzAdottIdoszakban);
}
if (!model.TavolletOka.HasValue)
{
ModelState.AddModelError("TavolletOkaError", HRModulResource.TavolletOkaKotelezo);
}
if (model.AlkalmazottList.Length <= 0 && !model.ID.HasValue)
{
ModelState.AddModelError("AlkalmazottListError", HRModulResource.LegalabbEgyAlkalmazott);
}
}
public void CustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary ModelState, TavolletjelentoTobbesModel model)
{
if (model.TavolletAlkalmazottIdArray.Length > 0)
{
var alkalmazottakSzTSzAzonositoNelkul = new List<string>();
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var alkalmazott in model.TavolletAlkalmazottIdArray)
{
if (!HasSZTSZKOD(Convert.ToInt32(alkalmazott)))
{
alkalmazottakSzTSzAzonositoNelkul.Add(alkalmazottHelper.GetAlkalmazottNevById(Convert.ToInt32(alkalmazott)));
}
}
if (alkalmazottakSzTSzAzonositoNelkul.Count > 0)
{
ModelState.AddModelError("NincsSzTSzAzonositoError",
string.Format(HRModulResource.NincsSzTSzAzonosito, string.Join(", ", alkalmazottakSzTSzAzonositoNelkul)));
}
}
var HRModulHelper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tavolletJogosultSzerepkor = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue<List<int>>(RendszerBeallitasTipusEnum.Tavollet_Jogosult_Szerepkor);
var error = true;
if ((ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.alkalmazott && tavolletJogosultSzerepkor.Contains((int)TavolletJogosultSzerepkorEnum.Alkalmazott))
|| (ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Naplo && tavolletJogosultSzerepkor.Contains((int)TavolletJogosultSzerepkorEnum.Pedagogus))
|| ClaimData.IsAdministrator || HRModulHelper.IsLeader())
{
error = false;
}
if (error)
{
ModelState.AddModelError("JogosultsagError", HRModulResource.NincsJogosultsagaTavolletetRogziteni);
}
else
{
if ((DateTime.Now.Hour >= 16 && model.TavolletKezdet.HasValue && model.TavolletKezdet.Value.Day - 1 == DateTime.Now.Day)
&& (!ClaimData.IsAdministrator || !HRModulHelper.IsLeader()))
{
ModelState.AddModelError("RogzitesiIdoError", HRModulResource.MaMarNemRogzithetTavolletetHolnapra);
}
}
if (model.TavolletKezdet.Value > model.TavolletVeg.Value)
{
ModelState.AddModelError("DatumError", HRModulResource.KezdetNemLehetNagyobbAVegenel);
}
if (model.TavolletAlkalmazottIdArray.Length <= 0)
{
ModelState.AddModelError("AlkalmazottListError", HRModulResource.LegalabbEgyAlkalmazott);
}
}
public TavolletjelentoModel ConvertCoToModel(TavolletjelentoCO co)
{
var model = new TavolletjelentoModel()
{
ID = co.ID ?? default(int),
AlkalmazottFilterId = co.AlkalmazottId,
StatuszId = co.StatuszId,
RogzitoId = co.RogzitoId,
TavolletOka = co.TavolletOkaId,
AlkalmazottList = co.AlkalmazottList,
AlkalmazottNeve = co.AlkalmazottNeve,
TavolletKezdet = co.TavolletKezdet,
TavolletVeg = co.TavolletVeg,
TavolletIdotartamNap = co.TavolletIdotartamNap,
StatuszNeve = co.StatuszNeve,
RogzitoNeve = co.RogzitoNeve,
Megjegyzes = co.Megjegyzes,
HianypotlasSzoveg = co.HianypotlasSzoveg,
KozpontiHianypotlasSzoveg = co.KozpontiHianypotlasSzoveg
};
return model;
}
/// <summary>
/// A model-ben az IsLeaderCall és az IsAdminCall frissítése szerveroldali értékkel!
/// </summary>
public TavolletjelentoModel UpdateModelAuthorizationData(TavolletjelentoModel model)
{
var helper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
model.IsLeaderCall = helper.IsLeader();
if ((ClaimData.FelhasznaloSzerepkor == SzerepkorTipusEnum.Adminisztrator)
|| helper.IsHrKezelo())
model.IsAdminCall = true;
return model;
}
public TavolletjelentoCO ConvertModelToCo(TavolletjelentoModel model)
{
var co = new TavolletjelentoCO()
{
ID = model.ID ?? default(int),
RogzitoId = ClaimData.FelhasznaloId,
StatuszId = model.StatuszId,
TavolletOkaId = model.TavolletOka.Value,
AlkalmazottList = model.AlkalmazottList,
TavolletKezdet = model.TavolletKezdet.Value,
TavolletVeg = model.TavolletVeg.Value,
TavolletIdotartamNap = model.TavolletIdotartamNap.Value,
Megjegyzes = model.MegjegyzesMezo,
};
if (model.Muvelet == WorkflowMuveletEnum.Hianypotlas &&
(model.StatuszId == (int)TavolletStatuszEnum.Fuggo || model.StatuszId == (int)TavolletStatuszEnum.Tankerulet_altal_hianypotlasra_visszakuldve) &&
(model.IsLeaderCall || model.IsAdminCall))
{
co.StatuszId = (int)TavolletStatuszEnum.HianypotlasraVisszakuldve;
}
if (model.Muvelet == WorkflowMuveletEnum.CsakModositas &&
((model.StatuszId == (int)TavolletStatuszEnum.HianypotlasraVisszakuldve && (model.IsLeaderCall || model.IsAdminCall || model.AlkalmazottList.First() == ClaimData.FelhasznaloId.ToString() || model.RogzitoId == ClaimData.FelhasznaloId)) ||
model.StatuszId == (int)TavolletStatuszEnum.Tankerulet_altal_hianypotlasra_visszakuldve && model.IsLeaderCall))
{
co.StatuszId = (int)TavolletStatuszEnum.Fuggo;
}
if (model.FilesArray?.Count > 0)
{
co.FilesArray = new List<CsatolmanyCO>();
foreach (var item in model.FilesArray)
{
var index = item.ContentAsBase64EncodedString.IndexOf(',');
co.FilesArray.Add(new CsatolmanyCO() { Name = item.Name, ContentAsBase64EncodedString = item.ContentAsBase64EncodedString.Substring(index + 1) });
}
}
return co;
}
public void SendEmail(TavolletjelentoCO co, Guid? eredetiRogzitoGuid = null)
{
var dateString = " - " + co.TavolletKezdet.ToShortDateString();
if (co.TavolletKezdet.Date != co.TavolletVeg.Date)
dateString += " - " + co.TavolletVeg.ToShortDateString();
var alkHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var hrHelper = new HRModulHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var intezmenyVezetoData = alkHelper.GetAlkalmazottNeveEsEmailCime((int)EmailTipusEnum.Hivatalos,
new List<int> { (int)VezetoiOraszamokTipusEnum.Intezmenyvezeto, (int)VezetoiOraszamokTipusEnum.igazgato }, null);
if (intezmenyVezetoData.Tables[0].Rows.Count > 0)
{
var vezetoNev = intezmenyVezetoData.Tables[0].Rows[0].Field<string>("Nev");
var vezetoEmailCim = intezmenyVezetoData.Tables[0].Rows[0].Field<string>("EmailCim");
var vezetoEmailGuid = SDAConvert.ToNullableGuid(intezmenyVezetoData.Tables[0].Rows[0]["EmailGuid"]);
foreach (var item in co.AlkalmazottList)
{
var alkalmazottData = alkHelper.GetAlkalmazottNeveEsEmailCime((int)EmailTipusEnum.Hivatalos, null, int.Parse(item));
var alkalmazottNev = alkalmazottData.Tables[0].Rows[0].Field<string>("Nev");
var alkalmazottEmail = alkalmazottData.Tables[0].Rows[0].Field<string>("EmailCim");
var alkalmazottEmailGuid = SDAConvert.ToNullableGuid(alkalmazottData.Tables[0].Rows[0]["EmailGuid"]);
var tavolletOka = hrHelper.GetTavolletOkaDictionaryItemName(co.TavolletOkaId);
var helper = new UzenetekHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
if (co.StatuszId == 0 && string.IsNullOrWhiteSpace(co.HianypotlasSzoveg) && !string.IsNullOrWhiteSpace(vezetoEmailCim))
{
helper.EmailKuldes(
string.Format(EmailResource.TavolletIgenylesFeladasContent, vezetoNev, alkalmazottNev, tavolletOka, dateString),
EmailResource.TavolletIgenylesFeladasSubject + dateString, vezetoEmailCim, vezetoEmailGuid);
}
else if (co.StatuszId == (int)TavolletStatuszEnum.Fuggo && string.IsNullOrWhiteSpace(co.HianypotlasSzoveg) && !string.IsNullOrWhiteSpace(vezetoEmailCim))
{
helper.EmailKuldes(
string.Format(EmailResource.TavolletIgenylesModositasContent, vezetoNev, alkalmazottNev, tavolletOka, dateString),
EmailResource.TavolletIgenylesModositasSubject + dateString, vezetoEmailCim, vezetoEmailGuid);
}
else if (co.StatuszId == (int)TavolletStatuszEnum.Fuggo && !string.IsNullOrWhiteSpace(co.HianypotlasSzoveg) && !string.IsNullOrWhiteSpace(vezetoEmailCim))
{
helper.EmailKuldes(
string.Format(EmailResource.TavolletIgenylesHPUjraKuldesContent, vezetoNev, alkalmazottNev, tavolletOka, dateString, co.HianypotlasSzoveg),
EmailResource.TavolletIgenylesHPUjraKuldesSubject + dateString, vezetoEmailCim, vezetoEmailGuid);
}
else if (co.StatuszId == (int)TavolletStatuszEnum.HianypotlasraVisszakuldve)
{
if (!string.IsNullOrWhiteSpace(alkalmazottEmail))
{
helper.EmailKuldes(
string.Format(EmailResource.TavolletIgenylesHPKuldesContent, alkalmazottNev, alkalmazottNev, tavolletOka, dateString, co.HianypotlasSzoveg),
EmailResource.TavolletIgenylesHPKuldesSubject + dateString, alkalmazottEmail, alkalmazottEmailGuid);
}
if (!string.IsNullOrWhiteSpace(vezetoEmailCim) && (vezetoEmailCim != alkalmazottEmail))
{
helper.EmailKuldes(
string.Format(EmailResource.TavolletIgenylesHPKuldesContent, vezetoNev, alkalmazottNev, tavolletOka, dateString, co.HianypotlasSzoveg),
EmailResource.TavolletIgenylesHPKuldesSubject + dateString, vezetoEmailCim, vezetoEmailGuid);
}
if (eredetiRogzitoGuid != null)
{
var rogzitoData = hrHelper.GetAlkalmazottEmailDataByGuid(eredetiRogzitoGuid.Value);
if (rogzitoData != null && !string.IsNullOrWhiteSpace(rogzitoData.EmailCim) && (rogzitoData.EmailCim != alkalmazottEmail) && (rogzitoData.EmailCim != vezetoEmailCim))
{
helper.EmailKuldes(string.Format(EmailResource.TavolletIgenylesHPKuldesContent, rogzitoData.AlkalmazottNev, alkalmazottNev, tavolletOka, dateString), EmailResource.TavolletIgenylesHPKuldesSubject + dateString, rogzitoData.EmailCim, rogzitoData.EmailGuid);
}
}
}
}
}
}
public void SendEmail(TavolletAlkalmazottResponseData tavolletAlkalmazottData, int statuszId, Guid? rogzitoGuid = null)
{
var hrHelper = new HRModulHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var helper = new UzenetekHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var emailData = hrHelper.GetAlkalmazottEmailDataByGuid(tavolletAlkalmazottData.AlkalmazottGuid);
var alkalmazottEmailCim = emailData?.EmailCim;
var alkalmazottEmailGuid = emailData?.EmailGuid;
var alkalmazottNeve = tavolletAlkalmazottData.AlkalmazottNev;
var tipus = tavolletAlkalmazottData.TavolletTipusId.GetDisplayName<TavolletTipusEnum>(ClaimData.SelectedTanevID.Value);
var idoszak = string.Format("{0} - {1}", tavolletAlkalmazottData.TavolletKezdete.ToString("yyyy-MM-dd"), tavolletAlkalmazottData.TavolletVege.ToString("yyyy-MM-dd"));
List<int> elfogadasStatuszok = new List<int>
{
TavolletStatuszEnum.Elfogadva_atadva_tankeruletnek.AsInt(),
TavolletStatuszEnum.Engedelyezve_atadva_tankeruletnek.AsInt(),
TavolletStatuszEnum.Tudomasul_veve_atadva_tankeruletnek.AsInt()
};
if (elfogadasStatuszok.Contains(statuszId) && !string.IsNullOrWhiteSpace(alkalmazottEmailCim))
{
helper.EmailKuldes(string.Format(
@"Tisztelt {0}!
<br /><br />
A KRÉTA rendszerben az alábbi távollét igény került elfogadásra:
<br /><br />
Távollétet igénylő alkalmazott: {0}<br />
Távollét jogcíme: {1}<br />
Távollét időtartama: {2}
<br /><br />
", alkalmazottNeve, tipus, idoszak), "Elfogadott távollét igénylés - " + idoszak, alkalmazottEmailCim, alkalmazottEmailGuid);
}
else if (statuszId == (int)TavolletStatuszEnum.Elutasitva)
{
if (!string.IsNullOrWhiteSpace(alkalmazottEmailCim))
{
helper.EmailKuldes(string.Format(EmailResource.TavolletIgenylesElutasitasContent, alkalmazottNeve, alkalmazottNeve, tipus, idoszak), string.Format(EmailResource.TavolletIgenylesElutasitasSubject, idoszak), alkalmazottEmailCim, alkalmazottEmailGuid);
}
var alkHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var intezmenyVezetoData = alkHelper.GetAlkalmazottNeveEsEmailCime((int)EmailTipusEnum.Hivatalos,
new List<int> { (int)VezetoiOraszamokTipusEnum.Intezmenyvezeto, (int)VezetoiOraszamokTipusEnum.igazgato }, null);
string vezetoEmailCim = null;
if (intezmenyVezetoData.Tables[0].Rows.Count > 0)
{
var vezetoNev = intezmenyVezetoData.Tables[0].Rows[0].Field<string>("Nev");
vezetoEmailCim = intezmenyVezetoData.Tables[0].Rows[0].Field<string>("EmailCim");
var vezetoEmailGuid = SDAConvert.ToNullableGuid(intezmenyVezetoData.Tables[0].Rows[0]["EmailGuid"]);
if (!string.IsNullOrWhiteSpace(vezetoEmailCim) && (vezetoEmailCim != alkalmazottEmailCim))
{
helper.EmailKuldes(string.Format(EmailResource.TavolletIgenylesElutasitasContent, vezetoNev, alkalmazottNeve, tipus, idoszak), string.Format(EmailResource.TavolletIgenylesElutasitasSubject, idoszak), vezetoEmailCim, vezetoEmailGuid);
}
}
if (rogzitoGuid != null)
{
var rogzitoData = hrHelper.GetAlkalmazottEmailDataByGuid(rogzitoGuid.Value);
if (rogzitoData != null && !string.IsNullOrWhiteSpace(rogzitoData.EmailCim) && (rogzitoData.EmailCim != alkalmazottEmailCim) && (rogzitoData.EmailCim != vezetoEmailCim))
{
helper.EmailKuldes(string.Format(EmailResource.TavolletIgenylesElutasitasContent, rogzitoData.AlkalmazottNev, alkalmazottNeve, tipus, idoszak), string.Format(EmailResource.TavolletIgenylesElutasitasSubject, idoszak), rogzitoData.EmailCim, rogzitoData.EmailGuid);
}
}
}
}
public bool HasSZTSZKOD(int userId)
{
return new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).HasSZTSZKOD(userId);
}
public string GetSZTSZKOD(int felhasznaloId)
{
return new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSZTSZKOD(felhasznaloId);
}
public bool HasValidMunkaviszony(int userId)
{
return new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).HasValidMunkaviszony(userId);
}
public TavolletjelentoListaResponseModel GetTavolletjelentoLista(TavolletjelentoSearchModel model, HRModulHelper helper)
{
var isLeader = helper.IsLeader();
if (!model.SrcKezeles || (!isLeader && ClaimData.FelhasznaloSzerepkor != SzerepkorTipusEnum.Adminisztrator && !helper.IsHrKezelo()))
{
model.SrcAlkalmazott = new int[] { ClaimData.FelhasznaloId };
}
var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevCo = tanev.GetTanevInfo();
var kozpontiKreta = (KozpontiKretaConfiguration)ConfigurationManager.GetSection("KozpontiKretaConfig");
var client = new TavolletClient(kozpontiKreta.KgrUrl, kozpontiKreta.ApiKey);
return client.GetTavolletek(model.ConvertToTavolletjelentoListaRequestModel(tanevCo.Sorszam));
}
}
public class TavolletjelentoMegjegyzesItem
{
public string CommentContent { get; set; }
public string CommentTypeClass { get; set; }
public TavolletjelentoMegjegyzesItem(string megjegyzes, string type)
{
CommentContent = megjegyzes;
CommentTypeClass = type;
}
}
public static class DateTimeExtensions
{
public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek)
{
int diff = (7 + (dt.DayOfWeek - startOfWeek)) % 7;
return dt.AddDays(-1 * diff).Date;
}
}
}

View file

@ -0,0 +1,32 @@
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletAlkalmazottGridModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(HRModulResource.Alkalmazott), ResourceType = typeof(HRModulResource))]
public string AlkalmazottNev { get; set; }
[Display(Name = nameof(HRModulResource.SzTSzAzonosito), ResourceType = typeof(HRModulResource))]
public string SzTSzAzonosito { get; set; }
[Display(Name = nameof(HRModulResource.FoIntezmenyeE), ResourceType = typeof(HRModulResource))]
public string IsFointezmenyeE_BNAME { get; set; }
[Display(Name = nameof(HRModulResource.EvesSzabadsagKeret), ResourceType = typeof(HRModulResource))]
public int SzabadsagKeret { get; set; }
[Display(Name = nameof(HRModulResource.IgenybeVehetoTavolletek), ResourceType = typeof(HRModulResource))]
public int IgenybeVehetoTavolletek { get; set; }
[Display(Name = nameof(HRModulResource.IgenybeVettTavolletek), ResourceType = typeof(HRModulResource))]
public int IgenybeVettTavolletek { get; set; }
[Display(Name = nameof(HRModulResource.FuggobenLevoTavolletek), ResourceType = typeof(HRModulResource))]
public int FuggobenLevoTavolletek { get; set; }
}
}

View file

@ -0,0 +1,33 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletListaGridModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(HRModulResource.Alkalmazott), ResourceType = typeof(HRModulResource))]
public string AlkalmazottNev { get; set; }
[Display(Name = nameof(HRModulResource.SzTSzAzonosito), ResourceType = typeof(HRModulResource))]
public string SzTSzAzonosito { get; set; }
[Display(Name = nameof(HRModulResource.TavolletKezdet), ResourceType = typeof(HRModulResource))]
public DateTime IdoszakKezdet { get; set; }
[Display(Name = nameof(HRModulResource.TavolletVeg), ResourceType = typeof(HRModulResource))]
public DateTime IdoszakVeg { get; set; }
[Display(Name = nameof(HRModulResource.TavolletOka), ResourceType = typeof(HRModulResource))]
public string TipusId_DNAME { get; set; }
[Display(Name = nameof(HRModulResource.EvesSzabadsagKeret), ResourceType = typeof(HRModulResource))]
public int EvesSzabadsagKeret { get; set; }
[Display(Name = nameof(HRModulResource.TavolletIdotartamNap), ResourceType = typeof(HRModulResource))]
public int TavolletIdotartamNap { get; set; }
}
}

View file

@ -0,0 +1,6 @@
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletListaSearchModel : TavolletSearchBaseModel
{
}
}

View file

@ -0,0 +1,196 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core.SAP.CommunicationModels;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Helpers;
using Kreta.Web.Security;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletSearchBaseModel
{
public bool SrcKezeles { get; set; }
public bool SrcIsAdminCall { get; set; }
public bool SrcIsLeaderCall { get; set; }
public int SzabadsagKeret { get; set; }
public string SzabadsagKeretDisplayValue => this.SzabadsagKeret <= 0 ? "-" : this.SzabadsagKeret.ToString();
public int IgenybeVehetoTavolletek { get; set; }
public string IgenybeVehetoTavolletekDisplayValue => this.IgenybeVehetoTavolletek <= 0 ? "-" : this.IgenybeVehetoTavolletek.ToString();
public int IgenybeVettTavolletek { get; set; }
public int FuggobenLevoTavolletek { get; set; }
public string SzTSzAzonosito { get; set; }
public string UtolsoSzinkronDisplayValue => UtolsoSzinkron.HasValue ? SDAFormat.GetShortDateFormat(UtolsoSzinkron.Value) : "-";
public DateTime? UtolsoSzinkron { get; set; }
public bool IsTavolletFoIntezmenye { get; set; }
[Display(Name = nameof(HRModulResource.TavolletOka), ResourceType = typeof(HRModulResource))]
public int? SrcTipus { get; set; }
[Display(Name = nameof(HRModulResource.AlkalmazottAk), ResourceType = typeof(HRModulResource))]
public int[] SrcAlkalmazott { get; set; }
public string[] SzTSzArray { get; set; }
public int? AlkalmazottFilterId { get; set; }
[Display(Name = nameof(HRModulResource.Statusz), ResourceType = typeof(HRModulResource))]
public int? SrcStatusz { get; set; }
[Display(Name = nameof(HRModulResource.TavolletRogzitesEve), ResourceType = typeof(HRModulResource))]
public int[] SrcNaptariEv { get; set; }
[Display(Name = nameof(HRModulResource.TavolletKezdet), ResourceType = typeof(HRModulResource))]
public DateTime? SrcIdoszakKezdet { get; set; }
public DateTime MinimumSrcIdoszakKezdet { get; set; }
[Display(Name = nameof(HRModulResource.TavolletVeg), ResourceType = typeof(HRModulResource))]
public DateTime? SrcIdoszakVeg { get; set; }
public DateTime MinimumSrcIdoszakVeg { get; set; }
[Display(Name = nameof(HRModulResource.RogzitesDatuma), ResourceType = typeof(HRModulResource))]
public DateTime? SrcRogzitesDatumaTol { get; set; }
[Display(Name = nameof(HRModulResource.RogzitesDatuma), ResourceType = typeof(HRModulResource))]
public DateTime? SrcRogzitesDatumaIg { get; set; }
[Display(Name = nameof(HRModulResource.MelleklettelRendelkezik), ResourceType = typeof(HRModulResource))]
public int? SrcMelleklettelRendelkezik { get; set; }
[Display(Name = nameof(HRModulResource.FoIntezmenyeE), ResourceType = typeof(HRModulResource))]
public int? SrcFoIntezmenyeE { get; set; }
[Display(Name = nameof(HRModulResource.ToroltekMegjelenitese), ResourceType = typeof(HRModulResource))]
public int? SrcToroltekMegjelenitese { get; set; }
internal TavolletSearchCo ConvertToCo()
{
return ConvertToCo(ClaimData.IntezmenyId, ClaimData.IntezmenyAzonosito, ClaimData.SelectedTanevID.Value);
}
internal TavolletSearchCo ConvertToCo(int intezmenyId, string intezmenyAzonosito, int tanevId)
{
return new TavolletSearchCo()
{
NaptariEv = (SrcNaptariEv != null && SrcNaptariEv.Length > 0) ? SrcNaptariEv : new int[] { DateTime.Now.Year },
HivoAlkalmazottId = ClaimData.FelhasznaloId,
TanevId = tanevId,
IntezmenyId = intezmenyId,
IntezmenyAzonosito = intezmenyAzonosito,
TipusId = SrcTipus,
AlkalmazottIdArray = SrcAlkalmazott,
StatuszId = SrcStatusz,
TavolletKezdete = SrcIdoszakKezdet,
TavolletVege = SrcIdoszakVeg,
RogzitesDatumaTol = SrcRogzitesDatumaTol,
RogzitesDatumaIg = SrcRogzitesDatumaIg.HasValue ? SrcRogzitesDatumaIg.Value.Date.AddDays(1).AddSeconds(-1) : SrcRogzitesDatumaIg,
MelleklettelRendelkezik = (!SrcMelleklettelRendelkezik.HasValue ? (bool?)null : SrcMelleklettelRendelkezik.Value == (int)IgenNemEnum.Igen),
FoIntezmenyeE = (!SrcFoIntezmenyeE.HasValue ? (bool?)null : SrcFoIntezmenyeE.Value == (int)IgenNemEnum.Igen),
ToroltekMegjelenitese = SrcToroltekMegjelenitese.HasValue && SrcToroltekMegjelenitese.Value == (int)IgenNemEnum.Igen,
};
}
internal TavolletjelentoListaRequestModel ConvertToTavolletjelentoListaRequestModel(int tanevId)
{
if (SrcAlkalmazott?.Length > 0)
{
var aIds = SrcAlkalmazott.ToList();
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var aa = alkalmazottHelper.GetAlkalmazottIDTavolletAlkalmazott(aIds);
var szTSzArray = new List<string>();
foreach (var alkalmazott in aa)
{
var sztszKod = alkalmazott.Value.AlkalmazottSzTSz;
if (!string.IsNullOrWhiteSpace(sztszKod))
{
szTSzArray.Add(sztszKod);
}
}
SzTSzArray = szTSzArray.ToArray();
}
return new TavolletjelentoListaRequestModel
{
NaptariEv = ((SrcNaptariEv != null) && (SrcNaptariEv.Length > 0)) ? SrcNaptariEv : new int[] { DateTime.Now.Year },
HivoAlkalmazottId = ClaimData.FelhasznaloId,
TanevId = tanevId,
KretaIntezmenyId = ClaimData.IntezmenyId,
KretaIntezmenyAzonosito = ClaimData.IntezmenyAzonosito,
TavolletTipusId = SrcTipus,
AlkalmazottIdArray = SrcAlkalmazott,
SzTSzArray = SzTSzArray,
TavolletStatuszId = SrcStatusz,
IdoszakKezdet = SrcIdoszakKezdet,
IdoszakVeg = SrcIdoszakVeg,
RogzitesDatumaTol = SrcRogzitesDatumaTol,
RogzitesDatumaIg = SrcRogzitesDatumaIg.HasValue ? SrcRogzitesDatumaIg.Value.Date.AddDays(1).AddSeconds(-1) : SrcRogzitesDatumaIg,
IsMelleklettelRendelkezik = (!SrcMelleklettelRendelkezik.HasValue ? (bool?)null : SrcMelleklettelRendelkezik.Value == (int)IgenNemEnum.Igen),
IsFoIntezmenyeE = SrcKezeles ? (SrcFoIntezmenyeE.HasValue ? SrcFoIntezmenyeE.Value == IgenNemEnum.Igen.AsInt() : (bool?)null) : IsTavolletFoIntezmenye,
IsToroltekMegjelenitese = SrcToroltekMegjelenitese.HasValue && SrcToroltekMegjelenitese.Value == (int)IgenNemEnum.Igen,
};
}
internal TavolletAdatokRequestModel ConvertToTavolletAdatokRequestModel(int tanevId, int? felhasznaloId = null)
{
var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (!ClaimData.IsDefaultAdminUser && felhasznaloId.HasValue)
{
var aa = alkalmazottHelper.GetAlkalmazottIDTavolletAlkalmazott(new List<int> { felhasznaloId.Value });
foreach (var alkalmazott in aa)
{
SzTSzArray = new string[] { alkalmazott.Value.AlkalmazottSzTSz };
}
}
else
{
if (SrcAlkalmazott?.Length > 0)
{
var aIds = SrcAlkalmazott.ToList();
var aa = alkalmazottHelper.GetAlkalmazottIDTavolletAlkalmazott(aIds);
var szTSzArray = new List<string>();
foreach (var alkalmazott in aa)
{
var sztszKod = alkalmazott.Value.AlkalmazottSzTSz;
if (!string.IsNullOrWhiteSpace(sztszKod))
{
szTSzArray.Add(sztszKod);
}
}
SzTSzArray = szTSzArray.ToArray();
}
else
{
SzTSzArray = null;
}
}
return new TavolletAdatokRequestModel
{
NaptariEv = ((SrcNaptariEv != null) && (SrcNaptariEv.Length > 0)) ? SrcNaptariEv : new int[] { DateTime.Now.Year },
TanevId = tanevId,
KretaIntezmenyId = ClaimData.IntezmenyId,
KretaIntezmenyAzonosito = ClaimData.IntezmenyAzonosito,
AlkalmazottIdArray = SrcAlkalmazott,
SzTSzArray = SzTSzArray,
IsFoIntezmeny = SrcFoIntezmenyeE.HasValue ? SrcFoIntezmenyeE.Value == IgenNemEnum.Igen.AsInt() : (bool?)null,
};
}
}
}

View file

@ -0,0 +1,11 @@
using System;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletjelentoDateModel
{
public DateTime? TavolletKezdet { get; set; }
public DateTime? TavolletVeg { get; set; }
}
}

View file

@ -0,0 +1,8 @@
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletjelentoDeleteModel
{
public int Id { get; set; }
public string Note { get; set; }
}
}

View file

@ -0,0 +1,19 @@
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletjelentoDokGridModel : IKretaIdentity
{
public string ID { get; set; }
[Display(Name = nameof(HRModulResource.DokumentumNev), ResourceType = typeof(HRModulResource))]
public string DokumentumNev { get; set; }
[Display(Name = nameof(HRModulResource.Iktatoszam), ResourceType = typeof(HRModulResource))]
public string Iktatoszam { get; set; }
public string IsDokumentum { get; set; }
}
}

View file

@ -0,0 +1,10 @@
using Kreta.Enums;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletjelentoElfogadasModel
{
public int ID { get; set; }
public TavolletTipusEnum TipusId { get; set; }
}
}

View file

@ -0,0 +1,11 @@
using System;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletjelentoElutasitasModel
{
public int ID { get; set; }
public Guid RogzitoGuid { get; set; }
}
}

View file

@ -0,0 +1,55 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Resources;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletjelentoGridModel : IKretaIdentity
{
public string ID { get; set; }
public int TipusId { get; set; }
public string StatuszId { get; set; }
public string AlkalmazottId { get; set; }
public string AlkalmazottGuid { get; set; }
public string RogzitoId { get; set; }
public string RogzitoGuid { get; set; }
public bool Torolt_BOOL { get; set; }
public string ToroltStatusz { get { return HRModulResource.Torolt; } }
public bool IsTorolheto { get; set; }
[Display(Name = nameof(HRModulResource.Alkalmazott), ResourceType = typeof(HRModulResource))]
public string AlkalmazottNev { get; set; }
[Display(Name = nameof(HRModulResource.SzTSzAzonosito), ResourceType = typeof(HRModulResource))]
public string SzTSzAzonosito { get; set; }
[Display(Name = nameof(HRModulResource.TavolletKezdet), ResourceType = typeof(HRModulResource))]
public DateTime IdoszakKezdet { get; set; }
[Display(Name = nameof(HRModulResource.TavolletVeg), ResourceType = typeof(HRModulResource))]
public DateTime IdoszakVeg { get; set; }
[Display(Name = nameof(HRModulResource.MelleklettelRendelkezik), ResourceType = typeof(HRModulResource))]
public bool HasMelleklet_BOOL { get; set; }
[Display(Name = nameof(HRModulResource.MelleklettelRendelkezik), ResourceType = typeof(HRModulResource))]
public string HasMelleklet_BNAME { get; set; }
[Display(Name = nameof(HRModulResource.RogzitesDatuma), ResourceType = typeof(HRModulResource))]
public DateTime RogzitesDatuma { get; set; }
[Display(Name = nameof(HRModulResource.TavolletIdotartamNap), ResourceType = typeof(HRModulResource))]
public int? MunkanapSzam { get; set; }
[Display(Name = nameof(HRModulResource.HatralevoSzabadnapokSzama), ResourceType = typeof(HRModulResource))]
public int? HatralevoNapokSzama { get; set; }
[Display(Name = nameof(HRModulResource.Statusz), ResourceType = typeof(HRModulResource))]
public string StatuszId_DNAME { get; set; }
[Display(Name = nameof(HRModulResource.TavolletOka), ResourceType = typeof(HRModulResource))]
public string TipusId_DNAME { get; set; }
}
}

View file

@ -0,0 +1,74 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
using Kreta.Web.Areas.HRModul.Logic;
using Kreta.Web.Areas.UgyfelSzolgalat.Models;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletjelentoModel
{
public int? ID { get; set; }
public bool IsKezeles { get; set; }
public bool IsAdminCall { get; set; }
public bool IsLeaderCall { get; set; }
public bool IsHianypotlas { get; set; }
public bool IsNemRogzitoIntezmeny { get; set; }
public int StatuszId { get; set; }
public int RogzitoId { get; set; }
public Guid? EredetiRogzitoGuid { get; set; }
public DateTime MinKezdet { get; set; }
public WorkflowMuveletEnum Muvelet { get; set; }
public TavolletjelentoViewTypeEnum ViewType { get; set; }
public List<CsatolmanyModel> FilesArray { get; set; }
[Required(ErrorMessageResourceName = nameof(HRModulResource.TavolletOkaKotelezo), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.TavolletOka), ResourceType = typeof(HRModulResource))]
public int? TavolletOka { get; set; }
[Required(ErrorMessageResourceName = nameof(HRModulResource.AlkalmazottListKotelezo), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.AlkalmazottAk), ResourceType = typeof(HRModulResource))]
public string[] AlkalmazottList { get; set; }
public int? AlkalmazottFilterId { get; set; }
[Display(Name = nameof(HRModulResource.AlkalmazottAk), ResourceType = typeof(HRModulResource))]
public string AlkalmazottNeve { get; set; }
[Required(ErrorMessageResourceName = nameof(HRModulResource.TavolletIdotartamNapKotelezo), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.TavolletIdotartamNap), ResourceType = typeof(HRModulResource))]
public int? TavolletIdotartamNap { get; set; }
[StringLength(1000, ErrorMessageResourceName = nameof(HRModulResource.HianypotlasSzovegMaxKarakter), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.HianypotlasSzoveg), ResourceType = typeof(HRModulResource))]
public string HianypotlasSzoveg { get; set; }
public string KozpontiHianypotlasSzoveg { get; set; }
[StringLength(255, ErrorMessageResourceName = nameof(HRModulResource.MegjegyzesMaxKarakter), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.Megjegyzes), ResourceType = typeof(HRModulResource))]
public string Megjegyzes { get; set; }
public int MegjegyzesMezoMaxHossza { get; set; }
[StringLength(255, ErrorMessageResourceName = nameof(HRModulResource.MegjegyzesMaxKarakter), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.UjMegjegyzes), ResourceType = typeof(HRModulResource))]
public string MegjegyzesMezo { get; set; }
[Display(Name = nameof(HRModulResource.Megjegyzes), ResourceType = typeof(HRModulResource))]
public IList<TavolletjelentoMegjegyzesItem> OsszefuzottMegjegyzesek { get; set; }
[Required(ErrorMessageResourceName = nameof(HRModulResource.TavolletKezdetKotelezo), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.TavolletKezdet), ResourceType = typeof(HRModulResource))]
public DateTime? TavolletKezdet { get; set; }
[Required(ErrorMessageResourceName = nameof(HRModulResource.TavolletVegKotelezo), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.TavolletVeg), ResourceType = typeof(HRModulResource))]
public DateTime? TavolletVeg { get; set; }
[Display(Name = nameof(HRModulResource.Statusz), ResourceType = typeof(HRModulResource))]
public string StatuszNeve { get; set; }
[Display(Name = nameof(HRModulResource.RogzitoNeve), ResourceType = typeof(HRModulResource))]
public string RogzitoNeve { get; set; }
}
}

View file

@ -0,0 +1,55 @@
using System.Collections.Generic;
using Kreta.Enums;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletjelentoSearchModel : TavolletSearchBaseModel
{
public bool SrcTavolletRogzitheto { get; set; }
/// <summary>
/// Azoknak a TavolletTipus-oknak a listája, amiknél 'Engedélyezem' szöveg fog megjelenni
/// </summary>
public IList<int> EngedelyezList
{
get
{
return new List<int>()
{
(int)TavolletTipusEnum.Szabadsag
,(int)TavolletTipusEnum.Apat_megilleto_potszabadsag_gyermeke_szuletese_eseten
,(int)TavolletTipusEnum.Tanulmanyi_munkaido_kedvezmeny
,(int)TavolletTipusEnum.tanulmanyi_szabadsag_illetmeny_szamfejtessel
,(int)TavolletTipusEnum.Fizetes_nelkuli_szabadsag_kerelemre_30_napot_meghalado_tartamu_biztositas_szunetel
,(int)TavolletTipusEnum.Fizetes_nelkuli_szabadsag_kerelemre_30_napot_nem_meghalado_tartamu_biztositas_szunetel
,(int)TavolletTipusEnum.Egyeb_hianyzas_dijazassal
,(int)TavolletTipusEnum.Egyeb_hianyzas_dijazas_nelkul
,(int)TavolletTipusEnum.egyeb_hianyzas_dijazas_nelkul_ora
,(int)TavolletTipusEnum.Mentesites_a_munkavegzes_alol_felmentesi_felmondasi_ido_tartamara
,(int)TavolletTipusEnum.Munkaszuneti_nap_miatti_tavollet_ora_vagy_teljesitmenyberezes_eseten
,(int)TavolletTipusEnum.Fizetes_nelkuli_szabadsag_biztositas_nem_szunetel
,(int)TavolletTipusEnum.Onkentes_tartalekos_katonai_szolgalatteljesites
,(int)TavolletTipusEnum.Jogviszony_folyositas
,(int)TavolletTipusEnum.Kirendeles_a_fogado_munkaltato_fizet
,(int)TavolletTipusEnum.Munkaltato_engedelye_alapjan
,(int)TavolletTipusEnum.munkaltato_engedelye_alapjan_ora
,(int)TavolletTipusEnum.Allasido_dijazassal
,(int)TavolletTipusEnum.allasido_dijazassal_ora
,(int)TavolletTipusEnum.Felfuggesztes_jogviszonyt_megszunteto_hatarozat_kezbesitese
,(int)TavolletTipusEnum.Munkaszuneti_nap_miatti_tavollet
,(int)TavolletTipusEnum.Kotelezettsegszeges_korulmenyei_kivizsgalasanak_idotartamara_mentesites_munkavegzes_alol_max_30_nap_
,(int)TavolletTipusEnum.kotelezettsegszeges_korulmenyei_kivizsgalasanak_idotartamara_mentesites_munkavegzes_alol_max_30_nap_ora
,(int)TavolletTipusEnum.Allasido_dijazas_nelkul
,(int)TavolletTipusEnum.allasido_dijazas_nelkul_ora
,(int)TavolletTipusEnum.nagyszulot_megilleto_potszabadsag
,(int)TavolletTipusEnum.elso_hazassag_utani_potszabadsag
,(int)TavolletTipusEnum.igazolatlan_tortnapi
,(int)TavolletTipusEnum.veszelyhelyzet_miatti_fizetes_nelkuli_szabadsag_biztositas_szunetel
,(int)TavolletTipusEnum.orokbefogadas_elokeszitese_celjabol
,(int)TavolletTipusEnum.vedooltas_hianya_miatti_fizetes_nelkuli_szabadsag
,(int)TavolletTipusEnum.szuletesnapi_szabadsag
};
}
}
}
}

View file

@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.Resources;
namespace Kreta.Web.Areas.HRModul.Models
{
public class TavolletjelentoTobbesModel
{
public bool ElteroSorok { get; set; }
public bool FelhasznaloTobbszorKivalasztva { get; set; }
public string TavolletIDArrayString { get; set; }
public Dictionary<int, AlkalmazottAdat> TavolletekDictionary { get; set; }
public string[] TavolletIdArray => TavolletIDArrayString?.Split(',');
public string TavolletAlkalmazottIdArrayString { get; set; }
public string[] TavolletAlkalmazottIdArray => this.TavolletAlkalmazottIdArrayString?.Split(',');
[Display(Name = nameof(HRModulResource.KivalasztottAlkalmazottak), ResourceType = typeof(HRModulResource))]
public string TavolletAlkalmazottNevArray { get; set; }
[Required(ErrorMessageResourceName = nameof(HRModulResource.TavolletOkaKotelezo), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.TavolletOka), ResourceType = typeof(HRModulResource))]
public int? TavolletOka { get; set; }
[Required(ErrorMessageResourceName = nameof(HRModulResource.TavolletIdotartamNapKotelezo), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.TavolletIdotartamNap), ResourceType = typeof(HRModulResource))]
public int? TavolletIdotartamNap { get; set; }
[StringLength(255, ErrorMessageResourceName = nameof(HRModulResource.MegjegyzesMax255Karakter), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.Megjegyzes), ResourceType = typeof(HRModulResource))]
public string MegjegyzesMezo { get; set; }
[Required(ErrorMessageResourceName = nameof(HRModulResource.TavolletKezdetKotelezo), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.TavolletKezdet), ResourceType = typeof(HRModulResource))]
public DateTime? TavolletKezdet { get; set; }
[Required(ErrorMessageResourceName = nameof(HRModulResource.TavolletVegKotelezo), ErrorMessageResourceType = typeof(HRModulResource))]
[Display(Name = nameof(HRModulResource.TavolletVeg), ResourceType = typeof(HRModulResource))]
public DateTime? TavolletVeg { get; set; }
}
public class AlkalmazottAdat
{
public string AlkalmazottSzTSz { get; set; }
public string RogzitoFunkcioTerulet { get; set; }
}
}

View file

@ -0,0 +1,38 @@
@using Kreta.Web.Areas.HRModul.Models;
@using Kreta.Web.Security;
@using Kreta.Resources;
@model TavolletSearchBaseModel
@{
var keretWarnClass = "";
if (Model.SzabadsagKeret < Model.IgenybeVettTavolletek + Model.FuggobenLevoTavolletek) { keretWarnClass = "keretWarn"; }
}
@if (!ClaimData.IsDefaultAdminUser)
{
<div class="parent">
<div class="child keretHead">
<span>
@HRModulResource.SajatAdatok:
<span class="kretaLabelTooltip kretaLabelTooltipForLabel @keretWarnClass">
<img class="kretaLabelTooltipImg" />
<span class="kretaLabelTooltipText">@HRModulResource.WarnKeretTullepes</span>
&nbsp;
</span>
</span>
<label class="windowInputLabel">@System.DateTime.Now.Year</label>
</div>
<div class="child"><span>@HRModulResource.EvesSzabadsagKeret:</span><label class="windowInputLabel @keretWarnClass">@Model.SzabadsagKeretDisplayValue nap</label></div>
<div class="child"><span>@HRModulResource.IgenybeVehetoSzabadsagnapokSzama:
<span class="kretaLabelTooltip kretaLabelTooltipForLabel">
<img class="kretaLabelTooltipImg" />
<span class="kretaLabelTooltipText">@HRModulResource.InfoFelhasznalhatoKeret</span>
</span>
</span><label class="windowInputLabel">@Model.IgenybeVehetoTavolletekDisplayValue nap</label></div>
<div class="child"><span>@HRModulResource.IgenybeVettSzabadsagnapokSzama:</span><label class="windowInputLabel @keretWarnClass">@Model.IgenybeVettTavolletek nap</label></div>
<div class="child"><span>@HRModulResource.FuggobenLevoNapokSzama:</span><label class="windowInputLabel @keretWarnClass">@Model.FuggobenLevoTavolletek nap</label></div>
<div class="child"><span>@HRModulResource.SzTSzAzonosito:</span><label class="windowInputLabel">@Model.SzTSzAzonosito</label></div>
<div class="child"><span>@HRModulResource.UtolsoSzinkron:</span><label class="windowInputLabel">@Model.UtolsoSzinkronDisplayValue</label></div>
</div>
}

View file

@ -0,0 +1,104 @@
@using Kreta.Web.Helpers.Grid;
@using Kreta.Web.Areas.HRModul.Models;
@using Kreta.BusinessLogic.Classes;
@using Kreta.Resources;
@model TavolletListaSearchModel
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
var isLeaderCallClass = "disabledItem";
if (Model.SrcIsLeaderCall || Model.SrcIsAdminCall) { isLeaderCallClass = ""; }
}
@section AddCss {
@Styles.Render("~/Content/HRModul")
}
@section AddSearchPanel {
@using (Html.SearchPanelSideBar("searchForm", "TavolletListaGrid"))
{
@Html.KretaMultiSelectFor(x => x.SrcNaptariEv, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperEnumApi", action = "GetTavolletjelentoNaptariEvekList" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.SrcTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperEnumApi", action = "GetTavolletjelentoTipusList" }), "Text", "Value").RenderSearchPanelSideBar()
<div class="@isLeaderCallClass">
@Html.KretaMultiSelectFor(x => x.SrcAlkalmazott, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetAllAlkalmazott", id = Model.AlkalmazottFilterId }), "Text", "Value").RenderSearchPanelSideBar()
</div>
@Html.KretaDatePickerFor(x => x.SrcIdoszakKezdet).Min(Model.MinimumSrcIdoszakKezdet).RenderSearchPanelSideBar()
@Html.KretaDatePickerFor(x => x.SrcIdoszakVeg).Min(Model.MinimumSrcIdoszakVeg).RenderSearchPanelSideBar()
}
}
@{
var grid = Html.KretaGrid<TavolletListaGridModel>
(
name: "TavolletListaGrid",
getUrl: new GridApiUrl("TavolletListaApi", "GetTavolletListaGrid", new Dictionary<string, string> { }),
dataParameterFunction: "searchForm",
allowScrolling: true,
sort: sort => sort.Add(m => m.AlkalmazottNev)
)
.Columns(columns =>
{
columns.Bound(c => c.TipusId_DNAME).Width("20%");
columns.Bound(c => c.AlkalmazottNev);
columns.Bound(c => c.SzTSzAzonosito).Width("10%");
columns.Bound(c => c.IdoszakKezdet).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]).Width("10%");
columns.Bound(c => c.IdoszakVeg).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]).Width("10%");
columns.Bound(c => c.TavolletIdotartamNap).Width("7%");
columns.Bound(c => c.EvesSzabadsagKeret);
})
.AutoBind(true)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn));
grid.FunctionCommand(Html, new List<FunctionCommand> { new FunctionCommand { Name = ImportExportCommonResource.Export, ClientAction = "TavolletlistaHelper.exportGrid" } });
}
<script type="text/javascript">
$(document).ready(function () {
$("input[name='SrcNaptariEv']").change(function () {
$("#SrcIdoszakKezdet").val("");
$("#SrcIdoszakVeg").val("");
});
$("#SrcIdoszakKezdet").change(function () {
$("input[name='SrcNaptariEv_input']").val("");
});
$("#SrcIdoszakVeg").change(function () {
$("input[name='SrcNaptariEv_input']").val("");
});
szerkesztesKikapcsolasa("input[name='SrcNaptariEv_input']");
szerkesztesKikapcsolasa("#SrcIdoszakKezdet");
szerkesztesKikapcsolasa("#SrcIdoszakVeg");
function szerkesztesKikapcsolasa(control) {
$(control).prop("readonly", true);
$(control).on("keydown", function (e) {
e.preventDefault();
});
}
});
var TavolletlistaHelper = (function () {
var tavolletlistaHelper = function () { };
var searchFormName = "searchForm";
var url = {
exportTavolletLista: "@Url.Action("Export", Constants.Controllers.TavolletLista, new { area = Constants.Areas.HRModul })",
}
tavolletlistaHelper.exportGrid = function () {
var data = KretaGridHelper.getSearchParametersWithoutInputNames(searchFormName);
AjaxHelper.DownloadFile(url.exportTavolletLista, data);
}
return tavolletlistaHelper;
})();
</script>
@Html.Partial("_InfoBar", Model)
<div>@(grid)</div>

View file

@ -0,0 +1,71 @@
@using Kreta.Web.Areas.HRModul.Models;
@using Kreta.Web.Helpers.Grid;
@using Kreta.Resources;
@model TavolletjelentoSearchModel
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}
@section AddSearchPanel {
@using (Html.SearchPanelSideBar("searchForm", "AlkalmazottakAdataiGrid"))
{
@Html.KretaMultiSelectFor(x => x.SrcAlkalmazott, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetAllAlkalmazott", id = Model.AlkalmazottFilterId }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.SrcFoIntezmenyeE, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" })).AutoBind(true).RenderSearchPanelSideBar()
}
}
@{
var functionCommands = new List<FunctionCommand>();
var grid = Html.KretaGrid<TavolletAlkalmazottGridModel>
(
name: "AlkalmazottakAdataiGrid",
getUrl: new GridApiUrl(Constants.ApiControllers.TavolletjelentoApi, "GetAlkalmazottakAdatai"),
dataParameterFunction: "searchForm",
allowScrolling: true,
sort: sort => sort.Add(m => m.AlkalmazottNev)
)
.Columns(columns =>
{
columns.Bound(c => c.AlkalmazottNev);
columns.Bound(c => c.SzTSzAzonosito);
columns.Bound(c => c.IsFointezmenyeE_BNAME);
columns.Bound(c => c.SzabadsagKeret);
columns.Bound(c => c.IgenybeVehetoTavolletek).HeaderTemplate(
@<text>
@(HRModulResource.IgenybeVehetoTavolletek):
<span class='kretaLabelTooltip kretaLabelTooltipForLabel'>
<img class='kretaLabelTooltipImg' />
<span class='kretaLabelTooltipText' style="position:fixed;">@(HRModulResource.InfoFelhasznalhatoKeret)</span>
</span>
</text>);
columns.Bound(c => c.IgenybeVettTavolletek);
columns.Bound(c => c.FuggobenLevoTavolletek);
})
.AutoBind(true)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn));
functionCommands.Add(new FunctionCommand { Name = ImportExportCommonResource.Export, ClientAction = "TavolletAlkalmazottHelper.exportGrid" });
grid.FunctionCommand(Html, functionCommands);
}
<div>@(grid)</div>
<script type="text/javascript">
var TavolletAlkalmazottHelper = (function () {
var tavolletAlkalmazottHelper = function () { };
var searchFormName = "searchForm";
var url = {
exportTavolletAlkalmazottLista: "@Url.Action("ExportAlkalmazottakAdatai", Constants.Controllers.Tavolletjelento, new { area = Constants.Areas.HRModul })",
}
tavolletAlkalmazottHelper.exportGrid = function () {
var data = KretaGridHelper.getSearchParametersWithoutInputNames(searchFormName);
AjaxHelper.DownloadFile(url.exportTavolletAlkalmazottLista, data);
}
return tavolletAlkalmazottHelper;
})();
</script>

View file

@ -0,0 +1,490 @@
@using Kreta.Web.Helpers.Grid;
@using Kreta.Web.Areas.HRModul.Models;
@using Kreta.Resources;
@using Kreta.BusinessLogic.Classes;
@using Kreta.Enums.ManualEnums;
@using Kreta.Web.Security;
@model TavolletjelentoSearchModel
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
var isLeaderCallClass = "disabledItem";
if (Model.SrcKezeles) { isLeaderCallClass = ""; }
}
@section AddCss {
@Styles.Render("~/Content/HRModul")
}
@section AddSearchPanel {
@using (Html.SearchPanelSideBar("searchForm", "TavolletjelentoGrid"))
{
@Html.HiddenFor(x => x.SrcKezeles)
@Html.HiddenFor(x => x.SrcFoIntezmenyeE)
@Html.HiddenFor(x => x.IsTavolletFoIntezmenye)
@Html.KretaMultiSelectFor(x => x.SrcNaptariEv, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperEnumApi", action = "GetTavolletjelentoNaptariEvekList" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.SrcTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperEnumApi", action = "GetTavolletjelentoTipusList" }), "Text", "Value").RenderSearchPanelSideBar()
<div class="@isLeaderCallClass">
@Html.KretaMultiSelectFor(x => x.SrcAlkalmazott, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetAllAlkalmazott", id = Model.AlkalmazottFilterId }), "Text", "Value").AutoBind(true).RenderSearchPanelSideBar()
</div>
@Html.KretaComboBoxFor(x => x.SrcStatusz, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperEnumApi", action = "GetTavolletjelentoStatuszList" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaDatePickerFor(x => x.SrcIdoszakKezdet).Min(Model.MinimumSrcIdoszakKezdet).RenderSearchPanelSideBar()
@Html.KretaDatePickerFor(x => x.SrcIdoszakVeg).Min(Model.MinimumSrcIdoszakVeg).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.SrcMelleklettelRendelkezik, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" })).RenderSearchPanelSideBar()
@Html.KretaRangeDatePickerSideBar(x => x.SrcRogzitesDatumaTol, x => x.SrcRogzitesDatumaIg)
@Html.KretaComboBoxFor(x => x.SrcToroltekMegjelenitese, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" }), "Text", "Value").AutoBind(true).RenderSearchPanelSideBar()
}
}
<script type="text/javascript">
var DetailGridHelper = (function () {
var detailGridHelper = function () { };
detailGridHelper.setRowEditing = function (rowData) {
var now = new Date();
var past = new Date();
past.setFullYear(past.getFullYear(), past.getMonth() - 1, 1);
if (CommonUtils.parseBool("@Model.IsTavolletFoIntezmenye") && !rowData.Torolt_BOOL
&& (((rowData.StatuszId == 7574 || rowData.StatuszId == 7577) && (rowData.AlkalmazottGuid === "@ClaimData.FelhasznaloGuid".toLowerCase() || rowData.RogzitoGuid === "@ClaimData.FelhasznaloGuid".toLowerCase() || CommonUtils.parseBool("@Model.SrcIsLeaderCall") || CommonUtils.parseBool("@Model.SrcIsAdminCall")))
|| (rowData.StatuszId == 7654 && CommonUtils.parseBool("@Model.SrcIsLeaderCall")))
&& ((now.getDate() < 6 && (rowData.IdoszakKezdet.getFullYear() * 100 + rowData.IdoszakKezdet.getMonth()) >= (past.getFullYear() * 100 + past.getMonth()))
|| (rowData.IdoszakKezdet.getFullYear() * 100 + rowData.IdoszakKezdet.getMonth()) >= (now.getFullYear() * 100 + now.getMonth()))
&& (CommonUtils.parseBool(@Model.SrcFoIntezmenyeE))) {
return true;
}
}
detailGridHelper.setDeleteRowEditing = function (rowData) {
var now = new Date();
var past = new Date();
past.setFullYear(past.getFullYear(), past.getMonth() - 1, 1);
if (CommonUtils.parseBool("@Model.IsTavolletFoIntezmenye") && rowData.IsTorolheto
&& ((now.getDate() < 6 && (rowData.IdoszakKezdet.getFullYear() * 100 + rowData.IdoszakKezdet.getMonth()) >= (past.getFullYear() * 100 + past.getMonth()))
|| (rowData.IdoszakKezdet.getFullYear() * 100 + rowData.IdoszakKezdet.getMonth()) >= (now.getFullYear() * 100 + now.getMonth()))
&& (CommonUtils.parseBool(@Model.SrcFoIntezmenyeE))) {
return true;
}
}
return detailGridHelper;
})();
</script>
@{
var functionCommands = new List<FunctionCommand>();
var multipleRowFunctions = new List<RowFunction>();
var grid = Html.KretaGrid<TavolletjelentoGridModel>
(
name: "TavolletjelentoGrid",
getUrl: new GridApiUrl("TavolletjelentoApi", "GetTavolletjelentoGrid", new Dictionary<string, string> { }),
dataParameterFunction: "searchForm",
allowScrolling: true,
allowSorting: true,
sort: sort => sort.Add(m => m.RogzitesDatuma).Descending()
)
.AutoBind(true);
if (Model.IsTavolletFoIntezmenye && Model.SrcKezeles && (Model.SrcIsAdminCall || Model.SrcIsLeaderCall))
{
grid.Columns(c => c.Template(t => t.ToString()).HeaderHtmlAttributes(new { @class = "tavolletjelentoGridColumnHeaderTh" }).Title(@"
<div class='gridHeaderCheckBox'><input type='checkbox' id='SelectedHeaderBox' class='k-checkbox'>
<label class='k-checkbox-label' for='SelectedHeaderBox'></label>
</div>
").ClientTemplate(@"
#if((StatuszId == 7574 || StatuszId == 7654) && !Torolt_BOOL) {#
<div class='gridCheckBox' data-inputparentgrid='TavolletjelentoGrid'>
<input type='checkbox' id='TavolletjelentoGrid_Selected_#=ID#' data-rowinputname='Selected' class='k-checkbox' value='false'>
<label class='k-checkbox-label' for='TavolletjelentoGrid_Selected_#=ID#'></label>
</div>
#}#
").Width("3%"));
}
grid.Columns(columns =>
{
columns.Bound(c => c.TipusId_DNAME);
columns.Bound(c => c.AlkalmazottNev).Width("10%");
columns.Bound(c => c.SzTSzAzonosito).Width("7%");
columns.Bound(c => c.IdoszakKezdet).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]).Width("6%");
columns.Bound(c => c.IdoszakVeg).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]).Width("6%");
columns.Bound(c => c.HasMelleklet_BNAME).ClientTemplate("#if(HasMelleklet_BOOL){#<b>#:HasMelleklet_BNAME#</b>#}else{# #:HasMelleklet_BNAME# #}#").Width("8%");
columns.Bound(c => c.RogzitesDatuma).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]).Width("6%");
columns.Bound(c => c.MunkanapSzam).Width("8%");
columns.Bound(c => c.HatralevoNapokSzama).ClientTemplate("# if(TipusId == 7606 || TipusId == 7610 || TipusId == 7609) { # #:HatralevoNapokSzama# # } else { # - # } #").Sortable(false).Width("8%");
columns.Bound(c => c.StatuszId_DNAME).ClientTemplate("#if(Torolt_BOOL){#<b>Törölt</b>#}else{##:StatuszId_DNAME##}#").Width("10%");
columns.Bound(c => c.RogzitoGuid).Hidden();
});
if (Model.IsTavolletFoIntezmenye && Model.SrcTavolletRogzitheto && (Model.SrcFoIntezmenyeE.HasValue && Model.SrcFoIntezmenyeE == 1))
{
functionCommands.Add(new FunctionCommand { Name = HRModulResource.UjTavolletRogzites, ClientAction = "TavolletjelentoHelper.openTavolletjelentoNewWindow" });
}
multipleRowFunctions.Add(new RowFunction { Name = CommonResource.Adatok, ClientAction = "TavolletjelentoHelper.openTavolletjelentoDetailWindow", IconEnum = GridRowFunctionIconEnum.Adatok, IsConditional = false });
multipleRowFunctions.Add(new RowFunction
{
Name = CommonResource.Modositas,
ClientAction = "TavolletjelentoHelper.openTavolletjelentoModifyWindow",
IconEnum = GridRowFunctionIconEnum.Modositas,
IsConditional = true,
IsMultipleConditionalColumn = true,
IsVisibleRowFunctionJsFunctionName = "DetailGridHelper.setRowEditing"
});
multipleRowFunctions.Add(new RowFunction
{
Name = CommonResource.Torles,
ClientAction = "TavolletjelentoHelper.deleteConfirmWindow",
IconEnum = GridRowFunctionIconEnum.Torles,
IsConditional = true,
IsMultipleConditionalColumn = true,
IsVisibleRowFunctionJsFunctionName = "DetailGridHelper.setDeleteRowEditing"
});
if (Model.IsTavolletFoIntezmenye && Model.SrcKezeles && (Model.SrcIsLeaderCall || Model.SrcIsAdminCall) && (Model.SrcFoIntezmenyeE.HasValue && Model.SrcFoIntezmenyeE == 1))
{
List<FunctionCommand> nestedFunctions = new List<FunctionCommand> { };
if (Model.SrcIsLeaderCall)
{
nestedFunctions.Add(new FunctionCommand { Name = HRModulResource.KijeloltekElfogadasa, ClientAction = "TavolletjelentoHelper.selectedTavolletElfogadas" });
nestedFunctions.Add(new FunctionCommand { Name = HRModulResource.KijeloltekElutasitasa, ClientAction = "TavolletjelentoHelper.selectedTavolletElutasitas" });
}
nestedFunctions.Add(new FunctionCommand { Name = HRModulResource.KijeloltekModositasa, ClientAction = "TavolletjelentoHelper.openTobbesTavolletUpdateModifyWindow" });
functionCommands.Add(new FunctionCommand { Name = "Kijelöltekre vonatkozó műveletek".ToUpper(), NestedCommands = nestedFunctions });
}
functionCommands.Add(new FunctionCommand { Name = ImportExportCommonResource.Export, ClientAction = "TavolletjelentoHelper.exportGrid" });
grid.RowFunction(Html, multipleRowFunctions);
grid.FunctionCommand(Html, functionCommands);
if (Model.IsTavolletFoIntezmenye && Model.SrcKezeles && Model.SrcIsLeaderCall && (Model.SrcFoIntezmenyeE.HasValue && Model.SrcFoIntezmenyeE == 1))
{
grid.Columns(column =>
{
column.Template(@<text></text>).Width(140).ClientTemplate(
@"#var now = new Date(); var prevMonth = new Date(); prevMonth.setMonth(prevMonth.getMonth() - 1, 1);#
#if((StatuszId == 7574 || StatuszId == 7654) && !Torolt_BOOL
&& (
IdoszakKezdet.getFullYear() > now.getFullYear()
|| (IdoszakKezdet.getFullYear() == now.getFullYear() && IdoszakKezdet.getMonth() >= now.getMonth())
|| (IdoszakKezdet.getFullYear() == prevMonth.getFullYear() && IdoszakKezdet.getMonth() == prevMonth.getMonth() && now.getDate() < 6)
)) {
if(TavolletjelentoHelper.checkActionTitle(TipusId)) {#
<button title='" + HRModulResource.Engedelyezem + @"' id='jovahagyas_#: ID #' type='button' data-role='button' class='btn btn-success' role='button' aria-disabled='false' tabindex='0' onclick='TavolletjelentoHelper.saveTavolletElfogadas(#: ID #, #: TipusId #)'><i class='fa fa-check'></i></button>
#}
else {#
<button title='" + HRModulResource.TudomasulVeszem + @"' id='jovahagyas_#: ID #' type='button' data-role='button' class='btn btn-success' role='button' aria-disabled='false' tabindex='0' onclick='TavolletjelentoHelper.saveTavolletElfogadas(#: ID #, #: TipusId #)'><i class='fa fa-check'></i></button>
#}
#
<button title='" + HRModulResource.Hianypotlas + @"' id='hianypotlas_#: ID #' type='button' data-role='button' class='btn btn-warning' role='button' aria-disabled='false' tabindex='0' onclick='TavolletjelentoHelper.openTavolletjelentoHPWindow(#: ID #, ""#: RogzitoGuid #"")'><i class='fa fa-file'></i></button>
<button title='" + HRModulResource.Elutasitom + @"' id='elutasitas_#: ID #' type='button' data-role='button' class='btn btn-danger' role='button' aria-disabled='false' tabindex='0' onclick='TavolletjelentoHelper.saveTavolletElutasitas(#: ID #, ""#: RogzitoGuid #"")'><i class='fa fa-times'></i></button>
#}#");
});
}
else if (Model.IsTavolletFoIntezmenye && Model.SrcKezeles && Model.SrcIsAdminCall && (Model.SrcFoIntezmenyeE.HasValue && Model.SrcFoIntezmenyeE == 1))
{
grid.Columns(column =>
{
column.Template(@<text></text>).Width(140).ClientTemplate(
@"#var now = new Date(); var prevMonth = new Date(); prevMonth.setMonth(prevMonth.getMonth() - 1, 1);#
#if((StatuszId == 7574 || StatuszId == 7654) && !Torolt_BOOL
&& (
IdoszakKezdet.getFullYear() > now.getFullYear()
|| (IdoszakKezdet.getFullYear() == now.getFullYear() && IdoszakKezdet.getMonth() >= now.getMonth())
|| (IdoszakKezdet.getFullYear() == prevMonth.getFullYear() && IdoszakKezdet.getMonth() == prevMonth.getMonth() && now.getDate() < 6)
)) {
#
<button title='" + HRModulResource.Hianypotlas + @"' id='hianypotlas_#: ID #' type='button' data-role='button' class='btn btn-warning' role='button' aria-disabled='false' tabindex='0' onclick='TavolletjelentoHelper.openTavolletjelentoHPWindow(#: ID #, ""#: RogzitoGuid #"")'><i class='fa fa-file'></i></button>
#}#");
});
}
}
@if (Model.SrcFoIntezmenyeE.HasValue && Model.SrcFoIntezmenyeE == 0)
{
<div class="container-fluid details">
<div class="col-xs-12 settings fa-border" style="background-color:whitesmoke">
<h3>@HRModulResource.WarnNemFointezmenyCsokkentettJogosultsag</h3>
<div class="col-xs-12">
<h5>@HRModulResource.WarnNemFointezmenyCsokkentettJogosultsagMiattNemElerhetoFunkciok</h5>
</div>
</div>
</div>
}
@if (!Model.IsTavolletFoIntezmenye)
{
<div class="row" style="padding: 20px; text-align: center;">
<label style="font-size: 20px;">@HRModulResource.WarnNemFointezmeny</label>
</div>
}
@Html.Partial("_InfoBar", Model)
<div>@(grid)</div>
<script type="text/javascript">
var TavolletjelentoHelper = (function () {
var tavolletjelentoHelper = function () { };
var gridName = "TavolletjelentoGrid";
var formName = "TavolletjelentoForm";
var searchFormName = "searchForm";
var url = {
openTavolletjelentoDetailWindow: "@Url.Action("OpenTavolletjelentoDetailPopUp", Constants.Controllers.Tavolletjelento, new { area = Constants.Areas.HRModul })",
openTavolletjelentoNewWindow: "@Url.Action("OpenTavolletjelentoNewPopUp", Constants.Controllers.Tavolletjelento, new { area = Constants.Areas.HRModul })",
openTavolletjelentoModifyWindow: "@Url.Action("OpenTavolletjelentoModifyPopUp", Constants.Controllers.Tavolletjelento, new { area = Constants.Areas.HRModul })",
openTobbesTavolletjelentoModifyWindow: "@Url.Action("OpenTobbesTavolletjelentoModifyPopUp", Constants.Controllers.Tavolletjelento, new { area = Constants.Areas.HRModul })",
saveTavolletElfogadas: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.TavolletjelentoApi, action = "SaveTavolletElfogadas" })",
saveTavolletElutasitas: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.TavolletjelentoApi, action = "SaveTavolletElutasitas" })",
getTavolletIdotartam: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.TavolletjelentoApi, action = "GetTavolletIdotartam" })",
saveTavollet: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.TavolletjelentoApi, action = "SaveTavollet" })",
saveTobbesTavollet: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.TavolletjelentoApi, action = "saveTobbesTavollet" })",
deleteTavollet: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.TavolletjelentoApi, action = "DeleteTavollet" })",
exportTavolletjelento: "@Url.Action("Export", Constants.Controllers.Tavolletjelento, new { area = Constants.Areas.HRModul })"
}
tavolletjelentoHelper.openTavolletjelentoDetailWindow = function (data) {
AjaxHelper.DoPost(url.openTavolletjelentoDetailWindow, { Id: data.ID }, popUpTavolletjelentoWindow);
}
tavolletjelentoHelper.openTavolletjelentoNewWindow = function () {
AjaxHelper.DoPost(url.openTavolletjelentoNewWindow, { isKezeles: CommonUtils.parseBool("@(Model.SrcKezeles)") }, popUpTavolletjelentoWindow);
}
tavolletjelentoHelper.openTavolletjelentoModifyWindow = function (data) {
var IsHianypotlas = false;
if (data.StatuszId == 7577) IsHianypotlas = true;
AjaxHelper.DoPost(url.openTavolletjelentoModifyWindow, { Id: data.ID, IsHianypotlas: IsHianypotlas, Muvelet: @((int)WorkflowMuveletEnum.CsakModositas) }, popUpTavolletjelentoWindow);
}
tavolletjelentoHelper.openTavolletjelentoHPWindow = function (Id, RogzitoGuid) {
AjaxHelper.DoPost(url.openTavolletjelentoModifyWindow, { Id: Id, IsHianypotlas: true, Muvelet: @((int)WorkflowMuveletEnum.Hianypotlas), EredetiRogzitoGuid: RogzitoGuid }, popUpTavolletjelentoWindow);
}
tavolletjelentoHelper.CancelTavolletjelentoWindow = function () {
KretaWindowHelper.destroyWindow("TavolletjelentoWindow");
}
tavolletjelentoHelper.deleteConfirmWindow = function (rowData) {
KretaWindowHelper.confirmWindow("@(CommonResource.Kerdes)", "@(CommonResource.BiztosanSzeretneTorolni)", deleteTavollet, rowData.ID, undefined, undefined, undefined, undefined, undefined, true, true, "@(CommonResource.ATorlesOka)");
}
tavolletjelentoHelper.GetFilesToPost = function () {
KretaFileUpload.SendAttachmentsAsBase64EncodedString("TavolletjelentoDok", TavolletjelentoHelper.saveTavollet)
}
tavolletjelentoHelper.saveTavollet = function (filesArray) {
var data = $("#" + formName).toObject();
var json = {
ID: data.ID,
TavolletOka: data.TavolletOka,
AlkalmazottList: data.AlkalmazottList,
TavolletKezdet: data.TavolletKezdet,
TavolletVeg: data.TavolletVeg,
TavolletIdotartamNap: $("#TavolletIdotartamNap").val(),
Megjegyzes: data.Megjegyzes,
HianypotlasSzoveg: data.HianypotlasSzoveg,
MegjegyzesMezo: data.MegjegyzesMezo,
Muvelet: data.Muvelet,
FilesArray: filesArray,
IsHianypotlas: data.IsHianypotlas,
StatuszId: data.StatuszId,
IsLeaderCall: data.IsLeaderCall,
RogzitoId: data.RogzitoId,
EredetiRogzitoGuid: data.EredetiRogzitoGuid
};
AjaxHelper.DoAsyncValidationPost(url.saveTavollet, formName, json, function () { locationReload(); });
}
tavolletjelentoHelper.saveTobbesTavollet = function () {
var data = $("#" + formName).toObject();
var dict = {};
for (var i = 0; i < data.TavolletekDict.length; i++) {
dict[data.TavolletekDict[i].Key] = {
'AlkalmazottSzTSz': data.TavolletekDict[i].Value.AlkalmazottSzTSz,
'RogzitoFunkcioTerulet': data.TavolletekDict[i].Value.RogzitoFunkcioTerulet
};
}
var json = {
TavolletIDArrayString: data.TavolletIDArrayString,
TavolletAlkalmazottIdArrayString: data.TavolletAlkalmazottIdArrayString,
TavolletekDictionary: dict,
TavolletOka: data.TavolletOka,
TavolletKezdet: data.TavolletKezdet,
TavolletVeg: data.TavolletVeg,
TavolletIdotartamNap: $("#TavolletIdotartamNap").val(),
MegjegyzesMezo: data.MegjegyzesMezo,
};
AjaxHelper.DoAsyncValidationPost(url.saveTobbesTavollet, formName, json, function () { locationReload(); });
}
tavolletjelentoHelper.saveTavolletElfogadas = function (Id, tipusId) {
var values = [];
values.push({ 'ID': Id, 'TipusId': tipusId });
AjaxHelper.DoPost(url.saveTavolletElfogadas, values, gridRefresh);
}
tavolletjelentoHelper.saveTavolletElutasitas = function (Id, RogzitoGuid) {
var values = []; values.push({ 'ID': Id, 'RogzitoGuid': RogzitoGuid });
AjaxHelper.DoPost(url.saveTavolletElutasitas, values, gridRefresh);
}
tavolletjelentoHelper.GetTavolletIdotartam = function () {
var tavolletKezdet = $("#TavolletKezdet").data('kendoDatePicker').value();
var tavolletVeg = $("#TavolletVeg").data('kendoDatePicker').value();
AjaxHelper.DoPost(url.getTavolletIdotartam, { tavolletKezdet: tavolletKezdet, tavolletVeg: tavolletVeg }, getTavolletIdotartamSuccess);
}
tavolletjelentoHelper.selectedTavolletElfogadas = function () {
var values = TavolletjelentoHelper.getSelectedCheckboxDatas();
if (values.length > 0) {
AjaxHelper.DoPost(url.saveTavolletElfogadas, values, gridRefresh);
}
}
tavolletjelentoHelper.selectedTavolletElutasitas = function () {
var values = TavolletjelentoHelper.getSelectedCheckboxIds(true);
if (values.length > 0) {
AjaxHelper.DoPost(url.saveTavolletElutasitas, values, gridRefresh);
}
}
tavolletjelentoHelper.getSelectedCheckboxIds = function (isData) {
var Items = [];
$.each($("div.gridCheckBox input:checkbox"), function (i, v) {
if ($(v).prop("checked") == true) {
var data = KretaGridHelper.getRowData($(v), "TavolletjelentoGrid");
if (isData === true) {
Items.push({ 'ID': parseInt(data.ID), 'RogzitoGuid': data.RogzitoGuid });
}
else {
Items.push(parseInt(data.ID));
}
}
});
return Items;
}
tavolletjelentoHelper.getSelectedCheckboxDatas = function () {
var Items = [];
$.each($("div.gridCheckBox input:checkbox"), function (i, v) {
if ($(v).prop("checked") == true) {
var row = KretaGridHelper.getRowData($(v), "TavolletjelentoGrid");
var data = { 'ID': parseInt(row.ID), 'TipusId': parseInt(row.TipusId) };
Items.push(data);
}
});
return Items;
}
tavolletjelentoHelper.openTobbesTavolletUpdateModifyWindow = function () {
var values = TavolletjelentoHelper.getSelectedCheckboxIds();
if (values.length > 0) {
if (values.length == 1) {
AjaxHelper.DoPost(url.openTavolletjelentoModifyWindow, { Id: values[0], IsHianypotlas: false, Muvelet: @((int)WorkflowMuveletEnum.CsakModositas) }, popUpTavolletjelentoWindow);
}
else {
AjaxHelper.DoPost(url.openTobbesTavolletjelentoModifyWindow, { Ids: values }, popUpTavolletjelentoWindow);
}
}
}
tavolletjelentoHelper.checkActionTitle = function (tipusId) {
var engedelyezList = @Html.Raw(Json.Encode(Model.EngedelyezList));
return $.inArray(tipusId, engedelyezList) >= 0;
}
tavolletjelentoHelper.exportGrid = function () {
var data = KretaGridHelper.getSearchParametersWithoutInputNames(searchFormName);
AjaxHelper.DownloadFile(url.exportTavolletjelento, data);
}
tavolletjelentoHelper.handleError = (error) => {
if (error.status === 'customerror') {
KretaWindowHelper.notification('A szolgáltatás nem elérhető.', 'error');
return;
}
KretaWindowHelper.notification('Hiba történt a művelet végrehajtása közben.', 'error');
}
function popUpTavolletjelentoWindow(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@HRModulResource.TavolletAdatok";
config.width = "80%";
config.height = 600;
config.maxWidth = 1200;
config.content = data;
var modal = KretaWindowHelper.createWindow("TavolletjelentoWindow", config);
KretaWindowHelper.openWindow(modal, true);
}
function gridRefresh() {
TavolletjelentoHelper.CancelTavolletjelentoWindow();
KretaGridHelper.refreshGrid(gridName);
}
function locationReload() {
location.reload();
}
function getTavolletIdotartamSuccess(data) {
$("#TavolletIdotartamNap").val(data);
}
function deleteTavollet(data, note) {
var json = {
'id': data,
'note': note
};
AjaxHelper.DoPost(url.deleteTavollet, json, locationReload);
}
return tavolletjelentoHelper;
})();
$(document).ready(function () {
$("input[name='SrcNaptariEv']").change(function () {
$("#SrcIdoszakKezdet").val("");
$("#SrcIdoszakVeg").val("");
});
$("#SrcIdoszakKezdet").change(function () {
$("input[name='SrcNaptariEv_input']").val("");
});
$("#SrcIdoszakVeg").change(function () {
$("input[name='SrcNaptariEv_input']").val("");
});
szerkesztesKikapcsolasa("input[name='SrcNaptariEv_input']");
szerkesztesKikapcsolasa("#SrcIdoszakKezdet");
szerkesztesKikapcsolasa("#SrcIdoszakVeg");
function szerkesztesKikapcsolasa(control) {
$(control).prop("readonly", true);
$(control).on("keydown", function (e) {
e.preventDefault();
});
}
$("#SelectedHeaderBox").click(function () {
var globalValue = false;
if ($(this).prop('checked')) { globalValue = true; }
$.each($("[data-rowinputname='Selected']"), function (i, v) {
if (v.checked != globalValue) {
$(this).click();
}
});
});
});
</script>

View file

@ -0,0 +1,8 @@
@using Kreta.Resources;
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}
<div class="row" style="padding: 20px; text-align: center;">
<label style="font-size: 20px;">@HRModulResource.SZTSZKODHiany</label>
</div>

View file

@ -0,0 +1,8 @@
@using Kreta.Resources;
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}
<div class="row" style="padding: 20px; text-align: center;">
<label style="font-size: 20px;">@HRModulResource.ErrorMunkaviszony</label>
</div>

View file

@ -0,0 +1,263 @@
@using Kreta.Web.Areas.HRModul.Models;
@using Kreta.Enums.ManualEnums;
@using Kreta.Web.Helpers.Grid;
@using Kreta.Web.Security;
@using Kreta.Resources;
@model TavolletjelentoModel
@{
var customOpacity = "opacity: 1!important;";
var viewTypeClass = "";
if (Model.ViewType == TavolletjelentoViewTypeEnum.Detail) { viewTypeClass = "disabledItem"; customOpacity = "opacity: 0.8!important;"; }
var isLeaderCallClass = "disabledItem";
if (Model.IsLeaderCall || Model.ViewType == TavolletjelentoViewTypeEnum.Detail || Model.IsAdminCall) { isLeaderCallClass = ""; }
var isHianypotlasClass = "";
if (Model.Muvelet == WorkflowMuveletEnum.Hianypotlas && (Model.IsLeaderCall || ClaimData.IsDefaultAdminUser)) { isHianypotlasClass = "disabledItem"; }
}
<style>
.commentRow,
.commentRow ul {
padding-left: 20px;
padding-right: 20px;
list-style-type: none;
}
.commentRow label {
padding: 10px 0;
vertical-align: middle;
}
.commentRow li {
background-color: azure;
padding: 2px;
}
.commentRow li:nth-child(odd) {
background-color: lightgrey;
}
.commentRow .hp {
padding-left: 2em;
background-color: bisque;
}
.commentRow li.hp:nth-child(odd) {
background-color: lightgoldenrodyellow;
}
.tavolletTooltip .kretaLabelTooltipText {
width: 200px;
}
</style>
<div style="@customOpacity" class="container-fluid details @viewTypeClass">
@using (Html.KretaForm("TavolletjelentoForm"))
{
@Html.KretaValidationSummary()
@Html.HiddenFor(x => x.ID)
@Html.HiddenFor(x => x.IsKezeles)
@Html.HiddenFor(x => x.IsHianypotlas)
@Html.HiddenFor(x => x.IsAdminCall)
@Html.HiddenFor(x => x.IsLeaderCall)
@Html.HiddenFor(x => x.StatuszId)
@Html.HiddenFor(x => x.RogzitoId)
@Html.HiddenFor(x => x.Muvelet)
@Html.HiddenFor(x => x.Megjegyzes)
@Html.HiddenFor(x => x.HianypotlasSzoveg)
@Html.HiddenFor(x => x.AlkalmazottFilterId)
@Html.HiddenFor(x => x.EredetiRogzitoGuid)
if (Model.IsNemRogzitoIntezmeny)
{
<div class="row" style="padding: 5px; text-align: center;">
<label>@HRModulResource.WarnNemRogzitoIntezmeny</label>
</div>
}
<div class="row @isHianypotlasClass">
@Html.KretaComboBoxFor(x => x.TavolletOka, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = "ComboBoxHelperEnumApi", action = "GetTavolletjelentoTipusList"}), "Text", "Value").AutoBind(true).RenderWithName(2, 10)
</div>
<div class="row @isHianypotlasClass">
@if (Model.IsNemRogzitoIntezmeny)
{
@Html.KretaLabelFor(x => x.AlkalmazottNeve, 2, 9)
}
else
{
<div class="@{
if ((Model.ID.HasValue && isHianypotlasClass == "" && viewTypeClass == "") || Model.IsKezeles == false)
{
@Html.Raw("disabledItem")
;
}
} ">
@Html.KretaMultiSelectFor(x => x.AlkalmazottList, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = "ComboBoxHelperApi", action = "GetAllAlkalmazott", id = Model.AlkalmazottFilterId, isNemCsakFointezmenyesek = Model.ID.HasValue}), "Text", "Value").AutoBind(true).RenderWithName(2, 9)
@if (Model.IsKezeles && (Model.IsLeaderCall || Model.IsAdminCall))
{
<button id="select" type="button" data-role="button" class="k-button" role="button" aria-disabled="false" tabindex="0">+</button>
<button id="deselect" type="button" data-role="button" class="k-button" role="button" aria-disabled="false" tabindex="0">-</button>
}
</div>
}
</div>
<div class="row @isHianypotlasClass">
@Html.KretaDatePickerFor(x => x.TavolletKezdet).Events(x => x.Change("TavolletjelentoHelper.GetTavolletIdotartam")).RenderWithName(2, 2)
@Html.KretaDatePickerFor(x => x.TavolletVeg).Events(x => x.Change("TavolletjelentoHelper.GetTavolletIdotartam")).RenderWithName(2, 2)
<div>
@Html.KretaTextBoxFor(x => x.TavolletIdotartamNap).Enable(false).RenderWithName(2, 1, tooltipResource: HRModulResource.TavolletNapokTooltip, customClass: "tavolletTooltip")
</div>
</div>
<div class="row">
@Html.KretaLabelFor(x => x.StatuszNeve, 2, 4)
@Html.KretaLabelFor(x => x.RogzitoNeve, 2, 4)
</div>
if (Model.ViewType != TavolletjelentoViewTypeEnum.Detail)
{
<div class="row">
@Html.KretaTextBoxFor(x => x.MegjegyzesMezo).RenderWithBottomInfoAndName(null, 2, 10, bottomInfo: string.Format(HRModulResource.MegjegyzesMezoMaxHossza, Model.MegjegyzesMezoMaxHossza))
</div>
}
<div class="row commentRow">
<label class="windowInputLabel">@HRModulResource.Megjegyzesek</label>
<ul>
@{
if (Model.OsszefuzottMegjegyzesek != null && Model.OsszefuzottMegjegyzesek.Count > 0)
{
foreach (var item in Model.OsszefuzottMegjegyzesek)
{
<li class="@item.CommentTypeClass">@item.CommentContent</li>
}
}
}
</ul>
</div>
if (Model.ViewType != TavolletjelentoViewTypeEnum.Detail)
{
<div id="CsatolmanyokInputContainer" class="row @isHianypotlasClass">
@Html.KretaFileUpload("TavolletjelentoDok", onSelectEvent: "function(e){ TavolletFileUploadHelper.onSelect(e); }")
</div>
}
}
</div>
@{
var grid = Html.KretaGrid<TavolletjelentoDokGridModel>
(
name: "TavolletjelentoDokGrid",
getUrl: new GridApiUrl("TavolletjelentoApi", "GetTavolletjelentoDokGrid", new Dictionary<string, string> { { "tavolletId", Model.ID.ToString() } })
)
.Columns(columns =>
{
columns.Bound(c => c.DokumentumNev);
columns.Bound(c => c.Iktatoszam);
columns.Template(@<text></text>).Width(140).ClientTemplate(@"<a href='/HRModul/Tavolletjelento/GetFile?fileId=#: ID #&isDokumentum=#: IsDokumentum#'>Letöltés</a>");
})
.AutoBind(true)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn));
}
@if (Model.ID.HasValue && (Model.IsAdminCall || Model.IsLeaderCall || Model.RogzitoId == ClaimData.FelhasznaloId))
{
<div>@(grid)</div>
}
<script type="text/javascript">
var TavolletFileUploadHelper = (function () {
var tavolletFileUploadHelper = function () { };
tavolletFileUploadHelper.onSelect = function (e) {
KretaFileUpload.StopAnimation();
var allowedFileExtensionArray = [".txt", ".pdf", ".png", ".bmp", ".jpg", ".jpeg", ".xls", ".xlsx", ".doc", ".docx", ".roz"];
var attachmentMaxFileSizeInBytes = 5242880;
var attachments = e.files;
for(var i = 0; i<attachments.length;i++){
if (attachmentMaxFileSizeInBytes<attachments[i].size){
e.preventDefault();
var errorMessage = "@ErrorResource.HibaTortentXMBNalNemLehetNagyobbAFajlMerete";
errorMessage=errorMessage.replace("{0}",attachmentMaxFileSizeInBytes/(1024*1024));
KretaWindowHelper.feedbackWindow("@CommonResource.Hiba", errorMessage, true);
break;
}
if ($.inArray(attachments[i].extension.toLowerCase(), allowedFileExtensionArray)===-1){
e.preventDefault();
KretaWindowHelper.feedbackWindow("@CommonResource.Hiba","@ErrorResource.AFajlKiterjeszteseVagyTipusaNemMegfelelo", true);
break;
}
}
}
return tavolletFileUploadHelper;
})();
$(document).ready(function () {
KretaFileUpload.DisplayValidationInfo("CsatolmanyokInputContainer", "FileUploadValidationInfo");
var allowedFileExtensionArray = ["Megengedett típusok: ",
".txt", ".pdf", ".png", ".bmp", ".jpg", ".jpeg", ".xls", ".xlsx", ".doc", ".docx", ".roz",
" Maximális méret: 5MB"
];
var uploadButton = $("#CsatolmanyokInputContainer");
var validationVisible = false;
uploadButton.mouseenter(function () {
if (!validationVisible) {
validationVisible = true;
KretaFileUpload.StartAnimation();
KretaFileUpload.VaidationInfoExtensionContainerAnimation("FileUploadValidationInfo", allowedFileExtensionArray, 0);
}
});
uploadButton.mouseleave(function () {
validationVisible = false;
KretaFileUpload.StopAnimation("FileUploadValidationInfo");
});
var lista = $("#AlkalmazottList").data("kendoMultiSelect");
$("#select").click(function () {
var values = [];
$.each(lista.dataSource.data(), function (i, v) { values.push(v.Value); });
lista.value(values);
});
$("#deselect").click(function() { lista.value([]); });
var disInputs = $("div.disabledItem .row :input.k-input");
$.each(disInputs, function () {
$(this)[0].disabled = true;
$(this)[0].classList.add('k-state-disabled');
$(this).parent('.k-state-default').addClass('k-state-disabled');
});
tavolletDatumBeallitasa();
function tavolletDatumBeallitasa() {
szerkesztesKikapcsolasa("#TavolletKezdet");
szerkesztesKikapcsolasa("#TavolletVeg");
function szerkesztesKikapcsolasa(control) {
$(control).prop("readonly", true);
$(control).on("keydown", function (e) {
e.preventDefault();
});
}
var tavolletKezdet = $("#TavolletKezdet").data("kendoDatePicker");
var tavolletVeg = $("#TavolletVeg").data("kendoDatePicker");
var now = new Date();
var past = new Date();
past.setFullYear(past.getFullYear(), past.getMonth() - 1);
if (now.getDate() <= 5) {
tavolletKezdet.min(new Date(past.getFullYear(), past.getMonth(), 1));
tavolletVeg.min(new Date(past.getFullYear(), past.getMonth(), 1));
}
else {
tavolletKezdet.min(new Date(now.getFullYear(), now.getMonth(), 1));
tavolletVeg.min(new Date(now.getFullYear(), now.getMonth(), 1));
}
}
});
</script>

View file

@ -0,0 +1,51 @@
@using Kreta.Web.Areas.HRModul.Models;
@using Kreta.Resources;
@model TavolletjelentoTobbesModel
<style>
.warningRow {
color: darkred;
padding: 5px 20px;
}
</style>
<div class="container-fluid details">
@using (Html.KretaForm("TavolletjelentoForm"))
{
@Html.KretaValidationSummary()
@Html.HiddenFor(x => x.TavolletIDArrayString)
@Html.HiddenFor(x => x.TavolletAlkalmazottIdArrayString)
var i = 0;
foreach (var item in Model.TavolletekDictionary)
{
@Html.Hidden(string.Format("TavolletekDict[{0}].Key", i), item.Key);
@Html.Hidden(string.Format("TavolletekDict[{0}].Value.AlkalmazottSzTSz", i), item.Value.AlkalmazottSzTSz);
@Html.Hidden(string.Format("TavolletekDict[{0}].Value.RogzitoFunkcioTerulet", i), item.Value.RogzitoFunkcioTerulet);
i++;
}
if (Model.ElteroSorok || Model.FelhasznaloTobbszorKivalasztva)
{
<div class="row warningRow">
<label class="windowInputLabel">@HRModulResource.WarnElteresVan</label>
@if (Model.FelhasznaloTobbszorKivalasztva)
{
<br/><label class="windowInputLabel">@HRModulResource.WarnFelhasznaloTobbszorVan</label>
}
</div>
}
<div class="row">
@Html.KretaComboBoxFor(x => x.TavolletOka, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperEnumApi", action = "GetTavolletjelentoTipusList" }), "Text", "Value").AutoBind(true).RenderWithName(2, 2)
@Html.KretaLabelFor(x => x.TavolletAlkalmazottNevArray, 2, 6)
</div>
<div class="row">
@Html.KretaDatePickerFor(x => x.TavolletKezdet).Events(x => x.Change("TavolletjelentoHelper.GetTavolletIdotartam")).RenderWithName(2, 2)
@Html.KretaDatePickerFor(x => x.TavolletVeg).Events(x => x.Change("TavolletjelentoHelper.GetTavolletIdotartam")).RenderWithName(2, 2)
<div style="pointer-events: none;">
@Html.KretaTextBoxFor(x => x.TavolletIdotartamNap).Enable(false).RenderWithName(2, 2)
</div>
</div>
<div class="row">
@Html.KretaTextAreaFor(x => x.MegjegyzesMezo, 3).RenderWithName(3, 9)
</div>
}
</div>

View file

@ -0,0 +1,3 @@
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}

View file

@ -0,0 +1,38 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
<add namespace="Kreta.Web" />
<add namespace="Kreta.BusinessLogic.Utils" />
<add namespace="Kendo.Mvc.UI" />
<add namespace="Kreta.Web.Helpers" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>