public ActionResult SalvarDefinicoes(DefinicoesClienteSolicitacao def)
        {
            //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. ");
            }

            if (Request.IsAjaxRequest())
            {
                try
                {
                    var s = Session["Solicitacao"] as Solicitacao;

                    if (!String.IsNullOrEmpty(def.VlrLimite))
                    {
                        if (def.VlrLimite.IndexOf("R$") == 0)
                        {
                            def.VlrLimite = def.VlrLimite.Substring(2);
                        }

                        def.VlrLimite = Regex.Replace(def.VlrLimite, @"(\s+)|(\\+)|(\.+)|(/+)|(\-+)|(\,+)", "");
                        def.VlrLimite = def.VlrLimite.Remove(def.VlrLimite.Length - 2, 2);
                    }
                    else
                    {
                        def.VlrLimite = "0";
                    }

                    if (!String.IsNullOrEmpty(def.VlrDescontoFinanceiro))
                    {
                        def.VlrDescontoFinanceiro = Regex.Replace(def.VlrDescontoFinanceiro, @"(\s+)|(\\+)|(\.+)|(/+)|(\-+)|(\,+)|(\%+)", "");
                    }
                    else
                    {
                        def.VlrDescontoFinanceiro = "0";
                    }

                    var codFilial = Convert.ToInt32(Session["CodigoFilial"]);

                    def.CodFilial = codFilial;

                    DadosAutomaticosDefinicao(codFilial, s.DadosPrincipaisSolicitacao.Last(), def);

                    using (DefinicoesClienteSolicitacaoBLL definicoesBLL = new DefinicoesClienteSolicitacaoBLL())
                    {
                        def.Solicitacao = s;
                        definicoesBLL.SalvarOuAtualizar(def);
                    }

                    s.Definicoes.Clear();
                    s.Definicoes.Add(def);

                    Session["Solicitacao"] = s;

                    return Json(new { msg = "Definição gravada com sucesso." }, JsonRequestBehavior.DenyGet);
                }

                catch (Exception ex)
                {
                    return Json(new { msg = "Erro ao tentar gravar Definição: " + ex.Message }, JsonRequestBehavior.DenyGet);
                }
            }
            else
            {
                return Json(new { msg = "Erro Interno de validação, Verificar o modelo de dados." }, JsonRequestBehavior.DenyGet);
            }
        }