Пример #1
0
        private static bool RealizarPersistenciaLancamentosFinanceiros(Repasse repasse)
        {
            var lancamentos = GerarLancamentosFinanceiros(repasse);
            var client      = new HttpClient();

            client.Timeout = TimeSpan.FromHours(3);

            var _microservicoUrls = RecuperarMicroServicosUrls();

            client.BaseAddress = new Uri(_microservicoUrls.UrlApiLancamentoFinanceiro);

            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Add("usuario", "EPM");
            var content        = new StringContent(JsonConvert.SerializeObject(lancamentos), Encoding.UTF8, "application/json");
            var response       = client.PostAsync("api/LancamentoFinanceiro/gerar-credito-debito", content).Result;
            var responseString = response.Content.ReadAsStringAsync().Result;

            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                AdicionarLogGenerico("Erro ao gerar lançamentos financeiros.", response.Content.ReadAsStringAsync().Result);
                return(false);
            }
            else
            {
                AdicionarLogGenerico("Realizado a geração de lançamentos de crédito e débito.");
                return(true);
            }
        }
Пример #2
0
        public async Task <IActionResult> Edit(long?id, Repasse repasse)
        {
            if (id != repasse.Id)
            {
                return(NotFound());
            }

            if (id != null)
            {
                try
                {
                    if (ModelState.IsValid)
                    {
                        repasse.IdUser = userManager.GetUserAsync(User).Result.Id;
                        await repasseDAL.GravarRepasse(repasse);
                    }
                }
                catch (DbUpdateConcurrencyException)
                {
                    ModelState.AddModelError("", "Valor informado não é um numero válido.");
                }

                return(RedirectToAction("Index"));
            }
            return(View(repasse));
        }
Пример #3
0
 private void RealizarConscistenciaRepasseRemocao(Repasse repasse, string statusAnterior)
 {
     if (!RealizarRemocaoLancamentosFinanceiros(repasse.Id))
     {
         repasse.FlStatus = statusAnterior;
         AtualizarRepasse(repasse);
         _notificationHandler.AddMensagem("Error!", "Ocorreu um erro durante a remoção dos lançamentos financeiros");
     }
 }
        private Repasse PersistirRepasseAtual(Repasse repasseAtual)
        {
            //DESCOMENTAR PARA POPULAR COM AS INFORMAÇÕES DE DESPESA
            //var repasseDb = _repasseRepository.Buscar(x => x.IdRepasseEacesso == repasseAtual.IdRepasseEacesso).FirstOrDefault();
            //if (repasseDb != null)
            //{
            //    repasseDb.VlInc = repasseAtual.VlInc;
            //    repasseDb.VlDesc = repasseAtual.VlDesc;
            //    repasseDb.IdTipoDespesa = repasseAtual.IdTipoDespesa;
            //    return repasseDb;
            //}
            var servicosEacessoService = new ClienteServicoEacessoService(_connectionStrings.Value.EacessoConnection);

            try
            {
                repasseAtual.IdRepasseMae = null;
                repasseAtual.DtRepasseMae = null;

                var idOrigem  = _deParaServicoService.BuscarIdServicoContratadoPorIdServicoEacesso(repasseAtual.IdServicoContratadoOrigem);
                var idDestino = _deParaServicoService.BuscarIdServicoContratadoPorIdServicoEacesso(repasseAtual.IdServicoContratadoDestino);
                if (idOrigem != 0 && idDestino != 0 && (idOrigem != 2233 || idDestino != 2233))
                {
                    if (idOrigem != 0)
                    {
                        repasseAtual.IdServicoContratadoOrigem = idOrigem;
                    }
                    else
                    {
                        var servicoEacesso = ObterServicoEacesso(repasseAtual.IdServicoContratadoOrigem, servicosEacessoService);
                        var servico        = ViewServicoVmParaServicoContratado(servicoEacesso);
                        repasseAtual.IdServicoContratadoOrigem = _servicoContratadoService.PersistirServicoEacesso(servico, servicoEacesso.IdServico, servicoEacesso.NomeServico, servicoEacesso.IdCliente, servicoEacesso.Markup, servicoEacesso.IdContrato, servicoEacesso.SiglaTipoServico, servicoEacesso.DescEscopo, servicoEacesso.SubTipo);
                    }

                    if (idDestino != 0)
                    {
                        repasseAtual.IdServicoContratadoDestino = idDestino;
                    }
                    else
                    {
                        var servicoEacesso = ObterServicoEacesso(repasseAtual.IdServicoContratadoDestino, servicosEacessoService);
                        var servico        = ViewServicoVmParaServicoContratado(servicoEacesso);
                        repasseAtual.IdServicoContratadoDestino = _servicoContratadoService.PersistirServicoEacesso(servico, servicoEacesso.IdServico, servicoEacesso.NomeServico, servicoEacesso.IdCliente, servicoEacesso.Markup, servicoEacesso.IdContrato, servicoEacesso.SiglaTipoServico, servicoEacesso.DescEscopo, servicoEacesso.SubTipo);
                    }
                    return(repasseAtual);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                AdicionarLogGenerico(string.Format("Ocorreu um erro na migracao do repasse eacesso {0}", JsonConvert.SerializeObject(repasseAtual)), e.StackTrace);
                return(null);
            }
        }
Пример #5
0
        public void AtualizarRepassesFuturos(Repasse repasse)
        {
            var result = _repasseRepository.ObterRepassesPorIdRelacionados(repasse.Id);

            foreach (var repasseDB in result)
            {
                AtualizarValores(repasse, repasseDB);
                repasseDB.DtRepasse = repasseDB.DtRepasse.Date;
                _repasseRepository.UpdateCompose(repasseDB, new object[] { repasseDB.Id, repasseDB.DtRepasse });
            }
            _unitOfWork.Commit();
        }
        private void AdicionarParcelasDoRepasseEAcesso(Repasse repasse)
        {
            Repasse cloneRepasse = repasse.Clone();

            for (int i = 1; i < repasse.QtdVezesRepetir; i++)
            {
                cloneRepasse.Id          = 0;
                cloneRepasse.DataRepasse = cloneRepasse.DataRepasse.AddMonths(1);
                _repasseRepository.Adicionar(cloneRepasse);
                cloneRepasse = cloneRepasse.Clone();
            }
        }
        private void AdicionarRepasseEacesso(Repasse repasse)
        {
            repasse.Status = DefinirStatusRepasseEAcesso(repasse);
            var descricaoOriginal = repasse.DescricaoProjeto;

            repasse.DescricaoProjeto = repasse.QtdVezesRepetir > 1
                ? repasse.DescricaoProjeto + $" - 1/{repasse.QtdVezesRepetir.ToString()}"
                : repasse.DescricaoProjeto;

            _repasseRepository.Adicionar(repasse);
            _unitOfWork.CommitLegado();

            repasse.DescricaoProjeto = descricaoOriginal;
        }
 private string DefinirStatusRepasseEAcesso(Repasse repasse)
 {
     if (repasse.Id == 0)
     {
         return(StatusRepasseEacesso.NAO_ANALISADO.GetDescription());
     }
     else
     {
         return(repasse.Status == StatusRepasseEacesso.NEGADO.GetDescription()
             ? StatusRepasseEacesso.NAO_ANALISADO.GetDescription()
             :
                repasse.Status);
     }
 }
Пример #9
0
        public async Task <Repasse> GravarRepasse(Repasse repasse)
        {
            if (repasse.Id == null)
            {
                context.Repasses.Add(repasse);
            }
            else
            {
                context.Update(repasse);
            }

            await context.SaveChangesAsync();

            return(repasse);
        }
        private void AdicionarRepasseStfCorp(RepasseNivelUm repasseStfCorp, Repasse repasseEAcesso, int idDominioRepasseCadastrado)
        {
            var periodoVigente = _periodoRepasseRepository.BuscarPeriodoVigente();

            repasseStfCorp.Status           = DefinirStatusRepasseStfCorp(repasseStfCorp);
            repasseStfCorp.IdRepasseEacesso = repasseEAcesso.Id;
            repasseStfCorp.DataLancamento   = periodoVigente.DtLancamento;
            repasseStfCorp.ParcelaRepasse   = $"1/{repasseEAcesso.QtdVezesRepetir.ToString()}";
            _repasseNivelUmRepository.Adicionar(repasseStfCorp);

            AdicionarLogRepasse(repasseStfCorp.Id, idDominioRepasseCadastrado, string.Empty);


            _unitOfWork.Commit();
        }
        private void AdicionarParcelasDeRepasseNoStfcorpENoEacesso(
            RepasseNivelUm repasseStfCorp, Repasse repasseEAcesso, int repasseCadastradoLogIdDominio
            )
        {
            int idDominioAprovadoNivelUm = _dominioRepository.Buscar((int)StatusRepasseEacesso.APROVADO_NIVEL_UM, StatusRepasseEacesso.VL_TIPO_DOMINIO.GetDescription()).Id;

            Repasse cloneRepasseEacesso = repasseEAcesso.Clone();

            cloneRepasseEacesso.IdRepasseMae = repasseEAcesso.Id;

            RepasseNivelUm cloneRepasseStfCorp = repasseStfCorp.Clone();

            cloneRepasseStfCorp.IdRepasseMae        = repasseStfCorp.Id;
            cloneRepasseStfCorp.IdRepasseMaeEAcesso = repasseEAcesso.Id;

            for (int i = 1; i < repasseEAcesso.QtdVezesRepetir; i++)
            {
                cloneRepasseEacesso.Id = 0;
                cloneRepasseEacesso.DescricaoProjeto = $"{repasseEAcesso.DescricaoProjeto} - {i + 1}/{repasseEAcesso.QtdVezesRepetir.ToString()}";
                cloneRepasseEacesso.DataRepasse      = cloneRepasseEacesso.DataRepasse.AddMonths(1);
                _repasseRepository.Adicionar(cloneRepasseEacesso);
                _unitOfWork.CommitLegado();
                cloneRepasseEacesso = cloneRepasseEacesso.Clone();


                cloneRepasseStfCorp.Id               = 0;
                cloneRepasseStfCorp.DataRepasse      = cloneRepasseStfCorp.DataRepasse.AddMonths(1);
                cloneRepasseStfCorp.DataLancamento   = cloneRepasseStfCorp.DataLancamento.AddMonths(1);
                cloneRepasseStfCorp.IdRepasseEacesso = cloneRepasseEacesso.Id;
                cloneRepasseStfCorp.LogsRepasse      = null;
                cloneRepasseStfCorp.ParcelaRepasse   = $"{i + 1}/{repasseEAcesso.QtdVezesRepetir.ToString()}";

                //cloneRepasseStfCorp.DescricaoProjeto = $"{repasseEAcesso.DescricaoProjeto} - {i + 1}/{repasseEAcesso.QtdVezesRepetir.ToString()}";
                _repasseNivelUmRepository.Adicionar(cloneRepasseStfCorp);
                _unitOfWork.Commit();
                _repasseNivelUmRepository.DetachEntity(cloneRepasseStfCorp);
                AdicionarLogRepasse(cloneRepasseStfCorp.Id, repasseCadastradoLogIdDominio, String.Empty);

                if (cloneRepasseStfCorp.IdCelulaOrigem == cloneRepasseStfCorp.IdCelulaDestino)
                {
                    AdicionarLogRepasse(cloneRepasseStfCorp.Id, idDominioAprovadoNivelUm, String.Empty);
                }

                _unitOfWork.Commit();
                cloneRepasseStfCorp = cloneRepasseStfCorp.Clone();
            }
        }
Пример #12
0
        public async Task <IActionResult> Create(Repasse repasse)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    repasse.IdUser = userManager.GetUserAsync(User).Result.Id;
                    await repasseDAL.GravarRepasse(repasse);
                }

                return(RedirectToAction(nameof(Index)));
            }
            catch (DbUpdateException)
            {
                ModelState.AddModelError("", "Não foi possível inserir os dados.");
            }

            return(RedirectToAction(nameof(Index)));
        }
Пример #13
0
        public void PersistirRepasse(Repasse repasse, int vezesRepetidas)
        {
            var clonado = (Repasse)repasse.Clone();

            repasse.DtRepasse = repasse.DtRepasse.Date;
            if (vezesRepetidas > 1)
            {
                repasse.NrParcela   = 1;
                repasse.DescProjeto = repasse.DescProjeto + " - PARCELA 1" + " / " + vezesRepetidas;
                _repasseRepository.Adicionar(repasse);
                for (int i = 1; i < vezesRepetidas; i++)
                {
                    var parcela = (Repasse)clonado.Clone();
                    parcela.NrParcela    = i + 1;
                    parcela.IdRepasseMae = repasse.Id;
                    parcela.DtRepasse    = repasse.DtRepasse.AddMonths(i).Date;
                    parcela.DtRepasseMae = repasse.DtRepasse.Date;
                    parcela.DescProjeto  = parcela.DescProjeto + " - PARCELA " + (i + 1) + " / " + vezesRepetidas;
                    if (_repasseRepository.BuscarPorId(repasse.Id) != null)
                    {
                        _repasseRepository.Update(parcela);
                    }
                    else
                    {
                        _repasseRepository.Adicionar(parcela);
                    }
                }
            }
            else
            {
                repasse.NrParcela = null;
                if (_repasseRepository.BuscarPorId(repasse.Id) != null)
                {
                    _repasseRepository.Update(repasse);
                }
                else
                {
                    _repasseRepository.Adicionar(repasse);
                }
            }
            _unitOfWork.Commit();
        }
        public void Persistir(RepasseNivelUm repasseStfCorp, Repasse repasseEAcesso)
        {
            using (var stfCorpTran = _unitOfWork.BeginTranStfCorp())
                using (var eacessoTran = _unitOfWork.BeginTranEAcesso())
                {
                    try
                    {
                        if (repasseStfCorp.Id == 0)
                        {
                            AdicionarRepasseEacesso(repasseEAcesso);
                            int idDominioRepasseCadastradoLog = _dominioRepository.Buscar((int)StatusRepasseEacesso.REPASSE_CADASTRADO, StatusRepasseEacesso.VL_TIPO_DOMINIO.GetDescription()).Id;
                            AdicionarRepasseStfCorp(repasseStfCorp, repasseEAcesso, idDominioRepasseCadastradoLog);

                            if (repasseStfCorp.QtdVezesRepetir > 1)
                            {
                                AdicionarParcelasDeRepasseNoStfcorpENoEacesso(repasseStfCorp, repasseEAcesso, idDominioRepasseCadastradoLog);
                            }
                        }
                        else
                        {
                            ValidarSeRepassePodeSerEditado(repasseStfCorp);
                            AtualizarRepasseStfCorp(repasseStfCorp);
                            _unitOfWork.Commit();

                            repasseEAcesso.Id = (int)repasseStfCorp.IdRepasseEacesso;
                            AtualizarRepasseEacesso(repasseEAcesso);
                            _unitOfWork.CommitLegado();
                        }
                        stfCorpTran.Commit();
                        eacessoTran.Commit();
                    }
                    catch (Exception ex)
                    {
                        stfCorpTran.Rollback();
                        eacessoTran.Rollback();
                        throw ex;
                    }
                }

            AprovarRepasseSeTemFuncionalidade(repasseStfCorp);
        }
Пример #15
0
        private bool RealizarPersistenciaLancamentosFinanceiros(Repasse repasse)
        {
            var lancamentos = GerarLancamentosFinanceiros(repasse);
            var client      = new HttpClient();

            client.BaseAddress = new Uri(_microServicosUrls.UrlApiLancamentoFinanceiro);

            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Add("usuario", _variables.UserName);
            var content        = new StringContent(JsonConvert.SerializeObject(lancamentos), Encoding.UTF8, "application/json");
            var response       = client.PostAsync("api/LancamentoFinanceiro/gerar-credito-debito", content).Result;
            var responseString = response.Content.ReadAsStringAsync().Result;

            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Пример #16
0
 private void AtualizarValores(Repasse repasse, Repasse repasseDB)
 {
     repasseDB.VlUnitario                 = repasse.VlUnitario;
     repasseDB.VlTotal                    = repasse.VlTotal;
     repasseDB.VlCustoProfissional        = repasse.VlCustoProfissional;
     repasseDB.QtdRepasse                 = repasse.QtdRepasse;
     repasseDB.IdServicoContratadoOrigem  = repasse.IdServicoContratadoOrigem;
     repasseDB.IdServicoContratadoDestino = repasse.IdServicoContratadoDestino;
     repasseDB.IdProfissional             = repasse.IdProfissional;
     repasseDB.IdMoeda                    = repasse.IdMoeda;
     if (repasse.Id == repasseDB.Id)
     {
         repasseDB.DtRepasse   = repasse.DtRepasse;
         repasseDB.DescProjeto = repasse.DescProjeto;
     }
     repasseDB.IdEpm             = repasse.IdEpm;
     repasseDB.DescJustificativa = repasse.DescJustificativa;
     repasseDB.DescMotivoNegacao = repasse.DescMotivoNegacao;
     if (repasse.IdRepasseMae == null)
     {
         repasseDB.DtRepasseMae = repasse.DtRepasse;
     }
     repasseDB.IdTipoDespesa = repasse.IdTipoDespesa;
 }
Пример #17
0
 public void AtualizarRepasse(Repasse repasse)
 {
     repasse.DtRepasse = repasse.DtRepasse.Date;
     _repasseRepository.UpdateCompose(repasse, new object[] { repasse.Id, repasse.DtRepasse });
     _unitOfWork.Commit();
 }
Пример #18
0
        private static List <LancamentoFinanceiroRepasseDto> GerarLancamentosFinanceiros(Repasse repasse)
        {
            var lancamentoBase = new LancamentoFinanceiroRepasseDto
            {
                DtBaixa                   = DateTime.Now.Date,
                DtLancamento              = DateTime.Now.Date,
                CodigoColigada            = null,
                DescricaoOrigemLancamento = "RP",
                IdLan         = null,
                IdTipoDespesa = 13
            };

            var lancamentoCredito = (LancamentoFinanceiroRepasseDto)lancamentoBase.Clone();
            var lancamentoDebito  = (LancamentoFinanceiroRepasseDto)lancamentoBase.Clone();

            lancamentoCredito.ItensLancamentoFinanceiro = new List <ItemLancamentoFinanceiroRepasseDto> {
                new ItemLancamentoFinanceiroRepasseDto
                {
                    DtRepasse = repasse.DtRepasse,
                    IdRepasse = repasse.Id,
                    //verificar
                    VlLancamento        = repasse.VlTotal.HasValue ? repasse.VlTotal.Value : 0,
                    IdServicoContratado = repasse.IdServicoContratadoDestino
                }
            };
            lancamentoCredito.DescricaoTipoLancamento = "C";

            lancamentoDebito.ItensLancamentoFinanceiro = new List <ItemLancamentoFinanceiroRepasseDto> {
                new ItemLancamentoFinanceiroRepasseDto
                {
                    DtRepasse = repasse.DtRepasse,
                    IdRepasse = repasse.Id,
                    //verificar
                    VlLancamento        = repasse.VlTotal.HasValue ? repasse.VlTotal.Value : 0,
                    IdServicoContratado = repasse.IdServicoContratadoOrigem
                }
            };
            lancamentoDebito.DescricaoTipoLancamento = "D";
            return(new List <LancamentoFinanceiroRepasseDto> {
                lancamentoDebito, lancamentoCredito
            });
        }
Пример #19
0
 public void RemoverRepasse(Repasse repasse)
 {
     _repasseRepository.Remover(repasse);
     _unitOfWork.Commit();
 }
 private void AtualizarRepasseEacesso(Repasse repasse)
 {
     repasse.Status = DefinirStatusRepasseEAcesso(repasse);
     _repasseRepository.Update(repasse);
 }