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; }
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; }
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; }
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(); }