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
+
+
+
+
+ Номер
+
+
+
+
+
+
+ Textbox5
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Дата создания
+
+
+
+
+
+
+ Textbox1
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Изделие
+
+
+
+
+
+
+ Textbox3
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Статус
+
+
+
+
+
+
+ Textbox2
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Сумма
+
+
+
+
+
+
+ Textbox7
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ 0.6cm
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Id.Value
+
+
+
+
+
+
+ Id
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!DateCreate.Value
+
+
+
+
+
+
+ DateCreate
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!FoodName.Value
+
+
+
+
+
+
+ FoodName
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Status.Value
+
+
+
+
+
+
+ Status
+
+
+ 2pt
+ 2pt
+ 2pt
+ 2pt
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+ =Fields!Sum.Value
+
+
+
+
+
+
+ Sum
+
+
+ 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
+
+
+ 21cm
+
+ 29.7cm
+ 21cm
+ 2cm
+ 2cm
+ 2cm
+ 2cm
+ 0.13cm
+
+
+
+
+
+
+ String
+ true
+ ReportParameter1
+
+
+
+
+ 4
+ 2
+
+
+ 0
+ 0
+ ReportParameterPeriod
+
+
+
+
+ Cm
+ 2de0031a-4d17-449d-922d-d9fc54572312
+
\ No newline at end of file