почти готово

This commit is contained in:
zxwwmmpo 2024-12-08 15:36:37 +04:00
parent 10f31c88a5
commit 4640f32b8a
6 changed files with 61 additions and 6 deletions

View File

@ -24,4 +24,15 @@ public class Reception
ReceptionMedicine = receptionMedicine
};
}
public static Reception CreateOperation(TempReceptionMedicine tempReceptionMedicine, IEnumerable<ReceptionMedicine> receptionMedicine)
{
return new Reception
{
Id = tempReceptionMedicine.Id,
Date = tempReceptionMedicine.Date,
DoctorId = tempReceptionMedicine.DoctorId,
ReceptionMedicine = receptionMedicine
};
}
}

View File

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RegistrationOfPatients.Entities;
public class TempReceptionMedicine
{
public int Id { get; private set; }
public int DoctorId { get; private set; }
public DateTime Date { get; private set; }
public int MedicineId { get; private set; }
public int Count { get; private set; }
}

View File

@ -38,6 +38,7 @@
PaymentToolStripMenuItem = new ToolStripMenuItem();
отчетыToolStripMenuItem = new ToolStripMenuItem();
DirectoryReportToolStripMenuItem = new ToolStripMenuItem();
MedicineReportToolStripMenuItem = new ToolStripMenuItem();
menuStrip.SuspendLayout();
SuspendLayout();
//
@ -102,7 +103,7 @@
//
// отчетыToolStripMenuItem
//
отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { DirectoryReportToolStripMenuItem });
отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { DirectoryReportToolStripMenuItem, MedicineReportToolStripMenuItem });
отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem";
отчетыToolStripMenuItem.Size = new Size(73, 24);
отчетыToolStripMenuItem.Text = "Отчеты";
@ -115,6 +116,14 @@
DirectoryReportToolStripMenuItem.Text = "Документ со справочниками";
DirectoryReportToolStripMenuItem.Click += DirectoryReportToolStripMenuItem_Click;
//
// MedicineReportToolStripMenuItem
//
MedicineReportToolStripMenuItem.Name = "MedicineReportToolStripMenuItem";
MedicineReportToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.E;
MedicineReportToolStripMenuItem.Size = new Size(350, 26);
MedicineReportToolStripMenuItem.Text = "Движение лекарств";
MedicineReportToolStripMenuItem.Click += MedicineReportToolStripMenuItem_Click;
//
// FormRegistration
//
AutoScaleDimensions = new SizeF(8F, 20F);
@ -145,5 +154,6 @@
private ToolStripMenuItem PaymentToolStripMenuItem;
private ToolStripMenuItem MedicinesToolStripMenuItem;
private ToolStripMenuItem DirectoryReportToolStripMenuItem;
private ToolStripMenuItem MedicineReportToolStripMenuItem;
}
}

View File

@ -83,4 +83,16 @@ public partial class FormRegistration : Form
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void MedicineReportToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
_container.Resolve<FormMedicineReport>().ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}

View File

@ -71,6 +71,6 @@ public partial class FormReception : Form
}
list.Add(ReceptionMedicine.CreateElement(0, Convert.ToInt32(row.Cells["ColumnMedicine"].Value), Convert.ToInt32(row.Cells["ColumnCount"].Value)));
}
return list;
return list.GroupBy(x => x.MedicineId, x => x.Count, (id, counts) => ReceptionMedicine.CreateElement(0, id, counts.Sum())).ToList();
}
}

View File

@ -38,7 +38,7 @@ public class ReceptionRepository : IReceptionRepository
var queryInsert = @" INSERT INTO Reception (Date, HealthStatus, Illness, PatientId, DoctorId) VALUES (@Date, @HealthStatus, @Illness, @PatientId, @DoctorId); SELECT MAX(Id) FROM Reception";
var receptionId = connection.QueryFirst<int>(queryInsert, reception, transaction);
var querySubInsert = @" INSERT INTO ReceptionMedicine (MedicineId, Count) VALUES (@MedicineId, @Count)";
var querySubInsert = @" INSERT INTO ReceptionMedicine (ReceptionID, MedicineId, Count) VALUES (@ReceptionId, @MedicineId, @Count)";
foreach (var elem in reception.ReceptionMedicine)
{
@ -64,10 +64,12 @@ public class ReceptionRepository : IReceptionRepository
try
{
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = @"SELECT * FROM Reception";
var receptions = connection.Query<Reception>(querySelect);
var querySelect = @"SELECT r.Id AS ReceptionId, r.DoctorId, r.Patient.Id, r.Date, rm.MedicineId, rm.Count FROM Reception r INNER JOIN ReceptionMedicine rm ON r.DoctorID = r.ID";
var receptions = connection.Query<TempReceptionMedicine>(querySelect);
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(receptions));
return receptions;
return receptions.GroupBy(x => x.Id, y => y,
(key, value) => Reception.CreateOperation(value.First(),
value.Select(z => ReceptionMedicine.CreateElement(0, z.MedicineId, z.Count)))).ToList();
}
catch (Exception ex)
{