177 lines
7.2 KiB
C#
177 lines
7.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using System.Web.Http.ModelBinding;
|
|
using Kendo.Mvc.UI;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.Orarend.Logic;
|
|
using Kreta.Web.Areas.Orarend.Models;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Helpers.Grid;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.Orarend.ApiControllers
|
|
{
|
|
[ApiRoleClaimsAuthorize(true)]
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Naplo.ClaimValue)]
|
|
public class SzamonkeresElorejelzesApiController : ApiController
|
|
{
|
|
[HttpPost]
|
|
[ApiRolePackageAuthorize(
|
|
KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue,
|
|
KretaClaimPackages.Osztalyfonok.ClaimValue,
|
|
KretaClaimPackages.SzuperOsztalyfonok.ClaimValue,
|
|
KretaClaimPackages.Adminisztrator.ClaimValue,
|
|
KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue,
|
|
KretaClaimPackages.Naplo.ClaimValue
|
|
)]
|
|
public DataSourceResult GetSzamonkeresElorejelzesDetailGrid(int oraGroupId, int osztalyCsoportId, DateTime datum, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
helper.GridParameters = Converter.GridParameter(request);
|
|
|
|
SzamonkeresElorejelzesSearchCO co = new SzamonkeresElorejelzesSearchCO
|
|
{
|
|
OraGroupId = oraGroupId,
|
|
Datum = datum,
|
|
OsztalyCsoportId = osztalyCsoportId
|
|
};
|
|
|
|
var ds = helper.GetSzamonkeresElorejelzesDetailDataSet(co, isKellKapcsolodoOsztalyok: true);
|
|
|
|
DataSourceResult result = ds.ToDataSourceResult();
|
|
|
|
return result;
|
|
}
|
|
|
|
[HttpGet]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public IHttpActionResult GetModListAndComboItemColor(int? OraGroupId, int? OsztalyCsoportId, DateTime? Datum)
|
|
{
|
|
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var szamonkeresModIdList = helper.GetModListAndComboItemColorNapiLimithez(OraGroupId, Datum, OsztalyCsoportId, out string backgroundColor);
|
|
|
|
return Json(new { ErtekelesModList = szamonkeresModIdList, color = backgroundColor });
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public IHttpActionResult ValidateSzamonkeresElorejelzes(SzamonkeresElorejelzesModel model)
|
|
{
|
|
var szKLogic = new SzamonkeresElorejelzesLogic();
|
|
int limit = szKLogic.GetNapiSzamonkeresiLimit;
|
|
List<int> ertekelesModokLimithez = szKLogic.GetModokListNapiLimithez;
|
|
|
|
if (model.ErtekelesModId != null && ertekelesModokLimithez.Contains(model.ErtekelesModId.Value) &&
|
|
limit > 0 && ertekelesModokLimithez.Count > 0 && szKLogic.SzamonkeresLimitFigyelmeztetes < 3)
|
|
{
|
|
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
SzamonkeresElorejelzesSearchCO co = new SzamonkeresElorejelzesSearchCO
|
|
{
|
|
OraGroupId = model.OraGroupId,
|
|
Datum = model.Datum,
|
|
NapiSzamonkeresLimit = limit,
|
|
OsztalyCsoportId = model.OsztalyCsoportId,
|
|
ErtekelesModokLimithez = ertekelesModokLimithez
|
|
};
|
|
|
|
var ds = helper.GetTanulokSzamonkeresElorejelzesei(co);
|
|
|
|
switch (szKLogic.SzamonkeresLimitFigyelmeztetes)
|
|
{
|
|
case 1:
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
string msg = string.Format(OrarendResource.FelvitelNemLehetsegesLimit0Miatt, limit) + "<br>";
|
|
|
|
foreach (DataRow row in ds.Tables[0].Rows)
|
|
{
|
|
msg += SDAConvert.ToString(row["Nev"]) + " - " + SDAConvert.ToString(row["OsztalyNev"]) + " (" + SDAConvert.ToString(row["SzamonkeresekSzama"]) + ") " + "<br>";
|
|
}
|
|
|
|
throw new StatusError(HttpStatusCode.BadRequest, msg);
|
|
}
|
|
|
|
break;
|
|
case 2:
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
string msg = string.Format(OrarendResource.FelvitelNemLehetsegesLimit0MiattKerdes, limit) + "<br>" + "<br>";
|
|
|
|
foreach (DataRow row in ds.Tables[0].Rows)
|
|
{
|
|
msg += SDAConvert.ToString(row["Nev"]) + " - " + SDAConvert.ToString(row["OsztalyNev"]) + " (" + SDAConvert.ToString(row["SzamonkeresekSzama"]) + ") " + "<br>";
|
|
}
|
|
|
|
return Json(new { Valid = false, Text = msg });
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
return Json(new { Valid = true, Text = "" });
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveSzamonkeresElorejelzes(SzamonkeresElorejelzesModel model)
|
|
{
|
|
ModelState.Merge(model.Validate());
|
|
|
|
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
SzamonkeresElorejelzesSearchCO co = new SzamonkeresElorejelzesSearchCO
|
|
{
|
|
OraGroupId = model.OraGroupId,
|
|
DatumTol = model.Datum,
|
|
DatumIg = model.Datum.Value.AddDays(1),
|
|
OsztalyCsoportId = model.OsztalyCsoportId
|
|
};
|
|
|
|
var ds = helper.GetBejelentettSzamonkeresekGrid(co);
|
|
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.DuplikaltSzamonkeresElorejelzes);
|
|
}
|
|
|
|
if (ModelState.IsValid)
|
|
{
|
|
helper.SaveSzamonkeresElorejelzes(model.ToCo(), ClaimData.FelhasznaloId);
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteSzamonkeresElorejelzes(int id)
|
|
{
|
|
try
|
|
{
|
|
var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
helper.DeleteSzamonkeresElorejelzes(id);
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaATorlesSoran);
|
|
}
|
|
}
|
|
}
|
|
}
|