private string GetOutputFields()
 {
     if (_command.DoNotReturnSubledgerAccounts && _command.Consolidated)
     {
         return("-1 AS ID_MAYOR, ID_MONEDA, ID_CUENTA_ESTANDAR, -1 AS ID_CUENTA, " +
                "NUMERO_CUENTA_ESTANDAR, ID_SECTOR, -1 AS ID_CUENTA_AUXILIAR, " +
                "SALDO_ANTERIOR, DEBE, HABER, SALDO_ACTUAL");
     }
     else if (_command.DoNotReturnSubledgerAccounts && _command.ShowCascadeBalances)
     {
         return("ID_MAYOR, ID_MONEDA, ID_CUENTA_ESTANDAR, NUMERO_CUENTA_ESTANDAR, ID_SECTOR, " +
                "ID_CUENTA, -1 AS ID_CUENTA_AUXILIAR, SALDO_ANTERIOR, DEBE, HABER, SALDO_ACTUAL");
     }
     else if (_command.ReturnSubledgerAccounts && _command.Consolidated)
     {
         return("-1 AS ID_MAYOR, ID_MONEDA, ID_CUENTA_ESTANDAR, NUMERO_CUENTA_ESTANDAR, ID_SECTOR, " +
                "-1 AS ID_CUENTA, ID_CUENTA_AUXILIAR, SALDO_ANTERIOR, DEBE, HABER, SALDO_ACTUAL");
     }
     else if (_command.ReturnSubledgerAccounts && _command.ShowCascadeBalances)
     {
         return("ID_MAYOR, ID_MONEDA, ID_CUENTA_ESTANDAR, NUMERO_CUENTA_ESTANDAR, ID_SECTOR, " +
                "ID_CUENTA, ID_CUENTA_AUXILIAR, SALDO_ANTERIOR, DEBE, HABER, SALDO_ACTUAL");
     }
     else
     {
         throw Assertion.AssertNoReachThisCode();
     }
 }
Ejemplo n.º 2
0
        static private FixedList <ITrialBalanceEntryDto> Map(TrialBalanceCommand command,
                                                             FixedList <ITrialBalanceEntry> list)
        {
            switch (command.TrialBalanceType)
            {
            case TrialBalanceType.AnaliticoDeCuentas:

                var mi = list.Select((x) => MapToTwoCurrenciesBalanceEntry((TwoCurrenciesBalanceEntry)x));
                return(new FixedList <ITrialBalanceEntryDto>(mi));

            case TrialBalanceType.Balanza:
            case TrialBalanceType.BalanzaConAuxiliares:
            case TrialBalanceType.GeneracionDeSaldos:
            case TrialBalanceType.Saldos:
            case TrialBalanceType.SaldosPorAuxiliar:
            case TrialBalanceType.SaldosPorCuenta:
            case TrialBalanceType.SaldosPorCuentaYMayor:

                var mappedItems = list.Select((x) => MapToTrialBalance((TrialBalanceEntry)x));
                return(new FixedList <ITrialBalanceEntryDto>(mappedItems));

            case TrialBalanceType.BalanzaValorizadaComparativa:

                var mappedItemsComparative = list.Select((x) => MapToTrialBalanceComparative((TrialBalanceEntry)x));
                return(new FixedList <ITrialBalanceEntryDto>(mappedItemsComparative));

            default:
                throw Assertion.AssertNoReachThisCode(
                          $"Unhandled trial balance type {command.TrialBalanceType}.");
            }
        }
            private string GetHavingClause()
            {
                if (_command.BalancesType == BalancesType.AllAccounts)
                {
                    return(string.Empty);
                }

                string clause;

                if (_command.BalancesType == BalancesType.WithCurrentBalance)
                {
                    clause = "SALDO_ACTUAL <> 0";
                }
                else if (_command.BalancesType == BalancesType.WithCurrentBalanceOrMovements)
                {
                    clause = "SALDO_ACTUAL <> 0 OR DEBE <> 0 OR HABER <> 0";
                }
                else if (_command.BalancesType == BalancesType.WithMovements)
                {
                    clause = "DEBE <> 0 OR HABER <> 0";
                }
                else
                {
                    throw Assertion.AssertNoReachThisCode();
                }

                return($"HAVING {clause}");
            }
Ejemplo n.º 4
0
        public Account GetAccount(string accountNumber)
        {
            Account account;

            if (_accounts.Value.TryGetValue(accountNumber, out account))
            {
                return(account);
            }
            throw Assertion.AssertNoReachThisCode($"Account {accountNumber} was not found.");
        }
 private string GetOrderClause()
 {
     if (_command.Consolidated)
     {
         return("ORDER BY ID_MONEDA, NUMERO_CUENTA_ESTANDAR, ID_SECTOR");
     }
     else if (_command.ShowCascadeBalances)
     {
         return("ORDER BY ID_MAYOR, ID_MONEDA, NUMERO_CUENTA_ESTANDAR, ID_SECTOR, ID_CUENTA");
     }
     else
     {
         throw Assertion.AssertNoReachThisCode();
     }
 }
        internal TrialBalance BuildTrialBalance()
        {
            switch (this.Command.TrialBalanceType)
            {
            case TrialBalanceType.AnaliticoDeCuentas:
                var analiticoDeCuentas = new AnaliticoDeCuentas(this.Command);

                return(analiticoDeCuentas.Build());

            case TrialBalanceType.Balanza:
            case TrialBalanceType.BalanzaConAuxiliares:
            case TrialBalanceType.Saldos:
            case TrialBalanceType.SaldosPorCuenta:

                var balanzaTradicional = new BalanzaTradicional(this.Command);
                return(balanzaTradicional.Build());

            case TrialBalanceType.BalanzaValorizadaComparativa:

                var balanzaComparativa = new BalanzaComparativa(this.Command);
                return(balanzaComparativa.Build());

            case TrialBalanceType.GeneracionDeSaldos:

                var saldosConAuxiliares = new SaldosPorAuxiliar(this.Command);
                return(saldosConAuxiliares.BuildForBalancesGeneration());

            case TrialBalanceType.SaldosPorAuxiliar:

                var saldosPorAuxiliar = new SaldosPorAuxiliar(this.Command);
                return(saldosPorAuxiliar.Build());

            case TrialBalanceType.SaldosPorCuentaYMayor:

                var saldosPorCuentaYMayores = new SaldosPorCuentaYMayores(this.Command);
                return(saldosPorCuentaYMayores.Build());

            default:
                throw Assertion.AssertNoReachThisCode(
                          $"Unhandled trial balance type {this.Command.TrialBalanceType}.");
            }
        }
        internal List <TrialBalanceEntry> RestrictLevels(List <TrialBalanceEntry> entries)
        {
            if (_command.Level == 0)
            {
                return(entries);
            }

            if (_command.DoNotReturnSubledgerAccounts)
            {
                return(entries.FindAll(x => x.Level <= _command.Level));
            }
            else if (_command.ReturnSubledgerAccounts)
            {
                return(entries.FindAll(x => x.Level <= _command.Level || x.AccountId != 0));
            }
            else
            {
                throw Assertion.AssertNoReachThisCode();
            }
        }
Ejemplo n.º 8
0
        public async Task NotifyEvent(string filingRequestUID, string eventName)
        {
            Assertion.AssertObject(filingRequestUID, "filingRequestUID");
            Assertion.AssertObject(eventName, "eventName");

            switch (eventName)
            {
            case "TransactionReceived":
            case "TransactionReadyToDelivery":
            case "TransactionReturned":
            case "TransactionArchived":
            case "TransactionReentered":
                await ChangeTransactionStatus(filingRequestUID, eventName)
                .ConfigureAwait(false);

                return;

            default:
                throw Assertion.AssertNoReachThisCode($"Unrecognized external event with name {eventName}.");
            }
        }
Ejemplo n.º 9
0
        private RequestStatus GetNewStatusAfterEvent(string eventName)
        {
            switch (eventName)
            {
            case "TransactionReceived":
                return(RequestStatus.Submitted);

            case "TransactionReadyToDelivery":
                return(RequestStatus.Finished);

            case "TransactionReturned":
                return(RequestStatus.Rejected);

            case "TransactionArchived":
                return(RequestStatus.Finished);

            case "TransactionReentered":
                return(RequestStatus.Submitted);

            default:
                throw Assertion.AssertNoReachThisCode($"Unrecognized external event with name '{eventName}'");
            }
        }
Ejemplo n.º 10
0
        static private string BuildDateRangerFilter(SearchVouchersCommand command)
        {
            if (command.DateSearchField == DateSearchField.None)
            {
                return(string.Empty);
            }

            string filter = $"'{CommonMethods.FormatSqlDate(command.FromDate)}' <= @DATE_FIELD@ AND " +
                            $"@DATE_FIELD@ < '{CommonMethods.FormatSqlDate(command.ToDate.Date.AddDays(1))}'";

            if (command.DateSearchField == DateSearchField.AccountingDate)
            {
                return(filter.Replace("@DATE_FIELD@", "FECHA_AFECTACION"));
            }
            else if (command.DateSearchField == DateSearchField.RecordingDate)
            {
                return(filter.Replace("@DATE_FIELD@", "FECHA_REGISTRO"));
            }
            else
            {
                throw Assertion.AssertNoReachThisCode();
            }
        }
Ejemplo n.º 11
0
        static private SignEvent CreateSignEvent(SignTask signTask, SignRequest signRequest)
        {
            switch (signTask.EventType)
            {
            case SignEventType.Signed:
                string digitalSign = SignData(signTask.SignCredentials,
                                              signRequest.Document.SignInputData);

                return(signRequest.Sign(digitalSign));

            case SignEventType.Refused:
                return(signRequest.Refuse());

            case SignEventType.Revoked:
                return(signRequest.Revoke());

            case SignEventType.Unrefused:
                return(signRequest.Unrefuse());

            default:
                throw Assertion.AssertNoReachThisCode();
            }
        }
 private string GetInitialGroupingClause()
 {
     if (_command.DoNotReturnSubledgerAccounts && _command.Consolidated)
     {
         return("GROUP BY ID_MONEDA, ID_CUENTA_ESTANDAR, ID_SECTOR");
     }
     else if (_command.DoNotReturnSubledgerAccounts && _command.ShowCascadeBalances)
     {
         return("GROUP BY ID_MAYOR, ID_MONEDA, ID_CUENTA_ESTANDAR, ID_SECTOR, ID_CUENTA");
     }
     else if (_command.ReturnSubledgerAccounts && _command.Consolidated)
     {
         return("GROUP BY ID_MONEDA, ID_CUENTA_ESTANDAR, ID_SECTOR, ID_CUENTA_AUXILIAR");
     }
     else if (_command.ReturnSubledgerAccounts && _command.ShowCascadeBalances)
     {
         return("GROUP BY ID_MAYOR, ID_MONEDA, ID_CUENTA_ESTANDAR, ID_SECTOR, ID_CUENTA, ID_CUENTA_AUXILIAR");
     }
     else
     {
         throw Assertion.AssertNoReachThisCode();
     }
 }
Ejemplo n.º 13
0
        private void SetTable(TrialBalanceDto trialBalance)
        {
            switch (trialBalance.Command.TrialBalanceType)
            {
            case TrialBalanceType.AnaliticoDeCuentas:
                FillOutAnaliticoDeCuentas(trialBalance.Entries.Select(x => (TwoColumnsTrialBalanceEntryDto)x));
                return;

            case TrialBalanceType.SaldosPorCuentaYMayor:
                FillOutSaldosPorCuentayMayor(trialBalance.Entries.Select(x => (TrialBalanceEntryDto)x));
                return;

            case TrialBalanceType.Balanza:
            case TrialBalanceType.BalanzaConAuxiliares:
            case TrialBalanceType.Saldos:
            case TrialBalanceType.SaldosPorAuxiliar:
            case TrialBalanceType.SaldosPorCuenta:
                FillOutBalanza(trialBalance.Entries.Select(x => (TrialBalanceEntryDto)x));
                return;

            default:
                throw Assertion.AssertNoReachThisCode();
            }
        }
Ejemplo n.º 14
0
        internal FixedList <DataTableColumn> DataColumns()
        {
            switch (this.Command.TrialBalanceType)
            {
            case TrialBalanceType.AnaliticoDeCuentas:
                return(TwoCurrenciesDataColumns());

            case TrialBalanceType.Balanza:
            case TrialBalanceType.BalanzaConAuxiliares:
            case TrialBalanceType.GeneracionDeSaldos:
            case TrialBalanceType.Saldos:
            case TrialBalanceType.SaldosPorAuxiliar:
            case TrialBalanceType.SaldosPorCuenta:
            case TrialBalanceType.SaldosPorCuentaYMayor:
                return(TrialBalanceDataColumns());

            case TrialBalanceType.BalanzaValorizadaComparativa:
                return(TwoBalancesComparativeDataColumns());

            default:
                throw Assertion.AssertNoReachThisCode(
                          $"Unhandled trial balance type {this.Command.TrialBalanceType}.");
            }
        }
        internal List <TrialBalanceEntry> GenerateSummaryEntries(FixedList <TrialBalanceEntry> entries)
        {
            var summaryEntries       = new EmpiriaHashTable <TrialBalanceEntry>(entries.Count);
            var detailSummaryEntries = new List <TrialBalanceEntry>();

            foreach (var entry in entries)
            {
                entry.DebtorCreditor         = entry.Account.DebtorCreditor;
                entry.SubledgerAccountNumber = SubsidiaryAccount.Parse(entry.SubledgerAccountId).Number ?? "";
                StandardAccount currentParent;

                if (_command.ReturnSubledgerAccounts)
                {
                    currentParent = entry.Account;
                }
                else if (_command.DoNotReturnSubledgerAccounts && entry.Account.HasParent)
                {
                    currentParent = entry.Account.GetParent();
                }
                else if (_command.DoNotReturnSubledgerAccounts && entry.Account.NotHasParent)
                {
                    continue;
                }
                else
                {
                    throw Assertion.AssertNoReachThisCode();
                }

                int cont = 0;
                while (true)
                {
                    entry.DebtorCreditor           = entry.Account.DebtorCreditor;
                    entry.SubledgerAccountIdParent = entry.SubledgerAccountId;

                    SummaryByEntry(summaryEntries, entry, currentParent, entry.Sector,
                                   TrialBalanceItemType.BalanceSummary);

                    cont++;
                    if (cont == 1 && _command.TrialBalanceType == TrialBalanceType.SaldosPorCuenta)
                    {
                        GetDetailSummaryEntries(detailSummaryEntries, summaryEntries, currentParent, entry);
                    }

                    if (!currentParent.HasParent && entry.HasSector)
                    {
                        SummaryByEntry(summaryEntries, entry, currentParent, Sector.Empty,
                                       TrialBalanceItemType.BalanceSummary);
                        break;
                    }
                    else if (!currentParent.HasParent)
                    {
                        break;
                    }
                    else
                    {
                        currentParent = currentParent.GetParent();
                    }
                } // while
            }     // foreach

            if (detailSummaryEntries.Count > 0 && _command.TrialBalanceType == TrialBalanceType.SaldosPorCuenta)
            {
                return(detailSummaryEntries);
            }
            return(summaryEntries.Values.ToList());
        }