public static CategoriaVM ModelToViewModel(FORNECEDOR_CATEGORIA categoria, UrlHelper url)
        {
            var viewModel = Mapper.Map <CategoriaVM>(categoria);

            viewModel.Url = url;
            viewModel.Validar();
            return(viewModel);
        }
        public ActionResult CategoriaFrm(string chaveurl)
        {
            try
            {
                int    contratanteId = (int)Geral.PegaAuthTicket("ContratanteId");
                int    id            = 0;
                string acao          = "";

                if (!string.IsNullOrEmpty(chaveurl))
                {
                    List <ParametroCriptografia> param = Cripto.DescriptografarUrl(chaveurl, Key);
                    Int32.TryParse(param.First(p => p.Name == "id").Value, out id);
                    acao = param.First(p => p.Name == "Acao").Value;
                }

                CategoriaVM categoriaVM = new CategoriaVM();
                //Inclusão Categoria
                if (id == 0)
                {
                    categoriaVM.Ativo = true;
                }
                //Inclusão de SubCategoria
                else if (acao == "NovaSubcategoria")
                {
                    FORNECEDOR_CATEGORIA categoriaSelecionada = _fornecedorCategoriaService.BuscarPorId(id, contratanteId);
                    categoriaVM.PaiId = categoriaSelecionada.ID;
                    categoriaVM.DescricaoCategoriaPai = String.Concat(categoriaSelecionada.CODIGO, !String.IsNullOrEmpty(categoriaSelecionada.CODIGO) ? " - " : "", categoriaSelecionada.DESCRICAO);
                }
                //Alteração ou Exclusão de Categoria ou Subcategoria
                else
                {
                    categoriaVM = Mapper.Map <CategoriaVM>(_fornecedorCategoriaService.BuscarPorId(id, contratanteId), opt => opt.Items["Url"] = Url);
                }

                ViewBag.Acao = acao;
                return(View(categoriaVM));
            }
            catch (ServiceWebForLinkException ex)
            {
                ModelState.AddModelError("", ex.Message);
                Log.Error(ex);
                return(View(new CategoriaVM()
                {
                    Ativo = true
                }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Ocorreu um erro durante sua requisição.");
                Log.Error(ex);
                return(View(new CategoriaVM()
                {
                    Ativo = true
                }));
            }
        }
        public ActionResult CategoriaFrm(CategoriaVM model, string acao)
        {
            try
            {
                int contratanteId = (int)Geral.PegaAuthTicket("ContratanteId");
                ViewBag.Acao = acao;

                if (acao == "Excluir")
                {
                    ModelState.Remove("Codigo");
                    ModelState.Remove("Descricao");
                }
                if (ModelState.IsValid)
                {
                    ModelState.Clear();

                    FORNECEDOR_CATEGORIA categoriaInserir = Mapper.Map <FORNECEDOR_CATEGORIA>(model);

                    //Inserção de Categoria
                    if (model.ID == 0)
                    {
                        categoriaInserir.CONTRATANTE_ID = contratanteId;
                        _fornecedorCategoriaService.InserirCategoria(categoriaInserir);
                        TempData["MensagemSucesso"] = "Inclusão realizada com sucesso!";
                    }
                    //Alteração de Categoria
                    else if (acao == "Alterar")
                    {
                        _fornecedorCategoriaService.AlterarCategoria(categoriaInserir);
                        TempData["MensagemSucesso"] = "Alteração realizada com sucesso!";
                    }
                    //Exclusão de Categoria
                    if (acao == "Excluir")
                    {
                        if (ModelState.IsValid)
                        {
                            _fornecedorCategoriaService.ExcluirCategoriaDireto(categoriaInserir);
                        }
                        TempData["MensagemSucesso"] = "Exclusão realizada com sucesso!";
                    }
                    return(RedirectToAction("CategoriaLst", "Categoria"));
                }
                return(View(model));
            }
            catch (ServiceWebForLinkException ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(model));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Ocorreu um erro durante sua requisição.");
                Log.Error(ex);
                return(View(model));
            }
        }
        public bool FinalizarFichaCadastral(FichaCadastralWebForLinkVM model)
        {
            var preenchimentoValido = false;

            #region Validar Dados do Questionario Dinâmico
            List <WFD_INFORM_COMPL> informacoesComplementar = new List <WFD_INFORM_COMPL>();
            if (model.Questionarios != null)
            {
                if (model.Questionarios.QuestionarioDinamicoList != null)
                {
                    foreach (var questionario in model.Questionarios.QuestionarioDinamicoList)
                    {
                        foreach (var aba in questionario.AbaList)
                        {
                            foreach (var pergunta in aba.PerguntaList)
                            {
                                #region Validar se os campos obrigatórios estão preenchidos
                                //if (pergunta.Obrigatorio)
                                //{
                                //    if (string.IsNullOrEmpty(pergunta.Resposta))
                                //    {
                                //        ModelState.AddModelError("QuestionarioDinamicoValidation", string.Format("Campo {0} obrigatório!", pergunta.Titulo));
                                //    }
                                //}
                                #endregion

                                //if (ModelState.IsValid)
                                //{
                                WFD_INFORM_COMPL infoCompleRespondida = new WFD_INFORM_COMPL()
                                {
                                    SOLICITACAO_ID = model.Solicitacao.ID,
                                    PERG_ID        = pergunta.Id,
                                    RESPOSTA       = pergunta.Resposta
                                };

                                switch (pergunta.TipoDado)
                                {
                                case "RadioButton":
                                {
                                    if (pergunta.DominioListId != 0)
                                    {
                                        infoCompleRespondida.RESPOSTA = pergunta.DominioListId.ToString();
                                    }
                                }
                                break;

                                case "Checkbox":
                                {
                                    string respostaIdentada = string.Empty;
                                    foreach (string resposta in pergunta.RespostaCheckbox)
                                    {
                                        if (!resposta.Equals("false"))
                                        {
                                            respostaIdentada = string.Concat(respostaIdentada, "^", resposta);
                                        }
                                    }
                                    if (!string.IsNullOrEmpty(respostaIdentada))
                                    {
                                        infoCompleRespondida.RESPOSTA = respostaIdentada.Remove(0, 1);
                                    }
                                }
                                break;
                                }
                                informacoesComplementar.Add(infoCompleRespondida);
                                //}
                            }
                        }
                    }
                }
            }
            #endregion

            FORNECEDOR_CATEGORIA categoria = _fornecedorCategoriaService.BuscarPorId((int)model.CategoriaId);

            if (model.TipoFornecedor != 1)
            {
                if (model.DadosEnderecos == null || !model.DadosEnderecos.Any())
                {
                    ModelState.AddModelError("DadosEnderecoValidation", "Informar ao menos um Endereço!");
                }
                else if (model.DadosEnderecos.Any(x => x.TipoEnderecoId == 0 || String.IsNullOrEmpty(x.Endereco) || String.IsNullOrEmpty(x.Numero) || String.IsNullOrEmpty(x.CEP)))
                {
                    ModelState.AddModelError("DadosEnderecoValidation", "Dados incompletos no Endereço!");
                }
            }

            if (!categoria.ISENTO_DADOSBANCARIOS && !model.ApenasSalvar)
            {
                if (!model.DadosBancarios.Any())
                {
                    ModelState.AddModelError("DadosBancariosValidation", "Informar ao menos um Dado Bancário!");
                    model.DadosBancarios.Add(new DadosBancariosVM());
                }
            }
            else
            {
                //REMOVE AS CRITICAS DOS DADOS BANCARIOS CASO A CATEGORIA SEJA ISENTA
                while (ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("Banco")).Value != null)
                {
                    ModelState.Remove(ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("Banco")));
                }

                while (ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("Agencia")).Value != null)
                {
                    ModelState.Remove(ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("Agencia")));
                }

                while (ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("ContaCorrente")).Value != null)
                {
                    ModelState.Remove(ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("ContaCorrente")));
                }

                while (ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("ContaCorrenteDigito")).Value != null)
                {
                    ModelState.Remove(ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosBancarios") && ms.Key.Contains("ContaCorrenteDigito")));
                }
            }

            if (!categoria.ISENTO_CONTATOS && !model.ApenasSalvar)
            {
                if (model.DadosContatos == null || !model.DadosContatos.Any())
                {
                    ModelState.AddModelError("DadosContatosValidation", "Informar os Dados do Contato!");
                    model.DadosContatos = new List <DadosContatoVM>();
                    model.DadosContatos.Add(new DadosContatoVM());
                }
            }
            else
            {
                //REMOVE AS CRITICAS DOS DADOS DE CONTATOS CASO A CATEGORIA SEJA ISENTA
                while (ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosContatos") && ms.Key.Contains("EmailContato")).Value != null)
                {
                    ModelState.Remove(ModelState.FirstOrDefault(ms => ms.Key.Contains("DadosContatos") && ms.Key.Contains("EmailContato")));
                }
            }

            if (!categoria.ISENTO_DOCUMENTOS && !model.ApenasSalvar && model.TipoFornecedor != 2)
            {
                List <SolicitacaoDocumentosVM> docsObrigatorios = model.SolicitacaoFornecedor.Documentos.Where(x => x.Obrigatorio == true && x.ArquivoSubido == null).ToList();
                if (docsObrigatorios.Any())
                {
                    ModelState.AddModelError("AnexosValidation", "Favor subir os arquivos dos documentos Exigíveis!");
                }
            }

            ModelState.Remove("SolicitacaoFornecedor.Assunto");
            ModelState.Remove("SolicitacaoFornecedor.DescricaoSolicitacao");
            ModelState.Remove("SolicitacaoFornecedor.Mensagem");
            ModelState.Remove("SolicitacaoFornecedor.DadosEnderecos.T_UF.UF_NM");

            int tipoPapel  = model.TipoPreenchimento.Equals((int)EnumTiposPreenchimento.Fornecedor) ? (int)EnumTiposPapel.Fornecedor : (int)EnumTiposPapel.Solicitante;
            int papelAtual = _papelService.BuscarPorContratanteETipoPapel(model.ContratanteID, tipoPapel).ID;
            foreach (var modeloErrado in ModelState.Values)
            {
                if (modeloErrado.Errors.Count != 0)
                {
                }
            }

            if (ModelState.IsValid)
            {
                try
                {
                    SolicitacaoCadastroFornecedor solicitacaoCadastroFornecedor = _solicitacaoCadastroFornecedorService.BuscarPorSolicitacaoId(model.Solicitacao.ID);
                    CompletarSolicitacaoCadastroPJPF(ref solicitacaoCadastroFornecedor, model);
                    _solicitacaoCadastroFornecedorService.AtualizarSolicitacao(solicitacaoCadastroFornecedor);

                    ManterDadosBancarios(model.DadosBancarios.Where(w => w.Banco != null && w.Agencia != null && w.ContaCorrente != null).ToList(), model.Solicitacao.ID, model.ContratanteID);
                    ManterDadosContatos(model.DadosContatos.Where(w => w.EmailContato != null).ToList(), solicitacaoCadastroFornecedor.SOLICITACAO_ID);
                    ManterDadosEnderecos(model.DadosEnderecos.Where(x => x.TipoEnderecoId > 0).ToList(), solicitacaoCadastroFornecedor.SOLICITACAO_ID);

                    ManterUnspsc(model.FornecedoresUnspsc.ToList(), model.Solicitacao.ID);

                    if (model.TipoFornecedor != (int)EnumTiposFornecedor.EmpresaEstrangeira)
                    {
                        ManterDocumentos(model.SolicitacaoFornecedor.Documentos, model.Solicitacao.ID, model.ContratanteID);
                    }

                    _informacaoComplementarService.InsertAll(informacoesComplementar);

                    model.ProrrogacaoPrazo = new ProrrogacaoPrazoVM();
                    if (solicitacaoCadastroFornecedor.WFD_SOLICITACAO.WFD_SOLICITACAO_PRORROGACAO.Any())
                    {
                        //Busca a ultima solicitacao de prorrogação, ou seja a ativa.
                        model.ProrrogacaoPrazo = ProrrogacaoPrazoVM.ToViewModel(solicitacaoCadastroFornecedor.WFD_SOLICITACAO.WFD_SOLICITACAO_PRORROGACAO.OrderBy(o => o.ID).LastOrDefault());
                    }
                    model.ProrrogacaoPrazo.PrazoPreenchimento = _contratanteConfiguracaoService.BuscarPrazo(solicitacaoCadastroFornecedor.WFD_SOLICITACAO);
                    if (model.ProrrogacaoPrazo.Aprovado != null)
                    {
                        if ((bool)model.ProrrogacaoPrazo.Aprovado)
                        {
                            model.ProrrogacaoPrazo.Status = "Aprovado";
                        }
                        else
                        {
                            model.ProrrogacaoPrazo.Status = "Reprovado";
                        }
                    }
                    else
                    {
                        model.ProrrogacaoPrazo.Status = "Aguardando Aprovação...";
                    }


                    if (!model.ApenasSalvar)
                    {
                        _tramite.AtualizarTramite(model.ContratanteID, model.Solicitacao.ID, model.Solicitacao.Fluxo.ID, papelAtual, (int)EnumStatusTramite.Aprovado, null);

                        ViewBag.MensagemSucesso = "Dados Enviados com Sucesso!";
                        ViewBag.StatusTramite   = (int)EnumStatusTramite.Aprovado;
                    }
                    else
                    {
                        ViewBag.MensagemSucesso = "Dados Salvos com Sucesso!";
                        ViewBag.StatusTramite   = (int)EnumStatusTramite.Aguardando;
                    }
                    preenchimentoValido = true;
                }
                catch (Exception e)
                {
                    ViewBag.MensagemErro  = "Erro ao tentar Salvar a ficha cadastral!";
                    ViewBag.StatusTramite = (int)EnumStatusTramite.Aguardando;
                    Log.Error(e);
                }
            }
            else
            {
                ViewBag.MensagemErro  = "Não foi possível enviar a Ficha Cadastral! Existem dados incompletos abaixo.";
                ViewBag.StatusTramite = (int)EnumStatusTramite.Aguardando;
            }

            model.Questionarios = new RetornoQuestionario <QuestionarioVM>
            {
                QuestionarioDinamicoList =
                    Mapper.Map <List <QuestionarioDinamico>, List <QuestionarioVM> >(
                        _cadastroUnicoBP.BuscarQuestionarioDinamico(new QuestionarioDinamicoFiltrosDTO()
                {
                    //PapelId = papelAtual,
                    UF            = "RJ",
                    ContratanteId = model.ContratanteID,
                    PapelId       = papelAtual,
                    CategoriaId   = categoria.ID,
                    Alteracao     = true,
                    SolicitacaoId = model.Solicitacao.ID
                })
                        )
            };
            PersistirDadosEnderecoEmMemoria();

            return(preenchimentoValido);
        }
Exemple #5
0
        public ActionResult FornecedoresExpandirFrm(FichaCadastralWebForLinkVM model, int Empresa, int Organizacao, int FluxoID, int[] DocumentoID, string[] NomeDocumento, int?[] ArquivoID, int[] BancoOrdem, int[] BancoID, int[] Banco, string[] Agencia, string[] Digito, string[] ContaCorrente, string[] ContaCorrenteDigito, int?UsarContato, int[] ContatoID, string[] NomeContato, string[] Email, string[] Telefone, string[] Celular)
        {
            int?usuarioId = (int?)Geral.PegaAuthTicket("UsuarioId");

            List <int> contratantesForn = Db.WFD_CONTRATANTE_PJPF.Where(c => c.PJPF_ID == model.ID).Select(cc => cc.CONTRATANTE_ID).ToList();

            List <Contratante> contratantes = Db.Contratante.Where(c => c.WFD_USUARIO1.Any(u => u.ID == usuarioId) && !contratantesForn.Contains(c.ID)).ToList();
            int contID = contratantes.FirstOrDefault(c => c.ID == Empresa).ID;

            ViewBag.Empresa         = new SelectList(contratantes, "ID", "RAZAO_SOCIAL", Empresa);
            ViewBag.Organizacao     = new SelectList(_organizacaoComprasBP.ListarTodosPorIdContratante(contID), "ID", "ORG_COMPRAS_DSC");
            ViewBag.Bancos          = _bancoBP.ListarTodosPorNome();
            ViewBag.EscolherContato = true;
            ViewBag.UsarContato     = UsarContato;

            model.Expansao    = new ExpansaoVM();
            model.Solicitacao = new SolicitacaoVM
            {
                Fluxo = new FluxoVM
                {
                    ID = FluxoID
                }
            };

            if (UsarContato == null)
            {
                ModelState.AddModelError("ContatosValidation", "Informe contato que deseja utilizar!");
            }

            //VERIFICA DADOS DE CONTATOS
            model.DadosContatos = new List <DadosContatoVM>();
            for (int i = 0; i < ContatoID.Length; i++)
            {
                model.DadosContatos.Add(new DadosContatoVM
                {
                    ContatoID    = ContatoID[i],
                    NomeContato  = (i < NomeContato.Length) ? NomeContato[i] : "",
                    EmailContato = (i < Email.Length) ? Email[i] : "",
                    Telefone     = (i < Telefone.Length) ? Telefone[i] : "",
                    Celular      = (i < Celular.Length) ? Celular[i] : "",
                });

                if (ContatoID[i] == UsarContato)
                {
                    if (string.IsNullOrEmpty(Email[i]))
                    {
                        ModelState.AddModelError("ContatosValidation", "Informe o email!");
                    }
                }
            }

            // VERIFICA DADOS BANCARIOS
            bool dadosBancariosCompleto = true;

            model.DadosBancarios = new List <DadosBancariosVM>();
            for (int i = 0; i < Banco.Length; i++)
            {
                bool temDadosBancario = false;

                if ((Banco[i] != 0))
                {
                    temDadosBancario = true;
                }
                if ((!string.IsNullOrEmpty(Agencia[i])))
                {
                    temDadosBancario = true;
                }
                if ((!string.IsNullOrEmpty(Digito[i])))
                {
                    temDadosBancario = true;
                }
                if ((!string.IsNullOrEmpty(ContaCorrente[i])))
                {
                    temDadosBancario = true;
                }
                if ((!string.IsNullOrEmpty(ContaCorrenteDigito[i])))
                {
                    temDadosBancario = true;
                }

                model.DadosBancarios.Add(new DadosBancariosVM
                {
                    BancoSolicitacaoID = BancoID[i],
                    Banco               = (i < Banco.Length) ? Banco[i] : 0,
                    Agencia             = (i < Agencia.Length) ? Agencia[i] : "",
                    Digito              = (i < Digito.Length) ? Digito[i] : "",
                    ContaCorrente       = (i < ContaCorrente.Length) ? ContaCorrente[i] : "",
                    ContaCorrenteDigito = (i < ContaCorrenteDigito.Length) ? ContaCorrenteDigito[i] : ""
                });

                if (temDadosBancario)
                {
                    if ((Banco[i] == 0))
                    {
                        dadosBancariosCompleto = false;
                    }
                    if ((string.IsNullOrEmpty(Agencia[i])))
                    {
                        dadosBancariosCompleto = false;
                    }
                    if (Agencia[i].Length < 4)
                    {
                        dadosBancariosCompleto = false;
                    }
                    if ((string.IsNullOrEmpty(ContaCorrente[i])))
                    {
                        dadosBancariosCompleto = false;
                    }
                }
            }
            if (!dadosBancariosCompleto)
            {
                ModelState.AddModelError("DadosBancariosValidation", "Dado Bancário Incompleto!");
            }
            if (model.DadosBancarios.Count == 0)
            {
                ModelState.AddModelError("DadosBancariosValidation", "Informe ao menos um Dado Bancário!");
            }

            //VERIFICA ANEXOS
            model.SolicitacaoFornecedor = new SolicitacaoFornecedorVM()
            {
                Solicitacao = false,
                Documentos  = new List <SolicitacaoDocumentosVM>()
            };
            if (DocumentoID != null)
            {
                for (int i = 0; i < DocumentoID.Length; i++)
                {
                    SolicitacaoDocumentosVM solicitacaoDocumentosvm = new SolicitacaoDocumentosVM()
                    {
                        ID        = DocumentoID[i],
                        Documento = NomeDocumento[i],
                        ArquivoID = ArquivoID[i]
                    };
                    model.SolicitacaoFornecedor.Documentos.Add(solicitacaoDocumentosvm);
                }
            }

            ModelState.Remove("SolicitacaoFornecedor.Assunto");
            ModelState.Remove("SolicitacaoFornecedor.DescricaoSolicitacao");

            if (ModelState.IsValid)
            {
                try
                {
                    WFD_CONTRATANTE_PJPF fornecedor = Db.WFD_CONTRATANTE_PJPF.Include("Fornecedor")
                                                      .Include("WFD_PJPF_CATEGORIA")
                                                      .FirstOrDefault(f => f.PJPF_ID == model.ID && f.CONTRATANTE_ID == model.ContratanteFornecedorID);
                    string codigoCategoria         = fornecedor.WFD_PJPF_CATEGORIA.CODIGO;
                    FORNECEDOR_CATEGORIA categoria = Db.WFD_PJPF_CATEGORIA.FirstOrDefault(c => c.CONTRATANTE_ID == Empresa && c.CODIGO == codigoCategoria);

                    SOLICITACAO solicitacao = new SOLICITACAO();
                    PopularSolicitacaoEmAprovacao(Empresa, model.ID, usuarioId, FluxoID, solicitacao);

                    Db.Entry(solicitacao).State = EntityState.Added;
                    Db.SaveChanges();

                    SolicitacaoCadastroFornecedor solforn = new SolicitacaoCadastroFornecedor
                    {
                        SOLICITACAO_ID         = solicitacao.ID,
                        EhExpansao             = true,
                        EXPANSAO_PARA_CONTR_ID = Empresa,
                        CATEGORIA_ID           = categoria.ID,
                        ORG_COMPRAS_ID         = Organizacao
                    };

                    for (int i = 0; i < BancoID.Length; i++)
                    {
                        solforn.WFD_SOLICITACAO.SolicitacaoModificacaoDadosBancario.Add(
                            new SolicitacaoModificacaoDadosBancario()
                        {
                            BANCO_PJPF_ID = BancoID[i] != 0 ? (int?)BancoID[i] : null,
                            BANCO_ID      = (Banco[i] != 0) ? Banco[i] : 0,
                            AGENCIA       = (string.IsNullOrEmpty(Agencia[i]) || String.IsNullOrWhiteSpace(Agencia[i])) ? null : Agencia[i],
                            AG_DV         = (string.IsNullOrEmpty(Digito[i]) || String.IsNullOrWhiteSpace(Digito[i])) ? null : Digito[i],
                            CONTA         = (string.IsNullOrEmpty(ContaCorrente[i]) || String.IsNullOrWhiteSpace(ContaCorrente[i])) ? null : ContaCorrente[i],
                            CONTA_DV      = (string.IsNullOrEmpty(ContaCorrenteDigito[i]) || String.IsNullOrWhiteSpace(ContaCorrenteDigito[i])) ? null : ContaCorrenteDigito[i]
                        });
                    }
                    for (int i = 0; i < ContatoID.Length; i++)
                    {
                        if (ContatoID[i] == UsarContato)
                        {
                            solforn.WFD_SOLICITACAO.SolicitacaoModificacaoDadosContato.Add(new SolicitacaoModificacaoDadosContato
                            {
                                EMAIL    = Email[i],
                                NOME     = NomeContato[i],
                                TELEFONE = Mascara.RemoverMascaraTelefone(Telefone[i]),
                                CELULAR  = Celular[i]
                            });
                        }
                    }

                    solforn.OBSERVACAO = model.Observacao;

                    Db.Entry(solforn).State = EntityState.Added;
                    Db.SaveChanges();

                    _tramite.AtualizarTramite(Empresa, solicitacao.ID, FluxoID, 1, 2, null);

                    return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = string.Format("Solicitação {0} de Expansão realizado com Sucesso!", solicitacao.ID) }));
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                }
            }

            return(View(model));
        }
Exemple #6
0
        private void ValidarFormularioCriacaoSolicitacao(FornecedoresVM model, string Acao)
        {
            if (!string.IsNullOrEmpty(model.Email))
            {
                if (!Validacao.ValidarEmail(model.Email))
                {
                    ModelState.AddModelError("Contato.Email", "O e-mail informado não está em um formato válido.");
                }
            }

            if (model.Categoria == 0)
            {
                ModelState.AddModelError("Categoria", "Informe a Categoria!");
            }

            if (model.TipoFornecedor == 1 || model.TipoFornecedor == 3)
            {
                if (model.CNPJ == null)
                {
                    ModelState.AddModelError("CNPJ", "CNPJ/CPF Obrigatório");
                }
                else
                {
                    if (model.TipoFornecedor == 1)
                    {
                        if (!Validacao.ValidaCNPJ(model.CNPJ.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", "")))
                        {
                            ModelState.AddModelError("CNPJ", "CNPJ Inválido");
                        }
                    }
                    else
                    {
                        if (!Validacao.ValidaCPF(model.CNPJ.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", "")))
                        {
                            ModelState.AddModelError("CNPJ", "CPF Inválido");
                        }
                    }
                }
            }

            if (Acao == "Incluir")
            {
                if (model.TipoFornecedor != 2)
                {
                    var cnpjteste = model.CNPJ == null
                        ? string.Empty
                        : model.CNPJ.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", "");

                    if (_fornecedorService.BuscarIdFornecedorPorCnpj(cnpjteste) != 0)
                    {
                        ModelState.AddModelError("CNPJ", "Já existe um fornecedor cadastrado com esse CNPJ/CPF!");
                    }

                    if (_solicitacaoCadastroService.BuscarPorStatusId(cnpjteste, 6) != null)
                    {
                        ModelState.AddModelError("CNPJ", "Já existe uma solicitação de criação para este CNPJ/CPF!");
                    }
                }
                else
                {
                    if (_fornecedorService.BuscarPorRazaoSocial(model.RazaoSocial) != null)
                    {
                        ModelState.AddModelError("RazaoSocial", "Já existe um fornecedor cadastrado com esta Razão Social");
                    }

                    if (_solicitacaoCadastroService.BuscarPorRazaoSocial(model.RazaoSocial) != null)
                    {
                        ModelState.AddModelError("RazaoSocial", "Já existe uma solicitação de criação para esta Razão Social");
                    }
                }
            }

            // SE TIPO ESTRANGEIRO RETIRA A VALIDACAO DO CNPJ
            if (model.TipoFornecedor == 2)
            {
                ModelState.Remove("CNPJ");
                ModelState.Remove("CONTATO.EMAIL");
            }

            // SE EMPRESA NACIONAL OU PESSOA FÍSICA, RETIRA A VALIDAÇÃO DA RAZÃO SOCIAL
            if (model.TipoFornecedor == 1 || model.TipoFornecedor == 3)
            {
                ModelState.Remove("RAZAOSOCIAL");
            }

            if (model.Categoria > 0)
            {
                FORNECEDOR_CATEGORIA categoria = _fornecedorCategoriaService.Get(model.Categoria);
                int totalDocCatecoria          = categoria.ListaDeDocumentosDeFornecedor.Count;

                if (categoria.ISENTO_DOCUMENTOS && categoria.ISENTO_DADOSBANCARIOS && categoria.ISENTO_CONTATOS)
                {
                    if (model.TipoCadastro == 1)
                    {
                        ModelState.AddModelError("", "A Categoria escolhida é isenta de Documentação, Dados Bancários e Contato, no entanto você está tentando enviar a solicitação para o fornecedor sem um e-mail de contato. Para continuar sem contato marque a opção \"Eu preencherei os dados\".");
                    }
                    else
                    {
                        ModelState.Remove("Email");
                    }
                }
                else
                if (totalDocCatecoria == 0)
                {
                    ModelState.AddModelError("", "Não é possível enviar esta solicitação. A Categoria/Grupo de Contas selecionado não possue Lista de Documento para solicitação!");
                }
            }
        }