コード例 #1
0
        private LogDeOperacaoDeRemuneracaoBD AdicionaInformacaoDeContexto(ILogDeOperacaoDeRemuneracao info)
        {
            LogDeOperacaoDeRemuneracaoBD logDeOperacaoDeRemuneracaoBD = new LogDeOperacaoDeRemuneracaoBD(info);

            logDeOperacaoDeRemuneracaoBD.IdContaExecutora = _contextoDeConexao.IdContaUsuario;

            return(logDeOperacaoDeRemuneracaoBD);
        }
コード例 #2
0
        public async Task PagarRemuneracao(IRemuneracaoPaga remuneracao, ILogDeOperacaoDeRemuneracao informacaoDeAuditoria = null)
        {
            RemuneracoesPagasBD    remuneracaoBD = new RemuneracoesPagasBD(remuneracao);
            EmissaoDeRemuneracaoBD emissao       = remuneracaoBD.EmissaoDeRemuneracao;

            using (RemuneracaoContext context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao))
            {
                emissao.Remuneracao_Paga = true;
                context.Emissoes.Update(emissao);
                context.RemuneracoesPagas.Add(remuneracaoBD);
                await context.SaveChangesAsync();
            }
        }
コード例 #3
0
        private IEnumerable <ILogDeOperacaoDeRemuneracao> GeraLogsParaAuditoria(Dinheiro desconto, Dinheiro bonus, IFechamentoDeRemuneracao fechamento)
        {
            List <ILogDeOperacaoDeRemuneracao> logs = new List <ILogDeOperacaoDeRemuneracao>();

            if (desconto != default(Dinheiro))
            {
                ILogDeOperacaoDeRemuneracao logDesconto = _logger.CriaLogDeDesconto(fechamento, desconto);
                logs.Add(logDesconto);
            }

            if (bonus != default(Dinheiro))
            {
                ILogDeOperacaoDeRemuneracao logBonus = _logger.CriaLogDeBonus(fechamento, bonus);
                logs.Add(logBonus);
            }

            return(logs);
        }
コード例 #4
0
        public async Task <IEnumerable <IEmissaoDeRemuneracao> > AdicionarEmissoesAsync(IEnumerable <IEmissaoDeRemuneracao> emissoes, ILogDeOperacaoDeRemuneracao informacaoDeAuditoria = null)
        {
            ConcurrentQueue <EmissaoDeRemuneracaoBD> emissoesBD = new ConcurrentQueue <EmissaoDeRemuneracaoBD>();

            foreach (IEmissaoDeRemuneracao emissao in emissoes)
            {
                EmissaoDeRemuneracaoBD emissaoBD = new EmissaoDeRemuneracaoBD(emissao)
                {
                    ContaExecutoraDaEmissao = _contextoDeConexao.IdContaUsuario,
                    Remuneracao_Paga        = false
                };

                emissoesBD.Enqueue(emissaoBD);
            }

            using (var context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao))
            {
                context.RemuneracoesEmitidas.AddRange(emissoesBD.SelectMany(emiss => emiss.RemuneracoesEmitidas).ToArray());

                await context.SaveChangesAsync();

                context.Emissoes.AddRange(emissoesBD);

                await context.SaveChangesAsync();
            }

            IEnumerable <IEmissaoDeRemuneracao> emissaoSalva = emissoesBD.Select(emissBD => emissBD.ConverteParaModelo());

            return(emissaoSalva);
        }
コード例 #5
0
        public async Task <IEnumerable <IFechamentoDeRemuneracao> > AdicionarFechamentosAsync(IEnumerable <IFechamentoDeRemuneracao> fechamentos, ILogDeOperacaoDeRemuneracao informacaoDeAuditoria = null)
        {
            IEnumerable <FechamentoDeRemuneracaoBD> fechamentosBD = fechamentos.Select(fechamento => ConverteParaModeloSQLBD(fechamento)).ToArray();

            using (var context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao))
            {
                LancamentoDeFechamentoDeRemuneracaoBD[] lancamentosDeRemuneracao = fechamentosBD.SelectMany(fec => fec.LancamentosDeRemuneracao.ToArray()).ToArray();
                context.LancamentosDeFechamento.AddRange(lancamentosDeRemuneracao.ToArray());


                await context.SaveChangesAsync();

                foreach (var fechamentoBD in fechamentosBD)
                {
                    foreach (var remFec in fechamentoBD.LancamentosDeRemuneracao)
                    {
                        if (remFec.IdRemuneracaoOriginal <= 0)
                        {
                            remFec.IdRemuneracaoOriginal = remFec.Id;
                        }
                    }
                    context.LancamentosDeFechamento.UpdateRange(fechamentoBD.LancamentosDeRemuneracao);
                }

                context.Fechamentos.AddRange(fechamentosBD);

                await context.SaveChangesAsync();
            }

            IEnumerable <IFechamentoDeRemuneracao> fechamentoSalvo = fechamentosBD.Select(fechamentoBD => ConverteDoModeloSQLBD(fechamentoBD));

            return(fechamentoSalvo);
        }
コード例 #6
0
        public async Task <IFechamentoDeRemuneracao> AdicionarFechamentoAsync(IFechamentoDeRemuneracao fechamento, ILogDeOperacaoDeRemuneracao informacaoDeAuditoria = null)
        {
            FechamentoDeRemuneracaoBD fechamentoBD = ConverteParaModeloSQLBD(fechamento);

            using (var context = _fabricaDeContextos.CriaContextoDe <RemuneracaoContext>(TipoDeConexao.Remuneracao))
            {
                context.LancamentosDeFechamento.AddRange(fechamentoBD.LancamentosDeRemuneracao.ToArray());


                await context.SaveChangesAsync();

                foreach (var remFec in fechamentoBD.LancamentosDeRemuneracao)
                {
                    remFec.IdRemuneracaoOriginal = remFec.Id;
                }
                context.LancamentosDeFechamento.UpdateRange(fechamentoBD.LancamentosDeRemuneracao);
                context.Fechamentos.Add(fechamentoBD);

                await context.SaveChangesAsync();
            }

            IFechamentoDeRemuneracao fechamentoSalvo = ConverteDoModeloSQLBD(fechamentoBD);

            return(fechamentoSalvo);
        }
コード例 #7
0
 public LogDeOperacaoDeRemuneracaoBD(ILogDeOperacaoDeRemuneracao info)
 {
     Operacao = info.Operacao;
     EntidadesAlteradas = info.EntidadesAlteradas.Select(ent => new EntidadeAlteradaBD(ent)).ToArray();
     DataDaExecucao = info.DataDaExecucao;
 }