public ActionResult ReenviarFicha(string TipoFuncionalidade, int idSolicitacao, string CNPJ, string EmailContato, FichaCadastralWebForLinkVM ficha) { try { CNPJ = CNPJ.Replace(".", "").Replace("-", "").Replace("/", ""); int usuarioId = (int)Geral.PegaAuthTicket("UsuarioId"); SOLICITACAO solicitacao = _solicitacaoService.BuscarPorIdControleSolicitacoes(idSolicitacao); ficha.ContratanteID = solicitacao.CONTRATANTE_ID; ficha.Solicitacao.Fluxo.ID = solicitacao.FLUXO_ID; var papelFornecedor = _papelService.BuscarPorContratanteETipoPapel(ficha.ContratanteID, (int)EnumTiposPapel.Fornecedor).ID; var tramites = _solicitacaoTramite.BuscarTramitePorSolicitacaoIdPapelId(idSolicitacao, papelFornecedor); if (tramites == null) { var papelSolicitante = _papelService.BuscarPorContratanteETipoPapel(ficha.ContratanteID, (int)EnumTiposPapel.Solicitante).ID; _tramite.AtualizarTramite(ficha.ContratanteID, idSolicitacao, ficha.Solicitacao.Fluxo.ID, papelSolicitante, (int)EnumStatusTramite.Aprovado, usuarioId); } //se não for primeiro acesso enviar para tela de acesso string url = Url.Action("Index", "Home", new { chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}&Login={1}&TravaLogin=1", idSolicitacao, CNPJ), Key) }, Request.Url.Scheme); //se for primeiro acesso enviar para criação de usuário #region BuscarPorEmail //validar se o e-mail já existe na tabela de Usuarios if (!_usuarioBP.ValidarPorCnpj(CNPJ)) { url = Url.Action("CadastrarUsuarioFornecedor", "Home", new { chaveurl = Cripto.Criptografar(string.Format("Login={0}&SolicitacaoID={1}&Email={2}", CNPJ, idSolicitacao, EmailContato), Key) }, Request.Url.Scheme); } #endregion string mensagemLink = string.Concat(ficha.Mensagem, "<p><a href='", url, "'>Link</a>:", url, "</p>"); bool emailEnviadoComSucesso = _metodosGerais.EnviarEmail(EmailContato, ficha.Assunto, mensagemLink); } catch (Exception ex) { Log.Error(ex); } return(RedirectToAction("FornecedoresControleSolicitacoesLst", "ControleSolicitacao")); }
/// <summary> /// Criar o arquivo na pasta indicada, conforme as solicitações daquele contratante /// </summary> private void CriarArquivo(int contratanteId) { try { //Serializador xml XmlSerializer serializer = new XmlSerializer(typeof(SolicitacaoCarga)); //Leitura de todos as solicitações List <SOLICITACAO> solicitacoes = solicitacaoBP.ListarSolicitacaoCarga(contratanteId); //Mapeamento com a classe xml SolicitacaoCarga solicitacao = new SolicitacaoCarga { Solicitacoes = Mapper.Map <List <SOLICITACAO>, List <SolicitacoesCarga> >(solicitacoes) }; //Escrita XML var diretorioCarga = AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings.Get("DiretorioCarga"); using (TextWriter writer = new StreamWriter(NomearDocumento(contratanteId, diretorioCarga))) { serializer.Serialize(writer, solicitacao); } var diretorioCargaBackup = AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings.Get("DiretorioCargaBackup"); using (TextWriter writer = new StreamWriter(NomearDocumento(contratanteId, diretorioCargaBackup))) { serializer.Serialize(writer, solicitacao); } // ATUALIZA O TRAMITE DE CADA SOLICITAÇÃO INCLUIDA NO ARQUIVO int papelAtual = papelBP.BuscarPorContratanteETipoPapel(contratanteId, (int)EnumTiposPapel.CargaSAP).ID; solicitacoes.ForEach(x => _tramite.AtualizarTramite(x.CONTRATANTE_ID, x.ID, x.FLUXO_ID, papelAtual, (int)EnumStatusTramite.Aprovado, null)); } catch (Exception ex) { throw new WebForLinkException("Erro ao tentar criar o arquivo", ex); } }
public ActionResult EditarQuestionarioDinamico(int contratanteFornecedorID, int contratanteID, int fornecedorID, int?tipoFluxoID, int categoriaID, int TpPapel) { var papelAtual = _papelService.BuscarPorContratanteETipoPapel(contratanteID, TpPapel).ID; return(PartialView("_FichaCadastral_QuestionarioDinamico_Editavel", new RetornoQuestionario <QuestionarioVM>() { QuestionarioDinamicoList = Mapper.Map <List <QuestionarioDinamico>, List <QuestionarioVM> >( _cadastroUnicoService.BuscarQuestionarioDinamico(new QuestionarioDinamicoFiltrosDTO() { ContratanteId = contratanteID, PapelId = papelAtual, CategoriaId = categoriaID, Alteracao = true, SolicitacaoId = 0, FornecedorId = fornecedorID, ContratantePJPFId = contratanteFornecedorID }) ), })); }
public ActionResult Salvar(FichaCadastralWebForLinkVM model) { try { SOLICITACAO solicitacao = new SOLICITACAO(); solicitacao.FLUXO_ID = _fluxoService.BuscarPorTipoEContratante((int)EnumTiposFluxo.ModificacaoEndereco, model.ContratanteID).ID; solicitacao.SOLICITACAO_DT_CRIA = DateTime.Now; solicitacao.SOLICITACAO_STATUS_ID = (int)EnumStatusTramite.EmAprovacao; // EM APROVACAO solicitacao.USUARIO_ID = (int)Geral.PegaAuthTicket("UsuarioId"); solicitacao.PJPF_ID = model.ID; if (model.ContratanteID != 0) { solicitacao.CONTRATANTE_ID = model.ContratanteID; } var solicitacoesModEndereco = Mapper.Map <List <DadosEnderecosVM>, List <SOLICITACAO_MODIFICACAO_ENDERECO> >(model.DadosEnderecos.ToList()); if (solicitacoesModEndereco.Any()) { _solicitacaoModificacaoEnderecoService.InserirSolicitacoes(solicitacoesModEndereco, solicitacao); } var papelAtual = _papelService.BuscarPorContratanteETipoPapel(solicitacao.CONTRATANTE_ID, (int)EnumTiposPapel.Solicitante).ID; int usuarioId = (int)Geral.PegaAuthTicket("UsuarioId"); _tramiteService.AtualizarTramite(solicitacao.CONTRATANTE_ID, solicitacao.ID, solicitacao.FLUXO_ID, papelAtual, (int)EnumStatusTramite.Aprovado, usuarioId); PersistirDadosEnderecoEmMemoria(); string chaveUrl = ""; if (model.ControllerOrigem == "Fornecedores") { chaveUrl = Cripto.Criptografar(String.Format("FornecedorID={0}&ContratanteID={1}&RetSucessoEnderecos=1", model.PJPFID, model.ContratanteID), Key); } return(RedirectToAction(model.ActionOrigem, model.ControllerOrigem, new { chaveurl = chaveUrl })); } catch (Exception ex) { Log.Error(ex); string chaveUrl = ""; if (model.ControllerOrigem == "Fornecedores") { chaveUrl = Cripto.Criptografar(String.Format("FornecedorID={0}&ContratanteID={1}&RetSucessoEnderecos=-1", model.PJPFID, model.ContratanteID), Key); } return(RedirectToAction(model.ActionOrigem, model.ControllerOrigem, new { chaveurl = chaveUrl })); } }
private void AtualizarSolicitacaoDocumentos(FichaCadastralWebForLinkVM model, int tipoFluxoId, int solicitacaoId) { int usuarioId = (int)Geral.PegaAuthTicket("UsuarioId"); List <SolicitacaoDeDocumentos> documentosList = new List <SolicitacaoDeDocumentos>(); model.SolicitacaoFornecedor.Documentos .ForEach(x => { SolicitacaoDeDocumentos solicitacaoDeDocumentosSolicitada = _solicitacaoDocumentoService.BuscarPorIdSolicitacaoIdDescricaoDocumento((int)x.SolicitacaoID, x.DescricaoDocumentoId); if (!string.IsNullOrEmpty(x.ArquivoSubido) && solicitacaoDeDocumentosSolicitada != null) { int idSolicitacaoDocumento = solicitacaoDeDocumentosSolicitada.ID; var arquivoId = _fornecedorArquivoService.GravarArquivoSolicitacao(model.ContratanteID, x.ArquivoSubido, x.TipoArquivoSubido); SolicitacaoDeDocumentos solicitacaoDeDocumentos = new SolicitacaoDeDocumentos() { ID = idSolicitacaoDocumento, ARQUIVO_ID = arquivoId, DATA_VENCIMENTO = x.PorValidade != null ? ((bool)x.PorValidade ? x.DataValidade : null) : null, SOLICITACAO_ID = x.SolicitacaoID, DESCRICAO_DOCUMENTO_ID = solicitacaoDeDocumentosSolicitada.DESCRICAO_DOCUMENTO_ID, LISTA_DOCUMENTO_ID = solicitacaoDeDocumentosSolicitada.LISTA_DOCUMENTO_ID }; documentosList.Add(solicitacaoDeDocumentos); } }); documentosList.ForEach(x => { _solicitacaoDocumentoService.Update(x); }); var papelAtual = _papelService.BuscarPorContratanteETipoPapel(model.ContratanteID, (int)EnumTiposPapel.Fornecedor).ID; var solDocumentos = _solicitacaoService.BuscarPorId(solicitacaoId); _tramiteService.AtualizarTramite(model.ContratanteID, solicitacaoId, solDocumentos.FLUXO_ID, papelAtual, 2, solDocumentos.USUARIO_ID); }
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); }
public void PreencherFichaCadastral(SOLICITACAO solicitacao, FichaCadastralWebForLinkVM ficha, int tpPapel) { var contratante = solicitacao.Contratante; var solicitacaoCadastroPJPF = solicitacao.SolicitacaoCadastroFornecedor.First(); var solicitacaoFornecedorVM = new SolicitacaoFornecedorVM(); ficha.TipoFornecedor = solicitacaoCadastroPJPF.PJPF_TIPO; ficha.ContratanteID = contratante.ID; ficha.CategoriaId = solicitacaoCadastroPJPF.CATEGORIA_ID; ficha.ContratanteFornecedorID = solicitacao.CONTRATANTE_ID; ficha.SolicitacaoID = solicitacao.ID; ficha.Categoria = new CategoriaFichaVM { Id = solicitacaoCadastroPJPF.CATEGORIA_ID, Nome = solicitacaoCadastroPJPF.WFD_PJPF_CATEGORIA.CODIGO }; ficha.Solicitacao = new SolicitacaoVM { ID = solicitacao.ID, Fluxo = new FluxoVM { ID = solicitacao.FLUXO_ID } }; switch ((EnumTiposFornecedor)solicitacaoCadastroPJPF.PJPF_TIPO) { case EnumTiposFornecedor.EmpresaNacional: ficha.CNPJ_CPF = Convert.ToUInt64(solicitacaoCadastroPJPF.CNPJ).ToString(@"00\.000\.000\/0000\-00"); ficha.RazaoSocial = solicitacaoCadastroPJPF.RAZAO_SOCIAL; break; case EnumTiposFornecedor.EmpresaEstrangeira: ficha.RazaoSocial = solicitacaoCadastroPJPF.RAZAO_SOCIAL; break; case EnumTiposFornecedor.PessoaFisica: ficha.CNPJ_CPF = Convert.ToUInt64(solicitacaoCadastroPJPF.CPF).ToString(@"000\.000\.000\-00"); ficha.RazaoSocial = solicitacaoCadastroPJPF.NOME; break; } ficha.NomeFantasia = solicitacaoCadastroPJPF.NOME_FANTASIA; //ficha.CNAE = solicitacaoCadastroPJPF.CNAE; ficha.InscricaoEstadual = solicitacaoCadastroPJPF.INSCR_ESTADUAL; ficha.InscricaoMunicipal = solicitacaoCadastroPJPF.INSCR_MUNICIPAL; ficha.TipoLogradouro = solicitacaoCadastroPJPF.TP_LOGRADOURO; ficha.Endereco = solicitacaoCadastroPJPF.ENDERECO; ficha.Numero = solicitacaoCadastroPJPF.NUMERO; ficha.Complemento = solicitacaoCadastroPJPF.COMPLEMENTO; ficha.Cep = solicitacaoCadastroPJPF.CEP; ficha.Bairro = solicitacaoCadastroPJPF.BAIRRO; ficha.Cidade = solicitacaoCadastroPJPF.CIDADE; ficha.Estado = solicitacaoCadastroPJPF.UF; ficha.Pais = solicitacaoCadastroPJPF.PAIS; ficha.Observacao = solicitacaoCadastroPJPF.OBSERVACAO; //Mapear Dados Bancários var solicitacoesModBanco = solicitacao.SolicitacaoModificacaoDadosBancario.ToList(); ficha.DadosBancarios = solicitacoesModBanco.Any() ? Mapper.Map <List <SolicitacaoModificacaoDadosBancario>, List <DadosBancariosVM> >(solicitacoesModBanco) : new List <DadosBancariosVM>(); //Mapear Dados de Endereço var solicitacoesModEndereco = solicitacao.WFD_SOL_MOD_ENDERECO.ToList(); if (solicitacaoCadastroPJPF.PJPF_TIPO == 1) { ficha.DadosEnderecos = solicitacoesModEndereco.Any() ? Mapper.Map <List <SOLICITACAO_MODIFICACAO_ENDERECO>, List <DadosEnderecosVM> >(solicitacoesModEndereco) : new List <DadosEnderecosVM>(); } else { ficha.DadosEnderecos = solicitacoesModEndereco.Any() ? Mapper.Map <List <SOLICITACAO_MODIFICACAO_ENDERECO>, List <DadosEnderecosVM> >(solicitacoesModEndereco) : new List <DadosEnderecosVM> { new DadosEnderecosVM() }; } //Mapear Dados Contatos var solicitacoesModContato = solicitacao.SolicitacaoModificacaoDadosContato.ToList(); ficha.DadosContatos = solicitacoesModContato.Any() ? Mapper.Map <List <SolicitacaoModificacaoDadosContato>, List <DadosContatoVM> >(solicitacoesModContato) : new List <DadosContatoVM> { new DadosContatoVM() }; if (solicitacao.WFD_SOL_MENSAGEM.Any()) { solicitacaoFornecedorVM.Assunto = solicitacao.WFD_SOL_MENSAGEM.First().ASSUNTO; solicitacaoFornecedorVM.Mensagem = solicitacao.WFD_SOL_MENSAGEM.First().MENSAGEM; } solicitacaoFornecedorVM.Fornecedores = new List <SolicitacaoFornecedoresVM>(); solicitacaoFornecedorVM.SolicitacaoCriacaoID = solicitacao.ID; solicitacaoFornecedorVM.Fornecedores = solicitacao.SolicitacaoCadastroFornecedor.Select(x => new SolicitacaoFornecedoresVM { NomeFornecedor = x.RAZAO_SOCIAL, CNPJ = x.CNPJ }).ToList(); ficha.SolicitacaoFornecedor = solicitacaoFornecedorVM; //Mapear os Documentos solicitacaoFornecedorVM.Documentos = Mapper.Map <List <SolicitacaoDeDocumentos>, List <SolicitacaoDocumentosVM> >( solicitacao.SolicitacaoDeDocumentos.ToList()); //Mapear UNSPSC ficha.FornecedoresUnspsc = Mapper.Map <List <SOLICITACAO_UNSPSC>, List <FornecedorUnspscVM> >(solicitacao.WFD_SOL_UNSPSC.ToList()); var papel = _papelService.BuscarPorContratanteETipoPapel(contratante.ID, tpPapel).ID; //Mapear Questionários ficha.Questionarios = new RetornoQuestionario <QuestionarioVM> { QuestionarioDinamicoList = Mapper.Map <List <QuestionarioDinamico>, List <QuestionarioVM> >( _cadastroUnicoService.BuscarQuestionarioDinamico(new QuestionarioDinamicoFiltrosDTO { //PapelId = papelAtual, UF = "RJ", ContratanteId = contratante.ID, PapelId = papel, CategoriaId = solicitacaoCadastroPJPF.CATEGORIA_ID, Alteracao = true, SolicitacaoId = solicitacao.ID }) ) }; ficha.ProrrogacaoPrazo = new ProrrogacaoPrazoVM(); if (solicitacao.WFD_SOLICITACAO_PRORROGACAO.Count > 0) { //Busca a ultima solicitacao de prorrogação, ou seja a ativa. ficha.ProrrogacaoPrazo = Mapper.Map <SOLICITACAO_PRORROGACAO, ProrrogacaoPrazoVM>( solicitacao.WFD_SOLICITACAO_PRORROGACAO.OrderBy(o => o.ID).LastOrDefault()); } ficha.ProrrogacaoPrazo.PrazoPreenchimento = _configuracaoDoContratanteService.BuscarPrazo(solicitacao); if (ficha.ProrrogacaoPrazo.Aprovado != null) { if ((bool)ficha.ProrrogacaoPrazo.Aprovado) { ficha.ProrrogacaoPrazo.Status = "Aprovado"; } else { ficha.ProrrogacaoPrazo.Status = "Reprovado"; } } else { ficha.ProrrogacaoPrazo.Status = "Aguardando Aprovação..."; } }
public ActionResult CriarSolicitacao(FornecedoresVM model, int?CategoriaSelecionada, string CategoriaSelecionadaNome, int?SolicitacaoID, int Empresa, string Acao) { if (string.IsNullOrEmpty(Acao)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } int contratanteId = (int)Geral.PegaAuthTicket("ContratanteId"); int usuarioId = (int)Geral.PegaAuthTicket("UsuarioId"); bool solicitaDocumentos = (bool)Geral.PegaAuthTicket("SolicitaDocumentos"); bool solicitaFichaCadastral = (bool)Geral.PegaAuthTicket("SolicitaFichaCadastral"); int? grupoId = (int?)Geral.PegaAuthTicket("Grupo"); ViewBag.Categoria = Mapper.Map <List <CategoriaVM> >(_fornecedorCategoriaService.BuscarCategorias(contratanteId).OrderBy(x => x.DESCRICAO).ToList(), opt => opt.Items["Url"] = Url); ViewBag.CategoriaSelecionada = CategoriaSelecionada; ViewBag.CategoriaSelecionadaNome = CategoriaSelecionadaNome; if (CategoriaSelecionada != null) { model.Categoria = (int)CategoriaSelecionada; } if (grupoId != null) { ViewBag.Empresa = new SelectList(_contratanteService.ListarTodosPorUsuario(usuarioId), "ID", "RAZAO_SOCIAL", Empresa); } ViewBag.SolicitaDocumentos = solicitaDocumentos; ViewBag.solicitaFichaCadastral = solicitaFichaCadastral; ViewBag.Compras = new SelectList(_organizacaoComprasService.ListarTodosPorIdContratante(contratanteId), "ID", "ORG_COMPRAS_DSC"); ViewBag.Robo = false; ValidarFormularioCriacaoSolicitacao(model, Acao); ModelState.Remove("Email"); if (ModelState.IsValid) { SOLICITACAO solicitacao; var papelAtual = _papelService.BuscarPorContratanteETipoPapel(contratanteId, (int)EnumTiposPapel.Solicitante).ID; //INCLUSÃO DO FORNECEDOR switch (Acao) { case "Incluir": string cnpj = string.Empty; if (model.TipoFornecedor != (int)EnumTiposFornecedor.EmpresaEstrangeira) { cnpj = model.CNPJ.Replace(".", "").Replace("/", "").Replace("-", "").Replace("_", ""); } CadastrarSolicitacaoDTO modeloCadastro = new CadastrarSolicitacaoDTO() { TipoCadastro = model.TipoCadastro, TipoFornecedor = model.TipoFornecedor, ContratanteId = contratanteId, UsuarioId = usuarioId, CategoriaId = model.Categoria, ComprasId = model.Compras, CNPJ = cnpj, ContatoNome = model.NomeContato, ContatoEmail = model.Email, Telefone = model.Telefone, Assunto = System.Web.HttpContext.Current.Application["NomeSistema"].ToString(), RazaoSocial = model.RazaoSocial, CPF = cnpj, DataNascimento = model.DataNascimento }; solicitacao = _solicitacaoService.CadastrarSolicitacaoPreCadastro(model.ID, modeloCadastro); ViewBag.SolicitacaoId = solicitacao.ID; if (model.TipoFornecedor != (int)EnumTiposFornecedor.EmpresaEstrangeira) // SE NACIONAL { _tramite.AtualizarTramite(contratanteId, solicitacao.ID, solicitacao.FLUXO_ID, papelAtual, (int)EnumStatusTramite.Aguardando, usuarioId); ViewBag.Robo = true; return(View(model)); } return(RedirectToAction("FornecedoresDiretoFrm", "FornecedoresDireto", new { chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}", solicitacao.ID), Key) })); //break; case "Continuar": solicitacao = _solicitacaoService.BuscarPorIdComSolicitacaoCadastroFornecedor((int)SolicitacaoID); var robo = solicitacao.ROBO.FirstOrDefault(); if (robo != null) { if (robo.RF_CONSULTA_DTHR != null && robo.SINT_CONSULTA_DTHR != null && robo.SN_CONSULTA_DTHR != null) { solicitacao.ROBO_EXECUTADO = true; _solicitacaoService.Alterar(solicitacao); } } if (model.TipoCadastro == (int)EnumTiposPreenchimento.Fornecedor) { _tramite.AtualizarTramite(contratanteId, solicitacao.ID, solicitacao.FLUXO_ID, papelAtual, (int)EnumStatusTramite.Aprovado, usuarioId); return(RedirectToAction("EnviarSolicitacao", "PreCadastroFornecedor", new { chaveUrl = Cripto.Criptografar(string.Format("SolicitacaoID={0}", solicitacao.ID), Key), nomeContato = model.NomeContato, emailContato = model.Email, contratanteId = Empresa, documentoPfPj = model.CNPJ })); } return(RedirectToAction("FornecedoresDiretoFrm", "FornecedoresDireto", new { chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}", solicitacao.ID), Key) })); //break; case "Cancelar": solicitacao = _solicitacaoService.BuscarPorIdIncluindoFluxo((int)SolicitacaoID); _tramite.AtualizarTramite(contratanteId, solicitacao.ID, solicitacao.FLUXO_ID, papelAtual, 6, usuarioId); return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = "Solicitação Cancelada!" })); //break; } } if (model == null) { return(HttpNotFound()); } return(View(model)); }
public ActionResult FornecedoresControleSolicitacoesFrm(string chaveurl) { int idSolicitacao = 0; int idSolicitacaoTipo; int idPapel; if (!string.IsNullOrEmpty(chaveurl)) { List <ParametroCriptografia> param = Cripto.DescriptografarUrl(chaveurl, Key); Int32.TryParse(param.First(p => p.Name == "idS").Value, out idSolicitacao); Int32.TryParse(param.First(p => p.Name == "idST").Value, out idSolicitacaoTipo); Int32.TryParse(param.First(p => p.Name == "idP").Value, out idPapel); } int tipoFluxoId = _solicitacaoService.BuscarTipoFluxoId(idSolicitacao); ViewBag.Fluxo = tipoFluxoId; SOLICITACAO solicitacao = _solicitacaoService.BuscarPorIdControleSolicitacoes(idSolicitacao); int tpFluxoId = solicitacao.Fluxo.FLUXO_TP_ID; ViewBag.QtdGrupoEmpresa = _grupoService.QuantidadeEmpresa(solicitacao.CONTRATANTE_ID); FichaCadastralWebForLinkVM ficha = new FichaCadastralWebForLinkVM( idSolicitacao, new AprovacaoVM { Solicitacao_Tramite = new SOLICITACAO_TRAMITE() }); switch (tipoFluxoId) { case 10: // Cadastro Fornecedor Nacional case 20: // Cadastro Fornecedor Nacional Direto case 30: // Cadastro de Fonecedor Pessoa Física case 40: // Cadastro Fornecedor Pessoa Fisica Direto this.PopularAcompanhamentoNovoFornecedor(ficha, solicitacao); break; case 50: // Cadastro Fornecedor Estrangeiro this.PopularAcompanhamentoNovoFornecedorEstrangeiro(ficha, solicitacao); break; case 60: // Ampliação de Fornecedor this.PopularAcompanhamentoAmpliacao(ficha, solicitacao); break; case 70: // Modificações gerais this.PopularAcompanhamentoModificacaoGerais(ficha, solicitacao); ViewBag.OutrosDadosVisao = new SelectList(_visaoService.ListarTodos(), "ID", "VISAO_NM", ficha.OutrosDadosVisao); ViewBag.OutrosDadosGrupo = new SelectList(_tipoGrupoService.ListarGruposPorVisao(ficha.OutrosDadosVisao), "ID", "GRUPO_NM", ficha.OutrosDadosGrupo); ViewBag.OutrosDadosDescricao = new SelectList(_descricaoService.ListarPorGrupoId(ficha.OutrosDadosGrupo), "ID", "DESCRICAO_NM", ficha.OutrosDadosDescricao); break; case 90: // Modificações de dados Bancários this.PopularAcompanhamentoModificacaoDadosBancarios(ficha, solicitacao); break; case 100: // Modificações de dados Contatos this.PopularAcompanhamentoModificacaoDadosContatos(ficha, solicitacao); break; case 110: // Bloqueio do Fornecedor this.PopularAcompanhamentoBloqueio(ficha, solicitacao); ViewBag.BloqueioMotivoQualidade = _funcaoBloqueioService.ListarTodosPorCodigoFuncaoBloqueio(); break; case 120: // Desbloqueio do Fornecedor this.PopularAcompanhamentoDesbloqueio(ficha, solicitacao); break; case 130: // Atualizar Documentos this.PopularAcompanhamentoAtualizacaoDocumento(ficha, solicitacao); break; case 140: //Questionário Dinâmico this.PopularAcompanhamentoQuestionarioDinamico(ficha, solicitacao); break; case 150: //Mudança de Endereco this.PopularAcompanhamentoModificacaoEndereco(ficha, solicitacao); break; case 160: //Unspsc this.PopularAcompanhamentoModificacaoUnspsc(ficha, solicitacao); break; } //Mapear UNSPSC ficha.FornecedoresUnspsc = Mapper.Map <List <SOLICITACAO_UNSPSC>, List <FornecedorUnspscVM> >(solicitacao.WFD_SOL_UNSPSC.ToList()); // Solicitação Mapper.Map(solicitacao, ficha.Aprovacao); this.PopularAcompanhamentoPreencheStatusRobo(ficha, solicitacao, tpFluxoId); int papelSolicitante = _papelService.BuscarPorContratanteETipoPapel(solicitacao.Contratante.ID, (int)EnumTiposPapel.Solicitante).ID; ficha.Questionarios = new RetornoQuestionario <QuestionarioVM> { QuestionarioDinamicoList = Mapper.Map <List <QuestionarioDinamico>, List <QuestionarioVM> >( _cadastroUnicoService.BuscarQuestionarioDinamico(new QuestionarioDinamicoFiltrosDTO() { ContratanteId = solicitacao.Contratante.ID, PapelId = papelSolicitante, CategoriaId = ficha.CategoriaId, Alteracao = false, SolicitacaoId = solicitacao.ID }) ) }; var prorrogacao = solicitacao.WFD_SOLICITACAO_PRORROGACAO.Where(o => o.APROVADO == null).LastOrDefault(); if (prorrogacao != null) { //Busca a ultima solicitacao de prorrogação, ou seja a ativa. ficha.ProrrogacaoPrazo = Mapper.Map <SOLICITACAO_PRORROGACAO, ProrrogacaoPrazoVM>(prorrogacao); } ficha.ProrrogacaoPrazo.PrazoPreenchimento = _contratanteConfiguracaoService.BuscarPrazo(solicitacao); PreparaModal(ficha); return(View(ficha)); }
public ActionResult FornecedoresDesBloqueioFrm(FichaCadastralWebForLinkVM model, string rdLancamento, string rdCompras, string txtAreaMotivoDesbloqueio, int ContratanteID, int ContratanteFornecedorID, int?ID, int?bloqueioMotivoQualidade) { if (rdLancamento == null) { ModelState.AddModelError("FornecedoresBloqueioValidation", "Informe ao menos um desbloqueio de lançamento!"); } if (ContratanteID == 0) { ModelState.AddModelError("FornecedoresBloqueioValidation", "Ocorreu um error ao tentar salvar o desbloqueio. Por favor, tente mais tarde."); } if (ContratanteFornecedorID == 0) { ModelState.AddModelError("FornecedoresBloqueioValidation", "Ocorreu um error ao tentar salvar o desbloqueio. Por favor, tente mais tarde."); } if (ID == 0 || ID == null) { ModelState.AddModelError("FornecedoresBloqueioValidation", "Ocorreu um error ao tentar salvar o desbloqueio. Por favor, tente mais tarde."); } if (ModelState.IsValid) { int UsuarioId = (int)Geral.PegaAuthTicket("UsuarioId"); var solicitacaoId = 0; try { SOLICITACAO_DESBLOQUEIO desbloqueio = _solicitacaoDesbloqueio.criarSolicitacaoDesbloqueio(ContratanteID, UsuarioId, model.ID, rdLancamento, rdCompras, bloqueioMotivoQualidade, txtAreaMotivoDesbloqueio); solicitacaoId = desbloqueio.WFD_SOLICITACAO.ID; var papelAtual = _papelBP.BuscarPorContratanteETipoPapel(ContratanteID, (int)EnumTiposPapel.Solicitante).ID; _tramite.AtualizarTramite(model.ContratanteID, solicitacaoId, desbloqueio.WFD_SOLICITACAO.FLUXO_ID, papelAtual, (int)EnumStatusTramite.Aprovado, UsuarioId); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Log.Error( string.Format( "A entidade do Tipo \"{0}\" no estado \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { Log.Error(string.Format("- Propriedade : \"{0}\", Erro: \"{1}\"", ve.PropertyName, ve.ErrorMessage)); } } ViewBag.MensagemErro = "Erro ao tentar incluir um novo Papel!"; throw new WebForLinkException("Erro ao tentar incluir um novo Papel!"); } catch (Exception ex) { Log.Error(ex.Message, ex); return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = "Ocorreu um error para realizar o desbloqueio solicitado. Por favor, tente mais tarde." })); } return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = string.Format("Solicitação {0} de Desbloqueio realizado com Sucesso!", solicitacaoId) })); } return(View()); }