This commit is contained in:
shadowik 2023-04-20 10:16:51 +04:00
parent 442ebcea15
commit 5c684836d6
6 changed files with 14 additions and 85 deletions

View File

@ -31,10 +31,6 @@
this.panel = new System.Windows.Forms.Panel(); this.panel = new System.Windows.Forms.Panel();
this.buttonToPDF = new System.Windows.Forms.Button(); this.buttonToPDF = new System.Windows.Forms.Button();
this.buttonMake = new System.Windows.Forms.Button(); this.buttonMake = new System.Windows.Forms.Button();
this.dateTimePickerTo = new System.Windows.Forms.DateTimePicker();
this.labelTo = new System.Windows.Forms.Label();
this.dateTimePickerFrom = new System.Windows.Forms.DateTimePicker();
this.labelFrom = new System.Windows.Forms.Label();
this.panel.SuspendLayout(); this.panel.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
@ -42,10 +38,6 @@
// //
this.panel.Controls.Add(this.buttonToPDF); this.panel.Controls.Add(this.buttonToPDF);
this.panel.Controls.Add(this.buttonMake); 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.Dock = System.Windows.Forms.DockStyle.Top;
this.panel.Location = new System.Drawing.Point(0, 0); this.panel.Location = new System.Drawing.Point(0, 0);
this.panel.Name = "panel"; this.panel.Name = "panel";
@ -54,9 +46,9 @@
// //
// buttonToPDF // buttonToPDF
// //
this.buttonToPDF.Location = new System.Drawing.Point(781, 9); this.buttonToPDF.Location = new System.Drawing.Point(486, 12);
this.buttonToPDF.Name = "buttonToPDF"; this.buttonToPDF.Name = "buttonToPDF";
this.buttonToPDF.Size = new System.Drawing.Size(165, 29); this.buttonToPDF.Size = new System.Drawing.Size(411, 29);
this.buttonToPDF.TabIndex = 5; this.buttonToPDF.TabIndex = 5;
this.buttonToPDF.Text = "В PDF"; this.buttonToPDF.Text = "В PDF";
this.buttonToPDF.UseVisualStyleBackColor = true; this.buttonToPDF.UseVisualStyleBackColor = true;
@ -64,46 +56,14 @@
// //
// buttonMake // buttonMake
// //
this.buttonMake.Location = new System.Drawing.Point(542, 10); this.buttonMake.Location = new System.Drawing.Point(49, 12);
this.buttonMake.Name = "buttonMake"; this.buttonMake.Name = "buttonMake";
this.buttonMake.Size = new System.Drawing.Size(165, 29); this.buttonMake.Size = new System.Drawing.Size(377, 29);
this.buttonMake.TabIndex = 4; this.buttonMake.TabIndex = 4;
this.buttonMake.Text = "Сформировать"; this.buttonMake.Text = "Сформировать";
this.buttonMake.UseVisualStyleBackColor = true; this.buttonMake.UseVisualStyleBackColor = true;
this.buttonMake.Click += new System.EventHandler(this.ButtonMake_Click); this.buttonMake.Click += new System.EventHandler(this.ButtonMake_Click);
// //
// 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 = "по";
//
// 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;
//
// 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";
//
// FormReportGroupedOrders // FormReportGroupedOrders
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
@ -113,7 +73,6 @@
this.Name = "FormReportGroupedOrders"; this.Name = "FormReportGroupedOrders";
this.Text = "Отчёт по группированным заказам "; this.Text = "Отчёт по группированным заказам ";
this.panel.ResumeLayout(false); this.panel.ResumeLayout(false);
this.panel.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
@ -123,9 +82,5 @@
private Panel panel; private Panel panel;
private Button buttonToPDF; private Button buttonToPDF;
private Button buttonMake; private Button buttonMake;
private DateTimePicker dateTimePickerTo;
private Label labelTo;
private DateTimePicker dateTimePickerFrom;
private Label labelFrom;
} }
} }

View File

@ -36,27 +36,15 @@ namespace PizzeriaView
} }
private void ButtonMake_Click(object sender, EventArgs e) private void ButtonMake_Click(object sender, EventArgs e)
{ {
if (dateTimePickerFrom.Value.Date >= dateTimePickerTo.Value.Date)
{
MessageBox.Show("Дата начала должна быть меньше даты окончания", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
try try
{ {
var dataSource = _logic.GetGroupedOrders(new ReportBindingModel var dataSource = _logic.GetGroupedOrders();
{
DateFrom = dateTimePickerFrom.Value,
DateTo = dateTimePickerTo.Value
});
var source = new ReportDataSource("DataSetGroupedOrders", dataSource); var source = new ReportDataSource("DataSetGroupedOrders", dataSource);
reportViewer.LocalReport.DataSources.Clear(); reportViewer.LocalReport.DataSources.Clear();
reportViewer.LocalReport.DataSources.Add(source); reportViewer.LocalReport.DataSources.Add(source);
var parameters = new[] { new ReportParameter("ReportParameterPeriod",
$"c {dateTimePickerFrom.Value.ToShortDateString()} по {dateTimePickerTo.Value.ToShortDateString()}") };
reportViewer.LocalReport.SetParameters(parameters);
reportViewer.RefreshReport(); reportViewer.RefreshReport();
_logger.LogInformation("Загрузка списка группированных заказов на период {From}-{To}", dateTimePickerFrom.Value.ToShortDateString(), dateTimePickerTo.Value.ToShortDateString()); _logger.LogInformation("Загрузка списка группированных заказов");
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -67,11 +55,6 @@ namespace PizzeriaView
private void buttonToPDF_Click(object sender, EventArgs e) 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" }; using var dialog = new SaveFileDialog { Filter = "pdf|*.pdf" };
if (dialog.ShowDialog() == DialogResult.OK) if (dialog.ShowDialog() == DialogResult.OK)
{ {
@ -80,15 +63,13 @@ namespace PizzeriaView
_logic.SaveGroupedOrdersToPdfFile(new ReportBindingModel _logic.SaveGroupedOrdersToPdfFile(new ReportBindingModel
{ {
FileName = dialog.FileName, FileName = dialog.FileName,
DateFrom = dateTimePickerFrom.Value,
DateTo = dateTimePickerTo.Value
}); });
_logger.LogInformation("Сохранение списка группированных заказов на период {From}-{To}", dateTimePickerFrom.Value.ToShortDateString(), dateTimePickerTo.Value.ToShortDateString()); _logger.LogInformation("Сохранение списка группированных заказов");
MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, "Ошибка сохранения списка группированных заказов на период"); _logger.LogError(ex, "Ошибка сохранения списка группированных заказов");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
} }

View File

@ -100,13 +100,9 @@ namespace PizzeriaBusinessLogic.BusinessLogics
}).ToList(); }).ToList();
} }
public List<ReportGroupOrdersViewModel> GetGroupedOrders(ReportBindingModel model) public List<ReportGroupOrdersViewModel> GetGroupedOrders()
{ {
return _orderStorage.GetFilteredList(new OrderSearchModel return _orderStorage.GetFullList().GroupBy(x => x.DateCreate.Date).Select(x => new ReportGroupOrdersViewModel
{
DateFrom = model.DateFrom,
DateTo = model.DateTo
}).GroupBy(x => x.DateCreate.Date).Select(x => new ReportGroupOrdersViewModel
{ {
Date = x.Key, Date = x.Key,
OrdersCount = x.Count(), OrdersCount = x.Count(),
@ -140,9 +136,7 @@ namespace PizzeriaBusinessLogic.BusinessLogics
{ {
FileName = model.FileName, FileName = model.FileName,
Title = "Список заказов сгруппированных по дате заказов", Title = "Список заказов сгруппированных по дате заказов",
DateFrom = model.DateFrom!.Value, GroupedOrders = GetGroupedOrders()
DateTo = model.DateTo!.Value,
GroupedOrders = GetGroupedOrders(model)
}); });
} }
} }

View File

@ -155,7 +155,6 @@ namespace PizzeriaBusinessLogic.Implements
return; return;
TableRow docRow = new TableRow(); TableRow docRow = new TableRow();
TableCell docCell = new TableCell();
foreach (var column in rowParameters.Texts) foreach (var column in rowParameters.Texts)
{ {
var docParagraph = new Paragraph(); var docParagraph = new Paragraph();
@ -183,7 +182,8 @@ namespace PizzeriaBusinessLogic.Implements
docParagraph.AppendChild(docRun); docParagraph.AppendChild(docRun);
} }
TableCell docCell = new TableCell();
docCell.AppendChild(docParagraph); docCell.AppendChild(docParagraph);
docRow.AppendChild(docCell); docRow.AppendChild(docCell);
} }

View File

@ -44,7 +44,6 @@ namespace PizzeriaBusinessLogic.OfficePackage
{ {
CreatePdf(info); CreatePdf(info);
CreateParagraph(new PdfParagraph { Text = info.Title, Style = "NormalTitle", ParagraphAlignment = PdfParagraphAlignmentType.Center }); CreateParagraph(new PdfParagraph { Text = info.Title, Style = "NormalTitle", ParagraphAlignment = PdfParagraphAlignmentType.Center });
CreateParagraph(new PdfParagraph { Text = $"с {info.DateFrom.ToShortDateString()} по {info.DateTo.ToShortDateString()}", Style = "Normal", ParagraphAlignment = PdfParagraphAlignmentType.Center });
CreateTable(new List<string> { "4cm", "3cm", "2cm" }); CreateTable(new List<string> { "4cm", "3cm", "2cm" });
CreateRow(new PdfRowParameters CreateRow(new PdfRowParameters

View File

@ -13,7 +13,7 @@ namespace PizzeriaContracts.BusinessLogicsContracts
List<ReportPizzaComponentViewModel> GetPizzaComponents(); List<ReportPizzaComponentViewModel> GetPizzaComponents();
List<ReportOrdersViewModel> GetOrders(ReportBindingModel model); List<ReportOrdersViewModel> GetOrders(ReportBindingModel model);
List<ReportShopsViewModel> GetShops(); List<ReportShopsViewModel> GetShops();
List<ReportGroupOrdersViewModel> GetGroupedOrders(ReportBindingModel model); List<ReportGroupOrdersViewModel> GetGroupedOrders();
void SavePizzasToWordFile(ReportBindingModel model); void SavePizzasToWordFile(ReportBindingModel model);
void SavePizzaComponentToExcelFile(ReportBindingModel model); void SavePizzaComponentToExcelFile(ReportBindingModel model);
void SaveOrdersToPdfFile(ReportBindingModel model); void SaveOrdersToPdfFile(ReportBindingModel model);