diff --git a/FoodOrders/FoodOrdersView/FoodOrdersView.csproj b/FoodOrders/FoodOrdersView/FoodOrdersView.csproj index 32612c4..209cad7 100644 --- a/FoodOrders/FoodOrdersView/FoodOrdersView.csproj +++ b/FoodOrders/FoodOrdersView/FoodOrdersView.csproj @@ -23,6 +23,7 @@ + diff --git a/FoodOrders/FoodOrdersView/FormMain.Designer.cs b/FoodOrders/FoodOrdersView/FormMain.Designer.cs index 347f5ed..044b574 100644 --- a/FoodOrders/FoodOrdersView/FormMain.Designer.cs +++ b/FoodOrders/FoodOrdersView/FormMain.Designer.cs @@ -28,142 +28,168 @@ /// private void InitializeComponent() { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.справочникиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.изделияToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.компонентыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.dataGridView1 = new System.Windows.Forms.DataGridView(); - this.CreateOrderButton = new System.Windows.Forms.Button(); - this.TakeOrderInWorkButton = new System.Windows.Forms.Button(); - this.OrderReadyButton = new System.Windows.Forms.Button(); - this.IssuedOrderButton = new System.Windows.Forms.Button(); - this.UpdateListButton = new System.Windows.Forms.Button(); - this.menuStrip1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); - this.SuspendLayout(); + menuStrip1 = new MenuStrip(); + справочникиToolStripMenuItem = new ToolStripMenuItem(); + изделияToolStripMenuItem = new ToolStripMenuItem(); + компонентыToolStripMenuItem = new ToolStripMenuItem(); + отчетыToolStripMenuItem = new ToolStripMenuItem(); + списокКомпонентовToolStripMenuItem = new ToolStripMenuItem(); + компоненToolStripMenuItem = new ToolStripMenuItem(); + списокЗаказовToolStripMenuItem = new ToolStripMenuItem(); + dataGridView1 = new DataGridView(); + CreateOrderButton = new Button(); + TakeOrderInWorkButton = new Button(); + OrderReadyButton = new Button(); + IssuedOrderButton = new Button(); + UpdateListButton = new Button(); + menuStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridView1).BeginInit(); + SuspendLayout(); // // menuStrip1 // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.справочникиToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(700, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; + menuStrip1.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, отчетыToolStripMenuItem }); + menuStrip1.Location = new Point(0, 0); + menuStrip1.Name = "menuStrip1"; + menuStrip1.Size = new Size(700, 24); + menuStrip1.TabIndex = 0; + menuStrip1.Text = "menuStrip1"; // // справочникиToolStripMenuItem // - this.справочникиToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.изделияToolStripMenuItem, - this.компонентыToolStripMenuItem}); - this.справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem"; - this.справочникиToolStripMenuItem.Size = new System.Drawing.Size(94, 20); - this.справочникиToolStripMenuItem.Text = "Справочники"; + справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { изделияToolStripMenuItem, компонентыToolStripMenuItem }); + справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem"; + справочникиToolStripMenuItem.Size = new Size(94, 20); + справочникиToolStripMenuItem.Text = "Справочники"; // // изделияToolStripMenuItem // - this.изделияToolStripMenuItem.Name = "изделияToolStripMenuItem"; - this.изделияToolStripMenuItem.Size = new System.Drawing.Size(145, 22); - this.изделияToolStripMenuItem.Text = "Изделия"; - this.изделияToolStripMenuItem.Click += new System.EventHandler(this.ИзделияToolStripMenuItem_Click); + изделияToolStripMenuItem.Name = "изделияToolStripMenuItem"; + изделияToolStripMenuItem.Size = new Size(145, 22); + изделияToolStripMenuItem.Text = "Изделия"; + изделияToolStripMenuItem.Click += ИзделияToolStripMenuItem_Click; // // компонентыToolStripMenuItem // - this.компонентыToolStripMenuItem.Name = "компонентыToolStripMenuItem"; - this.компонентыToolStripMenuItem.Size = new System.Drawing.Size(145, 22); - this.компонентыToolStripMenuItem.Text = "Компоненты"; - this.компонентыToolStripMenuItem.Click += new System.EventHandler(this.КомпонентыToolStripMenuItem_Click); + компонентыToolStripMenuItem.Name = "компонентыToolStripMenuItem"; + компонентыToolStripMenuItem.Size = new Size(145, 22); + компонентыToolStripMenuItem.Text = "Компоненты"; + компонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click; + // + // отчетыToolStripMenuItem + // + отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { списокКомпонентовToolStripMenuItem, компоненToolStripMenuItem, списокЗаказовToolStripMenuItem }); + отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem"; + отчетыToolStripMenuItem.Size = new Size(60, 20); + отчетыToolStripMenuItem.Text = "Отчеты"; + // + // списокКомпонентовToolStripMenuItem + // + списокКомпонентовToolStripMenuItem.Name = "списокКомпонентовToolStripMenuItem"; + списокКомпонентовToolStripMenuItem.Size = new Size(216, 22); + списокКомпонентовToolStripMenuItem.Text = "Список изделий"; + списокКомпонентовToolStripMenuItem.Click += ComponentsToolStripMenuItem_Click; + // + // компоненToolStripMenuItem + // + компоненToolStripMenuItem.Name = "компоненToolStripMenuItem"; + компоненToolStripMenuItem.Size = new Size(216, 22); + компоненToolStripMenuItem.Text = "Изделия по компонентам"; + компоненToolStripMenuItem.Click += ComponentProductsToolStripMenuItem_Click; + // + // списокЗаказовToolStripMenuItem + // + списокЗаказовToolStripMenuItem.Name = "списокЗаказовToolStripMenuItem"; + списокЗаказовToolStripMenuItem.Size = new Size(216, 22); + списокЗаказовToolStripMenuItem.Text = "Список заказов"; + списокЗаказовToolStripMenuItem.Click += OrdersToolStripMenuItem_Click; // // dataGridView1 // - this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dataGridView1.Location = new System.Drawing.Point(0, 27); - this.dataGridView1.Name = "dataGridView1"; - this.dataGridView1.RowTemplate.Height = 25; - this.dataGridView1.Size = new System.Drawing.Size(568, 341); - this.dataGridView1.TabIndex = 1; + dataGridView1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridView1.Location = new Point(0, 27); + dataGridView1.Name = "dataGridView1"; + dataGridView1.RowTemplate.Height = 25; + dataGridView1.Size = new Size(568, 341); + dataGridView1.TabIndex = 1; // // CreateOrderButton // - this.CreateOrderButton.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.CreateOrderButton.Location = new System.Drawing.Point(574, 27); - this.CreateOrderButton.Name = "CreateOrderButton"; - this.CreateOrderButton.Size = new System.Drawing.Size(122, 41); - this.CreateOrderButton.TabIndex = 2; - this.CreateOrderButton.Text = "Создать заказ"; - this.CreateOrderButton.UseVisualStyleBackColor = true; - this.CreateOrderButton.Click += new System.EventHandler(this.CreateOrderButton_Click); + CreateOrderButton.Anchor = AnchorStyles.Right; + CreateOrderButton.Location = new Point(574, 27); + CreateOrderButton.Name = "CreateOrderButton"; + CreateOrderButton.Size = new Size(122, 41); + CreateOrderButton.TabIndex = 2; + CreateOrderButton.Text = "Создать заказ"; + CreateOrderButton.UseVisualStyleBackColor = true; + CreateOrderButton.Click += CreateOrderButton_Click; // // TakeOrderInWorkButton // - this.TakeOrderInWorkButton.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.TakeOrderInWorkButton.Location = new System.Drawing.Point(574, 74); - this.TakeOrderInWorkButton.Name = "TakeOrderInWorkButton"; - this.TakeOrderInWorkButton.Size = new System.Drawing.Size(122, 41); - this.TakeOrderInWorkButton.TabIndex = 3; - this.TakeOrderInWorkButton.Text = "Отдать на выполнение"; - this.TakeOrderInWorkButton.UseVisualStyleBackColor = true; - this.TakeOrderInWorkButton.Click += new System.EventHandler(this.TakeOrderInWorkButton_Click); + TakeOrderInWorkButton.Anchor = AnchorStyles.Right; + TakeOrderInWorkButton.Location = new Point(574, 74); + TakeOrderInWorkButton.Name = "TakeOrderInWorkButton"; + TakeOrderInWorkButton.Size = new Size(122, 41); + TakeOrderInWorkButton.TabIndex = 3; + TakeOrderInWorkButton.Text = "Отдать на выполнение"; + TakeOrderInWorkButton.UseVisualStyleBackColor = true; + TakeOrderInWorkButton.Click += TakeOrderInWorkButton_Click; // // OrderReadyButton // - this.OrderReadyButton.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.OrderReadyButton.Location = new System.Drawing.Point(574, 121); - this.OrderReadyButton.Name = "OrderReadyButton"; - this.OrderReadyButton.Size = new System.Drawing.Size(122, 41); - this.OrderReadyButton.TabIndex = 4; - this.OrderReadyButton.Text = "Заказ готов"; - this.OrderReadyButton.UseVisualStyleBackColor = true; - this.OrderReadyButton.Click += new System.EventHandler(this.OrderReadyButton_Click); + OrderReadyButton.Anchor = AnchorStyles.Right; + OrderReadyButton.Location = new Point(574, 121); + OrderReadyButton.Name = "OrderReadyButton"; + OrderReadyButton.Size = new Size(122, 41); + OrderReadyButton.TabIndex = 4; + OrderReadyButton.Text = "Заказ готов"; + OrderReadyButton.UseVisualStyleBackColor = true; + OrderReadyButton.Click += OrderReadyButton_Click; // // IssuedOrderButton // - this.IssuedOrderButton.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.IssuedOrderButton.Location = new System.Drawing.Point(574, 168); - this.IssuedOrderButton.Name = "IssuedOrderButton"; - this.IssuedOrderButton.Size = new System.Drawing.Size(122, 41); - this.IssuedOrderButton.TabIndex = 5; - this.IssuedOrderButton.Text = "Заказ выдан"; - this.IssuedOrderButton.UseVisualStyleBackColor = true; - this.IssuedOrderButton.Click += new System.EventHandler(this.IssuedOrderButton_Click); + IssuedOrderButton.Anchor = AnchorStyles.Right; + IssuedOrderButton.Location = new Point(574, 168); + IssuedOrderButton.Name = "IssuedOrderButton"; + IssuedOrderButton.Size = new Size(122, 41); + IssuedOrderButton.TabIndex = 5; + IssuedOrderButton.Text = "Заказ выдан"; + IssuedOrderButton.UseVisualStyleBackColor = true; + IssuedOrderButton.Click += IssuedOrderButton_Click; // // UpdateListButton // - this.UpdateListButton.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.UpdateListButton.Location = new System.Drawing.Point(574, 215); - this.UpdateListButton.Name = "UpdateListButton"; - this.UpdateListButton.Size = new System.Drawing.Size(122, 41); - this.UpdateListButton.TabIndex = 6; - this.UpdateListButton.Text = "Обновить список"; - this.UpdateListButton.UseVisualStyleBackColor = true; - this.UpdateListButton.Click += new System.EventHandler(this.UpdateListButton_Click); + UpdateListButton.Anchor = AnchorStyles.Right; + UpdateListButton.Location = new Point(574, 215); + UpdateListButton.Name = "UpdateListButton"; + UpdateListButton.Size = new Size(122, 41); + UpdateListButton.TabIndex = 6; + UpdateListButton.Text = "Обновить список"; + UpdateListButton.UseVisualStyleBackColor = true; + UpdateListButton.Click += UpdateListButton_Click; // // FormMain // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(700, 380); - this.Controls.Add(this.UpdateListButton); - this.Controls.Add(this.IssuedOrderButton); - this.Controls.Add(this.OrderReadyButton); - this.Controls.Add(this.TakeOrderInWorkButton); - this.Controls.Add(this.CreateOrderButton); - this.Controls.Add(this.dataGridView1); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Name = "FormMain"; - this.Text = "Заказ еды"; - this.Load += new System.EventHandler(this.FormMain_Load); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(700, 380); + Controls.Add(UpdateListButton); + Controls.Add(IssuedOrderButton); + Controls.Add(OrderReadyButton); + Controls.Add(TakeOrderInWorkButton); + Controls.Add(CreateOrderButton); + Controls.Add(dataGridView1); + Controls.Add(menuStrip1); + MainMenuStrip = menuStrip1; + Name = "FormMain"; + Text = "Заказ еды"; + Load += FormMain_Load; + menuStrip1.ResumeLayout(false); + menuStrip1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridView1).EndInit(); + ResumeLayout(false); + PerformLayout(); } #endregion @@ -178,5 +204,9 @@ private Button OrderReadyButton; private Button IssuedOrderButton; private Button UpdateListButton; + private ToolStripMenuItem отчетыToolStripMenuItem; + private ToolStripMenuItem списокКомпонентовToolStripMenuItem; + private ToolStripMenuItem компоненToolStripMenuItem; + private ToolStripMenuItem списокЗаказовToolStripMenuItem; } } \ No newline at end of file diff --git a/FoodOrders/FoodOrdersView/FormMain.cs b/FoodOrders/FoodOrdersView/FormMain.cs index 6ac4831..bc9ca31 100644 --- a/FoodOrders/FoodOrdersView/FormMain.cs +++ b/FoodOrders/FoodOrdersView/FormMain.cs @@ -10,19 +10,20 @@ namespace FoodOrdersView { private readonly ILogger _logger; private readonly IOrderLogic _orderLogic; + private readonly IReportLogic _reportlogic; - public FormMain(ILogger logger, IOrderLogic orderLogic) + public FormMain(ILogger logger, IReportLogic reportLogic, IOrderLogic orderLogic) { InitializeComponent(); _logger = logger; _orderLogic = orderLogic; + _reportlogic = reportLogic; } private void FormMain_Load(object sender, EventArgs e) { LoadData(); } - private void LoadData() { _logger.LogInformation("Загрузка заказов"); @@ -45,17 +46,14 @@ namespace FoodOrdersView MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - private void КомпонентыToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormComponents)); - if (service is FormComponents form) { form.ShowDialog(); } } - private void ИзделияToolStripMenuItem_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(Изделия)); @@ -65,7 +63,6 @@ namespace FoodOrdersView form.ShowDialog(); } } - private void CreateOrderButton_Click(object sender, EventArgs e) { var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder)); @@ -76,7 +73,6 @@ namespace FoodOrdersView LoadData(); } } - private void TakeOrderInWorkButton_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count == 1) @@ -111,7 +107,6 @@ namespace FoodOrdersView } } } - private void IssuedOrderButton_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count == 1) @@ -146,7 +141,6 @@ namespace FoodOrdersView } } } - private void OrderReadyButton_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count == 1) @@ -182,10 +176,41 @@ namespace FoodOrdersView } } } - private void UpdateListButton_Click(object sender, EventArgs e) { LoadData(); } + private void ComponentsToolStripMenuItem_Click(object sender, EventArgs e) + { + using var dialog = new SaveFileDialog { Filter = "docx|*.docx" }; + if (dialog.ShowDialog() == DialogResult.OK) + { + _reportlogic.SaveFoodsToWordFile(new ReportBindingModel + { + FileName = dialog.FileName + }); + MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + private void ComponentProductsToolStripMenuItem_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormReportFoodComponents)); + + if (service is FormReportFoodComponents form) + { + form.ShowDialog(); + } + } + + private void OrdersToolStripMenuItem_Click(object sender, EventArgs e) + { + var service = Program.ServiceProvider?.GetService(typeof(FormReportOrders)); + if (service is FormReportOrders form) + { + form.ShowDialog(); + MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + MessageBox.Show("Ошибка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); + } } } diff --git a/FoodOrders/FoodOrdersView/FormReportFoodComponents.Designer.cs b/FoodOrders/FoodOrdersView/FormReportFoodComponents.Designer.cs index d4c6565..930e7ad 100644 --- a/FoodOrders/FoodOrdersView/FormReportFoodComponents.Designer.cs +++ b/FoodOrders/FoodOrdersView/FormReportFoodComponents.Designer.cs @@ -12,8 +12,9 @@ /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) + { - if (disposing && (components != null)) + if (disposing && (components != null)) { components.Dispose(); } diff --git a/FoodOrders/FoodOrdersView/FormReportOrders.Designer.cs b/FoodOrders/FoodOrdersView/FormReportOrders.Designer.cs new file mode 100644 index 0000000..d67ce52 --- /dev/null +++ b/FoodOrders/FoodOrdersView/FormReportOrders.Designer.cs @@ -0,0 +1,130 @@ +namespace FoodOrdersView +{ + partial class FormReportOrders + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + panel = new Panel(); + ButtonToPdf = new Button(); + ButtonMake = new Button(); + label2 = new Label(); + label1 = new Label(); + dateTimePickerTo = new DateTimePicker(); + dateTimePickerFrom = new DateTimePicker(); + panel.SuspendLayout(); + SuspendLayout(); + // + // panel + // + panel.Controls.Add(ButtonToPdf); + panel.Controls.Add(ButtonMake); + panel.Controls.Add(label2); + panel.Controls.Add(label1); + panel.Controls.Add(dateTimePickerTo); + panel.Controls.Add(dateTimePickerFrom); + panel.Dock = DockStyle.Top; + panel.Location = new Point(0, 0); + panel.Name = "panel"; + panel.Size = new Size(800, 31); + panel.TabIndex = 0; + // + // ButtonToPdf + // + ButtonToPdf.Location = new Point(586, 5); + ButtonToPdf.Name = "ButtonToPdf"; + ButtonToPdf.Size = new Size(75, 23); + ButtonToPdf.TabIndex = 5; + ButtonToPdf.Text = "В PDF"; + ButtonToPdf.UseVisualStyleBackColor = true; + ButtonToPdf.MouseClick += ButtonToPdf_Click; + // + // ButtonMake + // + ButtonMake.Location = new Point(365, 3); + ButtonMake.Name = "ButtonMake"; + ButtonMake.Size = new Size(123, 23); + ButtonMake.TabIndex = 4; + ButtonMake.Text = "Сформировать"; + ButtonMake.UseVisualStyleBackColor = true; + ButtonMake.Click += ButtonMake_Click; + // + // label2 + // + label2.AutoSize = true; + label2.Location = new Point(187, 9); + label2.Name = "label2"; + label2.Size = new Size(23, 15); + label2.TabIndex = 3; + label2.Text = "По"; + // + // label1 + // + label1.AutoSize = true; + label1.Location = new Point(21, 9); + label1.Name = "label1"; + label1.Size = new Size(15, 15); + label1.TabIndex = 2; + label1.Text = "С"; + // + // dateTimePickerTo + // + dateTimePickerTo.Location = new Point(216, 3); + dateTimePickerTo.Name = "dateTimePickerTo"; + dateTimePickerTo.Size = new Size(123, 23); + dateTimePickerTo.TabIndex = 1; + // + // dateTimePickerFrom + // + dateTimePickerFrom.Location = new Point(42, 3); + dateTimePickerFrom.Name = "dateTimePickerFrom"; + dateTimePickerFrom.Size = new Size(132, 23); + dateTimePickerFrom.TabIndex = 0; + // + // FormReportOrders + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(panel); + Name = "FormReportOrders"; + Text = "Заказы"; + panel.ResumeLayout(false); + panel.PerformLayout(); + ResumeLayout(false); + } + + #endregion + + private Panel panel; + private Button ButtonToPdf; + private Button ButtonMake; + private Label label2; + private Label label1; + private DateTimePicker dateTimePickerTo; + private DateTimePicker dateTimePickerFrom; + } +} \ No newline at end of file diff --git a/FoodOrders/FoodOrdersView/FormReportOrders.cs b/FoodOrders/FoodOrdersView/FormReportOrders.cs new file mode 100644 index 0000000..8f0d68d --- /dev/null +++ b/FoodOrders/FoodOrdersView/FormReportOrders.cs @@ -0,0 +1,91 @@ +using FoodOrdersContracts.BindingModels; +using FoodOrdersContracts.BusinessLogicsContracts; +using Microsoft.Extensions.Logging; +using Microsoft.Reporting.WinForms; + +namespace FoodOrdersView +{ + public partial class FormReportOrders : Form + { + private readonly ReportViewer reportViewer; + private readonly ILogger _logger; + private readonly IReportLogic _logic; + public FormReportOrders(ILogger logger, IReportLogic logic) + + { + InitializeComponent(); + _logger = logger; + _logic = logic; + reportViewer = new ReportViewer + { + Dock = DockStyle.Fill + }; + reportViewer.LocalReport.LoadReportDefinition(new + FileStream("ReportOrders.rdlc", FileMode.Open)); + Controls.Clear(); + Controls.Add(reportViewer); + Controls.Add(panel); + } + private void ButtonMake_Click(object sender, EventArgs e) + { + if (dateTimePickerFrom.Value.Date >= dateTimePickerTo.Value.Date) + { + MessageBox.Show("Дата начала должна быть меньше даты окончания", + "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + try + { + var dataSource = _logic.GetOrders(new ReportBindingModel + { + DateFrom = dateTimePickerFrom.Value, + DateTo = dateTimePickerTo.Value + }); + var source = new ReportDataSource("DataSetOrders", dataSource); + reportViewer.LocalReport.DataSources.Clear(); + reportViewer.LocalReport.DataSources.Add(source); + var parameters = new[] { new ReportParameter("ReportParameterPeriod", $"c {dateTimePickerFrom.Value.ToShortDateString()} по {dateTimePickerTo.Value.ToShortDateString()}") }; + reportViewer.LocalReport.SetParameters(parameters); + reportViewer.RefreshReport(); + _logger.LogInformation("Загрузка списка заказов на период {From}-{ To}", dateTimePickerFrom.Value.ToShortDateString(), dateTimePickerTo.Value.ToShortDateString()); + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка загрузки списка заказов на период"); + MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, + MessageBoxIcon.Error); + } + } + private void ButtonToPdf_Click(object sender, EventArgs e) + { + if (dateTimePickerFrom.Value.Date >= dateTimePickerTo.Value.Date) + { + MessageBox.Show("Дата начала должна быть меньше даты окончания", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + using var dialog = new SaveFileDialog + { + Filter = "pdf|*.pdf" + }; + if (dialog.ShowDialog() == DialogResult.OK) + { + try + { + _logic.SaveOrdersToPdfFile(new ReportBindingModel + { + FileName = dialog.FileName, + DateFrom = dateTimePickerFrom.Value, + DateTo = dateTimePickerTo.Value + }); + _logger.LogInformation("Сохранение списка заказов на период{ From}-{ To} ", dateTimePickerFrom.Value.ToShortDateString(), dateTimePickerTo.Value.ToShortDateString()); + MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка сохранения списка заказов на период"); + MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + } +} \ No newline at end of file diff --git a/FoodOrders/FoodOrdersView/FormReportOrders.resx b/FoodOrders/FoodOrdersView/FormReportOrders.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/FoodOrders/FoodOrdersView/FormReportOrders.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/FoodOrders/FoodOrdersView/ReportOrders.rdlc b/FoodOrders/FoodOrdersView/ReportOrders.rdlc new file mode 100644 index 0000000..9c73258 --- /dev/null +++ b/FoodOrders/FoodOrdersView/ReportOrders.rdlc @@ -0,0 +1,599 @@ + + + 0 + + + + System.Data.DataSet + /* Local Connection */ + + 10791c83-cee8-4a38-bbd0-245fc17cefb3 + + + + + + FoodOrdersContractsViewModels + /* Local Query */ + + + + Id + System.Int32 + + + DateCreate + System.DateTime + + + FoodName + System.String + + + Status + System.String + + + Sum + System.Decimal + + + + FoodOrdersContracts.ViewModels + ReportOrdersViewModel + FoodOrdersContracts.ViewModels.ReportOrdersViewModel, FoodOrdersContracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + + + + + + + true + true + + + + + =Parameters!ReportParameterPeriod.Value + + + + + + + ReportParameterPeriod + 1cm + 1cm + 21cm + + + Middle + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Заказы + + + + + + + 1cm + 21cm + 1 + + + Middle + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.5cm + + + 3.21438cm + + + 8.23317cm + + + 2.5cm + + + 2.5cm + + + + + 0.6cm + + + + + true + true + + + + + Номер + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Дата создания + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Изделие + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Статус + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Сумма + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + + + true + true + + + + + =Fields!Id.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!DateCreate.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!FoodName.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Status.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Sum.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSetOrders + 2.48391cm + 0.55245cm + 1.2cm + 18.94755cm + 2 + + + + + + true + true + + + + + Итого: + + + + + + + 4cm + 14.5cm + 0.6cm + 2.5cm + 3 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Sum(Fields!Sum.Value, "DataSetOrders") + + + + + + + 4cm + 17cm + 0.6cm + 2.5cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + 5.72875cm +