Поправил вывод отчёта

This commit is contained in:
goblinrf 2024-05-26 23:52:59 +04:00
parent e694917c82
commit df8a5928bf
4 changed files with 49 additions and 25 deletions

View File

@ -690,7 +690,7 @@ View(res);
// Строка для визита
table += "<tr>";
table += $"<td></td>";
table += $"<td>{visit.DateVisit}</td>";
table += $"<td>{visit.VisitName}</td>";
table += $"<td></td>";
table += $"<td></td>";

View File

@ -96,36 +96,58 @@ namespace VetClinicBusinessLogic.BusinessLogics
List<Tuple<VisitViewModel, List<Tuple<AnimalViewModel, List<VaccinationViewModel>>>>> responseVaccinations =
_visitStorage.GetVaccinationsInfo(new MedicineVaccinationsSearchModel { DateFrom = model.DateFrom!, DateTo = model.DateTo!, AdminId = model.AdminId!});
List<Tuple<VisitViewModel, List<Tuple<AnimalViewModel, List<MedicineViewModel>>>>> responseMedicines =
_visitStorage.GetMedicinesInfo(new MedicineVaccinationsSearchModel { DateFrom = model.DateFrom!, DateTo = model.DateTo!, AdminId = model.AdminId! });
_visitStorage.GetMedicinesInfo(new MedicineVaccinationsSearchModel { AdminId = model.AdminId! });
Dictionary<int, MedicinesVaccinationsViewModel> dict = new();
foreach(var visit in responseVaccinations)
{
dict.Add(visit.Item1.Id, new());
dict[visit.Item1.Id].VisitName = visit.Item1.NameVisit;
foreach(var animal in visit.Item2)
if (visit.Item1.DateVisit >= model.DateFrom && visit.Item1.DateVisit <= model.DateTo)
{
foreach(var vaccination in animal.Item2)
dict.Add(visit.Item1.Id, new());
dict[visit.Item1.Id].VisitName = visit.Item1.NameVisit;
dict[visit.Item1.Id].DateVisit = visit.Item1.DateVisit;
foreach (var animal in visit.Item2)
{
dict[visit.Item1.Id].Vaccinations.Add(vaccination);
foreach (var vaccination in animal.Item2)
{
dict[visit.Item1.Id].Vaccinations.Add(vaccination);
}
}
}
}
foreach (var visit in responseMedicines)
{
HashSet<int> used = new();
foreach (var animal in visit.Item2)
if (visit.Item1.DateVisit >= model.DateFrom && visit.Item1.DateVisit <= model.DateTo)
{
foreach (var medicine in animal.Item2)
if (!dict.ContainsKey(visit.Item1.Id))
{
if (used.Contains(medicine.Id))
continue;
dict[visit.Item1.Id].Medicines.Add(medicine);
used.Add(medicine.Id);
dict.Add(visit.Item1.Id, new MedicinesVaccinationsViewModel());
dict[visit.Item1.Id].VisitName = visit.Item1.NameVisit;
dict[visit.Item1.Id].DateVisit = visit.Item1.DateVisit;
}
HashSet<int> used = new();
foreach (var animal in visit.Item2)
{
foreach (var medicine in animal.Item2)
{
if (used.Contains(medicine.Id))
continue;
dict[visit.Item1.Id].Medicines.Add(medicine);
used.Add(medicine.Id);
}
}
}
ans.Add(dict[visit.Item1.Id]);
}
foreach (var kvp in dict)
{
ans.Add(kvp.Value);
}
return ans;
}

View File

@ -38,19 +38,11 @@ namespace VetClinicBusinessLogic.OfficePackage
{
CreateRow(new PdfRowParameters
{
Texts = new List<string> { "", visit.VisitName, "", "" },
Texts = new List<string> { visit.DateVisit.ToString(), visit.VisitName, "", "" },
Style = "NormalTitle",
ParagraphAlignment = PdfParagraphAlignmentType.Center
});
foreach(var medicine in visit.Medicines)
{
CreateRow(new PdfRowParameters
{
Texts = new List<string> { "", "", "", medicine.MedicineName },
Style = "Normal",
ParagraphAlignment = PdfParagraphAlignmentType.Center
});
}
foreach (var vaccination in visit.Vaccinations)
{
CreateRow(new PdfRowParameters
@ -60,6 +52,15 @@ namespace VetClinicBusinessLogic.OfficePackage
ParagraphAlignment = PdfParagraphAlignmentType.Center
});
}
foreach (var medicine in visit.Medicines)
{
CreateRow(new PdfRowParameters
{
Texts = new List<string> { "", "", "", medicine.MedicineName },
Style = "Normal",
ParagraphAlignment = PdfParagraphAlignmentType.Center
});
}
}
SavePdf(info);
}

View File

@ -10,6 +10,7 @@ namespace VetClinicDataBaseImplement.Implements
public class MedicinesVaccinationsViewModel
{
public string VisitName { get; set; } = string.Empty;
public DateTime DateVisit { get; set; } = DateTime.Now;
public List<MedicineViewModel> Medicines { get; set; } = new();
public List<VaccinationViewModel> Vaccinations { get; set; } = new();
public DateTime DateFrom { get; set; } = DateTime.Now;