🛠️ 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 noTipoEstruturaGerencialda empresa logada. - Se
TipoEstruturaGerencialfor “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
| Nome | Tipo | Obrigatório | Regra |
|---|---|---|---|
| lsTipoGrafico | ListaSugestoes | 🔴 Sim | Seleçã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). |
| txtEmpresa | LocalizarEmpresa | ⚪ Não | Campo para selecionar a empresa. O IdGrupoEconomico é fixo como “1”. Ao alterar o valor, atualiza o IdEmpresa do txtFilial. |
| txtFilial | LocalizarFilial | ⚪ Não | Campo para selecionar a filial. O IdGrupoEconomico é fixo como “1”. Ao alterar o valor, atualiza o IdFilial do txtContrato. |
| txtContrato | LocalizarContrato | ⚪ Não | Campo para selecionar o contrato. TipoDeContrato é “ContratoFilho”, ConsiderarContratoInativo é “true”. Visibilidade controlada pela estrutura gerencial da empresa. |
| txtCentroResultado | LocalizarCentroResultado | ⚪ Não | Campo para selecionar o centro de resultado. TipoCentroResultado é “Analitico”. Visibilidade controlada pela estrutura gerencial da empresa. |
| lsSituacaoEmpregado | ListaSugestoes | ⚪ Não | Seleção da situação do empregado (Ativo, Inativo). Desabilitado para o gráfico de Turnover. |
| txtDe | DataTextBox | ⚪ Não | Data inicial do período de pesquisa. DataMinima é “01/01/2019”, CampoDataMaxima é “txtAte”. Obrigatório para alguns tipos de gráfico. |
| txtAte | DataTextBox | ⚪ Não | Data final do período de pesquisa. DataMinima é “02/01/2019”, CampoDataMinima é “txtDe”. |
| btnPesquisar | Button | ⚪ Não | Botão para acionar a pesquisa e exibição do gráfico. Executa OcultaGraficos() no cliente e btnPesquisar_Click no servidor. |
| btnLimpar | Button | ⚪ Não | Botão para limpar os campos do formulário. |
| btnVoltar | Button | ⚪ Não | Botã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 campotxtContrato. Sua visibilidade é controlada dinamicamente.divCentroResultado (div): Contém o campotxtCentroResultado. Sua visibilidade é controlada dinamicamente.trDataEmissao (div): Contém os campos de datatxtDeetxtAte.- 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 emtxtDe_ValorAlteradoetxtAte_ValorAlteradonoGraficos.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 = falsepara Gênero (1), Tempo de Serviço (3) e Função (5).txtDe.Obrigatorio = truepara Faixa Salarial (2), Líquido de Folha (4), Hora Extra (6), Turnover (7) e Absenteísmo (8). (Validado emlsTipoGrafico_ValueChangednoGraficos.aspx.cs).- O campo
lsSituacaoEmpregadoé desabilitado e seu valor é limpo quando o “Tipo Gráfico” selecionado é “Turn Over” (7). (Validado emlsTipoGrafico_ValueChangednoGraficos.aspx.cs).
5.2. Regras de Habilitação/Desabilitação e Visibilidade
- Visibilidade de Contrato/Centro Resultado:
- Se a empresa logada (
CodigoEmpresa) tiverTipoEstruturaGerencialconfigurado comoBLL.Enumeradores.TipoEstruturaGerencial.CentroResultado, odivContratoé ocultado (display: none) e odivCentroResultadoé exibido (display: block). - Caso contrário, o
divContratoé exibido (display: block) e odivCentroResultadoé ocultado (display: none). (Configurado emConfigurarPorTipoEstruturaGerencialnoGraficos.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 > 0for falso), odivSemdadosGeracaoé 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ãoPermissoes.Indicadores.VisualizarIndicadores, ele é redirecionado. - A estrutura gerencial da empresa é configurada por
ConfigurarPorTipoEstruturaGerencial(), que carrega o objetoEmpresae ajusta a visibilidade dos campos de filtro. - Os IDs da empresa e do usuário logado são atribuídos aos controles
txtFilial,txtEmpresaetxtContrato. - 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
ValorIntdolsTipoGrafico, 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
GraficosFolhaincluemIdf_EmpresaSelecionada,ValorDateTimedos campos de data,IdContratoSelecionado,CodigoUsuarioLogado,IdFilialSelecionada,ValorIntda situação do empregado eIdCentroResultadoSelecionado. - 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,txtDeetxtAtesão limpos. - Atualização de Filtros Dependentes:
- Ao alterar o valor de
txtEmpresa, oIdEmpresadotxtFilialé atualizado. - Ao alterar o valor de
txtFilial, oIdFilialdotxtContratoé 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
- 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
SPSELECTPERMISSOESUSUARIOpara verificar permissões. - Redireciona para
Configuracao.UrlAcessoNegadose a permissãoPermissoes.Indicadores.VisualizarIndicadoresnão for encontrada. ConfigurarPorTipoEstruturaGerencial()(Graficos.aspx.cs)Empresa.LoadObject(base.CodigoEmpresa)(Empresa_P1.cs)- Executa a SP
SPSELECTIDpara carregar dados da empresa. - Define a visibilidade de
divContratoedivCentroResultadocom base emobjEmpresa.TipoEstruturaGerencial. - Atribui
CodigoEmpresaatxtFilial.IdEmpresa,txtEmpresa.IdEmpresaSelecionada,txtContrato.IdEmpresa. - Atribui
CodigoUsuarioLogadoatxtFilial.IdUsuario,txtContrato.IdUsuario,txtEmpresa.IdUsuario. ListaSugestoesExtensions.CarregarListaSugestoes(lsTipoGrafico, filtroData)(Extension method)ListaSugestoesExtensions.CarregarListaSugestoes(lsSituacaoEmpregado, filtroAtivo)(Extension method)
- 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)eExibirMensagem("Erro ao carregar gráfico", TipoMensagem.Erro).
- Limpar Campos (
btnLimpar_Click):
btnLimpar_Click(Graficos.aspx.cs)txtFilial.LimparCampos()lsTipoGrafico.Valor = ""lsSituacaoEmpregado.Valor = ""txtEmpresa.LimparCampos()txtContrato.LimparCampos()txtDe.Text = string.EmptytxtAte.Text = string.Empty
- Alteração de Data (
txtDe_ValorAlterado,txtAte_ValorAlterado):
txtDe_ValorAlterado(Graficos.aspx.cs)- Verifica se a diferença entre
txtDe.ValorDateTimeetxtAte.ValorDateTimeexcede 1 ano. Se sim, exibe aviso e limpatxtDe. txtAte_ValorAlterado(Graficos.aspx.cs)- Verifica se a diferença entre
txtAte.ValorDateTimeetxtDe.ValorDateTimeexcede 1 ano. Se sim, exibe aviso e limpatxtAte.
- Alteração de Filial (
txtFilial_ValorAlterado):
txtFilial_ValorAlterado(Graficos.aspx.cs)txtContrato.IdFilial = txtFilial.IdFilialSelecionada
- Alteração de Empresa (
txtEmpresa_ValorAlterado):
txtEmpresa_ValorAlterado(Graficos.aspx.cs)txtFilial.IdEmpresa = txtEmpresa.IdEmpresaSelecionada
- Alteração do Tipo de Gráfico (
lsTipoGrafico_ValueChanged):
lsTipoGrafico_ValueChanged(Graficos.aspx.cs)- Define
lblPeriodo.Textcomo “Período”. - Habilita
lsSituacaoEmpregado. switch (lsTipoGrafico.ValorInt): AjustatxtDe.ObrigatorioelsSituacaoEmpregado.Enabledconforme 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 objetoEmpresapelo seu ID.- Propósito: Utilizado em
ConfigurarPorTipoEstruturaGerencialpara obter as informações da empresa logada, especificamente oTipoEstruturaGerencial, que determina a visibilidade dos campos de contrato e centro de resultado. Internamente, chamaLoadDataReader(idEmpresa)que executa a SPSPSELECTID(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_AfastamentoeQtdedaVW_Empregadoe 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 naDta_NascimentodaVW_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) daVW_Empregado,TAB_Empregado_Funcao_Exclusiva,TAB_Funcao_ExclusivaeTAB_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_SexodaVW_Empregadoeplataforma.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_Verbapara verbas de hora extra (códigos 11, 12) daTAB_HoleriteeTAB_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_Verbapara verbas específicas (códigos 869, 847, etc.) daTAB_HoleriteeTAB_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 noVlr_SalariodaTAB_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) daVW_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
ConfigurarPermissoesTelapara verificar se o usuário logado tem a permissãoPermissoes.Indicadores.VisualizarIndicadores. Internamente, executa a SPSPSELECTPERMISSOESUSUARIO(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_Empresacom base noIdf_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) daVW_Empregadoeplataforma.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 naDta_NascimentodaVW_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 naDta_AdmissaoeDta_RescisaodaVW_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)) daTAB_HoleriteeTAB_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) daVW_Empregado,TAB_Empregado_Funcao_Exclusiva,TAB_Funcao_Exclusiva,plataforma.TAB_Funcao_Especificaeplataforma.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)) daTAB_HoleriteeTAB_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 ALLpara contar o número de admissões (Dta_Admissao) e rescisões (Dta_Saida_Prevista) daVW_Empregadodentro 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_Salariovigente (TAB_Salario) daVW_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(paralsTipoGrafico) - Métodos públicos chamados pela tela pai:
CarregarListaSugestoes(viaEmployer.Componentes.UI.Web.Extensions.ListaSugestoesExtensions),LimparCampos(indiretamente, setandoValor = "").
- 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(paratxtDe),CampoDataMinima(paratxtAte),Obrigatorio,ValorDateTime,Text - Eventos:
OnValorAlterado - Métodos públicos chamados pela tela pai: Nenhum diretamente, mas o
Texté setado parastring.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çõesgoogle.charts.loadegoogle.visualization.arrayToDataTablesão usadas para preparar e exibir os dados. Funções JavaScript comofnGraficoGenero,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 (txtDeetxtAte) 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 divdivSemdadosGeracaoquando 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 emConfigurarPermissoesTelanoGraficos.aspx.cs).
📌 Status: Concluído 👤 Responsável: Equipe de QA