init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
280
Kreta.BusinessLogic/Helpers/IgazolasHelper.cs
Normal file
280
Kreta.BusinessLogic/Helpers/IgazolasHelper.cs
Normal file
|
@ -0,0 +1,280 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Logic;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Resources;
|
||||
using OfficeOpenXml;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class IgazolasHelper : LogicBase
|
||||
{
|
||||
public IgazolasHelper(IConnectionType connectionType) : base(connectionType) { }
|
||||
|
||||
public IgazolasCO GetIgazolasCoById(int id)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
||||
{
|
||||
var igazolasDal = helper.IgazolasDal(GridParameters);
|
||||
var entity = igazolasDal.Get(id);
|
||||
|
||||
return new IgazolasCO(entity);
|
||||
});
|
||||
}
|
||||
|
||||
public IgazolasCO GetIgazolasInfo(int id)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var iDal = h.IgazolasDal();
|
||||
var tDal = h.TanuloCsoport();
|
||||
|
||||
var igazolasInfok = iDal.GetIgazolasInfo(id);
|
||||
var tanuloIdList = igazolasInfok.Tables[0].AsEnumerable().Select(d => d.Field<int>("TanuloId")).Distinct();
|
||||
|
||||
var dsTanulok = tDal.GetTanulokOsztalyai(tanuloIdList.ToList());
|
||||
|
||||
MergeOsztalyokColumnIntoIgazolasok(igazolasInfok, dsTanulok);
|
||||
|
||||
var igazolasCo = new IgazolasCO();
|
||||
if (igazolasInfok.Tables.Count > 0 && igazolasInfok.Tables[0].Rows.Count > 0)
|
||||
{
|
||||
var row = igazolasInfok.Tables[0].Rows[0];
|
||||
igazolasCo.ID = SDAConvert.ToInt32(row["ID"]);
|
||||
igazolasCo.TanuloId = SDAConvert.ToInt32(row["TanuloId"]);
|
||||
igazolasCo.TanuloNev = row["Nev"].ToString();
|
||||
//igazolasCo.OsztCsop = SDAConvert.ToInt32(row["OsztalyCsoportId"]);
|
||||
igazolasCo.OsztCsopNev = row["OsztalyCsoport"].ToString();
|
||||
igazolasCo.ErvKezdete = SDAConvert.ToDateTime(row["Kezdete"]).Value;
|
||||
igazolasCo.ErvVege = SDAConvert.ToDateTime(row["Vege"]).Value;
|
||||
igazolasCo.IgazolasTipus = SDAConvert.ToInt32(row["IgazolasTipusa"]);
|
||||
igazolasCo.Megjegyzes = row["Megjegyzes"].ToString();
|
||||
igazolasCo.RogzDatum = SDAConvert.ToDateTime(row["RogzitesDatuma"]).Value;
|
||||
igazolasCo.RogzitoNev = row["Rogzito"].ToString();
|
||||
}
|
||||
return igazolasCo;
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetIgazolasByTanuloId(int tanuloId)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
||||
{
|
||||
var igazolasDal = helper.IgazolasDal(GridParameters);
|
||||
return igazolasDal.GetIgazolasDataSet(tanuloId);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetInformaciokIgazolasGrid(IgazolasSearchCo co)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
||||
{
|
||||
var igazolasDal = helper.IgazolasDal(GridParameters);
|
||||
return igazolasDal.GetIgazolasSearchDataSet(co.ConvertToPco());
|
||||
});
|
||||
}
|
||||
|
||||
public void SaveOrUpdateIgazolas(IgazolasCO co)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, helper =>
|
||||
{
|
||||
var igazolasDal = helper.IgazolasDal(GridParameters);
|
||||
var igazolas = igazolasDal.Get();
|
||||
|
||||
if (co.ID.HasValue && co.ID.Value > 0)
|
||||
{
|
||||
igazolas = igazolasDal.Get(co.ID.Value);
|
||||
}
|
||||
|
||||
igazolas.IgazolasTipusa = co.IgazolasTipus ?? 0;
|
||||
igazolas.Kezdete = co.ErvKezdete;
|
||||
igazolas.Vege = co.ErvVege;
|
||||
igazolas.Megjegyzes = co.Megjegyzes;
|
||||
igazolas.TanuloId = co.TanuloId;
|
||||
igazolas.RogzitoId = co.RogzitoId;
|
||||
igazolas.RogzitesDatuma = co.RogzDatum;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(co.Ugyiratszam))
|
||||
{
|
||||
igazolas.Ugyiratszam = co.Ugyiratszam;
|
||||
}
|
||||
|
||||
igazolas.TanevId = TanevId;
|
||||
igazolas.IntezmenyId = IntezmenyId;
|
||||
|
||||
if(co.SzervezetId.HasValue)
|
||||
{
|
||||
igazolas.SzervezetId = co.SzervezetId.Value;
|
||||
}
|
||||
|
||||
if (igazolas.ID > 0)
|
||||
{
|
||||
igazolasDal.Update(igazolas);
|
||||
}
|
||||
else
|
||||
{
|
||||
igazolasDal.Insert(igazolas);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void DeleteIgazolasById(int igazolasId)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, helper =>
|
||||
{
|
||||
var igazolasDal = helper.IgazolasDal(GridParameters);
|
||||
igazolasDal.Delete(igazolasId);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetOsztalyCsoportIgazolasok(int id, OktNevelesiKategoriaEnum? kategoria)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
||||
{
|
||||
var igazolasDal = helper.IgazolasDal(GridParameters);
|
||||
return igazolasDal.GetOsztalyCsoportIgazolasok(id, kategoria);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetOsztalyCsoportIgazolasokForValidate(DataTable igazolasDT)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
||||
{
|
||||
var igazolasDal = helper.IgazolasDal(GridParameters);
|
||||
return igazolasDal.GetOsztalyCsoportIgazolasokForValidate(igazolasDT);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet IgazolasKereses(int? osztCsopID, int? szervezetTipusId = null)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
||||
{
|
||||
var igazolasDal = helper.IgazolasDal(GridParameters);
|
||||
return igazolasDal.IgazolasKereses(osztCsopID, null, szervezetTipusId: szervezetTipusId);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet IgazolasDetailKereses(int tanuloID, int? szervezetTipusId = null)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, helper =>
|
||||
{
|
||||
var igazolasDal = helper.IgazolasDal(GridParameters);
|
||||
return igazolasDal.IgazolasDetailKereses(tanuloID, szervezetTipusId);
|
||||
});
|
||||
}
|
||||
|
||||
public DataSet GetIgazolasokListajaGrid(IgazolasokListajaSearchCO co)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var iDal = h.IgazolasDal(GridParameters);
|
||||
var tDal = h.TanuloCsoport();
|
||||
|
||||
var dsIgazolasok = iDal.GetIgazolasokListajaGrid(co.ConvertToPCO(), null);
|
||||
var tanuloIdList = dsIgazolasok.Tables[0].AsEnumerable().Select(d => d.Field<int>("TanuloId")).Distinct();
|
||||
|
||||
var dsTanulok = tDal.GetTanulokOsztalyai(tanuloIdList.ToList());
|
||||
|
||||
MergeOsztalyokColumnIntoIgazolasok(dsIgazolasok, dsTanulok);
|
||||
|
||||
return dsIgazolasok;
|
||||
});
|
||||
}
|
||||
|
||||
public MemoryStream GetInformaciokIgazolasExcelExport(IgazolasSearchCo igazolasSearchCo)
|
||||
{
|
||||
var igazolasokListajaCO = new IgazolasokListajaSearchCO()
|
||||
{
|
||||
IgazolasKezdteteSearch = igazolasSearchCo.IgazolasKezdeteSearch,
|
||||
IgazolasVegeSearch = igazolasSearchCo.IgazolasVegeSearch,
|
||||
IgazolasTipusaSearch = igazolasSearchCo.IgazolasTipusaSearch,
|
||||
TanuloId = igazolasSearchCo.TanuloId,
|
||||
FeladatEllatasiHelyId = igazolasSearchCo.FeladatEllatasiHelyId
|
||||
};
|
||||
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var igazolasDal = h.IgazolasDal(GridParameters);
|
||||
|
||||
var dsIgazolasok = igazolasDal.GetIgazolasExcelExport(igazolasokListajaCO.ConvertToPCO());
|
||||
|
||||
var dataTable = dsIgazolasok.Tables[0];
|
||||
|
||||
(string fromColumn, string toColumn, Type type)[] exportColumns = new (string, string, Type)[]
|
||||
{
|
||||
("Kezdete", HianyzasResource.ErvenyessegKezdete, typeof(DateTime)),
|
||||
("Vege", HianyzasResource.ErvenyessegVege, typeof(DateTime)),
|
||||
("IgazolasTipusa_DNAME", HianyzasResource.IgazolasTipusa, typeof(string)),
|
||||
("Megjegyzes", HianyzasResource.Megjegyzes, typeof(string)),
|
||||
};
|
||||
|
||||
ExportLogic.MapDataTable(dataTable, exportColumns, true);
|
||||
ExportLogic.TryCreateHeaderIfNotExist(dataTable);
|
||||
|
||||
var stream = new MemoryStream();
|
||||
|
||||
using (var excel = new ExcelPackage(stream))
|
||||
{
|
||||
var workSheet = excel.Workbook.Worksheets.Add(IgazolasResource.IgazolasExport);
|
||||
|
||||
workSheet.Cells[1, 1].LoadFromDataTable(dataTable, true);
|
||||
ExportLogic.FormatDateFields(exportColumns, workSheet);
|
||||
ExportLogic.SetHeaderStyles(workSheet.Cells[1, 1, 1, dataTable.Columns.Count]);
|
||||
|
||||
workSheet.Cells.AutoFitColumns();
|
||||
excel.Save();
|
||||
}
|
||||
|
||||
stream.Position = 0;
|
||||
|
||||
return stream;
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
private static void MergeOsztalyokColumnIntoIgazolasok(DataSet dsIgazolasok, DataSet dsTanulok)
|
||||
{
|
||||
// Az igazolasok listája alapesetben nem tartalmazza a tanuló osztály rekordját
|
||||
// Az igazolások soraiban a tanuló osztályainak befrissítése ("többosztály" kezelése):
|
||||
dsIgazolasok.Tables[0].Columns.Add("OsztalyCsoport");
|
||||
foreach (DataRow item in dsIgazolasok.Tables[0].Rows)
|
||||
{
|
||||
var tanuloId = item.Field<int>("TanuloId");
|
||||
|
||||
var queryR = from f in dsTanulok.Tables[0].AsEnumerable()
|
||||
where f.Field<int>("C_TANULOID") == tanuloId
|
||||
&& f.Field<DateTime>("C_BELEPESDATUM") <= item.Field<DateTime>("Kezdete")
|
||||
&& (f.Field<DateTime?>("C_KILEPESDATUM") is null || f.Field<DateTime?>("C_KILEPESDATUM") >= item.Field<DateTime>("Vege"))
|
||||
select
|
||||
f.Field<string>("C_NEV");
|
||||
|
||||
if (queryR.Any())
|
||||
{
|
||||
item["OsztalyCsoport"] = string.Join(", ", queryR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<IgazolasItemCo> GetIgazolasCoList(IgazolasokListajaSearchCO searchModel)
|
||||
{
|
||||
var igazolasok = new List<IgazolasItemCo>();
|
||||
|
||||
var ds = GetIgazolasokListajaGrid(searchModel);
|
||||
|
||||
foreach (DataRow dataRow in ds.Tables[0].Rows)
|
||||
{
|
||||
var itemCo = new IgazolasItemCo(dataRow);
|
||||
igazolasok.Add(itemCo);
|
||||
}
|
||||
|
||||
return igazolasok;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue