ПИбд-22 Морозов Д.В. Лабораторная 4 #9
@ -1,6 +1,7 @@
|
||||
using ProjectRepairCompany.Entities.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -10,9 +11,17 @@ namespace ProjectRepairCompany.Entities;
|
||||
public class Detail
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
|
||||
[DisplayName("Название детали")]
|
||||
public string NameDetail { get; private set; } = string.Empty;
|
||||
|
||||
[DisplayName("Количество деталей")]
|
||||
public int NumberDetail { get; private set; }
|
||||
|
||||
[DisplayName("Стоимость детали")]
|
||||
public double PriceDetail { get; private set; }
|
||||
|
||||
[DisplayName("Свойства детали")]
|
||||
public DetailProperties DetailProperties { get; private set; }
|
||||
|
||||
public static Detail CreateEntity(int id, string nameDetail, int numberDetail, double priceDetail, DetailProperties detailProperties)
|
||||
|
@ -1,6 +1,7 @@
|
||||
using ProjectRepairCompany.Entities.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -10,8 +11,14 @@ namespace ProjectRepairCompany.Entities;
|
||||
public class Master
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
|
||||
[DisplayName("ФИО работника")]
|
||||
public string MasterName { get; private set; } = string.Empty;
|
||||
|
||||
[DisplayName("Дата начала работы")]
|
||||
public DateTime StartDate { get; private set; }
|
||||
|
||||
[DisplayName("Должность")]
|
||||
public MasterPost MasterPost { get; private set; }
|
||||
|
||||
public static Master CreateEntity(int id, string masterName, DateTime startDate, MasterPost masterPost)
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -9,11 +10,25 @@ namespace ProjectRepairCompany.Entities;
|
||||
public class Order
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
|
||||
[DisplayName("Дата заказа")]
|
||||
public DateTime OrderDate { get; private set; }
|
||||
|
||||
[DisplayName("Дата начала выполнения ремонта")]
|
||||
public DateTime DateCompletion { get; private set; }
|
||||
|
||||
[DisplayName("Дата выполнения заказа")]
|
||||
public DateTime DateIssue { get; private set; }
|
||||
|
||||
[DisplayName("Стоимость заказа")]
|
||||
public int FullPrice { get; private set; }
|
||||
|
||||
[Browsable(false)]
|
||||
public int MasterId { get; private set; }
|
||||
|
||||
[DisplayName("Работник")]
|
||||
public string MasterName { get; private set; } = string.Empty;
|
||||
|
||||
public IEnumerable<OrderDetail> OrderDetails { get; private set; } = [];
|
||||
|
||||
public static Order CreateOperation(int id, int fullPrice, int masterId, DateTime dateCompletion,
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -9,7 +10,11 @@ namespace ProjectRepairCompany.Entities;
|
||||
public class Storage
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
|
||||
[DisplayName ("Адрес склада")]
|
||||
public string StorageAddress { get; private set; } = string.Empty;
|
||||
|
||||
[DisplayName("Вместимость склада")]
|
||||
public int Capacity { get; private set; }
|
||||
|
||||
public static Storage CreateEntity(int id, string storageAddress, int capacity)
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -8,11 +9,23 @@ namespace ProjectRepairCompany.Entities;
|
||||
|
||||
public class StorageDetail
|
||||
{
|
||||
[Browsable(false)]
|
||||
public int StorageId { get; private set; }
|
||||
[Browsable(false)]
|
||||
public int DetailId { get; private set; }
|
||||
|
||||
[DisplayName("Количество деталей")]
|
||||
public int DetailCount { get; private set; }
|
||||
|
||||
[DisplayName("Дата поступления")]
|
||||
public DateTime SupplyDate { get; private set; } // Дата поступления деталей
|
||||
|
||||
[DisplayName("Адрес склада")]
|
||||
public string StorageAddress { get; private set; } = string.Empty;
|
||||
|
||||
[DisplayName("Название детали")]
|
||||
public string DetailName { get; private set; } = string.Empty;
|
||||
|
||||
public static StorageDetail CreateOperation(int storageId, int detailId, int detailCount, DateTime supplyDate)
|
||||
{
|
||||
return new StorageDetail
|
||||
|
@ -97,6 +97,7 @@ namespace ProjectRepairCompany.Forms
|
||||
try
|
||||
{
|
||||
dataGridView.DataSource = _detailRepository.ReadDetails();
|
||||
dataGridView.Columns["Id"].Visible = false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -96,6 +96,7 @@ namespace ProjectRepairCompany.Forms
|
||||
try
|
||||
{
|
||||
dataGridView.DataSource = _masterRepository.ReadMasters();
|
||||
dataGridView.Columns["Id"].Visible = false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -92,7 +92,10 @@ namespace ProjectRepairCompany.Forms
|
||||
|
||||
|
||||
}
|
||||
private void LoadList() => dataGridView.DataSource = _storageRepository.ReadStorages();
|
||||
private void LoadList() {
|
||||
dataGridView.DataSource = _storageRepository.ReadStorages();
|
||||
dataGridView.Columns["Id"].Visible = false;
|
||||
}
|
||||
private bool TryGetIdentifierFromSelectRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
|
@ -122,8 +122,11 @@ public class OrderRepository : IOrderRepository
|
||||
connection.Open();
|
||||
|
||||
var querySelect = @"
|
||||
SELECT o.*, od.DetailId, od.DetailCount From ""Order"" o
|
||||
LEFT JOIN OrderDetail od ON o.Id = od.OrderId";
|
||||
SELECT o.*, od.DetailId, od.DetailCount, m.MasterName as ""MasterName""
|
||||
FROM ""Order"" o
|
||||
LEFT JOIN OrderDetail od ON o.Id = od.OrderId
|
||||
LEFT JOIN Master m ON m.Id = o.MasterId
|
||||
WHERE (@MasterId IS NULL OR o.MasterId = @MasterId)";
|
||||
var orders = connection.Query<TempOrderDetail>(querySelect);
|
||||
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(orders));
|
||||
return orders.GroupBy(x => x.Id, y => y,
|
||||
|
@ -48,7 +48,15 @@ VALUES (@StorageId, @DetailId, @DetailCount, @SupplyDate)";
|
||||
try
|
||||
{
|
||||
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
||||
var querySelect = "SELECT * FROM StorageDetail";
|
||||
var querySelect = @"SELECT
|
||||
sd.*,
|
||||
s.StorageAddress as ""StorageAddress"",
|
||||
d.NameDetail as ""DetailName""
|
||||
FROM StorageDetail sd
|
||||
LEFT JOIN Storage s ON s.Id = sd.StorageId
|
||||
LEFT JOIN Detail d ON d.Id = sd.DetailId
|
||||
WHERE (@storageId IS NULL OR sd.StorageId = @storageId)
|
||||
AND (@detailId IS NULL OR sd.DetailId = @detailId)";
|
||||
var storageDetails = connection.Query<StorageDetail>(querySelect);
|
||||
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(storageDetails));
|
||||
return storageDetails;
|
||||
|
Loading…
x
Reference in New Issue
Block a user