private static bool CreateManagementFeeBookingsforDate(IDalSession session, IList listofFees,
            IMemorialBooking feeBookings, IGLAccount clientTaxAccount, IGLAccount clientFeeAccount,
            IGLAccount clientFixedCostsAccount, IGLAccount taxAccount)
        {
            //foreach (IManagementFee imf in listofFees)
            //{
            //    foreach (MgtFeeBreakupLine line in imf.FeeDetails.BreakupLines)
            //    {
            //        if (line.Amount.IsNotZero)
            //        {
            //            IAccountTypeInternal account = line.Transaction.AccountA;
            //            IJournalEntryLine newLineClient = new JournalEntryLine();
            //            IJournalEntryLine newLineCP = new JournalEntryLine();
            //            IJournalEntryLine newLineClientTax = new JournalEntryLine();
            //            IJournalEntryLine newLineCPTax = new JournalEntryLine();

            //            switch (line.MgtFeeType.Key)
            //            {
            //                case FeeTypes.AdministrationCosts:
            //                case FeeTypes.FixedFee:
            //                    newLineClient.GLAccount = clientFixedCostsAccount;
            //                    newLineCP.GLAccount = account.AccountOwner.ManagementFeeFixedCostsAccount;
            //                    break;
            //                default:
            //                    newLineClient.GLAccount = clientFeeAccount;
            //                    newLineCP.GLAccount = account.AccountOwner.ManagementFeeIncomeAccount;
            //                    break;
            //            }

            //            newLineClientTax.GLAccount = clientTaxAccount;
            //            newLineCPTax.GLAccount = taxAccount;

            //            newLineClient.Balance = line.Amount;
            //            newLineCP.Balance = line.Amount.Negate();
            //            if ((line.Tax != null) && (line.Tax.IsNotZero))
            //            {
            //                newLineClientTax.Balance = line.Tax;
            //                newLineCPTax.Balance = line.Tax.Negate();
            //            }

            //            newLineClient.GiroAccount = account;
            //            newLineClientTax.GiroAccount = account;

            //            newLineClient.TotalGiroTrade = line.Transaction;
            //            newLineCP.TotalGiroTrade = line.Transaction;
            //            newLineClientTax.TotalGiroTrade = line.Transaction;
            //            newLineCPTax.TotalGiroTrade = line.Transaction;

            //            feeBookings.Lines.Add(newLineClient);
            //            feeBookings.Lines.Add(newLineCP);
            //            feeBookings.Lines.Add(newLineClientTax);
            //            feeBookings.Lines.Add(newLineCPTax);

            //        }
            //    }
            //}

            return true;
        }
Exemple #2
0
 public ICashSubPosition GetSubPosition(IGLAccount glAccount)
 {
     ICashSubPosition subPosition;
     CashPositionSettleStatus settleStatus = glAccount.IsSettledWithClient ? CashPositionSettleStatus.Settled : CashPositionSettleStatus.UnSettled;
     switch (settleStatus)
     {
         case CashPositionSettleStatus.Settled:
             if (SettledPosition == null) SettledPosition = new CashSubPositionSettled(this);
             subPosition = SettledPosition;
             break;
         case CashPositionSettleStatus.UnSettled:
             if (UnSettledPositions.GetSubPosition(glAccount.UnSettledType) == null) UnSettledPositions.AddSubPosition(new CashSubPositionUnSettled(this, glAccount.UnSettledType));
             subPosition = UnSettledPositions.GetSubPosition(glAccount.UnSettledType);
             break;
         default:
             subPosition = SettledPosition;
             break;
     }
     return subPosition;
 }
Exemple #3
0
        public bool Settle(IJournal journal, string nextJournalEntryNumber, IGLAccount settleDiffGLAccount)
        {
            bool success = false;
            if ((TradeStatements != null && TradeStatements.Count > 0) && (BankSettlements != null && BankSettlements.Count > 0))
            {
                // TODO -> What if not in base currency????
                Money diff = SettleDifference;
                foreach (ITradingJournalEntry journalEntry in TradeStatements)
                {
                    ((IOrderExecution)journalEntry.Trade).SettleExternal(SettlementDate);
                }

                if (diff != null && diff.IsNotZero)
                {
                    MemorialBooking = new MemorialBooking(journal, nextJournalEntryNumber);
                    MemorialBooking.TransactionDate = SettlementDate;
                    MemorialBooking.Description = "Settlement Difference";

                    IGLAccount glAcctA = BankSettlements[0].GLAccount;
                    IGLAccount glAcctB = settleDiffGLAccount;

                    IJournalEntryLine sideA = new JournalEntryLine();
                    sideA.GLAccount = glAcctA;
                    sideA.Balance = diff.Negate();
                    sideA.Description = MemorialBooking.Description;
                    sideA.IsSettledStatus = true;
                    sideA.ValueDate = SettlementDate;
                    MemorialBooking.Lines.AddJournalEntryLine(sideA);

                    IJournalEntryLine sideB = new JournalEntryLine();
                    sideB.GLAccount = glAcctB;
                    sideB.Balance = diff;
                    sideB.Description = MemorialBooking.Description;
                    sideB.IsSettledStatus = true;
                    sideB.ValueDate = SettlementDate;
                    MemorialBooking.Lines.AddJournalEntryLine(sideB);

                    MemorialBooking.BookLines();
                }
                success = true;
            }
            return success;
        }
Exemple #4
0
 internal void clientSettle(IJournalEntry clientSettleJournal, IJournalEntryLine newLine, IGLAccount account, Money balance, IBookingComponent bookingComponent, IAccountTypeInternal giroAccount)
 {
     newLine.GLAccount = account;
     newLine.Balance = balance;
     newLine.BookComponent = bookingComponent;
     newLine.GiroAccount = giroAccount;
     newLine.IsSettledStatus = true;
     clientSettleJournal.Lines.AddJournalEntryLine(newLine);
     newLine.BookLine();
 }