kreta/Kreta.BusinessLogic/Helpers/EgysegesImportHelper.cs
2024-03-13 00:33:46 +01:00

1797 lines
121 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlTypes;
using System.IO;
using System.Linq;
using System.Runtime.Caching;
using System.Text.RegularExpressions;
using System.Web;
using System.Xml.Serialization;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Classes.ExcelHelpers;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.BusinessLogic.KirService;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Utils;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.Core.Exceptions;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Util;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Framework.Logging;
using Kreta.Framework.Util;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Helpers
{
public class EgysegesImportHelper : LogicBase
{
public EgysegesImportHelper(IConnectionType connectionType) : base(connectionType)
{
}
#region Tanár KIR import
private readonly List<string> TanarOszlopok = new List<string>()
{
"Oktazon",
"Viselt név előtag",
"Viselt név vezetéknév",
"Viselt név keresztnév",
"Viselt név névsorrend",
"Születési név előtag",
"Születési név vezetéknév",
"Születési név keresztnév",
"Születési név névsorrend",
"Anyja neve előtag",
"Anyja neve vezetéknév",
"Anyja neve keresztnév",
"Anyja neve névsorrend",
"Születési dátum",
"Születési hely",
"Születési ország",
"Állandó lakcím irányítószám",
"Állandó lakcím település",
"Állandó lakcím közterület név",
"Állandó lakcím közterület jelleg",
"Állandó lakcím házszám",
"Tartózkodási cím irányítószám",
"Tartózkodási cím település",
"Tartózkodási cím közterület név",
"Tartózkodási cím közterület jelleg",
"Tartózkodási cím házszám",
"OM azonosító",
"Kiemelt feladatellátási hely",
"Jogviszony létrejötte",
"Jogviszony megszűnte",
"Jogviszony típusa",
"Munkakör-kategória",
"Munkakör",
};
private readonly string ExcelTemplateDirectory = "~/Resources/ExcelSablonok";
private readonly string TanuloImportSablonNev = "KIR_Tanulo_Import_Minta.xlsx";
private string TanarKIRAdatokCacheKey => $"{nameof(KIRImportTanarokCO)}_{IntezmenyId}_{FelhasznaloId}_ImportObjectCacheKey";
public KIRImportTanarokCO TanarKIRAdatok
{
get => (KIRImportTanarokCO)Core.Cache.Get(TanarKIRAdatokCacheKey);
set
{
Core.Cache.Remove(TanarKIRAdatokCacheKey);
Core.Cache.Add(TanarKIRAdatokCacheKey, value, new CacheItemPolicy { SlidingExpiration = TimeSpan.FromMinutes(30) });
}
}
public void ExecuteKIRTanarImport(List<KretaPedagogusAdatType> tanarList)
{
var tanarKIRAdatok = new KIRImportTanarokCO();
var kotelezoOraszam = (int)new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<double>(RendszerBeallitasTipusEnum.Egy_statuszra_juto_kotelezo_oraszam);
int sor = 1;
foreach (KretaPedagogusAdatType tanar in tanarList)
{
var kirTanarAdat = new TanarKirAdatCO();
PedagogusSzemelyesAdatType szemelyesAdatok = tanar.SzemelyesAdatok;
kirTanarAdat.LineNumber = sor;
kirTanarAdat.OktatasiAzonosito = szemelyesAdatok.oktazon;
if (string.IsNullOrWhiteSpace(kirTanarAdat.OktatasiAzonosito))
{
break;
}
kirTanarAdat.ID = sor;
kirTanarAdat.ViseltNevElotag = Extensions.NameExtensions.CleanElotag(szemelyesAdatok.ViseltNev.Elonev);
kirTanarAdat.ViseltNevVezetekNev = szemelyesAdatok.ViseltNev.Vezeteknev.ReplaceMultipleSpacesAndTrim();
kirTanarAdat.ViseltNevKeresztNev = szemelyesAdatok.ViseltNev.Keresztnev.ReplaceMultipleSpacesAndTrim();
kirTanarAdat.ViseltNevNevSorrend = (szemelyesAdatok.ViseltNev.NevSorrend == NevSorrendType.VEZETEKNEV) ? "F" : "T";
kirTanarAdat.NyomtatasiNev = Extensions.NameExtensions.GetNevSorrendben(kirTanarAdat.ViseltNevNevSorrend, kirTanarAdat.ViseltNevElotag, kirTanarAdat.ViseltNevVezetekNev, kirTanarAdat.ViseltNevKeresztNev);
kirTanarAdat.SzuletesiNevElotag = Extensions.NameExtensions.CleanElotag(szemelyesAdatok.SzuletesiNev.Elonev);
kirTanarAdat.SzuletesiNevVezetekNev = szemelyesAdatok.SzuletesiNev.Vezeteknev.ReplaceMultipleSpacesAndTrim();
kirTanarAdat.SzuletesiNevKeresztNev = szemelyesAdatok.SzuletesiNev.Keresztnev.ReplaceMultipleSpacesAndTrim();
kirTanarAdat.SzuletesiNevNevSorrend = (szemelyesAdatok.SzuletesiNev.NevSorrend == NevSorrendType.VEZETEKNEV) ? "F" : "T";
kirTanarAdat.SzuletesiNeve = Extensions.NameExtensions.GetNevSorrendben(kirTanarAdat.SzuletesiNevNevSorrend, kirTanarAdat.SzuletesiNevElotag, kirTanarAdat.SzuletesiNevVezetekNev, kirTanarAdat.SzuletesiNevKeresztNev);
kirTanarAdat.AnyjaNeveElotag = Extensions.NameExtensions.CleanElotag(szemelyesAdatok.AnyjaNeve.Elonev);
kirTanarAdat.AnyjaNeveVezetekNev = szemelyesAdatok.AnyjaNeve.Vezeteknev.ReplaceMultipleSpacesAndTrim();
kirTanarAdat.AnyjaNeveKeresztNev = szemelyesAdatok.AnyjaNeve.Keresztnev.ReplaceMultipleSpacesAndTrim();
kirTanarAdat.AnyjaNeveNevSorrend = (szemelyesAdatok.AnyjaNeve.NevSorrend == NevSorrendType.VEZETEKNEV) ? "F" : "T";
kirTanarAdat.AnyjaNeve = Extensions.NameExtensions.GetNevSorrendben(kirTanarAdat.AnyjaNeveNevSorrend, kirTanarAdat.AnyjaNeveElotag, kirTanarAdat.AnyjaNeveVezetekNev, kirTanarAdat.AnyjaNeveKeresztNev);
if (string.IsNullOrWhiteSpace(kirTanarAdat.NyomtatasiNev) && string.IsNullOrWhiteSpace(kirTanarAdat.AnyjaNeve))
{
break;
}
kirTanarAdat.SzuletesiDatum = szemelyesAdatok.SzuletesiIdo;
kirTanarAdat.SzuletesiDatumString = szemelyesAdatok.SzuletesiIdo.ToString("yyyy/MM/dd");
kirTanarAdat.SzuletesiHely = szemelyesAdatok.SzuletesiHelyseg.Value;
var szulorszagSzoveg = szemelyesAdatok.SzuletesiOrszag.Value;
var szulorszag = ((int)GeneratedAdatszotarTipusEnum.OrszagTipus).GetItemIdByTypeAndName(szulorszagSzoveg, TanevId);
kirTanarAdat.SzuletesiOrszag = szulorszag ?? (int)OrszagTipusEnum.Magyarorszag;
var allampolgarsagSzoveg = szemelyesAdatok.Allampolgarsag1.Value;
var allampolgarsag = ((int)GeneratedAdatszotarTipusEnum.Allampolgarsag).GetItemIdByTypeAndName(allampolgarsagSzoveg, TanevId);
kirTanarAdat.Allampolgarsag = allampolgarsag ?? (int)AllampolgarsagEnum.magyar;
if (szemelyesAdatok.Allampolgarsag2 != null)
{
var allampolgarsag2Szoveg = szemelyesAdatok.Allampolgarsag2.Value;
var allampolgarsag2 = ((int)GeneratedAdatszotarTipusEnum.Allampolgarsag).GetItemIdByTypeAndName(allampolgarsag2Szoveg, TanevId);
kirTanarAdat.Allampolgarsag2 = allampolgarsag2 ?? (int)AllampolgarsagEnum.magyar;
}
switch (szemelyesAdatok.Nem)
{
case NemType.F:
kirTanarAdat.Nem = (int)NemEnum.Ferfi;
break;
case NemType.N:
kirTanarAdat.Nem = (int)NemEnum.No;
break;
case NemType.X:
kirTanarAdat.Nem = (int)NemEnum.NA;
break;
}
kirTanarAdat.EmailCim = szemelyesAdatok.Email;
kirTanarAdat.Telefonszam = szemelyesAdatok.Telefonszam;
string kozteruletSzoveg;
CimType allandoCim = szemelyesAdatok.Cimek.AllandoCim;
if (allandoCim != null)
{
kirTanarAdat.AllandoLakcimIranyitoSzam = allandoCim.IranyitoSzam;
kirTanarAdat.AllandoLakcimTelepules = allandoCim.Telepules.Value;
kirTanarAdat.AllandoLakcimKozteruletNev = allandoCim.KozteruletNev;
kozteruletSzoveg = allandoCim.KozteruletJelleg.ReplaceMultipleSpacesAndTrim();
kirTanarAdat.AllandoLakcimKozteruletJellegNev = string.IsNullOrWhiteSpace(kozteruletSzoveg) ? KozteruletJellegEnum.na.GetDisplayName(TanevId) : kozteruletSzoveg;
kirTanarAdat.AllandoLakcimHazszam = allandoCim.Hazszam;
kirTanarAdat.AllandoLakcimPontositas = allandoCim.Pontositas;
}
CimType tartozkodasiCim = szemelyesAdatok.Cimek.TartozkodasiCim;
if (tartozkodasiCim != null)
{
kirTanarAdat.TartozkodasiCimIranyitoSzam = tartozkodasiCim.IranyitoSzam;
kirTanarAdat.TartozkodasiCimTelepules = tartozkodasiCim.Telepules.Value;
kirTanarAdat.TartozkodasiCimKozteruletNev = tartozkodasiCim.KozteruletNev;
kozteruletSzoveg = tartozkodasiCim.KozteruletJelleg.ReplaceMultipleSpacesAndTrim();
kirTanarAdat.TartozkodasiCimKozteruletJellegNev = string.IsNullOrWhiteSpace(kozteruletSzoveg) ? KozteruletJellegEnum.na.GetDisplayName(TanevId) : kozteruletSzoveg;
kirTanarAdat.TartozkodasiCimHazszam = tartozkodasiCim.Hazszam;
kirTanarAdat.TartozkodasiCimPontositas = tartozkodasiCim.Pontositas;
}
PedagogusJogviszonyAdatType jogviszony = tanar.Jogviszonyok.JogviszonyAdat[0];
kirTanarAdat.JogviszonyKezdete = jogviszony.LetrejotteDatum;
kirTanarAdat.JogviszonyKezdeteString = kirTanarAdat.JogviszonyKezdete?.ToString("yyyy/MM/dd");
kirTanarAdat.JogviszonyBefejezese = jogviszony.MegszunesDatumSpecified ? jogviszony.MegszunesDatum : (DateTime?)null;
kirTanarAdat.JogviszonyBefejezeseString = kirTanarAdat.JogviszonyBefejezese?.ToString("yyyy/MM/dd");
kirTanarAdat.JogviszonyTipusa = jogviszony.TipusKod.Value;
kirTanarAdat.KeresesiNev = CommonUtilsDal.KopaszNev(kirTanarAdat.NyomtatasiNev);
kirTanarAdat.Foallas = "T";
kirTanarAdat.MunkakorTipusa = (int)MunkakorTipusEnum.na;
kirTanarAdat.MunkaviszonyTipusa = (int)MunkaviszonyTipusEnum.na;
kirTanarAdat.FoglalkoztatasTipus = (int)FoglalkoztatasTipusaEnum.TeljesMunkaidos;
kirTanarAdat.KotelezoOraszam = kotelezoOraszam;
kirTanarAdat.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott = "T";
tanarKIRAdatok.Tanarok.Add(kirTanarAdat);
sor++;
}
TanarKIRAdatok = tanarKIRAdatok;
}
public void ExecuteKIRTanarImportFile(Stream fileContent, string fileName, bool isSzakkepzoIntezmeny)
{
var tanarKIRAdatok = new KIRImportTanarokCO();
if (fileContent.Length > 0)
{
CheckFileType(fileName);
var kotelezoOraszam = (int)new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<double>(RendszerBeallitasTipusEnum.Egy_statuszra_juto_kotelezo_oraszam);
try
{
using (SpreadsheetDocument oDocument = SpreadsheetDocument.Open(fileContent, false))
{
Dictionary<string, string> ColumnHeaders = new Dictionary<string, string>();
WorkbookPart workbookPart = oDocument.WorkbookPart;
Sheet sheet1 = workbookPart.Workbook.Descendants<Sheet>().First();
WorksheetPart worksheetPart = (WorksheetPart)workbookPart.GetPartById(sheet1.Id);
CheckMergedCells(worksheetPart);
SharedStringTablePart shareStringPart = null;
if (workbookPart.GetPartsOfType<SharedStringTablePart>().Any())
{
shareStringPart = workbookPart.GetPartsOfType<SharedStringTablePart>().First();
}
SharedStringTable sharedstringtable = shareStringPart.SharedStringTable;
Worksheet sheet = worksheetPart.Worksheet;
int sor = 2;
ReadColumnHeaders(sharedstringtable, sheet, out ColumnHeaders);
if (!ColumnHeaders.Keys.Contains("Pedagógus szakvizsgák"))
throw new InvalidDataException(ErrorResource.AzImportalasraKivalasztottFileNemPedagogusokatTartalmaz);
CheckRequiredHeaders(TanarOszlopok, ColumnHeaders);
Dal.CustomConnection.Run(ConnectionType, dalHandler =>
{
var oktatasiAzonositokRendszerben = new List<string>();
var dal = dalHandler.TanarDal();
oktatasiAzonositokRendszerben = dal.GetPedagogusokOktatasiAzonositoja(IntezmenyId, TanevId, false).Tables[0].AsEnumerable().Select(r => r.Field<string>("C_OKTATASIAZONOSITO")).Where(x => x != null).ToList();
//Oktatási azonosítók beolvasása az excelből
var oktazonList = new List<string>();
var sorIndex = 2;
while (true)
{
var oktAzon = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Oktazon"), (uint)sorIndex)).ReplaceMultipleSpacesAndTrim()?.ToUpper();
if (!string.IsNullOrWhiteSpace(oktAzon))
{
oktazonList.Add(oktAzon.ToUpper());
}
else
{
break;
}
sorIndex++;
}
while (true)
{
var kirTanarAdat = new TanarKirAdatCO();
string oktAzonosito = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Oktazon"), (uint)sor)).ReplaceMultipleSpacesAndTrim()?.ToUpper();
if (!string.IsNullOrWhiteSpace(oktAzonosito))
{
if (isSzakkepzoIntezmeny && !Extensions.FelhasznaloExtensions.IsValidOktatasiAzonosito(oktAzonosito))
{
kirTanarAdat.Errors.Add(string.Format(ErrorResource.A0OktatasiAzonositoHibas, oktAzonosito)); //A {0} oktatási azonosító hibás!
}
if (oktazonList.Count(x => x == oktAzonosito) > 1)
{
kirTanarAdat.Errors.Add(string.Format(ErrorResource.A0OktatasiAzonositoTobbszorSzerepelAzImportalniKivantDokumentumban, oktAzonosito)); //A {0} oktatási azonosító többször szerepel az importálni kívánt dokumentumban!
}
if (!Regex.Match(oktAzonosito, Constants.RegularExpressions.OktatasiAzonosito).Success)
{
kirTanarAdat.Errors.Add(ErrorResource.OktatasiAzonositoFormatumaNemMegfelelo);
}
}
kirTanarAdat.LineNumber = sor;
kirTanarAdat.OktatasiAzonosito = oktAzonosito;
kirTanarAdat.ID = sor - 1;
kirTanarAdat.ViseltNevElotag = Extensions.NameExtensions.CleanElotag(ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Viselt név előtag"), (uint)sor)));
kirTanarAdat.ViseltNevVezetekNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Viselt név vezetéknév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanarAdat.ViseltNevKeresztNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Viselt név keresztnév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (string.IsNullOrWhiteSpace(kirTanarAdat.ViseltNevKeresztNev) || string.IsNullOrWhiteSpace(kirTanarAdat.ViseltNevVezetekNev))
{
kirTanarAdat.Errors.Add(AdminisztracioResource.ViseltVezetekEsKeresztnevMegadasaKotelezo);
}
kirTanarAdat.ViseltNevNevSorrend = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Viselt név névsorrend"), (uint)sor)) == "I" ? "T" : "F";
kirTanarAdat.NyomtatasiNev = Extensions.NameExtensions.GetNevSorrendben(kirTanarAdat.ViseltNevNevSorrend, kirTanarAdat.ViseltNevElotag, kirTanarAdat.ViseltNevVezetekNev, kirTanarAdat.ViseltNevKeresztNev);
kirTanarAdat.AnyjaNeveElotag = Extensions.NameExtensions.CleanElotag(ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Anyja neve előtag"), (uint)sor)));
kirTanarAdat.AnyjaNeveVezetekNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Anyja neve vezetéknév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanarAdat.AnyjaNeveKeresztNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Anyja neve keresztnév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (string.IsNullOrWhiteSpace(kirTanarAdat.AnyjaNeveKeresztNev) || string.IsNullOrWhiteSpace(kirTanarAdat.AnyjaNeveVezetekNev))
{
kirTanarAdat.Errors.Add(AdminisztracioResource.AnyjaNeveVezetekEsKeresztnevMegadasaKotelezo);
}
kirTanarAdat.AnyjaNeveNevSorrend = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Anyja neve névsorrend"), (uint)sor)) == "I" ? "T" : "F";
kirTanarAdat.AnyjaNeve = Extensions.NameExtensions.GetNevSorrendben(kirTanarAdat.AnyjaNeveNevSorrend, kirTanarAdat.AnyjaNeveElotag, kirTanarAdat.AnyjaNeveVezetekNev, kirTanarAdat.AnyjaNeveKeresztNev);
if (string.IsNullOrWhiteSpace($"{kirTanarAdat.NyomtatasiNev}{kirTanarAdat.AnyjaNeve}") && string.IsNullOrWhiteSpace(kirTanarAdat.OktatasiAzonosito))
{
break;
}
DateTime szulido = DateTime.Now;
bool siker = ExcelManager.GetDateTimeCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Születési dátum"), (uint)sor), out szulido);
if (siker)
{
kirTanarAdat.SzuletesiDatum = szulido;
kirTanarAdat.SzuletesiDatumString = szulido.ToString("yyyy/MM/dd");
if (!IsValidDate(kirTanarAdat.SzuletesiDatum.Value, out var errorMessage))
{
kirTanarAdat.Errors.Add(errorMessage);
}
}
kirTanarAdat.SzuletesiHely = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Születési hely"), (uint)sor));
if (string.IsNullOrWhiteSpace(kirTanarAdat.SzuletesiHely))
{
kirTanarAdat.Errors.Add(AdminisztracioResource.SzuletesiHelyMegadasaKotelezo);
}
var szulorszagSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Születési ország"), (uint)sor));
var szulorszag = ((int)GeneratedAdatszotarTipusEnum.OrszagTipus).GetItemIdByTypeAndName(szulorszagSzoveg, TanevId);
kirTanarAdat.SzuletesiOrszag = szulorszag ?? (int)OrszagTipusEnum.Magyarorszag;
kirTanarAdat.SzuletesiNevElotag = Extensions.NameExtensions.CleanElotag(ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Születési név előtag"), (uint)sor)));
if (string.IsNullOrWhiteSpace(kirTanarAdat.SzuletesiNevElotag))
{
kirTanarAdat.SzuletesiNevElotag = kirTanarAdat.ViseltNevElotag;
}
kirTanarAdat.SzuletesiNevVezetekNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Születési név vezetéknév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (string.IsNullOrWhiteSpace(kirTanarAdat.SzuletesiNevVezetekNev))
{
kirTanarAdat.SzuletesiNevVezetekNev = kirTanarAdat.ViseltNevVezetekNev;
}
kirTanarAdat.SzuletesiNevKeresztNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Születési név keresztnév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (string.IsNullOrWhiteSpace(kirTanarAdat.SzuletesiNevKeresztNev))
{
kirTanarAdat.SzuletesiNevKeresztNev = kirTanarAdat.ViseltNevKeresztNev;
}
kirTanarAdat.SzuletesiNevNevSorrend = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Születési név névsorrend"), (uint)sor)) == "I" ? "T" : "F";
kirTanarAdat.SzuletesiNeve = Extensions.NameExtensions.GetNevSorrendben(kirTanarAdat.SzuletesiNevNevSorrend, kirTanarAdat.SzuletesiNevElotag, kirTanarAdat.SzuletesiNevVezetekNev, kirTanarAdat.SzuletesiNevKeresztNev);
var allampolgarsagSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "1. állampolgárság"), (uint)sor));
var allampolgarsag = ((int)GeneratedAdatszotarTipusEnum.Allampolgarsag).GetItemIdByTypeAndName(allampolgarsagSzoveg, TanevId);
kirTanarAdat.Allampolgarsag = allampolgarsag ?? (int)AllampolgarsagEnum.magyar;
var allampolgarsag2Szoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "2. állampolgárság"), (uint)sor));
if (!string.IsNullOrWhiteSpace(allampolgarsag2Szoveg))
{
var allampolgarsag2 = ((int)GeneratedAdatszotarTipusEnum.Allampolgarsag).GetItemIdByTypeAndName(allampolgarsag2Szoveg, TanevId);
kirTanarAdat.Allampolgarsag2 = allampolgarsag2 ?? (int)AllampolgarsagEnum.magyar;
if (allampolgarsag == allampolgarsag2)
{
kirTanarAdat.Errors.Add(ErrorResource.MegegyezoAllapolgarsag);
}
}
kirTanarAdat.VegzettSzintje = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Végzettség szintje"), (uint)sor));
var nemSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Nem"), (uint)sor));
var nem = ((int)GeneratedAdatszotarTipusEnum.Nem).GetItemIdByTypeAndName(nemSzoveg, TanevId);
kirTanarAdat.Nem = nem ?? (int)NemEnum.NA;
kirTanarAdat.AllandoLakcimIranyitoSzam = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Állandó lakcím irányítószám"), (uint)sor));
kirTanarAdat.AllandoLakcimTelepules = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Állandó lakcím település"), (uint)sor));
kirTanarAdat.AllandoLakcimKozteruletNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Állandó lakcím közterület név"), (uint)sor));
var kozteruletSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Állandó lakcím közterület jelleg"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanarAdat.AllandoLakcimKozteruletJellegNev = string.IsNullOrWhiteSpace(kozteruletSzoveg) ? KozteruletJellegEnum.na.GetDisplayName(TanevId) : kozteruletSzoveg;
kirTanarAdat.AllandoLakcimHazszam = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Állandó lakcím házszám"), (uint)sor));
kirTanarAdat.AllandoLakcimPontositas = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Állandó lakcím pontosítás"), (uint)sor));
kirTanarAdat.TartozkodasiCimTelepules = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Tartózkodási cím település"), (uint)sor));
kirTanarAdat.TartozkodasiCimKozteruletNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Tartózkodási cím közterület név"), (uint)sor));
kirTanarAdat.TartozkodasiCimIranyitoSzam = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Tartózkodási cím irányítószám"), (uint)sor));
kozteruletSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Tartózkodási cím közterület jelleg"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanarAdat.TartozkodasiCimKozteruletJellegNev = string.IsNullOrWhiteSpace(kozteruletSzoveg) ? KozteruletJellegEnum.na.GetDisplayName(TanevId) : kozteruletSzoveg;
kirTanarAdat.TartozkodasiCimHazszam = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Tartózkodási cím házszám"), (uint)sor));
kirTanarAdat.TartozkodasiCimPontositas = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Tartózkodási cím pontosítás"), (uint)sor));
if (!IsValidAddress(kirTanarAdat.AllandoLakcimIranyitoSzam, kirTanarAdat.AllandoLakcimTelepules, kirTanarAdat.AllandoLakcimKozteruletNev, kirTanarAdat.AllandoLakcimHazszam))
{
kirTanarAdat.Errors.Add(ErrorResource.AllandoLakcimKitolteseKotelezo);
}
if (!IsValidAddress(kirTanarAdat.TartozkodasiCimIranyitoSzam, kirTanarAdat.TartozkodasiCimTelepules, kirTanarAdat.TartozkodasiCimKozteruletNev, kirTanarAdat.TartozkodasiCimHazszam))
{
kirTanarAdat.Errors.Add(ErrorResource.TartozkodasiCimKitolteseKotelezo);
}
kirTanarAdat.EmailCim = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "E-mail cím"), (uint)sor));
if (!kirTanarAdat.EmailCim.IsValidEmail())
{
kirTanarAdat.Errors.Add(ErrorResource.AzEmailCimFormatumaNemMegfelelo);
}
var szakmaigyakorlatEve = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Szakmai gyakorlati évek száma"), (uint)sor));
kirTanarAdat.SzakmaiGyakorlatiEve = string.IsNullOrWhiteSpace(szakmaigyakorlatEve) ? new int?() : Convert.ToInt32(szakmaigyakorlatEve);
kirTanarAdat.KozoktatasiIntezmenyNeve = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Közoktatási intézmény neve"), (uint)sor));
kirTanarAdat.KozoktatasiIntezmenySzekhelye = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Közoktatási intézmény székhelye"), (uint)sor));
kirTanarAdat.OMAzonosito = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "OM azonosító"), (uint)sor));
kirTanarAdat.KiemeltFeladatellatasiHely = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Kiemelt feladatellátási hely"), (uint)sor));
kirTanarAdat.VezetoiBeosztas = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Vezetői beosztás"), (uint)sor));
string jogviszonyKezdetDateStringFromExcel = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Jogviszony létrejötte"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!string.IsNullOrWhiteSpace(jogviszonyKezdetDateStringFromExcel))
{
var dateFromExcel = GetDateFromExcel(jogviszonyKezdetDateStringFromExcel);
kirTanarAdat.JogviszonyKezdete = dateFromExcel;
kirTanarAdat.JogviszonyKezdeteString = dateFromExcel.ToShortDateString().Replace(" ", "").Substring(0, 10);
if (!IsValidDate(kirTanarAdat.JogviszonyKezdete.Value, out var errorMessage))
{
kirTanarAdat.Errors.Add(errorMessage);
}
}
string jogviszonyBefejezesDateStringFromExcel = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Jogviszony megszűnte"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!string.IsNullOrWhiteSpace(jogviszonyBefejezesDateStringFromExcel))
{
var dateFromExcel = GetDateFromExcel(jogviszonyBefejezesDateStringFromExcel);
kirTanarAdat.JogviszonyBefejezese = dateFromExcel;
kirTanarAdat.JogviszonyBefejezeseString = dateFromExcel.ToShortDateString().Replace(" ", "").Substring(0, 10);
if (!IsValidDate(kirTanarAdat.JogviszonyBefejezese.Value, out var errorMessage))
{
kirTanarAdat.Errors.Add(errorMessage);
}
}
kirTanarAdat.JogviszonyTipusa = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Jogviszony típusa"), (uint)sor));
kirTanarAdat.BesorolasiKategoria = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Besorolási kategória"), (uint)sor)) == "I" ? "T" : "F";
kirTanarAdat.FizetesiOsztaly = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Fizetési osztály"), (uint)sor)) == "I" ? "T" : "F";
kirTanarAdat.Potlek = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Pótlék"), (uint)sor));
kirTanarAdat.MunkakorKategoria = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Munkakör-kategória"), (uint)sor));
kirTanarAdat.Munkakor = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Munkakör"), (uint)sor));
kirTanarAdat.Tantargy = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Tantárgy"), (uint)sor));
kirTanarAdat.Szakkepzettsegek = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Szakképzettségek"), (uint)sor));
kirTanarAdat.TudomanyosFokozatok = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Tudományos fokozatok"), (uint)sor));
kirTanarAdat.PedagogusSzakvizsgak = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Pedagógus szakvizsgák"), (uint)sor));
kirTanarAdat.EgyebTovabbkepzesek = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Egyéb továbbképzések"), (uint)sor));
kirTanarAdat.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "A Belügyminisztérium személyiadat- és lakcímnyilvántartásában beazonosított"), (uint)sor)) == "I" ? "T" : "F";
string dateStringFromExcel = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanarOszlopok, ColumnHeaders, "Utolsó személyiadat- és lakcímnyilvántartás frissítés időpontja"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!string.IsNullOrWhiteSpace(dateStringFromExcel))
{
var dateFromExcel = GetDateFromExcel(dateStringFromExcel);
kirTanarAdat.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja = dateFromExcel;
kirTanarAdat.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontjaString = dateFromExcel.ToString("yyyy/MM/dd");
if (!IsValidDate(kirTanarAdat.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja.Value, out var errorMessage))
{
kirTanarAdat.Errors.Add(errorMessage);
}
}
kirTanarAdat.KeresesiNev = CommonUtilsDal.KopaszNev(kirTanarAdat.NyomtatasiNev);
kirTanarAdat.Foallas = "T";
kirTanarAdat.MunkakorTipusa = (int)MunkakorTipusEnum.na;
kirTanarAdat.MunkaviszonyTipusa = (int)MunkaviszonyTipusEnum.na;
kirTanarAdat.FoglalkoztatasTipus = (int)FoglalkoztatasTipusaEnum.TeljesMunkaidos;
kirTanarAdat.KotelezoOraszam = kotelezoOraszam;
if (kirTanarAdat.SzuletesiDatum.HasValue && kirTanarAdat.SzuletesiDatum.Value.Date >= DateTime.Now.Date)
{
kirTanarAdat.Errors.Add(ErrorResource.ASzuletesiDatumNemLehetKesobbiMintAMaiNap); /*"a születési dátum nem lehet későbbi, mint a mai nap"*/
}
if (string.IsNullOrWhiteSpace(kirTanarAdat.SzuletesiDatumString))
{
kirTanarAdat.Errors.Add(ErrorResource.ASzuletesiDatumNincsMegadvaVagyNemMegfeleloAFormatuma); /*"a születési dátum nincs megadva vagy nem megfelelő a formátuma"*/
}
tanarKIRAdatok.Tanarok.Add(kirTanarAdat);
sor++;
}
TanarKIRAdatok = tanarKIRAdatok;
});
}
}
catch (InvalidDataException ex)
{
throw;
}
catch (Exception e)
{
TanarKIRAdatok = null;
// csak excel fajlt lehet importalni
throw new Exception(ErrorResource.CsakAKirRendszerbolExportaltExcelFajltLehetHasznalni, e); /*Csak a KIR rendszerből exportált excel fájlt lehet használni!*/
}
}
}
/// <summary>
/// Tanárok lekérdezése
/// </summary>
/// <returns></returns>
public DataSet GetImportaltTanarok()
{
DataTable tanarTable = new DataTable();
tanarTable.Columns.Add("ID");
tanarTable.Columns.Add("OktatasiAzonosito");
tanarTable.Columns.Add("OktatoNeve");
tanarTable.Columns.Add("AnyjaNeve");
tanarTable.Columns.Add("SzuletesiHely");
tanarTable.Columns.Add("SzuletesiIdo");
DataSet ds = new DataSet();
var tanarKIRAdatok = TanarKIRAdatok;
if (tanarKIRAdatok != null)
{
foreach (var item in tanarKIRAdatok.Tanarok)
{
DataRow row = tanarTable.NewRow();
row["ID"] = item.LineNumber;
row["OktatasiAzonosito"] = item.OktatasiAzonosito;
row["OktatoNeve"] = item.NyomtatasiNev;
row["AnyjaNeve"] = item.AnyjaNeve;
row["SzuletesiHely"] = item.SzuletesiHely;
row["SzuletesiIdo"] = $"{(item.SzuletesiDatum.HasValue ? item.SzuletesiDatum.Value.ToShortDateString() : "")}";
tanarTable.Rows.Add(row);
}
}
ds.Tables.Add(tanarTable.DefaultView.ToTable());
ds.Tables[0].ExtendedProperties.Add("RowCount", tanarKIRAdatok?.Tanarok.Count ?? 0);
return ds;
}
/// <summary>
/// KIR-ből importált tanárok adatainak mentése.
/// </summary>
public bool SaveImportaltTanarok(int feladatellatasiHelyId)
{
var tanarKIRAdatok = TanarKIRAdatok;
if (tanarKIRAdatok == null)
{
return true;
}
string tanariAdatokXML;
var serializer = new XmlSerializer(typeof(KIRImportTanarokCO));
using (var stream = new StringWriter())
{
serializer.Serialize(stream, tanarKIRAdatok);
tanariAdatokXML = stream.ToString();
}
SDAServer.Instance.Logger.CustomEvent(Events.Tanar_KIR_Import, LogLevel.DEBUG, tanariAdatokXML);
Dal.CustomConnection.Run(ConnectionType, h =>
{
var dal = h.TanarDal();
var dtsSikertelenTanarok = dal.KIRTanarokImport(tanariAdatokXML, feladatellatasiHelyId, IntezmenyId, TanevId, FelhasznaloId);
h.Felhasznalo().UpdateAllEgyediAzonosito();
});
TanarKIRAdatok = new KIRImportTanarokCO();
return true;
}
public MemoryStream ExportTanarAktualisAdatok()
{
var orderDictionary = new Dictionary<string, ListSortDirection>
{
{ nameof(BaseFelhasznaloItemCo.FelhasznaloNevElotagNelkul), ListSortDirection.Ascending }
};
Dictionary<string, IList<string>> dropDownColumnSourceDictionary = GetTanarDefaultDropDownColumnSourceDictionary();
List<AlkalmazottItemCo> coList = new AlkalmazottHelper(ConnectionType).GetAlkalmazottCoList();
coList = coList.SortingAndPaging(orderDictionary);
List<SimpleExportColumnCo> simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottItemCo>(AlkalmazottItemCo.AlkalmazottKirAktualisAdatokExportAttributeId, dropDownColumnSourceDictionary);
return SimpleExportLogic.GetExport(AlkalmazottResource.Pedagogus, simpleExportColumnCos, coList, TanevId);
}
private Dictionary<string, IList<string>> GetTanarDefaultDropDownColumnSourceDictionary()
{
//NOTE: Create dropdown lists
var dropDownColumnSourceDictionary = new Dictionary<string, IList<string>>
{
{ AlkalmazottResource.AlkalmazottKIRExportHeaderNameViseltNevElotag, Constants.ElotagList },
{ AlkalmazottResource.AlkalmazottKIRExportHeaderNameSzuletesiNevElotag, Constants.ElotagList },
{ AlkalmazottResource.AlkalmazottKIRExportHeaderNameAnyjaNeveElotag, Constants.ElotagList },
};
Dal.CustomConnection.Run(ConnectionType, dalHandler =>
{
var connectionType = new DalHandlerConnectionType(ConnectionType, dalHandler);
var allampolgarsagok = EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.Allampolgarsag);
var kozteruletJellegek = EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.KozteruletJelleg);
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameSzuletesiOrszag, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.OrszagTipus));
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderName1Allampolgarsag, allampolgarsagok);
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderName2Allampolgarsag, allampolgarsagok);
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameNem, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.Nem));
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameAllandoLakcimKozteruletJelleg, kozteruletJellegek);
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameTartozkodasiCimKozteruletJelleg, kozteruletJellegek);
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameVezetoiBeosztas, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.VezetoiOraszamokTipus));
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameJogviszonyStatusza, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.PedagogusStatusz));
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameJogviszonyTipusa, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.MunkaviszonyTipus));
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameBesorolasiKategoria, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.BesorolasiFokozatTipus));
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameMunkakor, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.MunkakorTipus));
var telepulesHelper = new TelepulesHelper(connectionType);
var telepulesNevek = telepulesHelper.GetTelepulesek().Select(x => x.TelepulesNev).ToList();
var iranyitoszamok = telepulesHelper.GetIranyitoszamok(string.Empty).Select(x => x.Iranyitoszam).ToList();
var szuletesiHelyek = telepulesHelper.GetSzuletesiHelysegNevList().Select(x => x.TelepulesNev).ToList();
var feladatEllatasiHelyek = new FeladatEllatasiHelyHelper(connectionType).GetFeladatEllatasiHelyDDl(string.Empty).Select(x => x.Value).ToList();
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameAllandoLakcimIranyitoszam, iranyitoszamok);
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameAllandoLakcimTelepules, telepulesNevek);
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameTartozkodasiCimIranyitoszam, iranyitoszamok);
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameTartozkodasiCimTelepules, telepulesNevek);
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameSzuletesiHely, szuletesiHelyek);
dropDownColumnSourceDictionary.Add(AlkalmazottResource.AlkalmazottKIRExportHeaderNameKiemeltFeladatellatasiHely, feladatEllatasiHelyek);
});
return dropDownColumnSourceDictionary;
}
#endregion Tanár KIR import
#region Tanulo KIR import
private List<string> TanuloOszlopok = new List<string>()
{
"Oktazon",
"Viselt név előtag",
"Viselt név vezetéknév",
"Viselt név keresztnév",
"Viselt név névsorrend",
"Születési név előtag",
"Születési név vezetéknév",
"Születési név keresztnév",
"Születési név névsorrend",
"Anyja neve előtag",
"Anyja neve vezetéknév",
"Anyja neve keresztnév",
"Anyja neve névsorrend",
"Születési dátum",
"Születési hely",
"Születési ország",
"Állandó lakcím irányítószám",
"Állandó lakcím település",
"Állandó lakcím közterület név",
"Állandó lakcím közterület jelleg",
"Állandó lakcím házszám",
"Állandó lakcím pontosítás",
"Tankötelezettség vége",
"Tankötelezettséget teljesítő",
"Ügyviteli hely",
"Jogviszony státusza",
"Jogviszony kezdete",
"Jogviszony (várható) befejezése",
"Jogviszony jellege",
};
private string TanuloKIRAdatokCacheKey => $"{nameof(KIRImportTanulokCO)}_{IntezmenyId}_{FelhasznaloId}_ImportObjectCacheKey";
public KIRImportTanulokCO TanuloKIRAdatok
{
get => (KIRImportTanulokCO)Core.Cache.Get(TanuloKIRAdatokCacheKey);
set
{
Core.Cache.Remove(TanuloKIRAdatokCacheKey);
Core.Cache.Add(TanuloKIRAdatokCacheKey, value, new CacheItemPolicy { SlidingExpiration = TimeSpan.FromMinutes(30) });
}
}
public void ExecuteKIRTanuloImport(List<KretaTanuloAdatType> tanuloList, int? anotherYearId, bool isKovTanev)
{
var tanuloKIRAdatok = new KIRImportTanulokCO();
var hozzaferesGeneralasHelper = new HozzaferesGeneralasaHelper(new OrganizationConnectionType(FelhasznaloId, IntezmenyId, IntezmenyAzonosito, TanevId));
var felhasznaloNevGeneralasModja = FelhasznaloiNevGeneralasModjaEnum.Oktatasi_azonosito_alapjan; //RendszerBeallitasTipusEnum.Tanulo_felhasznaloi_nev_generalas_modja
var jelszoGeneralasModja = (int)new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<JelszoGeneralasModjaEnum>(RendszerBeallitasTipusEnum.Tanuloi_jelszavak_generalasa_az_alabbi_ertek_alapjan);
var felhasznaloHelper = new FelhasznaloHelper(ConnectionType);
int sor = 1;
foreach (KretaTanuloAdatType tanulo in tanuloList)
{
var kirTanuloAdat = new TanuloKirAdatCO();
TanuloSzemelyesAdatType szemelyesAdatok = tanulo.SzemelyesAdatok;
kirTanuloAdat.LineNumber = sor;
kirTanuloAdat.OktatasiAzonosito = szemelyesAdatok.oktazon;
if (string.IsNullOrWhiteSpace(kirTanuloAdat.OktatasiAzonosito))
{
break;
}
kirTanuloAdat.ID = sor;
kirTanuloAdat.ViseltNevElotag = Extensions.NameExtensions.CleanElotag(szemelyesAdatok.ViseltNev.Elonev);
kirTanuloAdat.ViseltNevVezetekNev = szemelyesAdatok.ViseltNev.Vezeteknev.ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.ViseltNevKeresztNev = szemelyesAdatok.ViseltNev.Keresztnev.ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.ViseltNevNevSorrend = (szemelyesAdatok.ViseltNev.NevSorrend == NevSorrendType.VEZETEKNEV) ? "F" : "T";
kirTanuloAdat.NyomtatasiNev = Extensions.NameExtensions.GetNevSorrendben(kirTanuloAdat.ViseltNevNevSorrend, kirTanuloAdat.ViseltNevElotag, kirTanuloAdat.ViseltNevVezetekNev, kirTanuloAdat.ViseltNevKeresztNev);
kirTanuloAdat.SzuletesiNevElotag = Extensions.NameExtensions.CleanElotag(szemelyesAdatok.SzuletesiNev.Elonev);
kirTanuloAdat.SzuletesiNevVezetekNev = szemelyesAdatok.SzuletesiNev.Vezeteknev.ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.SzuletesiNevKeresztNev = szemelyesAdatok.SzuletesiNev.Keresztnev.ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.SzuletesiNevNevSorrend = (szemelyesAdatok.SzuletesiNev.NevSorrend == NevSorrendType.VEZETEKNEV) ? "F" : "T";
kirTanuloAdat.SzuletesiNeve = Extensions.NameExtensions.GetNevSorrendben(kirTanuloAdat.SzuletesiNevNevSorrend, kirTanuloAdat.SzuletesiNevElotag, kirTanuloAdat.SzuletesiNevVezetekNev, kirTanuloAdat.SzuletesiNevKeresztNev);
kirTanuloAdat.AnyjaNeveElotag = Extensions.NameExtensions.CleanElotag(szemelyesAdatok.AnyjaNeve.Elonev);
kirTanuloAdat.AnyjaNeveVezetekNev = szemelyesAdatok.AnyjaNeve.Vezeteknev.ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.AnyjaNeveKeresztNev = szemelyesAdatok.AnyjaNeve.Keresztnev.ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.AnyjaNeveNevSorrend = (szemelyesAdatok.AnyjaNeve.NevSorrend == NevSorrendType.VEZETEKNEV) ? "F" : "T";
kirTanuloAdat.AnyjaNeve = Extensions.NameExtensions.GetNevSorrendben(kirTanuloAdat.AnyjaNeveNevSorrend, kirTanuloAdat.AnyjaNeveElotag, kirTanuloAdat.AnyjaNeveVezetekNev, kirTanuloAdat.AnyjaNeveKeresztNev);
if (string.IsNullOrWhiteSpace(kirTanuloAdat.NyomtatasiNev) && string.IsNullOrWhiteSpace(kirTanuloAdat.AnyjaNeve))
{
break;
}
kirTanuloAdat.SzuletesiDatum = szemelyesAdatok.SzuletesiIdo;
kirTanuloAdat.SzuletesiDatumString = kirTanuloAdat.SzuletesiDatum?.ToString("yyyy/MM/dd");
kirTanuloAdat.SzuletesiHely = szemelyesAdatok.SzuletesiHelyseg.Value;
var szulorszagSzoveg = szemelyesAdatok.SzuletesiOrszag.Value;
var szulorszag = ((int)GeneratedAdatszotarTipusEnum.OrszagTipus).GetItemIdByTypeAndName(szulorszagSzoveg, TanevId);
kirTanuloAdat.SzuletesiOrszag = szulorszag.HasValue ? szulorszag.Value : (int)OrszagTipusEnum.Magyarorszag;
var allampolgarsagSzoveg = szemelyesAdatok.Allampolgarsag1.Value;
var allampolgarsag = ((int)GeneratedAdatszotarTipusEnum.Allampolgarsag).GetItemIdByTypeAndName(allampolgarsagSzoveg, TanevId);
kirTanuloAdat.Allampolgarsag = allampolgarsag.HasValue ? allampolgarsag.Value : (int)AllampolgarsagEnum.magyar;
if ((szemelyesAdatok.Allampolgarsag2 != null))
{
var allampolgarsag2Szoveg = szemelyesAdatok.Allampolgarsag2.Value;
var allampolgarsag2 = ((int)GeneratedAdatszotarTipusEnum.Allampolgarsag).GetItemIdByTypeAndName(allampolgarsag2Szoveg, TanevId);
kirTanuloAdat.Allampolgarsag2 = allampolgarsag2.HasValue ? allampolgarsag2.Value : (int)AllampolgarsagEnum.magyar;
}
kirTanuloAdat.Anyanyelv = (int)AnyanyelvEnum.magyar;
switch (szemelyesAdatok.Nem)
{
case NemType.F:
kirTanuloAdat.Nem = (int)NemEnum.Ferfi;
break;
case NemType.N:
kirTanuloAdat.Nem = (int)NemEnum.No;
break;
case NemType.X:
kirTanuloAdat.Nem = (int)NemEnum.NA;
break;
}
if (szemelyesAdatok.Item != null)
{
kirTanuloAdat.TAJSzam = szemelyesAdatok.Item.ToString();
}
kirTanuloAdat.Telefonszam = string.IsNullOrWhiteSpace(szemelyesAdatok.Telefonszam) ? "" : szemelyesAdatok.Telefonszam;
string kozteruletSzoveg;
CimType allandoCim = szemelyesAdatok.Cimek.AllandoCim;
if (allandoCim != null)
{
kirTanuloAdat.AllandoLakcimIranyitoSzam = allandoCim.IranyitoSzam;
kirTanuloAdat.AllandoLakcimTelepules = allandoCim.Telepules.Value;
kirTanuloAdat.AllandoLakcimKozteruletNev = allandoCim.KozteruletNev;
kozteruletSzoveg = allandoCim.KozteruletJelleg.ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.AllandoLakcimKozteruletJellegNev = string.IsNullOrWhiteSpace(kozteruletSzoveg) ? KozteruletJellegEnum.na.GetDisplayName(TanevId) : kozteruletSzoveg;
kirTanuloAdat.AllandoLakcimHazszam = allandoCim.Hazszam;
kirTanuloAdat.AllandoLakcimPontositas = allandoCim.Pontositas;
}
CimType tartozkodasiCim = szemelyesAdatok.Cimek.TartozkodasiCim;
if (tartozkodasiCim != null)
{
kirTanuloAdat.TartozkodasiCimIranyitoSzam = tartozkodasiCim.IranyitoSzam;
kirTanuloAdat.TartozkodasiCimTelepules = tartozkodasiCim.Telepules.Value;
kirTanuloAdat.TartozkodasiCimKozteruletNev = tartozkodasiCim.KozteruletNev;
kozteruletSzoveg = tartozkodasiCim.KozteruletJelleg.ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.TartozkodasiCimKozteruletJellegNev = string.IsNullOrWhiteSpace(kozteruletSzoveg) ? KozteruletJellegEnum.na.GetDisplayName(TanevId) : kozteruletSzoveg;
kirTanuloAdat.TartozkodasiCimHazszam = tartozkodasiCim.Hazszam;
kirTanuloAdat.TartozkodasiCimPontositas = tartozkodasiCim.Pontositas;
}
kirTanuloAdat.TankotelezettsegVege = szemelyesAdatok.TankotelezettsegVegeSpecified ? szemelyesAdatok.TankotelezettsegVege : (DateTime?)null;
kirTanuloAdat.TankotelezettsegVegeString = kirTanuloAdat.TankotelezettsegVege?.ToString("yyyy/MM/dd");
kirTanuloAdat.TankotelezettsegetTeljesito = (szemelyesAdatok.TankotelezettsegetTeljesito == IgenNemType.I) ? "T" : "F";
kirTanuloAdat.SajatosNevelesIgenyu = (szemelyesAdatok.SNI == IgenNemType.I) ? "T" : "F";
kirTanuloAdat.BeilleszkedesselKuzd = (szemelyesAdatok.BTM == IgenNemType.I) ? "T" : "F";
//NOTE: Több jogviszony is lehet, de mi a krétában ezt nem kezeljük, ezért az számít ahol a
//szolgáltatás megnevezése nem üres és az igénybevétel vége üres (Megszűnés dátuma) ha ilyen nincs akkor az utolsóként létrejött számít.
var jogviszonyAdat = tanulo.Jogviszonyok.JogviszonyAdat.FirstOrDefault(x => !x.MegszunesDatumSpecified && !string.IsNullOrWhiteSpace(x.IgenybevettSzolgaltatas.Value));
TanuloJogviszonyAdatType jogviszony = jogviszonyAdat ?? tanulo.Jogviszonyok.JogviszonyAdat.OrderByDescending(t => t.LetrejotteDatum).First();
kirTanuloAdat.JogviszonyStatusza = (!string.Equals(jogviszony.Statusz.Value, "aktív", StringComparison.OrdinalIgnoreCase)) ? "T" : "F";
kirTanuloAdat.JogviszonyKezdete = jogviszony.LetrejotteDatum;
kirTanuloAdat.JogviszonyKezdeteString = kirTanuloAdat.JogviszonyKezdete?.ToString("yyyy/MM/dd");
kirTanuloAdat.JogviszonyVarBefejezese = jogviszony.BefejezesVarhatoDatumSpecified ? jogviszony.BefejezesVarhatoDatum : (DateTime?)null;
kirTanuloAdat.JogviszonyVarBefejezeseString = kirTanuloAdat.JogviszonyVarBefejezese?.ToString("yyyy/MM/dd");
kirTanuloAdat.JogviszonyJellege = jogviszony.JellegKod.Value;
kirTanuloAdat.Vendegtanulo = (jogviszony.VendegTanulo == IgenNemType.I) ? "T" : "F";
kirTanuloAdat.Magantanulo = (jogviszony.MaganTanulo == IgenNemType.I) ? "T" : "F";
kirTanuloAdat.KeresesiNev = CommonUtilsDal.KopaszNev(kirTanuloAdat.NyomtatasiNev);
var tanevMegnevezes = GetTanevMegnevezesForBelepesCheck(isKovTanev);
kirTanuloAdat.Errors.AddRange(CheckTanuloImportDatabaseStringLength(kirTanuloAdat));
bool pAzonos4TAlapjan = false;
kirTanuloAdat.Errors.AddRange(CheckOktatasiAzonositoFelhasznaloBelepes(felhasznaloHelper, kirTanuloAdat.OktatasiAzonosito, felhasznaloNevGeneralasModja, anotherYearId, isKovTanev, tanevMegnevezes, ref pAzonos4TAlapjan, kirTanuloAdat));
if (felhasznaloNevGeneralasModja != FelhasznaloiNevGeneralasModjaEnum.Egyeni && kirTanuloAdat.SzuletesiDatum.HasValue)
{
var felhasznaloBelepes = hozzaferesGeneralasHelper.GenerateNewFelhasznaloBelepes(jelszoGeneralasModja, kirTanuloAdat.OktatasiAzonosito, kirTanuloAdat.SzuletesiDatum.Value);
SetTanuloFelhasznaloBelepesData(kirTanuloAdat, felhasznaloBelepes);
}
kirTanuloAdat.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott = "T";
if (!pAzonos4TAlapjan)
{
tanuloKIRAdatok.Tanulok.Add(kirTanuloAdat);
}
sor++;
}
TanuloKIRAdatok = tanuloKIRAdatok;
}
public void ExecuteKIRTanuloImportFile(int contentLength, Stream fileContent, string fileName, int? anotherYearId, bool isKovTanev, bool isSzakkepzoIntezmeny)
{
var tanuloKIRAdatok = new KIRImportTanulokCO();
var hozzaferesGeneralasHelper = new HozzaferesGeneralasaHelper(new OrganizationConnectionType(FelhasznaloId, IntezmenyId, IntezmenyAzonosito, TanevId));
var felhasznaloNevGeneralasModja = FelhasznaloiNevGeneralasModjaEnum.Oktatasi_azonosito_alapjan; //RendszerBeallitasTipusEnum.Tanulo_felhasznaloi_nev_generalas_modja
var jelszoGeneralasModja = (int)new SystemSettingsHelper(ConnectionType).GetSystemSettingValue<JelszoGeneralasModjaEnum>(RendszerBeallitasTipusEnum.Tanuloi_jelszavak_generalasa_az_alabbi_ertek_alapjan);
var felhasznaloHelper = new FelhasznaloHelper(ConnectionType);
if (fileContent.Length > 0)
{
CheckFileType(fileName);
try
{
using (SpreadsheetDocument oDocument = SpreadsheetDocument.Open(fileContent, false))
{
WorkbookPart workbookPart = oDocument.WorkbookPart;
Sheet sheet1 = workbookPart.Workbook.Descendants<Sheet>().First();
WorksheetPart worksheetPart = (WorksheetPart)workbookPart.GetPartById(sheet1.Id);
SharedStringTablePart shareStringPart = null;
if (workbookPart.GetPartsOfType<SharedStringTablePart>().Any())
{
shareStringPart = workbookPart.GetPartsOfType<SharedStringTablePart>().First();
}
SharedStringTable sharedstringtable = shareStringPart.SharedStringTable;
Worksheet sheet = worksheetPart.Worksheet;
CheckMergedCells(worksheetPart);
Dictionary<string, string> ColumnHeaders = new Dictionary<string, string>();
ReadColumnHeaders(sharedstringtable, sheet, out ColumnHeaders);
int sor = 2;
CheckRequiredHeaders(TanuloOszlopok, ColumnHeaders);
if (!CheckImportaltFileEsSablonEgyezes(ColumnHeaders, TanuloImportSablonNev))
{
throw new InvalidDataException(ErrorResource.AzImportalniKivantFileEsSablonNemEgyezik);
}
if (ColumnHeaders.Keys.Contains("Pedagógus szakvizsgák"))
throw new InvalidDataException(ErrorResource.AzImportalniKivantFileNemTanulokatTartalmaz);
//NOTE:Oktatási azonosítók beolvasása az excelből
var oktazonList = new List<string>();
var sorIndex = 2;
while (true)
{
var oktAzon = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Oktazon"), (uint)sorIndex)).ReplaceMultipleSpacesAndTrim()?.ToUpper();
if (!string.IsNullOrWhiteSpace(oktAzon))
{
oktazonList.Add(oktAzon.ToUpper());
}
else
{
break;
}
sorIndex++;
}
while (true)
{
var kirTanuloAdat = new TanuloKirAdatCO();
string oktAzonosito = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Oktazon"), (uint)sor)).ReplaceMultipleSpacesAndTrim()?.ToUpper();
if (sor >= sorIndex)
{
string szulDate = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Születési dátum"), (uint)sor)).ReplaceMultipleSpacesAndTrim()?.ToUpper();
if (string.IsNullOrWhiteSpace(szulDate) && string.IsNullOrWhiteSpace(oktAzonosito))
{
break;
}
}
if (!string.IsNullOrWhiteSpace(oktAzonosito))
{
if (oktazonList.Count(x => x == oktAzonosito) > 1)
{
kirTanuloAdat.Errors.Add(string.Format(ErrorResource.A0OktatasiAzonositoTobbszorSzerepelAzImportalniKivantDokumentumban, oktAzonosito)); //A {0} oktatási azonosító többször szerepel az importálni kívánt dokumentumban!
}
if (isSzakkepzoIntezmeny)
{
if (!Extensions.FelhasznaloExtensions.IsValidOktatasiAzonosito(oktAzonosito))
{
kirTanuloAdat.Errors.Add(string.Format(ErrorResource.A0OktatasiAzonositoHibasSzakkepzoIntezmeny, oktAzonosito));
}
}
else
{
if (!Regex.Match(oktAzonosito, Constants.RegularExpressions.OktatasiAzonositoTanulo).Success)
{
kirTanuloAdat.Errors.Add(ErrorResource.OktatasiAzonositoFormatumaNemMegfeleloTanulo);
}
}
}
if (oktazonList.Count(x => x == oktAzonosito) > 1)
{
kirTanuloAdat.Errors.Add(string.Format(ErrorResource.A0OktatasiAzonositoTobbszorSzerepelAzImportalniKivantDokumentumban, oktAzonosito)); //A {0} oktatási azonosító többször szerepel az importálni kívánt dokumentumban!
}
kirTanuloAdat.LineNumber = sor - 1;
kirTanuloAdat.OktatasiAzonosito = oktAzonosito;
kirTanuloAdat.ID = sor - 1;
kirTanuloAdat.ViseltNevElotag = Extensions.NameExtensions.CleanElotag(ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Viselt név előtag"), (uint)sor)));
kirTanuloAdat.ViseltNevVezetekNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Viselt név vezetéknév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.ViseltNevKeresztNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Viselt név keresztnév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.ViseltNevNevSorrend = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Viselt név névsorrend"), (uint)sor)) == "I" ? "T" : "F";
kirTanuloAdat.NyomtatasiNev = Extensions.NameExtensions.GetNevSorrendben(kirTanuloAdat.ViseltNevNevSorrend, kirTanuloAdat.ViseltNevElotag, kirTanuloAdat.ViseltNevVezetekNev, kirTanuloAdat.ViseltNevKeresztNev);
kirTanuloAdat.SzuletesiNevElotag = Extensions.NameExtensions.CleanElotag(ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Születési név előtag"), (uint)sor)));
if (string.IsNullOrWhiteSpace(kirTanuloAdat.SzuletesiNevElotag))
{
kirTanuloAdat.SzuletesiNevElotag = kirTanuloAdat.ViseltNevElotag;
}
kirTanuloAdat.SzuletesiNevVezetekNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Születési név vezetéknév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (string.IsNullOrWhiteSpace(kirTanuloAdat.SzuletesiNevVezetekNev))
{
kirTanuloAdat.SzuletesiNevVezetekNev = kirTanuloAdat.ViseltNevVezetekNev;
}
kirTanuloAdat.SzuletesiNevKeresztNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Születési név keresztnév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (string.IsNullOrWhiteSpace(kirTanuloAdat.SzuletesiNevKeresztNev))
{
kirTanuloAdat.SzuletesiNevKeresztNev = kirTanuloAdat.ViseltNevKeresztNev;
}
kirTanuloAdat.SzuletesiNevNevSorrend = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Születési név névsorrend"), (uint)sor)) == "I" ? "T" : "F";
kirTanuloAdat.SzuletesiNeve = Extensions.NameExtensions.GetNevSorrendben(kirTanuloAdat.SzuletesiNevNevSorrend, kirTanuloAdat.SzuletesiNevElotag, kirTanuloAdat.SzuletesiNevVezetekNev, kirTanuloAdat.SzuletesiNevKeresztNev);
kirTanuloAdat.AnyjaNeveElotag = Extensions.NameExtensions.CleanElotag(ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Anyja neve előtag"), (uint)sor)));
kirTanuloAdat.AnyjaNeveVezetekNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Anyja neve vezetéknév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.AnyjaNeveKeresztNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Anyja neve keresztnév"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.AnyjaNeveNevSorrend = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Anyja neve névsorrend"), (uint)sor)) == "I" ? "T" : "F";
kirTanuloAdat.AnyjaNeve = Extensions.NameExtensions.GetNevSorrendben(kirTanuloAdat.AnyjaNeveNevSorrend, kirTanuloAdat.AnyjaNeveElotag, kirTanuloAdat.AnyjaNeveVezetekNev, kirTanuloAdat.AnyjaNeveKeresztNev);
var telefonszam = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Telefonszám"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!telefonszam.IsValidPhone())
{
kirTanuloAdat.Errors.Add(string.Format(ErrorResource.ATelefonszamFormatumaNemMegfelelo));
}
var emailCim = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "E-mail"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!emailCim.IsValidEmail())
{
kirTanuloAdat.Errors.Add(string.Format(ErrorResource.AzEmailCimFormatumaNemMegfelelo));
}
kirTanuloAdat.Telefonszam = string.IsNullOrWhiteSpace(telefonszam) ? "" : telefonszam;
kirTanuloAdat.Email = string.IsNullOrWhiteSpace(emailCim) ? "" : emailCim;
string dateStringFromExcel = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Születési dátum"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!string.IsNullOrWhiteSpace(dateStringFromExcel))
{
var dateFromExcel = GetDateFromExcel(dateStringFromExcel);
kirTanuloAdat.SzuletesiDatum = dateFromExcel;
kirTanuloAdat.SzuletesiDatumString = dateFromExcel.ToString("yyyy/MM/dd");
if (!IsValidDate(kirTanuloAdat.SzuletesiDatum.Value, out var errorMessage))
{
kirTanuloAdat.Errors.Add(errorMessage);
}
}
kirTanuloAdat.SzuletesiHely = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Születési hely"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
var szulorszagSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Születési ország"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
var szulorszag = ((int)GeneratedAdatszotarTipusEnum.OrszagTipus).GetItemIdByTypeAndName(szulorszagSzoveg, TanevId);
kirTanuloAdat.SzuletesiOrszag = szulorszag.HasValue ? szulorszag.Value : (int)OrszagTipusEnum.Magyarorszag;
var allampolgarsagSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "1. állampolgárság"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
var allampolgarsag = ((int)GeneratedAdatszotarTipusEnum.Allampolgarsag).GetItemIdByTypeAndName(allampolgarsagSzoveg, TanevId);
kirTanuloAdat.Allampolgarsag = allampolgarsag.HasValue ? allampolgarsag.Value : (int)AllampolgarsagEnum.magyar;
var allampolgarsag2Szoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "2. állampolgárság"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!string.IsNullOrWhiteSpace(allampolgarsag2Szoveg))
{
var allampolgarsag2 = ((int)GeneratedAdatszotarTipusEnum.Allampolgarsag).GetItemIdByTypeAndName(allampolgarsag2Szoveg, TanevId);
kirTanuloAdat.Allampolgarsag2 = allampolgarsag2.HasValue ? allampolgarsag2.Value : (int)AllampolgarsagEnum.magyar;
if (allampolgarsag == allampolgarsag2)
{
kirTanuloAdat.Errors.Add(string.Format(ErrorResource.MegegyezoAllapolgarsag));
}
}
var anyanyelvSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Anyanyelv"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
var anyanyelv = ((int)GeneratedAdatszotarTipusEnum.Anyanyelv).GetItemIdByTypeAndName(anyanyelvSzoveg, TanevId);
kirTanuloAdat.Anyanyelv = anyanyelv.HasValue ? anyanyelv.Value : (int)AnyanyelvEnum.magyar;
var nemSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Nem"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
var neme = ((int)GeneratedAdatszotarTipusEnum.Nem).GetItemIdByTypeAndName(nemSzoveg, TanevId);
kirTanuloAdat.Nem = neme.HasValue ? neme.Value : (int)NemEnum.NA;
kirTanuloAdat.TAJSzam = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "TAJ szám"), (uint)sor)).ReplaceMultipleSpacesAndTrim()?.Replace(" ", "").Replace("-", "");
if (!string.IsNullOrWhiteSpace(kirTanuloAdat.TAJSzam))
{
kirTanuloAdat.Errors.AddRange(CommonUtils.TajSzamValidation(kirTanuloAdat.TAJSzam));
}
kirTanuloAdat.AllandoLakcimIranyitoSzam = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Állandó lakcím irányítószám"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.AllandoLakcimTelepules = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Állandó lakcím település"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.AllandoLakcimKozteruletNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Állandó lakcím közterület név"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
var kozteruletSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Állandó lakcím közterület jelleg"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.AllandoLakcimKozteruletJellegNev = string.IsNullOrWhiteSpace(kozteruletSzoveg) ? KozteruletJellegEnum.na.GetDisplayName(TanevId) : kozteruletSzoveg;
kirTanuloAdat.AllandoLakcimHazszam = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Állandó lakcím házszám"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.AllandoLakcimPontositas = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Állandó lakcím pontosítás"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.TartozkodasiCimIranyitoSzam = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Tartózkodási cím irányítószám"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.TartozkodasiCimTelepules = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Tartózkodási cím település"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.TartozkodasiCimKozteruletNev = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Tartózkodási cím közterület név"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kozteruletSzoveg = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Tartózkodási cím közterület jelleg"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.TartozkodasiCimKozteruletJellegNev = string.IsNullOrWhiteSpace(kozteruletSzoveg) ? KozteruletJellegEnum.na.GetDisplayName(TanevId) : kozteruletSzoveg;
kirTanuloAdat.TartozkodasiCimHazszam = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Tartózkodási cím házszám"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.TartozkodasiCimPontositas = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Tartózkodási cím pontosítás"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!IsValidAddress(kirTanuloAdat.AllandoLakcimIranyitoSzam, kirTanuloAdat.AllandoLakcimTelepules, kirTanuloAdat.AllandoLakcimKozteruletNev, kirTanuloAdat.AllandoLakcimHazszam))
{
kirTanuloAdat.Errors.Add(ErrorResource.AllandoLakcimKitolteseKotelezo);
}
if (!IsValidAddress(kirTanuloAdat.TartozkodasiCimIranyitoSzam, kirTanuloAdat.TartozkodasiCimTelepules, kirTanuloAdat.TartozkodasiCimKozteruletNev, kirTanuloAdat.TartozkodasiCimHazszam))
{
kirTanuloAdat.Errors.Add(ErrorResource.TartozkodasiCimKitolteseKotelezo);
}
string tankotelezettsegVegeDateStringFromExcel = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Tankötelezettség vége"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!string.IsNullOrWhiteSpace(tankotelezettsegVegeDateStringFromExcel))
{
var dateFromExcel = GetDateFromExcel(tankotelezettsegVegeDateStringFromExcel);
kirTanuloAdat.TankotelezettsegVege = dateFromExcel;
kirTanuloAdat.TankotelezettsegVegeString = dateFromExcel.ToShortDateString().Replace(" ", "").Substring(0, 10);
if (!IsValidDate(kirTanuloAdat.TankotelezettsegVege.Value, out var errorMessage))
{
kirTanuloAdat.Errors.Add(errorMessage);
}
}
kirTanuloAdat.TankotelezettsegetTeljesito = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Tankötelezettséget teljesítő"), (uint)sor)) == "I" ? "T" : "F";
kirTanuloAdat.SajatosNevelesIgenyu = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Sajátos nevelési igényű"), (uint)sor)) == "I" ? "T" : "F";
kirTanuloAdat.BeilleszkedesselKuzd = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Beilleszkedéssel, tanulási, magatartási nehézséggel küzd"), (uint)sor)) == "I" ? "T" : "F";
kirTanuloAdat.KozoktatasiIntezmenyNeve = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Közoktatási intézmény neve"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.KozoktatasiIntezmenySzekhelye = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Közoktatási intézmény székhelye"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.OMAzonosito = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "OM azonosító"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.UgyviteliHely = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Ügyviteli hely"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.JogviszonyStatusza = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Jogviszony státusza"), (uint)sor)).ToLower() != "aktív" ? "T" : "F";
kirTanuloAdat.ErvenyesDiakigazolvanySzama = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Érvényes diákigazolvány száma"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
string jogviszonyKezdetDateStringFromExcel = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Jogviszony kezdete"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!string.IsNullOrWhiteSpace(jogviszonyKezdetDateStringFromExcel))
{
var dateFromExcel = GetDateFromExcel(jogviszonyKezdetDateStringFromExcel);
kirTanuloAdat.JogviszonyKezdete = dateFromExcel;
kirTanuloAdat.JogviszonyKezdeteString = dateFromExcel.ToShortDateString().Replace(" ", "").Substring(0, 10);
if (!IsValidDate(kirTanuloAdat.JogviszonyKezdete.Value, out var errorMessage))
{
kirTanuloAdat.Errors.Add(errorMessage);
}
}
string jogviszonyVarBefejezeseString = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Jogviszony (várható) befejezése"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!string.IsNullOrWhiteSpace(jogviszonyVarBefejezeseString))
{
var dateFromExcel = GetDateFromExcel(jogviszonyVarBefejezeseString);
kirTanuloAdat.JogviszonyVarBefejezese = dateFromExcel;
kirTanuloAdat.JogviszonyVarBefejezeseString = dateFromExcel.ToShortDateString().Replace(" ", "").Substring(0, 10);
if (!IsValidDate(kirTanuloAdat.JogviszonyVarBefejezese.Value, out var errorMessage))
{
kirTanuloAdat.Errors.Add(errorMessage);
}
}
if (string.IsNullOrWhiteSpace(kirTanuloAdat.SzuletesiHely))
{
kirTanuloAdat.Errors.Add(ErrorResource.SzuletesiHelyNincsMegadva);
}
if (string.IsNullOrWhiteSpace(kirTanuloAdat.SzuletesiDatumString))
{
kirTanuloAdat.Errors.Add(ErrorResource.SzuletesiDatumNincsMegadvaImportnal /*"a születési dátum nincs megadva"*/);
}
if (kirTanuloAdat.SzuletesiDatum.HasValue && kirTanuloAdat.SzuletesiDatum.Value.Date >= DateTime.Now.Date)
{
kirTanuloAdat.Errors.Add(ErrorResource.SzuletesiDatumNemLehetKesobbiMintAMaiNap /*"a születési dátum nem lehet, későbbi mint a mai nap"*/);
}
if (string.IsNullOrWhiteSpace(kirTanuloAdat.AnyjaNeve))
{
kirTanuloAdat.Errors.Add(ErrorResource.AnyjaNeveNincsMegadva /*"az anyja neve nincs megadva"*/);
}
if (string.IsNullOrWhiteSpace(kirTanuloAdat.NyomtatasiNev))
{
kirTanuloAdat.Errors.Add(ErrorResource.ViseltNevNincsMegadva /*"a viselt név nincs megadva"*/);
}
if (kirTanuloAdat.JogviszonyKezdete == null)
{
kirTanuloAdat.Errors.Add(ErrorResource.JogviszonyKezdeteNincsMegadva/*"a jogviszony kezdete nincs megadva"*/);
}
kirTanuloAdat.JogviszonyJellege = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Jogviszony jellege"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.Vendegtanulo = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Vendégtanuló"), (uint)sor)) == "I" ? "T" : "F";
kirTanuloAdat.Magantanulo = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Magántanuló"), (uint)sor)) == "I" ? "T" : "F";
kirTanuloAdat.Osztaly = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Osztály"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
kirTanuloAdat.KeresesiNev = CommonUtilsDal.KopaszNev(kirTanuloAdat.NyomtatasiNev);
kirTanuloAdat.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "A Belügyminisztérium személyiadat- és lakcímnyilvántartásában beazonosított"), (uint)sor)) == "I" ? "T" : "F";
string szemelyAdatDateStringFromExcel = ExcelManager.GetCellValue(sharedstringtable, ExcelManager.GetCell(sheet, GetHeaderExcelCharIndex(TanuloOszlopok, ColumnHeaders, "Utolsó személyiadat- és lakcímnyilvántartás frissítés időpontja"), (uint)sor)).ReplaceMultipleSpacesAndTrim();
if (!string.IsNullOrWhiteSpace(szemelyAdatDateStringFromExcel))
{
var dateFromExcel = GetDateFromExcel(dateStringFromExcel);
kirTanuloAdat.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja = dateFromExcel;
kirTanuloAdat.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontjaString = dateFromExcel.ToString("yyyy/MM/dd");
if (!IsValidDate(kirTanuloAdat.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja.Value, out var errorMessage))
{
kirTanuloAdat.Errors.Add(errorMessage);
}
}
var tanevMegnevezes = GetTanevMegnevezesForBelepesCheck(isKovTanev);
kirTanuloAdat.Errors.AddRange(CheckTanuloImportDatabaseStringLength(kirTanuloAdat));
bool pAzonos4TAlapjan = false;
kirTanuloAdat.Errors.AddRange(CheckOktatasiAzonositoFelhasznaloBelepes(felhasznaloHelper, kirTanuloAdat.OktatasiAzonosito, felhasznaloNevGeneralasModja, anotherYearId, isKovTanev, tanevMegnevezes, ref pAzonos4TAlapjan, kirTanuloAdat));
if (felhasznaloNevGeneralasModja != FelhasznaloiNevGeneralasModjaEnum.Egyeni && kirTanuloAdat.SzuletesiDatum.HasValue)
{
var felhasznaloBelepes = hozzaferesGeneralasHelper.GenerateNewFelhasznaloBelepes(jelszoGeneralasModja, kirTanuloAdat.OktatasiAzonosito, kirTanuloAdat.SzuletesiDatum.Value);
SetTanuloFelhasznaloBelepesData(kirTanuloAdat, felhasznaloBelepes);
}
if (!pAzonos4TAlapjan)
{
tanuloKIRAdatok.Tanulok.Add(kirTanuloAdat);
}
sor++;
}
TanuloKIRAdatok = tanuloKIRAdatok;
}
}
catch (BlException)
{
throw;
}
catch (InvalidDataException)
{
throw;
}
catch
{
TanuloKIRAdatok = null;
// csak excel fajlt lehet importalni
throw new Exception(ErrorResource.CsakAKirRendszerbolExportaltExcelFajltLehetHasznalni); /*Csak a KIR rendszerből exportált excel fájlt lehet használni!*/
}
}
}
private bool CheckImportaltFileEsSablonEgyezes(Dictionary<string, string> importaltColumnHeaders, string importSablonNev)
{
string sablonPath = GetSablonPath(importSablonNev);
if (!string.IsNullOrWhiteSpace(sablonPath))
{
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(sablonPath, false))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
Sheet sheet = workbookPart.Workbook.Descendants<Sheet>().First();
WorksheetPart worksheetPart = (WorksheetPart)workbookPart.GetPartById(sheet.Id);
SharedStringTablePart sharedStringTablePart = null;
if (workbookPart.GetPartsOfType<SharedStringTablePart>().Any())
{
sharedStringTablePart = workbookPart.GetPartsOfType<SharedStringTablePart>().First();
}
SharedStringTable sharedstringtable = sharedStringTablePart.SharedStringTable;
Worksheet worksheet = worksheetPart.Worksheet;
CheckMergedCells(worksheetPart);
Dictionary<string, string> sablonColumnHeaders = new Dictionary<string, string>();
ReadColumnHeaders(sharedstringtable, worksheet, out sablonColumnHeaders);
var sablonHeaderNames = GetColumnHeaderNames(sablonColumnHeaders);
var importaltHeaderNames = GetColumnHeaderNames(importaltColumnHeaders);
if (sablonHeaderNames != null && importaltHeaderNames != null && !sablonHeaderNames.SequenceEqual(importaltHeaderNames))
{
return false;
}
}
}
return true;
}
private string GetSablonPath(string sablonNev)
{
string directoryPath = HttpContext.Current.Server.MapPath(ExcelTemplateDirectory);
DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
FileInfo fileInfo = directoryInfo.GetFiles().SingleOrDefault(x => x.Name.Equals(sablonNev, StringComparison.InvariantCultureIgnoreCase));
var sablonPath = fileInfo?.FullName;
return sablonPath;
}
private List<string> GetColumnHeaderNames(Dictionary<string, string> columnHeaders)
{
List<string> columnHeaderNames = new List<string>();
foreach (var columnHeader in columnHeaders)
{
columnHeaderNames.Add(columnHeader.Key);
}
return columnHeaderNames;
}
/// <summary>
/// Tanulók lekérdezése
/// </summary>
/// <returns></returns>
public DataSet GetImportaltTanulok()
{
DataTable tanuloTable = new DataTable();
tanuloTable.Columns.Add("ID");
tanuloTable.Columns.Add("OktatasiAzonosito");
tanuloTable.Columns.Add("TanuloNeve");
tanuloTable.Columns.Add("AnyjaNeve");
tanuloTable.Columns.Add("SzuletesiHely");
tanuloTable.Columns.Add("SzuletesiIdo");
tanuloTable.Columns.Add("Tankotelezett", typeof(bool));
tanuloTable.Columns.Add("Osztaly");
var tanuloKIRAdatok = TanuloKIRAdatok;
DataSet ds = new DataSet();
if (tanuloKIRAdatok != null)
{
foreach (var item in tanuloKIRAdatok.Tanulok)
{
DataRow row = tanuloTable.NewRow();
row["ID"] = item.LineNumber;
row["OktatasiAzonosito"] = item.OktatasiAzonosito;
row["TanuloNeve"] = item.NyomtatasiNev;
row["AnyjaNeve"] = item.AnyjaNeve;
row["SzuletesiHely"] = item.SzuletesiHely;
row["SzuletesiIdo"] = item.SzuletesiDatum.HasValue ? item.SzuletesiDatum.Value.ToShortDateString() : "";
row["Tankotelezett"] = item.TankotelezettsegetTeljesito == "T";
row["Osztaly"] = item.Osztaly;
tanuloTable.Rows.Add(row);
}
}
ds.Tables.Add(tanuloTable.DefaultView.ToTable());
ds.Tables[0].ExtendedProperties.Add("RowCount", tanuloKIRAdatok != null ? tanuloKIRAdatok.Tanulok.Count : 0);
return ds;
}
/// <summary>
/// KIR-ből importált tanuló adatainak mentése.
/// </summary>
public bool SaveImportaltTanulok(bool updateSzakkepzesiJuttatasok)
{
var tanuloKIRAdatok = TanuloKIRAdatok;
if (tanuloKIRAdatok == null)
{
return true;
}
string tanuloiAdatokXML;
var serializer = new XmlSerializer(typeof(KIRImportTanulokCO));
Dal.CustomConnection.Run(ConnectionType, (h) =>
{
var dal = h.Tanulo();
//NOTE: 200 elemenként adjuk át a tároltnak
var kezd = 0;
var veg = 200;
var maxId = tanuloKIRAdatok.Tanulok.Max(x => x.ID);
while (kezd < maxId)
{
var tanulok = new KIRImportTanulokCO();
tanulok.Tanulok = TanuloKIRAdatok.Tanulok.Where(x => x.ID < veg && x.ID >= kezd).ToList();
using (var stream = new StringWriter())
{
serializer.Serialize(stream, tanulok);
tanuloiAdatokXML = stream.ToString();
}
var ds = dal.KIRTanulokImport(tanuloiAdatokXML, IntezmenyId, TanevId, FelhasznaloId);
kezd = veg;
veg += 200;
}
h.Felhasznalo().UpdateAllEgyediAzonosito();
if (updateSzakkepzesiJuttatasok)
{
var juttatasDal = h.JuttatasDAL();
juttatasDal.UpdateTanulokSzakkepzesiJuttatasok(TanevId, FelhasznaloId, (int)JuttatasTipusEnum.szakkepzesi_juttatas);
juttatasDal.UpdateTanulokSzakkepzesiJuttatasok(TanevId, FelhasznaloId, (int)JuttatasTipusEnum.apaczaiosztondij);
}
});
return true;
}
public MemoryStream ExportTanuloAktualisAdatok()
{
var orderDictionary = new Dictionary<string, ListSortDirection>
{
{ nameof(BaseFelhasznaloItemCo.FelhasznaloNevElotagNelkul), ListSortDirection.Ascending }
};
Dictionary<string, IList<string>> dropDownColumnSourceDictionary = GetTanuloDefaultDropDownColumnSourceDictionary();
List<TanuloItemCo> coList = new TanuloHelper(ConnectionType).GetTanuloCoList();
coList = coList.SortingAndPaging(orderDictionary);
List<SimpleExportColumnCo> simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<KirTanuloItemCo>(KirTanuloItemCo.TanuloKirAktualisAdatokExportAttributeId, dropDownColumnSourceDictionary);
return SimpleExportLogic.GetExport(TanuloResource.Tanulo, simpleExportColumnCos, coList, TanevId);
}
private Dictionary<string, IList<string>> GetTanuloDefaultDropDownColumnSourceDictionary()
{
//NOTE: Create dropdown lists
var dropDownColumnSourceDictionary = new Dictionary<string, IList<string>>
{
{ TanuloResource.TanuloKIRExportHeaderNameViseltNevElotag, Constants.ElotagList },
{ TanuloResource.TanuloKIRExportHeaderNameSzuletesiNevElotag, Constants.ElotagList },
{ TanuloResource.TanuloKIRExportHeaderNameAnyjaNeveElotag, Constants.ElotagList },
};
Dal.CustomConnection.Run(ConnectionType, dalHandler =>
{
var connectionType = new DalHandlerConnectionType(ConnectionType, dalHandler);
var allampolgarsagok = EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.Allampolgarsag);
var kozteruletJellegek = EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.KozteruletJelleg);
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderNameSzuletesiOrszag, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.OrszagTipus));
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderName1Allampolgarsag, allampolgarsagok);
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderName2Allampolgarsag, allampolgarsagok);
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderNameNem, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.Nem));
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderNameAllandoLakcimKozteruletJelleg, kozteruletJellegek);
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderNameTartozkodasiCimKozteruletJelleg, kozteruletJellegek);
var telepulesHelper = new TelepulesHelper(connectionType);
var telepulesNevek = telepulesHelper.GetTelepulesek().Select(x => x.TelepulesNev).ToList();
var iranyitoszamok = telepulesHelper.GetIranyitoszamok(string.Empty).Select(x => x.Iranyitoszam).ToList();
var szuletesiHelyek = telepulesHelper.GetSzuletesiHelysegNevList().Select(x => x.TelepulesNev).ToList();
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderNameAllandoLakcimIranyitoszam, iranyitoszamok);
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderNameAllandoLakcimTelepules, telepulesNevek);
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderNameTartozkodasiCimIranyitoszam, iranyitoszamok);
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderNameTartozkodasiCimTelepules, telepulesNevek);
dropDownColumnSourceDictionary.Add(TanuloResource.TanuloKIRExportHeaderNameSzuletesiHely, szuletesiHelyek);
});
return dropDownColumnSourceDictionary;
}
private IEnumerable<string> CheckTanuloImportDatabaseStringLength(TanuloKirAdatCO kirTanuloAdat)
{
int oktatasiAzonositoLength = kirTanuloAdat.OktatasiAzonosito?.Length ?? 0;
if (oktatasiAzonositoLength > 20)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Oktazon", 20);
}
int viseltNevLength = kirTanuloAdat.NyomtatasiNev?.Length ?? 0;
if (viseltNevLength > 62)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Viselt név(előtaggal)", 62);
}
int anyjaNeveLength = kirTanuloAdat.AnyjaNeve?.Length ?? 0;
if (anyjaNeveLength > 62)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Anyja neve", 62);
}
int szuletesiHelyLength = kirTanuloAdat.SzuletesiHely?.Length ?? 0;
if (szuletesiHelyLength > 50)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Születési hely", 50);
}
int tajSzamLength = kirTanuloAdat.TAJSzam?.Length ?? 0;
if (tajSzamLength > 9)
{
yield return string.Format(CommonResource.MaxLengthValidation, "TAJ szám", 9);
}
int allandoLakcimIranyitoSzamLength = kirTanuloAdat.AllandoLakcimIranyitoSzam?.Length ?? 0;
if (allandoLakcimIranyitoSzamLength > 20)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Állandó lakcím irányító szám", 20);
}
int allandoLakcimTelepulesLength = kirTanuloAdat.AllandoLakcimTelepules?.Length ?? 0;
if (allandoLakcimTelepulesLength > 50)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Állandó lakcím település", 50);
}
int allandoLakcimKozteruletNevLength = kirTanuloAdat.AllandoLakcimKozteruletNev?.Length ?? 0;
if (allandoLakcimKozteruletNevLength > 40)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Állandó lakcím közterület név", 40);
}
int allandoLakcimHazszamLength = kirTanuloAdat.AllandoLakcimHazszam?.Length ?? 0;
if (allandoLakcimHazszamLength > 30)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Állandó lakcím házszám", 30);
}
int tartozkodasiCimIranyitoSzamLength = kirTanuloAdat.TartozkodasiCimIranyitoSzam?.Length ?? 0;
if (tartozkodasiCimIranyitoSzamLength > 20)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Tartózkodási cím irányító szám", 20);
}
int tartozkodasiCimTelepulesLength = kirTanuloAdat.TartozkodasiCimTelepules?.Length ?? 0;
if (tartozkodasiCimTelepulesLength > 50)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Tartózkodási cím település", 50);
}
int tartozkodasiCimKozteruletNevLength = kirTanuloAdat.TartozkodasiCimKozteruletNev?.Length ?? 0;
if (tartozkodasiCimKozteruletNevLength > 40)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Tartózkodási cím közterület név", 40);
}
int tartozkodasiCimHazszamLength = kirTanuloAdat.TartozkodasiCimHazszam?.Length ?? 0;
if (tartozkodasiCimHazszamLength > 30)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Tartózkodási cím házszám", 30);
}
int telefonszamLength = kirTanuloAdat.Telefonszam?.Length ?? 0;
if (telefonszamLength > 100)
{
yield return string.Format(CommonResource.MaxLengthValidation, "Telefonszám", 100);
}
int emailLength = kirTanuloAdat.Email?.Length ?? 0;
if (emailLength > 200)
{
yield return string.Format(CommonResource.MaxLengthValidation, "E-mail", 200);
}
int omAzonositoLength = kirTanuloAdat.OMAzonosito?.Length ?? 0;
if (omAzonositoLength > 20)
{
yield return string.Format(CommonResource.MaxLengthValidation, "OM azonosító", 20);
}
}
private IEnumerable<string> CheckOktatasiAzonositoFelhasznaloBelepes(FelhasznaloHelper felhasznaloHelper,
string oktatasiAzonosito, FelhasznaloiNevGeneralasModjaEnum felhasznaloiNevGeneralasModja, int? anotherYearId, bool isKovTanev, string tanevMegnevezes,
ref bool pAzonos4TAlapjan, TanuloKirAdatCO kirTanuloAdat = null)
{
var errors = new List<string>();
if (!string.IsNullOrWhiteSpace(oktatasiAzonosito) && felhasznaloiNevGeneralasModja == FelhasznaloiNevGeneralasModjaEnum.Oktatasi_azonosito_alapjan)
{
var tanevIds = new List<int>();
tanevIds.Add(TanevId);
if (anotherYearId.HasValue && !isKovTanev)
{
tanevIds.Add(anotherYearId.Value);
}
List<Felh4TOktAzonValidationCo> list = felhasznaloHelper.Check4TFelhOktAzonValidation(tanevIds, (int)Validation4TEnum.Tanulo,
kirTanuloAdat.SzuletesiNevNevSorrend, kirTanuloAdat.SzuletesiNevElotag, kirTanuloAdat.SzuletesiNevVezetekNev, kirTanuloAdat.SzuletesiNevKeresztNev,
kirTanuloAdat.AnyjaNeveNevSorrend, kirTanuloAdat.AnyjaNeveElotag, kirTanuloAdat.AnyjaNeveVezetekNev, kirTanuloAdat.AnyjaNeveKeresztNev,
kirTanuloAdat.SzuletesiHely, kirTanuloAdat.SzuletesiDatum, oktatasiAzonosito, oktatasiAzonosito);
//Ha talal 4T alapjan azonos tanulot akkor azt updatelni kell => nem utkozes
if (!string.IsNullOrWhiteSpace(kirTanuloAdat.SzuletesiNevVezetekNev) || !string.IsNullOrWhiteSpace(kirTanuloAdat.SzuletesiNevKeresztNev) || !string.IsNullOrWhiteSpace(kirTanuloAdat.SzuletesiNevElotag)
|| !string.IsNullOrWhiteSpace(kirTanuloAdat.AnyjaNeveVezetekNev) || !string.IsNullOrWhiteSpace(kirTanuloAdat.AnyjaNeveKeresztNev) || !string.IsNullOrWhiteSpace(kirTanuloAdat.AnyjaNeveElotag)
|| !string.IsNullOrWhiteSpace(kirTanuloAdat.SzuletesiHely) || kirTanuloAdat.SzuletesiDatum.HasValue)
{
var azonos4TAlapjan = list.Where(x =>
((SDAConvert.ToStringForExcelCell(kirTanuloAdat.SzuletesiNevNevSorrend) == x.SzuletesiNevSorrend
&& SDAConvert.ToStringForExcelCell(kirTanuloAdat.SzuletesiNevVezetekNev) == x.SzuletesiCsaladiNev
&& SDAConvert.ToStringForExcelCell(kirTanuloAdat.SzuletesiNevKeresztNev) == x.SzuletesiUtonev)
|| (SDAConvert.ToStringForExcelCell(kirTanuloAdat.SzuletesiNevVezetekNev) == x.SzuletesiUtonev
&& SDAConvert.ToStringForExcelCell(kirTanuloAdat.SzuletesiNevKeresztNev) == x.SzuletesiCsaladiNev))
&& SDAConvert.ToStringForExcelCell(kirTanuloAdat.SzuletesiNevElotag) == x.SzuletesiNevElotag
&& ((SDAConvert.ToStringForExcelCell(kirTanuloAdat.AnyjaNeveNevSorrend) == x.AnyjaNevSorrend
&& SDAConvert.ToStringForExcelCell(kirTanuloAdat.AnyjaNeveVezetekNev) == x.AnyjaCsaladiNev
&& SDAConvert.ToStringForExcelCell(kirTanuloAdat.AnyjaNeveKeresztNev) == x.AnyjaUtonev)
|| (SDAConvert.ToStringForExcelCell(kirTanuloAdat.AnyjaNeveVezetekNev) == x.AnyjaUtonev
&& SDAConvert.ToStringForExcelCell(kirTanuloAdat.AnyjaNeveKeresztNev) == x.AnyjaCsaladiNev))
&& SDAConvert.ToStringForExcelCell(kirTanuloAdat.AnyjaNeveElotag) == x.AnyjaElotag
&& SDAConvert.ToStringForExcelCell(kirTanuloAdat.SzuletesiHely) == x.SzuletesiHely && kirTanuloAdat.SzuletesiDatum == x.SzuletesiIdo).ToList();
if (azonos4TAlapjan.Count > 0)
{
pAzonos4TAlapjan = true;
return errors;
}
}
var selectedTanevUtkozes = list.Where(x => x.TanevId == TanevId).ToList();
var anotherTanevUtkozes = list.Where(x => anotherYearId.HasValue && x.TanevId == anotherYearId.Value).ToList();
if (selectedTanevUtkozes.Any(x => x.OktatasiAzonosito == oktatasiAzonosito && x.ValidationType == (int)Validation4TEnum.Tanulo))
{
errors.Add(string.Format(ErrorResource.OktatasiAzonositoFoglaltAltal, string.Join(", ", selectedTanevUtkozes.Where(x => x.OktatasiAzonosito == oktatasiAzonosito && !x.GondviseloId.HasValue && x.ValidationType == (int)Validation4TEnum.Tanulo).Select(x => x.NyomtatasiNev)), string.Empty));
}
else if (anotherTanevUtkozes.Any(x => x.OktatasiAzonosito == oktatasiAzonosito && x.ValidationType == (int)Validation4TEnum.Tanulo))
{
errors.Add(string.Format(ErrorResource.OktatasiAzonositoFoglaltAltal, string.Join(", ", anotherTanevUtkozes.Where(x => x.OktatasiAzonosito == oktatasiAzonosito && !x.GondviseloId.HasValue && x.ValidationType == (int)Validation4TEnum.Tanulo).Select(x => x.NyomtatasiNev)), tanevMegnevezes));
}
var selectedTanevUtkozesForBejelentkezesiNev = selectedTanevUtkozes.Where(x => x.BejelentkezesiNev == oktatasiAzonosito);
var anotherTanevUtkozesForBejelentkezesiNev = anotherYearId.HasValue ? anotherTanevUtkozes.Where(x => x.BejelentkezesiNev == oktatasiAzonosito) : new List<Felh4TOktAzonValidationCo>();
FelhasznalonevValidacio(errors, selectedTanevUtkozesForBejelentkezesiNev, anotherTanevUtkozesForBejelentkezesiNev, tanevMegnevezes);
}
else
{
errors.Add(ErrorResource.OktatasiAzonositoKotelezo);
}
return errors;
}
private static void FelhasznalonevValidacio(List<string> errors, IEnumerable<Felh4TOktAzonValidationCo> selectedTanevElemek, IEnumerable<Felh4TOktAzonValidationCo> anotherTanevElemek, string tanevMegnevezes)
{
var nincsGondviseloSelectedTanevElemek = selectedTanevElemek.Where(x => x.GondviseloId == null);
if (nincsGondviseloSelectedTanevElemek.Any())
{
errors.Add(string.Format(ErrorResource.FelhasznalonevFoglaltAltal, string.Join(", ", nincsGondviseloSelectedTanevElemek.Select(x => x.NyomtatasiNev)), string.Empty));
}
var vanGondviseloSelectedTanevElemek = selectedTanevElemek.Where(x => x.GondviseloId != null);
if (vanGondviseloSelectedTanevElemek.Any())
{
errors.Add(string.Format(ErrorResource.FelhasznalonevFoglaltAltalGondviselo, string.Join(", ", vanGondviseloSelectedTanevElemek.Select(x => x.NyomtatasiNev)), string.Empty));
}
var nincsGondviseloAnotherTanevElemek = anotherTanevElemek.Where(x => x.GondviseloId == null);
if (nincsGondviseloAnotherTanevElemek.Any())
{
errors.Add(string.Format(ErrorResource.FelhasznalonevFoglaltAltal, string.Join(", ", nincsGondviseloAnotherTanevElemek.Select(x => x.NyomtatasiNev)), tanevMegnevezes));
}
var vanGondviseloAnotherTanevElemek = anotherTanevElemek.Where(x => x.GondviseloId != null);
if (vanGondviseloAnotherTanevElemek.Any())
{
errors.Add(string.Format(ErrorResource.FelhasznalonevFoglaltAltalGondviselo, string.Join(", ", vanGondviseloAnotherTanevElemek.Select(x => x.NyomtatasiNev)), tanevMegnevezes));
}
}
private string GetTanevMegnevezesForBelepesCheck(bool isKovTanev) => isKovTanev ? ErrorResource.AzAktualisTaneven : ErrorResource.AKovetkezoTaneven;
private void SetTanuloFelhasznaloBelepesData(TanuloKirAdatCO co, FelhasznaloBelepesModel felhasznaloBelepes)
{
co.Salt = felhasznaloBelepes.So;
co.BejelentkezesiNev = felhasznaloBelepes.BejelentkezesiNev;
co.Jelszo = felhasznaloBelepes.Jelszo;
}
#endregion Tanulo KIR import
#region Utils
public void CheckMergedCells(WorksheetPart wsPart)
{
MergeCells cells = wsPart.Worksheet.Descendants<MergeCells>().FirstOrDefault();
if (cells != null && cells.Count != 0)
{
throw new InvalidDataException(StringResourcesUtils.GetString(4832));
}
}
public DateTime FromExcelSerialDate(int serialDate)
{
if (serialDate > 59)
serialDate--; //Excel/Lotus 2/29/1900 bug
return new DateTime(1899, 12, 31).AddDays(serialDate);
}
private string GetExcelColumnName(int columnNumber)
{
int dividend = columnNumber;
string columnName = string.Empty;
while (dividend > 0)
{
var modulo = (dividend - 1) % 26;
columnName = Convert.ToChar(65 + modulo) + columnName;
dividend = (dividend - modulo) / 26;
}
return columnName;
}
public string GetHeaderExcelCharIndex(List<string> requiredColumns, Dictionary<string, string> columnHeaderList, string requestedHeader)
{
if (columnHeaderList.Keys.Contains(requestedHeader))
{
return columnHeaderList[requestedHeader];
}
return null;
}
public void CheckRequiredHeaders(List<string> requiredColumns, Dictionary<string, string> columnHeaderList)
{
if (columnHeaderList.Count == 0)
throw new Exception();
if (!(requiredColumns.Count > 0 && requiredColumns.All(columnHeaderList.ContainsKey)))
{
throw new InvalidDataException($"A feltöltött fájlból hiányoznak kötelező oszlopok: {string.Join(", ", requiredColumns.Where(key => !columnHeaderList.ContainsKey(key)).Select(key => key).ToList())}");
}
}
public void ReadColumnHeaders(SharedStringTable sharedstringtable, Worksheet sheet, out Dictionary<string, string> columnHeaders)
{
columnHeaders = new Dictionary<string, string>();
var oszlop = 0;
string cellvalue;
do
{
oszlop++;
Cell cell = ExcelManager.GetCell(sheet, GetExcelColumnName(oszlop), 1);
cellvalue = ExcelManager.GetCellValue(sharedstringtable, cell).ReplaceMultipleSpacesAndTrim();
if (!string.IsNullOrWhiteSpace(cellvalue))
columnHeaders.Add(cellvalue, GetExcelColumnName(oszlop));
} while (!string.IsNullOrWhiteSpace(cellvalue));
}
public void CheckFileType(string fileName)
{
var fileInfo = new FileInfo(fileName);
if (fileInfo.Extension != ".xlsx")
{
// csak excel fajlt lehet importalni
throw new KretaInvalidFileFormatException(ErrorResource.CsakXlsxKiterjesztesuExcelFiletLehetImportalni /*Csak xlsx kiterjesztésű excel típusú fájlt lehet importálni!*/, "www.google.com"); // TODO link megadása
}
}
public DateTime GetDateFromExcel(string dateStringFromExcel)
{
if (DateTime.TryParse(dateStringFromExcel, out var datum))
{
return datum;
}
if (!string.IsNullOrWhiteSpace(dateStringFromExcel))
{
try
{
datum = FromExcelSerialDate(SDAConvert.ToInt32(dateStringFromExcel));
}
catch (Exception ex)
{
throw new BlException(ErrorResource.ErtelmezhetetlenDatumFormatum, ex); //Értelmezhetetlen dátum formátum!
}
}
return datum;
}
public bool IsValidDate(DateTime date, out string errorMessage)
{
var sqlMinDate = SqlDateTime.MinValue.Value.Date;
var sqlMaxDate = SqlDateTime.MaxValue.Value.Date;
if (date < sqlMinDate || date > sqlMaxDate)
{
errorMessage = string.Format(ErrorResource.InvalidDate, date.ToShortDateString());
return false;
}
errorMessage = string.Empty;
return true;
}
private bool IsValidAddress(string allandoLakcimIranyitoSzam, string allandoLakcimTelepules, string allandoLakcimKozteruletNev, string allandoLakcimHazszam)
{
if (string.IsNullOrWhiteSpace(allandoLakcimIranyitoSzam) || string.IsNullOrWhiteSpace(allandoLakcimTelepules) || string.IsNullOrWhiteSpace(allandoLakcimKozteruletNev) || string.IsNullOrWhiteSpace(allandoLakcimHazszam))
{
if (string.IsNullOrWhiteSpace(allandoLakcimIranyitoSzam) && string.IsNullOrWhiteSpace(allandoLakcimTelepules) && string.IsNullOrWhiteSpace(allandoLakcimKozteruletNev) && string.IsNullOrWhiteSpace(allandoLakcimHazszam))
{
return true;
}
else
{
return false;
}
}
return true;
}
#endregion Utils
}
}