init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
185
Kreta.BusinessLogic/Helpers/OrarendTorleseHelper.cs
Normal file
185
Kreta.BusinessLogic/Helpers/OrarendTorleseHelper.cs
Normal file
|
@ -0,0 +1,185 @@
|
|||
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.HelperClasses.ImportCo;
|
||||
using Kreta.BusinessLogic.Helpers.ImportExport;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.DataAccessManual.ParameterClasses;
|
||||
using Kreta.DataAccessManual.Util;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Enums.ManualEnums.ImportExport;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class OrarendTorleseHelper : LogicBase
|
||||
{
|
||||
public OrarendTorleseHelper(IConnectionType connectionType) : base(connectionType)
|
||||
{
|
||||
}
|
||||
|
||||
public List<(string Text, string Value)> GetFeladatellatasiHelyek(bool isKellOcsDarabszam = false)
|
||||
{
|
||||
var ret = new List<(string Text, string Value)>();
|
||||
Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var dal = h.FeladatEllatasiHelyDal();
|
||||
var ds = dal.GetFeladatEllatasiHelyekForkDropDown(TanevId);
|
||||
ret.AddRange(ds.Tables[0].AsEnumerable().OrderBy(x => x.Field<int>("MukodesiHelyID")).ThenBy(x => x.Field<int>("OktNevFel")).Select(x => (Text: x.Field<string>("Nev"), Value: x.Field<int>("ID").ToString())));
|
||||
if (isKellOcsDarabszam)
|
||||
{
|
||||
for (int i = 0; i < ret.Count; i++)
|
||||
{
|
||||
var felhely = ret[i];
|
||||
var ocsRows = dal.GetFeladatellatasiHelyOsztalycsoportjai(int.Parse(felhely.Value), TanevId).Tables[0].AsEnumerable();
|
||||
int osztalySzam = ocsRows.Count(x => x.Field<string>("Tipus") == "Osztály");
|
||||
int csoportSzam = ocsRows.Count(x => x.Field<string>("Tipus") == "Csoport");
|
||||
felhely.Text += $" (Osztályok száma: {osztalySzam}, Csoportok száma: {csoportSzam})";
|
||||
ret[i] = felhely;
|
||||
}
|
||||
}
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
|
||||
public (DateTime EvKezdoNapja, DateTime EvUtolsoNapja) GetMinMaxDatumValaszto()
|
||||
{
|
||||
var tanevInfo = new TanevHelper(ConnectionType).GetTanevInfo();
|
||||
return (EvKezdoNapja: tanevInfo.KezdoNap, EvUtolsoNapja: tanevInfo.UtolsoNap);
|
||||
}
|
||||
|
||||
public List<(string Text, string Value)> GetNezetTipusok()
|
||||
{
|
||||
return Enum.GetValues(typeof(OrarendekTorleseNezetTipusEnum)).OfType<OrarendekTorleseNezetTipusEnum>().Select(x => (Text: x.GetDisplayName(TanevId), Value: x.ToString())).ToList();
|
||||
}
|
||||
|
||||
public List<(string FileName, MemoryStream FileStream)> OrarendekTorlese(OrarendekTorleseCo orarendekTorleseCo)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, (h) =>
|
||||
{
|
||||
var orarendiOraDal = h.OrarendiOra();
|
||||
|
||||
var orarendekTorlesePco = orarendekTorleseCo.ConvertToPco(TanevId, FelhasznaloId);
|
||||
|
||||
var exportok = GetExportok(h, orarendekTorlesePco);
|
||||
|
||||
orarendiOraDal.OrarendekTorlese(orarendekTorlesePco);
|
||||
|
||||
return exportok;
|
||||
});
|
||||
}
|
||||
|
||||
private List<(string FileName, MemoryStream FileStream)> GetExportok(IDalHandler dalHandler, OrarendekTorlesePco orarendekTorlesePco)
|
||||
{
|
||||
var orarendiOraDal = dalHandler.OrarendiOra();
|
||||
var importExportDal = dalHandler.ImportExportDal();
|
||||
|
||||
var exportAdatokDs = orarendiOraDal.GetExportAdatokForOrarendekTorlese(orarendekTorlesePco);
|
||||
|
||||
var orarendExportAdatokDs = importExportDal.GetOrarendExcelExportData(TanevId, orarendekTorlesePco.IntervallumKezdete, orarendekTorlesePco.IntervallumVege, isOraErvenyessegiIdovel: true, isIdoszakonKivuliElemekMegjelenitese: true);
|
||||
|
||||
var results = new List<(string FileName, MemoryStream FileStream)>();
|
||||
|
||||
var orarendImportExportHelper = new OrarendImportExportHelper(new DalHandlerConnectionType(ConnectionType, dalHandler));
|
||||
|
||||
var exportAdatok = exportAdatokDs.Tables[0].AsEnumerable().Select(r => new OrarendekTorleseExportAdatokCo
|
||||
{
|
||||
Id = r.Field<int>("Id"),
|
||||
ErvenyessegKezdete = r.Field<DateTime>("ErvenyessegKezdete"),
|
||||
ErvenyessegVege = r.Field<DateTime>("ErvenyessegVege"),
|
||||
IsNapirend = r.Field<bool>("IsNapirend")
|
||||
}).ToList();
|
||||
|
||||
var existsTanora = exportAdatok.Any(a => !a.IsNapirend);
|
||||
var existsNapirendiOra = exportAdatok.Any(a => a.IsNapirend);
|
||||
var orarendExportList = GetOrarendExportList(orarendekTorlesePco.NezetTipus, existsTanora, existsNapirendiOra);
|
||||
foreach (var (FileName, OrarendExportSettings) in orarendExportList)
|
||||
{
|
||||
var exportDataSet = CreateExportDataSet(exportAdatok, orarendExportAdatokDs, OrarendExportSettings.IsNapirendImport);
|
||||
var workbookMemoryStream = orarendImportExportHelper.GetWorkbook(OrarendExportSettings, exportDataSet);
|
||||
results.Add((FileName, workbookMemoryStream));
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
private IEnumerable<(string FileName, OrarendImportFileUploadCo OrarendExportSettings)> GetOrarendExportList(OrarendekTorleseNezetTipusEnum nezetTipus, bool existsTanora, bool existsNapirendiOra)
|
||||
{
|
||||
var results = new List<(string FileName, OrarendImportFileUploadCo OrarendExportSettings)>();
|
||||
|
||||
if (existsTanora && nezetTipus != OrarendekTorleseNezetTipusEnum.Napirend)
|
||||
{
|
||||
results.Add((ImportExportOrarendResource.ExportFileName,
|
||||
new OrarendImportFileUploadCo
|
||||
{
|
||||
OrarendImportTipus = (int)OrarendImportTipusEnum.Import,
|
||||
IsNapirendImport = false,
|
||||
WorksheetName = ImportExportOrarendResource.ImportDefaultSheetNameOrarend,
|
||||
ExcelHeaderList = OrarendImportExportHelper.ImportHeaderList
|
||||
}));
|
||||
|
||||
results.Add((ImportExportOrarendResource.ExportFileNameErvenyessegiIdovel,
|
||||
new OrarendImportFileUploadCo
|
||||
{
|
||||
OrarendImportTipus = (int)OrarendImportTipusEnum.ErvenyessegiIdovelImport,
|
||||
IsNapirendImport = false,
|
||||
WorksheetName = ImportExportOrarendResource.ImportDefaultSheetNameOrarendErvenyessegiIdovel,
|
||||
ExcelHeaderList = OrarendImportExportHelper.ImportHeaderListOraErvenyessegiIdovel
|
||||
}));
|
||||
}
|
||||
|
||||
if (existsNapirendiOra && nezetTipus != OrarendekTorleseNezetTipusEnum.Tanora)
|
||||
{
|
||||
results.Add((ImportExportOrarendResource.ExportFileNameNapirend,
|
||||
new OrarendImportFileUploadCo
|
||||
{
|
||||
OrarendImportTipus = (int)OrarendImportTipusEnum.Import,
|
||||
IsNapirendImport = true,
|
||||
WorksheetName = ImportExportOrarendResource.ImportDefaultSheetNameNapirend,
|
||||
ExcelHeaderList = OrarendImportExportHelper.ImportHeaderListNapirend
|
||||
}));
|
||||
|
||||
results.Add((ImportExportOrarendResource.ExportFileNameNapirendErvenyessegiIdovel,
|
||||
new OrarendImportFileUploadCo
|
||||
{
|
||||
OrarendImportTipus = (int)OrarendImportTipusEnum.ErvenyessegiIdovelImport,
|
||||
IsNapirendImport = true,
|
||||
WorksheetName = ImportExportOrarendResource.ImportDefaultSheetNameNapirendErvenyessegiIdovel,
|
||||
ExcelHeaderList = OrarendImportExportHelper.ImportHeaderListNapirendOraErvenyessegiIdovel
|
||||
}));
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
private DataSet CreateExportDataSet(List<OrarendekTorleseExportAdatokCo> exportAdatok, DataSet orarendExportAdatokDs, bool isNapirend)
|
||||
{
|
||||
var filteredExportAdatok = exportAdatok.Where(a => isNapirend ? a.IsNapirend : !a.IsNapirend);
|
||||
|
||||
var exportDs = orarendExportAdatokDs.Copy();
|
||||
foreach (DataRow dataRow in exportDs.Tables[0].Rows)
|
||||
{
|
||||
var orarendiOraId = dataRow.Field<int>("Id");
|
||||
var exportAdat = filteredExportAdatok.FirstOrDefault(a => a.Id == orarendiOraId);
|
||||
if (exportAdat != null)
|
||||
{
|
||||
dataRow.SetField("OraErvenyessegKezdete", exportAdat.ErvenyessegKezdete);
|
||||
dataRow.SetField("OraErvenyessegVege", exportAdat.ErvenyessegVege);
|
||||
}
|
||||
else
|
||||
{
|
||||
dataRow.Delete();
|
||||
}
|
||||
}
|
||||
|
||||
exportDs.AcceptChanges();
|
||||
return exportDs;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue