almost done
This commit is contained in:
parent
9e0c116449
commit
15edafea60
@ -12,8 +12,8 @@ namespace FamilyBudget.Entities
|
|||||||
public int Id { get; private set; }
|
public int Id { get; private set; }
|
||||||
[Browsable(false)]
|
[Browsable(false)]
|
||||||
public int FamilyMemberId { get; private set; }
|
public int FamilyMemberId { get; private set; }
|
||||||
[DisplayName("Семья")]
|
[DisplayName("Участник")]
|
||||||
public string Name { get; private set; } = string.Empty;
|
public string FullName { get; private set; } = string.Empty;
|
||||||
[DisplayName("Дата")]
|
[DisplayName("Дата")]
|
||||||
public DateTime Date { get; private set; }
|
public DateTime Date { get; private set; }
|
||||||
public string Expenses => FamilyMember_Expenses != null ?
|
public string Expenses => FamilyMember_Expenses != null ?
|
||||||
@ -32,7 +32,7 @@ namespace FamilyBudget.Entities
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setExpenseBudget(IEnumerable<FamilyMember_ExpenseBudget> familyMember_Expenses)
|
public void SetExpenseBudget(IEnumerable<FamilyMember_ExpenseBudget> familyMember_Expenses)
|
||||||
{
|
{
|
||||||
if (familyMember_Expenses != null && familyMember_Expenses.Any())
|
if (familyMember_Expenses != null && familyMember_Expenses.Any())
|
||||||
{
|
{
|
||||||
|
@ -10,7 +10,7 @@ namespace FamilyBudget.Entities
|
|||||||
{
|
{
|
||||||
public int Id { get; private set; }
|
public int Id { get; private set; }
|
||||||
public int ExpenseBudgetId { get; private set; }
|
public int ExpenseBudgetId { get; private set; }
|
||||||
public int ExpenseCategoryID { get; private set; }
|
public int ExpenseBudgetCategoryID { get; private set; }
|
||||||
public int Sum { get; private set; }
|
public int Sum { get; private set; }
|
||||||
public string ExpenseName { get; private set; } = string.Empty;
|
public string ExpenseName { get; private set; } = string.Empty;
|
||||||
public static FamilyMember_ExpenseBudget CreateElement(int id, int expenseCategoryID, int expenseBudgetId, int sum)
|
public static FamilyMember_ExpenseBudget CreateElement(int id, int expenseCategoryID, int expenseBudgetId, int sum)
|
||||||
@ -18,7 +18,7 @@ namespace FamilyBudget.Entities
|
|||||||
return new FamilyMember_ExpenseBudget()
|
return new FamilyMember_ExpenseBudget()
|
||||||
{
|
{
|
||||||
Id = id,
|
Id = id,
|
||||||
ExpenseCategoryID = expenseCategoryID,
|
ExpenseBudgetCategoryID = expenseCategoryID,
|
||||||
ExpenseBudgetId = expenseBudgetId,
|
ExpenseBudgetId = expenseBudgetId,
|
||||||
Sum = sum
|
Sum = sum
|
||||||
};
|
};
|
||||||
|
@ -12,8 +12,8 @@ namespace FamilyBudget.Entities
|
|||||||
public int Id { get; private set; }
|
public int Id { get; private set; }
|
||||||
[Browsable(false)]
|
[Browsable(false)]
|
||||||
public int FamilyMemberId { get; private set; }
|
public int FamilyMemberId { get; private set; }
|
||||||
[DisplayName("Семья")]
|
[DisplayName("Участник")]
|
||||||
public string FamilyName { get; private set; } = string.Empty;
|
public string FullName { get; private set; } = string.Empty;
|
||||||
[DisplayName("Дата")]
|
[DisplayName("Дата")]
|
||||||
public DateTime Date { get; private set; }
|
public DateTime Date { get; private set; }
|
||||||
[DisplayName("Доходы")]
|
[DisplayName("Доходы")]
|
||||||
@ -33,7 +33,7 @@ namespace FamilyBudget.Entities
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIncomeBudget(IEnumerable<FamilyMember_IncomeBudget> familyMember_Incomes)
|
public void SetIncomeBudget(IEnumerable<FamilyMember_IncomeBudget> familyMember_Incomes)
|
||||||
{
|
{
|
||||||
if (familyMember_Incomes != null && familyMember_Incomes.Any())
|
if (familyMember_Incomes != null && familyMember_Incomes.Any())
|
||||||
{
|
{
|
||||||
|
@ -91,7 +91,11 @@ namespace FamilyBudget.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LoadList() => dataGridViewFamilies.DataSource = _familyRepository.ReadFamilies();
|
private void LoadList()
|
||||||
|
{
|
||||||
|
dataGridViewFamilies.DataSource = _familyRepository.ReadFamilies();
|
||||||
|
dataGridViewFamilies.Columns["id"].Visible = false;
|
||||||
|
}
|
||||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||||
{
|
{
|
||||||
id = 0;
|
id = 0;
|
||||||
|
@ -76,7 +76,7 @@ namespace FamilyBudget.Forms
|
|||||||
{
|
{
|
||||||
dataGridViewExpenses.DataSource = _expenseBudgetRepository.ReadExpenseBudgets();
|
dataGridViewExpenses.DataSource = _expenseBudgetRepository.ReadExpenseBudgets();
|
||||||
dataGridViewExpenses.Columns["id"].Visible = false;
|
dataGridViewExpenses.Columns["id"].Visible = false;
|
||||||
dataGridViewExpenses.Columns["data"].DefaultCellStyle.Format = "dd MMMM yyyy";
|
dataGridViewExpenses.Columns["date"].DefaultCellStyle.Format = "dd MMMM yyyy";
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||||
|
@ -63,7 +63,7 @@ namespace FamilyBudget.Forms
|
|||||||
{
|
{
|
||||||
dataGridViewIncomes.DataSource = _incomeBudgetRepository.ReadIncomeBudgets();
|
dataGridViewIncomes.DataSource = _incomeBudgetRepository.ReadIncomeBudgets();
|
||||||
dataGridViewIncomes.Columns["id"].Visible = false;
|
dataGridViewIncomes.Columns["id"].Visible = false;
|
||||||
dataGridViewIncomes.Columns["data"].DefaultCellStyle.Format = "dd MMMM yyyy";
|
dataGridViewIncomes.Columns["date"].DefaultCellStyle.Format = "dd MMMM yyyy";
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||||
|
@ -91,8 +91,12 @@ namespace FamilyBudget.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LoadList() => dataGridViewFamilyMembers.DataSource = _familyMemberRepository.ReadFamilyMembers();
|
private void LoadList()
|
||||||
|
{
|
||||||
|
dataGridViewFamilyMembers.DataSource = _familyMemberRepository.ReadFamilyMembers();
|
||||||
|
dataGridViewFamilyMembers.Columns["id"].Visible = false;
|
||||||
|
dataGridViewFamilyMembers.Columns["FullName"].Visible = false;
|
||||||
|
}
|
||||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||||
{
|
{
|
||||||
id = 0;
|
id = 0;
|
||||||
|
@ -46,7 +46,7 @@ namespace FamilyBudget.Reports
|
|||||||
.Where(x => x.Date.Date == dateTime.Date)
|
.Where(x => x.Date.Date == dateTime.Date)
|
||||||
.GroupBy(x => x.FamilyMemberId, (key, group) => new {
|
.GroupBy(x => x.FamilyMemberId, (key, group) => new {
|
||||||
Id = key,
|
Id = key,
|
||||||
Count = group.Sum(x => x.FamilyMember_Expenses.FirstOrDefault(x => x.ExpenseCategoryID == expenseId)?.Sum ?? 0)
|
Count = group.Sum(x => x.FamilyMember_Expenses.FirstOrDefault(x => x.ExpenseBudgetCategoryID == expenseId)?.Sum ?? 0)
|
||||||
})
|
})
|
||||||
.Select(x => (x.Id.ToString(), (double)x.Count))
|
.Select(x => (x.Id.ToString(), (double)x.Count))
|
||||||
.ToList();
|
.ToList();
|
||||||
|
@ -34,7 +34,7 @@ namespace FamilyBudget.Reports
|
|||||||
{
|
{
|
||||||
new ExcelBuilder(filePath)
|
new ExcelBuilder(filePath)
|
||||||
.AddHeader("Сводка по бюджету семьи", 0, 4)
|
.AddHeader("Сводка по бюджету семьи", 0, 4)
|
||||||
.AddParagraph("за период", 0)
|
.AddParagraph($"за период с {startDate:dd.MM.yyyy} по {endDate:dd.MM.yyyy}", 0)
|
||||||
.AddTable([15, 10, 15, 15], GetData(incomeId, expenseId, startDate, endDate))
|
.AddTable([15, 10, 15, 15], GetData(incomeId, expenseId, startDate, endDate))
|
||||||
.Build();
|
.Build();
|
||||||
return true;
|
return true;
|
||||||
@ -50,22 +50,20 @@ namespace FamilyBudget.Reports
|
|||||||
{
|
{
|
||||||
_logger.LogDebug("{json}", JsonConvert.SerializeObject(_expenseBudgetRepository.ReadExpenseBudgets()));
|
_logger.LogDebug("{json}", JsonConvert.SerializeObject(_expenseBudgetRepository.ReadExpenseBudgets()));
|
||||||
var expenseData = _expenseBudgetRepository
|
var expenseData = _expenseBudgetRepository
|
||||||
.ReadExpenseBudgets()
|
.ReadExpenseBudgets(dateFrom: startDate, dateTo: endDate, BudgetExpenseId: expenseId)
|
||||||
.Where(x => x.Date >= startDate && x.Date <= endDate && x.FamilyMember_Expenses.Any(y => y.ExpenseCategoryID == expenseId))
|
|
||||||
.Select(x => new
|
.Select(x => new
|
||||||
{
|
{
|
||||||
x.FamilyMemberId,
|
x.FullName,
|
||||||
x.Date,
|
x.Date,
|
||||||
CountIn = (int?)null,
|
CountIn = (int?)null,
|
||||||
CountOut = x.FamilyMember_Expenses.FirstOrDefault(y => y.ExpenseCategoryID == expenseId)?.Sum
|
CountOut = x.FamilyMember_Expenses.FirstOrDefault(y => y.ExpenseBudgetCategoryID == expenseId)?.Sum
|
||||||
});
|
});
|
||||||
|
|
||||||
var incomeData = _incomeBudgetRepository
|
var incomeData = _incomeBudgetRepository
|
||||||
.ReadIncomeBudgets()
|
.ReadIncomeBudgets(dateFrom: startDate, dateTo: endDate, BudgetIncomeId: incomeId)
|
||||||
.Where(x => x.Date >= startDate && x.Date <= endDate && x.FamilyMember_Incomes.Any(y => y.IncomeBudgetCategoryId == incomeId))
|
|
||||||
.Select(x => new
|
.Select(x => new
|
||||||
{
|
{
|
||||||
x.FamilyMemberId,
|
x.FullName,
|
||||||
x.Date,
|
x.Date,
|
||||||
CountIn = x.FamilyMember_Incomes.FirstOrDefault(y => y.IncomeBudgetCategoryId == incomeId)?.Sum,
|
CountIn = x.FamilyMember_Incomes.FirstOrDefault(y => y.IncomeBudgetCategoryId == incomeId)?.Sum,
|
||||||
CountOut = (int?)null,
|
CountOut = (int?)null,
|
||||||
@ -77,15 +75,10 @@ namespace FamilyBudget.Reports
|
|||||||
|
|
||||||
return new List<string[]>(){ item }
|
return new List<string[]>(){ item }
|
||||||
.Union(
|
.Union(
|
||||||
data.Select(x => new string[] {
|
data.Select(x => new string[] {x.FullName, x.Date.ToString("dd.MM.yyyy"), x.CountIn?.ToString("N0") ?? string.Empty,
|
||||||
x.FamilyMemberId.ToString(), x.Date.ToString(), x.CountIn?.ToString() ??
|
x.CountOut?.ToString("N0") ?? string.Empty }))
|
||||||
string.Empty, x.CountOut?.ToString() ?? string.Empty
|
|
||||||
})
|
|
||||||
)
|
|
||||||
.Union(
|
.Union(
|
||||||
[["Всего", "", data.Sum(x => x.CountIn ?? 0).ToString(),
|
[["Всего", "", data.Sum(x => x.CountIn ?? 0).ToString("N0"), data.Sum(x => x.CountOut ?? 0).ToString("N0")]])
|
||||||
data.Sum(x => x.CountOut ?? 0).ToString()]]
|
|
||||||
)
|
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ using FamilyBudget.Entities;
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Npgsql;
|
using Npgsql;
|
||||||
|
using ProjectFamilyBudget.Repositories.Implementations;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -49,7 +50,7 @@ namespace FamilyBudget.Repositories.Implementations
|
|||||||
ExpenseBudgetId = expenseBudgetId,
|
ExpenseBudgetId = expenseBudgetId,
|
||||||
expenseBudget.FamilyMemberId,
|
expenseBudget.FamilyMemberId,
|
||||||
elem.Sum,
|
elem.Sum,
|
||||||
ExpensebudgetCategoryId = elem.ExpenseCategoryID
|
ExpensebudgetCategoryId = elem.ExpenseBudgetCategoryID
|
||||||
}, transaction);
|
}, transaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,21 +94,70 @@ namespace FamilyBudget.Repositories.Implementations
|
|||||||
public IEnumerable<ExpenseBudget> ReadExpenseBudgets(DateTime? dateFrom = null, DateTime? dateTo = null,
|
public IEnumerable<ExpenseBudget> ReadExpenseBudgets(DateTime? dateFrom = null, DateTime? dateTo = null,
|
||||||
int? familyMemberId = null, int? BudgetExpenseId = null)
|
int? familyMemberId = null, int? BudgetExpenseId = null)
|
||||||
{
|
{
|
||||||
|
_logger.LogInformation("Получение всех объектов");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
var builder = new QueryBuilder();
|
||||||
|
if (dateFrom.HasValue)
|
||||||
|
{
|
||||||
|
builder.AddCondition("eb.Date >= @dateFrom");
|
||||||
|
}
|
||||||
|
if (dateTo.HasValue)
|
||||||
|
{
|
||||||
|
builder.AddCondition("eb.Date<= @dateTo");
|
||||||
|
}
|
||||||
|
if (familyMemberId.HasValue)
|
||||||
|
{
|
||||||
|
builder.AddCondition("eb.familyMemberId = @familyMemberId");
|
||||||
|
}
|
||||||
|
if (BudgetExpenseId.HasValue)
|
||||||
|
{
|
||||||
|
builder.AddCondition("fmeb.ExpenseBudgetCategoryId = @BudgetExpenseId");
|
||||||
|
}
|
||||||
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
||||||
var querySelect = @"SELECT eb.*, fmeb.expensebudgetId, fmeb.sum, fmeb.ExpensebudgetCategoryId FROM ExpenseBudget eb
|
var querySelect = $@"SELECT
|
||||||
INNER JOIN familymember_expensebudget fmeb on fmeb.expensebudgetid = eb.id";
|
eb.Id,
|
||||||
var expensesBudget = connection.Query<FamilyMember>(querySelect);
|
eb.FamilyMemberId,
|
||||||
//_logger.LogDebug("Полученные объекты: {json}",
|
CONCAT(fm.Name, ' ', f.Name) AS FullName,
|
||||||
//JsonConvert.SerializeObject(expensesBudget));
|
eb.Date,
|
||||||
return null;
|
fmeb.ExpenseBudgetId,
|
||||||
|
fmeb.ExpenseBudgetCategoryId,
|
||||||
|
fmeb.Sum,
|
||||||
|
e.Name AS ExpenseName
|
||||||
|
FROM expenseBudget eb
|
||||||
|
LEFT JOIN familymember_expensebudget fmeb ON fmeb.expensebudgetid = eb.id
|
||||||
|
INNER JOIN Familymember fm ON fm.Id = eb.FamilyMemberId
|
||||||
|
LEFT JOIN Family f ON f.Id = fm.FamilyId
|
||||||
|
LEFT JOIN expensebudgetcategory e ON e.Id = fmeb.ExpenseBudgetCategoryId
|
||||||
|
{builder.Build()}";
|
||||||
|
var expenseDict = new Dictionary<int, List<FamilyMember_ExpenseBudget>>();
|
||||||
|
var expenseBudget = connection.Query<ExpenseBudget, FamilyMember_ExpenseBudget, ExpenseBudget>(querySelect,
|
||||||
|
(expense, fmExpense) =>
|
||||||
|
{
|
||||||
|
if (!expenseDict.TryGetValue(expense.Id, out var fme))
|
||||||
|
{
|
||||||
|
fme = [];
|
||||||
|
expenseDict.Add(expense.Id, fme);
|
||||||
|
}
|
||||||
|
|
||||||
|
fme.Add(fmExpense);
|
||||||
|
return expense;
|
||||||
|
}, splitOn: "ExpenseBudgetCategoryId", param: new { dateFrom, dateTo, familyMemberId, BudgetExpenseId });
|
||||||
|
_logger.LogDebug("Полученные объекты: {json}",
|
||||||
|
JsonConvert.SerializeObject(expenseBudget));
|
||||||
|
|
||||||
|
return expenseDict.Select(x =>
|
||||||
|
{
|
||||||
|
var pi = expenseBudget.First(y => y.Id == x.Key);
|
||||||
|
pi.SetExpenseBudget(x.Value);
|
||||||
|
return pi;
|
||||||
|
}).ToArray();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.LogError(ex, "Ошибка при чтении объектов");
|
_logger.LogError(ex, "Ошибка при чтении объектов");
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -99,48 +99,58 @@ namespace FamilyBudget.Repositories.Implementations
|
|||||||
var builder = new QueryBuilder();
|
var builder = new QueryBuilder();
|
||||||
if (dateFrom.HasValue)
|
if (dateFrom.HasValue)
|
||||||
{
|
{
|
||||||
builder.AddCondition("pi.DataReciept >= @dateForm");
|
builder.AddCondition("ib.Date >= @dateFrom");
|
||||||
}
|
}
|
||||||
if (dateTo.HasValue)
|
if (dateTo.HasValue)
|
||||||
{
|
{
|
||||||
builder.AddCondition("pi.DataReciept <= @dateTo");
|
builder.AddCondition("ib.Date <= @dateTo");
|
||||||
}
|
}
|
||||||
if (familyMemberId.HasValue)
|
if (familyMemberId.HasValue)
|
||||||
{
|
{
|
||||||
builder.AddCondition("pi.PeopleId = @peopleId");
|
builder.AddCondition("ib.familyMemberId = @familyMemberId");
|
||||||
}
|
}
|
||||||
if (BudgetIncomeId.HasValue)
|
if (BudgetIncomeId.HasValue)
|
||||||
{
|
{
|
||||||
builder.AddCondition("ipi.IncomeId = @incomeId");
|
builder.AddCondition("fmib.IncomeBudgetCategoryId = @BudgetIncomeId");
|
||||||
}
|
}
|
||||||
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
||||||
var querySelect = $@"SELECT ib.*, CONCAT(fm.Name, ' ', f.Name) as people,
|
var querySelect = $@"SELECT
|
||||||
fmib.incomebudgetId, fmib.sum,
|
ib.Id,
|
||||||
fmib.incomebudgetcategoryid FROM incomeBudget ib
|
ib.FamilyMemberId,
|
||||||
LEFT JOIN familymember_incomebudget fmib on fmib.incomebudgetid = ib.id
|
CONCAT(fm.Name, ' ', f.Name) AS FullName,
|
||||||
LEFT JOIN Familymember fm on fm.Id = fmib.familymemberid
|
ib.Date,
|
||||||
LEFT JOIN Family f on f.Id = fm.familyid
|
fmib.IncomeBudgetId,
|
||||||
|
fmib.IncomeBudgetCategoryId,
|
||||||
|
fmib.Sum,
|
||||||
|
i.Name AS IncomeName
|
||||||
|
FROM incomeBudget ib
|
||||||
|
LEFT JOIN familymember_incomebudget fmib ON fmib.incomebudgetid = ib.id
|
||||||
|
INNER JOIN Familymember fm ON fm.Id = ib.FamilyMemberId
|
||||||
|
LEFT JOIN Family f ON f.Id = fm.FamilyId
|
||||||
|
LEFT JOIN incomebudgetcategory i ON i.Id = fmib.IncomeBudgetCategoryId
|
||||||
{builder.Build()}";
|
{builder.Build()}";
|
||||||
// var incomeDict = new Dictionary<int, List<FamilyMember_IncomeBudget>>();
|
var incomeDict = new Dictionary<int, List<FamilyMember_IncomeBudget>>();
|
||||||
// var peopleIncomes = connection.Query<FamilyMember, Family, IncomeBudget, FamilyMember_IncomeBudget>(querySelect,
|
var incomesBudget = connection.Query<IncomeBudget, FamilyMember_IncomeBudget, IncomeBudget>(querySelect,
|
||||||
// (income, peopleIncomes) =>
|
(income, fmIncome) =>
|
||||||
// {
|
{
|
||||||
// if (!incomeDict.TryGetValue(income.Id, out var fmi))
|
if (!incomeDict.TryGetValue(income.Id, out var fmi))
|
||||||
// {
|
{
|
||||||
// fmi = [];
|
fmi = [];
|
||||||
// incomeDict.Add(income.Id, fmi);
|
incomeDict.Add(income.Id, fmi);
|
||||||
// }
|
}
|
||||||
|
|
||||||
// fmi.Add(peopleIncomes);
|
fmi.Add(fmIncome);
|
||||||
// return income;
|
return income;
|
||||||
// }, splitOn: "IncomeId", param: new { dateFrom, dateTo, familyMemberId, BudgetIncomeId });
|
}, splitOn: "IncomeBudgetCategoryId", param: new { dateFrom, dateTo, familyMemberId, BudgetIncomeId });
|
||||||
// _logger.LogDebug("Полученные объекты: {json}",
|
_logger.LogDebug("Полученные объекты: {json}",
|
||||||
|
JsonConvert.SerializeObject(incomesBudget));
|
||||||
|
|
||||||
//_logger.LogDebug("Полученные объекты: {json}",
|
return incomeDict.Select(x =>
|
||||||
// JsonConvert.SerializeObject(incomesBudget));
|
{
|
||||||
// return incomesBudget.GroupBy(x => x.Id, y => y, (key, value) => IncomeBudget.CreateOperation(value.First(),
|
var pi = incomesBudget.First(y => y.Id == x.Key);
|
||||||
// value.Select(z => FamilyMember_IncomeBudget.CreateElement(0, z.IncomeBudgetCategoryID, z.Id, z.Sum)))).ToList();
|
pi.SetIncomeBudget(x.Value);
|
||||||
return null;
|
return pi;
|
||||||
|
}).ToArray();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user