public ActionResult Login(string login, string senha) { using (var solicitacaoBLL = new SolicitacaoBLL()) { string conexaoSapiens; if (Session["ConexaoSapiens"] == null) { try { conexaoSapiens = solicitacaoBLL.AutenticarSapiens(login, senha); if (conexaoSapiens != string.Empty) { var usuario = ObterDadosConexao(conexaoSapiens, login, senha); Session["ConexaoSapiens"] = usuario; Task.Factory.StartNew(() => { Zap.EnviarWhatsapp(login + " conectou no SICAD as " + DateTime.Now.ToShortTimeString(), "5521966747230"); }); } } catch (Exception ex) { // se a autenticação estiver falhando use a linha abaixo. //var usuario = new UsuarioSapiens() { Codfil = "1", Nomusu = "USUARIO DESENVOLVIMENTO(Falha na Chamada ao webservice de autenticação)", UsuEmail = "*****@*****.**", Codusu = 901, Numemp = "1" }; //Session["ConexaoSapiens"] = usuario; //Session["CodigoEmpresa"] = 1; //Session["CodigoFilial"] = 1; //Session["NomeEmpresa"] = ex.Message; //Session["NomeFilial"] = ex.StackTrace; return View("Erro", null, "Credenciais Invalidas: " + ex.Message); } } return RedirectToAction("Index", "Home"); } }
public ActionResult Reabrir(int codigo) { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } //Autoriza if (!AutorizaUsuario(Helpers.ControlAccessConfig.NovaSolicitacao)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } using (var hisBLL = new HistoricoSolicitacaoBLL()) { var solBLL = new SolicitacaoBLL(); var s = solBLL.ObterPorCodigo(codigo); if (s == null) { return View("Erro"); } var aguardandoFechamento = Convert.ToInt32(SituacaoSolicitacao.AguardandoFechamento); var historico = new HistoricoSolicitacao(); historico.CodSituacaoSolicitacao = aguardandoFechamento; s.CodSituacaoAtual = aguardandoFechamento; solBLL.Atualizar(s); historico.DatEncaminhamento = DateTime.Now; historico.Solicitacao = s; hisBLL.Salvar(historico); } // inserir um novo histórico para a solicitação passada, com o código de situação = 1 return RedirectToAction("Index", "Solicitacao"); }
public ActionResult PreencheResumo() { var s = Session["Solicitacao"] as Solicitacao; using (SolicitacaoBLL bll = new SolicitacaoBLL()) { var usuario = (UsuarioSapiens)Session["ConexaoSapiens"]; s.CodUsuarioSolicitacao = usuario.Codusu; s.CodFilial = Convert.ToInt32(usuario.Codfil); s.Tipo = "----"; s.Usuario = usuario.Nomusu; s.DatCriacao = DateTime.Now; bll.ObterNomes(new List<Solicitacao>() { s }); } return PartialView("_ResumoSolicitacao", s); }
public ActionResult Reintegrar(int codigo) { try { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } //Autoriza if (!AutorizaUsuario(ControlAccessConfig.ListaAnalise)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } // verificar se é usuário master var perfilBLL = new PerfilUsuarioBLL(); var usuario = (UsuarioSapiens)Session["ConexaoSapiens"]; usuario.PerfisUsuario = perfilBLL.ObterGruposPorCodUsuario(usuario.Codusu); var queryTi = from perfil in usuario.PerfisUsuario where perfil.CodPerfilUsuario == 1 select perfil; var ehUsuarioTI = queryTi.ToList().Count > 0; if (ehUsuarioTI) { using (ParecerSolicitacaoBLL parecerBLL = new ParecerSolicitacaoBLL()) { var historicoBLL = new HistoricoSolicitacaoBLL(); Thread t = new Thread(_ => { ServiceReferenceTeste.srvSicadSoapClient clienteTesteIntegracao = new ServiceReferenceTeste.srvSicadSoapClient(); clienteTesteIntegracao.IntegrarDadosCliente(codigo); }); t.Start(); // pegar o último parecer da solicitação. // var parecer = solBLL.ObterPorCodigo(c).PareceresSolicitacao.Last(); // parecer.Codsitpar = Convert.ToDecimal(SituacaoParecer.AguardandoIntegracao); // parecerBLL.Atualizar(parecer); var historico = new HistoricoSolicitacao(); historico.DatEncaminhamento = DateTime.Now; historico.CodSituacaoIntegracaoSolicitacao = Convert.ToInt32(SituacaoIntegracaoSolicitacao.Pendente); historico.CodSituacaoSolicitacao = Convert.ToInt32(SituacaoSolicitacao.Aprovada); var s = new SolicitacaoBLL().ObterPorCodigo(codigo); historico.Solicitacao = s; historico.TxtHistorico = "Nova tentativa de reintegração."; historicoBLL.Salvar(historico); } // fim do using // atualizar o grid na tela.. return Json(new { msg = "Integração iniciada..." + codigo }, JsonRequestBehavior.AllowGet); } else { return Json(new { erro = "A Função \"Reintegrar\" não está disponível para o usuário atual. " }, JsonRequestBehavior.AllowGet); } } catch (Exception ex) { return Json(new { erro = ex.Message }, JsonRequestBehavior.DenyGet); } }
public ActionResult ExcluirCaracteristica(int codigo) { using (var bll = new SolicitacaoBLL()) { var s = Session["Solicitacao"] as Solicitacao; try { var car = s.Caracteristicas.Where(c => c.CodCaracteristicaClienteSolicitacao == codigo).Single(); s.Caracteristicas.Remove(car); bll.Atualizar(s); } catch (Exception ex) { return Json(new { erro = ex.Message }, JsonRequestBehavior.DenyGet); } Session["Solicitacao"] = s; return Json(new { msg = "caracteristica excluida" }, JsonRequestBehavior.DenyGet); } }
public JsonResult ConsultaSapiens(string CPFCNPJ, int codCliente) { // VERIFICAR SE O CNPJ ou CPF é de um cliente existente using (var clienteSapiensBLL = new ClienteSapiensBLL()) { var carSapBLL = new CaracteristicaSapiensBLL(); var historicosBLL = new HistoricoSolicitacaoBLL(); bool pertenceAFilial = false; try { int codFilial = Convert.ToInt32(Session["CodigoFilial"]); ClienteSapiens cliente = null; var consultaReceitaBLL = new ConsultaReceitaBLL(); // RETIRA OS CARACTERES ESPECIAIS. CPFCNPJ = Regex.Replace(CPFCNPJ, @"(\s+)|(\\+)|(\.+)|(/+)|(\-+)", ""); #region Valida CPF e CNPJ if (!ValidaDocumento(CPFCNPJ)) { return Json(new { erro = "CPF ou CNPJ Inválido" }, JsonRequestBehavior.DenyGet); } #endregion List<ClienteSapiens> clientesSapiens = null; if (codCliente != 0) { clientesSapiens = clienteSapiensBLL.ObterTodosPorCodigo(codCliente, ref clientes); } else { if (CPFCNPJ.Length != 0) { clientesSapiens = clienteSapiensBLL.ObterPorCPFCNPJ(CPFCNPJ, ref clientes); //pega todas as definições deste CPFCNPJ } else { throw new Exception("Nenhum dado encontrado para esta consulta."); } } // se tiver mais de 1, dar a opção de importar, dando prioridade para a matriz if (clientesSapiens.Count > 0) { // verifica se o codFil de algum dos clientes com o CPFCNPJ passado é igual ao do usuário var queryClienteMesmaFilial = from c in clientesSapiens where c.codfil == codFilial select c.codcli; if (queryClienteMesmaFilial.Count() != 0) { pertenceAFilial = true; cliente = clienteSapiensBLL.ObterPorCodigos(queryClienteMesmaFilial.First(), codFilial); //Session["Cliente"] = cliente; } else { // se o cliente existe, mas não tem registro nesta filial, sugerir a DUPLICAÇÃO // se existir na matriz, usar este, senão, pegar o primeiro var matrix = from c in clientesSapiens where c.codfil == 1 select c; if (matrix.Count() > 0) { cliente = matrix.First(); } else { cliente = clientesSapiens[0]; } cliente = clienteSapiensBLL.ObterPorCodigos(cliente.codcli, cliente.codfil); //Session["Cliente"] = cliente; // sugerir a duplicação do cliente escolhido. return Json(new { msg = "Este cliente já possui registro em outra filial." }, JsonRequestBehavior.DenyGet); } } var solicitacaoBLL = new SolicitacaoBLL(); //obter a data da ultima consulta ao serasa. if (cliente != null) { // se entrar aqui, é porque o cliente foi encontrado na base do sapiens, ou seja, é ou foi cliente. #region retorna um JSON com o resultado da consulta do Sapiens, para preencher todos os campos da solicitação. #region Verificar se já existe solicitação para o cliente encontrado. var solicitacoes = solicitacaoBLL.ObterSolicitacoesPorCodFilial(codFilial); var queryClienteSolicitacao = from sol in solicitacoes where sol.CodCliente == cliente.codcli select sol; var solicitacaoRecente = queryClienteSolicitacao.LastOrDefault(); if (solicitacaoRecente != null) { //var historicoSolicitacaoRecente = historicosBLL.ObterPorCodSolicitacao(solicitacaoRecente.Codigo).LastOrDefault(); var historicoSolicitacaoRecente = solicitacaoRecente.Historicos.OrderBy(h => h.CodHistoricoSolicitacao).LastOrDefault(); // Gilberto - 23/11/2015 - 09:51:00 if (historicoSolicitacaoRecente != null) { var situacao = historicoSolicitacaoRecente.CodSituacaoSolicitacao; var temSolicitacaoAberta = situacao == Convert.ToInt32(SituacaoSolicitacao.AguardandoFechamento) || situacao == Convert.ToInt32(SituacaoSolicitacao.AguardandoAprovacao) || situacao == Convert.ToInt32(SituacaoSolicitacao.NaoIntegrada); //já existe solicitação para este cliente. if (temSolicitacaoAberta) { return Json(new { erro = "Já existe uma solicitação aberta para o cliente pesquisado." }, JsonRequestBehavior.DenyGet); } } else { return Json(new { erro = "Já existe uma solicitação para o cliente pesquisado. (aguardando fechamento)" }, JsonRequestBehavior.DenyGet); } } #endregion var s = Session["Solicitacao"] as Solicitacao; s.CodTipoSolicitacao = Convert.ToInt32(TipoSolicitacao.Alteracao); s.Cliente = String.IsNullOrEmpty(cliente.nomcli) ? cliente.apecli : cliente.nomcli; s.CodCliente = cliente.codcli; s.DatAlteracao = DateTime.Now; // se pertencer a filial, copiar também os dados de endereços de cobrança e entrega, contatos, referencias e socios ConsultaReceita dadosUltimaConsulta = null; DateTime dataUltimaConsulta = new DateTime(1983, 4, 28); solicitacaoBLL.PreencheDadosSolicitacaoUsandoSapiens(s, cliente, pertenceAFilial); if (cliente.cgccpf != null && cliente.cgccpf != 0) { var cgccpf = cliente.cgccpf.ToString(); cgccpf = AjustaCPFCNPJComZerosNaFrente(cgccpf); dadosUltimaConsulta = consultaReceitaBLL.ObterDadosUltimaConsultaPorDocumento(cgccpf); dataUltimaConsulta = dadosUltimaConsulta != null ? dadosUltimaConsulta.Datcon : new DateTime(1983, 4, 28); } Session["Solicitacao"] = s; var clienteSapiensJson = new { /* DADOS PRINCIPAIS */ CPFCNPJ = cliente.cgccpf.ToString(), TipoCliente = cliente.tipcli as string, CodCliente = cliente.codcli, SituacaoReceita = dadosUltimaConsulta == null ? "" : dadosUltimaConsulta.Sitrec as string, SituacaoSin = dadosUltimaConsulta == null ? "" : dadosUltimaConsulta.Sitsin as string, NomeFantasia = cliente.apecli as string, RazaoSocial = cliente.nomcli as string, DataUltimaConsulta = dataUltimaConsulta != null ? dataUltimaConsulta : new DateTime(), Logradouro = cliente.endcli as string, Numero = cliente.nencli as string, Complemento = cliente.cplend as string, Bairro = cliente.baicli as string, Cidade = cliente.cidcli as string, UF = cliente.sigufs as string, CEP = cliente.cepcli as int?, Telefone = cliente.foncli as string, Telefone2 = cliente.foncl2 as string, Telefone3 = cliente.foncl3 as string, Telefone4 = cliente.foncl4 as string, Telefone5 = cliente.foncl5 as string, NumeroFax = cliente.faxcli as string, DataAbertura = cliente.datcad as DateTime?, Ativo = cliente.sitcli as string, InscricaoEstadualSin = cliente.insest as string, CodTipoMercado = cliente.tipmer as string, CodTipoEmpresa = cliente.tipemp as short?, CodTipoDireitoPropriedade = cliente.tipemc as short?, CodRamoAtividade = cliente.codram as string, CodRamoFiscal = cliente.usuRamofiscal as string, CodRota = cliente.codroe as string, CodSubRota = cliente.codsro as string, CodGrupoEmpresa = cliente.codgre as short?, CodIBGE = cliente.zipcod as string, TributaICMS = cliente.triicm as string, CobraCliente = cliente.usuCobcli as string, ExpurgaDaInadimplencia = cliente.usuExpina as string, ObservacaoMotivoSituacao = cliente.obsmot as string, EmailNFE = cliente.emanfe == null ? "" : cliente.emanfe.IndexOf(";") != -1 ? cliente.emanfe.Split(';')[0] : cliente.emanfe, EmailNFE2 = cliente.emanfe == null ? "" : cliente.emanfe.IndexOf(";") != -1 ? cliente.emanfe.Split(';')[1] : "", /* DEFINIÇÕES*/ VlrLimite = cliente.Definicoes[0] != null ? cliente.Definicoes[0].limite.ToString() : "", NomCategoria = cliente.Definicoes[0] != null ? cliente.Definicoes[0].Catcli.ToString() : "-", CodFormaDePagamento = cliente.Definicoes[0].Codfpg != 0 ? cliente.Definicoes[0].Codfpg.ToString() : "-", CodGrupoContasAReceber = cliente.Definicoes[0] != null ? cliente.Definicoes[0].Codcrp : "-", IndAceitaFaturamentoParcialPedido = cliente.Definicoes[0] != null ? cliente.Definicoes[0].Acepar : "-", IndLimiteAprovado = cliente.Definicoes[0] != null ? cliente.Definicoes[0].Limapr : "-", CodCondicaoPagamento = cliente.Definicoes[0] != null ? cliente.Definicoes[0].Codcpg : "-", CodRepresentante = cliente.Definicoes[0].Codrep != 0 ? cliente.Definicoes[0].Codrep.ToString() : "-", CodRegiaoDeVendas = cliente.Definicoes[0] != null ? cliente.Definicoes[0].Codrve : "-", RecJurosMoraMes = cliente.Definicoes[0].Recjmm != 0 ? cliente.Definicoes[0].Recjmm.ToString() : "-", TipJuros = cliente.Definicoes[0] != null ? cliente.Definicoes[0].Rectjr : "-", IndCobrarTaxaBanco = cliente.Definicoes[0] != null ? cliente.Definicoes[0].UsuCbtban : "-", IndEmiteBoleto = cliente.Definicoes[0] != null ? cliente.Definicoes[0].UsuEmitebol : "-", IndDescontoFinanceiro = "0", }; return Json(clienteSapiensJson, JsonRequestBehavior.DenyGet); #endregion } else { // SE ENTRAR AQUI, TRATA-SE DE UM NOVO CLIENTE. var s = Session["Solicitacao"] as Solicitacao; s.CodTipoSolicitacao = Convert.ToInt32(TipoSolicitacao.Inclusao); s.CodCliente = 0; // TODO: Testar se um possível BUG se origina aqui.(Cliente existente com código 0) s.DatAlteracao = DateTime.Now; s.DadosPrincipaisSolicitacao.Last().Ativo = "A"; Session["Solicitacao"] = s; return Json(new { erro = "Cliente não encontrado.", CodCliente = 0 }, JsonRequestBehavior.DenyGet); } } catch (Exception ex) { return Json(new { erro = ex.Message }, JsonRequestBehavior.DenyGet); } }// fim do using }
public JsonResult ConsultarNomeFantasia(string nomeFantasia) { using (var bll = new SolicitacaoBLL()) { nomeFantasia = nomeFantasia.ToUpper(); try { // listar as solicitacoes aguardando fechamento ou aprovação, e verificar se o nome fantasia passado existe em alguma delas // incluir lógica para testar se o nome fantasia está em alguma solicitação que está em aberto. var aguardandoFechamento = Convert.ToInt32(SituacaoSolicitacao.AguardandoFechamento); var aguardandoAprovacao = Convert.ToInt32(SituacaoSolicitacao.AguardandoAprovacao); var solicitacoesEmAberto = bll.ListarTodos().Where(s => s.CodSituacaoAtual == aguardandoFechamento || s.CodSituacaoAtual == aguardandoAprovacao); //// O Teste é mais complexo que isso, deve buscar nas solicitações em aberto se o cliente está nela.. var queryNomes = from s in solicitacoesEmAberto where s.DadosPrincipaisSolicitacao.Last().NomeFantasia == nomeFantasia select s; if (queryNomes.Count() > 0) { return Json(new { jaExiste = true }, JsonRequestBehavior.AllowGet); } else { return Json(new { ok = "( nome fantasia Ok para continuar )" }, JsonRequestBehavior.AllowGet); } } catch (Exception ex) { return Json(new { erro = ex.Message }, JsonRequestBehavior.AllowGet); } } }
public ActionResult SolicitacoesPaginadas(int? page) { try { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } var usuario = (UsuarioSapiens)Session["ConexaoSapiens"]; //Autoriza if (!AutorizaUsuario(Helpers.ControlAccessConfig.ListaSolicitacoes)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } IEnumerable<Solicitacao> model = new List<Solicitacao>(); #region MONTA PÁGINA COM GRID DE SOLICITAÇÕES using (var solicitacaoBLL = new SolicitacaoBLL()) { //TODO: 09/12/2014 Obter as solicitacoes mostrar as solicitações cujo status é diferente de 'AA' // na criacao de uma nova, ou na edicao de uma existente, definir o tipo ao enviar para aprovacao. model = solicitacaoBLL.ObterSolicitacoesPorCodFilial(Convert.ToInt32(Session["CodigoFilial"])); try { if (model.Count() > 0) { solicitacaoBLL.ObterNomes(model.ToList()); } //var ajaxGridFactory = new Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory(); //var grid = ajaxGridFactory.CreateAjaxGrid(model.OrderBy(c => c.Codigo).AsQueryable(), page.HasValue ? page.Value : 1, false); //return Json(new { Html = grid.ToJson("_Solicitacoes", this), grid.HasItems }, JsonRequestBehavior.AllowGet); return View(model); } catch (Exception ex) { return View("Erro", null, ex.Message); } } } catch (Exception ex) { return View("Erro", null, ex.Message); } #endregion }
public ActionResult Analise(int codigo = 0, int CodParecer = 0) { #region Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } #endregion #region Autoriza if (!AutorizaUsuario(Helpers.ControlAccessConfig.AbrirAnalise)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } #endregion ViewBag.CodSol = codigo; var usuario = (UsuarioSapiens)Session["ConexaoSapiens"]; ViewBag.Usuario = usuario.Nomusu; ViewBag.NomeEmpresa = usuario.Numemp; var nomeFilial = Session["NomeFilial"] as string; ViewBag.Filial = usuario.Codfil + " - " + nomeFilial; using (var solicitacaoBLL = new SolicitacaoBLL()) { #region Prepara a camada lógica de negócio var dadoPrincipalBLL = new DadoPrincipalAprovacaoBLL(); var caracteristicaSapiensBLL = new CaracteristicaSapiensBLL(); var definicoesBLL = new DefinicoesClienteAprovacaoBLL(); var defBLL = new DefinicoesClienteSolicitacaoBLL(); var perfilBLL = new PerfilUsuarioBLL(); var usuarioBLL = new UsuarioSapiensBLL(); var clienteSapiensBLL = new ClienteSapiensBLL(); var consultaReceitaBLL = new ConsultaReceitaBLL(); var parecerBLL = new ParecerSolicitacaoBLL(); var tipAltBLL = new TipoAlteracaoBLL(); #endregion Solicitacao s = null; ParecerSolicitacao p = null; try { // se não for passado o código da solicitação, mas foi passado o código do parecer. if (codigo == 0 && CodParecer != 0) { p = parecerBLL.ObterPorCodigo(CodParecer); s = p.Solicitacao; } // e se não for passado um código de parecer, obter o último parecer de uma solicitação. else { s = solicitacaoBLL.ObterPorCodigo(codigo); p = s.PareceresSolicitacao.OrderBy(par => par.CodParecer).Last(); } #region Buscar a solicitacao usando o código e obter todas as dependencias OK // Procura na session, se não tiver , tenta obter por código, se tiver, usa da session //se está aguardando integração, não pode abrir -> "Não é possível abrir a análise de uma solicitação \n\r em processo de integração." solicitacaoBLL.ObterNomes(new List<Solicitacao> { s }); Session["Solicitacao"] = s; try { var sitInt = s.Historicos.OrderBy(h => h.CodHistoricoSolicitacao).Last().CodSituacaoIntegracaoSolicitacao; var situacaoIntegracao = sitInt == 1 ? "Pendente de Integração" : sitInt == 2 ? "Integrado" : sitInt == 3 ? "Erro na Integração" : "Não Iniciado"; ViewBag.SituacaoIntegracao = situacaoIntegracao; } catch (Exception) { ViewBag.SituacaoIntegracao = "Não Encontrado"; } //if (s.Situacao.ToUpper() == "AGUARDANDO INTEGRAÇÃO") //{ // return Json(new { erro = "Não é possível abrir a análise de uma solicitação \n\r em processo de integração." }, JsonRequestBehavior.AllowGet); //} #region obter o perfil atribuído a cada parecer. (quem precisa aprovar) foreach (var par in s.PareceresSolicitacao) { var perfilAprovador = perfilBLL.ObterPorCodigo(par.Codperusu); par.Perfil = perfilAprovador.DesPerfil; var usuarioAprovador = usuarioBLL.ObterPorCodigo((int)par.Codusuapr); par.Aprovador = usuarioAprovador.Nomusu; } #endregion #region pega o último parecer. if (!String.IsNullOrEmpty(s.Definicoes.Last().VlrLimite)) { var vlrLimite = s.Definicoes.Last().VlrLimite; s.Definicoes.Last().VlrLimite = String.IsNullOrEmpty(vlrLimite) ? "" : Regex.Replace(vlrLimite, @"(\s+)|(\\+)|(\.+)|(/+)|(\-+)|(\,+)|(R+)|(\$+)", ""); } //preenche os nomes foreach (var par in s.PareceresSolicitacao) { foreach (var c in par.CaracteristicasAprovacao) { caracteristicaSapiensBLL.ObterNomes(c); } } #endregion #endregion #region obter os perfis do usuario (quem está logado) OK - se algum dos perfis do usuário logado contém o perfil aprovador, pode salvar parecer. var perfisUsuarioLogado = perfilBLL.ObterGruposPorCodUsuario(usuario.Codusu); if (perfisUsuarioLogado.Count() == 0) { perfisUsuarioLogado.Add(new PerfilUsuario() { DesPerfil = "DESCONHECIDO", CodPerfilUsuario = 0, SitPerfil = 0 }); } var queryPodeSalvarParecer = from meuPerfil in perfisUsuarioLogado where meuPerfil.CodPerfilUsuario == p.Codperusu select meuPerfil; var queryUsuarioTI = from meuPerfil in perfisUsuarioLogado where meuPerfil.CodPerfilUsuario == 1 select meuPerfil; ViewBag.PodeSalvar = queryPodeSalvarParecer.Count() > 0 ? "S" : "N"; ViewBag.IsUsuarioTI = queryUsuarioTI.Count() > 0 ? "S" : "N"; ViewBag.Usuario = usuario.Nomusu; #endregion foreach (var v in s.Integracoes) { if (v.CodSecao.HasValue) { v.Secao = v.CodSecao.Value == 1 ? "Dados Principais" : v.CodSecao.Value == 2 ? "Características" : v.CodSecao.Value == 3 ? "Definições" : v.CodSecao.Value == 4 ? "Endereço de Cobrança" : v.CodSecao.Value == 5 ? "Endereço de Entrega" : v.CodSecao.Value == 6 ? "Referências" : v.CodSecao.Value == 7 ? "Contatos" : v.CodSecao.Value == 8 ? "Anexos" : v.CodSecao.Value == 9 ? "Sócios" : ""; } if (v.CodSituacaoIntegracao.HasValue) { v.SituacaoIntegracao = v.CodSituacaoIntegracao.Value == 1 ? "Comando Enviado" : v.CodSituacaoIntegracao.Value == 2 ? "OK" : v.CodSituacaoIntegracao.Value == 3 ? "Erro" : ""; } } // pegar o código do usuário e comparar // se o perfil do parecer não for o mesmo do usuário atual, travar todos os campos. #region Prepara o Parecer 'p' e exibe na tela. // preencher a tela de aprovacao com: // 1 - a lista de Pareceres OK // 2 - a tela de resumo da solicitação. ( OK ) // 3 - os dados complementares. ( OK ) // 4 - o click do botao de parecer pega o aprovador e muda o parecer. ( OK ) // 5 - as views de consulta. p.Codusuapr = usuario.Codusu; // obter o codigo do usuario da aprovacao. dadoPrincipalBLL.PreencheDependencias(p.DadosPrincipaisAprovacao.Last()); var cgccpf = Regex.Replace(p.DadosPrincipaisAprovacao.Last().CPFCNPJ, @"(\s+)|(\\+)|(\.+)|(/+)|(\-+)", ""); var codFilial = Session["CodigoFilial"]; #region HINT DATA ULTIMA CONSULTA OU DATA CADASTRO var ultimaConsulta = consultaReceitaBLL.ObterDataUltimaConsultaDoCliente(cgccpf); #endregion p.DadosPrincipaisAprovacao.Last().DataUltimaConsulta = ultimaConsulta.ToString("dd/MM/yyyy HH:mm:ss"); p.CaracteristicasAprovacao = p.CaracteristicasAprovacao.Count > 0 ? p.CaracteristicasAprovacao : new List<CaracteristicaClienteAprovacao>() { }; p.DefinicoesAprovacao = p.DefinicoesAprovacao.Count > 0 ? p.DefinicoesAprovacao : new List<DefinicoesClienteAprovacao>() { }; definicoesBLL.PreencheDependencias(p.DefinicoesAprovacao.Last(), p.Solicitacao.CodCliente); p.ContatosAprovacao = p.ContatosAprovacao.Count > 0 ? p.ContatosAprovacao : new List<ContatoClienteAprovacao>() { }; defBLL.PreencheDependencias(p.Solicitacao.Definicoes.Last(), 1, 1); if (!String.IsNullOrEmpty(p.DefinicoesAprovacao.Last().VlrLimite)) { p.DefinicoesAprovacao.Last().VlrLimite = String.Format("{0:C}", Convert.ToInt32(p.DefinicoesAprovacao.Last().VlrLimite)); } if (p.SociosAprovacao.Count > 0) { if (!String.IsNullOrEmpty(p.SociosAprovacao.Last().CapitalSocial)) { var strCapitalSocial = p.SociosAprovacao.Last().CapitalSocial; int valorInteiroCapitalSocial = 0; if (Int32.TryParse(strCapitalSocial, out valorInteiroCapitalSocial)) { p.SociosAprovacao.Last().CapitalSocial = String.Format("{0:C}",valorInteiroCapitalSocial); } } } #endregion #region Preencher Dependencias do Tableau PreencherDependenciasTableau(p.DadosPrincipaisAprovacao.Last()); #endregion #region Buscar Cliente e verificar a data da última solicitação ( se houver prepara dependências dos dados complementares ) var clienteSapiens = clienteSapiensBLL.ObterPorCodigo(s.CodCliente); // se já é cliente, verifica se já tem alguma solicitação. if (clienteSapiens != null) { int codFilAnulavel = s.Definicoes.Last().CodFilial; var definicoesClienteSapiens = new DefinicoesSapiensBLL().ObterDefinicoesPorCliente(clienteSapiens.codcli, codFilAnulavel); clienteSapiens.Definicoes.Add(definicoesClienteSapiens); var pessoaJuridica = new SocioSapiensBLL().ObterSociosPorCliente(clienteSapiens.codcli).LastOrDefault(); var solicitacoes = solicitacaoBLL.ObterSolicitacoesPorCodFilial(Convert.ToInt32(Session["CodigoFilial"])); var queryClienteSolicitacao = from sol in solicitacoes where sol.CodCliente == clienteSapiens.codcli select sol; #region Preencher Dependências dos Dados Complementares OK Gilberto 20/03/2015 - Atualizado em 26/08/2015 var umAnoAtras = new DateTime(DateTime.Now.Year - 1, DateTime.Now.Month, DateTime.Now.Day).ToShortDateString(); var hoje = DateTime.Now.ToShortDateString(); ViewBag.GrupoDeEmpresasCadastro = s.DadosPrincipaisSolicitacao.Last().GrupoEmpresas.Where(g => g.codgre == clienteSapiens.codgre).Select(grupo => grupo.nomgre).FirstOrDefault(); if (clienteSapiens.Definicoes.Last() != null) { ViewBag.DescontoFinanceiroCadastro = clienteSapiens.Definicoes.Last().UsuPerds1 == 0 ? "NÃO" : "SIM"; /////////// var codcpgAtual = clienteSapiens.Definicoes.Last().Codcpg; var codcpgSolicitado = s.Definicoes.Last().CodCondicaoPagamento; var prazoDePagamentoAtual = s.Definicoes.Last().CondicoesPagamento.Where(c => c.codcpg == codcpgAtual).Select(cond => cond.descpg).FirstOrDefault(); ViewBag.PrazoDePagamentoCadastro = prazoDePagamentoAtual; if (codcpgAtual != codcpgSolicitado) { ViewBag.HouveAlteracaoPrazo = "S"; } else { ViewBag.HouveAlteracaoPrazo = "N"; } var codFpgAtual = clienteSapiens.Definicoes.Last().Codfpg; var codFpgSolicitado = s.Definicoes.Last().CodFormaDePagamento; var formaDePagamentoAtual = s.Definicoes.Last().FormasPagamento.Where(c => c.codfpg == codFpgAtual).Select(cond => cond.desfpg).FirstOrDefault(); ViewBag.FormaDePagamentoCadastro = formaDePagamentoAtual; if (codFpgAtual.ToString() != codFpgSolicitado) { ViewBag.HouveAlteracaoFormaPagamento = "S"; } else { ViewBag.HouveAlteracaoFormaPagamento = "N"; } } /////////// if (pessoaJuridica != null) { ViewBag.CapitalSocialCadastro = String.Format("{0:C}", pessoaJuridica.USU_CAPSOC.HasValue ? pessoaJuridica.USU_CAPSOC.Value : 0); ViewBag.DataFundacaoCadastro = pessoaJuridica.DATFDC.HasValue ? pessoaJuridica.DATFDC.Value.ToShortDateString() : ""; ViewBag.DataInclusaoCadastro = pessoaJuridica.DATPAL.HasValue ? pessoaJuridica.DATPAL.Value.ToShortDateString() : ""; } ViewBag.TktMedioTitulosLiquidados = clienteSapiensBLL.TicketMedioCompras("cliente", s.CodCliente.ToString(), umAnoAtras, hoje); ViewBag.TktMedioAVencer = clienteSapiensBLL.TkTMedVencer("cliente", s.CodCliente.ToString(), umAnoAtras, hoje); ViewBag.ValorFinanceiroTotal = clienteSapiensBLL.ValorFinTotal("cliente", s.CodCliente.ToString(), umAnoAtras, hoje); ViewBag.QtdTitulosVencidos = clienteSapiensBLL.QtdeTitulosVencidos("cliente", s.CodCliente.ToString(), umAnoAtras, hoje); ViewBag.PercentualMedioPontualidade = clienteSapiensBLL.PercentPontualidade("cliente", s.CodCliente.ToString(), umAnoAtras, hoje); ViewBag.PrazoMedioPgtoTitulos = clienteSapiensBLL.PrazoMedioPgto("cliente", s.CodCliente.ToString(), umAnoAtras, hoje); ViewBag.VlrTotalTitulosVencidos = clienteSapiensBLL.VlrTotalTitulosVencidos("cliente", s.CodCliente.ToString(), umAnoAtras, hoje); ViewBag.LimiteUtilizado = clienteSapiensBLL.LimiteUtilizado(1, s.CodFilial, s.CodCliente.ToString()); var limiteAtual = clienteSapiensBLL.ListaLimiteAtual(1, s.CodCliente); // ex de retorno : "R$ 100,00" ViewBag.LimiteAtual = limiteAtual; #region lógica pra mostrar o limite solicitado na tela de análise, somente se o solicitante alterou o limite cadastrado. limiteAtual = Regex.Replace(limiteAtual, @"(\s+)|(\\+)|(\.+)|(/+)|(\-+)|(\,+)|(R+)|(\$+)", ""); if (limiteAtual.Length > 1) { limiteAtual = limiteAtual.Substring(0, limiteAtual.Length - 2); } else { limiteAtual = "0"; } string limiteSolicitado = String.Format("{0:C}", s.Definicoes.Last().VlrLimite); if (limiteAtual != limiteSolicitado) { ViewBag.HouveAlteracaoLimite = "S"; ViewBag.LimiteSolicitado = String.Format("{0:C}", Decimal.Parse(limiteSolicitado)); } else { ViewBag.HouveAlteracaoLimite = "N"; ViewBag.LimiteSolicitado = "---"; } #endregion ViewBag.LimiteDisponivel = clienteSapiensBLL.ListaLimiteDisponivel(1, s.CodCliente); ViewBag.MaiorFatura = clienteSapiensBLL.MaiorFatura(s.CodCliente.ToString()); ViewBag.MaiorAtraso = clienteSapiensBLL.TituloMaiorAtraso(s.CodCliente.ToString()); ViewBag.DataUltimoPedido = clienteSapiensBLL.BuscarUltimoPedido(1, s.CodCliente); var dataUltimaSolicitacaov2 = solicitacaoBLL.ObterDataUltimaSolicitacaoNoSICADV2(s.CodCliente); var dataUltimaSolicitacaov3 = ""; if (queryClienteSolicitacao.LastOrDefault() != null) { // já existe solicitação para este cliente. dataUltimaSolicitacaov3 = queryClienteSolicitacao.Last().DatCriacao.ToString("dd/MM/yyyy"); } ViewBag.DataUltimaSolicitacao = String.IsNullOrEmpty(dataUltimaSolicitacaov3) ? dataUltimaSolicitacaov2 : dataUltimaSolicitacaov3; ViewBag.DataUltimaSolicitacaov2 = dataUltimaSolicitacaov2; string valorFaturamento1; string valorFaturamento2; string valorFaturamento3; string dataFaturamento1; string dataFaturamento2; string dataFaturamento3; string mediaFaturamentoTrimestre; clienteSapiensBLL.ObterDadosFaturamentoCliente(s.CodCliente, out valorFaturamento1, out valorFaturamento2, out valorFaturamento3, out dataFaturamento1, out dataFaturamento2, out dataFaturamento3, out mediaFaturamentoTrimestre); ViewBag.ValorFaturamento1 = dataFaturamento1 + " R$ " + valorFaturamento1; ViewBag.ValorFaturamento2 = dataFaturamento2 + " R$ " + valorFaturamento2; ViewBag.ValorFaturamento3 = dataFaturamento3 + " R$ " + valorFaturamento3; ViewBag.MediaFaturamentoTrimestre = " " + mediaFaturamentoTrimestre; #endregion } else { // se ainda não é cliente, devo marcar como S pra exibir os valores solicitados na tela. ViewBag.HouveAlteracaoLimite = "S"; ViewBag.HouveAlteracaoFormaPagamento = "S"; ViewBag.HouveAlteracaoPrazo = "S"; string limiteSolicitado = String.Format("{0:C}", s.Definicoes.Last().VlrLimite); if(!String.IsNullOrEmpty(limiteSolicitado)) { ViewBag.LimiteSolicitado = String.Format("{0:C}", Decimal.Parse(limiteSolicitado)); } else { ViewBag.HouveAlteracaoLimite = "N"; ViewBag.LimiteSolicitado = "---"; } } #endregion if (s.CodTipoSolicitacao == 3) { ViewBag.PrecisaValidar = "N"; }// TODO : desativar a validação em caso de inativação. Session["Parecer"] = p; return View("Analise", p); // sem as dependencias. } catch (Exception ex) { return Json(new { msg = "Não foi possível abrir a Solicitação nº " + s.Codigo + " , ERRO -> " + ex.Message }, JsonRequestBehavior.AllowGet); } } }
public ActionResult ConsultarSerasa(string CPFCNPJ, string UF) { var solicitacaoBLL = new SolicitacaoBLL(); // SE NÃO FOR, Consultar o Serasa. #region retorna um JSON com o resultado da consulta Confie do Serasa // RETIRA OS CARACTERES ESPECIAIS. CPFCNPJ = Regex.Replace(CPFCNPJ, @"(\s+)|(\\+)|(\.+)|(/+)|(\-+)", ""); if (!ValidaDocumento(CPFCNPJ)) { return Json(new { erro = "CPF ou CNPJ Inválido" }, JsonRequestBehavior.DenyGet); } var resConsulta = solicitacaoBLL.PreparaConsultaConfie(CPFCNPJ, UF); var CodIBGE = resConsulta.DadosReceita.CodIBGE; var CodIBGESin = resConsulta.DadosSintegra.CodIBGE; if (resConsulta.DadosReceita == null && resConsulta.DadosSintegra == null) { return Json(new { erro = "Dados não encontrados." }, JsonRequestBehavior.DenyGet); } else { // Salva o LOG da consulta na base. var consultaReceitaBLL = new ConsultaReceitaBLL(); var consultaReceita = new ConsultaReceita(); consultaReceita.Codusucon = ((UsuarioSapiens)Session["ConexaoSapiens"]).Codusu; consultaReceita.Datcon = DateTime.Now; consultaReceita.Sitrec = resConsulta.DadosReceita.Situacao; consultaReceita.Sitsin = resConsulta.DadosSintegra.Situacao; consultaReceita.Documento = CPFCNPJ; //consultaReceita.Solicitacao = s; consultaReceitaBLL.Salvar(consultaReceita); // se já existirem dados de solicitação, use-os , senão, use o que veio na consulta. // atualizar sempre : var p = Session["Parecer"] as ParecerSolicitacao; var jaTemDadosPrincipais = p.DadosPrincipaisAprovacao.Count > 0; var dps = jaTemDadosPrincipais ? p.DadosPrincipaisAprovacao.Last() : null; return Json(new { CPFCNPJ = jaTemDadosPrincipais ? dps.CPFCNPJ : CPFCNPJ, TipoCliente = jaTemDadosPrincipais ? dps.TipoCliente as string : "", CodCliente = jaTemDadosPrincipais ? dps.CodClienteDadoPrincipalApr.ToString() : "", /* Dados Principais do Sapiens ------------------------------------ */ NomeFantasia = !String.IsNullOrEmpty(resConsulta.DadosReceita.Nome) ? resConsulta.DadosReceita.Nome : resConsulta.DadosSintegra.Nome, RazaoSocial = resConsulta.DadosReceita.RazaoSocial, Logradouro = !String.IsNullOrEmpty(resConsulta.DadosReceita.Endereco) ? resConsulta.DadosReceita.Endereco : resConsulta.DadosSintegra.Endereco, DataUltimaConsulta = new DateTime(), Bairro = !String.IsNullOrEmpty(resConsulta.DadosReceita.Bairro) ? resConsulta.DadosReceita.Bairro : resConsulta.DadosSintegra.Bairro, Cidade = !String.IsNullOrEmpty(resConsulta.DadosReceita.Municipio) ? resConsulta.DadosReceita.Municipio : resConsulta.DadosSintegra.Municipio, UF = !String.IsNullOrEmpty(resConsulta.DadosReceita.UF) ? resConsulta.DadosReceita.UF : resConsulta.DadosSintegra.UF, CEP = !String.IsNullOrEmpty(resConsulta.DadosReceita.CEP) ? resConsulta.DadosReceita.CEP : resConsulta.DadosSintegra.CEP, Complemento = !String.IsNullOrEmpty(resConsulta.DadosReceita.Complemento) ? resConsulta.DadosReceita.Complemento : resConsulta.DadosSintegra.Complemento, Numero = !String.IsNullOrEmpty(resConsulta.DadosReceita.Numero) ? resConsulta.DadosReceita.Numero : resConsulta.DadosSintegra.Num, Telefone = jaTemDadosPrincipais ? dps.Telefone : "", Telefone2 = jaTemDadosPrincipais ? dps.Telefone2 : "", Telefone3 = jaTemDadosPrincipais ? dps.Telefone3 : "", Telefone4 = jaTemDadosPrincipais ? dps.Telefone4 : "", Telefone5 = jaTemDadosPrincipais ? dps.Telefone5 : "", NumeroFax = jaTemDadosPrincipais ? dps.NumeroFax : "", // DataAbertura = cliente.datcad as DateTime?, //usar no socio. // Ativo = cliente.sitcli as string, InscricaoEstadualSin = resConsulta.DadosSintegra.InscricaoEstadual, CodTipoMercado = jaTemDadosPrincipais ? dps.TipoMercado : "", CodTipoEmpresa = jaTemDadosPrincipais ? dps.TipoEmpresa : "", CodTipoDireitoPropriedade = jaTemDadosPrincipais ? dps.TipoDireitoPropriedadeEmpresa : "", CodRamoAtividade = jaTemDadosPrincipais ? dps.CodRamoAtividade : "", CodRamoFiscal = jaTemDadosPrincipais ? dps.RamoFiscal : "", CodRota = jaTemDadosPrincipais ? dps.CodRota : "", CodSubRota = jaTemDadosPrincipais ? dps.CodSubRota : "", CodGrupoEmpresa = jaTemDadosPrincipais ? dps.CodGrupoEmpresa : "", CodIBGE = !String.IsNullOrEmpty(resConsulta.DadosReceita.CodIBGE) ? resConsulta.DadosReceita.CodIBGE : resConsulta.DadosSintegra.CodIBGE, TributaICMS = jaTemDadosPrincipais ? dps.TributaICMS : "", CobraCliente = jaTemDadosPrincipais ? dps.CobraCliente : "", ExpurgaDaInadimplencia = jaTemDadosPrincipais ? dps.ExpurgaDaInadimplencia : "", ObservacaoMotivoSituacao = jaTemDadosPrincipais ? dps.ObservacaoMotivoSituacao : "", //---------------------- daqui pra baixo, é o que veio do SERASA ---------------// //Bairro = resConsulta.DadosReceita.Bairro, //CEP = resConsulta.DadosReceita.CEP, CNAE = resConsulta.DadosReceita.CNAE, DataAbertura = resConsulta.DadosReceita.DataAbertura, DescCNAE = resConsulta.DadosReceita.DescCNAE, NaturezaJuridica = resConsulta.DadosReceita.NaturezaJuridica, Simples = resConsulta.DadosReceita.Simples, SituacaoReceita = resConsulta.DadosReceita.Situacao, SituacaoSin = resConsulta.DadosSintegra.Situacao, DescAtividadeEconomicaSin = resConsulta.DadosSintegra.DescAtividadeEconomica, DistritoIBGESin = resConsulta.DadosSintegra.DistritoIBGE, ObservacaoSin = resConsulta.DadosSintegra.Observacao, //Complemento = resConsulta.DadosReceita.Complemento, //Logradouro = resConsulta.DadosReceita.Endereco, //Cidade = resConsulta.DadosReceita.Municipio, //NomeFantasia = resConsulta.DadosReceita.Nome, //Numero = resConsulta.DadosReceita.Numero, //RazaoSocial = resConsulta.DadosReceita.RazaoSocial, //UF = resConsulta.DadosReceita.UF, //BairroSin = resConsulta.DadosSintegra.Bairro, //CEPSin = resConsulta.DadosSintegra.CEP, //ComplementoSin = resConsulta.DadosSintegra.Complemento, //EnderecoSin = resConsulta.DadosSintegra.Endereco, //InscricaoEstadualSin = resConsulta.DadosSintegra.InscricaoEstadual, //CidadeSin = resConsulta.DadosSintegra.Municipio, //NomeSin = resConsulta.DadosSintegra.Nome, //NumeroSin = resConsulta.DadosSintegra.Num, //UFSin = resConsulta.DadosSintegra.UF }, JsonRequestBehavior.DenyGet); } #endregion }
public JsonResult ConsultaAprovador(int CodParecer = 0) { // pegar o usuario por seu codigo // obter o parecer da solicitacao em que o usuario aparecer, retornar os dados deste parecer. // o que precisa ser alterado? os dados de parecer.(Aprovacao) // recarregar a tela com um novo parecer. using (var solicitacaoBLL = new SolicitacaoBLL()) { var carSapBLL = new CaracteristicaSapiensBLL(); var parecerSolicitacaoBLL = new ParecerSolicitacaoBLL(); var usuario = Session["ConexaoSapiens"] as UsuarioSapiens; var perfilBLL = new PerfilUsuarioBLL(); var clienteSapiensBLL = new ClienteSapiensBLL(); var p = parecerSolicitacaoBLL.ObterPorCodigo(CodParecer); Solicitacao s = p.Solicitacao; foreach (var c in p.CaracteristicasAprovacao) { carSapBLL.ObterNomes(c); } solicitacaoBLL.ObterNomes(new List<Solicitacao> { p.Solicitacao }); new DefinicoesClienteSolicitacaoBLL().PreencheDependencias(p.Solicitacao.Definicoes.Last(), p.Solicitacao.CodCliente, Convert.ToInt32(Session["CodigoFilial"])); p.ContatosAprovacao = p.ContatosAprovacao.Count > 0 ? p.ContatosAprovacao : new List<ContatoClienteAprovacao>() { /* new ContatoClienteAprovacao() */ }; var perfisUsuarioLogado = perfilBLL.ObterGruposPorCodUsuario(usuario.Codusu); var queryPodeSalvarParecer = from meuPerfil in perfisUsuarioLogado where meuPerfil.CodPerfilUsuario == p.Codperusu select meuPerfil; // aqui, verifico se o usuário atual, tem perfil de aprovador var podeSalvar = queryPodeSalvarParecer.Count() > 0 ? "S" : "N"; //aqui, verifico se o parecer está aguardando aprovação if (p.Codsitpar != Convert.ToInt32(SituacaoParecer.AguardandoAprovacao)) { podeSalvar = "N"; } #region obter o perfil atribuído a cada parecer. (quem precisa aprovar) var perfilAprovador = perfilBLL.ObterPorCodigo(p.Codperusu); p.Perfil = perfilAprovador.DesPerfil; var usuarioAprovador = new UsuarioSapiensBLL().ObterPorCodigo((int)p.Codusuapr); p.Aprovador = usuarioAprovador.Nomusu; #endregion Session["Parecer"] = p; var dpa = p.DadosPrincipaisAprovacao.Last(); var def = p.DefinicoesAprovacao.Last(); //return PartialView("_Parecer", p); var parecerJson = new { Ativo = dpa.Ativo, CodParecer = p.CodParecer, Txtpar = p.Txtpar, Perfil = p.Perfil, Aprovador = p.Aprovador, LimiteSugerido = p.LimiteSugerido, CodigoDadoPrincipalAprovacao = dpa.CodigoDadoPrincipalAprovacao, CodCliente = dpa.CodCliente, CPFCNPJ = dpa.CPFCNPJ, TipoCliente = dpa.TipoCliente, InscricaoEstadual = dpa.InscricaoEstadual, SituacaoReceitaFederal = dpa.SituacaoReceitaFederal, SituacaoReceitaEstadual = dpa.SituacaoReceitaEstadual, RazaoSocial = dpa.RazaoSocial, NomeFantasia = dpa.NomeFantasia, TipoMercado = dpa.TipoMercado, TipoEmpresa = dpa.TipoEmpresa, TipoDireitoPropriedadeEmpresa = dpa.TipoDireitoPropriedadeEmpresa, CodRamoAtividade = dpa.CodRamoAtividade, RamoFiscal = dpa.RamoFiscal, CodRota = dpa.CodRota, CodSubRota = dpa.CodSubRota, CodGrupoEmpresa = dpa.CodGrupoEmpresa, CEP = dpa.CEP, Logradouro = dpa.Logradouro, Numero = dpa.Numero, Complemento = dpa.Complemento, Bairro = dpa.Bairro, Cidade = dpa.Cidade, UF = dpa.UF, Telefone = dpa.Telefone, EmailNFE = dpa.EmailNFE, PontoDeReferencia = dpa.PontoDeReferencia, ObservacaoMotivoSituacao = dpa.ObservacaoMotivoSituacao, //Definicoes = p.DefinicoesAprovacao.Last(), CodDefinicoesClienteAprovacao = def.CodDefinicoesClienteAprovacao, CodCategoria = def.CodCategoria, CodCondicaoPagamento = def.CodCondicaoPagamento, CodFilial = def.CodFilial, CodFormaDePagamento = def.CodFormaDePagamento, CodGrupoContasAReceber = def.CodGrupoContasAReceber, CodRegiaoDeVendas = def.CodRegiaoDeVendas, CodRepresentante = def.CodRepresentante, ConsumidorFinal = def.ConsumidorFinal, ContratoDesconto = def.ContratoDesconto, IndAceitaFaturamentoParcialPedido = def.IndAceitaFaturamentoParcialPedido, IndCobrarTaxaBanco = def.IndCobrarTaxaBanco, IndDescontoFinanceiro = def.IndDescontoFinanceiro, Rodrigo = def.Rodrigo, VlrDescontoFinanceiro = def.VlrDescontoFinanceiro, VlrLimite = def.VlrLimite, podeSalvar = podeSalvar }; return Json(parecerJson, JsonRequestBehavior.AllowGet); } }
//sem suporte nativo no 2010, instalar o ASync CTP e testar futuramente... // public async Task DoWork() // { // int[] ids = new[] { 1, 2, 3, 4, 5 }; // await Task.WhenAll(ids.Select(i => DoSomething(1, i, blogClient))); // } /// <summary> /// Aprova várias solicitações usando paralelismo (uso de vários núcleos da CPU disponível) /// </summary> /// <param name="solicitacoes">uma lista dos códigos das solicitações a aprovar, passados como uma string.</param> /// <returns></returns> public ActionResult AprovarVarias(string solicitacoes) { try { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } //Autoriza if (!AutorizaUsuario(ControlAccessConfig.ListaAnalise)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } // verificar se é usuário master var perfilBLL = new PerfilUsuarioBLL(); var usuario = (UsuarioSapiens)Session["ConexaoSapiens"]; usuario.PerfisUsuario = perfilBLL.ObterGruposPorCodUsuario(usuario.Codusu); var queryMaster = from perfil in usuario.PerfisUsuario where perfil.CodPerfilUsuario == 8 select perfil; var isUsuarioMaster = queryMaster.ToList().Count > 0; if (isUsuarioMaster) { // array [1,2,3,4] veio na request como uma string 1,2,3,4, separar e criar um array de inteiros. var codigos = solicitacoes.Split(',').Select(x => Int32.Parse(x)).ToArray(); List<int> aprovados = new List<int>(); using (ParecerSolicitacaoBLL parecerBLL = new ParecerSolicitacaoBLL()) { var historicoBLL = new HistoricoSolicitacaoBLL(); foreach (var c in codigos) { // aprovar várias... // pegar o último parecer de cada solicitação. Thread t = new Thread(_ => { ServiceReferenceTeste.srvSicadSoapClient clienteTesteIntegracao = new ServiceReferenceTeste.srvSicadSoapClient(); clienteTesteIntegracao.IntegrarDadosCliente(c); }); t.Start(); aprovados.Add(c); //var parecer = solBLL.ObterPorCodigo(c).PareceresSolicitacao.Last(); // parecer.Codsitpar = Convert.ToDecimal(SituacaoParecer.AguardandoIntegracao); // parecerBLL.Atualizar(parecer); var historico = new HistoricoSolicitacao(); historico.DatEncaminhamento = DateTime.Now; historico.CodSituacaoIntegracaoSolicitacao = Convert.ToInt32(SituacaoIntegracaoSolicitacao.Integrado); historico.CodSituacaoSolicitacao = Convert.ToInt32(SituacaoSolicitacao.Integrada); var s = new SolicitacaoBLL().ObterPorCodigo(c); historico.Solicitacao = s; historicoBLL.Salvar(historico); } } // atualizar o grid na tela.. return Json(new { aprovados = aprovados }, JsonRequestBehavior.DenyGet); } else { return Json(new { erro = "A Função \"Aprovar Selecionados\" não está disponível para o usuário atual. " }, JsonRequestBehavior.DenyGet); } } catch (Exception ex) { return Json(new { erro = ex.Message }, JsonRequestBehavior.DenyGet); } }
public ActionResult AprovacoesPaginadas(int? page) { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } //Autoriza if (!AutorizaUsuario(ControlAccessConfig.ListaAnalise)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } using (var solicitacaoBLL = new SolicitacaoBLL()) { try { // obter todas as solicitações cujo usu_sitsol == 'aguardando aprovação'. OK 09/12 var model = solicitacaoBLL.ObterSolicitacoesAguardandoAprovacao(); solicitacaoBLL.ObterNomes(model); //var solicitacoes = from s in model // where s.Situacao.ToUpper() != "REPROVADA" // && s.Situacao.ToUpper() != "INTEGRADA" // select s; var ajaxGridFactory = new Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory(); var grid = ajaxGridFactory.CreateAjaxGrid(model.OrderBy(c => c.Codigo).OrderBy(s => s.Codigo).AsQueryable(), page.HasValue ? page.Value : 1, false); return Json(new { Html = grid.ToJson("_Aprovacoes", this), grid.HasItems }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { return View("Error", ex.Message); } } }
public ActionResult SalvarDadoPrincipal(DadoPrincipalSolicitacao dps) { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } //Autoriza if (!AutorizaUsuario(Helpers.ControlAccessConfig.NovaSolicitacao)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } Solicitacao s = Session["Solicitacao"] as Solicitacao; // pegar o valor das dropdowns com jquery, e adicionar no "data" da request ajax. FEITO. 11/11/2014 #region preenche variáveis que não podem ficar nulas. if (String.IsNullOrEmpty(dps.Telefone)) { dps.Telefone = ""; } else { dps.Telefone = Regex.Replace(dps.Telefone, @"(\)+)|(\(+)|(\-+)", ""); if (dps.Telefone[2] == '0') { var ddd = dps.Telefone.Substring(0, 2); var num = dps.Telefone.Substring(2); dps.Telefone = ddd + num; } } dps.Telefone2 = String.IsNullOrEmpty(dps.Telefone2) ? "" : dps.Telefone2; dps.Telefone3 = String.IsNullOrEmpty(dps.Telefone3) ? "" : dps.Telefone3; dps.Telefone4 = String.IsNullOrEmpty(dps.Telefone4) ? "" : dps.Telefone4; dps.Telefone5 = String.IsNullOrEmpty(dps.Telefone5) ? "" : dps.Telefone5; //dps.ContribuinteICMS = String.IsNullOrEmpty(dps.ContribuinteICMS) ? "" : dps.ContribuinteICMS; var IE = String.IsNullOrEmpty(dps.InscricaoEstadual) ? "" : dps.InscricaoEstadual; dps.ContribuinteICMS = IE.Trim().ToLower() == "isento" || IE.Trim().ToLower() == "" ? "N" : "S"; dps.TributaICMS = "S"; dps.CodGrupoEmpresa = String.IsNullOrEmpty(dps.CodGrupoEmpresa) ? "" : dps.CodGrupoEmpresa; dps.NumeroFax = String.IsNullOrEmpty(dps.NumeroFax) ? "" : dps.NumeroFax; dps.PontoDeReferencia = string.IsNullOrEmpty(dps.PontoDeReferencia) ? "" : dps.PontoDeReferencia; dps.CodClienteDadoPrincipalSol = s.CodCliente; dps.TipoMercado = "I"; dps.CobraCliente = "S"; dps.ExpurgaDaInadimplencia = "N"; dps.ObservacaoMotivoSituacao = string.IsNullOrEmpty(dps.ObservacaoMotivoSituacao) ? "" : dps.ObservacaoMotivoSituacao; dps.TipoDireitoPropriedadeEmpresa = "1"; s.CodFilial = Convert.ToInt32(Session["CodigoFilial"]); // obter a filial no sapiens... OK #endregion try { var tiposDeAlteracao = dps.Alteracoes; //salvar os tipos de alteração. var usuario = (UsuarioSapiens)Session["ConexaoSapiens"]; s.CodUsuarioSolicitacao = usuario.Codusu; s.DatAlteracao = DateTime.Now; using (SolicitacaoBLL solicitacaoBLL = new SolicitacaoBLL()) { DadoPrincipalSolicitacaoBLL dadoPrincipalBLL = new DadoPrincipalSolicitacaoBLL(); HistoricoSolicitacaoBLL historicoBLL = new HistoricoSolicitacaoBLL(); DocumentoAnexadoSolicitacaoBLL docsBLL = new DocumentoAnexadoSolicitacaoBLL(); TipoAlteracaoBLL tipAltBLL = new TipoAlteracaoBLL(); var justificativaArmazenada = Session["TxtJustificativa"] as string; s.Usuario = usuario.Nomusu; s.DatCriacao = DateTime.Now; s.TxtJustificativa = !String.IsNullOrEmpty(s.TxtJustificativa) ? s.TxtJustificativa : !String.IsNullOrEmpty(justificativaArmazenada) ? justificativaArmazenada : ""; // AQUI GERA O TICKET SE AINDA NÃO HOUVER DADOS DA SOLICITAÇÃO -> OK if (dps.CodigoDadoPrincipal == 0) { //------------------------------------------------------------------------ if (s.CodCliente == 0) { s.CodTipoSolicitacao = Convert.ToInt32(TipoSolicitacao.Inclusao); } else // se o código do cliente não for 0, pode ser duplicação ou alteração. { if (s.CodTipoSolicitacao != 3) // se vem da duplicação, o codTipoSolicitacao foi definido lá { s.CodTipoSolicitacao = Convert.ToInt32(TipoSolicitacao.Alteracao); } } //------------------------------------------------------------------------ #region Salvar o histórico da solicitação se não existir ( MOSTROU-SE DESNECESSÁRIO ) //var historico = s.Historicos.LastOrDefault(); //if (historico == null) //{ // // Inserir como 'DIGITANDO' (código 1) // var h = new HistoricoSolicitacao(); // h.CodSituacaoSolicitacao = Convert.ToInt32(SituacaoSolicitacao.AguardandoFechamento); // s.CodSituacaoAtual = Convert.ToInt32(SituacaoSolicitacao.AguardandoFechamento); // h.Solicitacao = s; // s.Historicos.Add(h); //} #endregion s.CodSituacaoAtual = Convert.ToInt32(SituacaoSolicitacao.AguardandoFechamento); solicitacaoBLL.SalvarOuAtualizar(s); if (tiposDeAlteracao != null) { foreach (var t in tiposDeAlteracao) { var codTipoAlteracao = Convert.ToInt32(t); var tipo = tipAltBLL.ObterPorCodigo(codTipoAlteracao); if (!s.TiposAlteracao.Contains(tipo)) { s.TiposAlteracao.Add(tipo); } //se o tipo de alteração que eu estou tentando gravar já existir, não gravar. } } solicitacaoBLL.Atualizar(s); dps.Solicitacao = s; // atribui a chave estrageira (solicitação) ao dado principal. dps.EmailNFE = String.IsNullOrEmpty(dps.EmailNFE) ? "" : dps.EmailNFE;// +";" + dps.EmailNFE2; dadoPrincipalBLL.Salvar(dps); // salva os dados principais. } else { var dadoPrincipal = dadoPrincipalBLL.ObterPorCodigo(dps.CodigoDadoPrincipal); dadoPrincipal.Ativo = dps.Ativo; dadoPrincipal.Bairro = dps.Bairro; dadoPrincipal.CEP = dps.CEP; dadoPrincipal.Cidade = dps.Cidade; dadoPrincipal.CobraCliente = dps.CobraCliente; dadoPrincipal.CodClienteDadoPrincipalSol = dps.CodClienteDadoPrincipalSol; dadoPrincipal.CodGrupoEmpresa = dps.CodGrupoEmpresa; dadoPrincipal.CodIBGE = dps.CodIBGE; dadoPrincipal.CodigoDadoPrincipal = dps.CodigoDadoPrincipal; dadoPrincipal.CodRamoAtividade = dps.CodRamoAtividade; dadoPrincipal.CodRota = dps.CodRota; dadoPrincipal.CodSubRota = dps.CodSubRota; dadoPrincipal.Complemento = dps.Complemento; dadoPrincipal.ContribuinteICMS = dps.ContribuinteICMS; dadoPrincipal.CPFCNPJ = dps.CPFCNPJ; dadoPrincipal.DataUltimaConsulta = dps.DataUltimaConsulta; dadoPrincipal.EmailNFE2 = dps.EmailNFE2; dadoPrincipal.EmailNFE = dps.EmailNFE + ";" + dps.EmailNFE2; dadoPrincipal.ExpurgaDaInadimplencia = dps.ExpurgaDaInadimplencia; dadoPrincipal.InscricaoEstadual = dps.InscricaoEstadual; dadoPrincipal.Isento = dps.Isento; dadoPrincipal.Logradouro = dps.Logradouro; dadoPrincipal.NomeFantasia = dps.NomeFantasia; dadoPrincipal.Numero = dps.Numero; dadoPrincipal.NumeroFax = dps.NumeroFax; dadoPrincipal.ObservacaoMotivoSituacao = dps.ObservacaoMotivoSituacao; dadoPrincipal.PontoDeReferencia = dps.PontoDeReferencia; dadoPrincipal.RamoFiscal = dps.RamoFiscal; dadoPrincipal.RazaoSocial = dps.RazaoSocial; dadoPrincipal.SituacaoReceitaFederal = String.IsNullOrEmpty(dadoPrincipal.SituacaoReceitaFederal) ? "Consulta não retornou dados" : dadoPrincipal.SituacaoReceitaFederal; dadoPrincipal.SituacaoReceitaEstadual = String.IsNullOrEmpty(dadoPrincipal.SituacaoReceitaEstadual) ? "Consulta não retornou dados" : dadoPrincipal.SituacaoReceitaEstadual; dadoPrincipal.Solicitacao = s; dadoPrincipal.Telefone = dps.Telefone; dadoPrincipal.Telefone2 = dps.Telefone2; dadoPrincipal.Telefone3 = dps.Telefone3; dadoPrincipal.Telefone4 = dps.Telefone4; dadoPrincipal.Telefone5 = dps.Telefone5; dadoPrincipal.TipoCliente = dps.TipoCliente; dadoPrincipal.TipoDireitoPropriedadeEmpresa = dps.TipoDireitoPropriedadeEmpresa; dadoPrincipal.TipoEmpresa = dps.TipoEmpresa; dadoPrincipal.TipoMercado = dps.TipoMercado; dadoPrincipal.TributaICMS = dps.TributaICMS; dadoPrincipal.UF = dps.UF; solicitacaoBLL.SalvarOuAtualizar(s);// AQUI GERA O TICKET -> OK ///////////////////// if (tiposDeAlteracao != null) { foreach (var t in tiposDeAlteracao) { var codTipoAlteracao = Convert.ToInt32(t); var tipo = tipAltBLL.ObterPorCodigo(codTipoAlteracao); if (!s.TiposAlteracao.Contains(tipo)) { s.TiposAlteracao.Add(tipo); } } solicitacaoBLL.Atualizar(s); } ///////////////////// dps.Solicitacao = s; dadoPrincipalBLL.Atualizar(dadoPrincipal); } s.DadosPrincipaisSolicitacao.Clear(); s.DadosPrincipaisSolicitacao.Add(dps); // as vezes reclama de session aberta, solução -> trazer do banco , preencher os dados e atualizar. } Session["Solicitacao"] = s; new SolicitacaoBLL().ObterNomes(new List<Solicitacao>() { s }); return Json(new { msg = "Dados Principais gravados com sucesso. ticket nº: " + s.Codigo, codSol = s.Codigo, datCriacao = s.DatCriacao.ToShortDateString(), filial = s.Filial, status = s.Situacao, tipo = s.Tipo }, JsonRequestBehavior.DenyGet); } catch (Exception ex) { return Json(new { msg = "Erro ao tentar gravar dados principais: " + ex.Message }, JsonRequestBehavior.DenyGet); } }
public ActionResult ExcluirEnderecoEntrega(int codigo) { using (var bll = new SolicitacaoBLL()) { var s = Session["Solicitacao"] as Solicitacao; try { var ent = s.EnderecosEntrega.Where(c => c.CodEnderecoEntregaClienteSolicitacao == codigo).Single(); s.EnderecosEntrega.Remove(ent); bll.Atualizar(s); } catch (Exception ex) { return Json(new { erro = ex.Message }, JsonRequestBehavior.DenyGet); } Session["Solicitacao"] = s; return Json(new { msg = "endereco de entrega excluido" }, JsonRequestBehavior.DenyGet); } }
public JsonResult SalvarJustificativa(string TxtJustificativa) { using (SolicitacaoBLL solicitacaoBLL = new SolicitacaoBLL()) { var s = Session["Solicitacao"] as Solicitacao; if (!String.IsNullOrEmpty(TxtJustificativa)) { if (s.Codigo != 0) { s.TxtJustificativa = TxtJustificativa; solicitacaoBLL.Atualizar(s); } else { Session["TxtJustificativa"] = TxtJustificativa; } Session["Solicitacao"] = s; } else { return Json(new { erro = "Falta o texto da justificativa." }, JsonRequestBehavior.DenyGet); } } return Json(new { msg = " Justificativa gravada com sucesso." }, JsonRequestBehavior.DenyGet); }
public ActionResult ExcluirReferencia(int codigo) { using (var bll = new SolicitacaoBLL()) { var s = Session["Solicitacao"] as Solicitacao; try { var refer = s.Referencias.Where(c => c.CodReferenciaSol == codigo).Single(); s.Referencias.Remove(refer); bll.Atualizar(s); } catch (Exception ex) { return Json(new { erro = ex.Message }, JsonRequestBehavior.DenyGet); } Session["Solicitacao"] = s; return Json(new { msg = "referencia excluida" }, JsonRequestBehavior.DenyGet); } }
public ActionResult Consultar(int codigo = 0) { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } //Autoriza if (!AutorizaUsuario(Helpers.ControlAccessConfig.NovaSolicitacao)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } using (var solicitacaoBLL = new SolicitacaoBLL()) { var dpaBLL = new DadoPrincipalAprovacaoBLL(); var defSolBLL = new DefinicoesClienteSolicitacaoBLL(); var defBLL = new DefinicoesClienteAprovacaoBLL(); var parBLL = new ParecerSolicitacaoBLL(); var perfilBLL = new PerfilUsuarioBLL(); var carBLL = new CaracteristicaSapiensBLL(); var usuarioBLL = new UsuarioSapiensBLL(); var clienteSapiensBLL = new ClienteSapiensBLL(); // 18/11/2014 #region buscar a solicitacao usando o código e obter todas as dependencias OK - Update dia 30/12/2014 - Deixando o NHibernate Gerenciar os relacionamentos. var s = Session["Solicitacao"] as Solicitacao; s = solicitacaoBLL.ObterPorCodigo(codigo); s.PareceresSolicitacao = s.PareceresSolicitacao.OrderBy(par => par.CodParecer).ToList(); foreach (var p in s.PareceresSolicitacao) { dpaBLL.PreencheDependencias(p.DadosPrincipaisAprovacao.Last()); foreach (var d in p.DefinicoesAprovacao) { defBLL.PreencheDependencias(d, p.Solicitacao.CodCliente); } foreach (var c in p.CaracteristicasAprovacao) { carBLL.ObterNomes(c); } foreach (var c in s.Caracteristicas) { carBLL.ObterNomes(c); } p.Codperusu = p.Codperusu == 0 ? 2 : p.Codperusu; var perfilAprovador = perfilBLL.ObterPorCodigo(p.Codperusu); p.Perfil = perfilAprovador.DesPerfil; var usuarioAprovador = usuarioBLL.ObterPorCodigo((int)p.Codusuapr); p.Aprovador = usuarioAprovador.Nomusu; if (!String.IsNullOrEmpty(p.DefinicoesAprovacao.Last().VlrLimite)) { p.DefinicoesAprovacao.Last().VlrLimite = String.Format("{0:C}", Convert.ToInt32(p.DefinicoesAprovacao.Last().VlrLimite)); } } #endregion solicitacaoBLL.ObterNomes(new List<Solicitacao> { s }); var usuario = Session["ConexaoSapiens"] as UsuarioSapiens; ViewBag.Usuario = usuario.Nomusu; ViewBag.NomeEmpresa = usuario.Numemp; var nomeFilial = Session["NomeFilial"] as string; ViewBag.Filial = usuario.Codfil + " - " + nomeFilial; var clienteSapiens = clienteSapiensBLL.ObterPorCodigo(s.CodCliente); if (clienteSapiens != null) { int codFilAnulavel = s.Definicoes.Last().CodFilial; var definicoesClienteSapiens = new DefinicoesSapiensBLL().ObterDefinicoesPorCliente(clienteSapiens.codcli, codFilAnulavel); defSolBLL.PreencheDependencias(s.Definicoes.Last(), s.CodCliente, s.CodFilial); clienteSapiens.Definicoes.Add(definicoesClienteSapiens); #region Lógica para mostrar o limite solicitado var limiteAtual = clienteSapiensBLL.ListaLimiteAtual(1, s.CodCliente); // ex de retorno : "R$ 100,00" ViewBag.LimiteAtual = limiteAtual; limiteAtual = Regex.Replace(limiteAtual, @"(\s+)|(\\+)|(\.+)|(/+)|(\-+)|(\,+)|(R+)|(\$+)", ""); if (limiteAtual.Length > 1) { limiteAtual = limiteAtual.Substring(0, limiteAtual.Length - 2); } else { limiteAtual = "0"; } string limiteSolicitado = String.Format("{0:C}", s.Definicoes.Last().VlrLimite); if (limiteAtual != limiteSolicitado) { ViewBag.HouveAlteracaoLimite = "S"; ViewBag.LimiteSolicitado = String.Format("{0:C}", Decimal.Parse(limiteSolicitado)); } else { ViewBag.HouveAlteracaoLimite = "N"; ViewBag.LimiteSolicitado = "---"; } #endregion if (clienteSapiens.Definicoes.Last() != null) { /////////// var codcpgAtual = clienteSapiens.Definicoes.Last().Codcpg; var codcpgSolicitado = s.Definicoes.Last().CodCondicaoPagamento; var prazoDePagamentoAtual = s.Definicoes.Last().CondicoesPagamento.Where(c => c.codcpg == codcpgAtual).Select(cond => cond.descpg).FirstOrDefault(); ViewBag.PrazoDePagamentoCadastro = prazoDePagamentoAtual; if (codcpgAtual != codcpgSolicitado) { ViewBag.HouveAlteracaoPrazo = "S"; } else { ViewBag.HouveAlteracaoPrazo = "N"; } var codFpgAtual = clienteSapiens.Definicoes.Last().Codfpg; var codFpgSolicitado = s.Definicoes.Last().CodFormaDePagamento; var formaDePagamentoAtual = s.Definicoes.Last().FormasPagamento.Where(c => c.codfpg == codFpgAtual).Select(cond => cond.desfpg).FirstOrDefault(); ViewBag.FormaDePagamentoCadastro = formaDePagamentoAtual; if (codFpgAtual.ToString() != codFpgSolicitado) { ViewBag.HouveAlteracaoFormaPagamento = "S"; } else { ViewBag.HouveAlteracaoFormaPagamento = "N"; } } } Session["Solicitacao"] = s; return View("Consultar", s); } }
public JsonResult InativarCliente(int codigo, string txtJustificativa) { try { var s = Session["Solicitacao"] as Solicitacao; var cliente = new ClienteSapiensBLL().ObterPorCodigo(codigo); using (var solBLL = new SolicitacaoBLL()) { var codFilial = Convert.ToInt32(Session["CodigoFilial"]); var usuario = (UsuarioSapiens)Session["ConexaoSapiens"]; solBLL.PreencheDadosSolicitacaoUsandoSapiens(s, cliente, false); //s.Definicoes[0].VlrLimite = "R$ " + s.Definicoes[0].VlrLimite + ",00"; s.Definicoes[0].VlrLimite = String.Format("{0:c}", Convert.ToInt32(s.Definicoes[0].VlrLimite)); s.CodCliente = cliente.codcli; s.CodTipoSolicitacao = Convert.ToInt32(TipoSolicitacao.Inativacao); s.CodFilial = codFilial; if (string.IsNullOrEmpty(txtJustificativa)) { s.TxtJustificativa = "Solicito Inativação do Cliente " + cliente.codcli; } else { s.TxtJustificativa = txtJustificativa; } s.CodUsuarioSolicitacao = usuario.Codusu; s.DatCriacao = DateTime.Now; #region Teste Tipo Cliente var tam = cliente.cgccpf.ToString().Length; //tamanho do documento do cliente no banco // se o tipo cliente não for nulo nem vazio, posso testar o tipo o corrigir o doc. if (!string.IsNullOrEmpty(cliente.tipcli)) { if (cliente.tipcli.ToUpper() == "F") { // hummmmmm o que temos aqui... uma GAMBIARRA FULL HD 1024 pixels! // ( coluna numérica do oracle foi traduzida para long, então não vem o 0 na frente do CPF. ) // isso se chama "Dançar conforme a música" if (tam < 11) { if (tam == 10) { s.DadosPrincipaisSolicitacao.Last().CPFCNPJ = "0" + s.DadosPrincipaisSolicitacao.Last().CPFCNPJ; } else if (tam == 9) { s.DadosPrincipaisSolicitacao.Last().CPFCNPJ = "00" + s.DadosPrincipaisSolicitacao.Last().CPFCNPJ; } else if (tam == 8) { s.DadosPrincipaisSolicitacao.Last().CPFCNPJ = "000" + s.DadosPrincipaisSolicitacao.Last().CPFCNPJ; } } } else if (cliente.tipcli.ToUpper() == "J") { //GAMBIARRA FULL LEVEL 2 ( coluna numérica do oracle foi traduzida para long, então não vem o 0 na frente do CNPJ..) if (tam < 14) { if (tam == 13) { //$cpfcnpj.val("0" + $cpfcnpj.val()); s.DadosPrincipaisSolicitacao.Last().CPFCNPJ = "0" + s.DadosPrincipaisSolicitacao.Last().CPFCNPJ; } else if (tam == 12) { //$cpfcnpj.val("00" + $cpfcnpj.val()); s.DadosPrincipaisSolicitacao.Last().CPFCNPJ = "00" + s.DadosPrincipaisSolicitacao.Last().CPFCNPJ; } else if (tam == 11) { //$cpfcnpj.val("000" + $cpfcnpj.val()); s.DadosPrincipaisSolicitacao.Last().CPFCNPJ = "000" + s.DadosPrincipaisSolicitacao.Last().CPFCNPJ; } } } // FIM DO TESTE TIPO CLIENTE } #endregion s.DadosPrincipaisSolicitacao.Last().Ativo = "I"; SalvarDadoPrincipal(s.DadosPrincipaisSolicitacao.Last()); // além de salvar os dados principais, salva as listas em cascata. SalvarDefinicoes(s.Definicoes.Last()); EnviarParaAprovacao(s.TxtJustificativa); return Json(new { codigo = s.Codigo , msg = "Solicitacao " + s.Codigo +" foi enviada para aprovação"}, JsonRequestBehavior.DenyGet); } } catch (Exception ex) { return Json(new { erro = ex.Message }, JsonRequestBehavior.DenyGet); } }
public ActionResult ConsultarSerasa(string CPFCNPJ, string UF = "") { using (var solicitacaoBLL = new SolicitacaoBLL()) { // Consultar o Serasa. #region retorna um JSON com o resultado da consulta Confie do Serasa // RETIRA OS CARACTERES ESPECIAIS. CPFCNPJ = Regex.Replace(CPFCNPJ, @"(\s+)|(\\+)|(\.+)|(/+)|(\-+)", ""); if (!ValidaDocumento(CPFCNPJ)) { return Json(new { erro = "CPF ou CNPJ Inválido" }, JsonRequestBehavior.DenyGet); } var resConsulta = solicitacaoBLL.PreparaConsultaConfie(CPFCNPJ, UF); var CodIBGE = resConsulta.DadosReceita.CodIBGE; var CodIBGESin = resConsulta.DadosSintegra.CodIBGE; if (resConsulta.DadosReceita == null && resConsulta.DadosSintegra == null) { return Json(new { erro = "Dados não encontrados." }, JsonRequestBehavior.DenyGet); } else { // Salva o LOG da consulta na base. var consultaReceitaBLL = new ConsultaReceitaBLL(); var consultaReceita = new ConsultaReceita(); consultaReceita.Codusucon = ((UsuarioSapiens)Session["ConexaoSapiens"]).Codusu; consultaReceita.Datcon = DateTime.Now; consultaReceita.Sitrec = resConsulta.DadosReceita.Situacao; consultaReceita.Sitsin = resConsulta.DadosSintegra.Situacao; consultaReceita.Documento = CPFCNPJ; //consultaReceita.Solicitacao = s; consultaReceitaBLL.Salvar(consultaReceita); // var IEValida = SICAD.DAL.ConsultaConfie.ValidarInscricaoEstadual(resConsulta.DadosSintegra.InscricaoEstadual, ref IEFormatada); var IEFormatada = SICAD.DAL.ConsultaConfie.FormatarInscricaoEstadual(resConsulta.DadosReceita.UF, resConsulta.DadosSintegra.InscricaoEstadual); // atualizar sempre e sobrescrever os valores na tela. return Json(new { CPFCNPJ = CPFCNPJ, SituacaoReceita = resConsulta.DadosReceita.Situacao, SituacaoSin = resConsulta.DadosSintegra.Situacao, /* Dados Principais do Sapiens ------------------------------------ */ NomeFantasia = !String.IsNullOrEmpty(resConsulta.DadosReceita.Nome) ? resConsulta.DadosReceita.Nome : resConsulta.DadosSintegra.Nome, RazaoSocial = resConsulta.DadosReceita.RazaoSocial, Logradouro = !String.IsNullOrEmpty(resConsulta.DadosReceita.Endereco) ? resConsulta.DadosReceita.Endereco : resConsulta.DadosSintegra.Endereco, DataUltimaConsulta = new DateTime(), Bairro = !String.IsNullOrEmpty(resConsulta.DadosReceita.Bairro) ? resConsulta.DadosReceita.Bairro : resConsulta.DadosSintegra.Bairro, Cidade = !String.IsNullOrEmpty(resConsulta.DadosReceita.Municipio) ? resConsulta.DadosReceita.Municipio : resConsulta.DadosSintegra.Municipio, UF = !String.IsNullOrEmpty(resConsulta.DadosReceita.UF) ? resConsulta.DadosReceita.UF : resConsulta.DadosSintegra.UF, CEP = !String.IsNullOrEmpty(resConsulta.DadosReceita.CEP) ? resConsulta.DadosReceita.CEP : resConsulta.DadosSintegra.CEP, Complemento = !String.IsNullOrEmpty(resConsulta.DadosReceita.Complemento) ? resConsulta.DadosReceita.Complemento : resConsulta.DadosSintegra.Complemento, Numero = !String.IsNullOrEmpty(resConsulta.DadosReceita.Numero) ? resConsulta.DadosReceita.Numero : resConsulta.DadosSintegra.Num, InscricaoEstadualSin = IEFormatada,////////////////// CodIBGE = !String.IsNullOrEmpty(resConsulta.DadosReceita.CodIBGE) ? resConsulta.DadosReceita.CodIBGE : resConsulta.DadosSintegra.CodIBGE, #region---------------------- daqui pra baixo, é o que veio do SERASA ------------------ // não está usando //CNAE = resConsulta.DadosReceita.CNAE, //DataAbertura = resConsulta.DadosReceita.DataAbertura, //DescCNAE = resConsulta.DadosReceita.DescCNAE, //NaturezaJuridica = resConsulta.DadosReceita.NaturezaJuridica, //Simples = resConsulta.DadosReceita.Simples, //DescAtividadeEconomicaSin = resConsulta.DadosSintegra.DescAtividadeEconomica, //DistritoIBGESin = resConsulta.DadosSintegra.DistritoIBGE, //ObservacaoSin = resConsulta.DadosSintegra.Observacao, //UF = resConsulta.DadosReceita.UF, #endregion }, JsonRequestBehavior.DenyGet); } #endregion }//fim do using }
public ActionResult Index(string buscaCli) { try { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } var usuario = (UsuarioSapiens)Session["ConexaoSapiens"]; ViewBag.Usuario = usuario.Nomusu; ViewBag.NomeEmpresa = usuario.Numemp; var nomeFilial = Session["NomeFilial"] as string; ViewBag.Filial = usuario.Codfil + " - " + nomeFilial; //Autoriza if (!AutorizaUsuario(Helpers.ControlAccessConfig.ListaSolicitacoes)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } IEnumerable<Solicitacao> model = new List<Solicitacao>(); #region MONTA PÁGINA COM GRID DE SOLICITAÇÕES using (var solicitacaoBLL = new SolicitacaoBLL()) { //TODO: 09/12/2014 Obter as solicitacoes mostrar as solicitações cujo status é diferente de 'AA' // na criacao de uma nova, ou na edicao de uma existente, definir o tipo ao enviar para aprovacao. model = solicitacaoBLL.ObterSolicitacoesPorCodFilial(Convert.ToInt32(Session["CodigoFilial"])); //var listaSolicitacoes = model.OrderByDescending(c => c.Codigo).Where(s => s.CodUsuarioSolicitacao == usuario.Codusu).AsQueryable(); // 25/08/2015 - todos os usuários podem ver todas as solicitações da filial. OK //var listaSolicitacoes = model.OrderByDescending(c => c.Codigo).AsQueryable(); var listaSolicitacoes = model.OrderByDescending(c => c.Codigo); try { if (listaSolicitacoes.Count() > 0) { solicitacaoBLL.ObterNomes(listaSolicitacoes.ToList()); } //var ajaxGridFactory = new Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory(); //var grid = ajaxGridFactory.CreateAjaxGrid(listaSolicitacoes, 1, false); //return View(grid); return View(listaSolicitacoes); } catch (Exception ex) { return View("Erro", null, ex.Message); } } } catch (Exception ex) { return View("Erro", null, ex.Message); } #endregion }
public ActionResult Editar(int codigo = 0) { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } //Autoriza if (!AutorizaUsuario(Helpers.ControlAccessConfig.NovaSolicitacao)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } using (var solicitacaoBLL = new SolicitacaoBLL()) { var consultaReceitaBLL = new ConsultaReceitaBLL(); // 18/11/2014 #region buscar a solicitacao usando o código e obter todas as dependencias OK - Update dia 30/12/2014 - Deixando o NHibernate Gerenciar os relacionamentos. Solicitacao model = solicitacaoBLL.ObterPorCodigo(codigo); var cpfcnpj = model.DadosPrincipaisSolicitacao.Last().CPFCNPJ; // RETIRA OS CARACTERES ESPECIAIS. cpfcnpj = Regex.Replace(cpfcnpj, @"(\s+)|(\\+)|(\.+)|(/+)|(\-+)", ""); var tipoCliente = ""; if (cpfcnpj.Length == 11) { tipoCliente = "F"; } else { tipoCliente = "J"; } var clienteSapiensBLL = new ClienteSapiensBLL(); // se for inclusão, ignorar esta parte... if (model.CodCliente != 0) { ClienteSapiens cliente = clienteSapiensBLL.ObterPorCodigo(model.CodCliente); // Obter a data da ultima consulta ao serasa.. var ultimaConsulta = consultaReceitaBLL.ObterDataUltimaConsultaDoCliente(cpfcnpj); var dataCadastro = cliente != null && cliente.datcad.HasValue ? cliente.datcad.Value.ToString("dd/MM/yyyy hh:mm:ss") : ""; model.DadosPrincipaisSolicitacao.Last().DataUltimaConsulta = ultimaConsulta.Year == 1 ? "Cadastrado em " + dataCadastro : "Última consulta feita em " + ultimaConsulta.ToString("dd/MM/yyyy hh:mm:ss"); } model.DadosPrincipaisSolicitacao.Last().TipoCliente = tipoCliente; Session["Solicitacao"] = model; #endregion return View("Editar", model); // sem as dependencias. } }
public ActionResult Pesquisa(DadosPesquisa dados, int? page) { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } //Autoriza if (!AutorizaUsuario(ControlAccessConfig.ListaAnalise)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } IList<Solicitacao> solicitacoes = new List<Solicitacao>(); using (var solBLL = new SolicitacaoBLL()) { var usuario = Session["UsuarioSapiens"] as UsuarioSapiens; var codUsuario = 0; int CodSolicitacao = dados.CodSolicitacao; int CodTipoSolicitacao = dados.CodTipoSolicitacao; int CodCliente = dados.CodCliente; string NomeCliente = dados.NomeCliente; string Solicitante = dados.Solicitante; bool PessoaFisica = dados.PessoaFisica; var tipoCliente = dados.PessoaFisica ? "F" : "J"; bool MinhasSolicitacoes = dados.MinhasSolicitacoes; var dataSolicitacaoIni = Convert.ToDateTime(dados.DataSolicitacaoIni.ToShortDateString()); var dataSolicitacaoFim = Convert.ToDateTime(dados.DataSolicitacaoFim.ToShortDateString()); var dataAprovacaoIni = Convert.ToDateTime(dados.DataAprovacaoIni.ToShortDateString()); var dataAprovacaoFim = Convert.ToDateTime(dados.DataAprovacaoFim.ToShortDateString()); var CodSituacaoSolicitacao = Convert.ToInt32(dados.Status); // se o código da solicitação for infomado, ignorar os outros filtros if (CodSolicitacao != 0) { //solicitacoes = solBLL.ListarTodos().Where(s => s.Codigo == CodSolicitacao).ToList(); solicitacoes.Add(solBLL.ObterPorCodigo(CodSolicitacao)); } else { if (CodTipoSolicitacao == 0) { solicitacoes = solBLL.ListarTodos(); } else { solicitacoes = solBLL.ListarTodos().Where(s => s.CodTipoSolicitacao == CodTipoSolicitacao).ToList(); } if (CodCliente != 0) { solicitacoes = solicitacoes.Where(s => s.CodCliente == CodCliente).ToList(); } if (!String.IsNullOrEmpty(NomeCliente)) { solicitacoes = solicitacoes.Where(s => s.DadosPrincipaisSolicitacao.Last().RazaoSocial.StartsWith(dados.NomeCliente)).ToList(); } if (!String.IsNullOrEmpty(dados.Solicitante)) { codUsuario = new UsuarioSapiensBLL().ListarTodos().Where(u => u.Nomusu.StartsWith(dados.Solicitante)).Select(u => u.Codusu).FirstOrDefault(); solicitacoes = solicitacoes.Where(s => s.CodUsuarioSolicitacao == codUsuario).ToList(); } if (MinhasSolicitacoes) { solicitacoes = solicitacoes.Where(s => s.CodUsuarioSolicitacao == usuario.Codusu).ToList(); } if (dataSolicitacaoIni.ToShortDateString() != "01/01/0001") { solicitacoes = solicitacoes.Where(s => s.DatCriacao >= dataSolicitacaoIni && s.DatCriacao <= dataSolicitacaoFim).ToList(); } if (dataAprovacaoIni.ToShortDateString() != "01/01/0001") { solicitacoes = solicitacoes.Where(s => s.CodSituacaoAtual == 3 && s.PareceresSolicitacao.OrderBy(p => p.CodParecer).Last().Datpar.Value >= dataAprovacaoIni && s.PareceresSolicitacao.OrderBy(p => p.CodParecer).Last().Datpar.Value <= dataAprovacaoFim).ToList(); } if (CodSituacaoSolicitacao != 0) { solicitacoes = solicitacoes.Where(s => s.CodSituacaoAtual == CodSituacaoSolicitacao).ToList(); } solicitacoes = solicitacoes.Where(s => s.DadosPrincipaisSolicitacao.Last().TipoCliente == tipoCliente).ToList(); } solBLL.ObterNomes(solicitacoes.ToList()); //var ajaxGridFactory = new Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory(); //var grid = ajaxGridFactory.CreateAjaxGrid(solicitacoes.OrderBy(c => c.Codigo).OrderBy(s => s.Codigo).AsQueryable(), page.HasValue ? page.Value : 1, false); return View("Index", solicitacoes.OrderBy(c => c.Codigo).OrderBy(s => s.Codigo).AsQueryable()); } //retornar uma lista de solicitações com os dados da pesquisa }
public ActionResult ExcluirContato(int codigo) { using (var bll = new SolicitacaoBLL()) { var s = Session["Solicitacao"] as Solicitacao; try { var ct = s.Contatos.Where(c => c.CodContato == codigo).Single(); s.Contatos.Remove(ct); bll.Atualizar(s); } catch (Exception ex) { return Json(new { erro = ex.Message }, JsonRequestBehavior.DenyGet); } Session["Solicitacao"] = s; return Json(new { msg = "contato excluido" }, JsonRequestBehavior.DenyGet); } }
// GET: /Aprovacao/ public ActionResult Index() { //Autentica if (Session["ConexaoSapiens"] == null) { return RedirectToAction("Login", "Home"); } //Autoriza if (!AutorizaUsuario(ControlAccessConfig.ListaAnalise)) { return View("Erro", null, "Módulo não autorizado para este usuário. "); } var usuario = (UsuarioSapiens)Session["ConexaoSapiens"]; ViewBag.Usuario = usuario.Nomusu; ViewBag.NomeEmpresa = usuario.Numemp; var nomeFilial = Session["NomeFilial"] as string; ViewBag.Filial = usuario.Codfil + " - " + nomeFilial; using (var solicitacaoBLL = new SolicitacaoBLL()) { try { var model = solicitacaoBLL.ObterSolicitacoesAguardandoAprovacao(); var listaSolicitacoes = model.OrderBy(s => s.DatCriacao).AsQueryable(); solicitacaoBLL.ObterNomes(listaSolicitacoes.ToList()); foreach (var sol in listaSolicitacoes) { foreach (var tipo in sol.TiposAlteracao) { sol.Tipo += " - " + tipo.Descricao; } } //var ajaxGridFactory = new Grid.Mvc.Ajax.GridExtensions.AjaxGridFactory(); //var grid = ajaxGridFactory.CreateAjaxGrid(listaSolicitacoes, 1, false); return View(listaSolicitacoes); } catch (Exception ex) { return View("Error", ex.Message); } } }