AccountingNext/Schaad.Accounting.Common/Datasets/TransactionDataset.cs
Claudio Schaad 7f284b1032 Add booking-text charts to the transactions page
Adds two charts to the per-account transactions view: a stacked bar
chart of monthly totals and a pie chart of overall totals, both
grouped by booking text, so recurring bookings (rent, subscriptions,
etc.) are visible at a glance. Chart components are keyed on the
account id so switching accounts remounts them instead of reusing a
stale Plotly instance.
2026-07-22 14:39:51 +02:00

47 lines
No EOL
1.4 KiB
C#

using System;
using Schaad.Accounting.Models;
namespace Schaad.Accounting.Datasets
{
public class TransactionDataset : Transaction
{
public Account OriginAccount { get; set; }
public Account TargetAccount { get; set; }
public TransactionDataset(Transaction transaction, Account originAccount, Account targetAccout)
{
this.BankTransactionId = transaction.BankTransactionId;
this.Id = transaction.Id;
this.OriginAccountId = transaction.OriginAccountId;
this.TargetAccountId = transaction.TargetAccountId;
this.Text = transaction.Text;
this.Value = transaction.Value;
this.FxRate = transaction.FxRate;
this.ValueDate = transaction.ValueDate;
this.BookingDate = transaction.BookingDate;
this.OriginAccount = originAccount;
this.TargetAccount = targetAccout;
}
public decimal GetValue(bool withFxRate)
{
if (withFxRate && FxRate != 0)
{
return Math.Round(Value / FxRate.Value, 2);
}
else
return Value;
}
public decimal GetValue(bool withFxRate, string accountId)
{
if (accountId == OriginAccountId)
{
return -1 * GetValue(withFxRate);
}
return GetValue(withFxRate);
}
}
}