init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
277
Kreta.BusinessLogic/Helpers/CsengetesiRendOrakHelper.cs
Normal file
277
Kreta.BusinessLogic/Helpers/CsengetesiRendOrakHelper.cs
Normal file
|
@ -0,0 +1,277 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.DataAccessManual.Util;
|
||||
using Kreta.Framework;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class CsengetesiRendOrakHelper : LogicBase
|
||||
{
|
||||
public CsengetesiRendOrakHelper(IConnectionType connectionType) : base(connectionType) { }
|
||||
|
||||
public void UpdateCsengetesiRend(int? newCsengetesiRendId, int? oldCsengetesiRendId)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var csengOraDal = h.CsengetesiRendOrak();
|
||||
csengOraDal.UpdateCsengetesiRend(newCsengetesiRendId, oldCsengetesiRendId);
|
||||
var orarendDal = h.OrarendiOra();
|
||||
orarendDal.UpdateOrarend(IntezmenyId, TanevId, null, null, null, null);
|
||||
});
|
||||
}
|
||||
|
||||
public CsengetesiRendOraCO GetCsengetesiRendKapcsolodoOra(int csengetesiRendId)
|
||||
{
|
||||
var result = new CsengetesiRendOraCO();
|
||||
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.CsengetesiRendOrak(GridParameters);
|
||||
var ds = dal.GetCsengetesiiRendKapcsolodoOra(csengetesiRendId, TanevId, IntezmenyId);
|
||||
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
result.ID = SDAConvert.ToInt32(row["ID"]);
|
||||
result.IsVanKapcsolodoOra = SDAConvert.ToBoolean(row["IsVanOraKapcsolodas"]);
|
||||
result.Aktiv = SDAConvert.ToBoolean(row["IsAktiv"]);
|
||||
result.MinOraszam = SDAConvert.ToInt32(row["MinOraszam"]);
|
||||
result.MaxOraszam = SDAConvert.ToInt32(row["MaxOraszam"]);
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<(string OraKezdet, string OraVeg)> GetCsengetesiRendKapcsolodoOraKezdeteVege(int csengetesiRendId)
|
||||
{
|
||||
var result = new List<(string oraKezdet, string oraVeg)>();
|
||||
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.CsengetesiRendOrak(GridParameters);
|
||||
var ds = dal.GetCsengetesiiRendKapcsolodoOraKezdeteVege(csengetesiRendId, TanevId);
|
||||
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
result.Add((SDAConvert.ToString(row["OraKezdete"]), SDAConvert.ToString(row["OraVege"])));
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public DataSet GetCsengetesiRendOraiForGrid(int csengetesiRendId, bool onlyReal)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.CsengetesiRendOrak(GridParameters);
|
||||
var ds = dal.GetCsengetesiRendOraiForGrid(csengetesiRendId, onlyReal);
|
||||
|
||||
ds.Tables[0].Columns.Add("IsHaveReferences");
|
||||
foreach (DataRow row in ds.Tables[0].Rows)
|
||||
{
|
||||
if (row.Field<bool>("IsReal_BOOL") && row["CsengetesiRendOraId"] != DBNull.Value)
|
||||
{
|
||||
row["IsHaveReferences"] = IsHaveReferences(row.Field<int>("CsengetesiRendOraId"));
|
||||
}
|
||||
}
|
||||
|
||||
return ds;
|
||||
});
|
||||
}
|
||||
|
||||
public void SaveCsengetesiRendOraLista(List<CsengetesiRendOraCO> model, bool isVisszamenoleges, int? kovTanevId)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
int csengetesiRendId = model[0].CsengetesiRendID;
|
||||
var dal = h.CsengetesiRend();
|
||||
var csengOraDal = h.CsengetesiRendOrak();
|
||||
var orarendDal = h.OrarendiOra();
|
||||
var entity = dal.Get(csengetesiRendId);
|
||||
var torlendoCsengetesiRendOrak = new List<int>();
|
||||
foreach (var item in model)
|
||||
{
|
||||
if (!item.Aktiv)
|
||||
{
|
||||
if (item.ID != null && !IsHaveReferences(item.ID.Value))
|
||||
{
|
||||
torlendoCsengetesiRendOrak.Add(item.ID.Value);
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
var listItem = entity.CsengetesiRendOra.SingleOrDefault(x => x.ID == item.ID);
|
||||
|
||||
if (listItem != null)
|
||||
{
|
||||
listItem.Kezdete = item.Kezd;
|
||||
listItem.Vege = item.Veg;
|
||||
listItem.Oraszam = item.Oraszam;
|
||||
|
||||
csengOraDal.Update(listItem);
|
||||
|
||||
if (isVisszamenoleges)
|
||||
{
|
||||
csengOraDal.UpdateOrarendiOraVisszamenolegesen(item.ID.Value);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var ora = csengOraDal.Get();
|
||||
ora.CsengetesiRendId = csengetesiRendId;
|
||||
ora.Oraszam = item.Oraszam;
|
||||
ora.Kezdete = item.Kezd;
|
||||
ora.Vege = item.Veg;
|
||||
ora.TanevId = TanevId;
|
||||
|
||||
csengOraDal.Insert(ora);
|
||||
item.ID = ora.ID;
|
||||
}
|
||||
|
||||
var th = new TanevHelper(new DalHandlerConnectionType(ConnectionType, h));
|
||||
int currentKovTanevId = kovTanevId ?? th.GetKovetkezoTanev().Key;
|
||||
|
||||
if (currentKovTanevId.IsEntityId() && currentKovTanevId != TanevId)
|
||||
{
|
||||
csengOraDal.FollowUpCsengetesiRendOra(IntezmenyId, TanevId, currentKovTanevId, item.ID.Value, csengetesiRendId, isVisszamenoleges);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (torlendoCsengetesiRendOrak.Count > 0)
|
||||
{
|
||||
csengOraDal.CsengetesiRendOrakTorles(torlendoCsengetesiRendOrak, TanevId);
|
||||
orarendDal.UpdateOrarend(IntezmenyId, TanevId, null, null, null, null);
|
||||
}
|
||||
else if (isVisszamenoleges)
|
||||
{
|
||||
orarendDal.UpdateOrarend(IntezmenyId, TanevId, null, null, null, null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public int GetCsengetesiRendOraSzam(int csengRendId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var csora = h.CsengetesiRendOrak().Get(csengRendId);
|
||||
return csora.Oraszam;
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetCsengetesiOrakKezdVeg()
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.CsengetesiRendOrak(GridParameters);
|
||||
return dal.GetCsengetesiOrakKezdVeg(TanevId, IntezmenyId);
|
||||
});
|
||||
}
|
||||
|
||||
public IDictionary<string, string> ValidateCsengetesiRendOrak(List<CsengetesiRendOraCO> list)
|
||||
{
|
||||
var errorList = new Dictionary<string, string>();
|
||||
|
||||
foreach (CsengetesiRendOraCO itemA in list.Where(x => x.Kezd.Year == 1900 && x.Veg.Year == 1900))
|
||||
{
|
||||
if (itemA.Kezd < itemA.Veg)
|
||||
{
|
||||
int kulonbseg = (itemA.Veg.Subtract(itemA.Kezd).Hours * 60) + itemA.Veg.Subtract(itemA.Kezd).Minutes;
|
||||
|
||||
if (kulonbseg < 15 ||
|
||||
kulonbseg > 90)
|
||||
{
|
||||
errorList.Add(StringResourcesUtil.GetString(3988) + itemA.Oraszam /*Időtartam*/, string.Format(StringResourcesUtil.GetString(3989), itemA.Oraszam, kulonbseg)); //A(z) {0} óra időtartama nem 30,35,40 vagy 45 perc.({1} perc)
|
||||
}
|
||||
|
||||
foreach (CsengetesiRendOraCO itemB in list)
|
||||
{
|
||||
if (itemB.Kezd < itemB.Veg && itemB.Oraszam > itemA.Oraszam)
|
||||
{
|
||||
if (itemA.Kezd > itemB.Veg || itemA.Veg > itemB.Kezd)
|
||||
{
|
||||
errorList.Add(StringResourcesUtil.GetString(3990) + itemA.Oraszam /*Ütközés*/, string.Format(StringResourcesUtil.GetString(3991), itemA.Oraszam, itemB.Oraszam)); //A(z) {0}. óra ütközik a(z) {1}. órával.
|
||||
break; // A kód elszáll, ha egyszerre többel is ütközik.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (itemA.Kezd.Hour == 0 && itemA.Kezd.Minute == 0 && itemA.Veg.Hour == 0 && itemA.Veg.Minute == 0)
|
||||
{
|
||||
errorList.Add(StringResourcesUtil.GetString(3999) + itemA.Oraszam /*Kitöltetlen*/, string.Format(StringResourcesUtil.GetString(4000), itemA.Oraszam)); // A(z) {0}. óra értékei nem lettek kitöltve.
|
||||
}
|
||||
else
|
||||
{
|
||||
errorList.Add(StringResourcesUtil.GetString(3992) + itemA.Oraszam /*Kezdete-Vége*/, string.Format(StringResourcesUtil.GetString(3993), itemA.Oraszam)); //A(z) {0}. óra kezdete nagyobb mint a vége.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return errorList;
|
||||
}
|
||||
|
||||
public DataTable GetCsengetesirendOrakNaptarhoz(int? csengetesiRendId = null)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.CsengetesiRendOrak(GridParameters);
|
||||
var ds = dal.GetCsengetesirendOrakNaptarhoz(TanevId, csengetesiRendId);
|
||||
|
||||
if (ds.Tables.Count > 0)
|
||||
{
|
||||
return ds.Tables[0];
|
||||
}
|
||||
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
public List<CsengetesiRendOraCO> GetCsengetesiRendOraCoList(int? csengetesiRendId = null)
|
||||
{
|
||||
var result = new List<CsengetesiRendOraCO>();
|
||||
var dataTable = GetCsengetesirendOrakNaptarhoz(csengetesiRendId);
|
||||
foreach (DataRow dataRow in dataTable.Rows)
|
||||
{
|
||||
result.Add(new CsengetesiRendOraCO
|
||||
{
|
||||
ID = SDAConvert.ToInt32(dataRow["ID"]),
|
||||
Kezd = SDAConvert.ToDateTime(dataRow["C_KEZDETE"]).Value,
|
||||
Veg = SDAConvert.ToDateTime(dataRow["C_VEGE"]).Value,
|
||||
Oraszam = SDAConvert.ToInt32(dataRow["C_ORASZAM"])
|
||||
});
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public int? GetCsengetesiRendOraId(int csengRendId, int oraszam)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
return h.CsengetesiRendOrak().GetCsengetesiRendOraIdByIdAndOraszam(csengRendId, oraszam, TanevId);
|
||||
});
|
||||
}
|
||||
|
||||
public bool IsHaveReferences(int csengetesiRendOraId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.CsengetesiRendOrak();
|
||||
var result = dal.ReferencesCount(csengetesiRendOraId, TanevId);
|
||||
|
||||
return result.Tables[0].Rows.Cast<DataRow>().Any(row => row.Field<int>("darab") > 0);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue