242 lines
8.8 KiB
C#
242 lines
8.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text.RegularExpressions;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Logic;
|
|
using Kreta.Core;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.DataAccess.Interfaces;
|
|
using Kreta.DataAccessManual;
|
|
using Kreta.DataAccessManual.Interfaces;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums;
|
|
using Kreta.Resources;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers
|
|
{
|
|
public class OralatogatasokHelper : LogicBase
|
|
{
|
|
public OralatogatasokHelper(IConnectionType connectionType) : base(connectionType) { }
|
|
|
|
public DataSet OralatogatasokKeresese(OralatogatasokKereseseCO co)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var ds = h.OralatogatasDal(GridParameters).GetOralatogatasok(TanevId, co.ConvertPCO(FelhasznaloId));
|
|
return ds;
|
|
});
|
|
}
|
|
|
|
public OralatogatasokCO GetOralatogatas(int oralatogatasId)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var co = new OralatogatasokCO();
|
|
|
|
var ol = h.OralatogatasDal().Get(oralatogatasId);
|
|
|
|
co.Beosztas = ol.OralatogatoBeosztasa;
|
|
co.Date = ol.Datum;
|
|
co.Latogato = ol.Ertekelo.NyomtatasiNev;
|
|
co.LatogatoID = ol.ErtekeloId;
|
|
co.Megjegyzes = ol.Megjegyzes;
|
|
co.Ora = ol.MegtartottOra.Oraszam ?? 0;
|
|
co.OsztalyCsoport = ol.MegtartottOra.OsztalyCsoport.Nev;
|
|
co.LatogatottPedagogus = ol.MegtartottOra.Tanar.NyomtatasiNev;
|
|
co.Tantargy = ol.MegtartottOra.Tantargy.Nev;
|
|
return co;
|
|
});
|
|
}
|
|
|
|
public void DeleteOralatogatas(int oraId, int tanarId)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var dal = h.OralatogatasDal();
|
|
dal.Delete(oraId, tanarId);
|
|
});
|
|
}
|
|
|
|
public OralatogatasokCO GetOraOralatogatasa(int OraID)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var co = new OralatogatasokCO();
|
|
var ora = h.TanitasiOra().Get(OraID);
|
|
|
|
if (ora.Oralatogatasok.Count > 0)
|
|
{
|
|
var oraLatogatas = ora.Oralatogatasok.FirstOrDefault(x => x.Torolt == false);
|
|
if (oraLatogatas != null)
|
|
{
|
|
co.Date = oraLatogatas.Datum;
|
|
co.Beosztas = oraLatogatas.OralatogatoBeosztasa;
|
|
co.LatogatoID = oraLatogatas.ErtekeloId;
|
|
co.Latogato = oraLatogatas.Ertekelo.NyomtatasiNev;
|
|
co.Megjegyzes = oraLatogatas.Megjegyzes;
|
|
return co;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
});
|
|
}
|
|
|
|
public OralatogatasokCO GetOraOralatogatasa(int OraID, int tanarID)
|
|
{
|
|
return Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
var co = new OralatogatasokCO();
|
|
var ora = h.TanitasiOra().Get(OraID);
|
|
|
|
if (ora.Oralatogatasok.Count > 0)
|
|
{
|
|
var oraLatogatas = ora.Oralatogatasok.Where(x => x.ErtekeloId == tanarID && x.Torolt == false).FirstOrDefault();
|
|
if (oraLatogatas != null)
|
|
{
|
|
co.Id = oraLatogatas.ID;
|
|
co.Date = oraLatogatas.Datum;
|
|
co.Beosztas = oraLatogatas.OralatogatoBeosztasa;
|
|
co.LatogatoID = oraLatogatas.ErtekeloId;
|
|
co.Latogato = oraLatogatas.Ertekelo.NyomtatasiNev;
|
|
co.Megjegyzes = oraLatogatas.Megjegyzes;
|
|
return co;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
});
|
|
}
|
|
|
|
public void SaveOralatogatas(OralatogatasokCO CO)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
if (string.IsNullOrWhiteSpace(CO.Megjegyzes))
|
|
throw new ArgumentNullException("Megjegyzes");
|
|
|
|
if (CO.LatogatoID == 0)
|
|
throw new ArgumentNullException("LatogatoID");
|
|
|
|
if (CO.Date == DateTime.MinValue)
|
|
throw new ArgumentNullException("Datum");
|
|
|
|
if (CO.Ora == 0)
|
|
throw new ArgumentNullException("Ora");
|
|
|
|
var ora = h.TanitasiOra().Get(CO.Ora);
|
|
IOralatogatas oralatogatas;
|
|
|
|
var isNew = false;
|
|
|
|
if (ora.Oralatogatasok.Count == 0)
|
|
{
|
|
oralatogatas = h.OralatogatasDal().Get();
|
|
isNew = true;
|
|
}
|
|
else
|
|
{
|
|
oralatogatas = ora.Oralatogatasok.Where(x => x.ErtekeloId == CO.LatogatoID && x.Torolt == false).FirstOrDefault();
|
|
|
|
if (oralatogatas == null)
|
|
{
|
|
oralatogatas = h.OralatogatasDal().Get();
|
|
isNew = true;
|
|
}
|
|
}
|
|
|
|
oralatogatas.MegtartottOraId = CO.Ora;
|
|
oralatogatas.Datum = CO.Date;
|
|
oralatogatas.Megjegyzes = System.Web.HttpUtility.HtmlDecode(CO.Megjegyzes).ReplaceMultipleSpacesAndTrim();
|
|
oralatogatas.ErtekeloId = CO.LatogatoID;
|
|
|
|
var munkakorTipusId = h.Alkalmazott().GetAlklamazottMunkakorTipusa(CO.LatogatoID);
|
|
oralatogatas.OralatogatoBeosztasa = munkakorTipusId.GetDisplayName<MunkakorTipusEnum>(TanevId);
|
|
|
|
var dal = h.OralatogatasDal();
|
|
var nemKotottMunkaidoDal = h.NemKotottMunkaido();
|
|
|
|
if (CO.NemKotottMunkaidos)
|
|
{
|
|
InsertNemKotottMunkaido(h, ora, CO);
|
|
}
|
|
if (isNew)
|
|
{
|
|
dal.Insert(oralatogatas);
|
|
}
|
|
else
|
|
{
|
|
dal.FullUpdate(oralatogatas);
|
|
|
|
var nkmId = nemKotottMunkaidoDal.GetNemKotottMunkaidoId(oralatogatas.ID, FelhasznaloId);
|
|
if (nkmId != -1)
|
|
{
|
|
nemKotottMunkaidoDal.Update(nkmId, true, megjegyzes: RichTextLogic.CutHtmlTagsAndDecode(oralatogatas.Megjegyzes));
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
private void InsertNemKotottMunkaido(IDalHandler h, ITanitasiOra ora, OralatogatasokCO co)
|
|
{
|
|
var helper = new NemKotottMunkaidoHelper(new DalHandlerConnectionType(ConnectionType, h));
|
|
|
|
var nemKotottCo = new NemKotottMunkaidoCO()
|
|
{
|
|
GroupId = Guid.NewGuid().ToString(),
|
|
HetirendId = (int)HetiRendTipusEnum.MindegyikHet,
|
|
TorvenyKategoriaId = (int)TevekenysegTipusEnum.egyeb,
|
|
TanarId = FelhasznaloId,
|
|
TulajId = FelhasznaloId,
|
|
Megtartott = true,
|
|
|
|
Kezdete = ora.OraKezdete,
|
|
Vege = ora.OraVege,
|
|
NaplozottMegjegyzes = StripHTML(System.Web.HttpUtility.HtmlDecode(co.Megjegyzes)).ReplaceMultipleSpacesAndTrim()
|
|
};
|
|
|
|
helper.Insert(nemKotottCo);
|
|
}
|
|
|
|
public static string StripHTML(string input)
|
|
{
|
|
return Regex.Replace(input, "<.*?>", string.Empty);
|
|
}
|
|
|
|
public bool OralatogatasUtkozes(int tanarId, int oraId, out string errorMessage)
|
|
{
|
|
errorMessage = null;
|
|
|
|
var ds = Dal.CustomConnection.Run(ConnectionType, h =>
|
|
{
|
|
return h.OralatogatasDal().OralatogatasUtkozes(tanarId, oraId);
|
|
});
|
|
|
|
var utkozesRow = ds.Tables[0].AsEnumerable().FirstOrDefault(r => r.Field<int>("Count") > 0);
|
|
if (utkozesRow != null)
|
|
{
|
|
var oraTipus = utkozesRow.Field<bool>("IsTanitasiOra") ? OralatogatasokResource.TanitasiOraja : OralatogatasokResource.MunkaidosTevekenysege;
|
|
errorMessage = string.Format(OralatogatasokResource.OralatogatasUtkozesHiba, oraTipus);
|
|
}
|
|
|
|
return !string.IsNullOrWhiteSpace(errorMessage);
|
|
}
|
|
|
|
public List<OralatogatasItemCo> GetOralatogatasCoList(OralatogatasokKereseseCO oralatogatasokKereseseCO)
|
|
{
|
|
var oralatogatasokCoList = new List<OralatogatasItemCo>();
|
|
|
|
var ds = OralatogatasokKeresese(oralatogatasokKereseseCO);
|
|
|
|
foreach (var row in ds.Tables[0].AsEnumerable())
|
|
{
|
|
oralatogatasokCoList.Add(new OralatogatasItemCo(row));
|
|
}
|
|
|
|
return oralatogatasokCoList;
|
|
}
|
|
}
|
|
}
|