diff --git a/Labaratory/Labaratory/Labaratory.csproj b/Labaratory/Labaratory/Labaratory.csproj index 38f2631..8e7e902 100644 --- a/Labaratory/Labaratory/Labaratory.csproj +++ b/Labaratory/Labaratory/Labaratory.csproj @@ -95,6 +95,9 @@ Model1.tt + + Model1.tt + diff --git a/Labaratory/Labaratory/Models/LoggnHistory.cs b/Labaratory/Labaratory/Models/LoggnHistory.cs new file mode 100644 index 0000000..06176ab --- /dev/null +++ b/Labaratory/Labaratory/Models/LoggnHistory.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан по шаблону. +// +// Изменения, вносимые в этот файл вручную, могут привести к непредвиденной работе приложения. +// Изменения, вносимые в этот файл вручную, будут перезаписаны при повторном создании кода. +// +//------------------------------------------------------------------------------ + +namespace Labaratory.Models +{ + using System; + using System.Collections.Generic; + + public partial class LoggnHistory + { + public int ID { get; set; } + public string Login { get; set; } + public Nullable AttemptTime { get; set; } + public Nullable IsSuccess { get; set; } + } +} diff --git a/Labaratory/Labaratory/Models/Model1.Context.cs b/Labaratory/Labaratory/Models/Model1.Context.cs index 401adb4..c8498bc 100644 --- a/Labaratory/Labaratory/Models/Model1.Context.cs +++ b/Labaratory/Labaratory/Models/Model1.Context.cs @@ -39,5 +39,6 @@ namespace Labaratory.Models public virtual DbSet Service_Statuses { get; set; } public virtual DbSet Services { get; set; } public virtual DbSet Users { get; set; } + public virtual DbSet LoggnHistories { get; set; } } } diff --git a/Labaratory/Labaratory/Models/Model1.Designer.cs b/Labaratory/Labaratory/Models/Model1.Designer.cs index e29ec55..4cfa274 100644 --- a/Labaratory/Labaratory/Models/Model1.Designer.cs +++ b/Labaratory/Labaratory/Models/Model1.Designer.cs @@ -1,4 +1,4 @@ -// Создание кода T4 для модели "C:\Users\usersql\source\repos\UP01TASK3\Labaratory\Labaratory\Models\Model1.edmx" включено. +// Создание кода T4 для модели "C:\Users\usersql\Source\Repos\UP01TASK3\Labaratory\Labaratory\Models\Model1.edmx" включено. // Чтобы включить формирование кода прежних версий, измените значение свойства "Стратегия создания кода" конструктора // на "Legacy ObjectContext". Это свойство доступно в окне "Свойства", если модель // открыта в конструкторе. diff --git a/Labaratory/Labaratory/Models/Model1.edmx b/Labaratory/Labaratory/Models/Model1.edmx index 2ba6fbc..0b22d44 100644 --- a/Labaratory/Labaratory/Models/Model1.edmx +++ b/Labaratory/Labaratory/Models/Model1.edmx @@ -4,7 +4,7 @@ - + @@ -46,6 +46,17 @@ + + + + + + + + + + @@ -71,6 +82,7 @@ + @@ -385,6 +397,14 @@ + + SELECT + [LoggnHistory].[ID] AS [ID], + [LoggnHistory].[Login] AS [Login], + [LoggnHistory].[AttemptTime] AS [AttemptTime], + [LoggnHistory].[IsSuccess] AS [IsSuccess] + FROM [dbo].[LoggnHistory] AS [LoggnHistory] + @@ -458,8 +478,7 @@ - - + @@ -547,6 +566,7 @@ + @@ -916,7 +936,17 @@ + + + + + + + + + + @@ -989,6 +1019,7 @@ + @@ -1085,6 +1116,16 @@ + + + + + + + + + + diff --git a/Labaratory/Labaratory/Models/Model1.edmx.diagram b/Labaratory/Labaratory/Models/Model1.edmx.diagram index 0f82470..deaa12d 100644 --- a/Labaratory/Labaratory/Models/Model1.edmx.diagram +++ b/Labaratory/Labaratory/Models/Model1.edmx.diagram @@ -36,6 +36,7 @@ + diff --git a/Labaratory/Labaratory/Models/Order.cs b/Labaratory/Labaratory/Models/Order.cs index d2d8299..b30b407 100644 --- a/Labaratory/Labaratory/Models/Order.cs +++ b/Labaratory/Labaratory/Models/Order.cs @@ -26,6 +26,7 @@ namespace Labaratory.Models public Nullable Patient { get; set; } public Nullable Status { get; set; } public Nullable TotalExecutionDays { get; set; } + public string Barcode { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection Invoices { get; set; } diff --git a/Labaratory/Labaratory/ViewModels/Laborant.cs b/Labaratory/Labaratory/ViewModels/Laborant.cs index 2d51f34..958e060 100644 --- a/Labaratory/Labaratory/ViewModels/Laborant.cs +++ b/Labaratory/Labaratory/ViewModels/Laborant.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Windows; using System.Threading.Tasks; namespace Labaratory.ViewModels @@ -13,6 +14,71 @@ namespace Labaratory.ViewModels public Laborant(Models.User user) { CurrentUser = user; + CalculateNextNumber(); + } + private string _barcodeInput; + private string _suggestedNumber; + private Models.LaboratoryDBEntities db = new Models.LaboratoryDBEntities(); + + public string BarcodeInput + { + get => _barcodeInput; + set { _barcodeInput = value; OnPropertyChanged(); } + } + + public string SuggestedNumber + { + get => _suggestedNumber; + set { _suggestedNumber = value; OnPropertyChanged(); } + } + private void CalculateNextNumber() + { + // Находим последний ID в заказах (кроме архивных, если есть флаг IsArchived) + //var lastId = db.Orders.OrderByDescending(o => o.ID).Select(o => o.ID).FirstOrDefault(); + //SuggestedNumber = (lastId + 1).ToString(); + BarcodeInput = SuggestedNumber; // Устанавливаем как значение по умолчанию + } + private string GetNextOrderNumber() + { + // Находим максимальный ID_Order + var lastId = db.Orders.OrderByDescending(o => o.ID_Order).Select(o => o.ID_Order).FirstOrDefault(); + return (lastId + 1).ToString(); + } + + // Формирование полного штрих-кода по ТЗ + private string CreateFullBarcodeString(string orderId) + { + string datePart = DateTime.Now.ToString("ddMMyyyy"); + + // Генерируем 6 случайных цифр + Random rnd = new Random(); + string randomPart = ""; + for (int i = 0; i < 6; i++) randomPart += rnd.Next(0, 10).ToString(); + + // Результат: ID + Дата + 6 цифр + return $"{orderId}{datePart}{randomPart}"; + } + public void ProcessOrder() + { + if (db.Orders.Any(o => o.Barcode == BarcodeInput)) + { + MessageBox.Show("Такой код пробирки уже существует!"); + return; + } + + // Формируем полный код: ID + Дата + 6 случайных символов + string fullCode = GenerateFullBarcode(BarcodeInput); + + // Сохраняем в PDF и БД + //SaveToPdf(fullCode); + //SaveOrderToDb(fullCode); + } + + private string GenerateFullBarcode(string orderId) + { + string datePart = DateTime.Now.ToString("ddMMyyyy"); + string uniquePart = Guid.NewGuid().ToString("N").Substring(0, 6); // 6 случайных символов + return $"{orderId}{datePart}{uniquePart}"; } } } diff --git a/Labaratory/Labaratory/Views/AdminWindow.xaml b/Labaratory/Labaratory/Views/AdminWindow.xaml index e7f4894..b6d039b 100644 --- a/Labaratory/Labaratory/Views/AdminWindow.xaml +++ b/Labaratory/Labaratory/Views/AdminWindow.xaml @@ -1,12 +1,22 @@ - + Title="AdminWindow" Height="450" Width="800" + Background="{ui:ThemeResource ApplicationBackgroundBrush}" + Foreground="{ui:ThemeResource TextFillColorPrimaryBrush}"> - + + + + + + + + diff --git a/Labaratory/Labaratory/Views/LaborantWindow.xaml b/Labaratory/Labaratory/Views/LaborantWindow.xaml index 74e1ef6..6d1d341 100644 --- a/Labaratory/Labaratory/Views/LaborantWindow.xaml +++ b/Labaratory/Labaratory/Views/LaborantWindow.xaml @@ -4,9 +4,33 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Labaratory.Views" + xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" mc:Ignorable="d" - Title="Laborant" Height="450" Width="800"> + Title="Laborant" Height="450" Width="800" + Background="{ui:ThemeResource ApplicationBackgroundBrush}" + Foreground="{ui:ThemeResource TextFillColorPrimaryBrush}"> - + + + + + + + + + + + + + + + + + + diff --git a/Labaratory/Labaratory/Views/LaborantWindow.xaml.cs b/Labaratory/Labaratory/Views/LaborantWindow.xaml.cs index 6739134..428f865 100644 --- a/Labaratory/Labaratory/Views/LaborantWindow.xaml.cs +++ b/Labaratory/Labaratory/Views/LaborantWindow.xaml.cs @@ -22,6 +22,7 @@ namespace Labaratory.Views public Laborant() { InitializeComponent(); + DataContext = new Laborant(); } } }