diff --git a/SoftwareInstallation/SoftwareInstallation/FormMain.Designer.cs b/SoftwareInstallation/SoftwareInstallation/FormMain.Designer.cs
index a654928..83872c8 100644
--- a/SoftwareInstallation/SoftwareInstallation/FormMain.Designer.cs
+++ b/SoftwareInstallation/SoftwareInstallation/FormMain.Designer.cs
@@ -20,200 +20,255 @@
base.Dispose(disposing);
}
- #region Windows Form Designer generated code
+ #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()
- {
- menuStrip1 = new MenuStrip();
- справочники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();
- buttonOrderReady = new Button();
- buttonIssuedOrder = new Button();
- buttonRefresh = new Button();
- shopReplenishment = new Button();
- menuStrip1.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
- SuspendLayout();
- //
- // menuStrip1
- //
- menuStrip1.ImageScalingSize = new Size(20, 20);
- menuStrip1.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem });
- menuStrip1.Location = new Point(0, 0);
- menuStrip1.Name = "menuStrip1";
- menuStrip1.Padding = new Padding(7, 3, 0, 3);
- menuStrip1.Size = new Size(1077, 30);
- menuStrip1.TabIndex = 0;
- menuStrip1.Text = "menuStrip1";
- //
- // справочникиToolStripMenuItem
- //
- справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { компонентыToolStripMenuItem, изделияToolStripMenuItem, магазиныToolStripMenuItem, поставкиToolStripMenuItem, продажиToolStripMenuItem });
- справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
- справочникиToolStripMenuItem.Size = new Size(117, 24);
- справочникиToolStripMenuItem.Text = "Справочники";
- //
- // компонентыToolStripMenuItem
- //
- компонентыToolStripMenuItem.Name = "компонентыToolStripMenuItem";
- компонентыToolStripMenuItem.Size = new Size(224, 26);
- компонентыToolStripMenuItem.Text = "Компоненты";
- компонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click;
- //
- // изделияToolStripMenuItem
- //
- изделияToolStripMenuItem.Name = "изделияToolStripMenuItem";
- изделияToolStripMenuItem.Size = new Size(224, 26);
- изделияToolStripMenuItem.Text = "Изделия";
- изделияToolStripMenuItem.Click += ИзделияToolStripMenuItem_Click;
- //
- // магазиныToolStripMenuItem
- //
- магазиныToolStripMenuItem.Name = "магазиныToolStripMenuItem";
- магазиныToolStripMenuItem.Size = new Size(182, 26);
- магазиныToolStripMenuItem.Text = "Магазины";
- магазиныToolStripMenuItem.Click += МагазиныToolStripMenuItem_Click;
- //
- // поставкиToolStripMenuItem
- //
- поставкиToolStripMenuItem.Name = "поставкиToolStripMenuItem";
- поставкиToolStripMenuItem.Size = new Size(180, 22);
- поставкиToolStripMenuItem.Text = "Поставки";
- поставкиToolStripMenuItem.Click += поставкиToolStripMenuItem_Click;
- // продажиToolStripMenuItem
- //
- продажиToolStripMenuItem.Name = "продажиToolStripMenuItem";
- продажиToolStripMenuItem.Size = new Size(180, 22);
- продажиToolStripMenuItem.Text = "Продажи";
- продажиToolStripMenuItem.Click += продажиToolStripMenuItem_Click;
- //
- //
- //
- // dataGridView
- //
- dataGridView.AllowUserToAddRows = false;
- dataGridView.AllowUserToDeleteRows = false;
- dataGridView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
- dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- dataGridView.Location = new Point(0, 36);
- dataGridView.Margin = new Padding(3, 4, 3, 4);
- dataGridView.Name = "dataGridView";
- dataGridView.ReadOnly = true;
- dataGridView.RowHeadersVisible = false;
- dataGridView.RowHeadersWidth = 51;
- dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
- dataGridView.Size = new Size(879, 432);
- dataGridView.TabIndex = 1;
- //
- // buttonCreateOrder
- //
- buttonCreateOrder.Anchor = AnchorStyles.Top | AnchorStyles.Right;
- buttonCreateOrder.Location = new Point(885, 77);
- buttonCreateOrder.Margin = new Padding(3, 4, 3, 4);
- buttonCreateOrder.Name = "buttonCreateOrder";
- buttonCreateOrder.Size = new Size(178, 41);
- buttonCreateOrder.TabIndex = 2;
- buttonCreateOrder.Text = "Создать заказ";
- buttonCreateOrder.UseVisualStyleBackColor = true;
- buttonCreateOrder.Click += ButtonCreateOrder_Click;
- //
- // buttonTakeOrderInWork
- //
- buttonTakeOrderInWork.Anchor = AnchorStyles.Top | AnchorStyles.Right;
- buttonTakeOrderInWork.Location = new Point(885, 127);
- buttonTakeOrderInWork.Margin = new Padding(3, 4, 3, 4);
- buttonTakeOrderInWork.Name = "buttonTakeOrderInWork";
- buttonTakeOrderInWork.Size = new Size(178, 39);
- buttonTakeOrderInWork.TabIndex = 3;
- buttonTakeOrderInWork.Text = "Отдать на выполнение";
- buttonTakeOrderInWork.UseVisualStyleBackColor = true;
- buttonTakeOrderInWork.Click += ButtonTakeOrderInWork_Click;
- //
- // buttonOrderReady
- //
- buttonOrderReady.Anchor = AnchorStyles.Top | AnchorStyles.Right;
- buttonOrderReady.Location = new Point(885, 173);
- buttonOrderReady.Margin = new Padding(3, 4, 3, 4);
- buttonOrderReady.Name = "buttonOrderReady";
- buttonOrderReady.Size = new Size(178, 36);
- buttonOrderReady.TabIndex = 4;
- buttonOrderReady.Text = "Заказ готов";
- buttonOrderReady.UseVisualStyleBackColor = true;
- buttonOrderReady.Click += ButtonOrderReady_Click;
- //
- // buttonIssuedOrder
- //
- buttonIssuedOrder.Anchor = AnchorStyles.Top | AnchorStyles.Right;
- buttonIssuedOrder.Location = new Point(885, 217);
- buttonIssuedOrder.Margin = new Padding(3, 4, 3, 4);
- buttonIssuedOrder.Name = "buttonIssuedOrder";
- buttonIssuedOrder.Size = new Size(178, 39);
- buttonIssuedOrder.TabIndex = 5;
- buttonIssuedOrder.Text = "Заказ выдан";
- buttonIssuedOrder.UseVisualStyleBackColor = true;
- buttonIssuedOrder.Click += ButtonIssuedOrder_Click;
- //
- // buttonRefresh
- //
- buttonRefresh.Anchor = AnchorStyles.Top | AnchorStyles.Right;
- buttonRefresh.Location = new Point(885, 264);
- buttonRefresh.Margin = new Padding(3, 4, 3, 4);
- buttonRefresh.Name = "buttonRefresh";
- buttonRefresh.Size = new Size(178, 39);
- buttonRefresh.TabIndex = 6;
- buttonRefresh.Text = "Обновить список";
- buttonRefresh.UseVisualStyleBackColor = true;
- buttonRefresh.Click += ButtonRef_Click;
- //
- // shopReplenishment
- //
- shopReplenishment.Location = new Point(885, 312);
- shopReplenishment.Name = "shopReplenishment";
- shopReplenishment.Size = new Size(178, 41);
- shopReplenishment.TabIndex = 7;
- shopReplenishment.Text = "Пополнение магазина";
- shopReplenishment.UseVisualStyleBackColor = true;
- shopReplenishment.Click += ShopReplenishment_Click;
- //
- // FormMain
- //
- AutoScaleDimensions = new SizeF(8F, 20F);
- AutoScaleMode = AutoScaleMode.Font;
- ClientSize = new Size(1077, 467);
- Controls.Add(buttonRefresh);
- Controls.Add(buttonIssuedOrder);
- Controls.Add(buttonOrderReady);
- Controls.Add(buttonTakeOrderInWork);
- Controls.Add(buttonCreateOrder);
- Controls.Add(dataGridView);
- Controls.Add(menuStrip1);
- Controls.Add(shopReplenishment);
- MainMenuStrip = menuStrip1;
- Margin = new Padding(3, 4, 3, 4);
- Name = "FormMain";
- Text = "Установка ПО";
- Load += FormMain_Load;
- menuStrip1.ResumeLayout(false);
- menuStrip1.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
- ResumeLayout(false);
- PerformLayout();
- }
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ menuStrip1 = new MenuStrip();
+ справочникиToolStripMenuItem = new ToolStripMenuItem();
+ компонентыToolStripMenuItem = new ToolStripMenuItem();
+ изделияToolStripMenuItem = new ToolStripMenuItem();
+ магазиныToolStripMenuItem = 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();
+ buttonOrderReady = new Button();
+ buttonIssuedOrder = new Button();
+ buttonRefresh = new Button();
+ shopReplenishment = new Button();
+ списокМагазиновToolStripMenuItem = new ToolStripMenuItem();
+ загруженностьToolStripMenuItem = new ToolStripMenuItem();
+ заказыПоДатамToolStripMenuItem = new ToolStripMenuItem();
+ menuStrip1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
+ SuspendLayout();
+ //
+ // menuStrip1
+ //
+ menuStrip1.ImageScalingSize = new Size(20, 20);
+ menuStrip1.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, отчётыToolStripMenuItem });
+ menuStrip1.Location = new Point(0, 0);
+ menuStrip1.Name = "menuStrip1";
+ menuStrip1.Padding = new Padding(7, 3, 0, 3);
+ menuStrip1.Size = new Size(1077, 30);
+ menuStrip1.TabIndex = 0;
+ menuStrip1.Text = "menuStrip1";
+ //
+ // справочникиToolStripMenuItem
+ //
+ справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { компонентыToolStripMenuItem, изделияToolStripMenuItem, магазиныToolStripMenuItem, поставкиToolStripMenuItem, продажиToolStripMenuItem });
+ справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
+ справочникиToolStripMenuItem.Size = new Size(117, 24);
+ справочникиToolStripMenuItem.Text = "Справочники";
+ //
+ // компонентыToolStripMenuItem
+ //
+ компонентыToolStripMenuItem.Name = "компонентыToolStripMenuItem";
+ компонентыToolStripMenuItem.Size = new Size(182, 26);
+ компонентыToolStripMenuItem.Text = "Компоненты";
+ компонентыToolStripMenuItem.Click += КомпонентыToolStripMenuItem_Click;
+ //
+ // изделияToolStripMenuItem
+ //
+ изделияToolStripMenuItem.Name = "изделияToolStripMenuItem";
+ изделияToolStripMenuItem.Size = new Size(182, 26);
+ изделияToolStripMenuItem.Text = "Изделия";
+ изделияToolStripMenuItem.Click += ИзделияToolStripMenuItem_Click;
+ //
+ // магазиныToolStripMenuItem
+ //
+ магазиныToolStripMenuItem.Name = "магазиныToolStripMenuItem";
+ магазиныToolStripMenuItem.Size = new Size(182, 26);
+ магазиныToolStripMenuItem.Text = "Магазины";
+ магазиныToolStripMenuItem.Click += МагазиныToolStripMenuItem_Click;
+ //
+ // поставкиToolStripMenuItem
+ //
+ поставкиToolStripMenuItem.Name = "поставкиToolStripMenuItem";
+ поставкиToolStripMenuItem.Size = new Size(182, 26);
+ поставкиToolStripMenuItem.Text = "Поставки";
+ поставкиToolStripMenuItem.Click += поставкиToolStripMenuItem_Click;
+ //
+ // продажиToolStripMenuItem
+ //
+ продажиToolStripMenuItem.Name = "продажиToolStripMenuItem";
+ продажиToolStripMenuItem.Size = new Size(182, 26);
+ продажиToolStripMenuItem.Text = "Продажи";
+ продажиToolStripMenuItem.Click += продажиToolStripMenuItem_Click;
+ //
+ // отчётыToolStripMenuItem
+ //
+ отчётыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { списокИзделийToolStripMenuItem, компонентыПоИзделиямToolStripMenuItem, списокЗаказовToolStripMenuItem, списокМагазинов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.AllowUserToAddRows = false;
+ dataGridView.AllowUserToDeleteRows = false;
+ dataGridView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
+ dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ dataGridView.Location = new Point(0, 36);
+ dataGridView.Margin = new Padding(3, 4, 3, 4);
+ dataGridView.Name = "dataGridView";
+ dataGridView.ReadOnly = true;
+ dataGridView.RowHeadersVisible = false;
+ dataGridView.RowHeadersWidth = 51;
+ dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
+ dataGridView.Size = new Size(879, 432);
+ dataGridView.TabIndex = 1;
+ //
+ // buttonCreateOrder
+ //
+ buttonCreateOrder.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ buttonCreateOrder.Location = new Point(885, 77);
+ buttonCreateOrder.Margin = new Padding(3, 4, 3, 4);
+ buttonCreateOrder.Name = "buttonCreateOrder";
+ buttonCreateOrder.Size = new Size(178, 41);
+ buttonCreateOrder.TabIndex = 2;
+ buttonCreateOrder.Text = "Создать заказ";
+ buttonCreateOrder.UseVisualStyleBackColor = true;
+ buttonCreateOrder.Click += ButtonCreateOrder_Click;
+ //
+ // buttonTakeOrderInWork
+ //
+ buttonTakeOrderInWork.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ buttonTakeOrderInWork.Location = new Point(885, 127);
+ buttonTakeOrderInWork.Margin = new Padding(3, 4, 3, 4);
+ buttonTakeOrderInWork.Name = "buttonTakeOrderInWork";
+ buttonTakeOrderInWork.Size = new Size(178, 39);
+ buttonTakeOrderInWork.TabIndex = 3;
+ buttonTakeOrderInWork.Text = "Отдать на выполнение";
+ buttonTakeOrderInWork.UseVisualStyleBackColor = true;
+ buttonTakeOrderInWork.Click += ButtonTakeOrderInWork_Click;
+ //
+ // buttonOrderReady
+ //
+ buttonOrderReady.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ buttonOrderReady.Location = new Point(885, 173);
+ buttonOrderReady.Margin = new Padding(3, 4, 3, 4);
+ buttonOrderReady.Name = "buttonOrderReady";
+ buttonOrderReady.Size = new Size(178, 36);
+ buttonOrderReady.TabIndex = 4;
+ buttonOrderReady.Text = "Заказ готов";
+ buttonOrderReady.UseVisualStyleBackColor = true;
+ buttonOrderReady.Click += ButtonOrderReady_Click;
+ //
+ // buttonIssuedOrder
+ //
+ buttonIssuedOrder.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ buttonIssuedOrder.Location = new Point(885, 217);
+ buttonIssuedOrder.Margin = new Padding(3, 4, 3, 4);
+ buttonIssuedOrder.Name = "buttonIssuedOrder";
+ buttonIssuedOrder.Size = new Size(178, 39);
+ buttonIssuedOrder.TabIndex = 5;
+ buttonIssuedOrder.Text = "Заказ выдан";
+ buttonIssuedOrder.UseVisualStyleBackColor = true;
+ buttonIssuedOrder.Click += ButtonIssuedOrder_Click;
+ //
+ // buttonRefresh
+ //
+ buttonRefresh.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ buttonRefresh.Location = new Point(885, 264);
+ buttonRefresh.Margin = new Padding(3, 4, 3, 4);
+ buttonRefresh.Name = "buttonRefresh";
+ buttonRefresh.Size = new Size(178, 39);
+ buttonRefresh.TabIndex = 6;
+ buttonRefresh.Text = "Обновить список";
+ buttonRefresh.UseVisualStyleBackColor = true;
+ buttonRefresh.Click += ButtonRef_Click;
+ //
+ // shopReplenishment
+ //
+ shopReplenishment.Location = new Point(885, 312);
+ shopReplenishment.Name = "shopReplenishment";
+ shopReplenishment.Size = new Size(178, 41);
+ shopReplenishment.TabIndex = 7;
+ shopReplenishment.Text = "Пополнение магазина";
+ shopReplenishment.UseVisualStyleBackColor = true;
+ shopReplenishment.Click += ShopReplenishment_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;
+ //
+ // заказыПоДатамToolStripMenuItem
+ //
+ заказыПоДатамToolStripMenuItem.Name = "заказыПоДатамToolStripMenuItem";
+ заказыПоДатамToolStripMenuItem.Size = new Size(276, 26);
+ заказыПоДатамToolStripMenuItem.Text = "Заказы по датам";
+ заказыПоДатамToolStripMenuItem.Click += списокЗаказовгруппировкаПоДатеToolStripMenuItem_Click;
+ //
+ // FormMain
+ //
+ AutoScaleDimensions = new SizeF(8F, 20F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(1077, 467);
+ Controls.Add(buttonRefresh);
+ Controls.Add(buttonIssuedOrder);
+ Controls.Add(buttonOrderReady);
+ Controls.Add(buttonTakeOrderInWork);
+ Controls.Add(buttonCreateOrder);
+ Controls.Add(dataGridView);
+ Controls.Add(menuStrip1);
+ Controls.Add(shopReplenishment);
+ MainMenuStrip = menuStrip1;
+ Margin = new Padding(3, 4, 3, 4);
+ Name = "FormMain";
+ Text = "Установка ПО";
+ Load += FormMain_Load;
+ menuStrip1.ResumeLayout(false);
+ menuStrip1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
+ ResumeLayout(false);
+ PerformLayout();
+ }
- #endregion
+ #endregion
- private MenuStrip menuStrip1;
+ private MenuStrip menuStrip1;
private ToolStripMenuItem справочникиToolStripMenuItem;
private ToolStripMenuItem компонентыToolStripMenuItem;
private ToolStripMenuItem изделияToolStripMenuItem;
@@ -223,9 +278,16 @@
private Button buttonOrderReady;
private Button buttonIssuedOrder;
private Button buttonRefresh;
+ private ToolStripMenuItem отчётыToolStripMenuItem;
+ private ToolStripMenuItem списокИзделийToolStripMenuItem;
+ private ToolStripMenuItem компонентыПоИзделиямToolStripMenuItem;
+ private ToolStripMenuItem списокЗаказовToolStripMenuItem;
private ToolStripMenuItem магазиныToolStripMenuItem;
private ToolStripMenuItem поставкиToolStripMenuItem;
private ToolStripMenuItem продажиToolStripMenuItem;
private Button shopReplenishment;
- }
+ private ToolStripMenuItem списокМагазиновToolStripMenuItem;
+ private ToolStripMenuItem загруженностьToolStripMenuItem;
+ private ToolStripMenuItem заказыПоДатамToolStripMenuItem;
+ }
}
\ No newline at end of file
diff --git a/SoftwareInstallation/SoftwareInstallation/FormMain.cs b/SoftwareInstallation/SoftwareInstallation/FormMain.cs
index e24bbc3..15aef57 100644
--- a/SoftwareInstallation/SoftwareInstallation/FormMain.cs
+++ b/SoftwareInstallation/SoftwareInstallation/FormMain.cs
@@ -1,5 +1,6 @@
using Microsoft.Extensions.Logging;
using SoftwareInstallation;
+using SoftwareInstallationBusinessLogic.BusinessLogics;
using SoftwareInstallationContracts.BindingModels;
using SoftwareInstallationContracts.BusinessLogicContracts;
using System;
@@ -14,182 +15,245 @@ using System.Windows.Forms;
namespace SoftwareInstallationView
{
- public partial class FormMain : Form
- {
- private readonly ILogger _logger;
- private readonly IOrderLogic _orderLogic;
- public FormMain(ILogger logger, IOrderLogic orderLogic)
- {
- InitializeComponent();
- _logger = logger;
- _orderLogic = orderLogic;
- LoadData();
- }
- private void FormMain_Load(object sender, EventArgs e)
- {
- LoadData();
- }
- private void LoadData()
- {
- _logger.LogInformation("Загрузка заказов");
+ public partial class FormMain : Form
+ {
+ private readonly ILogger _logger;
+ private readonly IOrderLogic _orderLogic;
+ private readonly IReportLogic _reportLogic;
+ public FormMain(ILogger logger, IOrderLogic orderLogic, IReportLogic reportLogic)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _orderLogic = orderLogic;
+ _reportLogic = reportLogic;
+ LoadData();
+ }
+ private void FormMain_Load(object sender, EventArgs e)
+ {
+ LoadData();
+ }
+ private void LoadData()
+ {
+ _logger.LogInformation("Загрузка заказов");
- try
- {
- var list = _orderLogic.ReadList(null);
+ try
+ {
+ var list = _orderLogic.ReadList(null);
- if (list != null)
- {
- dataGridView.DataSource = list;
- dataGridView.Columns["PackageId"].Visible = false;
- }
+ if (list != null)
+ {
+ dataGridView.DataSource = list;
+ dataGridView.Columns["PackageId"].Visible = false;
+ }
- _logger.LogInformation("Загрузка заказов");
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка загрузки заказов");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- private void ShopReplenishment_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormShopReplenishment));
+ _logger.LogInformation("Загрузка заказов");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки заказов");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ private void ShopReplenishment_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormShopReplenishment));
- if (service is FormShopReplenishment form)
- {
- form.ShowDialog();
- }
- }
- private void МагазиныToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormShops));
+ if (service is FormShopReplenishment form)
+ {
+ form.ShowDialog();
+ }
+ }
+ private void МагазиныToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormShops));
- if (service is FormShops form)
- {
- form.ShowDialog();
- }
- }
- 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(FormPackages));
+ if (service is FormShops form)
+ {
+ form.ShowDialog();
+ }
+ }
+ 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(FormPackages));
- if (service is FormPackages form)
- {
- form.ShowDialog();
- }
- }
+ if (service is FormPackages form)
+ {
+ form.ShowDialog();
+ }
+ }
- private void поставкиToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormShopReplenishment));
- if (service is FormShopReplenishment form)
- {
- form.ShowDialog();
- }
- }
+ private void поставкиToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormShopReplenishment));
+ if (service is FormShopReplenishment form)
+ {
+ form.ShowDialog();
+ }
+ }
- private void продажиToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormSellPackage));
- if (service is FormSellPackage form)
- {
- form.ShowDialog();
- }
- }
- private void ButtonCreateOrder_Click(object sender, EventArgs e)
- {
- var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder));
- if (service is FormCreateOrder form)
- {
- form.ShowDialog();
- LoadData();
- }
- }
- private void ButtonTakeOrderInWork_Click(object sender, EventArgs e)
- {
- if (dataGridView.SelectedRows.Count == 1)
- {
- int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
- _logger.LogInformation("Заказ №{id}. Меняется статус на 'В работе'", id);
- try
- {
- var operationResult = _orderLogic.TakeOrderInWork(new OrderBindingModel { Id = id });
- if (!operationResult)
- {
- throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
- }
- LoadData();
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка передачи заказа в работу");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
- MessageBoxIcon.Error);
- }
- }
- }
- private void ButtonOrderReady_Click(object sender, EventArgs e)
- {
- if (dataGridView.SelectedRows.Count == 1)
- {
- int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
- _logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'",
- id);
- try
- {
- var operationResult = _orderLogic.FinishOrder(new OrderBindingModel { Id = id });
- if (!operationResult)
- {
- throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
- }
- LoadData();
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка отметки о готовности заказа");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
- MessageBoxIcon.Error);
- }
- }
- }
- private void ButtonIssuedOrder_Click(object sender, EventArgs e)
- {
- if (dataGridView.SelectedRows.Count == 1)
- {
- int id =
- Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
- _logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'",
- id);
- try
- {
- var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel { Id = id });
- if (!operationResult)
- {
- throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
- }
- _logger.LogInformation("Заказ №{id} выдан", id);
- LoadData();
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Ошибка отметки о выдачи заказа");
- MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
- MessageBoxIcon.Error);
- }
- }
- }
- private void ButtonRef_Click(object sender, EventArgs e)
- {
- LoadData();
- }
- }
+ private void продажиToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormSellPackage));
+ if (service is FormSellPackage form)
+ {
+ form.ShowDialog();
+ }
+ }
+
+ private void списокИзделийToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ using var dialog = new SaveFileDialog { Filter = "docx|*.docx" };
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ _reportLogic.SavePackagesToWordFile(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(FormReportPackageComponents));
+ if (service is FormReportPackageComponents 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();
+ }
+ }
+
+ private void списокМагазиновToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ using var dialog = new SaveFileDialog { Filter = "docx|*.docx" };
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ _reportLogic.SaveShopsToWordFile(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(FormReportShopPackages));
+ if (service is FormReportShopPackages form)
+ {
+ form.ShowDialog();
+ }
+ }
+
+ private void списокЗаказовгруппировкаПоДатеToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormReportOrdersGroupByDate));
+ if (service is FormReportOrdersGroupByDate form)
+ {
+ form.ShowDialog();
+ }
+ }
+ private void ButtonCreateOrder_Click(object sender, EventArgs e)
+ {
+ var service = Program.ServiceProvider?.GetService(typeof(FormCreateOrder));
+ if (service is FormCreateOrder form)
+ {
+ form.ShowDialog();
+ LoadData();
+ }
+ }
+ private void ButtonTakeOrderInWork_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Заказ №{id}. Меняется статус на 'В работе'", id);
+ try
+ {
+ var operationResult = _orderLogic.TakeOrderInWork(new OrderBindingModel { Id = id });
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
+ }
+ LoadData();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка передачи заказа в работу");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void ButtonOrderReady_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ int id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Заказ №{id}. Меняется статус на 'Готов'",
+ id);
+ try
+ {
+ var operationResult = _orderLogic.FinishOrder(new OrderBindingModel { Id = id });
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
+ }
+ LoadData();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка отметки о готовности заказа");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void ButtonIssuedOrder_Click(object sender, EventArgs e)
+ {
+ if (dataGridView.SelectedRows.Count == 1)
+ {
+ int id =
+ Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
+ _logger.LogInformation("Заказ №{id}. Меняется статус на 'Выдан'",
+ id);
+ try
+ {
+ var operationResult = _orderLogic.DeliveryOrder(new OrderBindingModel { Id = id });
+ if (!operationResult)
+ {
+ throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
+ }
+ _logger.LogInformation("Заказ №{id} выдан", id);
+ LoadData();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка отметки о выдачи заказа");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
+ MessageBoxIcon.Error);
+ }
+ }
+ }
+ private void ButtonRef_Click(object sender, EventArgs e)
+ {
+ LoadData();
+ }
+ }
}
diff --git a/SoftwareInstallation/SoftwareInstallation/FormPackage.Designer.cs b/SoftwareInstallation/SoftwareInstallation/FormPackage.Designer.cs
index 157ef22..ec1cdb1 100644
--- a/SoftwareInstallation/SoftwareInstallation/FormPackage.Designer.cs
+++ b/SoftwareInstallation/SoftwareInstallation/FormPackage.Designer.cs
@@ -152,6 +152,7 @@
dataGridView.Name = "dataGridView";
dataGridView.RowHeadersVisible = false;
dataGridView.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
+ dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView.Size = new Size(505, 332);
dataGridView.TabIndex = 0;
//
diff --git a/SoftwareInstallation/SoftwareInstallation/FormPackages.Designer.cs b/SoftwareInstallation/SoftwareInstallation/FormPackages.Designer.cs
index f2c1f25..b7c7f30 100644
--- a/SoftwareInstallation/SoftwareInstallation/FormPackages.Designer.cs
+++ b/SoftwareInstallation/SoftwareInstallation/FormPackages.Designer.cs
@@ -44,6 +44,7 @@
dataGridView.Name = "dataGridView";
dataGridView.RowHeadersVisible = false;
dataGridView.RowHeadersWidth = 51;
+ dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView.Size = new Size(642, 660);
dataGridView.TabIndex = 0;
//
diff --git a/SoftwareInstallation/SoftwareInstallation/FormReportOrders.Designer.cs b/SoftwareInstallation/SoftwareInstallation/FormReportOrders.Designer.cs
new file mode 100644
index 0000000..20688fc
--- /dev/null
+++ b/SoftwareInstallation/SoftwareInstallation/FormReportOrders.Designer.cs
@@ -0,0 +1,131 @@
+namespace SoftwareInstallationView
+{
+ 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()
+ {
+ this.panel = new System.Windows.Forms.Panel();
+ this.labelFrom = new System.Windows.Forms.Label();
+ this.dateTimePickerFrom = new System.Windows.Forms.DateTimePicker();
+ this.dateTimePickerTo = new System.Windows.Forms.DateTimePicker();
+ this.labelTo = new System.Windows.Forms.Label();
+ this.buttonMake = new System.Windows.Forms.Button();
+ this.buttonToPDF = new System.Windows.Forms.Button();
+ this.panel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel
+ //
+ this.panel.Controls.Add(this.buttonToPDF);
+ this.panel.Controls.Add(this.buttonMake);
+ this.panel.Controls.Add(this.dateTimePickerTo);
+ this.panel.Controls.Add(this.labelTo);
+ this.panel.Controls.Add(this.dateTimePickerFrom);
+ this.panel.Controls.Add(this.labelFrom);
+ this.panel.Dock = System.Windows.Forms.DockStyle.Top;
+ this.panel.Location = new System.Drawing.Point(0, 0);
+ this.panel.Name = "panel";
+ this.panel.Size = new System.Drawing.Size(958, 52);
+ this.panel.TabIndex = 0;
+ //
+ // labelFrom
+ //
+ this.labelFrom.AutoSize = true;
+ this.labelFrom.Location = new System.Drawing.Point(12, 14);
+ this.labelFrom.Name = "labelFrom";
+ this.labelFrom.Size = new System.Drawing.Size(18, 20);
+ this.labelFrom.TabIndex = 0;
+ this.labelFrom.Text = "C";
+ //
+ // dateTimePickerFrom
+ //
+ this.dateTimePickerFrom.Location = new System.Drawing.Point(36, 9);
+ this.dateTimePickerFrom.Name = "dateTimePickerFrom";
+ this.dateTimePickerFrom.Size = new System.Drawing.Size(199, 27);
+ this.dateTimePickerFrom.TabIndex = 1;
+ //
+ // dateTimePickerTo
+ //
+ this.dateTimePickerTo.Location = new System.Drawing.Point(300, 9);
+ this.dateTimePickerTo.Name = "dateTimePickerTo";
+ this.dateTimePickerTo.Size = new System.Drawing.Size(199, 27);
+ this.dateTimePickerTo.TabIndex = 3;
+ //
+ // labelTo
+ //
+ this.labelTo.AutoSize = true;
+ this.labelTo.Location = new System.Drawing.Point(254, 14);
+ this.labelTo.Name = "labelTo";
+ this.labelTo.Size = new System.Drawing.Size(27, 20);
+ this.labelTo.TabIndex = 2;
+ this.labelTo.Text = "по";
+ //
+ // buttonMake
+ //
+ this.buttonMake.Location = new System.Drawing.Point(542, 10);
+ this.buttonMake.Name = "buttonMake";
+ this.buttonMake.Size = new System.Drawing.Size(165, 29);
+ this.buttonMake.TabIndex = 4;
+ this.buttonMake.Text = "Сформировать";
+ this.buttonMake.UseVisualStyleBackColor = true;
+ this.buttonMake.Click += new System.EventHandler(this.ButtonMake_Click);
+ //
+ // buttonToPDF
+ //
+ this.buttonToPDF.Location = new System.Drawing.Point(781, 9);
+ this.buttonToPDF.Name = "buttonToPDF";
+ this.buttonToPDF.Size = new System.Drawing.Size(165, 29);
+ this.buttonToPDF.TabIndex = 5;
+ this.buttonToPDF.Text = "В PDF";
+ this.buttonToPDF.UseVisualStyleBackColor = true;
+ this.buttonToPDF.Click += new System.EventHandler(this.ButtonToPdf_Click);
+ //
+ // FormReportOrders
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(958, 450);
+ this.Controls.Add(this.panel);
+ this.Name = "FormReportOrders";
+ this.Text = "Заказы";
+ this.panel.ResumeLayout(false);
+ this.panel.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private Panel panel;
+ private Button buttonToPDF;
+ private Button buttonMake;
+ private DateTimePicker dateTimePickerTo;
+ private Label labelTo;
+ private DateTimePicker dateTimePickerFrom;
+ private Label labelFrom;
+ }
+}
\ No newline at end of file
diff --git a/SoftwareInstallation/SoftwareInstallation/FormReportOrders.cs b/SoftwareInstallation/SoftwareInstallation/FormReportOrders.cs
new file mode 100644
index 0000000..939d523
--- /dev/null
+++ b/SoftwareInstallation/SoftwareInstallation/FormReportOrders.cs
@@ -0,0 +1,90 @@
+using Microsoft.Extensions.Logging;
+using Microsoft.Reporting.WinForms;
+using SoftwareInstallationContracts.BindingModels;
+using SoftwareInstallationContracts.BusinessLogicContracts;
+using System.Windows.Forms;
+
+namespace SoftwareInstallationView
+{
+ 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 = new DateTime(dateTimePickerFrom.Value.Year, dateTimePickerFrom.Value.Month, dateTimePickerFrom.Value.Day, 0, 0, 0),
+ DateTo = new DateTime(dateTimePickerTo.Value.Year, dateTimePickerTo.Value.Month, dateTimePickerTo.Value.Day, 23, 59, 59)
+ });
+ 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);
+ }
+ }
+ }
+ }
+}
diff --git a/SoftwareInstallation/SoftwareInstallation/FormReportOrders.resx b/SoftwareInstallation/SoftwareInstallation/FormReportOrders.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SoftwareInstallation/SoftwareInstallation/FormReportOrders.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/SoftwareInstallation/SoftwareInstallation/FormReportOrdersGroupByDate.Designer.cs b/SoftwareInstallation/SoftwareInstallation/FormReportOrdersGroupByDate.Designer.cs
new file mode 100644
index 0000000..88cf3f7
--- /dev/null
+++ b/SoftwareInstallation/SoftwareInstallation/FormReportOrdersGroupByDate.Designer.cs
@@ -0,0 +1,86 @@
+namespace SoftwareInstallationView
+{
+ partial class FormReportOrdersGroupByDate
+ {
+ ///
+ /// 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()
+ {
+ this.Panel = new System.Windows.Forms.Panel();
+ this.ToPdfButton = new System.Windows.Forms.Button();
+ this.MakeButton = new System.Windows.Forms.Button();
+ this.Panel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // Panel
+ //
+ this.Panel.Controls.Add(this.ToPdfButton);
+ this.Panel.Controls.Add(this.MakeButton);
+ this.Panel.Dock = System.Windows.Forms.DockStyle.Top;
+ this.Panel.Location = new System.Drawing.Point(0, 0);
+ this.Panel.Name = "Panel";
+ this.Panel.Size = new System.Drawing.Size(800, 38);
+ this.Panel.TabIndex = 0;
+ //
+ // ToPdfButton
+ //
+ this.ToPdfButton.Location = new System.Drawing.Point(142, 3);
+ this.ToPdfButton.Name = "ToPdfButton";
+ this.ToPdfButton.Size = new System.Drawing.Size(113, 32);
+ this.ToPdfButton.TabIndex = 1;
+ this.ToPdfButton.Text = "В Pdf";
+ this.ToPdfButton.UseVisualStyleBackColor = true;
+ this.ToPdfButton.Click += new System.EventHandler(this.ToPdfButton_Click);
+ //
+ // MakeButton
+ //
+ this.MakeButton.Location = new System.Drawing.Point(23, 3);
+ this.MakeButton.Name = "MakeButton";
+ this.MakeButton.Size = new System.Drawing.Size(113, 32);
+ this.MakeButton.TabIndex = 2;
+ this.MakeButton.Text = "Сформировать";
+ this.MakeButton.UseVisualStyleBackColor = true;
+ this.MakeButton.Click += new System.EventHandler(this.MakeButton_Click);
+ //
+ // FormReportOrdersGroupByDate
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(800, 450);
+ this.Controls.Add(this.Panel);
+ this.Name = "FormReportOrdersGroupByDate";
+ this.Text = "Заказы (группировка по дате)";
+ this.Panel.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private Panel Panel;
+ private Button ToPdfButton;
+ private Button MakeButton;
+ }
+}
\ No newline at end of file
diff --git a/SoftwareInstallation/SoftwareInstallation/FormReportOrdersGroupByDate.cs b/SoftwareInstallation/SoftwareInstallation/FormReportOrdersGroupByDate.cs
new file mode 100644
index 0000000..dcfb1c4
--- /dev/null
+++ b/SoftwareInstallation/SoftwareInstallation/FormReportOrdersGroupByDate.cs
@@ -0,0 +1,81 @@
+using Microsoft.Extensions.Logging;
+using Microsoft.Reporting.WinForms;
+using SoftwareInstallationContracts.BindingModels;
+using SoftwareInstallationContracts.BusinessLogicContracts;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace SoftwareInstallationView
+{
+ public partial class FormReportOrdersGroupByDate : Form
+ {
+ private readonly ReportViewer reportViewer;
+ private readonly ILogger _logger;
+ private readonly IReportLogic _logic;
+
+ public FormReportOrdersGroupByDate(ILogger logger, IReportLogic logic)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _logic = logic;
+ reportViewer = new ReportViewer
+ {
+ Dock = DockStyle.Fill
+ };
+ reportViewer.LocalReport.LoadReportDefinition(new FileStream("ReportOrdersGroupByDate.rdlc", FileMode.Open));
+ Controls.Clear();
+ Controls.Add(reportViewer);
+ Controls.Add(Panel);
+ }
+
+ private void MakeButton_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ var dataSource = _logic.GetOrdersGroupByDate();
+
+ var source = new ReportDataSource("DataSetOrders", dataSource);
+
+ reportViewer.LocalReport.DataSources.Clear();
+ reportViewer.LocalReport.DataSources.Add(source);
+
+ reportViewer.RefreshReport();
+ _logger.LogInformation("Загрузка списка заказов (группировка по дате)");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка загрузки списка заказов (группировка по дате)");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void ToPdfButton_Click(object sender, EventArgs e)
+ {
+ using var dialog = new SaveFileDialog { Filter = "pdf|*.pdf" };
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ try
+ {
+ _logic.SaveOrdersGroupByDateToPdfFile(new ReportBindingModel
+ {
+ FileName = dialog.FileName
+ });
+ _logger.LogInformation("Сохранение списка заказов");
+ MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка сохранения списка заказов");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ }
+}
diff --git a/SoftwareInstallation/SoftwareInstallation/FormReportOrdersGroupByDate.resx b/SoftwareInstallation/SoftwareInstallation/FormReportOrdersGroupByDate.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SoftwareInstallation/SoftwareInstallation/FormReportOrdersGroupByDate.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/SoftwareInstallation/SoftwareInstallation/FormReportPackageComponents.Designer.cs b/SoftwareInstallation/SoftwareInstallation/FormReportPackageComponents.Designer.cs
new file mode 100644
index 0000000..d11756b
--- /dev/null
+++ b/SoftwareInstallation/SoftwareInstallation/FormReportPackageComponents.Designer.cs
@@ -0,0 +1,106 @@
+namespace SoftwareInstallationView
+{
+ partial class FormReportPackageComponents
+ {
+ ///
+ /// 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()
+ {
+ dataGridView = new DataGridView();
+ saveToExcelButton = new Button();
+ Package1Column = new DataGridViewTextBoxColumn();
+ ComponentColumn = new DataGridViewTextBoxColumn();
+ CountColumn = new DataGridViewTextBoxColumn();
+ ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
+ SuspendLayout();
+ //
+ // dataGridView
+ //
+ dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ dataGridView.Columns.AddRange(new DataGridViewColumn[] { Package1Column, ComponentColumn, CountColumn });
+ dataGridView.Location = new Point(14, 51);
+ dataGridView.Margin = new Padding(3, 4, 3, 4);
+ dataGridView.Name = "dataGridView";
+ dataGridView.RowHeadersWidth = 51;
+ dataGridView.RowTemplate.Height = 25;
+ dataGridView.Size = new Size(694, 533);
+ dataGridView.TabIndex = 0;
+ //
+ // saveToExcelButton
+ //
+ saveToExcelButton.Location = new Point(14, 12);
+ saveToExcelButton.Margin = new Padding(3, 4, 3, 4);
+ saveToExcelButton.Name = "saveToExcelButton";
+ saveToExcelButton.Size = new Size(160, 31);
+ saveToExcelButton.TabIndex = 1;
+ saveToExcelButton.Text = "Сохранить в Excel";
+ saveToExcelButton.UseVisualStyleBackColor = true;
+ saveToExcelButton.Click += SaveToExcelButton_Click;
+ //
+ // Package1Column
+ //
+ Package1Column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
+ Package1Column.HeaderText = "Изделие";
+ Package1Column.MinimumWidth = 6;
+ Package1Column.Name = "Package1Column";
+ //
+ // ComponentColumn
+ //
+ ComponentColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
+ ComponentColumn.HeaderText = "Компонента";
+ ComponentColumn.MinimumWidth = 6;
+ ComponentColumn.Name = "ComponentColumn";
+ //
+ // CountColumn
+ //
+ CountColumn.HeaderText = "Количество";
+ CountColumn.MinimumWidth = 6;
+ CountColumn.Name = "CountColumn";
+ CountColumn.Width = 125;
+ //
+ // FormReportPackageComponents
+ //
+ AutoScaleDimensions = new SizeF(8F, 20F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(721, 600);
+ Controls.Add(saveToExcelButton);
+ Controls.Add(dataGridView);
+ Margin = new Padding(3, 4, 3, 4);
+ Name = "FormReportPackageComponents";
+ Text = "Компоненты по Изделиям";
+ Load += FormReportPackageComponents_Load;
+ ((System.ComponentModel.ISupportInitialize)dataGridView).EndInit();
+ ResumeLayout(false);
+ }
+
+ #endregion
+
+ private DataGridView dataGridView;
+ private Button saveToExcelButton;
+ private DataGridViewTextBoxColumn Package1Column;
+ private DataGridViewTextBoxColumn ComponentColumn;
+ private DataGridViewTextBoxColumn CountColumn;
+ }
+}
\ No newline at end of file
diff --git a/SoftwareInstallation/SoftwareInstallation/FormReportPackageComponents.cs b/SoftwareInstallation/SoftwareInstallation/FormReportPackageComponents.cs
new file mode 100644
index 0000000..b1c2d9f
--- /dev/null
+++ b/SoftwareInstallation/SoftwareInstallation/FormReportPackageComponents.cs
@@ -0,0 +1,80 @@
+using Microsoft.Extensions.Logging;
+using SoftwareInstallationContracts.BindingModels;
+using SoftwareInstallationContracts.BusinessLogicContracts;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace SoftwareInstallationView
+{
+ public partial class FormReportPackageComponents : Form
+ {
+ private readonly ILogger _logger;
+ private readonly IReportLogic _logic;
+ public FormReportPackageComponents(ILogger logger, IReportLogic logic)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _logic = logic;
+ }
+
+ private void SaveToExcelButton_Click(object sender, EventArgs e)
+ {
+ using var dialog = new SaveFileDialog
+ {
+ Filter = "xlsx|*.xlsx"
+ };
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ try
+ {
+ _logic.SavePackageComponentToExcelFile(new ReportBindingModel
+ {
+ FileName = dialog.FileName
+ });
+ _logger.LogInformation("Сохранение списка изделий по компонентам");
+ MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Ошибка сохранения списка изделий по компонентам");
+ MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ private void FormReportPackageComponents_Load(object sender, EventArgs e)
+ {
+ try
+ {
+ var dict = _logic.GetPackageComponent();
+ if (dict != null)
+ {
+ dataGridView.Rows.Clear();
+ foreach (var elem in dict)
+ {
+ dataGridView.Rows.Add(new object[] { elem.PackageName, "", "" });
+ foreach (var listElem in elem.Components)
+ {
+ dataGridView.Rows.Add(new object[] { "", listElem.Item1, listElem.Item2 });
+ }
+ dataGridView.Rows.Add(new object[] { "Итого", "", elem.TotalCount });
+ dataGridView.Rows.Add(Array.Empty