private void SummaryByGroupEntries(EmpiriaHashTable <TrialBalanceEntry> summaryEntries, TrialBalanceEntry balanceEntry) { TrialBalanceEntry groupEntry = TrialBalanceMapper.MapToTrialBalanceEntry(balanceEntry); groupEntry.GroupName = $"TOTAL GRUPO {balanceEntry.Account.GroupNumber}"; groupEntry.GroupNumber = balanceEntry.Account.GroupNumber; groupEntry.Account = StandardAccount.Empty; groupEntry.Sector = Sector.Empty; groupEntry.DebtorCreditor = balanceEntry.Account.DebtorCreditor; string hash; if (groupEntry.DebtorCreditor == DebtorCreditorType.Deudora) { hash = $"{balanceEntry.Ledger.Id}||{balanceEntry.Currency.Id}||{balanceEntry.Account.GroupNumber}||D"; GenerateOrIncreaseEntries(summaryEntries, groupEntry, StandardAccount.Empty, Sector.Empty, TrialBalanceItemType.BalanceTotalGroupDebtor, hash); } else { hash = $"{balanceEntry.Ledger.Id}||{balanceEntry.Currency.Id}||{balanceEntry.Account.GroupNumber}||A"; GenerateOrIncreaseEntries(summaryEntries, groupEntry, StandardAccount.Empty, Sector.Empty, TrialBalanceItemType.BalanceTotalGroupCreditor, hash); } }
internal void SummaryByCurrencyEntries(EmpiriaHashTable <TrialBalanceEntry> summaryEntries, TrialBalanceEntry balanceEntry, StandardAccount targetAccount, Sector targetSector, TrialBalanceItemType itemType) { TrialBalanceEntry entry = TrialBalanceMapper.MapToTrialBalanceEntry(balanceEntry); if (_command.TrialBalanceType != TrialBalanceType.SaldosPorCuentaYMayor && entry.ItemType == TrialBalanceItemType.BalanceTotalCreditor) { entry.InitialBalance = -1 * entry.InitialBalance; entry.CurrentBalance = -1 * entry.CurrentBalance; } entry.GroupName = "TOTAL MONEDA " + entry.Currency.FullName; string hash; if (_command.TrialBalanceType == TrialBalanceType.SaldosPorCuentaYMayor) { entry.GroupNumber = ""; hash = $"{entry.GroupName}||{entry.Currency.Id}"; } else { hash = $"{entry.GroupName}||{targetSector.Code}||{entry.Currency.Id}||{entry.Ledger.Id}"; } GenerateOrIncreaseEntries(summaryEntries, entry, targetAccount, targetSector, itemType, hash); }
internal List <TrialBalanceEntry> GenerateTotalSummaryConsolidatedByLedger( List <TrialBalanceEntry> summaryCurrencies) { var summaryConsolidatedByLedger = new EmpiriaHashTable <TrialBalanceEntry>(summaryCurrencies.Count); List <TrialBalanceEntry> returnedListEntries = new List <TrialBalanceEntry>(); if (_command.TrialBalanceType == TrialBalanceType.Balanza && _command.ShowCascadeBalances) { foreach (var currencyEntry in summaryCurrencies.Where( a => a.ItemType == TrialBalanceItemType.BalanceTotalCurrency)) { TrialBalanceEntry entry = TrialBalanceMapper.MapToTrialBalanceEntry(currencyEntry); entry.GroupName = $"TOTAL CONSOLIDADO {entry.Ledger.FullName}"; entry.Currency = Currency.Empty; string hash = $"{entry.Ledger.Id}||{entry.GroupName}||{Sector.Empty.Code}"; GenerateOrIncreaseEntries(summaryConsolidatedByLedger, entry, StandardAccount.Empty, Sector.Empty, TrialBalanceItemType.BalanceTotalConsolidatedByLedger, hash); } returnedListEntries.AddRange(summaryConsolidatedByLedger.Values.ToList()); } return(returnedListEntries.OrderBy(a => a.Ledger.Number).ToList()); }
internal List <TrialBalanceEntry> GenerateTotalSummaryConsolidated(List <TrialBalanceEntry> balanceEntries) { var totalSummaryConsolidated = new EmpiriaHashTable <TrialBalanceEntry>(balanceEntries.Count); foreach (var currencyEntry in balanceEntries.Where( a => a.ItemType == TrialBalanceItemType.BalanceTotalCurrency)) { TrialBalanceEntry entry = TrialBalanceMapper.MapToTrialBalanceEntry(currencyEntry); entry.GroupName = "TOTAL CONSOLIDADO GENERAL"; string hash; if (_command.TrialBalanceType == TrialBalanceType.SaldosPorCuentaYMayor || (_command.TrialBalanceType == TrialBalanceType.Balanza && _command.ShowCascadeBalances)) { hash = $"{entry.GroupName}"; entry.GroupNumber = ""; } else { hash = $"{entry.GroupName}||{Sector.Empty.Code}||{entry.Ledger.Id}"; } GenerateOrIncreaseEntries(totalSummaryConsolidated, entry, StandardAccount.Empty, Sector.Empty, TrialBalanceItemType.BalanceTotalConsolidated, hash); } balanceEntries.AddRange(totalSummaryConsolidated.Values.ToList()); return(balanceEntries); }
public TrialBalanceDto BuildTrialBalance(TrialBalanceCommand command) { Assertion.AssertObject(command, "command"); var trialBalanceEngine = new TrialBalanceEngine(command); TrialBalance trialBalance = trialBalanceEngine.BuildTrialBalance(); return(TrialBalanceMapper.Map(trialBalance)); }
internal void SummaryBySubsidiaryEntry(EmpiriaHashTable <TrialBalanceEntry> summaryEntries, TrialBalanceEntry entry, TrialBalanceItemType itemType) { TrialBalanceEntry balanceEntry = TrialBalanceMapper.MapToTrialBalanceEntry(entry); balanceEntry.SubledgerAccountIdParent = entry.SubledgerAccountIdParent; string hash = $"{entry.Account.Number}||{entry.Sector.Code}||{entry.Currency.Id}||{entry.Ledger.Id}"; GenerateOrIncreaseEntries(summaryEntries, balanceEntry, StandardAccount.Empty, Sector.Empty, itemType, hash); }
internal void SummaryByLedgersGroupEntries(EmpiriaHashTable <TrialBalanceEntry> totalsListByGroupEntries, TrialBalanceEntry balanceEntry) { TrialBalanceEntry groupEntry = TrialBalanceMapper.MapToTrialBalanceEntry(balanceEntry); groupEntry.GroupName = $"TOTAL GRUPO {balanceEntry.Account.GroupNumber}"; groupEntry.GroupNumber = balanceEntry.Account.GroupNumber; groupEntry.Account = StandardAccount.Empty; groupEntry.Sector = Sector.Empty; groupEntry.DebtorCreditor = balanceEntry.Account.DebtorCreditor; string hash = $"{balanceEntry.Account.GroupNumber}||{balanceEntry.Currency.Id}||{balanceEntry.Sector.Code}"; GenerateOrIncreaseEntries(totalsListByGroupEntries, groupEntry, StandardAccount.Empty, Sector.Empty, TrialBalanceItemType.BalanceTotalGroupDebtor, hash); }
internal void SummaryByAccount(EmpiriaHashTable <TrialBalanceEntry> summaryEntries, TrialBalanceEntry balanceEntry, StandardAccount targetAccount, Sector targetSector, TrialBalanceItemType itemType) { TrialBalanceEntry entry = TrialBalanceMapper.MapToTrialBalanceEntry(balanceEntry); entry.Ledger = Ledger.Empty; entry.GroupName = entry.Account.Name.ToUpper(); entry.InitialBalance = 0; entry.Debit = 0; entry.Credit = 0; entry.CurrentBalance = 0; string hash = $"{targetAccount.Number}||{targetSector.Code}||{entry.Currency.Id}||{entry.Ledger.Id}"; GenerateOrIncreaseEntries(summaryEntries, entry, targetAccount, targetSector, itemType, hash); }
private void SummaryByDebtorCreditorEntries(EmpiriaHashTable <TrialBalanceEntry> summaryEntries, TrialBalanceEntry balanceEntry, StandardAccount targetAccount, Sector targetSector, TrialBalanceItemType itemType) { TrialBalanceEntry entry = TrialBalanceMapper.MapToTrialBalanceEntry(balanceEntry); if (itemType == TrialBalanceItemType.BalanceTotalDebtor) { entry.GroupName = "TOTAL DEUDORAS " + entry.Currency.FullName; } else if (itemType == TrialBalanceItemType.BalanceTotalCreditor) { entry.GroupName = "TOTAL ACREEDORAS " + entry.Currency.FullName; } string hash = $"{entry.GroupName}||{targetSector.Code}||{entry.Currency.Id}||{entry.Ledger.Id}"; GenerateOrIncreaseEntries(summaryEntries, entry, targetAccount, targetSector, itemType, hash); }