почти работает
This commit is contained in:
parent
d005b62a7e
commit
502d172e6b
@ -33,6 +33,8 @@
|
|||||||
label = new Label();
|
label = new Label();
|
||||||
dateTimePicker = new DateTimePicker();
|
dateTimePicker = new DateTimePicker();
|
||||||
buttonCreate = new Button();
|
buttonCreate = new Button();
|
||||||
|
label1 = new Label();
|
||||||
|
comboBoxSelectExpense = new ComboBox();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// buttonSelectFile
|
// buttonSelectFile
|
||||||
@ -65,7 +67,7 @@
|
|||||||
//
|
//
|
||||||
// dateTimePicker
|
// dateTimePicker
|
||||||
//
|
//
|
||||||
dateTimePicker.Location = new Point(59, 60);
|
dateTimePicker.Location = new Point(69, 60);
|
||||||
dateTimePicker.Name = "dateTimePicker";
|
dateTimePicker.Name = "dateTimePicker";
|
||||||
dateTimePicker.Size = new Size(227, 23);
|
dateTimePicker.Size = new Size(227, 23);
|
||||||
dateTimePicker.TabIndex = 3;
|
dateTimePicker.TabIndex = 3;
|
||||||
@ -80,11 +82,30 @@
|
|||||||
buttonCreate.UseVisualStyleBackColor = true;
|
buttonCreate.UseVisualStyleBackColor = true;
|
||||||
buttonCreate.Click += buttonCreate_Click;
|
buttonCreate.Click += buttonCreate_Click;
|
||||||
//
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
label1.AutoSize = true;
|
||||||
|
label1.Location = new Point(12, 107);
|
||||||
|
label1.Name = "label1";
|
||||||
|
label1.Size = new Size(45, 15);
|
||||||
|
label1.TabIndex = 5;
|
||||||
|
label1.Text = "Расход";
|
||||||
|
//
|
||||||
|
// comboBoxSelectExpense
|
||||||
|
//
|
||||||
|
comboBoxSelectExpense.FormattingEnabled = true;
|
||||||
|
comboBoxSelectExpense.Location = new Point(69, 104);
|
||||||
|
comboBoxSelectExpense.Name = "comboBoxSelectExpense";
|
||||||
|
comboBoxSelectExpense.Size = new Size(227, 23);
|
||||||
|
comboBoxSelectExpense.TabIndex = 6;
|
||||||
|
//
|
||||||
// FormExpenseReport
|
// FormExpenseReport
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||||
AutoScaleMode = AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
ClientSize = new Size(321, 179);
|
ClientSize = new Size(321, 179);
|
||||||
|
Controls.Add(comboBoxSelectExpense);
|
||||||
|
Controls.Add(label1);
|
||||||
Controls.Add(buttonCreate);
|
Controls.Add(buttonCreate);
|
||||||
Controls.Add(dateTimePicker);
|
Controls.Add(dateTimePicker);
|
||||||
Controls.Add(label);
|
Controls.Add(label);
|
||||||
@ -104,5 +125,7 @@
|
|||||||
private Label label;
|
private Label label;
|
||||||
private DateTimePicker dateTimePicker;
|
private DateTimePicker dateTimePicker;
|
||||||
private Button buttonCreate;
|
private Button buttonCreate;
|
||||||
|
private Label label1;
|
||||||
|
private ComboBox comboBoxSelectExpense;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,5 @@
|
|||||||
using ProjectFamilyBudget.Reports;
|
using ProjectFamilyBudget.Reports;
|
||||||
|
using ProjectFamilyBudget.Repositories;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
@ -16,10 +17,14 @@ namespace ProjectFamilyBudget.Forms
|
|||||||
{
|
{
|
||||||
private string _fileName = string.Empty;
|
private string _fileName = string.Empty;
|
||||||
private readonly IUnityContainer _container;
|
private readonly IUnityContainer _container;
|
||||||
public FormExpenseReport(IUnityContainer container)
|
public FormExpenseReport(IUnityContainer container, IExpense expense)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
_container = container ?? throw new ArgumentNullException(nameof(container));
|
_container = container ?? throw new ArgumentNullException(nameof(container));
|
||||||
|
|
||||||
|
comboBoxSelectExpense.DataSource = expense.ReadExpense();
|
||||||
|
comboBoxSelectExpense.DisplayMember = "Name";
|
||||||
|
comboBoxSelectExpense.ValueMember = "Id";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonSelectFile_Click(object sender, EventArgs e)
|
private void buttonSelectFile_Click(object sender, EventArgs e)
|
||||||
@ -43,8 +48,12 @@ namespace ProjectFamilyBudget.Forms
|
|||||||
{
|
{
|
||||||
throw new Exception("Отсутствует имя файла для отчета");
|
throw new Exception("Отсутствует имя файла для отчета");
|
||||||
}
|
}
|
||||||
|
if (comboBoxSelectExpense.SelectedIndex < 0)
|
||||||
|
{
|
||||||
|
throw new Exception("Не выбран расход");
|
||||||
|
}
|
||||||
if
|
if
|
||||||
(_container.Resolve<ChartReport>().CreateChart(_fileName, dateTimePicker.Value))
|
(_container.Resolve<ChartReport>().CreateChart(_fileName, (int)comboBoxSelectExpense.SelectedValue!,dateTimePicker.Value))
|
||||||
{
|
{
|
||||||
MessageBox.Show("Документ сформирован",
|
MessageBox.Show("Документ сформирован",
|
||||||
"Формирование документа",
|
"Формирование документа",
|
||||||
|
@ -53,13 +53,14 @@ namespace ProjectFamilyBudget.Forms
|
|||||||
}
|
}
|
||||||
if (comboBoxSelectIncome.SelectedIndex < 0 || comboBoxSelectExpense.SelectedIndex < 0)
|
if (comboBoxSelectIncome.SelectedIndex < 0 || comboBoxSelectExpense.SelectedIndex < 0)
|
||||||
{
|
{
|
||||||
throw new Exception("Не выбран корм");
|
throw new Exception("Не выбран доход или расход");
|
||||||
}
|
}
|
||||||
if (dateTimePickerEnd.Value <= dateTimePickerStart.Value)
|
if (dateTimePickerEnd.Value <= dateTimePickerStart.Value)
|
||||||
{
|
{
|
||||||
throw new Exception("Дата начала должна быть раньше даты окончания");
|
throw new Exception("Дата начала должна быть раньше даты окончания");
|
||||||
}
|
}
|
||||||
if (_container.Resolve<TableReport>().CreateTable(textBoxFilePath.Text, (int)comboBoxSelectIncome.SelectedValue!, (int)comboBoxSelectExpense.SelectedValue!, dateTimePickerStart.Value, dateTimePickerEnd.Value))
|
if (_container.Resolve<TableReport>().CreateTable(textBoxFilePath.Text, (int)comboBoxSelectIncome.SelectedValue!,
|
||||||
|
(int)comboBoxSelectExpense.SelectedValue!, dateTimePickerStart.Value, dateTimePickerEnd.Value))
|
||||||
{
|
{
|
||||||
MessageBox.Show("Документ сформирован",
|
MessageBox.Show("Документ сформирован",
|
||||||
"Формирование документа",
|
"Формирование документа",
|
||||||
|
@ -14,18 +14,18 @@ public class ChartReport
|
|||||||
private readonly IPeopleExpense _peopleExpense;
|
private readonly IPeopleExpense _peopleExpense;
|
||||||
private readonly ILogger<ChartReport> _logger;
|
private readonly ILogger<ChartReport> _logger;
|
||||||
|
|
||||||
public ChartReport(IPeopleExpense peopleExpense,, ILogger<ChartReport> logger)
|
public ChartReport(IPeopleExpense peopleExpense, ILogger<ChartReport> logger)
|
||||||
{
|
{
|
||||||
_peopleExpense = peopleExpense ?? throw new ArgumentNullException(nameof(peopleExpense));
|
_peopleExpense = peopleExpense ?? throw new ArgumentNullException(nameof(peopleExpense));
|
||||||
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
||||||
}
|
}
|
||||||
public bool CreateChart(string filePath, DateTime dateTime)
|
public bool CreateChart(string filePath, int expenseId, DateTime dateTime)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
new PdfBuilder(filePath)
|
new PdfBuilder(filePath)
|
||||||
.AddHeader("Траты людей")
|
.AddHeader("Траты людей")
|
||||||
.AddPieChart("Виды трат", GetData(dateTime))
|
.AddPieChart("Виды трат", GetData(expenseId, dateTime))
|
||||||
.Build();
|
.Build();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -35,12 +35,12 @@ public class ChartReport
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private List<(string Caption, double Value)> GetData(DateTime dateTime)
|
private List<(string Caption, double Value)> GetData(int expenseId, DateTime dateTime)
|
||||||
{
|
{
|
||||||
return _peopleExpense
|
return _peopleExpense
|
||||||
.ReadPeopleExpense()
|
.ReadPeopleExpense()
|
||||||
.Where(x => x.DataReciept.Date == dateTime.Date)
|
.Where(x => x.DataReciept.Date == dateTime.Date)
|
||||||
.GroupBy(x => x.PeopleId, (key, group) => new { Id = key, Count = group.Sum(x =>})
|
.GroupBy(x => x.PeopleId, (key, group) => new { Id = key, Count = group.Sum(x => x.ExpensePeopleExpenses.FirstOrDefault(y => y.ExpenseId == expenseId)?.Sum )})
|
||||||
.Select(x => (x.Id.ToString(), (double)x.Count))
|
.Select(x => (x.Id.ToString(), (double)x.Count))
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
@ -8,5 +8,5 @@ namespace ProjectFamilyBudget.Repositories.Implementations;
|
|||||||
|
|
||||||
public class ConnectionString : IConnectionString
|
public class ConnectionString : IConnectionString
|
||||||
{
|
{
|
||||||
string IConnectionString.ConnectionString => "Host=localhost;Port=5432;Username=postgres;Password=postgres;Database=postgres";
|
string IConnectionString.ConnectionString => "Host=localhost;Port=5432;Username=postgres;Password=postgres;Database=otp3";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user