From b91e0c77453ff62291e6bc9c6a637d4364fedd66 Mon Sep 17 00:00:00 2001 From: Vladislave Date: Sun, 22 Dec 2024 19:50:59 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=B0=203=20=D0=B3=D0=BE?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=D0=B0=20=D0=B8=20=D1=81=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Enums/TempStartingShiftEmployee.cs | 16 + .../Entities/StartingShift.cs | 19 +- .../FormTransportation.Designer.cs | 64 +++- .../FormTransportation.cs | 133 +++++--- .../Forms/FormDirectoryReport.Designer.cs | 103 ++++++ .../Forms/FormDirectoryReport.cs | 53 +++ .../Forms/FormEmployee.Designer.cs | 52 ++- .../Forms/FormServiceReport.Designer.cs | 110 ++++++ .../Forms/FormServiceReport.cs | 61 ++++ .../Forms/FormStartingShift.cs | 21 +- .../Forms/FormWorkReport.Designer.cs | 189 ++++++++++ .../Forms/FormWorkReport.cs | 75 ++++ .../ProjectTransportation.csproj | 10 +- .../Reports/ChartReport.cs | 50 +++ .../Reports/DocReport.cs | 91 +++++ .../Reports/ExcelBuilder.cs | 322 ++++++++++++++++++ .../Reports/PdfBuilder.cs | 92 +++++ .../Reports/TableReport.cs | 78 +++++ .../Reports/WordBuilder.cs | 107 ++++++ .../StartingShiftRepository.cs | 10 +- .../ProjectTransportation/Resources/avto.jpg | Bin 0 -> 151195 bytes 21 files changed, 1538 insertions(+), 118 deletions(-) create mode 100644 ProjectTransportation/ProjectTransportation/Entities/Enums/TempStartingShiftEmployee.cs create mode 100644 ProjectTransportation/ProjectTransportation/Forms/FormDirectoryReport.Designer.cs create mode 100644 ProjectTransportation/ProjectTransportation/Forms/FormDirectoryReport.cs create mode 100644 ProjectTransportation/ProjectTransportation/Forms/FormServiceReport.Designer.cs create mode 100644 ProjectTransportation/ProjectTransportation/Forms/FormServiceReport.cs create mode 100644 ProjectTransportation/ProjectTransportation/Forms/FormWorkReport.Designer.cs create mode 100644 ProjectTransportation/ProjectTransportation/Forms/FormWorkReport.cs create mode 100644 ProjectTransportation/ProjectTransportation/Reports/ChartReport.cs create mode 100644 ProjectTransportation/ProjectTransportation/Reports/DocReport.cs create mode 100644 ProjectTransportation/ProjectTransportation/Reports/ExcelBuilder.cs create mode 100644 ProjectTransportation/ProjectTransportation/Reports/PdfBuilder.cs create mode 100644 ProjectTransportation/ProjectTransportation/Reports/TableReport.cs create mode 100644 ProjectTransportation/ProjectTransportation/Reports/WordBuilder.cs create mode 100644 ProjectTransportation/ProjectTransportation/Resources/avto.jpg diff --git a/ProjectTransportation/ProjectTransportation/Entities/Enums/TempStartingShiftEmployee.cs b/ProjectTransportation/ProjectTransportation/Entities/Enums/TempStartingShiftEmployee.cs new file mode 100644 index 0000000..57507db --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Entities/Enums/TempStartingShiftEmployee.cs @@ -0,0 +1,16 @@ +namespace ProjectTransportation.Entities; + +public class TempStartingShiftEmployee +{ + public int Starting_shift_id { get; private set; } + + public int Employee_id { get; private set; } + + public int Route_list_id { get; private set; } + + public int Bus_id { get; private set; } + + public DateTime Date { get; private set; } + + public int Work_time { get; private set; } +} diff --git a/ProjectTransportation/ProjectTransportation/Entities/StartingShift.cs b/ProjectTransportation/ProjectTransportation/Entities/StartingShift.cs index 6f03900..dc6b8c9 100644 --- a/ProjectTransportation/ProjectTransportation/Entities/StartingShift.cs +++ b/ProjectTransportation/ProjectTransportation/Entities/StartingShift.cs @@ -15,15 +15,28 @@ public class StartingShift public IEnumerable Starting_shift_employees { get; private set; } = []; public static StartingShift CreateOperation(int id, int routeListId, int busId, - IEnumerable startingShiftEmployees, DateTime date) + IEnumerable startingShiftEmployees) { return new StartingShift() { Id = id, - Date = date, + Date = DateTime.Now, Route_list_id = routeListId, Bus_id = busId, Starting_shift_employees = startingShiftEmployees }; } -} \ No newline at end of file + + public static StartingShift CreateOperation(TempStartingShiftEmployee tempStartingShiftEmployee, + IEnumerable startingShiftEmployee) + { + return new StartingShift + { + Id = tempStartingShiftEmployee.Starting_shift_id, + Date = tempStartingShiftEmployee.Date, + Route_list_id = tempStartingShiftEmployee.Route_list_id, + Bus_id = tempStartingShiftEmployee.Bus_id, + Starting_shift_employees = startingShiftEmployee + }; + } +} diff --git a/ProjectTransportation/ProjectTransportation/FormTransportation.Designer.cs b/ProjectTransportation/ProjectTransportation/FormTransportation.Designer.cs index 3ec8324..435b298 100644 --- a/ProjectTransportation/ProjectTransportation/FormTransportation.Designer.cs +++ b/ProjectTransportation/ProjectTransportation/FormTransportation.Designer.cs @@ -1,6 +1,5 @@ -using static System.Net.Mime.MediaTypeNames; -using System.Windows.Forms; -using System.Xml.Linq; +using DocumentFormat.OpenXml.Spreadsheet; +using DocumentFormat.OpenXml.Wordprocessing; namespace ProjectTransportation { @@ -41,6 +40,9 @@ namespace ProjectTransportation StartingShiftsToolStripMenuItem = new ToolStripMenuItem(); GoToServicesToolStripMenuItem = new ToolStripMenuItem(); отчётыToolStripMenuItem = new ToolStripMenuItem(); + directoryReportToolStripMenuItem = new ToolStripMenuItem(); + busesReportToolStripMenuItem = new ToolStripMenuItem(); + serviceReportToolStripMenuItem = new ToolStripMenuItem(); menuStrip1.SuspendLayout(); SuspendLayout(); // @@ -50,8 +52,7 @@ namespace ProjectTransportation menuStrip1.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, операцииToolStripMenuItem, отчётыToolStripMenuItem }); menuStrip1.Location = new Point(0, 0); menuStrip1.Name = "menuStrip1"; - menuStrip1.Padding = new Padding(4, 1, 0, 1); - menuStrip1.Size = new Size(739, 26); + menuStrip1.Size = new Size(976, 38); menuStrip1.TabIndex = 0; menuStrip1.Text = "menuStrip1"; // @@ -59,27 +60,27 @@ namespace ProjectTransportation // справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { EmployeesToolStripMenuItem, BusesToolStripMenuItem, RouteListsToolStripMenuItem }); справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem"; - справочникиToolStripMenuItem.Size = new Size(117, 24); + справочникиToolStripMenuItem.Size = new Size(160, 34); справочникиToolStripMenuItem.Text = "Справочники"; // // EmployeesToolStripMenuItem // EmployeesToolStripMenuItem.Name = "EmployeesToolStripMenuItem"; - EmployeesToolStripMenuItem.Size = new Size(167, 26); + EmployeesToolStripMenuItem.Size = new Size(236, 40); EmployeesToolStripMenuItem.Text = "Работники"; EmployeesToolStripMenuItem.Click += EmployeesToolStripMenuItem_Click; // // BusesToolStripMenuItem // BusesToolStripMenuItem.Name = "BusesToolStripMenuItem"; - BusesToolStripMenuItem.Size = new Size(167, 26); + BusesToolStripMenuItem.Size = new Size(236, 40); BusesToolStripMenuItem.Text = "Автобусы"; BusesToolStripMenuItem.Click += BusesToolStripMenuItem_Click; // // RouteListsToolStripMenuItem // RouteListsToolStripMenuItem.Name = "RouteListsToolStripMenuItem"; - RouteListsToolStripMenuItem.Size = new Size(167, 26); + RouteListsToolStripMenuItem.Size = new Size(236, 40); RouteListsToolStripMenuItem.Text = "Маршруты"; RouteListsToolStripMenuItem.Click += RouteListsToolStripMenuItem_Click; // @@ -87,40 +88,64 @@ namespace ProjectTransportation // операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { StartingShiftsToolStripMenuItem, GoToServicesToolStripMenuItem }); операцииToolStripMenuItem.Name = "операцииToolStripMenuItem"; - операцииToolStripMenuItem.Size = new Size(95, 24); + операцииToolStripMenuItem.Size = new Size(130, 34); операцииToolStripMenuItem.Text = "Операции"; // // StartingShiftsToolStripMenuItem // StartingShiftsToolStripMenuItem.Name = "StartingShiftsToolStripMenuItem"; - StartingShiftsToolStripMenuItem.Size = new Size(224, 26); + StartingShiftsToolStripMenuItem.Size = new Size(314, 40); StartingShiftsToolStripMenuItem.Text = "Начало смены"; StartingShiftsToolStripMenuItem.Click += StartingShiftsToolStripMenuItem_Click; // // GoToServicesToolStripMenuItem // GoToServicesToolStripMenuItem.Name = "GoToServicesToolStripMenuItem"; - GoToServicesToolStripMenuItem.Size = new Size(224, 26); + GoToServicesToolStripMenuItem.Size = new Size(314, 40); GoToServicesToolStripMenuItem.Text = "Тех. обслуживание"; GoToServicesToolStripMenuItem.Click += GoToServicesToolStripMenuItem_Click; // // отчётыToolStripMenuItem // + отчётыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { directoryReportToolStripMenuItem, busesReportToolStripMenuItem, serviceReportToolStripMenuItem }); отчётыToolStripMenuItem.Name = "отчётыToolStripMenuItem"; - отчётыToolStripMenuItem.Size = new Size(73, 24); + отчётыToolStripMenuItem.Size = new Size(103, 34); отчётыToolStripMenuItem.Text = "Отчёты"; // - // FormTransportation + // directoryReportToolStripMenuItem // - AutoScaleDimensions = new SizeF(8F, 20F); + directoryReportToolStripMenuItem.Name = "directoryReportToolStripMenuItem"; + directoryReportToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.W; + directoryReportToolStripMenuItem.Size = new Size(517, 40); + directoryReportToolStripMenuItem.Text = "Документ со справочниками"; + directoryReportToolStripMenuItem.Click += DirectoryReportToolStripMenuItem_Click; + // + // busesReportToolStripMenuItem + // + busesReportToolStripMenuItem.Name = "busesReportToolStripMenuItem"; + busesReportToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.E; + busesReportToolStripMenuItem.Size = new Size(517, 40); + busesReportToolStripMenuItem.Text = "Работа сотрудников и автобусов"; + busesReportToolStripMenuItem.Click += BusesReportToolStripMenuItem_Click; + // + // serviceReportToolStripMenuItem + // + serviceReportToolStripMenuItem.Name = "serviceReportToolStripMenuItem"; + serviceReportToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.P; + serviceReportToolStripMenuItem.Size = new Size(517, 40); + serviceReportToolStripMenuItem.Text = "Сломанные элементы"; + serviceReportToolStripMenuItem.Click += ServiceReportToolStripMenuItem_Click; + // + // FormPassengerTransportation + // + AutoScaleDimensions = new SizeF(12F, 30F); AutoScaleMode = AutoScaleMode.Font; BackgroundImage = Properties.Resources._1; BackgroundImageLayout = ImageLayout.Stretch; - ClientSize = new Size(739, 424); + ClientSize = new Size(976, 636); Controls.Add(menuStrip1); MainMenuStrip = menuStrip1; - Margin = new Padding(2, 2, 2, 2); - Name = "FormTransportation"; + Name = "FormPassengerTransportation"; StartPosition = FormStartPosition.CenterScreen; Text = "Пассажирские перевозки"; menuStrip1.ResumeLayout(false); @@ -140,5 +165,8 @@ namespace ProjectTransportation private ToolStripMenuItem отчётыToolStripMenuItem; private ToolStripMenuItem StartingShiftsToolStripMenuItem; private ToolStripMenuItem GoToServicesToolStripMenuItem; + private ToolStripMenuItem directoryReportToolStripMenuItem; + private ToolStripMenuItem busesReportToolStripMenuItem; + private ToolStripMenuItem serviceReportToolStripMenuItem; } } diff --git a/ProjectTransportation/ProjectTransportation/FormTransportation.cs b/ProjectTransportation/ProjectTransportation/FormTransportation.cs index 13e56bf..ea1aee2 100644 --- a/ProjectTransportation/ProjectTransportation/FormTransportation.cs +++ b/ProjectTransportation/ProjectTransportation/FormTransportation.cs @@ -1,4 +1,5 @@ using ProjectTransportation.Forms; +using ProjectTransportation.Forms; using Unity; namespace ProjectTransportation @@ -7,70 +8,106 @@ namespace ProjectTransportation { private readonly IUnityContainer _container; - public FormTransportation(IUnityContainer container) - { - InitializeComponent(); - _container = container ?? throw new ArgumentNullException(nameof(container)); - } + public FormTransportation(IUnityContainer container) + { + InitializeComponent(); + _container = container ?? throw new ArgumentNullException(nameof(container)); + } - private void EmployeesToolStripMenuItem_Click(object sender, EventArgs e) - { - try + private void EmployeesToolStripMenuItem_Click(object sender, EventArgs e) { - _container.Resolve().ShowDialog(); + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } - catch (Exception ex) - { - MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - private void BusesToolStripMenuItem_Click(object sender, EventArgs e) - { - try + private void BusesToolStripMenuItem_Click(object sender, EventArgs e) { - _container.Resolve().ShowDialog(); + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } - catch (Exception ex) - { - MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - private void RouteListsToolStripMenuItem_Click(object sender, EventArgs e) - { - try + private void RouteListsToolStripMenuItem_Click(object sender, EventArgs e) { - _container.Resolve().ShowDialog(); + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } - catch (Exception ex) - { - MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - private void StartingShiftsToolStripMenuItem_Click(object sender, EventArgs e) - { - try + private void StartingShiftsToolStripMenuItem_Click(object sender, EventArgs e) { - _container.Resolve().ShowDialog(); + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } - catch (Exception ex) - { - MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - private void GoToServicesToolStripMenuItem_Click(object sender, EventArgs e) - { - try + private void GoToServicesToolStripMenuItem_Click(object sender, EventArgs e) { - _container.Resolve().ShowDialog(); + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } - catch (Exception ex) + + private void DirectoryReportToolStripMenuItem_Click(object sender, EventArgs e) { - MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void BusesReportToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ServiceReportToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } } } -} diff --git a/ProjectTransportation/ProjectTransportation/Forms/FormDirectoryReport.Designer.cs b/ProjectTransportation/ProjectTransportation/Forms/FormDirectoryReport.Designer.cs new file mode 100644 index 0000000..f75e149 --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Forms/FormDirectoryReport.Designer.cs @@ -0,0 +1,103 @@ +using static System.Net.Mime.MediaTypeNames; +using System.Windows.Forms; +using System.Xml.Linq; + +namespace ProjectTransportation.Forms +{ + partial class FormDirectoryReport + { + /// + /// 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() + { + checkBoxBuses = new CheckBox(); + checkBoxEmployees = new CheckBox(); + checkBoxRouteLists = new CheckBox(); + buttonBuild = new Button(); + SuspendLayout(); + // + // checkBoxBuses + // + checkBoxBuses.AutoSize = true; + checkBoxBuses.Location = new Point(69, 43); + checkBoxBuses.Name = "checkBoxBuses"; + checkBoxBuses.Size = new Size(132, 34); + checkBoxBuses.TabIndex = 0; + checkBoxBuses.Text = "Автобусы"; + checkBoxBuses.UseVisualStyleBackColor = true; + // + // checkBoxEmployees + // + checkBoxEmployees.AutoSize = true; + checkBoxEmployees.Location = new Point(69, 109); + checkBoxEmployees.Name = "checkBoxEmployees"; + checkBoxEmployees.Size = new Size(141, 34); + checkBoxEmployees.TabIndex = 1; + checkBoxEmployees.Text = "Работники"; + checkBoxEmployees.UseVisualStyleBackColor = true; + // + // checkBoxRouteLists + // + checkBoxRouteLists.AutoSize = true; + checkBoxRouteLists.Location = new Point(69, 176); + checkBoxRouteLists.Name = "checkBoxRouteLists"; + checkBoxRouteLists.Size = new Size(230, 34); + checkBoxRouteLists.TabIndex = 2; + checkBoxRouteLists.Text = "Маршрутные листы"; + checkBoxRouteLists.UseVisualStyleBackColor = true; + // + // buttonBuild + // + buttonBuild.Location = new Point(369, 99); + buttonBuild.Name = "buttonBuild"; + buttonBuild.Size = new Size(181, 53); + buttonBuild.TabIndex = 3; + buttonBuild.Text = "Сформировать"; + buttonBuild.UseVisualStyleBackColor = true; + buttonBuild.Click += ButtonBuild_Click; + // + // FormDirectoryReport + // + AutoScaleDimensions = new SizeF(12F, 30F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(616, 256); + Controls.Add(buttonBuild); + Controls.Add(checkBoxRouteLists); + Controls.Add(checkBoxEmployees); + Controls.Add(checkBoxBuses); + Name = "FormDirectoryReport"; + Text = "Выгрузка справочников"; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private CheckBox checkBoxBuses; + private CheckBox checkBoxEmployees; + private CheckBox checkBoxRouteLists; + private Button buttonBuild; + } +} \ No newline at end of file diff --git a/ProjectTransportation/ProjectTransportation/Forms/FormDirectoryReport.cs b/ProjectTransportation/ProjectTransportation/Forms/FormDirectoryReport.cs new file mode 100644 index 0000000..9e443d8 --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Forms/FormDirectoryReport.cs @@ -0,0 +1,53 @@ +using ProjectTransportation.Reports; +using Unity; + +namespace ProjectTransportation.Forms +{ + public partial class FormDirectoryReport : Form + { + private readonly IUnityContainer _container; + + public FormDirectoryReport(IUnityContainer container) + { + InitializeComponent(); + _container = container ?? throw new ArgumentNullException(nameof(container)); + } + + private void ButtonBuild_Click(object sender, EventArgs e) + { + try + { + if (!checkBoxBuses.Checked && !checkBoxEmployees.Checked && !checkBoxRouteLists.Checked) + { + throw new Exception("Не выбран ни один справочник для выгрузки"); + } + + var sfd = new SaveFileDialog() + { + Filter = "Docx Files | *.docx" + }; + + if (sfd.ShowDialog() != DialogResult.OK) + { + throw new Exception("Не выбран файла для отчета"); + } + + if (_container.Resolve().CreateDoc(sfd.FileName, checkBoxBuses.Checked, + checkBoxEmployees.Checked, checkBoxRouteLists.Checked)) + { + MessageBox.Show("Документ сформирован", "Формирование документа", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Возникли ошибки при формировании документа.Подробности в логах", + "Формирование документа", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при создании отчета", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/ProjectTransportation/ProjectTransportation/Forms/FormEmployee.Designer.cs b/ProjectTransportation/ProjectTransportation/Forms/FormEmployee.Designer.cs index b0a44bc..cdbf803 100644 --- a/ProjectTransportation/ProjectTransportation/Forms/FormEmployee.Designer.cs +++ b/ProjectTransportation/ProjectTransportation/Forms/FormEmployee.Designer.cs @@ -1,6 +1,5 @@ -using static System.Net.Mime.MediaTypeNames; -using System.Windows.Forms; -using System.Xml.Linq; +using DocumentFormat.OpenXml.Spreadsheet; +using DocumentFormat.OpenXml.Wordprocessing; namespace ProjectTransportation.Forms { @@ -46,19 +45,17 @@ namespace ProjectTransportation.Forms // comboBoxPost.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxPost.FormattingEnabled = true; - comboBoxPost.Location = new Point(155, 111); - comboBoxPost.Margin = new Padding(2, 2, 2, 2); + comboBoxPost.Location = new Point(232, 166); comboBoxPost.Name = "comboBoxPost"; - comboBoxPost.Size = new Size(161, 28); + comboBoxPost.Size = new Size(240, 38); comboBoxPost.TabIndex = 0; // // buttonCancel // buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonCancel.Location = new Point(214, 163); - buttonCancel.Margin = new Padding(2, 2, 2, 2); + buttonCancel.Location = new Point(297, 224); buttonCancel.Name = "buttonCancel"; - buttonCancel.Size = new Size(90, 33); + buttonCancel.Size = new Size(135, 50); buttonCancel.TabIndex = 14; buttonCancel.Text = "Отмена"; buttonCancel.UseVisualStyleBackColor = true; @@ -67,10 +64,9 @@ namespace ProjectTransportation.Forms // buttonSave // buttonSave.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; - buttonSave.Location = new Point(53, 163); - buttonSave.Margin = new Padding(2, 2, 2, 2); + buttonSave.Location = new Point(80, 224); buttonSave.Name = "buttonSave"; - buttonSave.Size = new Size(99, 33); + buttonSave.Size = new Size(135, 50); buttonSave.TabIndex = 13; buttonSave.Text = "Сохранить"; buttonSave.UseVisualStyleBackColor = true; @@ -78,56 +74,51 @@ namespace ProjectTransportation.Forms // // textBoxLastName // - textBoxLastName.Location = new Point(155, 63); - textBoxLastName.Margin = new Padding(2, 2, 2, 2); + textBoxLastName.Location = new Point(232, 94); textBoxLastName.Name = "textBoxLastName"; - textBoxLastName.Size = new Size(161, 27); + textBoxLastName.Size = new Size(240, 35); textBoxLastName.TabIndex = 11; // // labelLastName // labelLastName.AutoSize = true; - labelLastName.Location = new Point(19, 65); - labelLastName.Margin = new Padding(2, 0, 2, 0); + labelLastName.Location = new Point(28, 97); labelLastName.Name = "labelLastName"; - labelLastName.Size = new Size(73, 20); + labelLastName.Size = new Size(100, 30); labelLastName.TabIndex = 10; labelLastName.Text = "Фамилия"; // // textBoxFirstName // - textBoxFirstName.Location = new Point(155, 19); - textBoxFirstName.Margin = new Padding(2, 2, 2, 2); + textBoxFirstName.Location = new Point(232, 29); textBoxFirstName.MaxLength = 10; textBoxFirstName.Name = "textBoxFirstName"; - textBoxFirstName.Size = new Size(161, 27); + textBoxFirstName.Size = new Size(240, 35); textBoxFirstName.TabIndex = 9; // // labelFirstName // labelFirstName.AutoSize = true; - labelFirstName.Location = new Point(19, 21); - labelFirstName.Margin = new Padding(2, 0, 2, 0); + labelFirstName.Location = new Point(28, 32); labelFirstName.Name = "labelFirstName"; - labelFirstName.Size = new Size(39, 20); + labelFirstName.Size = new Size(55, 30); labelFirstName.TabIndex = 8; labelFirstName.Text = "Имя"; // // labelPost // labelPost.AutoSize = true; - labelPost.Location = new Point(19, 113); - labelPost.Margin = new Padding(2, 0, 2, 0); + labelPost.Location = new Point(28, 169); labelPost.Name = "labelPost"; - labelPost.Size = new Size(86, 20); + labelPost.Size = new Size(121, 30); labelPost.TabIndex = 15; labelPost.Text = "Должность"; // // FormEmployee // - AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleDimensions = new SizeF(12F, 30F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(353, 211); + ClientSize = new Size(506, 296); Controls.Add(labelPost); Controls.Add(buttonCancel); Controls.Add(buttonSave); @@ -136,10 +127,9 @@ namespace ProjectTransportation.Forms Controls.Add(textBoxFirstName); Controls.Add(labelFirstName); Controls.Add(comboBoxPost); - Margin = new Padding(2, 2, 2, 2); Name = "FormEmployee"; StartPosition = FormStartPosition.CenterParent; - Text = "FormEmployee"; + Text = "Сотрудник"; ResumeLayout(false); PerformLayout(); } diff --git a/ProjectTransportation/ProjectTransportation/Forms/FormServiceReport.Designer.cs b/ProjectTransportation/ProjectTransportation/Forms/FormServiceReport.Designer.cs new file mode 100644 index 0000000..9bab9c7 --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Forms/FormServiceReport.Designer.cs @@ -0,0 +1,110 @@ +using DocumentFormat.OpenXml.Spreadsheet; +using DocumentFormat.OpenXml.Wordprocessing; + +namespace ProjectTransportation.Forms +{ + partial class FormServiceReport + { + /// + /// 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() + { + buttonSelectFile = new Button(); + labelFileName = new Label(); + dateTimePicker = new DateTimePicker(); + labelDate = new Label(); + buttonMakeReport = new Button(); + SuspendLayout(); + // + // buttonSelectFile + // + buttonSelectFile.Location = new Point(36, 36); + buttonSelectFile.Name = "buttonSelectFile"; + buttonSelectFile.Size = new Size(131, 40); + buttonSelectFile.TabIndex = 0; + buttonSelectFile.Text = "Выбрать"; + buttonSelectFile.UseVisualStyleBackColor = true; + buttonSelectFile.Click += ButtonSelectFile_Click; + // + // labelFileName + // + labelFileName.AutoSize = true; + labelFileName.Location = new Point(195, 41); + labelFileName.Name = "labelFileName"; + labelFileName.Size = new Size(62, 30); + labelFileName.TabIndex = 1; + labelFileName.Text = "Файл"; + // + // dateTimePicker + // + dateTimePicker.Location = new Point(144, 127); + dateTimePicker.Name = "dateTimePicker"; + dateTimePicker.Size = new Size(311, 35); + dateTimePicker.TabIndex = 2; + // + // labelDate + // + labelDate.AutoSize = true; + labelDate.Location = new Point(49, 131); + labelDate.Name = "labelDate"; + labelDate.Size = new Size(64, 30); + labelDate.TabIndex = 3; + labelDate.Text = "Дата:"; + // + // buttonMakeReport + // + buttonMakeReport.Location = new Point(168, 205); + buttonMakeReport.Name = "buttonMakeReport"; + buttonMakeReport.Size = new Size(178, 46); + buttonMakeReport.TabIndex = 4; + buttonMakeReport.Text = "Сформировать"; + buttonMakeReport.UseVisualStyleBackColor = true; + buttonMakeReport.Click += ButtonMakeReport_Click; + // + // FormServiceReport + // + AutoScaleDimensions = new SizeF(12F, 30F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(511, 276); + Controls.Add(buttonMakeReport); + Controls.Add(labelDate); + Controls.Add(dateTimePicker); + Controls.Add(labelFileName); + Controls.Add(buttonSelectFile); + Name = "FormServiceReport"; + Text = "Отчет по тех обслуживанию"; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Button buttonSelectFile; + private Label labelFileName; + private DateTimePicker dateTimePicker; + private Label labelDate; + private Button buttonMakeReport; + } +} \ No newline at end of file diff --git a/ProjectTransportation/ProjectTransportation/Forms/FormServiceReport.cs b/ProjectTransportation/ProjectTransportation/Forms/FormServiceReport.cs new file mode 100644 index 0000000..eab1759 --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Forms/FormServiceReport.cs @@ -0,0 +1,61 @@ +using ProjectTransportation.Reports; +using System.Windows.Forms; +using Unity; + +namespace ProjectTransportation.Forms +{ + public partial class FormServiceReport : Form + { + private string _fileName = string.Empty; + + private readonly IUnityContainer _container; + + public FormServiceReport(IUnityContainer container) + { + InitializeComponent(); + _container = container ?? throw new ArgumentNullException(nameof(container)); + } + + private void ButtonSelectFile_Click(object sender, EventArgs e) + { + var sfd = new SaveFileDialog() + { + Filter = "Pdf Files | *.pdf" + }; + + if (sfd.ShowDialog() == DialogResult.OK) + { + _fileName = sfd.FileName; + labelFileName.Text = Path.GetFileName(_fileName); + } + } + + private void ButtonMakeReport_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(_fileName)) + { + throw new Exception("Отсутствует имя файла отчета"); + } + + if + (_container.Resolve().CreateChart(_fileName, dateTimePicker.Value)) + { + MessageBox.Show("Документ сформирован", "Формирование документа", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Возникли ошибки при формировании документа.Подробности в логах", + "Формирование документа", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при создании очета", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/ProjectTransportation/ProjectTransportation/Forms/FormStartingShift.cs b/ProjectTransportation/ProjectTransportation/Forms/FormStartingShift.cs index 464e2d3..8edb76b 100644 --- a/ProjectTransportation/ProjectTransportation/Forms/FormStartingShift.cs +++ b/ProjectTransportation/ProjectTransportation/Forms/FormStartingShift.cs @@ -2,6 +2,7 @@ using ProjectTransportation.Repositories; using ProjectTransportation.Entities; using ProjectTransportation.Repositories; +using System.Linq; namespace ProjectTransportation.Forms { @@ -31,19 +32,16 @@ namespace ProjectTransportation.Forms try { if (dataGridViewEmployees.RowCount < 1 || - comboBoxRouteList.SelectedIndex < 0 || - comboBoxBus.SelectedIndex < 0) + comboBoxRouteList.SelectedIndex < 0 || + comboBoxBus.SelectedIndex < 0) { throw new Exception("Имеются незаполненные поля"); } - DateTime selectedDate = dateTimePickerShiftDate.Value.Date; // Получаем выбранную дату - _startingShiftRepository.CreateStartingShift(StartingShift.CreateOperation(0, - (int)comboBoxRouteList.SelectedValue!, - (int)comboBoxBus.SelectedValue!, - CreateListStartingShiftEmployeeFromDataGrid(), - selectedDate)); // Передаем выбранную дату + (int)comboBoxRouteList.SelectedValue!, + (int)comboBoxBus.SelectedValue!, + CreateListStartingShiftEmployeeFromDataGrid())); Close(); } @@ -66,10 +64,11 @@ namespace ProjectTransportation.Forms continue; } list.Add(StartingShiftEmployee.CreateElement(0, - Convert.ToInt32(row.Cells["ColumnEmployees"].Value), - Convert.ToInt32(row.Cells["ColumnWorkHours"].Value))); + Convert.ToInt32(row.Cells["ColumnEmployees"].Value), + Convert.ToInt32(row.Cells["ColumnWorkHours"].Value))); } - return list; + return list.GroupBy(x => x.Employee_id, x => x.Work_time, (employeeId, workTime) => + StartingShiftEmployee.CreateElement(0, employeeId, workTime.Sum())).ToList(); } } } diff --git a/ProjectTransportation/ProjectTransportation/Forms/FormWorkReport.Designer.cs b/ProjectTransportation/ProjectTransportation/Forms/FormWorkReport.Designer.cs new file mode 100644 index 0000000..feea788 --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Forms/FormWorkReport.Designer.cs @@ -0,0 +1,189 @@ +using DocumentFormat.OpenXml.Spreadsheet; +using DocumentFormat.OpenXml.Wordprocessing; + +namespace ProjectTransportation.Forms +{ + partial class FormWorkReport + { + /// + /// 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() + { + labelFilePath = new Label(); + textBoxFilePath = new TextBox(); + buttonSelectFilePath = new Button(); + dateTimePickerBeginDate = new DateTimePicker(); + dateTimePickerEndDate = new DateTimePicker(); + labelEmployee = new Label(); + labelBeginDate = new Label(); + labelEndDate = new Label(); + buttonMakeReport = new Button(); + comboBoxEmployee = new ComboBox(); + comboBoxBus = new ComboBox(); + labelBus = new Label(); + SuspendLayout(); + // + // labelFilePath + // + labelFilePath.AutoSize = true; + labelFilePath.Location = new Point(23, 37); + labelFilePath.Name = "labelFilePath"; + labelFilePath.Size = new Size(157, 30); + labelFilePath.TabIndex = 0; + labelFilePath.Text = "Путь до файла:"; + // + // textBoxFilePath + // + textBoxFilePath.Location = new Point(203, 37); + textBoxFilePath.Name = "textBoxFilePath"; + textBoxFilePath.ReadOnly = true; + textBoxFilePath.Size = new Size(361, 35); + textBoxFilePath.TabIndex = 1; + // + // buttonSelectFilePath + // + buttonSelectFilePath.Location = new Point(570, 32); + buttonSelectFilePath.Name = "buttonSelectFilePath"; + buttonSelectFilePath.Size = new Size(40, 40); + buttonSelectFilePath.TabIndex = 2; + buttonSelectFilePath.Text = "..."; + buttonSelectFilePath.UseVisualStyleBackColor = true; + buttonSelectFilePath.Click += ButtonSelectFilePath_Click; + // + // dateTimePickerBeginDate + // + dateTimePickerBeginDate.Location = new Point(203, 271); + dateTimePickerBeginDate.Name = "dateTimePickerBeginDate"; + dateTimePickerBeginDate.Size = new Size(407, 35); + dateTimePickerBeginDate.TabIndex = 4; + // + // dateTimePickerEndDate + // + dateTimePickerEndDate.Location = new Point(203, 343); + dateTimePickerEndDate.Name = "dateTimePickerEndDate"; + dateTimePickerEndDate.Size = new Size(407, 35); + dateTimePickerEndDate.TabIndex = 5; + // + // labelEmployee + // + labelEmployee.AutoSize = true; + labelEmployee.Location = new Point(23, 117); + labelEmployee.Name = "labelEmployee"; + labelEmployee.Size = new Size(103, 30); + labelEmployee.TabIndex = 6; + labelEmployee.Text = "Работник"; + // + // labelBeginDate + // + labelBeginDate.AutoSize = true; + labelBeginDate.Location = new Point(23, 275); + labelBeginDate.Name = "labelBeginDate"; + labelBeginDate.Size = new Size(133, 30); + labelBeginDate.TabIndex = 7; + labelBeginDate.Text = "Дата начала"; + // + // labelEndDate + // + labelEndDate.AutoSize = true; + labelEndDate.Location = new Point(23, 347); + labelEndDate.Name = "labelEndDate"; + labelEndDate.Size = new Size(123, 30); + labelEndDate.TabIndex = 8; + labelEndDate.Text = "Дата конца"; + // + // buttonMakeReport + // + buttonMakeReport.Location = new Point(203, 410); + buttonMakeReport.Name = "buttonMakeReport"; + buttonMakeReport.Size = new Size(177, 40); + buttonMakeReport.TabIndex = 9; + buttonMakeReport.Text = "Сформировать"; + buttonMakeReport.UseVisualStyleBackColor = true; + buttonMakeReport.Click += ButtonMakeReport_Click; + // + // comboBoxEmployee + // + comboBoxEmployee.FormattingEnabled = true; + comboBoxEmployee.Location = new Point(203, 114); + comboBoxEmployee.Name = "comboBoxEmployee"; + comboBoxEmployee.Size = new Size(407, 38); + comboBoxEmployee.TabIndex = 10; + // + // comboBoxBus + // + comboBoxBus.FormattingEnabled = true; + comboBoxBus.Location = new Point(203, 191); + comboBoxBus.Name = "comboBoxBus"; + comboBoxBus.Size = new Size(407, 38); + comboBoxBus.TabIndex = 12; + // + // labelBus + // + labelBus.AutoSize = true; + labelBus.Location = new Point(23, 194); + labelBus.Name = "labelBus"; + labelBus.Size = new Size(91, 30); + labelBus.TabIndex = 11; + labelBus.Text = "Автобус"; + // + // FormWorkReport + // + AutoScaleDimensions = new SizeF(12F, 30F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(646, 466); + Controls.Add(comboBoxBus); + Controls.Add(labelBus); + Controls.Add(comboBoxEmployee); + Controls.Add(buttonMakeReport); + Controls.Add(labelEndDate); + Controls.Add(labelBeginDate); + Controls.Add(labelEmployee); + Controls.Add(dateTimePickerEndDate); + Controls.Add(dateTimePickerBeginDate); + Controls.Add(buttonSelectFilePath); + Controls.Add(textBoxFilePath); + Controls.Add(labelFilePath); + Name = "FormWorkReport"; + Text = "Отчёт по работе сотрудников и автобусов"; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label labelFilePath; + private TextBox textBoxFilePath; + private Button buttonSelectFilePath; + private DateTimePicker dateTimePickerBeginDate; + private DateTimePicker dateTimePickerEndDate; + private Label labelEmployee; + private Label labelBeginDate; + private Label labelEndDate; + private Button buttonMakeReport; + private ComboBox comboBoxEmployee; + private ComboBox comboBoxBus; + private Label labelBus; + } +} \ No newline at end of file diff --git a/ProjectTransportation/ProjectTransportation/Forms/FormWorkReport.cs b/ProjectTransportation/ProjectTransportation/Forms/FormWorkReport.cs new file mode 100644 index 0000000..92d5809 --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Forms/FormWorkReport.cs @@ -0,0 +1,75 @@ +using ProjectTransportation.Reports; +using ProjectTransportation.Repositories; +using ProjectTransportation.Reports; +using ProjectTransportation.Repositories; +using Unity; + +namespace ProjectTransportation.Forms +{ + public partial class FormWorkReport : Form + { + private readonly IUnityContainer _container; + + public FormWorkReport(IUnityContainer container, IEmployeeRepository employeeRepository, + IBusRepository busRepository) + { + InitializeComponent(); + _container = container ?? throw new ArgumentNullException(nameof(container)); + comboBoxEmployee.DataSource = employeeRepository.ReadEmployees(); + comboBoxEmployee.DisplayMember = "First_name"; + comboBoxEmployee.ValueMember = "Id"; + comboBoxBus.DataSource = busRepository.ReadBuses(); + comboBoxBus.DisplayMember = "Licence_plate"; + comboBoxBus.ValueMember = "Id"; + } + + private void ButtonSelectFilePath_Click(object sender, EventArgs e) + { + var sfd = new SaveFileDialog() + { + Filter = "Excel Files | *.xlsx" + }; + if (sfd.ShowDialog() != DialogResult.OK) + { + return; + } + textBoxFilePath.Text = sfd.FileName; + } + + private void ButtonMakeReport_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(textBoxFilePath.Text)) + { + throw new Exception("Отсутствует имя файла для отчета"); + } + if (comboBoxEmployee.SelectedIndex < 0 || comboBoxBus.SelectedIndex < 0) + { + throw new Exception("Не выбран сотрудник или автобус"); + } + if (dateTimePickerEndDate.Value <= dateTimePickerBeginDate.Value) + { + throw new Exception("Дата начала должна быть раньше даты окончания"); + } + if (_container.Resolve().CreateTable(textBoxFilePath.Text, + (int)comboBoxEmployee.SelectedValue!, (int)comboBoxBus.SelectedValue!, + dateTimePickerBeginDate.Value, dateTimePickerEndDate.Value)) + { + MessageBox.Show("Документ сформирован", "Формирование документа", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Возникли ошибки при формировании документа.Подробности в логах", + "Формирование документа", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при создании очета", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/ProjectTransportation/ProjectTransportation/ProjectTransportation.csproj b/ProjectTransportation/ProjectTransportation/ProjectTransportation.csproj index 0c90c97..b27237b 100644 --- a/ProjectTransportation/ProjectTransportation/ProjectTransportation.csproj +++ b/ProjectTransportation/ProjectTransportation/ProjectTransportation.csproj @@ -10,14 +10,16 @@ + - - - - + + + + + diff --git a/ProjectTransportation/ProjectTransportation/Reports/ChartReport.cs b/ProjectTransportation/ProjectTransportation/Reports/ChartReport.cs new file mode 100644 index 0000000..69194a7 --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Reports/ChartReport.cs @@ -0,0 +1,50 @@ +using Microsoft.Extensions.Logging; +using ProjectTransportation.Repositories; +using ProjectTransportation.Repositories; +using System.Reflection.PortableExecutable; + +namespace ProjectTransportation.Reports; + +public class ChartReport +{ + private readonly IGoToServiceRepository _goToServiceRepository; + + private readonly ILogger _logger; + + public ChartReport(IGoToServiceRepository goToServiceRepository, ILogger logger) + { + _goToServiceRepository = goToServiceRepository ?? throw new ArgumentNullException(nameof(goToServiceRepository)); + _logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public bool CreateChart(string filePath, DateTime dateTime) + { + try + { + new PdfBuilder(filePath) + .AddHeader("Тех обслуживание") + .AddPieChart("Количество неисправных элементов", GetData(dateTime)) + .Build(); + + return true; + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка при формировании документа"); + return false; + } + } + + private List<(string Caption, double Value)> GetData(DateTime dateTime) + { + return _goToServiceRepository + .ReadServices() + .Where(x => x.Date.Date == dateTime.Date) + .GroupBy(x => x.Bus_id, (key, group) => new { + Id = key, + Elements = group.Sum(x => (double)x.Broken_elements) + }) + .Select(x => (x.Id.ToString(), (double)x.Elements)) + .ToList(); + } +} diff --git a/ProjectTransportation/ProjectTransportation/Reports/DocReport.cs b/ProjectTransportation/ProjectTransportation/Reports/DocReport.cs new file mode 100644 index 0000000..7482dcc --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Reports/DocReport.cs @@ -0,0 +1,91 @@ +using Microsoft.Extensions.Logging; +using ProjectTransportation.Repositories; +using ProjectTransportation.Repositories; + +namespace ProjectTransportation.Reports; + +public class DocReport +{ + private readonly IBusRepository _busRepository; + + private readonly IEmployeeRepository _employeeRepository; + + private readonly IRouteListRepository _routeListRepository; + + private readonly ILogger _logger; + + public DocReport(IBusRepository busRepository, IEmployeeRepository employeeRepository, + IRouteListRepository routeListRepository, ILogger logger) + { + _busRepository = busRepository ?? throw new ArgumentNullException(nameof(busRepository)); + _employeeRepository = employeeRepository ?? throw new ArgumentNullException(nameof(employeeRepository)); + _routeListRepository = routeListRepository ?? throw new ArgumentNullException(nameof(routeListRepository)); + _logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public bool CreateDoc(string filePath, bool includeBuses, bool includeEmployees, bool includeRouteLists) + { + try + { + var builder = new WordBuilder(filePath) + .AddHeader("Документ со справочниками"); + + if (includeBuses) + { + builder.AddParagraph("Автобусы") + .AddTable([2400, 2400], GetBuses()); + } + + if (includeEmployees) + { + builder.AddParagraph("Работники") + .AddTable([2400, 2400, 2400], GetEmployess()); + } + + if (includeRouteLists) + { + builder.AddParagraph("Маршрутные листы") + .AddTable([1200, 1200], GetRouteLists()); + } + + builder.Build(); + + return true; + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка при формировании документа"); + return false; + } + } + + private List GetBuses() + { + return [ + ["Госномер", "Модель"], + .. _busRepository + .ReadBuses() + .Select(x => new string[] { x.Licence_plate, x.Model }), + ]; + } + + private List GetEmployess() + { + return [ + ["Имя", "Фамилия", "Должность"], + .. _employeeRepository + .ReadEmployees() + .Select(x => new string[] { x.First_name, x.Last_name, x.Post.ToString() }), + ]; + } + + private List GetRouteLists() + { + return [ + ["Начало работы", "Конец работы"], + .. _routeListRepository + .ReadRouteLists() + .Select(x => new string[] { x.Route_start.ToString(), x.Route_finish.ToString() }), + ]; + } +} diff --git a/ProjectTransportation/ProjectTransportation/Reports/ExcelBuilder.cs b/ProjectTransportation/ProjectTransportation/Reports/ExcelBuilder.cs new file mode 100644 index 0000000..98004d2 --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Reports/ExcelBuilder.cs @@ -0,0 +1,322 @@ +using DocumentFormat.OpenXml.Packaging; +using DocumentFormat.OpenXml.Spreadsheet; +using DocumentFormat.OpenXml; + +namespace ProjectTransportation.Reports; + +public class ExcelBuilder +{ + private readonly string _filePath; + + private readonly SheetData _sheetData; + + private readonly MergeCells _mergeCells; + + private readonly Columns _columns; + + private uint _rowIndex = 0; + + public ExcelBuilder(string filePath) + { + if (string.IsNullOrWhiteSpace(filePath)) + { + throw new ArgumentNullException(nameof(filePath)); + } + + if (File.Exists(filePath)) + { + File.Delete(filePath); + } + + _filePath = filePath; + _sheetData = new SheetData(); + _mergeCells = new MergeCells(); + _columns = new Columns(); + _rowIndex = 1; + } + + public ExcelBuilder AddHeader(string header, int startIndex, int count) + { + CreateCell(startIndex, _rowIndex, header, StyleIndex.BoldTextWithoutBorder); + for (int i = startIndex + 1; i < startIndex + count; ++i) + { + CreateCell(i, _rowIndex, "", StyleIndex.SimpleTextWithoutBorder); + } + + _mergeCells.Append(new MergeCell() + { + Reference = + new StringValue($"{GetExcelColumnName(startIndex)}{_rowIndex}:{GetExcelColumnName(startIndex + count - 1)}{_rowIndex}") + }); + + _rowIndex++; + return this; + } + + public ExcelBuilder AddParagraph(string text, int columnIndex) + { + CreateCell(columnIndex, _rowIndex++, text, StyleIndex.SimpleTextWithoutBorder); + return this; + } + + public ExcelBuilder AddTable(int[] columnsWidths, List data) + { + if (columnsWidths == null || columnsWidths.Length == 0) + { + throw new ArgumentNullException(nameof(columnsWidths)); + } + + if (data == null || data.Count == 0) + { + throw new ArgumentNullException(nameof(data)); + } + + if (data.Any(x => x.Length != columnsWidths.Length)) + { + throw new InvalidOperationException("widths.Length != data.Length"); + } + + uint counter = 1; + int coef = 2; + _columns.Append(columnsWidths.Select(x => new Column + { + Min = counter, + Max = counter++, + Width = x * coef, + CustomWidth = true + })); + + for (var j = 0; j < data.First().Length; ++j) + { + CreateCell(j, _rowIndex, data.First()[j], StyleIndex.BoldTextWithBorder); + } + + _rowIndex++; + for (var i = 1; i < data.Count - 1; ++i) + { + for (var j = 0; j < data[i].Length; ++j) + { + CreateCell(j, _rowIndex, data[i][j], StyleIndex.SimpleTextWithBorder); + } + + _rowIndex++; + } + + for (var j = 0; j < data.Last().Length; ++j) + { + CreateCell(j, _rowIndex, data.Last()[j], StyleIndex.BoldTextWithBorder); + } + + _rowIndex++; + return this; + } + + public void Build() + { + using var spreadsheetDocument = SpreadsheetDocument.Create(_filePath, SpreadsheetDocumentType.Workbook); + var workbookpart = spreadsheetDocument.AddWorkbookPart(); + GenerateStyle(workbookpart); + workbookpart.Workbook = new Workbook(); + var worksheetPart = workbookpart.AddNewPart(); + worksheetPart.Worksheet = new Worksheet(); + if (_columns.HasChildren) + { + worksheetPart.Worksheet.Append(_columns); + } + + worksheetPart.Worksheet.Append(_sheetData); + var sheets = spreadsheetDocument.WorkbookPart!.Workbook.AppendChild(new Sheets()); + var sheet = new Sheet() + { + Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), + SheetId = 1, + Name = "Лист 1" + }; + + sheets.Append(sheet); + if (_mergeCells.HasChildren) + { + worksheetPart.Worksheet.InsertAfter(_mergeCells, worksheetPart.Worksheet.Elements().First()); + } + } + + private static void GenerateStyle(WorkbookPart workbookPart) + { + var workbookStylesPart = workbookPart.AddNewPart(); + workbookStylesPart.Stylesheet = new Stylesheet(); + + var fonts = new Fonts() { Count = 2, KnownFonts = BooleanValue.FromBoolean(true) }; + fonts.Append(new DocumentFormat.OpenXml.Spreadsheet.Font + { + FontSize = new FontSize() { Val = 11 }, + FontName = new FontName() { Val = "Calibri" }, + FontFamilyNumbering = new FontFamilyNumbering() { Val = 2 }, + FontScheme = new FontScheme() { Val = new EnumValue(FontSchemeValues.Minor) } + }); + fonts.Append(new DocumentFormat.OpenXml.Spreadsheet.Font + { + FontSize = new FontSize() { Val = 11 }, + FontName = new FontName() { Val = "Calibri" }, + FontFamilyNumbering = new FontFamilyNumbering() { Val = 2 }, + FontScheme = new FontScheme() + { + Val = new EnumValue(FontSchemeValues.Minor) + }, + Bold = new Bold() { Val = true } + }); + workbookStylesPart.Stylesheet.Append(fonts); + + // Default Fill + var fills = new Fills() { Count = 1 }; + fills.Append(new Fill + { + PatternFill = new PatternFill() + { + PatternType = new EnumValue(PatternValues.None) + } + }); + workbookStylesPart.Stylesheet.Append(fills); + + // Default Border + var borders = new Borders() { Count = 2 }; + borders.Append(new Border + { + LeftBorder = new LeftBorder(), + RightBorder = new RightBorder(), + TopBorder = new TopBorder(), + BottomBorder = new BottomBorder(), + DiagonalBorder = new DiagonalBorder() + }); + borders.Append(new Border + { + LeftBorder = new LeftBorder() { Style = BorderStyleValues.Thin }, + RightBorder = new RightBorder() { Style = BorderStyleValues.Thin }, + TopBorder = new TopBorder() { Style = BorderStyleValues.Thin }, + BottomBorder = new BottomBorder() { Style = BorderStyleValues.Thin }, + DiagonalBorder = new DiagonalBorder() + }); + workbookStylesPart.Stylesheet.Append(borders); + + // Default cell format and a date cell format + var cellFormats = new CellFormats() { Count = 4 }; + cellFormats.Append(new CellFormat + { + NumberFormatId = 0, + FormatId = 0, + FontId = 0, + BorderId = 0, + FillId = 0, + Alignment = new Alignment() + { + Horizontal = HorizontalAlignmentValues.Left, + Vertical = VerticalAlignmentValues.Center, + WrapText = true + } + }); + cellFormats.Append(new CellFormat + { + NumberFormatId = 0, + FormatId = 0, + FontId = 0, + BorderId = 1, + FillId = 0, + Alignment = new Alignment() + { + Horizontal = HorizontalAlignmentValues.Right, + Vertical = VerticalAlignmentValues.Center, + WrapText = true + } + }); + cellFormats.Append(new CellFormat + { + NumberFormatId = 0, + FormatId = 0, + FontId = 1, + BorderId = 0, + FillId = 0, + Alignment = new Alignment() + { + Horizontal = HorizontalAlignmentValues.Center, + Vertical = VerticalAlignmentValues.Center, + WrapText = true + } + }); + cellFormats.Append(new CellFormat + { + NumberFormatId = 0, + FormatId = 0, + FontId = 1, + BorderId = 1, + FillId = 0, + Alignment = new Alignment() + { + Horizontal = HorizontalAlignmentValues.Center, + Vertical = VerticalAlignmentValues.Center, + WrapText = true + } + }); + workbookStylesPart.Stylesheet.Append(cellFormats); + } + + private enum StyleIndex + { + SimpleTextWithoutBorder = 0, + SimpleTextWithBorder = 1, + BoldTextWithoutBorder = 2, + BoldTextWithBorder = 3 + } + + private void CreateCell(int columnIndex, uint rowIndex, string text, StyleIndex styleIndex) + { + var columnName = GetExcelColumnName(columnIndex); + var cellReference = columnName + rowIndex; + var row = _sheetData.Elements().FirstOrDefault(r => r.RowIndex! == rowIndex); + if (row == null) + { + row = new Row() { RowIndex = rowIndex }; + _sheetData.Append(row); + } + + var newCell = row.Elements() + .FirstOrDefault(c => c.CellReference != null && c.CellReference.Value == columnName + rowIndex); + if (newCell == null) + { + Cell? refCell = null; + foreach (Cell cell in row.Elements()) + { + if (cell.CellReference?.Value != null && cell.CellReference.Value.Length == cellReference.Length) + { + if (string.Compare(cell.CellReference.Value, cellReference, true) > 0) + { + refCell = cell; + break; + } + } + } + + newCell = new Cell() { CellReference = cellReference }; + row.InsertBefore(newCell, refCell); + } + + newCell.CellValue = new CellValue(text); + newCell.DataType = CellValues.String; + newCell.StyleIndex = (uint)styleIndex; + } + + private static string GetExcelColumnName(int columnNumber) + { + columnNumber += 1; + int dividend = columnNumber; + string columnName = string.Empty; + int modulo; + + while (dividend > 0) + { + modulo = (dividend - 1) % 26; + columnName = Convert.ToChar(65 + modulo).ToString() + columnName; + dividend = (dividend - modulo) / 26; + } + + return columnName; + } +} diff --git a/ProjectTransportation/ProjectTransportation/Reports/PdfBuilder.cs b/ProjectTransportation/ProjectTransportation/Reports/PdfBuilder.cs new file mode 100644 index 0000000..0792b13 --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Reports/PdfBuilder.cs @@ -0,0 +1,92 @@ +using MigraDoc.DocumentObjectModel; +using MigraDoc.DocumentObjectModel.Shapes.Charts; +using MigraDoc.Rendering; +using System.Text; + +namespace ProjectTransportation.Reports; + +public class PdfBuilder +{ + private readonly string _filePath; + + private readonly Document _document; + + public PdfBuilder(string filePath) + { + if (string.IsNullOrWhiteSpace(filePath)) + { + throw new ArgumentNullException(nameof(filePath)); + } + + if (File.Exists(filePath)) + { + File.Delete(filePath); + } + + _filePath = filePath; + _document = new Document(); + DefineStyles(); + } + + public PdfBuilder AddHeader(string header) + { + _document.AddSection().AddParagraph(header, "NormalBold"); + return this; + } + + public PdfBuilder AddPieChart(string title, List<(string Caption, double Value)> data) + { + if (data == null || data.Count == 0) + { + return this; + } + + var chart = new Chart(ChartType.Pie2D); + var series = chart.SeriesCollection.AddSeries(); + series.Add(data.Select(x => x.Value).ToArray()); + + var xseries = chart.XValues.AddXSeries(); + xseries.Add(data.Select(x => x.Caption).ToArray()); + + chart.DataLabel.Type = DataLabelType.Percent; + chart.DataLabel.Position = DataLabelPosition.OutsideEnd; + + chart.Width = Unit.FromCentimeter(16); + chart.Height = Unit.FromCentimeter(12); + + chart.TopArea.AddParagraph(title); + + chart.XAxis.MajorTickMark = TickMarkType.Outside; + + chart.YAxis.MajorTickMark = TickMarkType.Outside; + chart.YAxis.HasMajorGridlines = true; + + chart.PlotArea.LineFormat.Width = 1; + chart.PlotArea.LineFormat.Visible = true; + + chart.TopArea.AddLegend(); + + _document.LastSection.Add(chart); + + return this; + } + + public void Build() + { + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + var renderer = new PdfDocumentRenderer(true) + { + Document = _document + }; + + renderer.RenderDocument(); + renderer.PdfDocument.Save(_filePath); + } + + private void DefineStyles() + { + var headerStyle = _document.Styles.AddStyle("NormalBold", "Normal"); + headerStyle.Font.Bold = true; + headerStyle.Font.Size = 14; + } +} diff --git a/ProjectTransportation/ProjectTransportation/Reports/TableReport.cs b/ProjectTransportation/ProjectTransportation/Reports/TableReport.cs new file mode 100644 index 0000000..a2b8edf --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Reports/TableReport.cs @@ -0,0 +1,78 @@ +using Microsoft.Extensions.Logging; +using ProjectTransportation.Repositories; +using ProjectTransportation.Reports; +using ProjectTransportation.Repositories; + +namespace ProjectTransportation.Reports; + +public class TableReport +{ + private readonly IStartingShiftRepository _startingShiftRepository; + + private readonly IGoToServiceRepository _goToServiceRepository; + + private readonly ILogger _logger; + + internal static readonly string[] item = ["Работник", "Автобус", "Дата", "Отработано часов", "Потрачено на тех обслуживание"]; + + public TableReport(IStartingShiftRepository startingShiftRepository, + IGoToServiceRepository goToServiceRepository, ILogger logger) + { + _startingShiftRepository = startingShiftRepository ?? throw new ArgumentNullException(nameof(startingShiftRepository)); + _goToServiceRepository = goToServiceRepository ?? throw new ArgumentNullException(nameof(goToServiceRepository)); + _logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public bool CreateTable(string filePath, int employeeId, int busId, DateTime startDate, DateTime endDate) + { + try + { + new ExcelBuilder(filePath) + .AddHeader("Таблица по работникам и автобусам", 0, 5) + .AddParagraph("за период", 0) + .AddTable([10, 10, 10, 15, 15], GetData(employeeId, busId, startDate, endDate)) + .Build(); + return true; + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка при формировании документа"); + return false; + } + } + + private List GetData(int employeeId, int busId, DateTime startDate, DateTime endDate) + { + var data = _startingShiftRepository + .ReadShifts() + .Where(x => x.Date >= startDate && x.Date <= endDate && x.Starting_shift_employees.Any(y => y.Employee_id == employeeId)) + .Select(x => new { + EmployeeId = (int?)employeeId, + BusId = (int?)null, + x.Date, + WorkHours = x.Starting_shift_employees.FirstOrDefault(y => y.Employee_id == employeeId)?.Work_time, + Price = (int?)null + }) + .Union(_goToServiceRepository + .ReadServices() + .Where(x => x.Date >= startDate && x.Date <= endDate && x.Bus_id == busId) + .Select(x => new { + EmployeeId = (int?)null, + BusId = (int?)busId, + x.Date, + WorkHours = (int?)null, + Price = (int?)x.Price + })) + .OrderBy(x => x.Date); + return new List() { item } + .Union(data + .Select(x => new string[] { + x.EmployeeId.ToString() ?? string.Empty, + x.BusId.ToString() ?? string.Empty, + x.Date.ToString(), + x.WorkHours?.ToString() ?? string.Empty, + x.Price?.ToString() ?? string.Empty})) + .Union([["Всего", "", "", data.Sum(x => x.WorkHours ?? 0).ToString(), data.Sum(x => x.Price ?? 0).ToString()]]) + .ToList(); + } +} diff --git a/ProjectTransportation/ProjectTransportation/Reports/WordBuilder.cs b/ProjectTransportation/ProjectTransportation/Reports/WordBuilder.cs new file mode 100644 index 0000000..9b8c09e --- /dev/null +++ b/ProjectTransportation/ProjectTransportation/Reports/WordBuilder.cs @@ -0,0 +1,107 @@ +using DocumentFormat.OpenXml.Packaging; +using DocumentFormat.OpenXml.Wordprocessing; +using DocumentFormat.OpenXml; + +namespace ProjectTransportation.Reports; + +public class WordBuilder +{ + private readonly string _filePath; + + private readonly Document _document; + + private readonly Body _body; + + public WordBuilder(string filePath) + { + if (string.IsNullOrWhiteSpace(filePath)) + { + throw new ArgumentNullException(nameof(filePath)); + } + if (File.Exists(filePath)) + { + File.Delete(filePath); + } + + _filePath = filePath; + _document = new Document(); + _body = _document.AppendChild(new Body()); + } + + public WordBuilder AddHeader(string header) + { + var paragraph = _body.AppendChild(new Paragraph()); + var run = paragraph.AppendChild(new Run()); + + var runProperties = run.AppendChild(new RunProperties()); + runProperties.AppendChild(new Bold()); + + run.AppendChild(new Text(header)); + + return this; + } + + public WordBuilder AddParagraph(string text) + { + var paragraph = _body.AppendChild(new Paragraph()); + var run = paragraph.AppendChild(new Run()); + run.AppendChild(new Text(text)); + + return this; + } + + public WordBuilder AddTable(int[] widths, List data) + { + if (widths == null || widths.Length == 0) + { + throw new ArgumentNullException(nameof(widths)); + } + + if (data == null || data.Count == 0) + { + throw new ArgumentNullException(nameof(data)); + } + + if (data.Any(x => x.Length != widths.Length)) + { + throw new InvalidOperationException("widths.Length != data.Length"); + } + + var table = new Table(); + table.AppendChild(new TableProperties( + new TableBorders( + new TopBorder() { Val = new EnumValue(BorderValues.Single), Size = 12 }, + new BottomBorder() { Val = new EnumValue(BorderValues.Single), Size = 12 }, + new LeftBorder() { Val = new EnumValue(BorderValues.Single), Size = 12 }, + new RightBorder() { Val = new EnumValue(BorderValues.Single), Size = 12 }, + new InsideHorizontalBorder() { Val = new EnumValue(BorderValues.Single), Size = 12 }, + new InsideVerticalBorder() { Val = new EnumValue(BorderValues.Single), Size = 12 } + ) + )); + + // Заголовок + var tr = new TableRow(); + for (var j = 0; j < widths.Length; ++j) + { + tr.Append(new TableCell( + new TableCellProperties(new TableCellWidth() { Width = widths[j].ToString() }), + new Paragraph(new Run(new RunProperties(new Bold()), new Text(data.First()[j]))))); + } + table.Append(tr); + + // Данные + table.Append(data.Skip(1).Select(x => + new TableRow(x.Select(y => new TableCell(new Paragraph(new Run(new Text(y)))))))); + + _body.Append(table); + + return this; + } + + public void Build() + { + using var wordDocument = WordprocessingDocument.Create(_filePath, WordprocessingDocumentType.Document); + var mainPart = wordDocument.AddMainDocumentPart(); + mainPart.Document = _document; + } +} diff --git a/ProjectTransportation/ProjectTransportation/Repositories/Implementations/StartingShiftRepository.cs b/ProjectTransportation/ProjectTransportation/Repositories/Implementations/StartingShiftRepository.cs index 217327c..e2042d2 100644 --- a/ProjectTransportation/ProjectTransportation/Repositories/Implementations/StartingShiftRepository.cs +++ b/ProjectTransportation/ProjectTransportation/Repositories/Implementations/StartingShiftRepository.cs @@ -58,10 +58,14 @@ VALUES (@Starting_shift_id, @Employee_id, @Work_time)"; try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = @"SELECT * FROM starting_shift"; - var startingShifts = connection.Query(querySelect); + var querySelect = @" +SELECT sse.starting_shift_id, ss.date, ss.route_list_id, ss.bus_id, sse.employee_id, sse.work_time FROM starting_shift ss +INNER JOIN starting_shift_employee sse ON sse.starting_shift_id = ss.id"; + var startingShifts = connection.Query(querySelect); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(startingShifts)); - return startingShifts; + return startingShifts.GroupBy(x => x.Starting_shift_id, y => y, + (key, value) => StartingShift.CreateOperation(value.First(), + value.Select(z => StartingShiftEmployee.CreateElement(0, z.Employee_id, z.Work_time)))).ToList(); } catch (Exception ex) { diff --git a/ProjectTransportation/ProjectTransportation/Resources/avto.jpg b/ProjectTransportation/ProjectTransportation/Resources/avto.jpg new file mode 100644 index 0000000000000000000000000000000000000000..62580e863aa85b694044d47c9cba02072e7edbf1 GIT binary patch literal 151195 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