示例#1
0
 static internal InitialBalanceDto Map(TrialBalanceCommand command, InitialBalance initialBalance)
 {
     return(new InitialBalanceDto {
         Command = command,
         Entries = Map(initialBalance.Entries)
     });
 }
 static internal CurrentBalanceDto Map(TrialBalanceCommand command, CurrentBalance currentBalance)
 {
     return(new CurrentBalanceDto {
         Command = command,
         Entries = Map(currentBalance.Entries)
     });
 }
        public void Should_Build_A_Traditional_Consolidated_Trial_Balance()
        {
            TrialBalanceCommand command = new TrialBalanceCommand();

            command.AccountsChartUID = "b2328e67-3f2e-45b9-b1f6-93ef6292204e";
            command.BalancesType     = BalanceEngine.BalancesType.AllAccounts;
            command.ConsolidateBalancesToTargetCurrency = false;

            command.InitialPeriod.FromDate              = TestingConstants.FromDate;
            command.InitialPeriod.ToDate                = TestingConstants.ToDate;
            command.InitialPeriod.ExchangeRateDate      = new DateTime(2021, 01, 15);
            command.InitialPeriod.ExchangeRateTypeUID   = "5923136d-8533-4975-81b9-c8ec3bf18dea";
            command.InitialPeriod.ValuateToCurrrencyUID = "01";

            //command.FinalPeriod.FromDate = new DateTime(2021, 02, 01);
            //command.FinalPeriod.ToDate = new DateTime(2021, 02, 28);
            //command.FinalPeriod.ExchangeRateDate = new DateTime(2021, 02, 15);
            //command.FinalPeriod.ExchangeRateTypeUID = "5923136d-8533-4975-81b9-c8ec3bf18dea";
            //command.FinalPeriod.ValuateToCurrrencyUID = "01";

            command.ShowCascadeBalances = true;
            command.TrialBalanceType    = BalanceEngine.TrialBalanceType.BalanzaValorizadaComparativa;
            command.FromAccount         = "1101";
            command.ToAccount           = "1103";
            command.Ledgers             = new string[] { "2584a757-865c-2025-8025-fa633f200c49" };

            TrialBalanceDto trialBalance = _usecases.BuildTrialBalance(command);

            Assert.NotNull(trialBalance);
            Assert.Equal(command, trialBalance.Command);
            Assert.NotEmpty(trialBalance.Entries);
        }
示例#4
0
        internal void Calculate()
        {
            Assertion.Assert(this.Unprotected,
                             "This balance set is protected. It can not be recalculated.");

            var command = new TrialBalanceCommand {
                AccountsChartUID    = this.AccountsChart.UID,
                TrialBalanceType    = TrialBalanceType.GeneracionDeSaldos,
                InitialPeriod       = { FromDate = this.BalancesDate, ToDate = this.BalancesDate },
                ShowCascadeBalances = true
            };

            var balanceEngine = new TrialBalanceEngine(command);

            TrialBalance trialBalance = balanceEngine.BuildTrialBalance();

            StoredBalanceDataService.DeleteBalances(this);

            var entries = trialBalance.Entries.FindAll(x => ((TrialBalanceEntry)x).CurrentBalance != 0)
                          .Select(x => (TrialBalanceEntry)x);

            foreach (var entry in entries)
            {
                var storedBalance = new StoredBalance(this, entry);

                storedBalance.Save();
            }

            this.CalculationTime = DateTime.Now;

            this.Calculated = true;
            this.Save();

            this.ResetBalances();
        }
示例#5
0
        internal TrialBalance(TrialBalanceCommand command,
                              FixedList <ITrialBalanceEntry> entries)
        {
            Assertion.AssertObject(command, "command");
            Assertion.AssertObject(entries, "entries");

            this.Command = command;
            this.Entries = entries;
        }
示例#6
0
        public SingleObjectModel GetTrialBalance([FromBody] TrialBalanceCommand command)
        {
            base.RequireBody(command);

            using (var usecases = TrialBalanceUseCases.UseCaseInteractor()) {
                TrialBalanceDto trialBalance = usecases.BuildTrialBalance(command);

                return(new SingleObjectModel(this.Request, trialBalance));
            }
        }
        public TrialBalanceDto BuildTrialBalance(TrialBalanceCommand command)
        {
            Assertion.AssertObject(command, "command");

            var trialBalanceEngine = new TrialBalanceEngine(command);

            TrialBalance trialBalance = trialBalanceEngine.BuildTrialBalance();

            return(TrialBalanceMapper.Map(trialBalance));
        }
示例#8
0
        internal DebitCreditBalance(TrialBalanceCommand command,
                                    FixedList <DebitCreditBalanceEntry> entries)
        {
            Assertion.AssertObject(command, "command");
            Assertion.AssertObject(entries, "entries");

            this.LedgerId            = command.LedgerId;
            this.AccountId           = command.AccountId;
            this.SectorId            = command.SectorId;
            this.SubsidiaryAccountId = command.SubsidiaryAccountId;
            this.Balance             = command.Balance;
            this.Entries             = entries;
        }
示例#9
0
        public SingleObjectModel GetExcelTrialBalance([FromBody] TrialBalanceCommand command)
        {
            base.RequireBody(command);

            using (var usecases = TrialBalanceUseCases.UseCaseInteractor()) {
                TrialBalanceDto trialBalance = usecases.BuildTrialBalance(command);

                var excelExporter = new ExcelExporter();

                ExcelFileDto excelFileDto = excelExporter.Export(trialBalance, command);

                return(new SingleObjectModel(this.Request, excelFileDto));
            }
        }
示例#10
0
        private void SetHeader(TrialBalanceCommand command)
        {
            _excelFile.SetCell($"A2", _templateConfig.Title);

            var subTitle = $"Del {command.InitialPeriod.FromDate.ToString("dd/MMM/yyyy")} " +
                           $"al {command.InitialPeriod.ToDate.ToString("dd/MMM/yyyy")}";

            if (command.ValuateBalances)
            {
                subTitle += $". Saldos valorizados al {command.InitialPeriod.ExchangeRateDate.ToString("dd/MMM/yyyy")}.";
            }

            _excelFile.SetCell($"A3", subTitle);
        }
        public void Should_Build_A_Traditional_No_Consolidated_Trial_Balance()
        {
            TrialBalanceCommand command = new TrialBalanceCommand();

            command.TrialBalanceType       = BalanceEngine.TrialBalanceType.Balanza;
            command.ShowCascadeBalances    = true;
            command.InitialPeriod.FromDate = TestingConstants.FromDate;
            command.InitialPeriod.ToDate   = TestingConstants.ToDate;

            TrialBalanceDto trialBalance = _usecases.BuildTrialBalance(command);

            Assert.NotNull(trialBalance);
            Assert.Equal(command, trialBalance.Command);
            Assert.NotEmpty(trialBalance.Entries);
        }
示例#12
0
        public ExcelFileDto Export(TrialBalanceDto trialBalance, TrialBalanceCommand command)
        {
            Assertion.AssertObject(trialBalance, "trialBalance");
            Assertion.AssertObject(command, "command");

            var templateUID = $"TrialBalanceTemplate.{trialBalance.Command.TrialBalanceType}";

            var templateConfig = ExcelTemplateConfig.Parse(templateUID);

            var creator = new TrialBalanceExcelFileCreator(templateConfig);

            ExcelFile excelFile = creator.CreateExcelFile(trialBalance);

            return(ExcelFileMapper.Map(excelFile));
        }
        internal InitialBalance(TrialBalanceCommand command,
                                FixedList <InitialBalanceEntry> entries)
        {
            Assertion.AssertObject(command, "command");
            Assertion.AssertObject(entries, "entries");

            this.LedgerId            = command.LedgerId;
            this.LedgerAccountId     = command.LedgerAccountId;
            this.AccountId           = command.AccountId;
            this.SectorId            = command.SectorId;
            this.SubsidiaryAccountId = command.SubsidiaryAccountId;
            this.CurrencyId          = command.CurrencyId;
            this.Total   = command.InitialBalance;
            this.Entries = entries;
        }
 public BalanzaTradicional(TrialBalanceCommand command)
 {
     _command = command;
 }
 public SaldosPorAuxiliar(TrialBalanceCommand command)
 {
     _command = command;
 }
        internal TrialBalanceEngine(TrialBalanceCommand command)
        {
            Assertion.AssertObject(command, "command");

            this.Command = command;
        }
 public BalanzaComparativa(TrialBalanceCommand command)
 {
     _command = command;
 }
 public AnaliticoDeCuentas(TrialBalanceCommand command)
 {
     _command = command;
 }
 internal TrialBalanceHelper(TrialBalanceCommand command)
 {
     _command = command;
 }