예제 #1
0
        public GncMultiAmount Clone()
        {
            var result = new GncMultiAmount();

            result.Timepoint    = Timepoint;
            result._commodities = new AutoDictionary <GncCommodity, decimal>(_commodities);
            return(result);
        }
예제 #2
0
        public GncMultiAmount GetTotalWithSubaccounts(DateInterval interval)
        {
            var result = new GncMultiAmount();

            foreach (var split in EnumSplits(true).Where(spl => interval.Contains(spl.Transaction.DatePosted)))
            {
                result.AddInplace(split.Amount);
            }
            return(result);
        }
예제 #3
0
 public void AddInplace(GncMultiAmount amt)
 {
     foreach (var kvp in amt._commodities)
     {
         _commodities[kvp.Key] += kvp.Value;
     }
     if (Timepoint != amt.Timepoint)
     {
         Timepoint = null;
     }
 }
예제 #4
0
        public GncMultiAmount GetBalanceWithSubaccounts(DateTime asOf)
        {
            var result = new GncMultiAmount();

            foreach (var split in EnumSplits(true).Where(spl => spl.Transaction.DatePosted <= asOf))
            {
                result.AddInplace(split.Amount);
            }
            result.Timepoint = asOf;
            return(result);
        }
예제 #5
0
 public bool Equals(GncMultiAmount other) => this == other;