From c3c88ad6e18ccec387ab65dd1ec259f257c3048c Mon Sep 17 00:00:00 2001 From: ekallin Date: Sun, 24 Mar 2024 18:34:36 +0400 Subject: [PATCH] =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=B3=D0=BB=D0=B0=D0=B2=D0=BD=D0=B0=D1=8F=20=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B0=20=D0=B8=20=D0=B5=D1=89=D0=B5=20=D1=87?= =?UTF-8?q?=D1=82=D0=BE-=D1=82=D0=BE=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81=20=D0=BE=D1=82=D1=87=D0=B5?= =?UTF-8?q?=D1=82=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SushiBar/FormMain.Designer.cs | 38 +++++++++++++++++- SushiBar/FormMain.cs | 39 +++++++++++++++++-- SushiBar/FormMain.resx | 2 +- SushiBar/Program.cs | 8 ++++ SushiBar/SushiBarView.csproj | 2 + SushiBarBusinessLogic/Reportlogic.cs | 5 +-- .../Implements/OrderStorage.cs | 19 +++++---- 7 files changed, 97 insertions(+), 16 deletions(-) diff --git a/SushiBar/FormMain.Designer.cs b/SushiBar/FormMain.Designer.cs index f46a473..52e8ee4 100644 --- a/SushiBar/FormMain.Designer.cs +++ b/SushiBar/FormMain.Designer.cs @@ -32,6 +32,10 @@ ToolStripMenuItemRef = new ToolStripMenuItem(); компонентыToolStripMenuItem = new ToolStripMenuItem(); сушиToolStripMenuItem = new ToolStripMenuItem(); + отчетыToolStripMenuItem = new ToolStripMenuItem(); + списокКомпонентовToolStripMenuItem = new ToolStripMenuItem(); + компонентыПоИзделиямToolStripMenuItem = new ToolStripMenuItem(); + списокЗаказовToolStripMenuItem = new ToolStripMenuItem(); dataGridView = new DataGridView(); buttonCreateOrder = new Button(); buttonTakeOrderInWork = new Button(); @@ -45,7 +49,7 @@ // menuStrip1 // menuStrip1.ImageScalingSize = new Size(20, 20); - menuStrip1.Items.AddRange(new ToolStripItem[] { ToolStripMenuItemRef }); + menuStrip1.Items.AddRange(new ToolStripItem[] { ToolStripMenuItemRef, отчетыToolStripMenuItem }); menuStrip1.Location = new Point(0, 0); menuStrip1.Name = "menuStrip1"; menuStrip1.Size = new Size(1140, 28); @@ -73,6 +77,34 @@ сушиToolStripMenuItem.Text = "Суши"; сушиToolStripMenuItem.Click += сушиToolStripMenuItem_Click; // + // отчетыToolStripMenuItem + // + отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { списокКомпонентовToolStripMenuItem, компонентыПоИзделиямToolStripMenuItem, списокЗаказовToolStripMenuItem }); + отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem"; + отчетыToolStripMenuItem.Size = new Size(73, 24); + отчетыToolStripMenuItem.Text = "Отчеты"; + // + // списокКомпонентовToolStripMenuItem + // + списокКомпонентовToolStripMenuItem.Name = "списокКомпонентовToolStripMenuItem"; + списокКомпонентовToolStripMenuItem.Size = new Size(276, 26); + списокКомпонентовToolStripMenuItem.Text = "Список компонентов"; + списокКомпонентовToolStripMenuItem.Click += списокКомпонентовToolStripMenuItem_Click; + // + // компонентыПоИзделиямToolStripMenuItem + // + компонентыПоИзделиямToolStripMenuItem.Name = "компонентыПоИзделиямToolStripMenuItem"; + компонентыПоИзделиямToolStripMenuItem.Size = new Size(276, 26); + компонентыПоИзделиямToolStripMenuItem.Text = "Компоненты по изделиям"; + компонентыПоИзделиямToolStripMenuItem.Click += компонентыПоИзделиямToolStripMenuItem_Click; + // + // списокЗаказовToolStripMenuItem + // + списокЗаказовToolStripMenuItem.Name = "списокЗаказовToolStripMenuItem"; + списокЗаказовToolStripMenuItem.Size = new Size(276, 26); + списокЗаказовToolStripMenuItem.Text = "Список заказов"; + списокЗаказовToolStripMenuItem.Click += списокЗаказовToolStripMenuItem_Click; + // // dataGridView // dataGridView.BackgroundColor = Color.White; @@ -170,5 +202,9 @@ private Button buttonRefreshOrders; private ToolStripMenuItem компонентыToolStripMenuItem; private ToolStripMenuItem сушиToolStripMenuItem; + private ToolStripMenuItem отчетыToolStripMenuItem; + private ToolStripMenuItem списокКомпонентовToolStripMenuItem; + private ToolStripMenuItem компонентыПоИзделиямToolStripMenuItem; + private ToolStripMenuItem списокЗаказовToolStripMenuItem; } } \ No newline at end of file diff --git a/SushiBar/FormMain.cs b/SushiBar/FormMain.cs index 14e285e..ea2f1c7 100644 --- a/SushiBar/FormMain.cs +++ b/SushiBar/FormMain.cs @@ -2,6 +2,7 @@ using SushiBar; using SushiBarContracts.BindingModel; using SushiBarContracts.BusinessLogicsContracts; +using SushiBarView.Reports; namespace SushiBarView { @@ -9,11 +10,13 @@ namespace SushiBarView { private readonly ILogger _logger; private readonly IOrderLogic _orderLogic; - public FormMain(ILogger logger, IOrderLogic orderLogic) + private readonly IReportLogic _reportLogic; + public FormMain(ILogger logger, IOrderLogic orderLogic, IReportLogic reportLogic) { InitializeComponent(); _logger = logger; _orderLogic = orderLogic; + _reportLogic = reportLogic; } private void FormMain_Load(object sender, EventArgs e) { @@ -52,7 +55,7 @@ namespace SushiBarView private void сушиToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormSushis)); - if(service is FormSushis formSushis) { formSushis.ShowDialog(); } + if (service is FormSushis formSushis) { formSushis.ShowDialog(); } } private void buttonCreateOrder_Click(object sender, EventArgs e) @@ -140,6 +143,36 @@ namespace SushiBarView LoadData(); } - + private void списокКомпонентовToolStripMenuItem_Click(object sender, EventArgs e) + { + using var dialog = new SaveFileDialog { Filter = "docx|*.docx" }; + if (dialog.ShowDialog() == DialogResult.OK) + { + _reportLogic.SaveComponentsToWordFile(new ReportBindingModel + { + FileName = dialog.FileName + }); + MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void компонентыПоИзделиямToolStripMenuItem_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormReportSushiComponent)); + if (service is FormReportSushiComponent form) + { + form.ShowDialog(); + } + } + + private void списокЗаказовToolStripMenuItem_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormReportOrders)); + if (service is FormReportOrders form) + { + form.ShowDialog(); + } + + } } } diff --git a/SushiBar/FormMain.resx b/SushiBar/FormMain.resx index a39c409..d13a6eb 100644 --- a/SushiBar/FormMain.resx +++ b/SushiBar/FormMain.resx @@ -121,6 +121,6 @@ 17, 17 - 25 + 146 \ No newline at end of file diff --git a/SushiBar/Program.cs b/SushiBar/Program.cs index 36af50d..a560c62 100644 --- a/SushiBar/Program.cs +++ b/SushiBar/Program.cs @@ -1,11 +1,13 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using NLog.Extensions.Logging; +using SushiBarBusinessLogic; using SushiBarBusinessLogic.BusinessLogic; using SushiBarContracts.BusinessLogicsContracts; using SushiBarContracts.StoragesContracts; using SushiBarDatabaseImplement.Implements; using SushiBarView; +using SushiBarView.Reports; namespace SushiBar { @@ -40,9 +42,12 @@ namespace SushiBar services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -50,6 +55,9 @@ namespace SushiBar services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + } } } \ No newline at end of file diff --git a/SushiBar/SushiBarView.csproj b/SushiBar/SushiBarView.csproj index fcd104a..7fd8747 100644 --- a/SushiBar/SushiBarView.csproj +++ b/SushiBar/SushiBarView.csproj @@ -9,6 +9,7 @@ + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -18,6 +19,7 @@ + diff --git a/SushiBarBusinessLogic/Reportlogic.cs b/SushiBarBusinessLogic/Reportlogic.cs index 906d783..502c940 100644 --- a/SushiBarBusinessLogic/Reportlogic.cs +++ b/SushiBarBusinessLogic/Reportlogic.cs @@ -53,9 +53,8 @@ namespace SushiBarBusinessLogic { if (sushi.SushiComponents.ContainsKey(component.Id)) { - record.Sushis.Add((sushi.SushiName, sushi.SushiComponents[component.Id].Item2)); - record.TotalCount += - sushi.SushiComponents[component.Id].Item2; + record.Sushis.Add(new (sushi.SushiName, sushi.SushiComponents[component.Id].Item2)); + record.TotalCount += sushi.SushiComponents[component.Id].Item2; } } list.Add(record); diff --git a/SushiBarDatabaseImplement/Implements/OrderStorage.cs b/SushiBarDatabaseImplement/Implements/OrderStorage.cs index ffcd06a..dacf934 100644 --- a/SushiBarDatabaseImplement/Implements/OrderStorage.cs +++ b/SushiBarDatabaseImplement/Implements/OrderStorage.cs @@ -9,22 +9,25 @@ namespace SushiBarDatabaseImplement.Implements { public class OrderStorage : IOrderStorage { - public List GetFullList() + public List GetFullList() { using var context = new SushiBarDatabase(); return context.Orders.Select(x => AccessViewModel(x.GetViewModel)).ToList(); } - public List GetFilteredList(OrderSearchModel model) + public List GetFilteredList(OrderSearchModel model) { - if(!model.Id.HasValue) + if (!model.Id.HasValue && !model.DateTo.HasValue && !model.DateFrom.HasValue) { return new(); } using var context = new SushiBarDatabase(); - return context.Orders.Where(x => x.Id == model.Id).Select(x => AccessViewModel(x.GetViewModel)).ToList(); + if (model.Id.HasValue) + return context.Orders.Where(x => x.Id == model.Id).Select(x => AccessViewModel(x.GetViewModel)).ToList(); + else + return context.Orders.Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo).Select(x => AccessViewModel(x.GetViewModel)).ToList(); } - public OrderViewModel? GetElement(OrderSearchModel model) + public OrderViewModel? GetElement(OrderSearchModel model) { if (!model.Id.HasValue) { @@ -33,7 +36,7 @@ namespace SushiBarDatabaseImplement.Implements using var context = new SushiBarDatabase(); return AccessViewModel(context.Orders.FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id).GetViewModel); } - public OrderViewModel? Insert(OrderBindingModel model) + public OrderViewModel? Insert(OrderBindingModel model) { using var context = new SushiBarDatabase(); var newOrder = Order.Create(model); @@ -45,7 +48,7 @@ namespace SushiBarDatabaseImplement.Implements context.SaveChanges(); return AccessViewModel(newOrder.GetViewModel); } - public OrderViewModel? Update(OrderBindingModel model) + public OrderViewModel? Update(OrderBindingModel model) { using var context = new SushiBarDatabase(); var order = context.Orders.FirstOrDefault(x => x.Id == model.Id); @@ -57,7 +60,7 @@ namespace SushiBarDatabaseImplement.Implements context.SaveChanges(); return AccessViewModel(order.GetViewModel); } - public OrderViewModel? Delete(OrderBindingModel model) + public OrderViewModel? Delete(OrderBindingModel model) { using var context = new SushiBarDatabase(); var order = context.Orders.FirstOrDefault(x => x.Id == model.Id);