Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Dados Default da definição.
        /// </summary>
        /// <param name="codFilial">a filial</param>
        /// <param name="dps"> os dados principais.</param>
        /// <param name="def">a definição.</param>
        protected void DadosAutomaticosDefinicao(int codFilial, DadoPrincipalSolicitacao dps, DefinicoesClienteSolicitacao def)
        {
            if (codFilial == 4)
            {//Filial São Paulo

                def.CodGrupoContasAReceber = "45";
                def.IndAceitaFaturamentoParcialPedido = "S";
                def.RecJurosMoraMes = "9,99";
                def.TipJuros = "S";
                def.IndCobrarTaxaBanco = "N";
                def.CodCategoria = "9";
            }
            else if (codFilial == 1)//Filial Rio
            {
                def.CodGrupoContasAReceber = "02";
                def.IndAceitaFaturamentoParcialPedido = "S";
                def.RecJurosMoraMes = "9,99";
                def.TipJuros = "S";
                def.IndCobrarTaxaBanco = "S";
                def.CodCategoria = "9";

            }
            else if (codFilial == 11)//Filial Minas
            {
                def.CodGrupoContasAReceber = "43";
                def.IndAceitaFaturamentoParcialPedido = "S";
                def.RecJurosMoraMes = "9,99";
                def.TipJuros = "S";
                def.IndCobrarTaxaBanco = "S";
                def.CodCategoria = "9";
            }
            else if (codFilial == 7)//Filial Recife
            {
                def.CodGrupoContasAReceber = "44";
                def.IndAceitaFaturamentoParcialPedido = "S";
                def.RecJurosMoraMes = "9,99";
                def.TipJuros = "S";
                def.IndCobrarTaxaBanco = "S";
                def.CodCategoria = "9";
            }
            else if (codFilial == 10)//Filial Curitiba
            {
                def.CodGrupoContasAReceber = "36";
                def.IndAceitaFaturamentoParcialPedido = "S";
                def.RecJurosMoraMes = "9,99";
                def.TipJuros = "S";
                def.IndCobrarTaxaBanco = "S";
                def.CodCategoria = "9";
            }
            else if (codFilial == 8)//Filial DF
            {
                def.CodGrupoContasAReceber = "42";
                def.IndAceitaFaturamentoParcialPedido = "S";
                def.RecJurosMoraMes = "9,99";
                def.TipJuros = "S";
                def.IndCobrarTaxaBanco = "S";
                def.CodCategoria = "9";
            }

            def.IndEmiteBoleto = def.CodFormaDePagamento == "5" ? "S" : "N";
            def.IndLimiteAprovado = "N";
            def.IndicativoPresencial = "9";

            def.CodRegiaoDeVendas = dps.UF;

            switch (dps.CodRamoAtividade)
            {
                case "001":
                case "003":
                case "006":
                case "007":
                case "011":
                case "012":
                    def.ConsumidorFinal = "S";
                    break;
                case "002":
                case "004":
                    def.ConsumidorFinal = "N";
                    break;
            }
        }
        public void PreencheDependencias(DadoPrincipalSolicitacao d)
        {
            using (var ramoDAL = new RamoAtividadeDAL())
            {
                Task t1 = Task.Factory.StartNew(() =>
                {

                    var ramos = from ramo in ramoDAL.ListarTodos()
                                select ramo;

                    d.RamosAtividade = new List<RamoAtividade>();

                    foreach (var r in ramos)
                    {
                        d.RamosAtividade.Add(r);
                    }
                });

                Task t2 = Task.Factory.StartNew(() =>
                {
                    var rotaDAL = new RotaDAL();

                    d.Rotas = new List<Rota>();
                    var rotas = from rota in rotaDAL.ListarTodos()
                                select rota;

                    foreach (var r in rotas)
                    {
                        d.Rotas.Add(r);
                    }
                });

                Task t3 = Task.Factory.StartNew(() =>
                {
                    var subRotaDAL = new SubRotaDAL();

                    d.SubRotas = new List<SubRota>();
                    var subrotas = from s in subRotaDAL.ListarTodos()
                                   select s;

                    foreach (var s in subrotas)
                    {
                        d.SubRotas.Add(s);
                    }
                    //d.SubRotas = new List<SubRota>();
                });

                Task t4 = Task.Factory.StartNew(() =>
                {
                    var grupoEmpresaDAL = new GrupoEmpresaDAL();

                    d.GrupoEmpresas = new List<GrupoEmpresa>();
                    var grupo = from g in grupoEmpresaDAL.ListarTodos()
                                select g;

                    foreach (var g in grupo)
                    {
                        d.GrupoEmpresas.Add(g);

                    }
                });

                Task t5 = Task.Factory.StartNew(() => {
                    var tiposAlteracaoDAL = new TipoAlteracaoDAL();
                    d.TiposAlteracao = new Dictionary<string, string>();

                    d.TiposAlteracao = tiposAlteracaoDAL.ListarTodos().Where(t => t.Situacao == "A").ToDictionary(t => t.CodTipoAlteracao.ToString(), t => t.Descricao);

                });

                if ( (!String.IsNullOrEmpty(d.EmailNFE)) && d.EmailNFE.IndexOf(';') != -1)
                {
                    d.EmailNFE2 = d.EmailNFE.Split(';')[1];
                    d.EmailNFE = d.EmailNFE.Split(';')[0];
                }

                Task.WaitAll(t1, t2, t3, t4, t5);
            }
        }