public static void ValidarCNPJouCPF(this ImportacaoController controller, CelulaPlanilhaModel celula)
        {
            if (string.IsNullOrEmpty(celula.ValorManipulado))
            {
                celula.Erro = EnumTiposErroPlanilha.SemCPFouCNPJ;
            }
            else
            {
                bool isCNPJValido = false;
                bool isCPFValido  = false;

                if (!string.IsNullOrEmpty(celula.ValorManipulado))
                {
                    isCNPJValido = Validacao.ValidaCNPJ(celula.ValorManipulado);
                    isCPFValido  = Validacao.ValidaCPF(celula.ValorManipulado);
                }

                if (isCNPJValido || isCPFValido)
                {
                    celula.ValorManipulado = Mascara.RemoverMascara(celula.ValorManipulado);
                    celula.ClasseCSS       = TEXT_CENTER;
                }
                else
                {
                    celula.Erro      = EnumTiposErroPlanilha.CNPJouCPFInvalido;
                    celula.ClasseCSS = TEXT_DANGER_TEXT_RIGHT;
                }
            }
        }
        public static void MapearFiltro(this ImportacaoController controller, FornecedorBaseListaVM model, ref ImportacaoFornecedoresFiltrosDTO filtro)
        {
            if (model.Filtro != null)
            {
                model.Filtro.ContratanteId = (int)Geral.PegaAuthTicket("ContratanteId");

                FornecedorBaseFiltroVM filtroVM = model.Filtro;

                filtro = Mapper.Map <FornecedorBaseFiltroVM, ImportacaoFornecedoresFiltrosDTO>(filtroVM);

                if (!string.IsNullOrEmpty(filtro.CNPJ))
                {
                    filtro.CNPJ = Mascara.RemoverMascara(filtro.CNPJ);
                }

                if (!string.IsNullOrEmpty(filtro.CPF))
                {
                    filtro.CPF = Mascara.RemoverMascara(filtro.CPF);
                }
            }
            else
            {
                filtro = new ImportacaoFornecedoresFiltrosDTO {
                    ContratanteId = (int)Geral.PegaAuthTicket("ContratanteId")
                }
            };
        }
 public static void ValidarNomeContato(this ImportacaoController controller, CelulaPlanilhaModel celula)
 {
     if (string.IsNullOrEmpty(celula.ValorManipulado))
     {
         celula.Erro = EnumTiposErroPlanilha.SemNomeContato;
     }
 }
        public static void Preenchermodelo(this ImportacaoController controller, int contratanteId, FornecedorBaseListaVM model, CONTRATANTE_CONFIGURACAO_EMAIL configEmail, string stData)
        {
            int         usuarioId   = (int)Geral.PegaAuthTicket("UsuarioId");
            Contratante contratante = controller._contratanteService.BuscarPorId(contratanteId);
            Usuario     usuario     = controller._usuarioService.BuscarPorId(usuarioId);

            model.Arquivos = Mapper.Map <List <SelectListItem> >(controller._fornecedorBaseImportacaoService.ListarTodas(contratanteId));
            model.Arquivos.Insert(0, new SelectListItem {
                Text = "Todas", Value = null
            });
            string mensagem = configEmail.CORPO
                              .Replace("^NomeEmpresa^", contratante.NOME_FANTASIA ?? contratante.RAZAO_SOCIAL)
                              .Replace("^NomeUsuario^", usuario.NOME)
                              .Replace("^FixoUsuario1^", usuario.FIXO)
                              .Replace("^CelularUsuario1^", usuario.CELULAR)
                              .Replace("^EmailUsuario^", usuario.EMAIL);

            model.MensagemImportacao = new MensagemImportacaoVM(configEmail.ASSUNTO, mensagem);

            model.ProrrogacaoPrazo = new ProrrogacaoPrazoVM()
            {
                StDataProrrogacao = stData
            };
            model.AprovacaoProrrogacao  = new AprovacaoPrazoVM(new SolicitacaoFornecedoresVM());
            model.ReprovacaoProrrogacao = new ReprovacaoPrazoVM()
            {
                Fornecedores = new List <SolicitacaoFornecedoresVM>()
                {
                    new SolicitacaoFornecedoresVM()
                },
                Fornecedor = new SolicitacaoFornecedoresVM(),
            };
        }
        public static void ValidarExtensaoArquivo(this ImportacaoController controller, HttpPostedFileBase arquivo)
        {
            string[] extensoesPermitidas = new string[] { ".xls", ".xlsx" };

            if (!extensoesPermitidas.Contains(Path.GetExtension(arquivo.FileName)))
            {
                controller.ModelState.AddModelError("Arquivo", "Selecione um Arquivo com Extensão \".xls\" ou \".xlxs\".");
            }
        }
示例#6
0
        public void Importacao()
        {
            // Arrange
            var controller = new ImportacaoController();

            // Act
            var result = controller.Importacao() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
 public static void ValidarCelular(this ImportacaoController controller, CelulaPlanilhaModel celula)
 {
     if (string.IsNullOrEmpty(celula.ValorManipulado))
     {
         celula.Erro = EnumTiposErroPlanilha.SemCelular;
     }
     else
     {
         celula.ClasseCSS = TEXT_CENTER;
     }
 }
 public static void AvaliarPrazo(this ImportacaoController controller, List <int> selecionados, string motivo, int idUsuario, EnumTiposFuncionalidade avaliacao)
 {
     try
     {
         controller._importacaoService.AvaliarProrrogacao(selecionados.ToArray(), idUsuario, motivo, avaliacao);
     }
     catch (Exception ex)
     {
         controller.Log.Error(ex);
     }
 }
        public static void AplicarMascaras(this ImportacaoController controller, ref FornecedorBaseVM fornecedorBase)
        {
            if (!string.IsNullOrEmpty(fornecedorBase.CNPJ))
            {
                fornecedorBase.CNPJ = Mascara.MascararCNPJouCPF(fornecedorBase.CNPJ);
            }

            if (!string.IsNullOrEmpty(fornecedorBase.CPF))
            {
                fornecedorBase.CPF = Mascara.MascararCNPJouCPF(fornecedorBase.CPF);
            }
        }
        public static void RemoverMascaras(this ImportacaoController controller, ref FORNECEDORBASE fornecedorBase)
        {
            if (!string.IsNullOrEmpty(fornecedorBase.CNPJ))
            {
                fornecedorBase.CNPJ = Mascara.RemoverMascara(fornecedorBase.CNPJ);
            }

            if (!string.IsNullOrEmpty(fornecedorBase.CPF))
            {
                fornecedorBase.CPF = Mascara.RemoverMascara(fornecedorBase.CPF);
            }
        }
        public static void PersistirDadosEmMemoria(this ImportacaoController controller)
        {
            if (controller.TempData["Categorias"] == null)
            {
                int contratanteId = (int)Geral.PegaAuthTicket("ContratanteId");
                List <FORNECEDOR_CATEGORIA> categorias = controller._fornecedorCategoriaService.BuscarCategorias(contratanteId).OrderBy(x => x.DESCRICAO).ToList();
                List <CategoriaVM>          modelo     = Mapper.Map <List <CategoriaVM> >(categorias, opt => opt.Items["Url"] = controller.Url);
                controller.TempData["Categorias"] = modelo;
            }

            controller.ViewBag.Categorias = controller.TempData["Categorias"];
            controller.TempData.Keep("Categorias");
        }
 public static void ValidarEmail(this ImportacaoController controller, CelulaPlanilhaModel celula)
 {
     if (string.IsNullOrEmpty(celula.ValorManipulado))
     {
         celula.Erro = EnumTiposErroPlanilha.SemEmail;
     }
     else if (!Validacao.ValidarEmail(celula.ValorManipulado))
     {
         celula.Erro            = EnumTiposErroPlanilha.EmailInvalido;
         celula.ValorManipulado = string.Empty;
         celula.ClasseCSS       = TEXT_DANGER_TEXT_LEFT;
     }
 }
 public static void ProrrogarPrazo(this ImportacaoController controller, List <int> selecionados, string motivo, DateTime dataProrrogacao, int idUsuario)
 {
     try
     {
         selecionados.ForEach((Action <int>)(x =>
         {
             controller._importacaoService.ProrrogarPrazo(x, idUsuario, dataProrrogacao, motivo);
         }));
     }
     catch (Exception ex)
     {
         controller.Log.Error(ex);
     }
 }
        public static void GerenciarFornecedoresSelecionados(this ImportacaoController controller, List <int> selecionados)
        {
            if (controller.TempData["FornecedoresSelecionados"] == null)
            {
                controller.TempData["FornecedoresSelecionados"] = selecionados;
            }
            else
            {
                var selecionadosEmMemoria = controller.TempData["FornecedoresSelecionados"] as List <int>;
                var novos = selecionados.Where(x => !selecionadosEmMemoria.Contains(x)).ToList <int>();

                selecionadosEmMemoria.AddRange(novos);

                controller.TempData["FornecedoresSelecionados"] = selecionadosEmMemoria;
            }
        }
 public static void ValidarDataNascimento(this ImportacaoController controller, CelulaPlanilhaModel celula)
 {
     if (string.IsNullOrEmpty(celula.ValorManipulado))
     {
         celula.Erro = EnumTiposErroPlanilha.SemDataNascimento;
     }
     else if (!Validacao.ValidarData(celula.ValorManipulado))
     {
         celula.Erro            = EnumTiposErroPlanilha.DataNascimentoInvalida;
         celula.ValorManipulado = string.Empty;
         celula.ClasseCSS       = TEXT_DANGER_TEXT_RIGHT;
     }
     else
     {
         celula.ClasseCSS     = TEXT_CENTER;
         celula.ValorOriginal = DateTime.Parse(celula.ValorOriginal.ToString()).ToString("dd/MM/yyyy");
     }
 }
        public static EnumTiposErroPlanilha ValidarRegraCNPJouCPF(this ImportacaoController controller, List <CelulaPlanilhaModel> celulas)
        {
            var tipoErroLinhaPlanilha = EnumTiposErroPlanilha.NaoAplicavel;

            var celula = celulas.Where(x => x.Coluna.Equals((int)EnumColunasPlanilha.CNPJouCPF)).FirstOrDefault();

            if (celula.Erro.Equals(EnumTiposErroPlanilha.SemCPFouCNPJ))
            {
                return(tipoErroLinhaPlanilha = EnumTiposErroPlanilha.SemCPFouCNPJ);
            }

            if (celula.Erro.Equals(EnumTiposErroPlanilha.CNPJouCPFInvalido))
            {
                return(tipoErroLinhaPlanilha = EnumTiposErroPlanilha.CNPJouCPFInvalido);
            }

            return(tipoErroLinhaPlanilha);
        }
 public static void Bloquear(this ImportacaoController controller, List <int> selecionados, int escolha, int idUsuario, int contratanteId)
 {
     try
     {
         selecionados.ForEach(x =>
         {
             var bloqueio = controller._fornecedorBaseService.ModificarStatusBloqueio(x, escolha, idUsuario, contratanteId);
             if (escolha == 3)
             {
                 controller._tramite.AtualizarTramite(bloqueio.ContratanteId, bloqueio.SolicitacaoId, bloqueio.FluxoId, bloqueio.PapelAtual, 2, bloqueio.UsuarioId);
             }
         });
     }
     catch (Exception ex)
     {
         controller.Log.Error(ex);
     }
 }
        public static void ValidarCabecalhoArquivoImportado(this ImportacaoController controller, ExcelWorksheet worksheet)
        {
            string[] cabecalhoOriginal = Array.ConvertAll(ConfigurationManager.AppSettings["CabecalhoPlanilhaImportacaoFornecedor"].Split(','), x => x.TrimStart());

            int quantidadeColunas = cabecalhoOriginal.Length;

            string[] cabecalhoImportado = new string[quantidadeColunas];

            for (var i = 0; i < quantidadeColunas; i++)
            {
                cabecalhoImportado[i] = (string)worksheet.Cells[LINHA_CABECALHO, (i + 1)].Value;
            }

            if (!cabecalhoImportado.SequenceEqual(cabecalhoOriginal))
            {
                controller.ModelState.AddModelError("ImportacaoValidation", "O modelo do arquivo importado deve ser igual ao modelo disponibilizado.");
            }
        }
        public static void Convidar(this ImportacaoController controller, List <int> selecionados, string mensagem, string assunto, int idUsuario)
        {
            try
            {
                selecionados.ForEach(x =>
                {
                    var convite = controller._importacaoService.ImportarComConvite(x, idUsuario, assunto, mensagem);

                    //se não for primeiro acesso enviar para tela de acesso
                    string url = controller.Url.Action("Index", "Home", new
                    {
                        chaveurl = controller.Cripto.Criptografar(string.Format("SolicitacaoID={0}&Login={1}&TravaLogin=1", convite.SolicitacaoId, convite.Cnpj), controller._metodosGerais.ValorKey())
                    }, controller.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 (!controller._usuarioService.ValidarPorCnpj(convite.Cnpj))
                    {
                        url = controller.Url.Action("CadastrarUsuarioFornecedor", "Home", new
                        {
                            chaveurl = controller.Cripto.Criptografar(string.Format("Login={0}&SolicitacaoID={1}&Email={2}",
                                                                                    convite.Cnpj,
                                                                                    convite.SolicitacaoId,
                                                                                    convite.Email), controller._metodosGerais.ValorKey())
                        }, controller.Request.Url.Scheme);
                    }
                    #endregion

                    string mensagemLink         = string.Concat(mensagem, "<p><a href='", url, "'>Link</a>:", url, "</p>");
                    bool emailEnviadoComSucesso = controller._metodosGerais.EnviarEmail(convite.Email, assunto, mensagemLink);

                    var tpFluxo    = convite.TipoFornecedor == 1 ? 10 : 30;
                    var fluxoId    = controller._fluxoService.BuscarPorTipoEContratante(tpFluxo, convite.ContratanteId).ID;
                    int papelAtual = controller._papelService.BuscarPorContratanteETipoPapel(convite.ContratanteId, 10).ID;
                    int usuarioId  = (int)Geral.PegaAuthTicket("UsuarioId");
                    controller._tramite.AtualizarTramite(convite.ContratanteId, convite.SolicitacaoId, fluxoId, papelAtual, 2, usuarioId);
                });
            }
            catch (Exception ex)
            {
                controller.Log.Error(ex);
            }
        }
        public static void ValidarCelulas(this ImportacaoController controller, List <CelulaPlanilhaModel> celulas)
        {
            foreach (var celula in celulas)
            {
                switch ((EnumColunasPlanilha)celula.Coluna)
                {
                case EnumColunasPlanilha.CNPJouCPF:
                    controller.ValidarCNPJouCPF(celula);
                    break;

                case EnumColunasPlanilha.RazaoSocialOuNome:
                    controller.ValidarRazaoSocialOuNome(celula);
                    break;

                case EnumColunasPlanilha.DataNascimento:
                    controller.ValidarDataNascimento(celula);
                    break;

                case EnumColunasPlanilha.NomeContato:
                    break;

                case EnumColunasPlanilha.Email:
                    controller.ValidarEmail(celula);
                    break;

                case EnumColunasPlanilha.Telefone:
                case EnumColunasPlanilha.Celular:
                    controller.ValidarTelefone(celula);
                    break;

                case EnumColunasPlanilha.NovoFornecedor:
                    break;

                case EnumColunasPlanilha.CodigoERP:
                    break;

                case EnumColunasPlanilha.InscricaoEstadual:
                    break;
                }
            }
        }
        public static List <LinhaPlanilhaModel> LerArquivo(this ImportacaoController controller, DadosImportacaoVM model, ExcelWorksheet worksheet)
        {
            List <LinhaPlanilhaModel> linhasArquivoImportado = new List <LinhaPlanilhaModel>();

            var colunas = System.Enum.GetValues(typeof(EnumColunasPlanilha)).Cast <int>().ToList();

            for (var linha = LINHA_INICIO; linha <= worksheet.Dimension.Rows; linha++)
            {
                var celulas = new List <CelulaPlanilhaModel>();

                colunas.ForEach(x =>
                {
                    var celula = worksheet.Cells[linha, x].Value;
                    celulas.Add(new CelulaPlanilhaModel
                    {
                        Linha           = linha,
                        Coluna          = x,
                        ValorOriginal   = celula,
                        Endereco        = ExcelAddress.GetAddress(linha, x),
                        ValorManipulado = celula != null ? celula.ToString() : null
                    });
                });

                controller.ValidarCelulas(celulas);

                var tipoErroLinhaPlanilha = controller.ValidarRegraCNPJouCPF(celulas);

                linhasArquivoImportado.Add(new LinhaPlanilhaModel()
                {
                    ExcelRow = worksheet.Row(linha),
                    Celulas  = celulas,
                    Erro     = tipoErroLinhaPlanilha
                });
            }

            return(linhasArquivoImportado);
        }
 public static void Categorizar(this ImportacaoController controller, int[] selecionados, int categoriaId)
 {
     controller._fornecedorBaseService.CategorizarFornecedores(selecionados, categoriaId);
 }
        public static void ManipularFiltroEspecifico(this ImportacaoController controller, EnumTiposFuncionalidade funcionalidade, ref ImportacaoFornecedoresFiltrosDTO filtro)
        {
            switch (funcionalidade)
            {
            case EnumTiposFuncionalidade.ValidarEmOrgaosPublicos:
                if (!filtro.Validados.HasValue)
                {
                    filtro.Validados = false;
                }
                break;

            case EnumTiposFuncionalidade.Categorizar:
                if (!filtro.Categorizados.HasValue)
                {
                    filtro.Categorizados = false;
                }
                break;

            case EnumTiposFuncionalidade.Convidar:
                if (!filtro.Convidados.HasValue)
                {
                    filtro.Convidados = false;
                }
                break;

            case EnumTiposFuncionalidade.ProrrogarPrazo:
                if (!filtro.Prorrogados.HasValue)
                {
                    filtro.Prorrogados = false;
                }
                break;

            case EnumTiposFuncionalidade.GerarCarga:
                if (!filtro.Gerados.HasValue)
                {
                    filtro.Gerados = false;
                }
                break;

            case EnumTiposFuncionalidade.CompletarDados:
                if (!filtro.Completos.HasValue)
                {
                    filtro.Completos = false;
                }
                break;

            case EnumTiposFuncionalidade.AprovarPrazo:
                if (!filtro.Aprovados.HasValue)
                {
                    filtro.Aprovados = 1;
                }
                break;

            case EnumTiposFuncionalidade.Bloquear:
                if (!filtro.Bloqueados.HasValue)
                {
                    filtro.Bloqueados = 0;
                }
                break;
            }
        }
 public static void AtivarExecucaoRobo(this ImportacaoController controller, int[] selecionados)
 {
     controller._fornecedorBaseService.AtivarExecucaoRobo(selecionados);
 }
        public static void AplicarValores(this ImportacaoController controller, ref FornecedorBaseListaVM model)
        {
            model.NomeColunas = new List <string>();
            switch (model.TipoFuncionalidade)
            {
            case EnumTiposFuncionalidade.ValidarEmOrgaosPublicos:
                #region Validar Em Órgãos Públicos
                model.NomeFuncionalidade = "Validar";
                model.NomeColunas.Add("Órgãos Públicos");
                model.FornecedoresBaseFuncionalidade.Select(x =>
                {
                    x.Colunas = new List <ColunaOpcionalVM>
                    {
                        new ColunaOpcionalVM
                        {
                            CSS    = (x.ExecutaRobo.HasValue) ? TEXT_CENTER : DANGER_TEXT_CENTER,
                            Titulo = (x.ExecutaRobo.HasValue) ? string.Empty : "Validação Inativa!",
                            Valor  = (x.ExecutaRobo.HasValue) ? "Ativa" : "-"
                        }
                    };
                    return(x);
                }).ToList();
                #endregion
                break;

            case EnumTiposFuncionalidade.Categorizar:
                #region Categorizar
                model.NomeFuncionalidade = "Categorizar";
                model.NomeColunas.Add("Categoria");

                model.FornecedoresBaseFuncionalidade.Select(x =>
                {
                    x.Colunas = new List <ColunaOpcionalVM>
                    {
                        new ColunaOpcionalVM
                        {
                            CSS    = (x.CategoriaId.HasValue) ? TEXT_CENTER : DANGER_TEXT_CENTER,
                            Titulo = (x.CategoriaId.HasValue) ? string.Empty : "Sem Categoria!",
                            Valor  = (x.CategoriaId.HasValue) ? x.CategoriaNome : "-"
                        }
                    };
                    return(x);
                }).ToList();
                #endregion
                break;

            case EnumTiposFuncionalidade.ProrrogarPrazo:
                #region Prorrogar Prazo
                model.NomeFuncionalidade = "Prorrogar";
                model.NomeColunas.Add("Prorrogado");
                model.FornecedoresBaseFuncionalidade.Select(x =>
                {
                    x.Colunas = new List <ColunaOpcionalVM>
                    {
                        new ColunaOpcionalVM
                        {
                            CSS    = (x.Prorrogado) ? TEXT_CENTER : DANGER_TEXT_CENTER,
                            Titulo = (x.Prorrogado) ? string.Empty : "Sem Prorrogação!",
                            Valor  = (x.Prorrogado) ? "Prorrogado" : "-"
                        },
                    };
                    return(x);
                }).ToList();
                #endregion
                break;

            case EnumTiposFuncionalidade.Convidar:
                #region Convidar
                model.NomeFuncionalidade = "Convidar";
                model.NomeColunas.Add("Convite");
                model.NomeColunas.Add("Respondido");

                model.FornecedoresBaseFuncionalidade.Select(x =>
                {
                    x.Colunas = new List <ColunaOpcionalVM>
                    {
                        new ColunaOpcionalVM
                        {
                            CSS    = (x.Convidado) ? TEXT_CENTER : DANGER_TEXT_CENTER,
                            Titulo = (x.Convidado) ? string.Empty : "Sem Convite!",
                            Valor  = (x.Convidado) ? "Convidado" : "-"
                        },
                        new ColunaOpcionalVM
                        {
                            CSS    = (x.Respondido == true) ? TEXT_CENTER : DANGER_TEXT_CENTER,
                            Titulo = (x.Respondido == true) ? string.Empty : "Sem Resposta!",
                            Valor  = (x.Respondido != null)
                                ? (x.Respondido == true)
                                    ? "Sim"
                                    :"Não"
                                : "-"
                        }
                    };
                    return(x);
                }).ToList();
                #endregion
                break;

            case EnumTiposFuncionalidade.AprovarPrazo:
                #region Aprovar Prazo
                model.NomeFuncionalidade = "Aprovar";
                model.NomeColunas.Add("Prorrogar para");
                model.NomeColunas.Add("Motivo");
                //model.NomeColunas.Add("Aprovado");

                model.FornecedoresBaseFuncionalidade.Select(x =>
                {
                    x.Colunas = new List <ColunaOpcionalVM>
                    {
                        new ColunaOpcionalVM
                        {
                            CSS    = TEXT_CENTER,
                            Titulo = "Teste",
                            Valor  = x.ProrrogarPara
                        },
                        new ColunaOpcionalVM
                        {
                            CSS    = TEXT_CENTER,
                            Titulo = "Teste2",
                            Valor  = x.Motivo
                        },
                        //new ColunaOpcionalVM
                        //{
                        //    CSS = (x.Aprovado == true) ? TEXT_CENTER : DANGER_TEXT_CENTER,
                        //    Titulo = (x.Aprovado == true) ? string.Empty : "Sem Aprovação!",
                        //    Valor = (x.Aprovado != null)
                        //    ? (x.Aprovado == true)
                        //        ? "Sim"
                        //        :"Não"
                        //    : "-"
                        //},
                    };
                    return(x);
                }).ToList();
                #endregion
                break;

            case EnumTiposFuncionalidade.Bloquear:
                #region Bloquear
                model.NomeFuncionalidade = "Bloquear";
                model.NomeColunas.Add("Bloqueado");

                model.FornecedoresBaseFuncionalidade.Select(x =>
                {
                    x.Colunas = new List <ColunaOpcionalVM>
                    {
                        new ColunaOpcionalVM
                        {
                            CSS    = (x.Bloqueado == true) ? TEXT_CENTER : DANGER_TEXT_CENTER,
                            Titulo = (x.Bloqueado == true) ? string.Empty : "Sem Bloqueio!",
                            Valor  = (x.Bloqueado != null)
                                ? (x.Bloqueado == true)
                                    ? "Sim"
                                    :"Não"
                                : "-"
                        },
                    };
                    return(x);
                }).ToList();
                #endregion
                break;
            }
        }