示例#1
0
        public Response CalcularTabelas(int simuladorId, string tabelas, bool crm)
        {
            try
            {
                if (simuladorId == 0)
                {
                    throw new Exception("ID do Simulador não informado");
                }

                var service = new CalculoSimuladorService(false);

                int[] tabelasArray = Array.ConvertAll <string, int>(tabelas.Split(','), int.Parse);

                if (tabelasArray.Length == 0)
                {
                    throw new Exception("Nenhuma Tabela de Cobrança informada");
                }

                service.CalcularTabelas(new CalculoRequest
                {
                    SimuladorId = simuladorId,
                    Tabelas     = tabelasArray,
                    CRM         = crm
                });

                return(new Response
                {
                    Sucesso = true
                });
            }
            catch (Exception ex)
            {
                return(new Response
                {
                    Sucesso = false,
                    Mensagem = ex.ToString()
                });
            }
        }
示例#2
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
            });
        }