809 lines
51 KiB
C#
809 lines
51 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses.AmiTorzslapCOs;
|
|
using Kreta.Core;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Resources;
|
|
using AsposeWords = Aspose.Words;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers
|
|
{
|
|
public partial class AsposeHelper
|
|
{
|
|
public MemoryStream GetAmiTorzslap(Stream sablonStream, int formatumId)
|
|
{
|
|
var torzslapCo = new AmiTorzslapCo(_ds, options.DocumentParameters, options.TanevId);
|
|
|
|
Dictionary<bool, string> sablonokNeve;
|
|
if (this.options.DocumentParameters.MuveszetiAgId == (int)MuveszetiAgEnum.ZenemuveszetiAg)
|
|
{
|
|
sablonokNeve = new Dictionary<bool, string>
|
|
{
|
|
{ false, AmiTorzslapResource.ZenemuveszetiSablon },
|
|
{ true, AmiTorzslapResource.ZenemuveszetiSNISablon },
|
|
};
|
|
}
|
|
else
|
|
{
|
|
sablonokNeve = new Dictionary<bool, string>
|
|
{
|
|
{ false, AmiTorzslapResource.NemZenemuveszetiSablon },
|
|
{ true, AmiTorzslapResource.NemZenemuveszetiSNISablon },
|
|
};
|
|
}
|
|
|
|
var resultDoc = new AsposeWords.Document();
|
|
AsposeWords.Style normal = resultDoc.Styles[AsposeWords.StyleIdentifier.Normal];
|
|
normal.Font.Name = AmiTorzslapResource.UsedFontName;
|
|
normal.Font.Size = AmiTorzslapConstants.UsedFontSize;
|
|
|
|
foreach (var co in torzslapCo.TanuloTorzslapCoList.OrderBy(x => x.TorzslapSzam?.Length ?? 0).ThenBy(x => x.TorzslapSzam))
|
|
{
|
|
var kellSni = (co.TanuloSniAdatok != null) && this.options.DocumentParameters.SNIMegjelenites;
|
|
var sablonPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"Resources\AsposeSablonok\{sablonokNeve[kellSni]}");
|
|
var doc = new AsposeWords.Document(sablonPath, new AsposeWords.LoadOptions());
|
|
var table = (AsposeWords.Tables.Table)doc.GetChild(AsposeWords.NodeType.Table, 0, true);
|
|
if (this.options.DocumentParameters.FejlecMegjelenitese)
|
|
{
|
|
SetFejlecAdatok(table, co);
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < 4; i++)
|
|
{
|
|
foreach (AsposeWords.Tables.Cell cell in table.Rows[i].Cells)
|
|
{
|
|
cell.CellFormat.Borders.Top.Color = Color.White;
|
|
cell.CellFormat.Borders.Bottom.Color = Color.White;
|
|
cell.CellFormat.Borders.Left.Color = Color.White;
|
|
cell.CellFormat.Borders.Right.Color = Color.White;
|
|
cell.FirstParagraph.Runs.Clear();
|
|
cell.LastParagraph.Runs.Clear();
|
|
}
|
|
}
|
|
}
|
|
|
|
if (this.options.DocumentParameters.AdatokMegjelenitese)
|
|
{
|
|
SetTantargyAdatok(table, co, kellSni);
|
|
if (kellSni)
|
|
{
|
|
SetSNIAdatok(table, co);
|
|
}
|
|
if (this.options.DocumentParameters.FelmentesekMegjelenitese)
|
|
{
|
|
SetFelmentesek(table, co, kellSni);
|
|
}
|
|
if (this.options.DocumentParameters.FeljegyzesekMegjelenitese)
|
|
{
|
|
SetFeljegyzesek(table, co, kellSni);
|
|
}
|
|
SetZaradekok(table, co, kellSni);
|
|
}
|
|
else
|
|
{
|
|
for (int i = 4; i < table.Rows.Count; i++)
|
|
{
|
|
for (int j = 0; j < table.Rows[i].Cells.Count; j++)
|
|
{
|
|
AsposeWords.Tables.Cell cell = table.Rows[i].Cells[j];
|
|
cell.CellFormat.Borders.Top.Color = Color.White;
|
|
cell.CellFormat.Borders.Bottom.Color = Color.White;
|
|
cell.CellFormat.Borders.Left.Color = Color.White;
|
|
cell.CellFormat.Borders.Right.Color = Color.White;
|
|
cell.Paragraphs.Clear();
|
|
var newParagraph = new AsposeWords.Paragraph(doc);
|
|
newParagraph.ParagraphBreakFont.Size = AmiTorzslapConstants.UsedFontSize;
|
|
newParagraph.ParagraphBreakFont.Name = AmiTorzslapResource.UsedFontName;
|
|
|
|
var newRun = new AsposeWords.Run(doc,
|
|
i == 5 && j == 5 ? AsposeWords.ControlChar.LineBreak :
|
|
i == 25 && j == 0 && kellSni ? " " + AsposeWords.ControlChar.LineBreak + " " + AsposeWords.ControlChar.LineBreak :
|
|
i == 26 && kellSni ? " " + AsposeWords.ControlChar.LineBreak : " ");
|
|
newRun.Font.Name = AmiTorzslapResource.UsedFontName;
|
|
newRun.Font.Size = AmiTorzslapConstants.UsedFontSize;
|
|
newParagraph.Runs.Add(newRun);
|
|
cell.Paragraphs.Add(newParagraph);
|
|
}
|
|
}
|
|
}
|
|
|
|
resultDoc.AppendDocument(doc, AsposeWords.ImportFormatMode.KeepSourceFormatting);
|
|
}
|
|
|
|
resultDoc.Sections.RemoveAt(0);
|
|
SetWordDocumentKotesMargo(resultDoc);
|
|
|
|
var ms = new MemoryStream();
|
|
resultDoc.Save(ms, formatumId == (int)NyomtatvanyFormatumEnum.Word ? AsposeWords.SaveFormat.Docx : AsposeWords.SaveFormat.Pdf);
|
|
ms.Position = 0;
|
|
|
|
return ms;
|
|
}
|
|
|
|
private void SetFejlecAdatok(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co)
|
|
{
|
|
var sorSzama = 0;
|
|
var oszlopSzama = 0;
|
|
|
|
var baseRun = new AsposeWords.Run(table.Document);
|
|
baseRun.Font.Name = AmiTorzslapResource.UsedFontName;
|
|
baseRun.Font.Size = options.DocumentParameters.BetuMeretFejlec;
|
|
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TorzslapSzam));
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanuloNeve));
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.OktatasiAzonosito));
|
|
table.Rows[sorSzama++].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, string.Join(AsposeWords.ControlChar.LineBreak, co.FoglalkozasiNaploAdatCos?.OrderByDescending(x => x.IsOsztalyos).ThenBy(x => x.NaploSzam).Select(x => $"{x.TanuloSzam}/{x.NaploSzam}") ?? new List<string>())));
|
|
|
|
oszlopSzama = 0;
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.BeirasiNaploSorszam));
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.EvfolyamNeve));
|
|
if (string.IsNullOrWhiteSpace(co.EvfolyamNeve))
|
|
{
|
|
AddHibaKomment(table, sorSzama, oszlopSzama - 1, AmiTorzslapResource.NincsMegadvaFotargy);
|
|
}
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, string.Join(", ", new List<string> { co.SzuletesiHelye, co.SzuletesiOrszag })));
|
|
table.Rows[sorSzama++].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.SzuletesiIdeje.ToString(Constants.ToStringPattern.HungarianDate)));
|
|
|
|
oszlopSzama = 0;
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.AnyjaNeve));
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.AllampolgarsagNeve));
|
|
table.Rows[sorSzama++].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, $"{co.TartozkodasJogcime}{(string.IsNullOrWhiteSpace(co.OkiratSzama) ? "" : $", {co.OkiratSzama}")}"));
|
|
|
|
oszlopSzama = 0;
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanevNeve));
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.MuveszetiAgNeve?.Substring(0, co.MuveszetiAgNeve.Length - 4)));
|
|
if (this.options.DocumentParameters.MuveszetiAgId == (int)MuveszetiAgEnum.ZenemuveszetiAg)
|
|
{
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.MufajNeve));
|
|
if (string.IsNullOrWhiteSpace(co.MufajNeve))
|
|
{
|
|
AddHibaKomment(table, sorSzama, oszlopSzama - 1, AmiTorzslapResource.NincsMegadvaFotargy);
|
|
}
|
|
}
|
|
table.Rows[sorSzama++].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanszakNeve));
|
|
if (string.IsNullOrWhiteSpace(co.TanszakNeve))
|
|
{
|
|
AddHibaKomment(table, sorSzama - 1, oszlopSzama - 1, AmiTorzslapResource.NincsMegadvaFotargy);
|
|
}
|
|
}
|
|
|
|
private void SetTantargyAdatok(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni)
|
|
{
|
|
var baseRun = new AsposeWords.Run(table.Document);
|
|
baseRun.Font.Name = AmiTorzslapResource.UsedFontName;
|
|
baseRun.Font.Size = options.DocumentParameters.BetuMeretAdatok;
|
|
|
|
var pontpont = "................................................";
|
|
var isZenemuveszetiAg = options.DocumentParameters.MuveszetiAgId == (int)MuveszetiAgEnum.ZenemuveszetiAg;
|
|
var alapVizsgaAdatok = co.AlapVizsgaAdatokCos.OrderByDescending(x => x.Datum).FirstOrDefault();
|
|
if (alapVizsgaAdatok != default)
|
|
{
|
|
var alapvizsgaOszlop = isZenemuveszetiAg ? 6 : 2;
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[0].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center;
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[0].Runs.Clear();
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[0].Runs.Add(GetRunWithText(baseRun, isZenemuveszetiAg ? alapVizsgaAdatok.MufajNeve : alapVizsgaAdatok.MuveszetiAgNeve));
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[2].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center;
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[2].Runs.Clear();
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[2].Runs.Add(GetRunWithText(baseRun, alapVizsgaAdatok.TanszakNeve));
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[6].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center;
|
|
var zarojel = table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[6].LastChild as AsposeWords.Run;
|
|
zarojel.Text = zarojel.Text.Substring(zarojel.Text.Length - 1);
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[6].Runs.Insert(
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[6].Count - 1,
|
|
GetRunWithText(baseRun, alapVizsgaAdatok.OMKod));
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[9].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center;
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[9].Runs.Clear();
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[9].Runs.Add(GetRunWithText(baseRun, alapVizsgaAdatok.Ertekeles));
|
|
var avKeltezes = (!string.IsNullOrWhiteSpace(alapVizsgaAdatok.KeltezesHelye) && alapVizsgaAdatok.KeltezesDatuma.HasValue) ? $"{alapVizsgaAdatok.KeltezesHelye}, {alapVizsgaAdatok.KeltezesDatuma.Value.ToString(this.options.DocumentParameters.KeltFormatum == KeltFormatumTipusEnum.Szammal ? Constants.ToStringPattern.HungarianDate : Constants.ToStringPattern.HungarianLongDate)}" : pontpont.Substring(8);
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[11].LastChild.Remove();
|
|
table.Rows[5].Cells[alapvizsgaOszlop].Paragraphs[11].Runs.Add(GetRunWithText(baseRun, avKeltezes));
|
|
|
|
var alapVizsgaAdatokTobbi = co.AlapVizsgaAdatokCos.FindAll(x => x != alapVizsgaAdatok).ToList();
|
|
if (alapVizsgaAdatokTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesAlapZaroVizsgaErtekeles(table, 5, alapvizsgaOszlop, alapVizsgaAdatokTobbi, AmiTorzslapResource.TobbAlapvizsgaErtekelesVanMegadva);
|
|
}
|
|
}
|
|
|
|
var zaroVizsgaAdatok = co.ZaroVizsgaAdatokCos.OrderByDescending(x => x.Datum).FirstOrDefault();
|
|
if (zaroVizsgaAdatok != default)
|
|
{
|
|
var zarovizsgaOszlop = isZenemuveszetiAg ? 3 : 1;
|
|
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[0].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center;
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[0].Runs.Clear();
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[0].Runs.Add(GetRunWithText(baseRun, isZenemuveszetiAg ? zaroVizsgaAdatok.MufajNeve : zaroVizsgaAdatok.MuveszetiAgNeve));
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[2].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center;
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[2].Runs.Clear();
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[2].Runs.Add(GetRunWithText(baseRun, zaroVizsgaAdatok.TanszakNeve));
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[6].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center;
|
|
var zarojel = table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[6].LastChild as AsposeWords.Run;
|
|
zarojel.Text = zarojel.Text.Substring(zarojel.Text.Length - 1);
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[6].Runs.Insert(
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[6].Count - 1,
|
|
GetRunWithText(baseRun, zaroVizsgaAdatok.OMKod));
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[9].ParagraphFormat.Alignment = AsposeWords.ParagraphAlignment.Center;
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[9].Runs.Clear();
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[9].Runs.Add(GetRunWithText(baseRun, zaroVizsgaAdatok.Ertekeles));
|
|
var zvKeltezes = (!string.IsNullOrWhiteSpace(zaroVizsgaAdatok.KeltezesHelye) && zaroVizsgaAdatok.KeltezesDatuma.HasValue) ? $"{zaroVizsgaAdatok.KeltezesHelye}, {zaroVizsgaAdatok.KeltezesDatuma.Value.ToString(this.options.DocumentParameters.KeltFormatum == KeltFormatumTipusEnum.Szammal ? Constants.ToStringPattern.HungarianDate : Constants.ToStringPattern.HungarianLongDate)}" : pontpont.Substring(8);
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[11].LastChild.Remove();
|
|
table.Rows[23].Cells[zarovizsgaOszlop].Paragraphs[11].Runs.Add(GetRunWithText(baseRun, zvKeltezes));
|
|
|
|
var zaroVizsgaAdatokTobbi = co.ZaroVizsgaAdatokCos.FindAll(x => x != zaroVizsgaAdatok).ToList();
|
|
if (zaroVizsgaAdatokTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesAlapZaroVizsgaErtekeles(table, 23, zarovizsgaOszlop, zaroVizsgaAdatokTobbi, AmiTorzslapResource.TobbZarovizsgaErtekelesVanMegadva);
|
|
}
|
|
}
|
|
|
|
if (isZenemuveszetiAg)
|
|
{
|
|
SetZenemuveszetiTargyak(table, co, kellSni, baseRun);
|
|
}
|
|
else
|
|
{
|
|
SetNemZenemuveszetiTargyak(table, co, kellSni, baseRun);
|
|
}
|
|
}
|
|
|
|
private void SetZenemuveszetiTargyak(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni, AsposeWords.Run baseRun)
|
|
{
|
|
var targyakSorSzama = 6;
|
|
var szovegesErtekelesSorSzama = 25;
|
|
if (kellSni)
|
|
{
|
|
szovegesErtekelesSorSzama += 2;
|
|
}
|
|
// főtárgy
|
|
var foTargyak = co.ZenemuveszetiAgTantargyCos.Where(x => x.IsFotargy && !x.IsSzorgalom).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
int? kivalasztottFotargyId = null;
|
|
if (foTargyak.Count > 0)
|
|
{
|
|
var targy = foTargyak[0];
|
|
kivalasztottFotargyId = targy.Id;
|
|
var targyNev = targy.Nev + AmiTorzslapResource.FotargyNevPostfix;
|
|
table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targyNev));
|
|
var evfolyamNeve = targy.EvfolyamNeve;
|
|
var tagozatNeve = targy.TagozatNeve;
|
|
if (evfolyamNeve == EvfolyamTipusEnum.na.GetDisplayName(options.TanevId))
|
|
{
|
|
evfolyamNeve = "";
|
|
}
|
|
if (tagozatNeve == AMITagozatEnum.na.GetDisplayName(options.TanevId))
|
|
{
|
|
tagozatNeve = " ";
|
|
}
|
|
table.Rows[targyakSorSzama].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, evfolyamNeve));
|
|
table.Rows[targyakSorSzama].Cells[3].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, tagozatNeve?.Substring(0, 1)));
|
|
table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(targy.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, targy.IsSzoveges ? targy.Jeloles : $" ({targy.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = targy.IsSzoveges;
|
|
table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
table.Rows[targyakSorSzama].Cells[5].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.MulasztasIgazolt.ToString()));
|
|
table.Rows[targyakSorSzama].Cells[6].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.MulasztasIgazolatlan.ToString()));
|
|
if (targy.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, targy, targyNev);
|
|
}
|
|
var foTargyakTobbi = foTargyak.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgFotargy).ToList();
|
|
if (foTargyakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, foTargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallivaFotargynak);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
AddHibaKomment(table, targyakSorSzama, 0, AmiTorzslapResource.NincsMegadvaFotargy);
|
|
}
|
|
|
|
targyakSorSzama++;
|
|
// főtárgy szorgalom
|
|
var fotargySzorgalmak = co.ZenemuveszetiAgTantargyCos.Where(x => x.IsFotargy && x.IsSzorgalom).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
if (fotargySzorgalmak.Count > 0)
|
|
{
|
|
var kivalasztottFotargySzorgalomId = 0;
|
|
if (kivalasztottFotargyId != default)
|
|
{
|
|
var kivalasztottFotargySzorgalmak = fotargySzorgalmak.Where(x => x.KapcsolodoFotargyId == kivalasztottFotargyId).ToList();
|
|
if (kivalasztottFotargySzorgalmak.Count > 0)
|
|
{
|
|
var kivalasztottFotargySzorgalom = kivalasztottFotargySzorgalmak[0];
|
|
kivalasztottFotargySzorgalomId = kivalasztottFotargySzorgalom.Id;
|
|
table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kivalasztottFotargySzorgalom.Osztalyzat));
|
|
if (kivalasztottFotargySzorgalom.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, kivalasztottFotargySzorgalom);
|
|
}
|
|
var kivalasztottFotargySzorgalmakTobbi = kivalasztottFotargySzorgalmak.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgFotargySzorgalom).ToList();
|
|
if (kivalasztottFotargySzorgalmakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kivalasztottFotargySzorgalmakTobbi, AmiTorzslapResource.TobbFotargySzorgalomVanBeallitvaAKivalasztottFotargyhoz);
|
|
}
|
|
}
|
|
}
|
|
var fotargySzorgalmakTobbi = fotargySzorgalmak.Where(x => x.Id != kivalasztottFotargySzorgalomId).ToList();
|
|
if (fotargySzorgalmakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, fotargySzorgalmakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaFotargySzorgalomnak);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var fotargySzorgalomEvvegibol = co.ZenemuveszetiAgTantargyCos.SingleOrDefault(x => x.Id == AmiTorzslapConstants.SzorgalomEvvegiJegyTantargyId);
|
|
if (fotargySzorgalomEvvegibol != default)
|
|
{
|
|
table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, fotargySzorgalomEvvegibol.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(fotargySzorgalomEvvegibol.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, fotargySzorgalomEvvegibol.IsSzoveges ? fotargySzorgalomEvvegibol.Jeloles : $" ({fotargySzorgalomEvvegibol.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = fotargySzorgalomEvvegibol.IsSzoveges;
|
|
table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
if (fotargySzorgalomEvvegibol.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, fotargySzorgalomEvvegibol);
|
|
}
|
|
}
|
|
}
|
|
targyakSorSzama++;
|
|
|
|
var kotelezoKotelezoenValaszthatoNemFotargyak = co.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && (x.KotelezosegId == (int)AMITantargyKotelezosegEnum.Kotelezo || x.KotelezosegId == (int)AMITantargyKotelezosegEnum.KotelezoenValaszthato));
|
|
var valaszthatoTargyak = co.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && x.KotelezosegId == (int)AMITantargyKotelezosegEnum.SzabadonValaszthato && x.Id != AmiTorzslapConstants.SzorgalomEvvegiJegyTantargyId).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
// szolfézs
|
|
var szolfezsTargyak = kotelezoKotelezoenValaszthatoNemFotargyak.Where(x => x.Nev.ToLower() == AmiTorzslapResource.Szolfezs.ToLower() && !x.IsSzorgalom).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
int? kivalasztottSzolfezsId = null;
|
|
if (szolfezsTargyak.Count > 0)
|
|
{
|
|
var targy = szolfezsTargyak[0];
|
|
kivalasztottSzolfezsId = targy.Id;
|
|
var evfolyamNeve = targy.EvfolyamNeve;
|
|
var tagozatNeve = targy.TagozatNeve;
|
|
if (evfolyamNeve == EvfolyamTipusEnum.na.GetDisplayName(options.TanevId))
|
|
{
|
|
evfolyamNeve = "";
|
|
}
|
|
if (tagozatNeve == AMITagozatEnum.na.GetDisplayName(options.TanevId))
|
|
{
|
|
tagozatNeve = " ";
|
|
}
|
|
table.Rows[targyakSorSzama].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, evfolyamNeve));
|
|
table.Rows[targyakSorSzama].Cells[3].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, tagozatNeve?.Substring(0, 1)));
|
|
table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(targy.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, targy.IsSzoveges ? targy.Jeloles : $" ({targy.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = targy.IsSzoveges;
|
|
table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
table.Rows[targyakSorSzama].Cells[5].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.MulasztasIgazolt?.ToString()));
|
|
table.Rows[targyakSorSzama].Cells[6].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, targy.MulasztasIgazolatlan?.ToString()));
|
|
if (targy.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, targy, targy.Nev);
|
|
}
|
|
|
|
var szolfezsTargyakTobbi = szolfezsTargyak.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgSzolfezs).ToList();
|
|
if (szolfezsTargyakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, szolfezsTargyakTobbi, AmiTorzslapResource.TobbSzolfezsTantargyVanBeallitva);
|
|
}
|
|
}
|
|
targyakSorSzama++;
|
|
// szolfézs szorgalom
|
|
var szolfezsSzorgalmak = kotelezoKotelezoenValaszthatoNemFotargyak.Where(x => szolfezsTargyak.Any(y => y.Id == x.KapcsolodoFotargyId) && x.IsSzorgalom).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
if (szolfezsSzorgalmak.Count > 0)
|
|
{
|
|
var kivalasztottSzolfezsSzorgalomId = 0;
|
|
if (kivalasztottSzolfezsId != default)
|
|
{
|
|
var kivalasztottSzolfezsSzorgalmak = szolfezsSzorgalmak.Where(x => x.KapcsolodoFotargyId == kivalasztottSzolfezsId).ToList();
|
|
if (kivalasztottSzolfezsSzorgalmak.Count > 0)
|
|
{
|
|
var kivalasztottSzolfezsSzorgalom = kivalasztottSzolfezsSzorgalmak[0];
|
|
kivalasztottSzolfezsSzorgalomId = kivalasztottSzolfezsSzorgalom.Id;
|
|
table.Rows[targyakSorSzama].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kivalasztottSzolfezsSzorgalom.Osztalyzat));
|
|
if (kivalasztottSzolfezsSzorgalom.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, kivalasztottSzolfezsSzorgalom, AmiTorzslapResource.Szolfezs);
|
|
}
|
|
var kivalasztottSzolfezsSzorgalmakTobbi = kivalasztottSzolfezsSzorgalmak.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgSzolfezsSzorgalom).ToList();
|
|
if (kivalasztottSzolfezsSzorgalmakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kivalasztottSzolfezsSzorgalmakTobbi, AmiTorzslapResource.TobbSzolfezsSzorgalomVanBeallitvaAKivalasztottSzolfezshoz);
|
|
}
|
|
}
|
|
}
|
|
var szolfezsSzorgalmakTobbi = szolfezsSzorgalmak.Where(x => x.Id != kivalasztottSzolfezsSzorgalomId).ToList();
|
|
if (szolfezsSzorgalmakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, szolfezsSzorgalmakTobbi, AmiTorzslapResource.TobbSzolfezsSzorgalomTantargyVanBeallitva);
|
|
}
|
|
}
|
|
targyakSorSzama++;
|
|
var kotelezoKotelezoenValaszthatoTargyakOsszes = kotelezoKotelezoenValaszthatoNemFotargyak.Where(x => !szolfezsTargyak.Any(y => y.Id == x.Id) && !szolfezsSzorgalmak.Any(y => y.Id == x.Id)).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
for (int i = 0; i < Math.Min(kotelezoKotelezoenValaszthatoTargyakOsszes.Count, AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgKotelezoKotelezoenValaszthatoTargyak); i++)
|
|
{
|
|
var kotTargy = kotelezoKotelezoenValaszthatoTargyakOsszes[i];
|
|
table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.Nev));
|
|
var evfolyamNeve = kotTargy.EvfolyamNeve;
|
|
var tagozatNeve = kotTargy.TagozatNeve;
|
|
if (evfolyamNeve == EvfolyamTipusEnum.na.GetDisplayName(options.TanevId))
|
|
{
|
|
evfolyamNeve = "";
|
|
}
|
|
if (tagozatNeve == AMITagozatEnum.na.GetDisplayName(options.TanevId))
|
|
{
|
|
tagozatNeve = " ";
|
|
}
|
|
table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, evfolyamNeve));
|
|
table.Rows[targyakSorSzama + i].Cells[3].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, tagozatNeve?.Substring(0, 1)));
|
|
table.Rows[targyakSorSzama + i].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(kotTargy.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, kotTargy.IsSzoveges ? kotTargy.Jeloles : $" ({kotTargy.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = kotTargy.IsSzoveges;
|
|
table.Rows[targyakSorSzama + i].Cells[4].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
table.Rows[targyakSorSzama + i].Cells[5].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.MulasztasIgazolt?.ToString()));
|
|
table.Rows[targyakSorSzama + i].Cells[6].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.MulasztasIgazolatlan?.ToString()));
|
|
if (kotTargy.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, kotTargy);
|
|
}
|
|
}
|
|
var kotelezoKotelezoenValaszthatoTargyakOsszesTobbi = kotelezoKotelezoenValaszthatoTargyakOsszes.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgKotelezoKotelezoenValaszthatoTargyak).ToList();
|
|
if (kotelezoKotelezoenValaszthatoTargyakOsszesTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kotelezoKotelezoenValaszthatoTargyakOsszesTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaKotelezoKotelezoenValaszthatonak);
|
|
}
|
|
|
|
targyakSorSzama = 16;
|
|
for (int i = 0; i < Math.Min(valaszthatoTargyak.Count, AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgValaszthatoTargyak); i++)
|
|
{
|
|
var valTargy = valaszthatoTargyak[i];
|
|
table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.Nev));
|
|
var evfolyamNeve = valTargy.EvfolyamNeve;
|
|
var tagozatNeve = valTargy.TagozatNeve;
|
|
if (evfolyamNeve == EvfolyamTipusEnum.na.GetDisplayName(options.TanevId))
|
|
{
|
|
evfolyamNeve = "";
|
|
}
|
|
if (tagozatNeve == AMITagozatEnum.na.GetDisplayName(options.TanevId))
|
|
{
|
|
tagozatNeve = " ";
|
|
}
|
|
table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, evfolyamNeve));
|
|
table.Rows[targyakSorSzama + i].Cells[3].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, tagozatNeve?.Substring(0, 1)));
|
|
table.Rows[targyakSorSzama + i].Cells[4].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(valTargy.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, valTargy.IsSzoveges ? valTargy.Jeloles : $" ({valTargy.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = valTargy.IsSzoveges;
|
|
table.Rows[targyakSorSzama + i].Cells[4].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
table.Rows[targyakSorSzama + i].Cells[5].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.MulasztasIgazolt?.ToString()));
|
|
table.Rows[targyakSorSzama + i].Cells[6].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.MulasztasIgazolatlan?.ToString()));
|
|
if (valTargy.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, valTargy);
|
|
}
|
|
}
|
|
var valaszthatoTargyakTobbi = valaszthatoTargyak.Skip(AmiTorzslapConstants.MaxSorok.ZenemuveszetiAgValaszthatoTargyak).ToList();
|
|
if (valaszthatoTargyakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, valaszthatoTargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaValaszthatonak);
|
|
}
|
|
|
|
targyakSorSzama = 23;
|
|
// Átlag kitöltése
|
|
table.Rows[targyakSorSzama++].Cells[0].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanulmanyiAtlag?.ToString("0.00")));
|
|
// Mulasztások kitöltése
|
|
table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, co.ZenemuveszetiAgTantargyCos.Sum(x => x.MulasztasIgazolt).ToString()));
|
|
table.Rows[targyakSorSzama++].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, co.ZenemuveszetiAgTantargyCos.Sum(x => x.MulasztasIgazolatlan).ToString()));
|
|
}
|
|
|
|
private void SetNemZenemuveszetiTargyak(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni, AsposeWords.Run baseRun)
|
|
{
|
|
var targyakSorSzama = 6;
|
|
var szovegesErtekelesSorSzama = 25;
|
|
if (kellSni)
|
|
{
|
|
szovegesErtekelesSorSzama += 2;
|
|
}
|
|
// főtárgy
|
|
var fotargyak = co.ZenemuveszetiAgTantargyCos.Where(x => x.IsFotargy && (x.KotelezosegId == (int)AMITantargyKotelezosegEnum.Kotelezo || x.KotelezosegId == (int)AMITantargyKotelezosegEnum.KotelezoenValaszthato)).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
if (fotargyak.Count == 0)
|
|
{
|
|
AddHibaKomment(table, targyakSorSzama, 0, AmiTorzslapResource.NincsMegadvaFotargy);
|
|
}
|
|
for (int i = 0; i < Math.Min(fotargyak.Count, AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgFotargyak); i++)
|
|
{
|
|
var fotargy = fotargyak[i];
|
|
table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, fotargy.Nev));
|
|
table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, fotargy.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(fotargy.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, fotargy.IsSzoveges ? fotargy.Jeloles : $" ({fotargy.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = fotargy.IsSzoveges;
|
|
table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
if (fotargy.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, fotargy);
|
|
}
|
|
}
|
|
var fotargyakTobbi = fotargyak.Skip(AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgFotargyak).ToList();
|
|
if (fotargyakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, fotargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallivaFotargynak);
|
|
}
|
|
targyakSorSzama = 8;
|
|
var kotelezoTargyak = co.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && x.KotelezosegId == (int)AMITantargyKotelezosegEnum.Kotelezo).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
for (int i = 0; i < Math.Min(kotelezoTargyak.Count, AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgKotelezoTargyak); i++)
|
|
{
|
|
var kotTargy = kotelezoTargyak[i];
|
|
table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.Nev));
|
|
table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotTargy.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(kotTargy.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, kotTargy.IsSzoveges ? kotTargy.Jeloles : $" ({kotTargy.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = kotTargy.IsSzoveges;
|
|
table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
if (kotTargy.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, kotTargy);
|
|
}
|
|
}
|
|
var kotelezoTargyakTobbi = kotelezoTargyak.Skip(AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgKotelezoTargyak).ToList();
|
|
if (kotelezoTargyakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kotelezoTargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaKotelezonek);
|
|
}
|
|
targyakSorSzama = 13;
|
|
var kotelezoenValaszthatoTargyak = co.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && x.KotelezosegId == (int)AMITantargyKotelezosegEnum.KotelezoenValaszthato).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
for (int i = 0; i < Math.Min(kotelezoenValaszthatoTargyak.Count, AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgKotelezoenValaszthatoTargyak); i++)
|
|
{
|
|
var kotValTargy = kotelezoenValaszthatoTargyak[i];
|
|
table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotValTargy.Nev));
|
|
table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, kotValTargy.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(kotValTargy.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, kotValTargy.IsSzoveges ? kotValTargy.Jeloles : $" ({kotValTargy.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = kotValTargy.IsSzoveges;
|
|
table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
if (kotValTargy.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, kotValTargy);
|
|
}
|
|
}
|
|
var kotelezoenValaszthatoTargyakTobbi = kotelezoenValaszthatoTargyak.Skip(AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgKotelezoenValaszthatoTargyak).ToList();
|
|
if (kotelezoenValaszthatoTargyakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kotelezoenValaszthatoTargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaKotelezoenValaszthatonak);
|
|
}
|
|
targyakSorSzama = 16;
|
|
var valaszthatoTargyak = co.ZenemuveszetiAgTantargyCos.Where(x => !x.IsFotargy && x.KotelezosegId == (int)AMITantargyKotelezosegEnum.SzabadonValaszthato && x.Id != AmiTorzslapConstants.SzorgalomEvvegiJegyTantargyId).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
for (int i = 0; i < Math.Min(valaszthatoTargyak.Count, AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgValaszthatoTargyak); i++)
|
|
{
|
|
var valTargy = valaszthatoTargyak[i];
|
|
table.Rows[targyakSorSzama + i].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.Nev));
|
|
table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, valTargy.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(valTargy.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, valTargy.IsSzoveges ? valTargy.Jeloles : $" ({valTargy.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = valTargy.IsSzoveges;
|
|
table.Rows[targyakSorSzama + i].Cells[2].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
if (valTargy.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, valTargy);
|
|
}
|
|
}
|
|
var valaszthatoTargyakTobbi = valaszthatoTargyak.Skip(AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgValaszthatoTargyak).ToList();
|
|
if (valaszthatoTargyakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, kotelezoenValaszthatoTargyakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaValaszthatonak);
|
|
}
|
|
targyakSorSzama = 22;
|
|
// Szorgalom kitöltése
|
|
var fotargySzorgalmak = co.ZenemuveszetiAgTantargyCos.Where(x => x.IsSzorgalom && x.KapcsolodoFotargyId.HasValue && fotargyak.Select(y => y.Id).Contains(x.KapcsolodoFotargyId.Value)).OrderBy(x => x.Sorszam).ThenBy(x => x.Nev).ToList();
|
|
if (fotargySzorgalmak.Count > 0)
|
|
{
|
|
var fotargySzorgalom = fotargySzorgalmak[0];
|
|
table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, fotargySzorgalom.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(fotargySzorgalom.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, fotargySzorgalom.IsSzoveges ? fotargySzorgalom.Jeloles : $" ({fotargySzorgalom.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = fotargySzorgalom.IsSzoveges;
|
|
table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
if (fotargySzorgalom.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, fotargySzorgalom);
|
|
}
|
|
var fotargySzorgalmakTobbi = fotargySzorgalmak.Skip(AmiTorzslapConstants.MaxSorok.NemZenemuveszetiAgSzorgalom).ToList();
|
|
if (fotargySzorgalmakTobbi.Count > 0)
|
|
{
|
|
AddHibaKommentTobbesTargy(table, targyakSorSzama, 0, fotargySzorgalmakTobbi, AmiTorzslapResource.TobbTantargyVanBeallitvaFotargySzorgalomnak);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var fotargySzorgalomEvvegibol = co.ZenemuveszetiAgTantargyCos.SingleOrDefault(x => x.Id == AmiTorzslapConstants.SzorgalomEvvegiJegyTantargyId);
|
|
if (fotargySzorgalomEvvegibol != default)
|
|
{
|
|
table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, fotargySzorgalomEvvegibol.Osztalyzat));
|
|
if (!string.IsNullOrWhiteSpace(fotargySzorgalomEvvegibol.Jeloles))
|
|
{
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, fotargySzorgalomEvvegibol.IsSzoveges ? fotargySzorgalomEvvegibol.Jeloles : $" ({fotargySzorgalomEvvegibol.ErtekelesSzoveg})");
|
|
jelolesRun.Font.Superscript = fotargySzorgalomEvvegibol.IsSzoveges;
|
|
table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(jelolesRun);
|
|
}
|
|
if (fotargySzorgalomEvvegibol.IsSzoveges)
|
|
{
|
|
AddSzovegesErtekeles(table.Rows[szovegesErtekelesSorSzama].Cells[0].LastParagraph.Runs, baseRun, fotargySzorgalomEvvegibol);
|
|
}
|
|
}
|
|
}
|
|
targyakSorSzama++;
|
|
// Átlag kitöltése
|
|
table.Rows[targyakSorSzama++].Cells[0].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanulmanyiAtlag?.ToString("0.00")));
|
|
// Mulasztások kitöltése
|
|
table.Rows[targyakSorSzama].Cells[1].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, co.ZenemuveszetiAgTantargyCos.Sum(x => x.MulasztasIgazolt).ToString()));
|
|
table.Rows[targyakSorSzama++].Cells[2].FirstParagraph?.Runs.Add(GetRunWithText(baseRun, co.ZenemuveszetiAgTantargyCos.Sum(x => x.MulasztasIgazolatlan).ToString()));
|
|
}
|
|
|
|
private void AddSzovegesErtekeles(AsposeWords.RunCollection runs, AsposeWords.Run baseRun, ZenemuveszetiAgTantargyCo targy, string targyNev = null)
|
|
{
|
|
runs.Add(GetRunWithText(baseRun, targy.Osztalyzat));
|
|
AsposeWords.Run jelolesRun = GetRunWithText(baseRun, targy.Jeloles);
|
|
jelolesRun.Font.Superscript = true;
|
|
runs.Add(jelolesRun);
|
|
runs.Add(GetRunWithText(baseRun, $": {targyNev ?? targy.Nev}: {targy.ErtekelesSzoveg}{AsposeWords.ControlChar.LineBreak}"));
|
|
}
|
|
|
|
private void AddHibaKommentTobbesTargy(AsposeWords.Tables.Table table, int tableRowNumber, int tableColumnNumber, List<ZenemuveszetiAgTantargyCo> list, string commentFirstLine)
|
|
{
|
|
if (!options.DocumentParameters.MegjegyzesekMegjelenitese)
|
|
{
|
|
return;
|
|
}
|
|
StringBuilder sbMegjegyzes = new StringBuilder();
|
|
foreach (var targy in list)
|
|
{
|
|
if (sbMegjegyzes.Length == 0 && !string.IsNullOrWhiteSpace(commentFirstLine))
|
|
{
|
|
sbMegjegyzes.AppendLine(commentFirstLine);
|
|
}
|
|
sbMegjegyzes.AppendLine(targy.Nev);
|
|
}
|
|
if (list.Count > 0)
|
|
{
|
|
AddHibaKomment(table, tableRowNumber, tableColumnNumber, sbMegjegyzes.ToString());
|
|
}
|
|
}
|
|
|
|
private void AddHibaKommentTobbesAlapZaroVizsgaErtekeles(AsposeWords.Tables.Table table, int tableRowNumber, int tableColumnNumber, List<AlapZaroVizsgaAdatokCo> list, string commentFirstLine)
|
|
{
|
|
if (!options.DocumentParameters.MegjegyzesekMegjelenitese)
|
|
{
|
|
return;
|
|
}
|
|
StringBuilder sbMegjegyzes = new StringBuilder();
|
|
foreach (var targy in list)
|
|
{
|
|
if (sbMegjegyzes.Length == 0 && !string.IsNullOrWhiteSpace(commentFirstLine))
|
|
{
|
|
sbMegjegyzes.AppendLine(commentFirstLine);
|
|
}
|
|
sbMegjegyzes.AppendLine(targy.TantargyNeve);
|
|
}
|
|
if (list.Count > 0)
|
|
{
|
|
AddHibaKomment(table, tableRowNumber, tableColumnNumber, sbMegjegyzes.ToString());
|
|
}
|
|
}
|
|
|
|
private void AddHibaKomment(AsposeWords.Tables.Table table, int tableRowNumber, int tableColumnNumber, string comment)
|
|
{
|
|
if (!options.DocumentParameters.MegjegyzesekMegjelenitese)
|
|
{
|
|
return;
|
|
}
|
|
var commentObj = new AsposeWords.Comment(table.Document, "Kréta", "K", DateTime.Now);
|
|
commentObj.Paragraphs.Add(new AsposeWords.Paragraph(table.Document));
|
|
commentObj.FirstParagraph.Runs.Add(new AsposeWords.Run(table.Document, comment));
|
|
table.Rows[tableRowNumber].Cells[tableColumnNumber].FirstParagraph.AppendChild(commentObj);
|
|
}
|
|
|
|
private void SetSNIAdatok(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co)
|
|
{
|
|
var sorSzama = 25;
|
|
var oszlopSzama = 0;
|
|
|
|
var baseRun = new AsposeWords.Run(table.Document);
|
|
baseRun.Font.Name = AmiTorzslapResource.UsedFontName;
|
|
baseRun.Font.Size = options.DocumentParameters.BetuMeretSNI;
|
|
|
|
table.Rows[sorSzama].Cells[oszlopSzama].Paragraphs[1].Runs.Add(GetRunWithText(baseRun, co.TanuloSniAdatok.KiallitoSzakertoiBizottsagNeve));
|
|
table.Rows[sorSzama++].Cells[oszlopSzama].Paragraphs[2].Runs.Add(GetRunWithText(baseRun, co.TanuloSniAdatok.KiallitoSzakertoiBizottsagCime));
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanuloSniAdatok.SzakvelemenySzama));
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanuloSniAdatok.KiallitasDatuma?.ToString(Constants.ToStringPattern.HungarianDate)));
|
|
table.Rows[sorSzama].Cells[oszlopSzama++].LastParagraph?.Runs.Add(GetRunWithText(baseRun, co.TanuloSniAdatok.FelulvizsgalatTaneve));
|
|
}
|
|
|
|
private void SetFelmentesek(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni)
|
|
{
|
|
var felmentesekSorSzama = 25;
|
|
if (kellSni)
|
|
{
|
|
felmentesekSorSzama += 2;
|
|
}
|
|
|
|
var baseRun = new AsposeWords.Run(table.Document);
|
|
baseRun.Font.Name = AmiTorzslapResource.UsedFontName;
|
|
baseRun.Font.Size = options.DocumentParameters.BetuMeretAdatok;
|
|
|
|
foreach (var felmentes in co.FelmentesCos)
|
|
{
|
|
table.Rows[felmentesekSorSzama].Cells[0].LastParagraph.Runs.Add(GetRunWithText(baseRun, $"{felmentes.TantargyNeve}: {felmentes.FelmentesOka}{AsposeWords.ControlChar.LineBreak}"));
|
|
}
|
|
}
|
|
|
|
private void SetFeljegyzesek(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni)
|
|
{
|
|
var feljegyzesekSorSzama = 25;
|
|
if (kellSni)
|
|
{
|
|
feljegyzesekSorSzama += 2;
|
|
}
|
|
|
|
var baseRun = new AsposeWords.Run(table.Document);
|
|
baseRun.Font.Name = AmiTorzslapResource.UsedFontName;
|
|
baseRun.Font.Size = options.DocumentParameters.BetuMeretAdatok;
|
|
|
|
foreach (var feljegyzes in co.FeljegyzesCos)
|
|
{
|
|
table.Rows[feljegyzesekSorSzama].Cells[0].LastParagraph.Runs.Add(GetRunWithText(baseRun, $"{feljegyzes.Tartalom} ({feljegyzes.EsemenyDatuma.Value.ToString(Constants.ToStringPattern.HungarianDate)}){AsposeWords.ControlChar.LineBreak}"));
|
|
}
|
|
}
|
|
|
|
private void SetZaradekok(AsposeWords.Tables.Table table, AmiTanuloTorzslapCo co, bool kellSni)
|
|
{
|
|
var zaradekSorSzama = 26;
|
|
if (kellSni)
|
|
{
|
|
zaradekSorSzama += 2;
|
|
}
|
|
|
|
var baseRun = new AsposeWords.Run(table.Document);
|
|
baseRun.Font.Name = AmiTorzslapResource.UsedFontName;
|
|
baseRun.Font.Size = options.DocumentParameters.BetuMeretAdatok;
|
|
|
|
foreach (var zaradek in co.ZaradekCos)
|
|
{
|
|
table.Rows[zaradekSorSzama].Cells[0].LastParagraph.Runs.Add(GetRunWithText(baseRun, $"{zaradek.ZaradekSzovegList.Single(x => x.NyelvId == (int)AnyanyelvEnum.magyar).Szoveg}{AsposeWords.ControlChar.LineBreak}{zaradek.KeltezesHelye}, {zaradek.KeltezesDatuma.Value.ToString(Constants.ToStringPattern.HungarianDate)}{AsposeWords.ControlChar.LineBreak}"));
|
|
}
|
|
}
|
|
|
|
private AsposeWords.Run GetRunWithText(AsposeWords.Run run, string text)
|
|
{
|
|
var result = run.Clone(true) as AsposeWords.Run;
|
|
result.Text = text ?? "";
|
|
return result;
|
|
}
|
|
|
|
}
|
|
}
|