1797 lines
121 KiB
C#
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
|
|
}
|
|
}
|