示例#1
0
 public CashMutationViewGop(IGeneralOperationsBooking booking, ICashSubPosition position, bool isSettled)
 {
     this.Booking = booking;
     this.Position = position;
     setTransactionType();
     this.SearchKey = "G" + Booking.Key.ToString();
     CreationDate = Booking.CreationDate;
     TransactionDate = Booking.BookDate;
     this.IsSettled = isSettled;
     setGopValue();
 }
示例#2
0
 public CashMutationViewTX(ITransaction trade, ICashSubPosition position)
 {
     this.Trade = trade;
     this.Position = position;
     setTransactionType();
     this.SearchKey = "T" + Trade.Key.ToString();
     CreationDate = Trade.CreationDate;
     TransactionDate = Trade.TransactionDate;
     Money amount = null;
     if (position != null && position.SettledFlag == CashPositionSettleStatus.UnSettled &&
         ((ICashSubPositionUnSettled)position).UnSettledType != null && !((ICashSubPositionUnSettled)position).UnSettledType.IsDefault)
         amount = trade.TradingJournalEntry.Lines.Where(x => x.ParentSubPosition != null && x.ParentSubPosition.Key == position.Key).Select(x => x.Balance).Sum();
     else
         amount = trade.TotalAmount;
     this.Amount = amount;
 }
示例#3
0
        private static CashDetailLineCollection GetCashDetailLines(IDalSession session, ICashSubPosition position)
        {
            IAccountTypeInternal account = position.ParentPosition.Account;
            CashDetailLineCollection newColl = new CashDetailLineCollection(account);
            IList<IJournalEntryLine> lines = position.JournalLines.ToList();

            var grouping = from c in lines
                           group c by
                           new { groupKey = c.GroupingKey, TxDate = c.Parent.TransactionDate, IsTx = c.GroupingbyTransaction };

            foreach (var key in grouping)
            {
                bool IsTx = key.Key.IsTx;
                if (!IsTx)
                    newColl.AddcashLine(key.ElementAt(0));
                else
                    newColl.AddTradeLine(key.ToList());
            }

            return newColl;
        }
        public static DataView GetCashPositionTransactions(IDalSession session, ICashSubPosition position,
                                                           DateTime beginDate, DateTime endDate,
                                                           bool retrieveNonClientDisplayable, string sortColumn)
        {
            string[] sortExprs = sortColumn.Split(' ');
            string sortDirection = "ASC";
            if (sortExprs.Length > 1)
                sortDirection = sortExprs[1];

            if (Util.IsNullDate(beginDate))
                beginDate = SqlDateTime.MinValue.Value;
            if (Util.IsNullDate(endDate))
                endDate = SqlDateTime.MaxValue.Value;

            DataSet ds = getCashPosTxDetails(session, position, retrieveNonClientDisplayable)
                .Where(x => x.TransactionDate >= beginDate && x.TransactionDate <= endDate)
                .Select(ptx => new
                {
                    ptx.Key,
                    ptx.TransactionType,
                    ptx.SearchKey,
                    ptx.FullDescription,
                    ptx.AmountQuantity,
                    ptx.DisplayAmount,
                    ptx.Saldo,
                    SaldoQuantity = ptx.Saldo.Quantity,
                    ptx.TransactionDate,
                    ptx.CreationDate
                })
                .ToDataSet();

            DataView dv = ds.Tables[0].DefaultView;
            string sortExpression = sortExprs[0] + " " + sortDirection;
            if (sortExprs[0].ToLower() == "transactiondate")
                sortExpression += ", Key " + sortDirection;
            dv.Sort = sortExpression;
            return dv;
        }
示例#5
0
        public BuyingPowerDisplay(ICashSubPosition subPosition, bool repeat, IAccountTypeInternal account)
        {
            ICashPosition position = subPosition.ParentPosition;
            this.PositionID = position.Key;
            this.SubPositionID = subPosition.Key;
            if (subPosition.SettledFlag == CashPositionSettleStatus.UnSettled)
            {
                ICashSubPositionUnSettled unSettlPos = (ICashSubPositionUnSettled)subPosition;
                if (unSettlPos.UnSettledType != null && unSettlPos.UnSettledType.IncludeBuyingPower && !unSettlPos.UnSettledType.IsDefault)
                {
                    this.LineDescription = ((ICashSubPositionUnSettled)subPosition).UnSettledType.Description;
                    if (!subPosition.ParentPosition.PositionCurrency.IsBase)
                        this.LineDescription += " " + position.PositionCurrency.Name;
                    this.IsUnSettledIncludeBuyingPower = true;
                }
            }
            else
            {
                if (repeat) this.LineDescription = position.PositionCurrency.Name;
            }

            this.Status = subPosition.SettledFlag.ToString();
            this.Value = subPosition.Size;
            if (position.PositionCurrency.ExchangeRate != null)
                this.ExRate = position.PositionCurrency.ExchangeRate.Rate;
            else
            {
                if (position.PositionCurrency.IsBase)
                    this.ExRate = 1M;
                else
                    this.ExRate = 0M;
            }
            this.BaseValue = subPosition.SizeInBaseCurrency;
            this.IsSubTotalLine = false;
            this.IsCashFundLine = false;
            this.IsCashLine = true;
        }
示例#6
0
 private Money getPositionSize(ICashSubPosition position)
 {
     Money returnValue;
     if (position != null)
         returnValue = position.Size;
     else
         returnValue = new Money(0m, this.Account.BaseCurrency);
     return returnValue;
 }
 /// <summary>
 /// Used by the client site.
 /// </summary>
 public static DataView GetCashPositionTransactions(IDalSession session, ICashSubPosition position, string sortColumn)
 {
     return GetCashPositionTransactions(session, position, SqlDateTime.MinValue.Value, SqlDateTime.MaxValue.Value, false, sortColumn);
 }
        private static List<CashPosTxHelper> getCashPosTxDetails(IDalSession session, ICashSubPosition position, bool retrieveNonClientDisplayable)
        {
            Money runningTotal = position.ParentPosition.CurrentValue.ZeroedAmount();
            List<ICashMutationView> list = AccountMapper.GetCashPositionTransactions(
                session, position,
                SqlDateTime.MinValue.Value, SqlDateTime.MaxValue.Value,
                retrieveNonClientDisplayable);

            return list
                .OrderBy(ptx => ptx.TransactionDate)
                .ThenBy(ptx => ptx.Key)
                .Select(ptx => new CashPosTxHelper(
                    ptx.Key,
                    ptx.TransactionType,
                    ptx.SearchKey,
                    ptx.FullDescription,
                    ptx.Amount.Quantity,
                    ptx.DisplayAmount,
                    ptx.TransactionDate,
                    ptx.CreationDate,
                    runningTotal += ptx.Amount)
                ).ToList();
        }