WebFoPag ~15 min

🛠️ Documentação Técnica: Gráficos

[!NOTE] Documentação Gerada Automaticamente O conteúdo abaixo foi gerado por IA através de engenharia reversa do código-fonte e deve ser validado.

Documentação Base — C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.WebFoPag\Graficos.aspx

👁️ 1. Visão Geral

A tela Graficos.aspx tem como propósito exibir diversos gráficos de dados relacionados à folha de pagamento, permitindo aos usuários visualizar informações gerenciais e analíticas sobre a empresa, filiais, contratos e centros de resultado. Os gráficos disponíveis incluem Gênero, Faixa Salarial, Tempo de Serviço, Líquido de Folha, Função, Hora Extra, Turnover e Absenteísmo. A tela é utilizada por usuários que necessitam de uma visão consolidada e visual dos indicadores da folha de pagamento.

🗂️ 2. Tipos/Modalidades

A tela opera em uma modalidade principal de visualização de gráficos, com variações de comportamento baseadas na seleção do “Tipo Gráfico” e na configuração da “Estrutura Gerencial” da empresa.

  • Tipo Gráfico: O comportamento da tela muda dinamicamente com base no gráfico selecionado (lsTipoGrafico). Cada seleção aciona um método JavaScript (fnGrafico...) e um método C# correspondente no code-behind para carregar os dados específicos do gráfico.
  • Gênero (1): Exibe a distribuição de empregados por gênero.
  • Faixa Salarial (2): Exibe a distribuição de empregados por faixa salarial.
  • Tempo de Serviço (3): Exibe a distribuição de empregados por tempo de casa.
  • Líquido de Folha (4): Exibe o líquido da folha de pagamento por verba.
  • Função (5): Exibe a distribuição de empregados por função.
  • Hora Extra (6): Exibe o total de horas extras por verba.
  • Turn Over (7): Exibe o número de admissões e rescisões.
  • Absenteísmo (8): Exibe o absenteísmo por tipo de afastamento.
  • Estrutura Gerencial da Empresa: A visibilidade dos campos “Contrato” (divContrato) e “Centro Resultado” (divCentroResultado) é configurada dinamicamente com base no TipoEstruturaGerencial da empresa logada.
  • Se TipoEstruturaGerencial for “Centro Resultado”, o campo “Contrato” é ocultado e o campo “Centro Resultado” é exibido.
  • Caso contrário, o campo “Contrato” é exibido e o campo “Centro Resultado” é ocultado.

🖥️ 3. Interface — Campos e Controles

NomeTipoObrigatórioRegra
lsTipoGraficoListaSugestoes🔴 SimSeleção do tipo de gráfico a ser exibido (Gênero, Faixa Salarial, Tempo de Serviço, Líquido de Folha, Função, Hora Extra, Turn Over, Absenteísmo).
txtEmpresaLocalizarEmpresa⚪ NãoCampo para selecionar a empresa. O IdGrupoEconomico é fixo como “1”. Ao alterar o valor, atualiza o IdEmpresa do txtFilial.
txtFilialLocalizarFilial⚪ NãoCampo para selecionar a filial. O IdGrupoEconomico é fixo como “1”. Ao alterar o valor, atualiza o IdFilial do txtContrato.
txtContratoLocalizarContrato⚪ NãoCampo para selecionar o contrato. TipoDeContrato é “ContratoFilho”, ConsiderarContratoInativo é “true”. Visibilidade controlada pela estrutura gerencial da empresa.
txtCentroResultadoLocalizarCentroResultado⚪ NãoCampo para selecionar o centro de resultado. TipoCentroResultado é “Analitico”. Visibilidade controlada pela estrutura gerencial da empresa.
lsSituacaoEmpregadoListaSugestoes⚪ NãoSeleção da situação do empregado (Ativo, Inativo). Desabilitado para o gráfico de Turnover.
txtDeDataTextBox⚪ NãoData inicial do período de pesquisa. DataMinima é “01/01/2019”, CampoDataMaxima é “txtAte”. Obrigatório para alguns tipos de gráfico.
txtAteDataTextBox⚪ NãoData final do período de pesquisa. DataMinima é “02/01/2019”, CampoDataMinima é “txtDe”.
btnPesquisarButton⚪ NãoBotão para acionar a pesquisa e exibição do gráfico. Executa OcultaGraficos() no cliente e btnPesquisar_Click no servidor.
btnLimparButton⚪ NãoBotão para limpar os campos do formulário.
btnVoltarButton⚪ NãoBotão para retornar à página MenuMaisOpcoes.aspx.

📑 4. Abas e Seções

A tela é dividida nas seguintes seções principais:

  • pnlContrato (Panel): Contém os campos de filtro para a geração dos gráficos (Tipo Gráfico, Empresa, Filial, Contrato, Centro Resultado, Situação Empregado, Período).
  • divContrato (div): Contém o campo txtContrato. Sua visibilidade é controlada dinamicamente.
  • divCentroResultado (div): Contém o campo txtCentroResultado. Sua visibilidade é controlada dinamicamente.
  • trDataEmissao (div): Contém os campos de data txtDe e txtAte.
  • pnlBotoes (Panel): Contém os botões de ação da tela (Pesquisar, Limpar, Voltar).
  • divSemdadosGeracao (div): Exibido quando não há dados para o gráfico selecionado.
  • divGraficoGenero (div): Contém o gráfico de Gênero.
  • divGraficoFaixaEtaria (div): Contém o gráfico de Faixa Etária.
  • divGraficoTempoCasa (div): Contém o gráfico de Tempo de Serviço.
  • divGraficoLiquidoFolha (div): Contém o gráfico de Líquido de Folha.
  • divGraficoFuncao (div): Contém o gráfico de Função.
  • divGraficoHoraExtra (div): Contém o gráfico de Hora Extra.
  • divGraficoTurnOver (div): Contém o gráfico de Turnover.
  • divGraficoSalarios (div): Contém o gráfico de Salários.
  • divGraficoAbsenteismo (div): Contém o gráfico de Absenteísmo.

Todos os divs de gráficos (divGraficoGenero, divGraficoFaixaEtaria, etc.) têm a classe CSS GraficosGeral e são inicialmente ocultos (display:none). A exibição é controlada via JavaScript após a geração dos dados.

🛡️ 5. Regras de Negócio

5.1. Validações de Campos

  • Período de Pesquisa (txtDe, txtAte):
  • A diferença entre a data inicial (txtDe.ValorDateTime) e a data final (txtAte.ValorDateTime) não pode ser superior a 1 ano. Se for, exibe a mensagem “Pesquisa máxima deve ser de 1 ano” e limpa o campo de data que causou a violação. (Validado em txtDe_ValorAlterado e txtAte_ValorAlterado no Graficos.aspx.cs).
  • Tipo Gráfico (lsTipoGrafico):
  • O campo “Tipo Gráfico” é obrigatório. (Configurado no markup do controle ListaSugestoes).
  • A obrigatoriedade do campo txtDe (Data Inicial) varia conforme o tipo de gráfico selecionado:
  • txtDe.Obrigatorio = false para Gênero (1), Tempo de Serviço (3) e Função (5).
  • txtDe.Obrigatorio = true para Faixa Salarial (2), Líquido de Folha (4), Hora Extra (6), Turnover (7) e Absenteísmo (8). (Validado em lsTipoGrafico_ValueChanged no Graficos.aspx.cs).
  • O campo lsSituacaoEmpregado é desabilitado e seu valor é limpo quando o “Tipo Gráfico” selecionado é “Turn Over” (7). (Validado em lsTipoGrafico_ValueChanged no Graficos.aspx.cs).

5.2. Regras de Habilitação/Desabilitação e Visibilidade

  • Visibilidade de Contrato/Centro Resultado:
  • Se a empresa logada (CodigoEmpresa) tiver TipoEstruturaGerencial configurado como BLL.Enumeradores.TipoEstruturaGerencial.CentroResultado, o divContrato é ocultado (display: none) e o divCentroResultado é exibido (display: block).
  • Caso contrário, o divContrato é exibido (display: block) e o divCentroResultado é ocultado (display: none). (Configurado em ConfigurarPorTipoEstruturaGerencial no Graficos.aspx.cs).
  • Visibilidade dos Gráficos:
  • Todos os divs de gráficos (divGraficoGenero, divGraficoFaixaEtaria, divGraficoTempoCasa, divGraficoLiquidoFolha, divGraficoFuncao, divGraficoHoraExtra, divGraficoTurnOver, divGraficoSalarios, divGraficoAbsenteismo) são inicialmente ocultos (display:none) via CSS e JavaScript (OcultaGraficos()).
  • Após a pesquisa, o gráfico correspondente ao tipo selecionado é exibido via JavaScript (fnGraficoXpto(dadosJson)).
  • Se a consulta de dados para um gráfico retornar vazio (retorno.Rows.Count > 0 for falso), o divSemdadosGeracao é exibido (display: block) e os demais gráficos permanecem ocultos.

5.3. Regras de Inativação e Exclusão

  • Não há regras de inativação ou exclusão diretamente na tela Graficos.aspx.

5.4. Regras de Salvar e Fluxo de Configuração

  • Inicialização da Tela (Page_Load):
  • As permissões do usuário logado são verificadas através de ConfigurarPermissoesTela(). Se o usuário não possuir a permissão Permissoes.Indicadores.VisualizarIndicadores, ele é redirecionado.
  • A estrutura gerencial da empresa é configurada por ConfigurarPorTipoEstruturaGerencial(), que carrega o objeto Empresa e ajusta a visibilidade dos campos de filtro.
  • Os IDs da empresa e do usuário logado são atribuídos aos controles txtFilial, txtEmpresa e txtContrato.
  • As listas de sugestões para “Tipo Gráfico” (lsTipoGrafico) e “Situação Empregado” (lsSituacaoEmpregado) são carregadas com valores pré-definidos.
  • Pesquisa de Gráficos (btnPesquisar_Click):
  • Antes de qualquer processamento no servidor, a função JavaScript OcultaGraficos() é chamada para limpar a visualização anterior.
  • Com base no ValorInt do lsTipoGrafico, o método C# correspondente é invocado (GraficoGenero(), GraficoSalarios(), etc.).
  • Cada método de gráfico:
  • Chama o método estático correspondente da classe GraficosFolha (ex: GraficosFolha.GraficoGenero(...)) para obter os dados do banco.
  • Os parâmetros para os métodos GraficosFolha incluem Idf_EmpresaSelecionada, ValorDateTime dos campos de data, IdContratoSelecionado, CodigoUsuarioLogado, IdFilialSelecionada, ValorInt da situação do empregado e IdCentroResultadoSelecionado.
  • Os dados retornados são formatados em um array de objetos e serializados para JSON usando Newtonsoft.Json.JsonConvert.SerializeObject.
  • Um script JavaScript é registrado (ScriptManager.RegisterStartupScript) para chamar a função de renderização do Google Charts (fnGraficoXpto) no cliente, passando os dados JSON. Se não houver dados, fnSemDadosGeracao() é chamada.
  • Exceções durante o carregamento dos gráficos são capturadas, logadas via PlataformaLog.LogError.WriteLog(ex), e uma mensagem de erro genérica (“Erro ao carregar gráfico”) é exibida.
  • Limpeza de Campos (btnLimpar_Click):
  • Os campos txtFilial, lsTipoGrafico, lsSituacaoEmpregado, txtEmpresa, txtContrato, txtDe e txtAte são limpos.
  • Atualização de Filtros Dependentes:
  • Ao alterar o valor de txtEmpresa, o IdEmpresa do txtFilial é atualizado.
  • Ao alterar o valor de txtFilial, o IdFilial do txtContrato é atualizado.

5.5. Outras Regras Específicas da Tela

  • Formatação de Gráficos (JavaScript):
  • As funções JavaScript (fnGraficoGenero, fnGraficoSalarios, etc.) utilizam a API Google Charts para desenhar os gráficos.
  • São aplicadas configurações visuais como título, tipo de gráfico (PieChart, ColumnChart), 3D, alinhamento da legenda, cores e área do gráfico.
  • Há manipulação direta do DOM para ajustar o tamanho da fonte, alinhamento vertical e horizontal, e cor do texto do título dos gráficos.
  • Período de Admissão/Rescisão para Turnover:
  • Quando o tipo de gráfico “Turn Over” (7) é selecionado, o texto do label lblPeriodo é alterado para “Período Admissão/Rescisão”.

🔄 6. Fluxos Principais

  1. Inicialização da Tela (Page_Load):
  • Page_Load (Graficos.aspx.cs)
  • ConfigurarPermissoesTela() (Graficos.aspx.cs)
  • Usuario.CarregarPermissoes(new Usuario(CodigoUsuarioLogado), Employer.Plataforma.BLL.Enumeradores.CategoriaPermissao.Indicadores) (Usuario_P2.cs)
  • Executa a SP SPSELECTPERMISSOESUSUARIO para verificar permissões.
  • Redireciona para Configuracao.UrlAcessoNegado se a permissão Permissoes.Indicadores.VisualizarIndicadores não for encontrada.
  • ConfigurarPorTipoEstruturaGerencial() (Graficos.aspx.cs)
  • Empresa.LoadObject(base.CodigoEmpresa) (Empresa_P1.cs)
  • Executa a SP SPSELECTID para carregar dados da empresa.
  • Define a visibilidade de divContrato e divCentroResultado com base em objEmpresa.TipoEstruturaGerencial.
  • Atribui CodigoEmpresa a txtFilial.IdEmpresa, txtEmpresa.IdEmpresaSelecionada, txtContrato.IdEmpresa.
  • Atribui CodigoUsuarioLogado a txtFilial.IdUsuario, txtContrato.IdUsuario, txtEmpresa.IdUsuario.
  • ListaSugestoesExtensions.CarregarListaSugestoes(lsTipoGrafico, filtroData) (Extension method)
  • ListaSugestoesExtensions.CarregarListaSugestoes(lsSituacaoEmpregado, filtroAtivo) (Extension method)
  1. Pesquisar Gráfico (btnPesquisar_Click):
  • OcultaGraficos() (JavaScript - Graficos.aspx)
  • btnPesquisar_Click (Graficos.aspx.cs)
  • switch (lsTipoGrafico.ValorInt)
  • Case 1 (Gênero): GraficoGenero()
  • GraficosFolha.GraficoGenero(...) (GraficosFolha.cs)
  • Executa SQL inline para obter dados de gênero.
  • Serializa dados para JSON.
  • ScriptManager.RegisterStartupScript(..., "fnGraficoGenero(json)" : "fnSemDadosGeracao()")
  • Case 2 (Faixa Salarial): GraficoSalarios()
  • GraficosFolha.GraficoSalarios(...) (GraficosFolha.cs)
  • Executa SQL inline para obter dados de salários.
  • Serializa dados para JSON.
  • ScriptManager.RegisterStartupScript(..., "fnGraficoSalarios(json)" : "fnSemDadosGeracao()")
  • Case 3 (Tempo de Serviço): GraficoTempoCasa()
  • GraficosFolha.GraficoTempoCasa(...) (GraficosFolha.cs)
  • Executa SQL inline para obter dados de tempo de casa.
  • Serializa dados para JSON.
  • ScriptManager.RegisterStartupScript(..., "fnGraficoTempoCasa(json)" : "fnSemDadosGeracao()")
  • Case 4 (Líquido de Folha): GraficoLiquidoFolha()
  • GraficosFolha.GraficoLiquidoFolha(...) (GraficosFolha.cs)
  • Executa SQL inline para obter dados de líquido de folha.
  • Serializa dados para JSON.
  • ScriptManager.RegisterStartupScript(..., "fnGraficoLiquidoFolha(json)" : "fnSemDadosGeracao()")
  • Case 5 (Função): GraficoFuncao()
  • GraficosFolha.GraficoFuncao(...) (GraficosFolha.cs)
  • Executa SQL inline para obter dados de função.
  • Serializa dados para JSON.
  • ScriptManager.RegisterStartupScript(..., "fnGraficoFuncao(json)" : "fnSemDadosGeracao()")
  • Case 6 (Hora Extra): GraficoHoraExtra()
  • GraficosFolha.GraficoHoraExtra(...) (GraficosFolha.cs)
  • Executa SQL inline para obter dados de hora extra.
  • Serializa dados para JSON.
  • ScriptManager.RegisterStartupScript(..., "fnGraficoHoraExtra(json)" : "fnSemDadosGeracao()")
  • Case 7 (Turnover): GraficoTurnover()
  • GraficosFolha.GraficoTurnover(...) (GraficosFolha.cs)
  • Executa SQL inline para obter dados de turnover.
  • Serializa dados para JSON.
  • ScriptManager.RegisterStartupScript(..., "fnGraficoTurnover(json)" : "fnSemDadosGeracao()")
  • Case 8 (Absenteísmo): GraficoAbsenteismo()
  • GraficosFolha.GraficoAbsenteismo(...) (GraficosFolha.cs)
  • Executa SQL inline para obter dados de absenteísmo.
  • Serializa dados para JSON.
  • ScriptManager.RegisterStartupScript(..., "fnGraficoAbsenteismo(json)" : "fnSemDadosGeracao()")
  • Em caso de erro, PlataformaLog.LogError.WriteLog(ex) e ExibirMensagem("Erro ao carregar gráfico", TipoMensagem.Erro).
  1. Limpar Campos (btnLimpar_Click):
  • btnLimpar_Click (Graficos.aspx.cs)
  • txtFilial.LimparCampos()
  • lsTipoGrafico.Valor = ""
  • lsSituacaoEmpregado.Valor = ""
  • txtEmpresa.LimparCampos()
  • txtContrato.LimparCampos()
  • txtDe.Text = string.Empty
  • txtAte.Text = string.Empty
  1. Alteração de Data (txtDe_ValorAlterado, txtAte_ValorAlterado):
  • txtDe_ValorAlterado (Graficos.aspx.cs)
  • Verifica se a diferença entre txtDe.ValorDateTime e txtAte.ValorDateTime excede 1 ano. Se sim, exibe aviso e limpa txtDe.
  • txtAte_ValorAlterado (Graficos.aspx.cs)
  • Verifica se a diferença entre txtAte.ValorDateTime e txtDe.ValorDateTime excede 1 ano. Se sim, exibe aviso e limpa txtAte.
  1. Alteração de Filial (txtFilial_ValorAlterado):
  • txtFilial_ValorAlterado (Graficos.aspx.cs)
  • txtContrato.IdFilial = txtFilial.IdFilialSelecionada
  1. Alteração de Empresa (txtEmpresa_ValorAlterado):
  • txtEmpresa_ValorAlterado (Graficos.aspx.cs)
  • txtFilial.IdEmpresa = txtEmpresa.IdEmpresaSelecionada
  1. Alteração do Tipo de Gráfico (lsTipoGrafico_ValueChanged):
  • lsTipoGrafico_ValueChanged (Graficos.aspx.cs)
  • Define lblPeriodo.Text como “Período”.
  • Habilita lsSituacaoEmpregado.
  • switch (lsTipoGrafico.ValorInt): Ajusta txtDe.Obrigatorio e lsSituacaoEmpregado.Enabled conforme o tipo de gráfico.

🔌 7. Integrações e Dependências

7.1. Classes BLL e Service utilizadas

  • Employer.Plataforma.BLL.Empresa
  • Arquivo(s) de origem: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P2.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P3.cs
  • Métodos utilizados pela tela:
  • static Empresa LoadObject(int idEmpresa): Carrega um objeto Empresa pelo seu ID.
  • Propósito: Utilizado em ConfigurarPorTipoEstruturaGerencial para obter as informações da empresa logada, especificamente o TipoEstruturaGerencial, que determina a visibilidade dos campos de contrato e centro de resultado. Internamente, chama LoadDataReader(idEmpresa) que executa a SP SPSELECTID (SELECT * FROM TAB_Empresa WHERE Idf_Empresa = @Idf_Empresa).
  • Employer.Plataforma.BLL.WebFoPag.GraficosFolha
  • Arquivo(s) de origem: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL.WebFoPag2\GraficosFolha.cs
  • Métodos utilizados pela tela:
  • static DataTable GraficoAbsenteismo(int? idEmpresa, DateTime? dtInicio, DateTime? dtFim, int? idContrato, int idUsuarioLogado, int? idfilial, int? iSituacaoEmpregado, int? idCentroResultado)
  • Propósito: Recupera dados para o gráfico de absenteísmo. A consulta SQL seleciona Des_Tipo_Afastamento e Qtde da VW_Empregado e outras tabelas, filtrando por empresa, período, contrato, filial, situação do empregado e centro de resultado, e considerando as permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • static DataTable GraficoFaixaEtaria(int? idEmpresa, DateTime? dtInicio, DateTime? dtFim, int? idContrato, int idUsuarioLogado, int? idfilial, int? iSituacaoEmpregado, int? idCentroResultado)
  • Propósito: Recupera dados para o gráfico de faixa etária. A consulta SQL calcula a faixa etária (< 20, 20 A 30, etc.) com base na Dta_Nascimento da VW_Empregado, filtrando por empresa, período, contrato, filial, situação do empregado e centro de resultado, e considerando as permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • static DataTable GraficoFuncao(int? idEmpresa, DateTime? dtInicio, DateTime? dtFim, int? idContrato, int idUsuarioLogado, int? idfilial, int? iSituacaoEmpregado, int? idCentroResultado)
  • Propósito: Recupera dados para o gráfico de função. A consulta SQL agrupa empregados por Des_Categoria (função) da VW_Empregado, TAB_Empregado_Funcao_Exclusiva, TAB_Funcao_Exclusiva e TAB_Funcao_Especifica, filtrando por empresa, período, contrato, filial, situação do empregado e centro de resultado, e considerando as permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • static DataTable GraficoGenero(int? idEmpresa, DateTime? dtInicio, DateTime? dtFim, int? idContrato, int idUsuarioLogado, int? idfilial, int? iSituacaoEmpregado, int? idCentroResultado)
  • Propósito: Recupera dados para o gráfico de gênero. A consulta SQL conta empregados por Des_Sexo da VW_Empregado e plataforma.TAB_Sexo, filtrando por empresa, período, contrato, filial, situação do empregado e centro de resultado, e considerando as permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • static DataTable GraficoHoraExtra(int? idEmpresa, DateTime? dtInicio, DateTime? dtFim, int? idContrato, int idUsuarioLogado, int? idfilial, int? iSituacaoEmpregado, int? idCentroResultado)
  • Propósito: Recupera dados para o gráfico de horas extras. A consulta SQL soma Vlr_Total_Verba para verbas de hora extra (códigos 11, 12) da TAB_Holerite e TAB_Holerite_Verba, filtrando por empresa, período, contrato, filial, situação do empregado e centro de resultado, e considerando as permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • static DataTable GraficoLiquidoFolha(int? idEmpresa, DateTime? dtInicio, DateTime? dtFim, int? idContrato, int idUsuarioLogado, int? idfilial, int? iSituacaoEmpregado, int? idCentroResultado)
  • Propósito: Recupera dados para o gráfico de líquido de folha. A consulta SQL soma Vlr_Total_Verba para verbas específicas (códigos 869, 847, etc.) da TAB_Holerite e TAB_Holerite_Verba, filtrando por empresa, período, contrato, filial, situação do empregado e centro de resultado, e considerando as permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • static DataTable GraficoSalarios(int? idEmpresa, DateTime? dtInicio, DateTime? dtFim, int? idContrato, int? idUsuarioLogado, int? idfilial, int? iSituacaoEmpregado, int? idCentroResultado)
  • Propósito: Recupera dados para o gráfico de salários. A consulta SQL categoriza empregados em faixas salariais (até 1.999,99, De 2.000,00 até 3.999,99, etc.) com base no Vlr_Salario da TAB_Salario, filtrando por empresa, período, contrato, filial, situação do empregado e centro de resultado, e considerando as permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • static DataTable GraficoTurnover(int? idEmpresa, DateTime? dtInicio, DateTime? dtFim, int? idContrato, int idUsuarioLogado, int? idfilial, int? iSituacaoEmpregado, int? idCentroResultado)
  • Propósito: Recupera dados para o gráfico de turnover. A consulta SQL conta admissões (Dta_Admissao) e rescisões (Dta_Saida_Prevista) da VW_Empregado, filtrando por empresa, período, contrato, filial, situação do empregado e centro de resultado, e considerando as permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • Employer.Plataforma.BLL.Usuario
  • Arquivo(s) de origem: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P2.cs
  • Métodos utilizados pela tela:
  • static List<int> CarregarPermissoes(Usuario usuario, CategoriaPermissao categoriaPermissao): Carrega as permissões de um usuário para uma categoria específica.
  • Propósito: Utilizado em ConfigurarPermissoesTela para verificar se o usuário logado tem a permissão Permissoes.Indicadores.VisualizarIndicadores. Internamente, executa a SP SPSELECTPERMISSOESUSUARIO (SELECT DISTINCT p.Idf_Permissao as Permissao FROM TAB_Periodo_Permissao pp INNER JOIN TAB_Perfil_Permissao p ON pp.Idf_Perfil = p.Idf_Perfil INNER JOIN plataforma.TAB_Permissao per ON p.Idf_Permissao = per.Idf_Permissao WHERE Idf_Usuario = @idf_usuario AND Dta_Inicio <= GETDATE() AND (Dta_Fim >= GETDATE() OR Dta_Fim IS NULL) AND per.Idf_Categoria_Permissao = @Idf_Categoria_Permissao).

7.2. Stored Procedures chamadas

  • SPSELECTID
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P1.cs
  • Parâmetros SQL: @Idf_Empresa
  • Propósito: Seleciona todas as colunas da tabela TAB_Empresa com base no Idf_Empresa.
  • SQL inline (GraficoGenero)
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL.WebFoPag2\GraficosFolha.cs
  • Parâmetros SQL: @Idf_Empresa, @Dta_De, @Dta_Ate, @Idf_Contrato, @Idf_Usuario, @Idf_Filial, @Situacao_Empregado, @Idf_Centro_Resultado
  • Propósito: Conta a quantidade de empregados por sexo (Des_Sexo) da VW_Empregado e plataforma.TAB_Sexo, aplicando filtros de empresa, período de vigência de contrato (TAB_Empregado_Contrato, TAB_Empregado_Transferido), contrato, centro de resultado, filial, situação do empregado e permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • SQL inline (GraficoFaixaEtaria)
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL.WebFoPag2\GraficosFolha.cs
  • Parâmetros SQL: @Idf_Empresa, @Dta_De, @Dta_Ate, @Idf_Contrato, @Idf_Usuario, @Idf_Filial, @Situacao_Empregado, @Idf_Centro_Resultado
  • Propósito: Calcula e agrupa empregados por faixas etárias (< 20, 20 A 30, etc.) com base na Dta_Nascimento da VW_Empregado, aplicando filtros de empresa, período de vigência de contrato (TAB_Empregado_Contrato, TAB_Empregado_Transferido), contrato, centro de resultado, filial, situação do empregado e permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • SQL inline (GraficoTempoCasa)
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL.WebFoPag2\GraficosFolha.cs
  • Parâmetros SQL: @Idf_Empresa, @Dta_De, @Dta_Ate, @Idf_Contrato, @Idf_Usuario, @Idf_Filial, @Situacao_Empregado, @Idf_Centro_Resultado
  • Propósito: Calcula e agrupa empregados por faixas de tempo de serviço (até 1 ano, 2 a 3 anos, etc.) com base na Dta_Admissao e Dta_Rescisao da VW_Empregado, aplicando filtros de empresa, período de vigência de contrato (TAB_Empregado_Contrato, TAB_Empregado_Transferido), contrato, centro de resultado, filial, situação do empregado e permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • SQL inline (GraficoLiquidoFolha)
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL.WebFoPag2\GraficosFolha.cs
  • Parâmetros SQL: @Idf_Empresa, @Dta_De, @Dta_Ate, @Idf_Contrato, @Idf_Usuario, @Idf_Filial, @Situacao_Empregado, @Idf_Centro_Resultado
  • Propósito: Soma os valores (Vlr_Total_Verba) de verbas específicas do líquido de folha (Cod_Verba IN (869, 847, 853, 854, 856, 858, 863, 864, 867, 868)) da TAB_Holerite e TAB_Holerite_Verba, filtrando por empresa, período de cálculo (plataforma.TAB_Periodo_Calculo), contrato, centro de resultado, filial, situação do empregado e permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • SQL inline (GraficoFuncao)
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL.WebFoPag2\GraficosFolha.cs
  • Parâmetros SQL: @Idf_Empresa, @Dta_De, @Dta_Ate, @Idf_Contrato, @Idf_Usuario, @Idf_Filial, @Situacao_Empregado, @Idf_Centro_Resultado
  • Propósito: Conta a quantidade de empregados por Des_Categoria (função) da VW_Empregado, TAB_Empregado_Funcao_Exclusiva, TAB_Funcao_Exclusiva, plataforma.TAB_Funcao_Especifica e plataforma.TAB_Funcao, aplicando filtros de empresa, período de vigência de contrato (TAB_Empregado_Contrato, TAB_Empregado_Transferido), contrato, centro de resultado, filial, situação do empregado e permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • SQL inline (GraficoHoraExtra)
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL.WebFoPag2\GraficosFolha.cs
  • Parâmetros SQL: @Idf_Empresa, @Dta_De, @Dta_Ate, @Idf_Contrato, @Idf_Usuario, @Idf_Filial, @Situacao_Empregado, @Idf_Centro_Resultado
  • Propósito: Soma os valores (Vlr_Total_Verba) de verbas de hora extra (Cod_Verba IN (11,12)) da TAB_Holerite e TAB_Holerite_Verba, exibindo a descrição da verba, percentual e complemento. Aplica filtros de empresa, período de vigência de contrato (TAB_Empregado_Contrato, TAB_Empregado_Transferido), contrato, centro de resultado, filial, situação do empregado e permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • SQL inline (GraficoTurnover)
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL.WebFoPag2\GraficosFolha.cs
  • Parâmetros SQL: @Idf_Empresa, @Dta_De, @Dta_Ate, @Idf_Contrato, @Idf_Usuario, @Idf_Filial, @Situacao_Empregado, @Idf_Centro_Resultado
  • Propósito: Realiza uma UNION ALL para contar o número de admissões (Dta_Admissao) e rescisões (Dta_Saida_Prevista) da VW_Empregado dentro do período especificado, aplicando filtros de empresa, contrato, centro de resultado, filial e permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • SQL inline (GraficoSalarios)
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL.WebFoPag2\GraficosFolha.cs
  • Parâmetros SQL: @Idf_Empresa, @Dta_De, @Dta_Ate, @Idf_Contrato, @Idf_Usuario, @Idf_Filial, @Situacao_Empregado, @Idf_Centro_Resultado
  • Propósito: Categoriza empregados em faixas salariais com base no Vlr_Salario vigente (TAB_Salario) da VW_Empregado, aplicando filtros de empresa, período de vigência de contrato (TAB_Empregado_Contrato, TAB_Empregado_Transferido), contrato, centro de resultado, filial, situação do empregado e permissões de acesso do usuário (TAB_SF_Usuario_Acesso).
  • SPSELECTPERMISSOESUSUARIO
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P2.cs
  • Parâmetros SQL: @idf_usuario, @Idf_Categoria_Permissao
  • Propósito: Retorna as permissões (Idf_Permissao) distintas de um usuário para uma dada categoria de permissão, considerando a vigência das permissões (Dta_Inicio, Dta_Fim).

7.3. UserControls incluídos (.ascx)

  • Employer:ListaSugestoes
  • Caminho: Não especificado no .aspx, mas é um controle customizado da plataforma.
  • ID: lsTipoGrafico, lsSituacaoEmpregado
  • Tag: <Employer:ListaSugestoes ... />
  • Propriedades expostas: Obrigatorio, Width, Valor, ValorInt, Enabled
  • Eventos: OnValueChanged (para lsTipoGrafico)
  • Métodos públicos chamados pela tela pai: CarregarListaSugestoes (via Employer.Componentes.UI.Web.Extensions.ListaSugestoesExtensions), LimparCampos (indiretamente, setando Valor = "").
  • Employer:LocalizarEmpresa
  • Caminho: Não especificado no .aspx, mas é um controle customizado da plataforma.
  • ID: txtEmpresa
  • Tag: <Employer:LocalizarEmpresa ... />
  • Propriedades expostas: IdGrupoEconomico, Width, IdEmpresaSelecionada, IdUsuario
  • Eventos: OnValorAlterado
  • Métodos públicos chamados pela tela pai: LimparCampos
  • Employer:LocalizarFilial
  • Caminho: Não especificado no .aspx, mas é um controle customizado da plataforma.
  • ID: txtFilial
  • Tag: <Employer:LocalizarFilial ... />
  • Propriedades expostas: IdGrupoEconomico, Width, IdEmpresa, IdFilialSelecionada, IdUsuario
  • Eventos: OnValorAlterado
  • Métodos públicos chamados pela tela pai: LimparCampos
  • Employer:LocalizarContrato
  • Caminho: Não especificado no .aspx, mas é um controle customizado da plataforma.
  • ID: txtContrato
  • Tag: <Employer:LocalizarContrato ... />
  • Propriedades expostas: TipoDeContrato, Width, ConsiderarContratoInativo, IdEmpresa, IdFilial, IdContratoSelecionado, IdUsuario
  • Eventos: Nenhum diretamente no markup.
  • Métodos públicos chamados pela tela pai: LimparCampos
  • Employer:LocalizarCentroResultado
  • Caminho: Não especificado no .aspx, mas é um controle customizado da plataforma.
  • ID: txtCentroResultado
  • Tag: <Employer:LocalizarCentroResultado ... />
  • Propriedades expostas: Obrigatorio, ValidationGroup, TipoCentroResultado, IdCentroResultadoSelecionado
  • Eventos: Nenhum diretamente no markup.
  • Métodos públicos chamados pela tela pai: Nenhum diretamente.
  • Employer:DataTextBox
  • Caminho: Não especificado no .aspx, mas é um controle customizado da plataforma.
  • ID: txtDe, txtAte
  • Tag: <Employer:DataTextBox ... />
  • Propriedades expostas: MostrarCalendario, ValidationGroup, DataMinima, CampoDataMaxima (para txtDe), CampoDataMinima (para txtAte), Obrigatorio, ValorDateTime, Text
  • Eventos: OnValorAlterado
  • Métodos públicos chamados pela tela pai: Nenhum diretamente, mas o Text é setado para string.Empty.
  • Employer:Button
  • Caminho: Não especificado no .aspx, mas é um controle customizado da plataforma.
  • ID: btnPesquisar, btnLimpar, btnVoltar
  • Tag: <Employer:Button ... />
  • Propriedades expostas: Text, ValidationGroup, CausesValidation, CssClass, PostBackUrl
  • Eventos: OnClientClick, OnClick

7.4. WebServices, APIs externas, filas

  • Google Charts API: A tela utiliza a biblioteca Google Charts para renderizar os gráficos. O script loader.js é carregado e as funções google.charts.load e google.visualization.arrayToDataTable são usadas para preparar e exibir os dados. Funções JavaScript como fnGraficoGenero, fnGraficoSalarios, etc., são responsáveis por configurar e desenhar os gráficos no lado do cliente.

💬 8. Mensagens ao Usuário

  • "Pesquisa máxima deve ser de 1 ano" (TipoMensagem.Aviso): Exibida quando o período de pesquisa (txtDe e txtAte) excede 1 ano.
  • "Erro ao carregar gráfico" (TipoMensagem.Erro): Mensagem genérica exibida em caso de exceção durante a geração de qualquer gráfico.
  • "Sem dados para geração.": Exibida na div divSemdadosGeracao quando a consulta de um gráfico retorna um conjunto de dados vazio.

🔐 9. Permissões e Perfis

  • Permissão: Permissoes.Indicadores.VisualizarIndicadores
  • O que controla: Acesso à tela Graficos.aspx. Se o usuário não possuir esta permissão, ele é redirecionado para a página de acesso negado (Configuracao.UrlAcessoNegado). (Verificado em ConfigurarPermissoesTela no Graficos.aspx.cs).

📌 Status: Concluído 👤 Responsável: Equipe de QA

Digite para pesquisar...

Scroll para zoom · Esc para fechar

⌨️ Atalhos de teclado
Navegação
Ctrl K Pesquisar na wiki
Ctrl F Buscar na página
? Ver atalhos
Visualização
Ctrl Shift F Modo foco
A+ / A− Tamanho da fonte
Ctrl D Alternar tema
Ações
Ctrl B Favoritar página
Esc Fechar dialogs