первые изменения
This commit is contained in:
parent
616953dd71
commit
6cb8b9cf25
@ -1,6 +1,7 @@
|
||||
using ProjectFamilyBudget.Entities.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -10,8 +11,11 @@ namespace ProjectFamilyBudget.Entities;
|
||||
public class Expense
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[DisplayName("Тип расхода")]
|
||||
public IncomeExpenseType ExpenseType { get; private set; }
|
||||
[DisplayName("Название")]
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
[DisplayName("Категория")]
|
||||
public string ExpenseCategory { get; private set; } = string.Empty;
|
||||
public static Expense CreateEntity(int id,IncomeExpenseType expenseType, string name, string expenseCategory)
|
||||
{
|
||||
|
@ -11,6 +11,7 @@ public class ExpensePeopleExpense
|
||||
public int PeopleExpenseId { get; private set; }
|
||||
public int ExpenseId { get; private set; }
|
||||
public int Sum { get; private set; }
|
||||
public string ExpenseName { get; private set; } = string.Empty;
|
||||
public static ExpensePeopleExpense CreateElement(int peopleExpenseId, int expenseId, int sum)
|
||||
{
|
||||
return new ExpensePeopleExpense
|
||||
|
@ -1,6 +1,7 @@
|
||||
using ProjectFamilyBudget.Entities.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -10,8 +11,11 @@ namespace ProjectFamilyBudget.Entities;
|
||||
public class Income
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[DisplayName("Тип дохода")]
|
||||
public IncomeExpenseType IncomeType { get; private set; }
|
||||
[DisplayName("Название")]
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
[DisplayName("Категория")]
|
||||
public string IncomeCategory { get; private set; } = string.Empty;
|
||||
|
||||
public static Income CreateEntity(int id, IncomeExpenseType incomeType, string name, string incomeCategory)
|
||||
|
@ -11,6 +11,7 @@ public class IncomePeopleIncome
|
||||
public int PeopleIncomeId { get; private set; }
|
||||
public int IncomeId { get; private set; }
|
||||
public int Sum { get; private set; }
|
||||
public string IncomeName { get; private set; } = string.Empty;
|
||||
public static IncomePeopleIncome CreateElement(int peopleIncomeId,int incomeId, int sum)
|
||||
{
|
||||
return new IncomePeopleIncome
|
||||
|
@ -2,6 +2,7 @@
|
||||
using ProjectFamilyBudget.Entities.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -11,9 +12,14 @@ namespace ProjectFamilyBudget.Entities;
|
||||
public class People
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[DisplayName("Имя")]
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
[DisplayName("Фамилия")]
|
||||
public string LastName { get; private set; } = string.Empty;
|
||||
public string FullName => $"{Name} {LastName}";
|
||||
[DisplayName("Возраст")]
|
||||
public int Age { get; private set; }
|
||||
[DisplayName("Член семьи")]
|
||||
public FamilyMemberType MemberType { get; private set; }
|
||||
public static People CreateEntity(int id, string name,string lastName, int age, FamilyMemberType memberType)
|
||||
{
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -9,8 +10,16 @@ namespace ProjectFamilyBudget.Entities;
|
||||
public class PeopleExpense
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Browsable(false)]
|
||||
public int PeopleId { get; private set; }
|
||||
[DisplayName("Человек")]
|
||||
public string PeopleName { get; private set; } = string.Empty;
|
||||
[DisplayName("Дата")]
|
||||
public DateTime DataReciept { get; private set; }
|
||||
[DisplayName("Расходы")]
|
||||
public string Expense => ExpensePeopleExpenses != null ?
|
||||
string.Join(", ", ExpensePeopleExpenses.Select(x => $"{x.ExpenseName} {x.Sum}")) : string.Empty;
|
||||
[Browsable(false)]
|
||||
public IEnumerable<ExpensePeopleExpense> ExpensePeopleExpenses { get; private set; } = [];
|
||||
public static PeopleExpense CreateOperation(int id, int peopleId, DateTime dataReciept,IEnumerable<ExpensePeopleExpense> expensePeopleExpenses)
|
||||
{
|
||||
@ -22,14 +31,11 @@ public class PeopleExpense
|
||||
ExpensePeopleExpenses = expensePeopleExpenses
|
||||
};
|
||||
}
|
||||
public static PeopleExpense CreateOperation(TempExpensePeopleExpense tempExpensePeopleExpense, IEnumerable<ExpensePeopleExpense> expensePeopleExpenses)
|
||||
public void SetExpensePeopleExpenses(IEnumerable<ExpensePeopleExpense> expensePeopleExpenses)
|
||||
{
|
||||
return new PeopleExpense
|
||||
if (expensePeopleExpenses != null && expensePeopleExpenses.Any())
|
||||
{
|
||||
Id = tempExpensePeopleExpense.Id,
|
||||
PeopleId = tempExpensePeopleExpense.PeopleId,
|
||||
DataReciept = tempExpensePeopleExpense.DataReciept,
|
||||
ExpensePeopleExpenses = expensePeopleExpenses
|
||||
};
|
||||
ExpensePeopleExpenses = expensePeopleExpenses;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
using ProjectFamilyBudget.Entities.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -10,8 +11,16 @@ namespace ProjectFamilyBudget.Entities;
|
||||
public class PeopleIncome
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Browsable(false)]
|
||||
public int PeopleId { get; private set; }
|
||||
[DisplayName("Человек")]
|
||||
public string PeopleName { get; private set; } = string.Empty;
|
||||
[DisplayName("Дата")]
|
||||
public DateTime DataReciept { get; private set; }
|
||||
[DisplayName("Доходы")]
|
||||
public string Income => IncomePeopleIncomes != null ?
|
||||
string.Join(", ", IncomePeopleIncomes.Select(x => $"{x.IncomeName} {x.Sum}")) : string.Empty;
|
||||
[Browsable(false)]
|
||||
public IEnumerable<IncomePeopleIncome> IncomePeopleIncomes { get; private set; } = [];
|
||||
public static PeopleIncome CreateOperation(int id, int peopleId,DateTime dataReciept,IEnumerable<IncomePeopleIncome> incomePeopleIncomes)
|
||||
{
|
||||
@ -23,14 +32,11 @@ public class PeopleIncome
|
||||
IncomePeopleIncomes = incomePeopleIncomes
|
||||
};
|
||||
}
|
||||
public static PeopleIncome CreateOperation(TempIncomePeopleIncome tempIncomePeopleIncome, IEnumerable<IncomePeopleIncome> incomePeopleIncomes)
|
||||
public void SetIncomePeopleIncomes(IEnumerable<IncomePeopleIncome> incomePeopleIncomes)
|
||||
{
|
||||
return new PeopleIncome
|
||||
if (incomePeopleIncomes != null && incomePeopleIncomes.Any())
|
||||
{
|
||||
Id = tempIncomePeopleIncome.Id,
|
||||
PeopleId = tempIncomePeopleIncome.PeopleId,
|
||||
DataReciept = tempIncomePeopleIncome.DataReciept,
|
||||
IncomePeopleIncomes = incomePeopleIncomes
|
||||
};
|
||||
IncomePeopleIncomes = incomePeopleIncomes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +0,0 @@
|
||||
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; }
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectFamilyBudget.Entities;
|
||||
|
||||
public class TempIncomePeopleIncome
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public int PeopleId { get; private set; }
|
||||
public DateTime DataReciept { get; private set; }
|
||||
public int IncomeId { get; private set; }
|
||||
public int Sum { get; private set; }
|
||||
}
|
@ -93,7 +93,12 @@ namespace ProjectFamilyBudget.Forms
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
private void LoadList() => dataGridViewData.DataSource = _expense.ReadExpense();
|
||||
private void LoadList()
|
||||
{
|
||||
dataGridViewData.DataSource = _expense.ReadExpense();
|
||||
dataGridViewData.Columns["Id"].Visible = false;
|
||||
}
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
|
@ -94,7 +94,12 @@ namespace ProjectFamilyBudget.Forms
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
private void LoadList() => dataGridViewData.DataSource = _income.ReadIncome();
|
||||
private void LoadList()
|
||||
{
|
||||
dataGridViewData.DataSource = _income.ReadIncome();
|
||||
dataGridViewData.Columns["Id"].Visible = false;
|
||||
}
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
|
@ -21,7 +21,7 @@ namespace ProjectFamilyBudget.Forms
|
||||
_peopleEpxense = peopleEpxense ??
|
||||
throw new ArgumentNullException(nameof(peopleEpxense));
|
||||
comboBoxPeople.DataSource = people.ReadPeople();
|
||||
comboBoxPeople.DisplayMember = "Name";
|
||||
comboBoxPeople.DisplayMember = "FullName";
|
||||
comboBoxPeople.ValueMember = "Id";
|
||||
|
||||
ColumnExpense.DataSource = expense.ReadExpense();
|
||||
|
@ -76,7 +76,13 @@ namespace ProjectFamilyBudget.Forms
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
private void LoadList() => dataGridViewData.DataSource = _peopleExpense.ReadPeopleExpense();
|
||||
private void LoadList()
|
||||
{
|
||||
dataGridViewData.DataSource = _peopleExpense.ReadPeopleExpense();
|
||||
dataGridViewData.Columns["Id"].Visible = false;
|
||||
dataGridViewData.Columns["DataReciept"].DefaultCellStyle.Format = "dd MMMM yyyy hh:mm";
|
||||
}
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
|
@ -21,7 +21,7 @@ namespace ProjectFamilyBudget.Forms
|
||||
_peopleIncome = peopleIncome ??
|
||||
throw new ArgumentNullException(nameof(peopleIncome));
|
||||
comboBoxPeople.DataSource = people.ReadPeople();
|
||||
comboBoxPeople.DisplayMember = "Name";
|
||||
comboBoxPeople.DisplayMember = "FullName";
|
||||
comboBoxPeople.ValueMember = "Id";
|
||||
|
||||
ColumnIncome.DataSource = income.ReadIncome();
|
||||
|
@ -74,7 +74,13 @@ namespace ProjectFamilyBudget.Forms
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
private void LoadList() => dataGridViewData.DataSource = _peopleIncome.ReadPeopleIncome();
|
||||
private void LoadList()
|
||||
{
|
||||
dataGridViewData.DataSource = _peopleIncome.ReadPeopleIncome();
|
||||
dataGridViewData.Columns["Id"].Visible = false;
|
||||
dataGridViewData.Columns["DataReciept"].DefaultCellStyle.Format = "dd MMMM yyyy";
|
||||
}
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
|
@ -92,7 +92,13 @@ namespace ProjectFamilyBudget.Forms
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
private void LoadList() => dataGridViewData.DataSource = _people.ReadPeople();
|
||||
private void LoadList()
|
||||
{
|
||||
dataGridViewData.DataSource = _people.ReadPeople();
|
||||
dataGridViewData.Columns["Id"].Visible = false;
|
||||
dataGridViewData.Columns["FullName"].Visible = false;
|
||||
}
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
|
@ -93,13 +93,54 @@ public class PeopleIncomeRepository : IPeopleIncome
|
||||
_logger.LogInformation("Получение всех объектов");
|
||||
try
|
||||
{
|
||||
var builder = new QueryBuilder();
|
||||
if (dateFrom.HasValue)
|
||||
{
|
||||
builder.AddCondition("cf.Date >= @dateFrom");
|
||||
}
|
||||
if (dateTo.HasValue)
|
||||
{
|
||||
builder.AddCondition("cf.Date <= @dateTo");
|
||||
}
|
||||
if (fuelId.HasValue)
|
||||
{
|
||||
builder.AddCondition("cff.FuelId = @fuelId");
|
||||
}
|
||||
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
||||
var querySelect = @"SELECT pi.*, ipi.IncomeId, ipi.Sum FROM PeopleIncome pi
|
||||
INNER JOIN IncomePeopleIncome ipi on ipi.PeopleIncomeId = pi.Id";
|
||||
var peopleIncomes = connection.Query<TempIncomePeopleIncome>(querySelect);
|
||||
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(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();
|
||||
var querySelect = $@"SELECT
|
||||
cf.*,
|
||||
c.Name as ContractorName,
|
||||
cff.FuelId,
|
||||
cff.Quantity,
|
||||
f.Type as FuelName
|
||||
FROM ContractorFuel cf
|
||||
LEFT JOIN Contractor c on c.Id = cf.ContractorId
|
||||
INNER JOIN ContractorFuelFuel cff on cff.ContractorFuelId = cf.Id
|
||||
LEFT JOIN Fuel f on f.Id = cff.FuelId
|
||||
{builder.Build()}";
|
||||
var contractorsDict = new Dictionary<int, List<ContractorFuelFuel>>();
|
||||
|
||||
var contractorFuels = connection.Query<ContractorFuel, ContractorFuelFuel, ContractorFuel>(querySelect,
|
||||
(contractor, contractorFuel) =>
|
||||
{
|
||||
if (!contractorsDict.TryGetValue(contractor.Id, out var ccf))
|
||||
{
|
||||
ccf = [];
|
||||
contractorsDict.Add(contractor.Id, ccf);
|
||||
}
|
||||
|
||||
ccf.Add(contractorFuel);
|
||||
return contractor;
|
||||
}, splitOn: "FuelId", param: new { dateFrom, dateTo, fuelId });
|
||||
_logger.LogDebug("Полученные объекты: {json}",
|
||||
JsonConvert.SerializeObject(contractorFuels));
|
||||
|
||||
return contractorsDict.Select(x =>
|
||||
{
|
||||
var cf = contractorFuels.First(y => y.Id == x.Key);
|
||||
cf.SetContractorFuelFuel(x.Value);
|
||||
return cf;
|
||||
}).ToArray();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user