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,57 @@
using System;
using System.Collections.Generic;
using System.Data;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.Web.Areas.Intezmeny.Models;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Intezmeny.Logic
{
public class FaliujsagLogic
{
public FaliujsagModel ConvertFaliujsagDataTableToList(DataTable dt)
{
List<FaliujsagElem> esemenyek = new List<FaliujsagElem>();
foreach (DataRow dr in dt.Rows)
{
FaliujsagElem elem = new FaliujsagElem();
string nev = dr["Bejegyzo"].ToString();
elem.Nev = nev;
elem.Munkakor = dr["Munkakor_DNAME"].ToString();
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
if (dr["ProfilKep"] != DBNull.Value)
{
byte[] bytes = dr["ProfilKep"] as byte[];
if (bytes != null)
{
elem.KepEleresiUtja = helper.ProfileKep(bytes);
}
}
else
{
elem.KepEleresiUtja = helper.AlapertelmezettProfileKep();
}
elem.Idopont = Convert.ToDateTime(dr["Erv_kezd"]);
elem.EsemenyCime = dr["Cim"].ToString();
string szovegWeb = SDAConvert.ToString(dr["SzovegWeb"]);
if (nev == Core.Constants.SpecialUserName.Rendszeruzenet && !string.IsNullOrWhiteSpace(szovegWeb))
{
elem.EsemenySzovege = szovegWeb;
}
else
{
elem.EsemenySzovege = dr["Szoveg"].ToString();
}
esemenyek.Add(elem);
}
return new FaliujsagModel() { FaliujsagElemek = esemenyek };
}
}
}

View file

@ -0,0 +1,128 @@
using System;
using System.Data;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Enums;
using Kreta.Framework;
using Kreta.Resources;
using Kreta.Web.Areas.Intezmeny.Models;
using Kreta.Web.Helpers;
namespace Kreta.Web.Areas.Intezmeny.Logic
{
public static class TanevRendjeLogic
{
public static void TanevRendjeValidation(System.Web.Http.ModelBinding.ModelStateDictionary ModelState, TanevRendjeModel model)
{
TanevCO tanev;
var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType());
tanev = tanevHelper.GetTanevInfo();
if (model.Datum.HasValue && (model.Datum.Value < tanev.KezdoNap || tanev.UtolsoNap < model.Datum.Value))
{
ModelState.AddModelError("Datum", ErrorResource.ADatumCsakAKivalasztottTanevbeEsoIdoszakLehet);
}
if (!model.ElteroOrarendSzerintiTanitasNapDatum.HasValue)
{
ModelState.AddModelError("ElteroOrarendSzerintiTanitasNapDatumReq", ErrorResource.AzElteroOrarendSzerintiNapDatumKotelezo);
}
if (model.ElteroOrarendSzerintiTanitasNapDatum.HasValue && (model.ElteroOrarendSzerintiTanitasNapDatum.Value < tanev.KezdoNap || tanev.UtolsoNap < model.ElteroOrarendSzerintiTanitasNapDatum.Value))
{
ModelState.AddModelError("ElteroOrarendSzerintiTanitasNapDatum", ErrorResource.AzElteroOrarendSzerintiTanitasNapDatumCsakAKivalasztottTanevbeEsoIdoszakLehet);
}
if (model.OsszesCsop == false && model.SelectedOsztalyCsoportIdList.Count == 0)
{
ModelState.AddModelError("OsszesCsop", StringResourcesUtil.GetString(4335));//Ha a tanév rendje esemény nem érvényes az összes osztályra, akkor legalább egy osztályt ki kell választani
}
if (model.Datum.HasValue && model.ElteroOrarendSzerintiTanitasNapDatum.HasValue && !IsOrarendiNap(model) && model.Datum.Value.Date != model.ElteroOrarendSzerintiTanitasNapDatum.Value.Date)
{
ModelState.AddModelError("ElteroOrarendSzerintiTanitasNapDatum", ErrorResource.AzElteroOrarendSzerintiTanitasNapDatumMegKellEgyezniTanevRendjeDatummal);
}
var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
bool useRequiredValidation = helper.IsTanoraOrNapirendRogzitheto(model.NapTipusa.Value);
if (useRequiredValidation)
{
if (!model.CsengetesiRend.HasValue)
ModelState.AddModelError("CsengetesiRend", ErrorResource.CsengetesiRendMegadasaKotelezo);
if (!model.OrarendiNap && !model.UresOrarend)
ModelState.AddModelError("OrarendiNapUresOrarend", IntezmenyResource.OrarendiNapUresOrarend);
}
}
public static void CheckTanevRendjeUtkozes(TanevRendjeModel model)
{
var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType());
tanevrendHelper.CheckTanevRendjeUtkozes(
model.Datum.Value,
model.SelectedOsztalyCsoportIdList,
model.OsszesCsop,
model.TanevRendjeId
);
}
public static bool IsEgyediNap(TanevRendjeModel model)
{
if (model.UresOrarend || model.NapTipusa.Value == (int)NapTipusEnum.roviditett_orakat_tartalmazo_tanitasi_nap || model.Datum.Value != model.ElteroOrarendSzerintiTanitasNapDatum.Value)
return true;
var napData = new NaptariNapHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNaptariNapData(model.Datum.Value);
var elteroNapData = new NaptariNapHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNaptariNapData(model.ElteroOrarendSzerintiTanitasNapDatum.Value);
if (napData.Tables[0].Rows.Count == 1)
{
var napDataHetirend = napData.Tables[0].Rows[0].Field<int>("Hetirend");
var napDataNap = napData.Tables[0].Rows[0].Field<int>("Hetnapja");
var elteroNapDataHetirend = elteroNapData.Tables[0].Rows[0].Field<int>("Hetirend");
var elteroNapDataNap = elteroNapData.Tables[0].Rows[0].Field<int>("Hetnapja");
if ((napDataHetirend != elteroNapDataHetirend && elteroNapDataHetirend != (int)HetiRendTipusEnum.MindegyikHet) || napDataNap != elteroNapDataNap)
return true;
}
return false;
}
public static bool IsEgyediNapByDate(DateTime datum)
{
return new NaptariNapHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIsEgyediNapByDate(datum);
}
public static bool IsEgyediNapByDateAndOsztalyCsoportId(DateTime datum, int osztalyCsoportId)
{
return new NaptariNapHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIsEgyediNapByDateAndOsztalyCsoportId(datum, osztalyCsoportId);
}
public static bool IsOrarendiNap(TanevRendjeModel model)
{
var napTipusData = new NaptariNapHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNapTipusData(model.NapTipusa.Value);
if (napTipusData.Tables[0].Rows.Count == 1)
{
var isTanorai = napTipusData.Tables[0].Rows[0].Field<bool>("IsTanorai_BOOL");
var isTanorankivuli = napTipusData.Tables[0].Rows[0].Field<bool>("IsTanorankivuli_BOOL");
if (isTanorai || isTanorankivuli)
return true;
}
return false;
}
public static TanevRendjeModel SetNapEsHetirend(TanevRendjeModel model)
{
var napData = new NaptariNapHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetNaptariNapData(model.ElteroOrarendSzerintiTanitasNapDatum.Value);
model.Hetirend = napData.Tables[0].Rows[0].Field<int>("Hetirend");
model.Nap = napData.Tables[0].Rows[0].Field<int>("Hetnapja");
return model;
}
}
}

View file

@ -0,0 +1,203 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using Hangfire;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Client.Eugyintezes.Configuration;
using Kreta.Core;
using Kreta.Core.FileService;
using Kreta.Enums;
using Kreta.Job.Tasks.Core;
using Kreta.Resources;
using Kreta.Web.Areas.Intezmeny.Controllers;
using Kreta.Web.Areas.Intezmeny.Models;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.TabStrip;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Intezmeny.Logic
{
public static class TeremLogic
{
private static TabStripItemModel BuildTabStripModel(string itemId, string itemName, string area, string controller, string action, Dictionary<string, string> routeParameters)
=> new TabStripItemModel
{
ItemId = itemId,
ItemName = itemName,
Area = area,
Controller = controller,
Action = action,
RouteParameters = routeParameters
};
private static TabStripItemModel BuildTabStripModel<Model>(string itemId, string itemName, Model model, string partialViewName, bool isActive = false, Dictionary<string, string> routeParameters = null)
where Model : class
{
var tabStripItemModel = new TabStripItemModel
{
ItemId = itemId,
ItemName = itemName,
RouteParameters = routeParameters,
Model = model,
PartialViewName = partialViewName,
IsActive = isActive
};
if (routeParameters != null)
{
tabStripItemModel.RouteParameters = routeParameters;
}
return tabStripItemModel;
}
public static TeremModel GetTeremBaseProperties(int? teremId)
{
var teremModel = new TeremModel();
if (teremId > 0)
{
TeremCO teremCO = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremCo(teremId.Value);
teremModel = TeremModel.ConvertCoToModel(teremCO);
}
else
{
teremModel.TeremAlapadatokModel.Jelleg = (int)TeremTipusEnum.Osztalyterem;
teremModel.TeremBerbeadasModel.TulajdonTipusaId = (int)TulajdonTipusEnum.allami_tulajdonban_levo_ingatlan;
}
return teremModel;
}
public static TeremModModel GetTeremModelForModPopup(List<TeremModModel> teremModelList, int? szervezetId, bool isFromSzervezet)
{
var teremModModel = new TeremModModel()
{
IsFromSzervezet = isFromSzervezet,
};
foreach (var item in teremModelList)
{
teremModModel.TeremIDArray += item.TeremId.ToString() + ",";
teremModModel.TeremNevArray += item.Nev.ToString() + ", ";
}
teremModModel.TeremIDArray = teremModModel.TeremIDArray.Remove(teremModModel.TeremIDArray.Count() - 1);
teremModModel.TeremNevArray = teremModModel.TeremNevArray.Remove(teremModModel.TeremNevArray.Count() - 2);
teremModModel.ModSzervezetId = szervezetId.IsEntityId() ? szervezetId : null;
return teremModModel;
}
public static List<TabStripItemModel> GetDetailTabs(string teremId, bool isLetesitmenyBerbeadasEnabled, bool isFromSzervezet, string controllerName)
{
var tabStripItemModelList = new List<TabStripItemModel>()
{
BuildTabStripModel("1", IntezmenyResource.Alapadatok, Constants.Areas.Intezmeny, controllerName, nameof(BaseTeremController.OpenTeremBaseProperties), new Dictionary<string, string>() { { nameof(teremId), teremId } }),
BuildTabStripModel("3", IntezmenyResource.OrarendiOrak, Constants.Areas.Intezmeny, controllerName, nameof(BaseTeremController.OpenTeremOrarendiOrai), new Dictionary<string, string>() { { nameof(teremId), teremId } }),
};
if (!isFromSzervezet)
{
BuildTabStripModel("4", IntezmenyResource.TeremhezTartozoEszkozok, Constants.Areas.Intezmeny, Constants.Controllers.Terem, nameof(TeremController.OpenTeremEszkozok), new Dictionary<string, string>() { { nameof(teremId), teremId } });
}
if (isLetesitmenyBerbeadasEnabled && !isFromSzervezet)
{
tabStripItemModelList.Add(BuildTabStripModel("2", IntezmenyResource.Berbeadas, Constants.Areas.Intezmeny, Constants.Controllers.Terem, nameof(TeremController.OpenTeremBerbeadasProperties), new Dictionary<string, string>() { { nameof(teremId), teremId } }));
}
return tabStripItemModelList;
}
public static List<TabStripItemModel> GetNewTabs(TeremModel teremModel, bool isLetesitmenyBerbeadasEnabled)
{
var tabStripItemModelList = new List<TabStripItemModel>
{
BuildTabStripModel("1", IntezmenyResource.Alapadatok, teremModel, Constants.ViewNames.Terem.Edit_TeremBasicProperties_Tab, true)
};
if (isLetesitmenyBerbeadasEnabled)
{
tabStripItemModelList.Add(BuildTabStripModel("2", IntezmenyResource.Berbeadas, teremModel, Constants.ViewNames.Terem.Edit_TeremBerbeadas_Tab));
}
return tabStripItemModelList;
}
public static ActionResult ExportTermekAdatai(TeremSearchModel model, bool isSelectedTanev21_22OrLater)
{
MemoryStream stream = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTermekAdataiExcelExport(TeremSearchModel.ConvertModelSearchToCO(model), isSelectedTanev21_22OrLater);
var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = $"{IntezmenyResource.TermekAdatai}.xlsx" };
return result;
}
public static List<UploadedFile> GetPicture(IFileService fileService, int? teremId)
{
try
{
if (teremId > 0)
{
TeremCO teremCO = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremCo(teremId.Value);
if (!string.IsNullOrWhiteSpace(teremCO.KepUtvonal) && !string.IsNullOrWhiteSpace(teremCO.KepKiterjesztes))
{
return new List<UploadedFile>
{
new UploadedFile
{
ContentAsBase64EncodedString = fileService.ReadAndResizeImage(teremCO.KepUtvonal, 350, 350)
}
};
}
}
}
catch (Exception)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlLetolteseKozben);
}
return new List<UploadedFile> { new UploadedFile() };
}
public static (string FajNev, byte[] Content) GetDocument(IFileService fileService, int? teremId)
{
if (teremId > 0)
{
TeremCO teremCO = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremCo(teremId.Value);
if (!string.IsNullOrWhiteSpace(teremCO.DokumentumUtvonal) && !string.IsNullOrWhiteSpace(teremCO.DokumentumKiterjesztes))
{
return (FajNev: $"{teremCO.DokumentumNev}.{teremCO.DokumentumKiterjesztes}", Content: fileService.ReadFromFile(teremCO.DokumentumUtvonal));
}
}
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlLetolteseKozben);
}
public static void EugyErtesitesTeremBerbeadhatoStatuszValtozasrol(IEugyintezesClientConfiguration config)
{
TeremBerbeadhatoStatuszValtozasModel teremBerbeadhatoStatuszValtozasModel = new TeremBerbeadhatoStatuszValtozasModel();
TeremHelper teremHelper = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType());
DataSet berbeadhatoTermekMukodesiHelyeinekVarosaiDataSet = teremHelper.GetBerbeadhatoTermekMukodesiHelyeinekVarosai();
teremBerbeadhatoStatuszValtozasModel.Varosok = new List<string>();
foreach (DataRow dataRow in berbeadhatoTermekMukodesiHelyeinekVarosaiDataSet.Tables[0].Rows)
{
teremBerbeadhatoStatuszValtozasModel.Varosok.Add(dataRow.Field<string>("Varos"));
}
var jsonData = JsonConvert.SerializeObject(teremBerbeadhatoStatuszValtozasModel);
BackgroundJob.Enqueue<IEugyintezesJob>((a) => a.TeremBerbeadhatoStatuszValtozas(null, config.BaseUrl, config.ApiKey, ClaimData.IntezmenyAzonosito, jsonData));
}
}
}