готовый отчет по движению денег

This commit is contained in:
xom9kxom9k 2024-11-30 15:57:45 +04:00
parent 2986786ef7
commit f07a6af01c
10 changed files with 73 additions and 12 deletions

View File

@ -22,4 +22,14 @@ public class PeopleExpense
ExpensePeopleExpenses = expensePeopleExpenses ExpensePeopleExpenses = expensePeopleExpenses
}; };
} }
public static PeopleExpense CreateOperation(TempExpensePeopleExpense tempExpensePeopleExpense, IEnumerable<ExpensePeopleExpense> expensePeopleExpenses)
{
return new PeopleExpense
{
Id = tempExpensePeopleExpense.Id,
PeopleId = tempExpensePeopleExpense.PeopleId,
DataReciept = tempExpensePeopleExpense.DataReciept,
ExpensePeopleExpenses = expensePeopleExpenses
};
}
} }

View File

@ -23,4 +23,14 @@ public class PeopleIncome
IncomePeopleIncomes = incomePeopleIncomes IncomePeopleIncomes = incomePeopleIncomes
}; };
} }
public static PeopleIncome CreateOperation(TempIncomePeopleIncome tempIncomePeopleIncome, IEnumerable<IncomePeopleIncome> incomePeopleIncomes)
{
return new PeopleIncome
{
Id = tempIncomePeopleIncome.Id,
PeopleId = tempIncomePeopleIncome.PeopleId,
DataReciept = tempIncomePeopleIncome.DataReciept,
IncomePeopleIncomes = incomePeopleIncomes
};
}
} }

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProjectFamilyBudget.Entities;
public class TempExpensePeopleExpense
{
public int Id { get; private set; }
public int PeopleId { get; private set; }
public DateTime DataReciept { get; private set; }
public int ExpenseId { get; private set; }
public int Sum { get; private set; }
}

View File

@ -10,7 +10,7 @@ public class TempIncomePeopleIncome
{ {
public int Id { get; private set; } public int Id { get; private set; }
public int PeopleId { get; private set; } public int PeopleId { get; private set; }
public DateTime DateReceipt { get; private set; } public DateTime DataReciept { get; private set; }
public int IncomeId { get; private set; } public int IncomeId { get; private set; }
public int Sum { get; private set; } public int Sum { get; private set; }
} }

View File

@ -38,6 +38,7 @@
PeopleExpenseToolStripMenuItem = new ToolStripMenuItem(); PeopleExpenseToolStripMenuItem = new ToolStripMenuItem();
отчетыToolStripMenuItem = new ToolStripMenuItem(); отчетыToolStripMenuItem = new ToolStripMenuItem();
DirectoryReportToolStripMenuItem = new ToolStripMenuItem(); DirectoryReportToolStripMenuItem = new ToolStripMenuItem();
moneyReportToolStripMenuItem = new ToolStripMenuItem();
menuStrip.SuspendLayout(); menuStrip.SuspendLayout();
SuspendLayout(); SuspendLayout();
// //
@ -101,7 +102,7 @@
// //
// отчетыToolStripMenuItem // отчетыToolStripMenuItem
// //
отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { DirectoryReportToolStripMenuItem }); отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { DirectoryReportToolStripMenuItem, moneyReportToolStripMenuItem });
отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem"; отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem";
отчетыToolStripMenuItem.Size = new Size(60, 20); отчетыToolStripMenuItem.Size = new Size(60, 20);
отчетыToolStripMenuItem.Text = "Отчеты"; отчетыToolStripMenuItem.Text = "Отчеты";
@ -114,6 +115,14 @@
DirectoryReportToolStripMenuItem.Text = "Документ со справочниками"; DirectoryReportToolStripMenuItem.Text = "Документ со справочниками";
DirectoryReportToolStripMenuItem.Click += DirectoryReportToolStripMenuItem_Click; DirectoryReportToolStripMenuItem.Click += DirectoryReportToolStripMenuItem_Click;
// //
// moneyReportToolStripMenuItem
//
moneyReportToolStripMenuItem.Name = "moneyReportToolStripMenuItem";
moneyReportToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.E;
moneyReportToolStripMenuItem.Size = new Size(280, 22);
moneyReportToolStripMenuItem.Text = "Движение денег";
moneyReportToolStripMenuItem.Click += moneyReportToolStripMenuItem_Click;
//
// FormFamilyBudget // FormFamilyBudget
// //
AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleDimensions = new SizeF(7F, 15F);
@ -144,5 +153,6 @@
private ToolStripMenuItem PeopleIncomeToolStripMenuItem; private ToolStripMenuItem PeopleIncomeToolStripMenuItem;
private ToolStripMenuItem PeopleExpenseToolStripMenuItem; private ToolStripMenuItem PeopleExpenseToolStripMenuItem;
private ToolStripMenuItem DirectoryReportToolStripMenuItem; private ToolStripMenuItem DirectoryReportToolStripMenuItem;
private ToolStripMenuItem moneyReportToolStripMenuItem;
} }
} }

View File

@ -90,5 +90,18 @@ namespace ProjectFamilyBudget
MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
} }
private void moneyReportToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
_container.Resolve<FormMoneyReport>().ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Îøèáêà ïðè çàãðóçêå",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
} }
} }

View File

@ -62,8 +62,8 @@ namespace ProjectFamilyBudget.Forms
list.Add(ExpensePeopleExpense.CreateElement(0, Convert.ToInt32(row.Cells["ColumnExpense"].Value) list.Add(ExpensePeopleExpense.CreateElement(0, Convert.ToInt32(row.Cells["ColumnExpense"].Value)
, Convert.ToInt32(row.Cells["ColumnSum"].Value))); , Convert.ToInt32(row.Cells["ColumnSum"].Value)));
} }
return list; return list.GroupBy(x => x.ExpenseId, x => x.Sum, (id, counts) =>
ExpensePeopleExpense.CreateElement(0, id, counts.Sum())).ToList();
} }
} }
} }

View File

@ -63,8 +63,8 @@ namespace ProjectFamilyBudget.Forms
list.Add(IncomePeopleIncome.CreateElement(0, Convert.ToInt32(row.Cells["ColumnIncome"].Value) list.Add(IncomePeopleIncome.CreateElement(0, Convert.ToInt32(row.Cells["ColumnIncome"].Value)
, Convert.ToInt32(row.Cells["ColumnSum"].Value))); , Convert.ToInt32(row.Cells["ColumnSum"].Value)));
} }
return list; return list.GroupBy(x => x.IncomeId, x => x.Sum, (id, counts) =>
IncomePeopleIncome.CreateElement(0, id, counts.Sum())).ToList();
} }
} }
} }

View File

@ -91,7 +91,8 @@ public class PeopleExpenseRepository : IPeopleExpense
try try
{ {
using var connection = new NpgsqlConnection(_connectionString.ConnectionString); using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM PeopleExpense"; var querySelect = @"SELECT pe.*, epe.ExpenseId, epe.Sum FROM PeopleExpense pe
INNER JOIN ExpensePeopleExpense epe on epe.PeopleExpenseId = pe.Id";
var peopleExpenses = connection.Query<PeopleExpense>(querySelect); var peopleExpenses = connection.Query<PeopleExpense>(querySelect);
_logger.LogDebug("Полученные объекты: {json}", _logger.LogDebug("Полученные объекты: {json}",
JsonConvert.SerializeObject(peopleExpenses)); JsonConvert.SerializeObject(peopleExpenses));

View File

@ -94,11 +94,12 @@ public class PeopleIncomeRepository : IPeopleIncome
try try
{ {
using var connection = new NpgsqlConnection(_connectionString.ConnectionString); using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
var querySelect = "SELECT * FROM PeopleIncome"; var querySelect = @"SELECT pi.*, ipi.IncomeId, ipi.Sum FROM PeopleIncome pi
var peopleIncomes = connection.Query<PeopleIncome>(querySelect); INNER JOIN IncomePeopleIncome ipi on ipi.PeopleIncomeId = pi.Id";
_logger.LogDebug("Полученные объекты: {json}", var peopleIncomes = connection.Query<TempIncomePeopleIncome>(querySelect);
JsonConvert.SerializeObject(peopleIncomes)); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(peopleIncomes));
return peopleIncomes; return peopleIncomes.GroupBy(x => x.Id, y => y, (key, value) => PeopleIncome.CreateOperation(value.First(),
value.Select(z => IncomePeopleIncome.CreateElement(0, z.IncomeId, z.Sum)))).ToList();
} }
catch (Exception ex) catch (Exception ex)
{ {