Пример #1
0
        public Response ExportarTabelas(int oportunidadeId, int usuarioId)
        {
            try
            {
                var oportunidade = _oportunidadeDAO.ObterOportunidadePorId(oportunidadeId);

                if (oportunidade == null)
                {
                    return(new Response
                    {
                        Sucesso = false,
                        Mensagem = $"Oportunidade {oportunidadeId} não encontrada"
                    });
                }

                if (oportunidade.TipoOperacao != TipoOperacao.RA)
                {
                    return(new Response
                    {
                        Sucesso = false,
                        Mensagem = $"Disponível apenas para Tipo de Operação {oportunidade.TipoOperacao.ToName()}"
                    });
                }

                var tabelaCobrancaService = new TabelaCobrancaService(oportunidadeId)
                                            .ExportarTabela(usuarioId);

                if (oportunidade.FormaPagamentoId == FormaPagamento.FATURADO)
                {
                    var fichasFaturamento = _oportunidadeDAO.ObterFichasFaturamento(oportunidade.Id);

                    foreach (var ficha in fichasFaturamento)
                    {
                        IntregrarFichasChronos(oportunidade.Id, ficha.Id);
                    }
                }

                return(tabelaCobrancaService);
            }
            catch (Exception ex)
            {
                return(new Response
                {
                    Sucesso = false,
                    Mensagem = $"Falha ao simular a Oportunidade. {ex.Message}"
                });
            }
        }
Пример #2
0
        public Response ExportarTabela(int usuarioIntegracao)
        {
            var oportunidade = _oportunidadeDAO.ObterOportunidadePorId(_oportunidadeId);

            if (oportunidade == null)
            {
                return new Response
                       {
                           Sucesso  = false,
                           Mensagem = $"Oportunidade {_oportunidadeId} não encontrada"
                       }
            }
            ;

            _tabelasDAO.ExcluirTabelaCobrancaIPA(oportunidade.Id);

            oportunidade.UsuarioIntegracaoId = usuarioIntegracao;

            var tabelaCobranca = _tabelasDAO.CadastrarTabelaCobrancaSGIPA(oportunidade);

            _tabelasDAO.ExportarLotes(tabelaCobranca, oportunidade);

            if (oportunidade.TabelaReferencia == 0)
            {
                _exportaTabelasService.ExportarServicos(tabelaCobranca);
                //_tabelasDAO.ImportarImpostos(0, tabelaCobranca);
            }
            else
            {
                //_tabelasDAO.ImportarServicosFixos(oportunidade.TabelaReferencia, tabelaCobranca);
                //_tabelasDAO.ImportarServicosVariaveis(oportunidade.TabelaReferencia, tabelaCobranca);
                //_tabelasDAO.ImportarImpostos(oportunidade.TabelaReferencia, tabelaCobranca);
                //_tabelasDAO.ImportarFontePagadora(oportunidade.TabelaReferencia, tabelaCobranca);
            }

            _tabelasDAO.AtualizaDataVendedor(tabelaCobranca);

            return(new Response
            {
                Sucesso = true,
                TabelaId = tabelaCobranca,
                Mensagem = $"Tabela {tabelaCobranca} criada com sucesso"
            });
        }
Пример #3
0
        public Response SimuladorOportunidade(int oportunidadeId, int simuladorParametroId, int modeloSimuladorId, int usuarioId)
        {
            try
            {
                var oportunidade = _oportunidadeDAO.ObterOportunidadePorId(oportunidadeId);

                if (oportunidade == null)
                {
                    return(new Response
                    {
                        Sucesso = false,
                        Mensagem = $"Oportunidade {oportunidadeId} não encontrada"
                    });
                }

                var response = new SimuladorCRMService(oportunidadeId, simuladorParametroId, modeloSimuladorId, usuarioId)
                               .Iniciar();

                return(new Response
                {
                    Sucesso = true,
                    Mensagem = response.Mensagem,
                    ArquivoId = response.ArquivoId,
                    Base64 = response.Base64,
                    NomeArquivo = response.NomeArquivo,
                    Hash = response.Hash,
                    TamanhoArquivo = response.TamanhoArquivo
                });
            }
            catch (Exception ex)
            {
                return(new Response
                {
                    Sucesso = false,
                    Mensagem = $"Falha ao simular a Oportunidade. {ex.Message}"
                });
            }
        }
Пример #4
0
        public Response Iniciar()
        {
            var oportunidade = _oportunidadeDAO.ObterOportunidadePorId(_oportunidadeId);

            if (oportunidade == null)
            {
                throw new Exception($"Oportunidade {_oportunidadeId} não encontrada");
            }

            var parametrosSimulador = _simuladorDAO.ObterParametroSimuladorCRMPorId(_simuladorParametroId);

            if (parametrosSimulador == null)
            {
                throw new Exception($"Parâmetro não cadastrado");
            }

            _simuladorDAO.ExcluirTabelasCobrancasPorOportunidade(oportunidade.Id);

            var tabelaCobranca = _simuladorDAO.CadastrarTabelaCobrancaCRM(oportunidade);

            _exportaTabelasService.ExportarServicos(tabelaCobranca);

            var calculo = new CalculoSimuladorService(true);

            var simuladorId = CriarSimulador(parametrosSimulador, oportunidade);

            calculo.CalcularTabelas(new Requests.CalculoRequest
            {
                CRM         = true,
                SimuladorId = simuladorId,
                Tabelas     = new[] {
                    tabelaCobranca
                }
            });

            var relatorio = new RelatorioExcel();

            var excel = relatorio.Gerar(new GerarExcelFiltro
            {
                CRM                    = true,
                OportunidadeId         = oportunidade.Id,
                ComAnaliseDeDados      = false,
                ServicosComplementares = false,
                DadosDoCliente         = true,
                SomenteEstimativa      = false,
                DataPgtoInicial        = DateTime.Now.AddMonths(-6).ToString("dd/MM/yyyy"),
                DataPgtoFinal          = DateTime.Now.ToString("dd/MM/yyyy"),
                SimuladorId            = simuladorId,
                ParametroSimuladorId   = _simuladorParametroId,
                ModeloSimuladorId      = _modeloSimuladorId,
                UsuarioSimuladorId     = _usuarioId
            });

            if (Configuracoes.BancoEmUso() != "ORACLE")
            {
                var valoresTicket = _oportunidadeDAO.ObterValoresTicket(tabelaCobranca);

                if (valoresTicket != null)
                {
                    valoresTicket.OportunidadeId = oportunidade.Id;
                    valoresTicket.TabelaId       = tabelaCobranca;

                    _oportunidadeDAO.AtualizarValoresTicket(valoresTicket);
                }
            }

            _simuladorDAO.ExcluirCalculosAntigosSimulador(simuladorId);

            return(new Response
            {
                Sucesso = true,
                Mensagem = "Relatório gerado com sucesso",
                ArquivoId = excel.ArquivoId,
                Base64 = excel.Base64,
                Hash = excel.Hash,
                NomeArquivo = excel.NomeArquivo,
                TamanhoArquivo = excel.TamanhoArquivo
            });
        }