init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,461 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.ModelBinding;
|
||||
using System.Web.Http.Results;
|
||||
using Kendo.Mvc.Extensions;
|
||||
using Kendo.Mvc.UI;
|
||||
using Kreta.BusinessLogic.Classes.ComboBox;
|
||||
using Kreta.BusinessLogic.Exceptions;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.BusinessLogic.Security;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Framework;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Kreta.Web.Areas.Tantargy.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.Tantargy.ApiControllers
|
||||
{
|
||||
public class BaseTantargyFelosztasApiController : ApiController
|
||||
{
|
||||
public DataSourceResult GetTantargyFelosztasok(string data, DataSourceRequest request)
|
||||
{
|
||||
var (gridParameter, modelList, _) = GetGridData(data, request);
|
||||
|
||||
var ret = modelList.ToDataSourceResult(gridParameter);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var (gridParameter, modelList, exportAttributeName) = GetGridData(data, request);
|
||||
|
||||
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
||||
|
||||
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TantargyFelosztasGridModel>(exportAttributeName);
|
||||
|
||||
var memoryStream = SimpleExportLogic.GetExport(TantargyfelosztasResource.ExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
||||
|
||||
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), string.Format(TantargyfelosztasResource.ExportFileNameFormat, ClaimData.IntezmenyAzonosito));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
||||
}
|
||||
}
|
||||
|
||||
private (GridParameters gridParameter, List<TantargyFelosztasGridModel> modelList, string exportAttributeName) GetGridData(string data, DataSourceRequest request)
|
||||
{
|
||||
var connection = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var model = JsonConvert.DeserializeObject<TantargyFelosztasModel>(data);
|
||||
var gridParameter = Converter.GridParameter(request);
|
||||
|
||||
var keresesModel = model.ConvertToCo();
|
||||
if (model.IsFromSzervezet)
|
||||
{
|
||||
var szervezetId = new SzervezetHelper(connection).GetAlkalmazottSzervezetId(ClaimData.FelhasznaloId);
|
||||
keresesModel.SzervezetId = szervezetId;
|
||||
}
|
||||
|
||||
var coList = new TantargyFelosztasHelper(connection).GetTantargyFelosztasCoList(keresesModel);
|
||||
|
||||
var modelList = new List<TantargyFelosztasGridModel>();
|
||||
foreach (var co in coList)
|
||||
{
|
||||
var gridModel = new TantargyFelosztasGridModel(co);
|
||||
modelList.Add(gridModel);
|
||||
}
|
||||
|
||||
var exportAttributeName = model.IsFromSzervezet ? TantargyFelosztasGridModel.DualisTantargyFelosztasExportAttributeId : TantargyFelosztasGridModel.TantargyFelosztasExportAttributeId;
|
||||
|
||||
return (gridParameter, modelList, exportAttributeName);
|
||||
}
|
||||
|
||||
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue, KretaClaimPackages.IsSzakiranyuOktatasertFelelos.ClaimValue)]
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public void StoreSelectedTanar([FromBody] int tanarID)
|
||||
{
|
||||
if (tanarID > 0)
|
||||
{
|
||||
HttpContext.Current.Application["tanarId"] = tanarID;
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult<bool> ValidateTantargyFelosztasModify(TantargyFelosztasModositasaModel model)
|
||||
{
|
||||
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var result = helper.DuplicatedTantargyfelosztas(model.TanarId, model.CsoportID, model.TantargyId, model.Id);
|
||||
return Json(result);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage SaveFelosztas(SaveFelosztasModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
foreach (var item in model.felosztasok)
|
||||
{
|
||||
if (item?.CsoportID.HasValue == true && ((item.TantargyID.HasValue && item.Oraszam.HasValue) || (item.TantargyID.HasValue && model.IsFromSzervezet)))
|
||||
{
|
||||
helper.CreateOrUpdateFelosztas(new TantargyFelosztasCO
|
||||
{
|
||||
TanarID = model.tanarID,
|
||||
OsztalyCsoportID = item.CsoportID.Value,
|
||||
TantargyID = item.TantargyID.Value,
|
||||
Oraszam = item.Oraszam ?? 0,
|
||||
TuloraSzam = item.TuloraSzam ?? 0,
|
||||
OsszevontOra = item.OsszevontOra,
|
||||
NemzetisegiOra = item.NemzetisegiOra,
|
||||
MegbizasiOraszam = item.MegbizasiOraszam ?? 0
|
||||
},
|
||||
isFromSzervezet: model.IsFromSzervezet);
|
||||
}
|
||||
}
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public DataSourceResult GetTantargyFelosztasokFelvetel(string data, bool isFromSzervezet, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
||||
{
|
||||
var model = JsonConvert.DeserializeObject<TantargyFelosztasFelveteleModel>(data);
|
||||
var dataSet = new DataSet();
|
||||
var dataTable = new DataTable();
|
||||
dataTable.Columns.Add("ID");
|
||||
dataTable.Columns.Add("OsztalyCsoport");
|
||||
dataTable.Columns.Add("OsztalyCsoportID");
|
||||
dataTable.Columns.Add("Tantargy");
|
||||
dataTable.Columns.Add("TantargyID");
|
||||
dataTable.Columns.Add("Oraszam");
|
||||
dataTable.Columns.Add("Tuloraszam");
|
||||
dataTable.Columns.Add("OsszevontOra");
|
||||
dataTable.Columns.Add("OsszevontOra_BNAME");
|
||||
dataTable.Columns.Add("NemzetisegiOra");
|
||||
dataTable.Columns.Add("NemzetisegiOra_BNAME");
|
||||
dataTable.Columns.Add("MegbizasiOraszam");
|
||||
dataTable.Columns.Add("Valid");
|
||||
|
||||
if (model.TanarId.HasValue)
|
||||
{
|
||||
DataSet tantargyfelosztasDataSet;
|
||||
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
helper.GridParameters = Converter.GridParameter(request);
|
||||
tantargyfelosztasDataSet = helper.GetTantargyFelosztasData(model.TanarId, isFromSzervezet: isFromSzervezet);
|
||||
|
||||
foreach (DataRow dataRow in tantargyfelosztasDataSet.Tables[0].Rows)
|
||||
{
|
||||
dataTable.Rows.Add(
|
||||
dataRow["ID"],
|
||||
dataRow["OsztalyCsoport"],
|
||||
dataRow["OsztalyCsoportID"],
|
||||
dataRow["Tantargy"],
|
||||
dataRow["TantargyID"],
|
||||
dataRow["Oraszam"],
|
||||
dataRow["Tuloraszam"],
|
||||
dataRow["OsszevontOra"],
|
||||
dataRow["OsszevontOra_BNAME"],
|
||||
dataRow["NemzetisegiOra"],
|
||||
dataRow["NemzetisegiOra_BNAME"],
|
||||
dataRow["MegbizasiOraszam"],
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 20; i++)
|
||||
{
|
||||
dataTable.Rows.Add(
|
||||
Guid.NewGuid(),
|
||||
string.Empty,
|
||||
string.Empty,
|
||||
string.Empty,
|
||||
string.Empty,
|
||||
string.Empty,
|
||||
string.Empty,
|
||||
false,
|
||||
string.Empty,
|
||||
false,
|
||||
string.Empty,
|
||||
string.Empty,
|
||||
false
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
dataSet.Tables.Add(dataTable);
|
||||
return dataSet.ToDataSourceResult();
|
||||
}
|
||||
|
||||
public JsonResult<List<ComboBoxListItem>> GetTantargyakDD([DataSourceRequest] DataSourceRequest request)
|
||||
{
|
||||
var helper = new TantargyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var tantargyak = helper.GetTanarTantargyaiByTanevCsoportositva(isSzakkepzo: ClaimData.IsSzakkepzoIntezmeny);
|
||||
|
||||
var dropdownListItems = new List<ComboBoxListItem>();
|
||||
foreach (var row in tantargyak)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(row.Value))
|
||||
{
|
||||
var sli = new ComboBoxListItem()
|
||||
{
|
||||
Text = row.Text,
|
||||
Value = row.Value
|
||||
};
|
||||
dropdownListItems.Add(sli);
|
||||
}
|
||||
}
|
||||
|
||||
return Json(dropdownListItems);
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage ModifyTantargyFelosztas(TantargyFelosztasModositasaModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (model.Oraszam < model.TuloraSzam)
|
||||
{
|
||||
ModelState.AddModelError("TuloraSzam", TantargyfelosztasResource.ATuloraNemLehetNagyobbMintAzOraszam);
|
||||
}
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
|
||||
var helper = new TantargyFelosztasHelper(connectionType);
|
||||
var orarendiOraHelper = new OrarendiOraHelper(connectionType);
|
||||
|
||||
var eredetiTtf = helper.GetFoglalkozasById(model.Id);
|
||||
var tanarId = Convert.ToInt32(eredetiTtf.Tables[0].Rows[0]["TanarID"]);
|
||||
var tantargyId = Convert.ToInt32(eredetiTtf.Tables[0].Rows[0]["TantargyID"]);
|
||||
var osztalycsoportId = Convert.ToInt32(eredetiTtf.Tables[0].Rows[0]["OsztalyCsoportID"]);
|
||||
var ttfCo = new TantargyFelosztasVisszamenolegesCO
|
||||
{
|
||||
EredetiTanarId = tanarId,
|
||||
EredetiTantargyId = tantargyId,
|
||||
EredetiOsztalyCsoportId = osztalycsoportId,
|
||||
ModosultTanarId = model.TanarId,
|
||||
ModosultTantargyId = model.TantargyId,
|
||||
ModosultOsztalyCsoportId = model.CsoportID
|
||||
};
|
||||
|
||||
if (model.VisszamenolegesModositas)
|
||||
{
|
||||
if (tanarId != model.TanarId)
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, TantargyResource.VisszamenolegesModositasNemLehetHaTanar);
|
||||
}
|
||||
|
||||
if (!helper.ValidateTantargyfelosztasVisszamenolegesModositas(ttfCo, out var errorMessage))
|
||||
{
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, errorMessage);
|
||||
}
|
||||
|
||||
if (tantargyId != model.TantargyId || osztalycsoportId != model.CsoportID)
|
||||
{
|
||||
helper.TantargyfelosztasVisszamenolegesModositas(ttfCo);
|
||||
|
||||
new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).AtlagUjraSzamitasVisszamenolegesModositasUtan(ttfCo);
|
||||
}
|
||||
}
|
||||
|
||||
if (model.KapcsolodoOrarendiOrakModositasa)
|
||||
{
|
||||
helper.UpdateOrarendiOraAfterTantargyfelosztasUpdate(ttfCo);
|
||||
}
|
||||
else if (tantargyId != model.TantargyId || osztalycsoportId != model.CsoportID)
|
||||
{
|
||||
helper.RemoveOrarendiOraTTFRelation(model.Id);
|
||||
}
|
||||
|
||||
helper.CreateOrUpdateFelosztas(new TantargyFelosztasCO
|
||||
{
|
||||
ID = model.Id,
|
||||
Oraszam = model.Oraszam,
|
||||
OsztalyCsoportID = model.CsoportID,
|
||||
TanarID = model.TanarId,
|
||||
TantargyID = model.TantargyId,
|
||||
FoglalkozasTipusa = model.TipusId,
|
||||
OsszevontOra = model.OsszevontOra,
|
||||
NemzetisegiOra = model.NemzetisegiOra,
|
||||
MegbizasiOraszam = model.MegbizasiOraszam,
|
||||
TuloraSzam = model.TuloraSzam
|
||||
});
|
||||
|
||||
if (tanarId != model.TanarId)
|
||||
{
|
||||
helper.HandleTanarValtozasOrarendiOrakon(model.Id);
|
||||
}
|
||||
|
||||
orarendiOraHelper.UpdateOrarend();
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
||||
}
|
||||
catch (BlException e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAMuveletSoran)
|
||||
{
|
||||
UnHandledException = e
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult<string> ModifyTantargyFelosztasConfirmContent(TantargyFelosztasModositasaModel model)
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
|
||||
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
||||
|
||||
var eredetiTtf = helper.GetFoglalkozasById(model.Id);
|
||||
var tanarId = Convert.ToInt32(eredetiTtf.Tables[0].Rows[0]["TanarID"]);
|
||||
var tantargyId = Convert.ToInt32(eredetiTtf.Tables[0].Rows[0]["TantargyID"]);
|
||||
var osztalycsoportId = Convert.ToInt32(eredetiTtf.Tables[0].Rows[0]["OsztalyCsoportID"]);
|
||||
|
||||
var ttfCo = new TantargyFelosztasVisszamenolegesCO
|
||||
{
|
||||
EredetiTanarId = tanarId,
|
||||
EredetiTantargyId = tantargyId,
|
||||
EredetiOsztalyCsoportId = osztalycsoportId,
|
||||
ModosultTanarId = model.TanarId,
|
||||
ModosultTantargyId = model.TantargyId,
|
||||
ModosultOsztalyCsoportId = model.CsoportID
|
||||
};
|
||||
|
||||
if (model.VisszamenolegesModositas)
|
||||
{
|
||||
sb.AppendFormat(TantargyResource.VisszamenolegesModositasFormat,
|
||||
model.TanorakSzama.ToString(), model.ErtekelesekSzama.ToString(), model.MulasztasokSzama.ToString()).AppendLine();
|
||||
if (model.TantargyId != tantargyId)
|
||||
{
|
||||
if (helper.GetEgyszerAdhatoErtekelesekTanatargyfelosztasModositasAlapjan(ttfCo).Count > 0)
|
||||
{
|
||||
sb.AppendLine(TantargyResource.MarLetezikEgyszerAdhatoErtekeles);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (model.KapcsolodoOrarendiOrakModositasa)
|
||||
{
|
||||
var m = helper.TantargyfelosztasbanValtozoOrarendiOrak(ttfCo);
|
||||
|
||||
if (m.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
sb.AppendLine(TantargyResource.AtirasraKerulOrarendiElemek);
|
||||
|
||||
foreach (var row in m.Tables[0].AsEnumerable())
|
||||
{
|
||||
var kezdete = DateTime.Parse(row["ErvenyessegKezdete"].ToString()).ToShortDateString();
|
||||
var vege = row["ErvenyessegVege"] != null ? DateTime.Parse(row["ErvenyessegVege"].ToString()).ToShortDateString() : string.Empty;
|
||||
sb.AppendFormat(TantargyResource.AtirasraKerulOrarendiElemekFormat,
|
||||
row["Hetirend"], row["Nap"], row["Ora"], kezdete, vege).AppendLine();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendLine(TantargyResource.NincsModositandoOrarendiElem);
|
||||
}
|
||||
}
|
||||
|
||||
return Json(sb.ToString());
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public HttpResponseMessage DeleteTantargyFelosztas([FromBody] int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
helper.DeleteTargyFelosztas(id);
|
||||
|
||||
return new HttpResponseMessage(HttpStatusCode.OK);
|
||||
}
|
||||
catch (Framework.Entities.EntityDeleteFailedException)
|
||||
{
|
||||
var uzenet = string.Format(StringResourcesUtil.GetString(5490), StringResourcesUtil.GetString(1621));
|
||||
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ApiValidateAjaxAntiForgeryToken]
|
||||
public IHttpActionResult DeleteSelectedTantargyFelosztas(List<int> idList)
|
||||
{
|
||||
string errorMsg = string.Empty, entityName = string.Empty;
|
||||
var counter = 0;
|
||||
|
||||
var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
|
||||
foreach (var id in idList)
|
||||
{
|
||||
try
|
||||
{
|
||||
helper.DeleteTargyFelosztas(id);
|
||||
counter++;
|
||||
}
|
||||
catch (CannotBeDeletedException ex)
|
||||
{
|
||||
errorMsg += $"{ex.Message}{Environment.NewLine}";
|
||||
continue;
|
||||
}
|
||||
catch (EntityDeleteFailedException ex)
|
||||
{
|
||||
var errorMessage = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, OrarendResource.Tantargyfelosztas, ex.ConnectionErrorMessage);
|
||||
|
||||
errorMsg += $"{errorMessage}{Environment.NewLine}{Environment.NewLine}";
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(errorMsg))
|
||||
{
|
||||
return Json(new { Message = string.Format(ErrorResource.NSorTorlesSikeres, counter) });
|
||||
}
|
||||
|
||||
if (counter > 0)
|
||||
{
|
||||
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
|
||||
}
|
||||
|
||||
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue