🛠️ Documentação Técnica: Cadastro de Formulário de Cheque
[!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.
A tela FuncaoGratificadaContratoCadastro.aspx é utilizada para liberar funções gratificadas por contrato. Ela permite ao usuário vincular funções a contratos (mãe ou filho), pesquisar funções já vinculadas e editar informações como cargo, categoria e faixa salarial. A tela também oferece funcionalidades para copiar funções gratificadas e gerar relatórios.
👁️ 1. Visão Geral
- Propósito da tela: Vincular funções gratificadas a contratos, permitindo a gestão de cargos e salários para essas funções.
- Contexto no sistema: Faz parte do módulo de Folha de Pagamento (WebFoPag), especificamente na gestão de funções e contratos.
- Usuários que utilizam: Usuários com permissão para visualizar, solicitar e salvar funções gratificadas por contrato, geralmente do departamento de RH ou folha de pagamento.
🗂️ 2. Tipos/Modalidades
- Tipo de Estrutura Gerencial: A tela se adapta conforme o tipo de estrutura gerencial da empresa (Centro de Resultado ou Contrato e Departamento).
- Se a empresa utiliza “Centro de Resultado”, os campos “Contrato Mãe” e “Contrato Filho” são ocultados e não obrigatórios. O contrato padrão é carregado automaticamente.
- Se a empresa utiliza “Contrato e Departamento”, os campos “Contrato Mãe” e “Contrato Filho” são exibidos, sendo “Contrato Mãe” obrigatório.
- Modo de Edição do Grid: O grid de funções gratificadas permite a edição inline de “Cargo”, “Categoria”, “Classe Salarial”, “Valor Piso” e “Valor Teto”.
🖥️ 3. Interface — Campos e Controles
| Nome | Tipo | Obrigatório | Regra |
|---|---|---|---|
| txtContratoMae | LocalizarContrato | Sim/Não | Obrigatório se a empresa não usa Centro de Resultado. TipoDeContrato=“ContratoMae”. Mensagem de erro: “Campo Inválido.” ou “Campo Obrigatório.” |
| txtContratoFilho | LocalizarContrato | ⚪ Não | TipoDeContrato=“ContratoFilho”. Mensagem de erro: “Campo Inválido.” ou “Campo Obrigatório.” |
| txtFuncao | LocalizarPlataformaFuncao | ⚪ Não | Mensagem de erro: “Campo Inválido.” ou “Campo Obrigatório.” |
| btnLiberarFuncao | Button | ⚪ Não | Validações no grupo “Solicitar”. |
| btnCopiarFuncoes | Button | ⚪ Não | Abre modal mpeCopiarFuncoes. |
| btnRelatorio | Button | ⚪ Não | Redireciona para GeradorDeRelatoriosAssincronos.aspx. |
| btnLimpar | Button | ⚪ Não | Redireciona para a própria tela (FuncaoGratificadaContratoCadastro.aspx). |
| btnVoltar | Button | ⚪ Não | Redireciona para MenuMaisOpcoes.aspx?ID=U. |
| txtPesquisarFuncao | ControlAlfaNumerico | ⚪ Não | Campo de texto para pesquisa no grid. |
| btnPesquisarFuncao | Button | ⚪ Não | Aciona a pesquisa no grid. |
| gdvFuncoes.lblContrato | Label | ⚪ Não | Exibe “Cod_Contrato - Ape_Contrato (Des_Tipo_Contrato)“. |
| gdvFuncoes.lblFuncao | Label | ⚪ Não | Exibe “Des_Funcao”. |
| gdvFuncoes.lblCBO | Label | ⚪ Não | Exibe “Cod_Cbo”. |
| gdvFuncoes.txtCargo | ControlAlfaNumerico | ⚪ Não | Editável no grid. Tamanho máximo 40. Mensagem de erro: “Formato Inválido.”, “Campo Obrigatório.”, “Valor Incorreto.”. |
| gdvFuncoes.txtCategoria | ControlAlfaNumerico | ⚪ Não | Editável no grid. Tamanho máximo 40. Mensagem de erro: “Formato Inválido.”, “Campo Obrigatório.”, “Valor Incorreto.”. |
| gdvFuncoes.lsClasseSalarial | ListaSugestoes | 🔴 Sim | Editável no grid. TipoSugestao=“Numero”. Mensagem de erro: “Campo Obrigatório.”, “Valor Incorreto.”. |
| gdvFuncoes.txtValorPiso | ValorNumericoTextBox | 🔴 Sim | Editável no grid. Tamanho 10, 2 casas decimais. Mensagem de erro: “Formato Incorreto.”, “Campo Obrigatório.”. |
| gdvFuncoes.txtValorTeto | ValorNumericoTextBox | 🔴 Sim | Editável no grid. Tamanho 10, 2 casas decimais. Mensagem de erro: “Formato Incorreto.”, “Campo Obrigatório.”. |
| gdvFuncoes.imbEditar | ImageButton | ⚪ Não | Edita a linha do grid. |
| gdvFuncoes.imbExcluir | ImageButton | ⚪ Não | Exclui a linha do grid. Confirmação: “Deseja realmente excluir este registro?“. |
| gdvFuncoes.imbSalvar | ImageButton | ⚪ Não | Salva as alterações da linha do grid. |
| gdvFuncoes.imbCancelar | ImageButton | ⚪ Não | Cancela a edição da linha do grid. |
| ucCopiarFuncao | UserControl | ⚪ Não | UserControl para copiar funções. |
| imbFecharHistoricoDesoneracao | ImageButton | ⚪ Não | Botão de fechar da modal de copiar funções. |
📑 4. Abas e Seções
- pnlValidacao: Painel para exibir mensagens de validação.
- pnlContrato: Painel que agrupa os campos de seleção de contrato e função.
- divContratoMae: Div para o campo “Contrato Mãe”.
- divContratoFilho: Div para o campo “Contrato Filho”.
- pnlBotoes: Painel que contém os botões de ação da tela (Liberar Função, Copiar Funções, Relatório, Limpar, Voltar).
- pnlGridFuncoes: Painel que contém o grid de funções gratificadas.
- upnGridFuncoes: UpdatePanel para atualização assíncrona do grid.
- gdvFuncoes: GridView que exibe as funções gratificadas por contrato. Possui colunas para Contrato, Funções, CBO, Cargo, Categoria, Classe, De (Valor Piso), Até (Valor Teto) e Ação (Editar/Excluir).
- pnlCopiarFuncoes: Painel que representa a modal de “Copiar Funções”.
🛡️ 5. Regras de Negócio
5.1. Validações de Campos
- Contrato Mãe/Filho (FuncaoGratificadaContratoCadastro.aspx.cs - btnLiberarFuncao_OnClick):
- Se nenhum contrato (mãe ou filho) for selecionado ao clicar em “Liberar Função Gratificada”, exibe a mensagem de erro
MensagemErro._310405. - Função Gratificada (FuncaoGratificadaContratoCadastro.aspx.cs - btnLiberarFuncao_OnClick):
- Se nenhuma função for selecionada ao clicar em “Liberar Função Gratificada”, exibe a mensagem de erro
MensagemErro._310402. - gdvFuncoes.txtCargo (FuncaoGratificadaContratoCadastro.aspx):
- Tamanho máximo de 40 caracteres.
- Mensagens de erro: “Formato Inválido.”, “Campo Obrigatório.”, “Valor Incorreto.”.
- gdvFuncoes.txtCategoria (FuncaoGratificadaContratoCadastro.aspx):
- Tamanho máximo de 40 caracteres.
- Mensagens de erro: “Formato Inválido.”, “Campo Obrigatório.”, “Valor Incorreto.”.
- gdvFuncoes.lsClasseSalarial (FuncaoGratificadaContratoCadastro.aspx):
- Campo obrigatório.
- Mensagens de erro: “Campo Obrigatório.”, “Valor Incorreto.”.
- gdvFuncoes.txtValorPiso (FuncaoGratificadaContratoCadastro.aspx):
- Campo obrigatório.
- Mensagens de erro: “Formato Incorreto.”, “Campo Obrigatório.”.
- gdvFuncoes.txtValorTeto (FuncaoGratificadaContratoCadastro.aspx):
- Campo obrigatório.
- Mensagens de erro: “Formato Incorreto.”, “Campo Obrigatório.”.
- Exclusão de Função Gratificada (FuncaoGratificadaContratoCadastro.aspx.cs - gdvFuncoes_OnRowDeleting):
- Antes de inativar uma função exclusiva, verifica se há funcionários ativos para a função (
FuncaoExclusiva.VerificarEmpregadosFuncaoExclusiva(id, false)). Se houver, exibe a mensagem de erroMensagemErro._310403.
5.2. Regras de Habilitação/Desabilitação e Visibilidade
- Configuração por Tipo de Estrutura Gerencial (FuncaoGratificadaContratoCadastro.aspx.cs - ConfigurarPorTipoEstruturaGerencial):
- Se a empresa utiliza “Centro de Resultado” (
objEmpresa.TipoEstruturaGerencial.IdTipoEstruturaGerencialigual aBLL.Enumeradores.TipoEstruturaGerencial.CentroResultado.GetHashCode()): - A propriedade
UtilizaCentroResultadoé definida comotrue. - A
divContratoMaeedivContratoFilhosão ocultadas (display: none). - Os campos
txtContratoMae.ObrigatorioetxtContratoFilho.Obrigatoriosão definidos comofalse. - O contrato default da empresa por centro de resultado é carregado (
Contrato.CarregarContratoCentroResultado). - Caso contrário (Contrato e Departamento):
- A propriedade
UtilizaCentroResultadoé definida comofalse. - A
divContratoMaeedivContratoFilhosão exibidas (display: block). - O campo
txtContratoMae.Obrigatorioé definido comotrue. - O campo
txtContratoFilho.Obrigatorioé definido comofalse. - Permissões de Tela (FuncaoGratificadaContratoCadastro.aspx.cs - ConfigurarPermissoesTela):
- Se o usuário não possuir a permissão
FuncaoGratificadaContrato.VisualizarFuncaoContrato, é redirecionado para a página de acesso negado (Configuracao.UrlAcessoNegado). - Se o usuário não possuir a permissão
FuncaoGratificadaContrato.SolicitarFuncao, o campotxtFuncaoé desabilitado (txtFuncao.Enabled = false). - Se o usuário não possuir a permissão
FuncaoGratificadaContrato.SalvarFuncaoContrato, o campotxtFuncaoé definido comoReadOnlye desabilitado (txtFuncao.ReadOnly = true; txtFuncao.Enabled = false;).
5.3. Regras de Inativação e Exclusão
- Inativação de Função Gratificada (FuncaoGratificadaContratoCadastro.aspx.cs - gdvFuncoes_OnRowDeleting):
- Uma função gratificada é inativada (não excluída fisicamente) se não houver funcionários ativos vinculados a ela (
FuncaoExclusiva.VerificarEmpregadosFuncaoExclusiva(id, false)retornafalse). - Após a inativação, a mensagem
MensagemAviso._100008é exibida.
5.4. Regras de Salvar e Fluxo de Configuração
- Liberar Função Gratificada (FuncaoGratificadaContratoCadastro.aspx.cs - btnLiberarFuncao_OnClick):
- Carrega o objeto
Contrato(sejatxtContratoMae.IdContratoSelecionadooutxtContratoFilho.IdContratoSelecionado). Se for contrato filho, completa o objetoContratoMaeeFilialGestora. - Carrega o objeto
Funcao(Funcao.LoadObject(txtFuncao.IdFuncaoSelecionada.Value)). - Verifica a existência de uma
FuncaoEspecificapara aIdFuncaoselecionada (FuncaoEspecifica.CarregarPorFuncao). - Se a
FuncaoEspecificanão for encontrada, uma requisição é feita àFolhaWebApi(FolhaWebApi.PostFolhaWebApi) para criar a função específica. - Após a requisição, tenta-se novamente carregar a
FuncaoEspecifica. Se ainda não for encontrada, exibeMensagemErro._310406. - Se a
FuncaoEspecificafor encontrada: - Se o contrato selecionado for um contrato mãe (ou seja,
txtContratoFilho.IdContratoSelecionadonão tem valor), chamaFuncaoExclusiva.SalvarParaContratoMae(objContrato, objFuncaoEspecifica, new Usuario(CodigoUsuarioLogado)). - Caso contrário (contrato filho), chama
FuncaoExclusiva.Salvar(objContrato, objFuncaoEspecifica, new Usuario(CodigoUsuarioLogado)). - Após salvar, o método
EnviarEmail()é chamado. - A mensagem
MensagemAviso._100001é exibida. - O campo
txtFuncaoé limpo e o foco é definido nele. - O grid
gdvFuncoesé recarregado e atualizado. - Atualização de Função Gratificada no Grid (FuncaoGratificadaContratoCadastro.aspx.cs - gdvFuncoes_OnRowUpdating):
- Recupera os valores dos campos editáveis do grid:
txtCargo.Text,txtCategoria.Text,lsClasse.Valor(paraClasseSalarial),txtValorPiso.ValorDecimal.Value,txtValorTeto.ValorDecimal.Value. - Carrega o objeto
FuncaoExclusivacorrespondente à linha editada (FuncaoExclusiva.LoadObject). - Atualiza as propriedades
DescricaoCargo,DescricaoCategoria,ClasseSalarial,ValorPisoeValorTetodo objetoFuncaoExclusiva. - Chama
objFuncaoExclusiva.Save()para persistir as alterações. - A mensagem
MensagemAviso._100001é exibida. - O grid
gdvFuncoessai do modo de edição (EditIndex = -1), é recarregado e atualizado.
5.5. Outras Regras Específicas da Tela
- Montagem de Mensagem de E-mail (FuncaoGratificadaContratoCadastro.aspx.cs - MontarMensagemSolicitado):
- Constrói uma string HTML com informações detalhadas sobre a função vinculada ao contrato, incluindo: Ambiente, Centro de Serviço, Empresa, Filial, Pessoa Responsável no RH do Cliente, E-mail Cliente, Contrato, Nome Função e CBO.
- O valor do “Ambiente” é recuperado da configuração da aplicação (
ConfigurationManager.AppSettings["Ambiente"]). - As informações do usuário responsável são obtidas via
Usuario.LoadObject(CodigoUsuarioLogado)eLoginWS.loginws.CarregarPorLogin. - O e-mail de destino é recuperado do dicionário (
Dicionario.RecuperaValorDicionario(Enumeradores.ItemDicionario.EmailCadastroFuncao)). - Ordenação do Grid (FuncaoGratificadaContratoCadastro.aspx.cs - gdvFuncoes_OnRowCreated):
- Na criação do cabeçalho do grid, adiciona uma imagem de ordenação à coluna que está sendo ordenada, indicando a direção (ASC/DESC).
- Cria um cabeçalho agrupado com as seções “Contrato”, “Função”, “Plano Cargos Salários”, “Faixa Salarial” e “Ação”.
- Preenchimento de Contrato Filho (FuncaoGratificadaContratoCadastro.aspx.cs - txtContratoMae_OnClick):
- Se um
IdContratoSelecionadofor definido paratxtContratoMae, este valor é automaticamente atribuído atxtContratoFilho.IdContratoMae. - Preenchimento de Contrato Mãe (FuncaoGratificadaContratoCadastro.aspx.cs - txtContratoFilho_OnClick):
- Se um
IdContratoSelecionadofor definido paratxtContratoFilho, o objetoContratocorrespondente é carregado e, se oContratoMaeexistir, seuIdContratoé atribuído atxtContratoMae.IdContratoSelecionado.
🔄 6. Fluxos Principais
6.1. Inicialização da Tela
Page_Load(object sender, EventArgs e):
- Verifica se a página é um postback.
- Se não for postback, chama
Inicializar().
Inicializar():
- Chama
ConfigurarPermissoesTela(). - Chama
ConfigurarPorTipoEstruturaGerencial(). - Define
IdEmpresaparatxtContratoMaeetxtContratoFilhocomCodigoEmpresa. - Define
MockColunaOrdenadaeMockDirecaoOrdenacaoparagdvFuncoes.
6.2. Liberar Função Gratificada
btnLiberarFuncao_OnClick(object sender, EventArgs e):
- Validação: Verifica se
txtContratoMae.IdContratoSelecionadooutxtContratoFilho.IdContratoSelecionadopossuem valor. Se ambos forem nulos, exibeMensagemErro._310405. - Validação: Verifica se
txtFuncao.IdFuncaoSelecionadapossui valor. Se for nulo, exibeMensagemErro._310402. - Carregar Contrato: Carrega o objeto
ContratousandoContrato.LoadObject(), priorizandotxtContratoFilho.IdContratoSelecionado. Se for contrato filho, completaContratoMaeeFilialGestora. - Carregar Função: Carrega o objeto
FuncaousandoFuncao.LoadObject(txtFuncao.IdFuncaoSelecionada.Value). - Verificar/Criar Função Específica:
- Chama
FuncaoEspecifica.CarregarPorFuncao(objFuncao.IdFuncao, out objFuncaoEspecifica). - Se
objFuncaoEspecificafor nulo (não encontrada): - Constrói parâmetros para a API:
key={0}&gratificada={1}¢roServico={2}. - Chama
FolhaWebApi.PostFolhaWebApi(Employer.Plataforma.BLL.Enumeradores.EnumFolhaWebApi.Funcao, vParametros). - Tenta novamente
FuncaoEspecifica.CarregarPorFuncao(). - Se ainda for nulo, exibe
MensagemErro._310406. - Salvar Função Exclusiva:
- Se
txtContratoFilho.IdContratoSelecionadonão tiver valor, chamaFuncaoExclusiva.SalvarParaContratoMae(objContrato, objFuncaoEspecifica, new Usuario(CodigoUsuarioLogado)). - Caso contrário, chama
FuncaoExclusiva.Salvar(objContrato, objFuncaoEspecifica, new Usuario(CodigoUsuarioLogado)). - Notificação: Chama
EnviarEmail(). - Feedback: Exibe
MensagemAviso._100001. - Limpeza e Atualização: Limpa
txtFuncao, define o foco, ajusta a ordenação do grid e chamaCarregarGrid()eupnGridFuncoes.Update(). - Tratamento de Erro: Captura
Exceptione chamaExibirMensagemErro(ex).
6.3. Pesquisar Funções
btnPesquisarFuncao_OnClick(object sender, EventArgs e):
- Chama
CarregarGrid().
6.4. Edição de Linha no Grid
gdvFuncoes_OnRowEditing(object sender, GridViewEditEventArgs e):
- Define
gdvFuncoes.EditIndex = e.NewEditIndex. - Chama
CarregarGrid(). - Encontra o controle
lsClasseSalarialna linha editada. - Chama
ListaSugestoesExtensions.CarregarListaSugestoes(lsClasseSalarial, ClasseSalarial.Listar()). - Carrega
FuncaoExclusivapeloDataKeyda linha. - Se
objFuncaoExclusiva.ClasseSalarialnão for nulo, preenchelsClasseSalarial.Valor.
gdvFuncoes_OnRowUpdating(object sender, GridViewUpdateEventArgs e):
- Recuperar Controles: Encontra os controles
txtCargo,txtCategoria,lsClasse,txtValorPiso,txtValorTetona linha editada. - Carregar Objeto: Carrega o objeto
FuncaoExclusivausandoFuncaoExclusiva.LoadObject()com oDataKeyda linha. - Atualizar Propriedades: Atribui os valores dos controles às propriedades
DescricaoCargo,DescricaoCategoria,ClasseSalarial,ValorPiso,ValorTetodoobjFuncaoExclusiva. - Salvar: Chama
objFuncaoExclusiva.Save(). - Feedback: Exibe
MensagemAviso._100001. - Atualização: Define
gdvFuncoes.EditIndex = -1, chamaCarregarGrid()eupnGridFuncoes.Update(). - Tratamento de Erro: Captura
Exceptione chamaExibirMensagemErro(ex).
gdvFuncoes_OnRowCancelingEdit(object sender, GridViewCancelEditEventArgs e):
- Define
gdvFuncoes.EditIndex = -1. - Chama
CarregarGrid().
6.5. Excluir Função Gratificada
gdvFuncoes_OnRowDeleting(object sender, GridViewDeleteEventArgs e):
- Obtém o
idda função exclusiva doDataKeyda linha. - Validação: Chama
FuncaoExclusiva.VerificarEmpregadosFuncaoExclusiva(id, false). - Se houver empregados ativos, exibe
MensagemErro._310403. - Caso contrário, chama
FuncaoExclusiva.Inativar(id). - Feedback: Exibe
MensagemAviso._100008. - Atualização: Chama
CarregarGrid(). - Tratamento de Erro: Captura
Exceptione chamaExibirMensagemErro(ex).
6.6. Copiar Funções
btnCopiarFuncoes_OnClick(object sender, EventArgs e):
- Chama
mpeCopiarFuncoes.Show()para exibir a modal.
imbFecharCopiarFuncoes_OnClick(object sender, EventArgs e):
- Chama
ucCopiarFuncao.LimparCampos(). - Chama
mpeCopiarFuncoes.Hide()para ocultar a modal.
6.7. Limpar Campos
btnLimpar_OnClick(object sender, EventArgs e):
- Redireciona para a própria tela (
~/FuncaoGratificadaContratoCadastro.aspx), efetivamente limpando todos os campos e redefinindo o estado.
6.8. Voltar
btnVoltar_OnClick(object sender, EventArgs e):
- Redireciona para
MenuMaisOpcoes.aspx?ID=U.
6.9. Relatório
btnRelatorio_OnClick(object sender, EventArgs e):
- Armazena
Enumeradores.PluginEntradaRelatorio.RelatorioFuncoesGratificadas.GetHashCode()naSessioncom a chaveChave.Temporaria.IdRelatorioSelecionado.ToString(). - Redireciona para
~/GeradorDeRelatoriosAssincronos.aspx.
6.10. Eventos de Alteração de Valor dos Contratos
txtContratoMae_OnClick(object sender, EventArgs e):
- Se
txtContratoMae.IdContratoSelecionadotiver valor, atribui-o atxtContratoFilho.IdContratoMae.
txtContratoFilho_OnClick(object sender, EventArgs e):
- Se
txtContratoFilho.IdContratoSelecionadotiver valor: - Carrega o objeto
Contratocorrespondente. - Se
objContrato.CompleteObject()for bem-sucedido, atribuiobjContrato.ContratoMae.IdContratoatxtContratoMae.IdContratoSelecionado.
🔌 7. Integrações e Dependências
7.1. Classes BLL e Service utilizadas
-
Employer.Plataforma.Web.WebFoPag.WebApi.FolhaWebApi
-
Arquivo:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.WebFoPag\WebApi\FolhaWebApi.cs -
Métodos:
-
PostFolhaWebApi(Employer.Plataforma.BLL.Enumeradores.EnumFolhaWebApi enumFolhaWebApi, string parametros): Realiza uma requisição HTTP POST para a API da Folha de Pagamento. Utilizado para criar ou atualizar dados de funções específicas, passando o tipo de enumeração da API e os parâmetros como string. -
Employer.Plataforma.BLL.CentroServico
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroServico_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroServico_P2.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroServico_P3.cs -
Métodos:
-
LoadObject(int idfCentroServico): Carrega um objetoCentroServicoa partir do seu identificador. Usado para obter a descrição do centro de serviço para compor a mensagem de e-mail. -
Employer.Plataforma.BLL.ClasseSalarial
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ClasseSalarial_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ClasseSalarial_P2.cs -
Métodos:
-
Listar(): Retorna uma coleção de objetosClasseSalarial. Utilizado para popular a lista de sugestões de classe salarial no grid de edição. -
Employer.Plataforma.BLL.Contrato
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P2.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P3.cs -
Métodos:
-
CarregarContratoCentroResultado(int idfEmpresa, out Contrato objContrato): Tenta carregar o contrato associado a um centro de resultado para uma empresa específica. Usado na inicialização da tela para configurar os campos de contrato. -
LoadObject(int idfContrato): Carrega um objetoContratoa partir do seu identificador. Utilizado para obter detalhes do contrato selecionado, tanto para a lógica de liberação de função quanto para a montagem do e-mail. -
CompleteObject(): Preenche propriedades relacionadas do objetoContrato, comoContratoMaeeFilialGestora. -
Employer.Plataforma.BLL.Dicionario
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Dicionario_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Dicionario_P2.cs -
Métodos:
-
RecuperaValorDicionario(Enumeradores.ItemDicionario itemDicionario): Recupera um valor de configuração do dicionário do sistema. Usado para obter o endereço de e-mail para o qual as notificações de vinculação de função devem ser enviadas. -
Employer.Plataforma.BLL.Empresa
-
Arquivos:
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:
-
LoadObject(int idfEmpresa): Carrega um objetoEmpresaa partir do seu identificador. Utilizado para determinar o tipo de estrutura gerencial da empresa e configurar a visibilidade dos campos de contrato. -
CompleteObject(): Preenche propriedades relacionadas do objetoEmpresa. -
Employer.Plataforma.BLL.Funcao
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Funcao_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Funcao_P2.cs -
Métodos:
-
LoadObject(int idfFuncao): Carrega um objetoFuncaoa partir do seu identificador. Usado para obter detalhes da função selecionada para a lógica de liberação e montagem do e-mail. -
CompleteObject(): Preenche propriedades relacionadas do objetoFuncao, comoCBO. -
Employer.Plataforma.BLL.FuncaoEspecifica
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FuncaoEspecifica_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FuncaoEspecifica_P2.cs -
Métodos:
-
CarregarPorFuncao(int idfFuncao, out FuncaoEspecifica objFuncaoEspecifica): Tenta carregar um objetoFuncaoEspecificaassociado a umidfFuncao. Essencial para verificar se uma função já possui uma especificação antes de tentar criá-la via API. -
Employer.Plataforma.BLL.FuncaoExclusiva
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FuncaoExclusiva_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FuncaoExclusiva_P2.cs -
Métodos:
-
Inativar(int idfFuncaoExclusiva): Inativa logicamente uma função exclusiva. Chamado ao excluir uma linha do grid. -
ListarGratificadasPorContratoDt(string desPesquisa, int? idfFuncao, Contrato objContrato, string desColunaOrdenacao, string desDirecaoOrdenacao, int numPagina, int numRegistrosPagina, out int numTotalRegistros): Retorna umIDataReadercom as funções gratificadas vinculadas a um contrato, com opções de filtro, ordenação e paginação. Utilizado para popular o grid. -
LoadObject(int idfFuncaoExclusiva): Carrega um objetoFuncaoExclusivaa partir do seu identificador. Usado para obter os dados de uma função exclusiva para edição no grid. -
Salvar(Contrato objContrato, FuncaoEspecifica objFuncaoEspecifica, Usuario objUsuario): Salva uma nova função exclusiva para um contrato filho. -
SalvarParaContratoMae(Contrato objContrato, FuncaoEspecifica objFuncaoEspecifica, Usuario objUsuario): Salva uma nova função exclusiva para um contrato mãe. -
VerificarEmpregadosFuncaoExclusiva(int idfFuncaoExclusiva, bool flgAtivo): Verifica se existem empregados vinculados a uma função exclusiva, podendo filtrar por status ativo. Usado como validação antes de inativar uma função. -
Save(): Persiste as alterações de um objetoFuncaoExclusivaexistente. -
Employer.Plataforma.Web.Code.UIHelper
-
Arquivo:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.Code\UIHelper.cs -
Métodos:
-
AjustarString(string texto): Realiza ajustes em uma string. Usado para formatar o valor do ambiente na mensagem de e-mail. -
CarregarGridView(EmployerGrid gridView, IDataReader dataReader, int totalRegistros): Popula umEmployerGridcom dados de umIDataReadere informa o total de registros para paginação. Usado para carregar e limpar o grid. -
GetIndiceColunaOrdenar(EmployerGrid gridView, string colunaOrdenada): Retorna o índice da coluna que está sendo usada para ordenação no grid. -
SetImagemOrdenacao(int sortColumnIndex, GridViewRow row, string sortDirection): Adiciona uma imagem indicando a direção da ordenação (ascendente/descendente) no cabeçalho da coluna do grid. -
Employer.Plataforma.BLL.Usuario
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P2.cs -
Métodos:
-
CarregarPermissoes(Usuario objUsuario, Enumeradores.CategoriaPermissao categoriaPermissao): Retorna uma lista de IDs de permissões que o usuário possui para uma categoria específica. Utilizado para controlar o acesso e a funcionalidade da tela. -
LoadObject(int idfUsuario): Carrega um objetoUsuarioa partir do seu identificador. Usado para obter informações do usuário logado para a montagem do e-mail.
7.2. Stored Procedures chamadas
-
SP_FUNCAO_EXCLUSIVA_LISTAR_GRATIFICADAS_POR_CONTRATO
-
Arquivo BLL:
FuncaoExclusiva_P1.cs -
Parâmetros SQL:
@Des_Pesquisa,@Idf_Funcao,@Idf_Contrato,@Des_Coluna_Ordenacao,@Des_Direcao_Ordenacao,@Num_Pagina,@Num_Registros_Pagina,@Num_Total_Registros(output) -
Propósito: Retorna uma lista paginada e ordenada de funções gratificadas vinculadas a um contrato, permitindo filtros por descrição de pesquisa e ID de função.
-
SP_FUNCAO_ESPECIFICA_CARREGAR_POR_FUNCAO
-
Arquivo BLL:
FuncaoEspecifica_P1.cs -
Parâmetros SQL:
@Idf_Funcao -
Propósito: Carrega os detalhes de uma função específica a partir do ID da função.
-
SP_FUNCAO_EXCLUSIVA_SALVAR_PARA_CONTRATO_MAE
-
Arquivo BLL:
FuncaoExclusiva_P1.cs -
Parâmetros SQL:
@Idf_Contrato,@Idf_Funcao_Especifica,@Idf_Usuario_Cadastro -
Propósito: Insere ou atualiza uma função exclusiva associada a um contrato mãe.
-
SP_FUNCAO_EXCLUSIVA_SALVAR
-
Arquivo BLL:
FuncaoExclusiva_P1.cs -
Parâmetros SQL:
@Idf_Contrato,@Idf_Funcao_Especifica,@Idf_Usuario_Cadastro -
Propósito: Insere ou atualiza uma função exclusiva associada a um contrato (filho).
-
SP_FUNCAO_EXCLUSIVA_INATIVAR
-
Arquivo BLL:
FuncaoExclusiva_P1.cs -
Parâmetros SQL:
@Idf_Funcao_Exclusiva -
Propósito: Altera o status de uma função exclusiva para inativa.
-
SP_FUNCAO_EXCLUSIVA_VERIFICAR_EMPREGADOS
-
Arquivo BLL:
FuncaoExclusiva_P1.cs -
Parâmetros SQL:
@Idf_Funcao_Exclusiva,@Flg_Ativo -
Propósito: Verifica a existência de empregados vinculados a uma função exclusiva, podendo filtrar por status de atividade.
-
SP_FUNCAO_EXCLUSIVA_SAVE
-
Arquivo BLL:
FuncaoExclusiva_P1.cs -
Parâmetros SQL:
@Idf_Funcao_Exclusiva,@Des_Cargo,@Des_Categoria,@Idf_Classe_Salarial,@Vlr_Piso,@Vlr_Teto -
Propósito: Atualiza as informações de cargo, categoria, classe salarial, piso e teto de uma função exclusiva.
-
SP_CLASSE_SALARIAL_LISTAR
-
Arquivo BLL:
ClasseSalarial_P1.cs -
Parâmetros SQL: (Nenhum parâmetro explícito no método
Listar(), mas pode haver filtros internos) -
Propósito: Retorna uma lista de todas as classes salariais cadastradas.
-
SP_EMPRESA_CARREGAR
-
Arquivo BLL:
Empresa_P1.cs -
Parâmetros SQL:
@Idf_Empresa -
Propósito: Carrega os dados de uma empresa específica.
-
SP_CONTRATO_CARREGAR
-
Arquivo BLL:
Contrato_P1.cs -
Parâmetros SQL:
@Idf_Contrato -
Propósito: Carrega os dados de um contrato específico.
-
SP_CONTRATO_CARREGAR_CENTRO_RESULTADO
-
Arquivo BLL:
Contrato_P1.cs -
Parâmetros SQL:
@Idf_Empresa -
Propósito: Carrega o contrato principal associado a um centro de resultado para uma dada empresa.
-
SP_FUNCAO_CARREGAR
-
Arquivo BLL:
Funcao_P1.cs -
Parâmetros SQL:
@Idf_Funcao -
Propósito: Carrega os dados de uma função específica.
-
SP_DICIONARIO_RECUPERA_VALOR
-
Arquivo BLL:
Dicionario_P1.cs -
Parâmetros SQL:
@Idf_Item_Dicionario -
Propósito: Recupera o valor de um item configurável do dicionário do sistema.
-
SP_USUARIO_CARREGAR_PERMISSOES
-
Arquivo BLL:
Usuario_P1.cs -
Parâmetros SQL:
@Idf_Usuario,@Idf_Categoria_Permissao -
Propósito: Retorna as permissões de um usuário para uma categoria de permissão específica.
-
SP_CENTRO_SERVICO_CARREGAR
-
Arquivo BLL:
CentroServico_P1.cs -
Parâmetros SQL:
@Idf_Centro_Servico -
Propósito: Carrega os dados de um centro de serviço específico.
7.3. UserControls incluídos (.ascx)
- uc:CopiarFuncao
- Caminho:
~/UserControls/CopiarFuncao.ascx - ID:
ucCopiarFuncao - Tag:
<uc:CopiarFuncao> - Propriedades expostas: Não explicitamente definidas no markup, mas o code-behind da tela pai interage com ele.
- Eventos: Não explicitamente definidos no markup.
- Métodos públicos chamados pela tela pai:
LimparCampos(): Chamado no eventoimbFecharCopiarFuncoes_OnClickpara redefinir os campos internos do UserControl.
7.4. WebServices, APIs externas, filas
-
FolhaWebApi (API Interna)
-
Tipo: API RESTful (chamada via
PostFolhaWebApi). -
Endpoint: Referenciado por
Employer.Plataforma.BLL.Enumeradores.EnumFolhaWebApi.Funcao. -
Propósito: Criar ou atualizar a função específica no sistema da Folha de Pagamento.
-
Parâmetros:
key(Id da Função),gratificada(flag indicando se é gratificada),centroServico(Código do Centro de Serviço). -
WsEnvioEmailPonteAzul.EnviaEmailClient (WebService SOAP)
-
Tipo: WebService SOAP.
-
Propósito: Enviar e-mails de notificação.
-
Método:
EnviaListEmail(List<WsEnvioEmailPonteAzul.EmailRequest> lstEmail): Envia uma lista de requisições de e-mail. -
LoginWS.loginws (WebService SOAP)
-
Tipo: WebService SOAP.
-
Propósito: Obter informações detalhadas do usuário logado (nome, e-mail) para compor a mensagem de notificação.
-
Método:
CarregarPorLogin(string numeroCPF, out LoginWS.Usuario objUsuarioWS): Carrega um objetoUsuariodo serviço de login com base no CPF.
💬 8. Mensagens ao Usuário
"Por favor corrija os seguintes erros:"(Exibido novsValidacaoquando há erros de validação)."Campo Inválido."(Mensagem genérica de formato inválido paraLocalizarContrato,LocalizarPlataformaFuncao,ControlAlfaNumerico,ValorNumericoTextBox)."Campo Contrato Mãe é Inválido."(Mensagem de formato inválido específica paratxtContratoMae)."Campo Obrigatório."(Mensagem genérica de campo obrigatório paraLocalizarContrato,LocalizarPlataformaFuncao,ControlAlfaNumerico,ListaSugestoes,ValorNumericoTextBox)."Campo Contrato Mãe é Obrigatório."(Mensagem de campo obrigatório específica paratxtContratoMae)."Campo Contrato Filho é Inválido."(Mensagem de formato inválido específica paratxtContratoFilho)."Campo Contrato Filho é Obrigatório."(Mensagem de campo obrigatório específica paratxtContratoFilho)."Campo Função Gratificada é Inválido."(Mensagem de formato inválido específica paratxtFuncao)."Campo Função gratificada é Obrigatório."(Mensagem de campo obrigatório específica paratxtFuncao)."Nenhum registro encontrado."(Exibido nogdvFuncoesquando não há dados).MensagemConfirmacao._200001:"Deseja realmente excluir este registro?"(Mensagem de confirmação para exclusão de item no grid).MensagemErro._310405: Exibida quando nenhum contrato (mãe ou filho) é selecionado ao tentar liberar a função.MensagemErro._310402: Exibida quando nenhuma função é selecionada ao tentar liberar a função.MensagemErro._310406: Exibida se a função específica não puder ser carregada após a tentativa de criação via API.MensagemAviso._100001: Mensagem de aviso genérica de sucesso (ex: “Operação realizada com sucesso.”).MensagemErro._310403: Exibida quando se tenta inativar uma função exclusiva que possui empregados ativos vinculados.MensagemAviso._100008: Mensagem de aviso de sucesso para inativação de registro."Erro ao montar mensagem - "+ex.Message: Mensagem de erro exibida se ocorrer uma exceção durante a montagem do corpo do e-mail.
🔐 9. Permissões e Perfis
BLL.Enumeradores.Permissoes.FuncaoGratificadaContrato.VisualizarFuncaoContrato:- Controle: Acesso à tela.
- Regra: Se o usuário não possuir esta permissão, ele é redirecionado para a página de acesso negado (
Configuracao.UrlAcessoNegado). BLL.Enumeradores.Permissoes.FuncaoGratificadaContrato.SolicitarFuncao:- Controle: Habilitação do campo
txtFuncao. - Regra: Se o usuário não possuir esta permissão, o campo
txtFuncaoé desabilitado (txtFuncao.Enabled = false). BLL.Enumeradores.Permissoes.FuncaoGratificadaContrato.SalvarFuncaoContrato:- Controle: Edição e habilitação do campo
txtFuncao. - Regra: Se o usuário não possuir esta permissão, o campo
txtFuncaoé definido como somente leitura (txtFuncao.ReadOnly = true) e desabilitado (txtFuncao.Enabled = false). Esta permissão sobrepõe aSolicitarFuncaoem relação ao campotxtFuncao.
🔎 10. Aprofundamento — Detalhes Internos de Métodos
Os arquivos foram lidos. Agora, vou processar o conteúdo para gerar a documentação detalhada para cada classe, focando em métodos públicos, lógica interna, stored procedures e validações.
CentroServico
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroServico_P1.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroServico_P2.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroServico_P3.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
CentroServico | public CentroServico() | Construtor padrão da classe. |
CentroServico | public CentroServico(int idCentroServico) | Construtor que inicializa a instância com um ID existente, marcando-a como persistida. |
Save | public void Save() | Salva a instância atual de CentroServico no banco de dados (insere se não persistida, atualiza se modificada). |
Save | public void Save(SqlTransaction trans) | Salva a instância atual de CentroServico no banco de dados dentro de uma transação. |
Delete | public static void Delete(int idCentroServico) | Exclui um registro de CentroServico do banco de dados pelo ID. |
Delete | public static void Delete(int idCentroServico, SqlTransaction trans) | Exclui um registro de CentroServico do banco de dados pelo ID, dentro de uma transação. |
Delete | public static void Delete(List<int> idCentroServico) | Exclui múltiplos registros de CentroServico do banco de dados por uma lista de IDs. |
LoadDataReader | public static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Retorna um IDataReader com uma consulta paginada e ordenada de CentroServico. |
LoadObject | public static CentroServico LoadObject(int idCentroServico) | Retorna uma instância de CentroServico a partir do banco de dados pelo ID. |
LoadObject | public static CentroServico LoadObject(int idCentroServico, SqlTransaction trans) | Retorna uma instância de CentroServico a partir do banco de dados pelo ID, dentro de uma transação. |
CompleteObject | public bool CompleteObject() | Completa as propriedades da instância atual de CentroServico a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa as propriedades da instância atual de CentroServico a partir do banco de dados, dentro de uma transação. |
VerificaFlagRoboNotificacao | public static bool VerificaFlagRoboNotificacao(string Des_Centro_Servico, bool Flg_Robo_SMS, bool Flg_Robo_Email) | Verifica se as flags de robô SMS ou Email estão ativas para um determinado Centro de Serviço. |
ListarTiposEstruturaGerencial | public static List<int> ListarTiposEstruturaGerencial(int idUsuario) | Lista os tipos de estrutura gerencial aos quais um usuário tem acesso. |
ListarPorNomeParcial | public static Dictionary<int, String> ListarPorNomeParcial(string valor, int count) | Lista Centros de Serviço por nome parcial, retornando um dicionário com ID e descrição. |
Listar | public static IEnumerable<CentroServico> Listar() | Retorna uma coleção de todos os Centros de Serviço que possuem as flags Flg_Robo_SMS ou Flg_Robo_Email ativas. |
CarregarPorNome | public static bool CarregarPorNome(string nome, out CentroServico objCentroServico) | Carrega uma instância de CentroServico pelo nome, excluindo inativos. |
CarregarCsEmpresaDt | public static DataTable CarregarCsEmpresaDt(int numCNPJ, string razaoSocial) | Carrega um DataTable de Centros de Serviço relacionados a uma empresa por CNPJ e razão social. |
CarregarCsPessoaFisicaDt | public static DataTable CarregarCsPessoaFisicaDt(int numCpf, string nomePessoa) | Carrega um DataTable de Centros de Serviço relacionados a uma pessoa física por CPF e nome. |
CarregarPorNomeInclusiveInativos | public static bool CarregarPorNomeInclusiveInativos(string nome, out CentroServico objCentroServico) | Carrega uma instância de CentroServico pelo nome, incluindo os inativos. |
CarregarNomeCentroServico | public static string CarregarNomeCentroServico() | Retorna o nome do Centro de Serviço a partir do nome do banco de dados. |
Detalhamento de Métodos Importantes
Save()
- Lógica: Este método é responsável por persistir o estado do objeto
CentroServicono banco de dados.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate().
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert()ouUpdate().
Save(SqlTransaction trans)
- Lógica: Similar ao
Save()sem parâmetros, mas executa a operação dentro de uma transação SQL fornecida.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(trans). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate(trans).
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert(trans)ouUpdate(trans).
Delete(int idCentroServico)
- Lógica: Exclui um registro de
CentroServicodo banco de dados.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Centro_Servicocom o valor doidCentroServicofornecido. - Executa uma query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Centro_Servico WHERE Idf_Centro_Servico = @Idf_Centro_Servico @Idf_Centro_Servico(Int): Identificador do Centro de Serviço a ser excluído.
Delete(int idCentroServico, SqlTransaction trans)
- Lógica: Exclui um registro de
CentroServicodo banco de dados dentro de uma transação.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Centro_Servicocom o valor doidCentroServicofornecido. - Executa uma query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuerye a transação fornecida.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Centro_Servico WHERE Idf_Centro_Servico = @Idf_Centro_Servico @Idf_Centro_Servico(Int): Identificador do Centro de Serviço a ser excluído.
Delete(List idCentroServico)
- Lógica: Exclui múltiplos registros de
CentroServicodo banco de dados.
- Cria uma lista de
SqlParametere uma stringqueryinicial. - Itera sobre a lista
idCentroServico:
- Para cada ID, cria um parâmetro
@parmXe o adiciona àquerye à lista de parâmetros. - Adiciona o valor do ID ao respectivo parâmetro.
- Completa a
querycom a cláusulaIN. - Executa a query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Centro_Servico WHERE Idf_Centro_Servico IN (@parm0, @parm1, ...) @parmX(Int): Identificadores dos Centros de Serviço a serem excluídos.
LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica: Prepara e executa uma consulta paginada e ordenada para retornar dados de
CentroServico.
- Calcula os valores de
inicioefimpara a paginação com base empaginaCorrenteetamanhoPagina. - Constrói a string SQL
SPSELECTPAGpara selecionar os dados comROW_NUMBER()para ordenação e paginação. - Constrói a string SQL
SPSELECTCOUNTpara contar o total de registros. - Executa
SPSELECTCOUNTpara obter ototalRegistros. - Executa
SPSELECTPAGpara retornar oIDataReadercom os dados paginados.
- Stored Procedures chamadas:
SELECT COUNT(*) FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Cen.Idf_Centro_Servico, ... FROM plataforma.TAB_Centro_Servico Cen) AS temp@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Cen.Idf_Centro_Servico, ... FROM plataforma.TAB_Centro_Servico Cen) AS temp WHERE RowId BETWEEN @inicio AND @fim@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).@inicio(Int): Início do range de linhas para paginação.@fim(Int): Fim do range de linhas para paginação.
LoadObject(int idCentroServico)
- Lógica: Carrega um objeto
CentroServicopelo seu ID.
- Chama o método
LoadDataReader(idCentroServico)para obter umIDataReader. - Cria uma nova instância de
CentroServico. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idCentroServico).
LoadObject(int idCentroServico, SqlTransaction trans)
- Lógica: Similar ao
LoadObject(int idCentroServico), mas executa a operação dentro de uma transação SQL fornecida.
- Chama o método
LoadDataReader(idCentroServico, trans)para obter umIDataReader. - Cria uma nova instância de
CentroServico. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idCentroServico, SqlTransaction trans).
CompleteObject()
- Lógica: Preenche as propriedades da instância atual de
CentroServicoa partir do banco de dados, usando o_idCentroServicojá existente na instância.
- Chama
LoadDataReader(this._idCentroServico)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idCentroServico).
CompleteObject(SqlTransaction trans)
- Lógica: Similar ao
CompleteObject(), mas executa a operação dentro de uma transação SQL fornecida.
- Chama
LoadDataReader(this._idCentroServico, trans)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idCentroServico, SqlTransaction trans).
VerificaFlagRoboNotificacao(string Des_Centro_Servico, bool Flg_Robo_SMS, bool Flg_Robo_Email)
- Lógica: Verifica se as flags de robô SMS ou Email estão ativas para um Centro de Serviço específico.
- Cria uma lista de
SqlParametere adiciona@Des_Centro_Servico. - Executa a query
SPCONSULTAFLAGNOTIFICACAO. - Itera sobre os resultados do
SqlDataReader:
- Se
Flg_Robo_SMSfortruee a colunaFlg_Robo_SMSdo resultado fortrue, defineretornocomotrue. - Se
Flg_Robo_Emailfortruee a colunaFlg_Robo_Emaildo resultado fortrue, defineretornocomotrue.
- Retorna
retorno.
- Stored Procedures chamadas:
SELECT Flg_Robo_SMS, Flg_Robo_Email FROM plataforma.TAB_Centro_Servico cs WHERE cs.Des_Centro_Servico = @Des_Centro_Servico @Des_Centro_Servico(VarChar): Descrição do Centro de Serviço.
ListarTiposEstruturaGerencial(int idUsuario)
- Lógica: Retorna uma lista de IDs de tipos de estrutura gerencial associados a um usuário.
- Cria uma lista de
SqlParametere adiciona@Idf_Usuario. - Define uma query SQL que utiliza a função de tabela
TAB_SF_Usuario_Acessopara filtrar empresas e filiais, e então seleciona osIdf_Tipo_Estrutura_Gerencial. - Executa a query e preenche uma
List<int>com os IDs encontrados. - Retorna a lista.
- Stored Procedures chamadas:
SELECT DISTINCT ISNULL(Idf_Tipo_Estrutura_Gerencial, 1) FROM (SELECT DISTINCT Idf_Empresa FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL)) AS UA INNER JOIN TAB_Filial F ON UA.Idf_Empresa = F.Idf_Empresa AND F.flg_Matriz = 1 INNER JOIN TAB_Empresa E ON E.Idf_Empresa = F.Idf_Empresa WHERE F.Flg_Inativo = 0 AND E.Flg_Inativo = 0 @Idf_Usuario(Int): Identificador do usuário.
ListarPorNomeParcial(string valor, int count)
- Lógica: Lista Centros de Serviço que correspondem a um nome parcial, limitando o número de resultados.
- Cria uma lista de
SqlParametere adiciona@Valor(para o nome parcial) e@Count(para o limite de resultados). - Executa a query
SPSELNOMEPARCIALCOUNT. - Itera sobre o
IDataReadere preenche umDictionary<int, string>comIdf_Centro_ServicoeDes_Centro_Servico. - Retorna o dicionário.
- Stored Procedures chamadas:
SELECT TOP (@Count) * FROM plataforma.TAB_Centro_Servico Cse WHERE Cse.Flg_Inativo = 0 AND Des_Centro_Servico LIKE '%' + @Valor + '%' ORDER BY Des_Centro_Servico @Count(Int): Número máximo de registros a retornar.@Valor(VarChar): Valor parcial para pesquisa na descrição do Centro de Serviço.
Listar()
- Lógica: Retorna uma coleção de
CentroServicoque possuem as flags de robô SMS ou Email ativas.
- Cria uma lista vazia de
SqlParameter. - Executa a query
SPSELNOMENOTIFICACAO. - Itera sobre o
IDataReader:
- Para cada registro, cria uma nova instância de
CentroServico. - Preenche os atributos da instância diretamente do
IDataReader. - Define
_persistedcomotruee_modifiedcomofalse. - Retorna a instância usando
yield return.
- Stored Procedures chamadas:
SELECT * FROM plataforma.TAB_Centro_Servico WHERE Flg_Robo_SMS = 1 OR Flg_Robo_Email = 1(em ambiente de produção) ouSELECT * FROM plataforma.TAB_Centro_Servico(em DEBUG).
CarregarPorNome(string nome, out CentroServico objCentroServico)
- Lógica: Tenta carregar um objeto
CentroServicopelo nome, considerando apenas os ativos.
- Chama o método
ListarPorNome(nome)(privado) para obter umIDataReader. - Cria uma nova instância de
CentroServico. - Chama
SetInstancepara preencher a instância. - Se
SetInstanceretornartrue, defineobjCentroServicoe retornatrue. - Caso contrário, define
objCentroServicocomonulle retornafalse.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarPorNome(string nome).
CarregarCsEmpresaDt(int numCNPJ, string razaoSocial)
- Lógica: Carrega um
DataTablecom Centros de Serviço associados a uma empresa.
- Cria uma lista de
SqlParametere adiciona@Num_cnpje@raz_social. - Define os valores dos parâmetros.
- Adiciona “Plataforma” à sessão com a chave “CentroServico”.
- Executa a stored procedure
SPEMPRESACENTROSERVICOe retorna a primeira tabela doDataSetresultante.
- Stored Procedures chamadas:
TAB_SP_Empresa_Centro_Servico @Num_cnpj(Int): CNPJ da empresa.@raz_social(VarChar): Razão social da empresa.
CarregarCsPessoaFisicaDt(int numCpf, string nomePessoa)
- Lógica: Carrega um
DataTablecom Centros de Serviço associados a uma pessoa física.
- Cria uma lista de
SqlParametere adiciona@num_cpfe@nme_pessoa. - Define os valores dos parâmetros.
- Adiciona “Plataforma” à sessão com a chave “CentroServico”.
- Executa a stored procedure
SPPESSOAFISICACENTROSERVICOe retorna a primeira tabela doDataSetresultante.
- Stored Procedures chamadas:
TAB_SP_Pessoa_Fisica_Centro_Servico @num_cpf(Int): CPF da pessoa física.@nme_pessoa(VarChar): Nome da pessoa.
CarregarPorNomeInclusiveInativos(string nome, out CentroServico objCentroServico)
- Lógica: Tenta carregar um objeto
CentroServicopelo nome, incluindo os inativos.
- Cria uma lista de
SqlParametere adiciona@Des_Centro_Servico. - Define o valor do parâmetro.
- Executa a query
SPSELNOMETODOS. - Cria uma nova instância de
CentroServico. - Chama
SetInstancepara preencher a instância. - Se
SetInstanceretornartrue, defineobjCentroServicoe retornatrue. - Caso contrário, define
objCentroServicocomonulle retornafalse.
- Stored Procedures chamadas:
SELECT * FROM plataforma.TAB_Centro_Servico Cse WHERE Des_Centro_Servico LIKE @Des_Centro_Servico @Des_Centro_Servico(VarChar): Descrição do Centro de Serviço.
CarregarNomeCentroServico()
- Lógica: Recupera o nome do Centro de Serviço a partir do nome do banco de dados.
- Define uma query SQL que extrai o nome do banco de dados e remove prefixos como “plataforma_”, “_hom”, “_new”.
- Executa a query usando
DataAccessLayer.ExecuteScalar. - Retorna o nome do Centro de Serviço como string.
- Stored Procedures chamadas:
SELECT (REPLACE(REPLACE(REPLACE(DB_NAME(), 'plataforma_', ''), '_hom', ''),'_new','')) AS CentroServico
Stored Procedures
| Nome | Parâmetros | Propósito |
|---|---|---|
INSERT INTO plataforma.TAB_Centro_Servico | @Idf_Centro_Servico, @Des_Centro_Servico, @Flg_Inativo, @Dta_Cadastro, @Flg_Robo_SMS, @Flg_Robo_Email, @Des_String_Conexao, @Flg_Alerta, @Flg_Integrar_BNE | Insere um novo registro na tabela plataforma.TAB_Centro_Servico. |
UPDATE plataforma.TAB_Centro_Servico | @Des_Centro_Servico, @Flg_Inativo, @Dta_Cadastro, @Flg_Robo_SMS, @Flg_Robo_Email, @Des_String_Conexao, @Flg_Alerta, @Flg_Integrar_BNE, @Idf_Centro_Servico | Atualiza um registro existente na tabela plataforma.TAB_Centro_Servico. |
DELETE FROM plataforma.TAB_Centro_Servico | @Idf_Centro_Servico | Exclui um registro da tabela plataforma.TAB_Centro_Servico pelo ID. |
SELECT * FROM plataforma.TAB_Centro_Servico | @Idf_Centro_Servico | Seleciona um registro da tabela plataforma.TAB_Centro_Servico pelo ID. |
SELECT Flg_Robo_SMS, Flg_Robo_Email FROM plataforma.TAB_Centro_Servico | @Des_Centro_Servico | Seleciona as flags de robô SMS e Email para um Centro de Serviço específico. |
SELECT DISTINCT ISNULL(Idf_Tipo_Estrutura_Gerencial, 1) FROM (SELECT DISTINCT Idf_Empresa FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL)) AS UA INNER JOIN TAB_Filial F ON UA.Idf_Empresa = F.Idf_Empresa AND F.flg_Matriz = 1 INNER JOIN TAB_Empresa E ON E.Idf_Empresa = F.Idf_Empresa WHERE F.Flg_Inativo = 0 AND E.Flg_Inativo = 0 | @Idf_Usuario | Retorna os tipos de estrutura gerencial que um usuário pode acessar. |
SELECT TOP (@Count) * FROM plataforma.TAB_Centro_Servico | @Count, @Valor | Seleciona Centros de Serviço por nome parcial, limitado por count. |
SELECT * FROM plataforma.TAB_Centro_Servico | @Des_Centro_Servico | Seleciona Centros de Serviço por nome exato ou parcial (usado em ListarPorNome e CarregarPorNomeInclusiveInativos). |
SELECT * FROM plataforma.TAB_Centro_Servico | (Nenhum) | Seleciona todos os Centros de Serviço (usado em Listar()). |
TAB_SP_Empresa_Centro_Servico | @Num_cnpj, @raz_social | Stored procedure para carregar Centros de Serviço por empresa. |
TAB_SP_Pessoa_Fisica_Centro_Servico | @num_cpf, @nme_pessoa | Stored procedure para carregar Centros de Serviço por pessoa física. |
SELECT (REPLACE(REPLACE(REPLACE(DB_NAME(), 'plataforma_', ''), '_hom', ''),'_new','')) AS CentroServico | (Nenhum) | Retorna o nome do Centro de Serviço a partir do nome do banco de dados. |
ClasseSalarial
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ClasseSalarial_P1.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ClasseSalarial_P2.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
ClasseSalarial | public ClasseSalarial() | Construtor padrão da classe. |
ClasseSalarial | public ClasseSalarial(int idClasseSalarial) | Construtor que inicializa a instância com um ID existente, marcando-a como persistida. |
Save | public void Save() | Salva a instância atual de ClasseSalarial no banco de dados (insere se não persistida, atualiza se modificada). |
Save | public void Save(SqlTransaction trans) | Salva a instância atual de ClasseSalarial no banco de dados dentro de uma transação. |
Delete | public static void Delete(int idClasseSalarial) | Exclui um registro de ClasseSalarial do banco de dados pelo ID. |
Delete | public static void Delete(int idClasseSalarial, SqlTransaction trans) | Exclui um registro de ClasseSalarial do banco de dados pelo ID, dentro de uma transação. |
Delete | public static void Delete(List<int> idClasseSalarial) | Exclui múltiplos registros de ClasseSalarial do banco de dados por uma lista de IDs. |
LoadDataReader | public static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Retorna um IDataReader com uma consulta paginada e ordenada de ClasseSalarial. |
LoadObject | public static ClasseSalarial LoadObject(int idClasseSalarial) | Retorna uma instância de ClasseSalarial a partir do banco de dados pelo ID. |
LoadObject | public static ClasseSalarial LoadObject(int idClasseSalarial, SqlTransaction trans) | Retorna uma instância de ClasseSalarial a partir do banco de dados pelo ID, dentro de uma transação. |
CompleteObject | public bool CompleteObject() | Completa as propriedades da instância atual de ClasseSalarial a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa as propriedades da instância atual de ClasseSalarial a partir do banco de dados, dentro de uma transação. |
Listar | public static Dictionary<string, string> Listar() | Retorna um dicionário de classes salariais, onde a chave é o ID e o valor é a faixa salarial formatada (Piso - Teto). |
AjustarFatorConversao | public static void AjustarFatorConversao(SqlTransaction trans, decimal fatorConversao) | Recalcula e atualiza os valores de piso, teto e salário médio para todas as classes salariais com base em um fator de conversão. |
ListarDictionaryInt | public static Dictionary<int, string> ListarDictionaryInt() | Retorna um dicionário de classes salariais, onde a chave é o ID (int) e o valor é a faixa salarial formatada (Piso - Teto) com símbolo monetário. |
Detalhamento de Métodos Importantes
Save()
- Lógica: Este método é responsável por persistir o estado do objeto
ClasseSalarialno banco de dados.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate().
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert()ouUpdate().
Save(SqlTransaction trans)
- Lógica: Similar ao
Save()sem parâmetros, mas executa a operação dentro de uma transação SQL fornecida.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(trans). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate(trans).
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert(trans)ouUpdate(trans).
Delete(int idClasseSalarial)
- Lógica: Exclui um registro de
ClasseSalarialdo banco de dados.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Classe_Salarialcom o valor doidClasseSalarialfornecido. - Executa uma query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Classe_Salarial WHERE Idf_Classe_Salarial = @Idf_Classe_Salarial @Idf_Classe_Salarial(Int): Identificador da Classe Salarial a ser excluída.
Delete(int idClasseSalarial, SqlTransaction trans)
- Lógica: Exclui um registro de
ClasseSalarialdo banco de dados dentro de uma transação.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Classe_Salarialcom o valor doidClasseSalarialfornecido. - Executa uma query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuerye a transação fornecida.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Classe_Salarial WHERE Idf_Classe_Salarial = @Idf_Classe_Salarial @Idf_Classe_Salarial(Int): Identificador da Classe Salarial a ser excluída.
Delete(List idClasseSalarial)
- Lógica: Exclui múltiplos registros de
ClasseSalarialdo banco de dados.
- Cria uma lista de
SqlParametere uma stringqueryinicial. - Itera sobre a lista
idClasseSalarial:
- Para cada ID, cria um parâmetro
@parmXe o adiciona àquerye à lista de parâmetros. - Adiciona o valor do ID ao respectivo parâmetro.
- Completa a
querycom a cláusulaIN. - Executa a query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Classe_Salarial WHERE Idf_Classe_Salarial IN (@parm0, @parm1, ...) @parmX(Int): Identificadores das Classes Salariais a serem excluídas.
LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica: Prepara e executa uma consulta paginada e ordenada para retornar dados de
ClasseSalarial.
- Calcula os valores de
inicioefimpara a paginação com base empaginaCorrenteetamanhoPagina. - Constrói a string SQL
SPSELECTPAGpara selecionar os dados comROW_NUMBER()para ordenação e paginação. - Constrói a string SQL
SPSELECTCOUNTpara contar o total de registros. - Executa
SPSELECTCOUNTpara obter ototalRegistros. - Executa
SPSELECTPAGpara retornar oIDataReadercom os dados paginados.
- Stored Procedures chamadas:
SELECT COUNT(*) FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Cla.Idf_Classe_Salarial, ... FROM plataforma.TAB_Classe_Salarial Cla) AS temp@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Cla.Idf_Classe_Salarial, ... FROM plataforma.TAB_Classe_Salarial Cla) AS temp WHERE RowId BETWEEN @inicio AND @fim@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).@inicio(Int): Início do range de linhas para paginação.@fim(Int): Fim do range de linhas para paginação.
LoadObject(int idClasseSalarial)
- Lógica: Carrega um objeto
ClasseSalarialpelo seu ID.
- Chama o método
LoadDataReader(idClasseSalarial)para obter umIDataReader. - Cria uma nova instância de
ClasseSalarial. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idClasseSalarial).
LoadObject(int idClasseSalarial, SqlTransaction trans)
- Lógica: Similar ao
LoadObject(int idClasseSalarial), mas executa a operação dentro de uma transação SQL fornecida.
- Chama o método
LoadDataReader(idClasseSalarial, trans)para obter umIDataReader. - Cria uma nova instância de
ClasseSalarial. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idClasseSalarial, SqlTransaction trans).
CompleteObject()
- Lógica: Preenche as propriedades da instância atual de
ClasseSalariala partir do banco de dados, usando o_idClasseSalarialjá existente na instância.
- Chama
LoadDataReader(this._idClasseSalarial)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idClasseSalarial).
CompleteObject(SqlTransaction trans)
- Lógica: Similar ao
CompleteObject(), mas executa a operação dentro de uma transação SQL fornecida.
- Chama
LoadDataReader(this._idClasseSalarial, trans)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idClasseSalarial, SqlTransaction trans).
Listar()
- Lógica: Retorna um dicionário de todas as classes salariais.
- Cria um
Dictionary<string, string>vazio. - Executa a query
SPSELECTpara obter todos os registros deClasseSalarial. - Itera sobre o
IDataReader:
- Adiciona ao dicionário o
Idf_Classe_Salarialcomo chave (string) e a concatenação formatada deVlr_PisoeVlr_Tetocomo valor.
- Retorna o dicionário.
- Stored Procedures chamadas:
SELECT * FROM plataforma.TAB_Classe_Salarial
AjustarFatorConversao(SqlTransaction trans, decimal fatorConversao)
- Lógica: Recalcula e atualiza os valores de piso, teto e salário médio para todas as classes salariais.
- Cria um
DataTabledtNivelSalarialcom colunas para “Faixa” e letras de “A” a “J”. - Preenche o
dtNivelSalarialcom 20 linhas, simulando faixas salariais.
- A coluna “A” da primeira linha recebe o
fatorConversaoarredondado. - As demais células são calculadas com base na célula anterior da mesma linha, multiplicando por 1.05.
- A coluna “A” das linhas subsequentes recebe o valor da coluna “F” da linha anterior.
- Itera de 1 a 20 (para cada classe salarial):
- Carrega o objeto
ClasseSalarialcorrespondente usandoClasseSalarial.LoadObject(i+1). - Atualiza
ValorPisocom o valor da coluna “A” dodtNivelSalarial. - Atualiza
ValorTetocom o valor da coluna “J” da linha atual ou da próxima linha dodtNivelSalarial. - Calcula
ValorSalarioMediocomo a média deValorPisoeValorTeto. - Salva o objeto
ClasseSalarialatualizado usandoobjClasseSalarial.Save(trans).
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ClasseSalarial.LoadObject(int idClasseSalarial)eobjClasseSalarial.Save(SqlTransaction trans).
ListarDictionaryInt()
- Lógica: Retorna um dicionário de todas as classes salariais com IDs inteiros.
- Cria um
Dictionary<int, string>vazio. - Executa a query
SPSELECTpara obter todos os registros deClasseSalarial. - Itera sobre o
IDataReader:
- Adiciona ao dicionário o
Idf_Classe_Salarialcomo chave (int) e a concatenação formatada deVlr_PisoeVlr_Tetocom símbolo monetário como valor.
- Retorna o dicionário.
- Stored Procedures chamadas:
SELECT * FROM plataforma.TAB_Classe_Salarial
Stored Procedures
| Nome | Parâmetros | Propósito |
|---|---|---|
INSERT INTO plataforma.TAB_Classe_Salarial | @Idf_Classe_Salarial, @Vlr_Salario_Medio, @Vlr_Piso, @Vlr_Teto, @Dta_Cadastro | Insere um novo registro na tabela plataforma.TAB_Classe_Salarial. |
UPDATE plataforma.TAB_Classe_Salarial | @Vlr_Salario_Medio, @Vlr_Piso, @Vlr_Teto, @Dta_Cadastro, @Idf_Classe_Salarial | Atualiza um registro existente na tabela plataforma.TAB_Classe_Salarial. |
DELETE FROM plataforma.TAB_Classe_Salarial | @Idf_Classe_Salarial | Exclui um registro da tabela plataforma.TAB_Classe_Salarial pelo ID. |
SELECT * FROM plataforma.TAB_Classe_Salarial | @Idf_Classe_Salarial | Seleciona um registro da tabela plataforma.TAB_Classe_Salarial pelo ID. |
SELECT * FROM plataforma.TAB_Classe_Salarial | (Nenhum) | Seleciona todos os registros da tabela plataforma.TAB_Classe_Salarial. |
SELECT TOP 1 * FROM plataforma.TAB_Classe_Salarial | (Nenhum) | Seleciona a classe salarial vigente (com Dta_Inicio_Vigencia mais recente e menor ou igual à data atual). |
Dicionario
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Dicionario_P1.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Dicionario_P2.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
Dicionario | public Dicionario() | Construtor padrão da classe. |
Dicionario | public Dicionario(int idDicionario) | Construtor que inicializa a instância com um ID existente, marcando-a como persistida. |
Save | public void Save() | Salva a instância atual de Dicionario no banco de dados (insere se não persistida, atualiza se modificada). |
Save | public void Save(SqlTransaction trans) | Salva a instância atual de Dicionario no banco de dados dentro de uma transação. |
Delete | public static void Delete(int idDicionario) | Exclui um registro de Dicionario do banco de dados pelo ID. |
Delete | public static void Delete(int idDicionario, SqlTransaction trans) | Exclui um registro de Dicionario do banco de dados pelo ID, dentro de uma transação. |
Delete | public static void Delete(List<int> idDicionario) | Exclui múltiplos registros de Dicionario do banco de dados por uma lista de IDs. |
LoadDataReader | public static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Retorna um IDataReader com uma consulta paginada e ordenada de Dicionario. |
LoadObject | public static Dicionario LoadObject(int idDicionario) | Retorna uma instância de Dicionario a partir do banco de dados pelo ID. |
LoadObject | public static Dicionario LoadObject(int idDicionario, SqlTransaction trans) | Retorna uma instância de Dicionario a partir do banco de dados pelo ID, dentro de uma transação. |
CompleteObject | public bool CompleteObject() | Completa as propriedades da instância atual de Dicionario a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa as propriedades da instância atual de Dicionario a partir do banco de dados, dentro de uma transação. |
Listar | public static List<Dicionario> Listar() | Lista todos os itens do dicionário do sistema. |
ListarItensDicionario | public static Dictionary<Enumeradores.ItemDicionario, string> ListarItensDicionario(List<Enumeradores.ItemDicionario> idsItensDicionario) | Retorna um dicionário de itens do dicionário de parâmetros do sistema, filtrados por uma lista de IDs. |
RecuperaValorDicionario | public static string RecuperaValorDicionario(Enumeradores.ItemDicionario idDicionario, SqlTransaction trans) | Recupera o valor de um item do dicionário a partir do ID, dentro de uma transação. |
RecuperaValorDicionario | public static string RecuperaValorDicionario(Enumeradores.ItemDicionario idDicionario, string valorDicionario = default(string)) | Recupera o valor de um item do dicionário a partir do ID. |
Detalhamento de Métodos Importantes
Save()
- Lógica: Este método é responsável por persistir o estado do objeto
Dicionariono banco de dados.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate().
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert()ouUpdate().
Save(SqlTransaction trans)
- Lógica: Similar ao
Save()sem parâmetros, mas executa a operação dentro de uma transação SQL fornecida.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(trans). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate(trans).
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert(trans)ouUpdate(trans).
Delete(int idDicionario)
- Lógica: Exclui um registro de
Dicionariodo banco de dados.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Dicionariocom o valor doidDicionariofornecido. - Executa uma query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Dicionario WHERE Idf_Dicionario = @Idf_Dicionario @Idf_Dicionario(Int): Identificador do item do dicionário a ser excluído.
Delete(int idDicionario, SqlTransaction trans)
- Lógica: Exclui um registro de
Dicionariodo banco de dados dentro de uma transação.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Dicionariocom o valor doidDicionariofornecido. - Executa uma query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuerye a transação fornecida.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Dicionario WHERE Idf_Dicionario = @Idf_Dicionario @Idf_Dicionario(Int): Identificador do item do dicionário a ser excluído.
Delete(List idDicionario)
- Lógica: Exclui múltiplos registros de
Dicionariodo banco de dados.
- Cria uma lista de
SqlParametere uma stringqueryinicial. - Itera sobre a lista
idDicionario:
- Para cada ID, cria um parâmetro
@parmXe o adiciona àquerye à lista de parâmetros. - Adiciona o valor do ID ao respectivo parâmetro.
- Completa a
querycom a cláusulaIN. - Executa a query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Dicionario WHERE Idf_Dicionario IN (@parm0, @parm1, ...) @parmX(Int): Identificadores dos itens do dicionário a serem excluídos.
LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica: Prepara e executa uma consulta paginada e ordenada para retornar dados de
Dicionario.
- Calcula os valores de
inicioefimpara a paginação com base empaginaCorrenteetamanhoPagina. - Constrói a string SQL
SPSELECTPAGpara selecionar os dados comROW_NUMBER()para ordenação e paginação. - Constrói a string SQL
SPSELECTCOUNTpara contar o total de registros. - Executa
SPSELECTCOUNTpara obter ototalRegistros. - Executa
SPSELECTPAGpara retornar oIDataReadercom os dados paginados.
- Stored Procedures chamadas:
SELECT COUNT(*) FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Dic.Idf_Dicionario, ... FROM plataforma.TAB_Dicionario Dic) AS temp@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Dic.Idf_Dicionario, ... FROM plataforma.TAB_Dicionario Dic) AS temp WHERE RowId BETWEEN @inicio AND @fim@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).@inicio(Int): Início do range de linhas para paginação.@fim(Int): Fim do range de linhas para paginação.
LoadObject(int idDicionario)
- Lógica: Carrega um objeto
Dicionariopelo seu ID.
- Chama o método
LoadDataReader(idDicionario)para obter umIDataReader. - Cria uma nova instância de
Dicionario. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idDicionario).
LoadObject(int idDicionario, SqlTransaction trans)
- Lógica: Similar ao
LoadObject(int idDicionario), mas executa a operação dentro de uma transação SQL fornecida.
- Chama o método
LoadDataReader(idDicionario, trans)para obter umIDataReader. - Cria uma nova instância de
Dicionario. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idDicionario, SqlTransaction trans).
CompleteObject()
- Lógica: Preenche as propriedades da instância atual de
Dicionarioa partir do banco de dados, usando o_idDicionariojá existente na instância.
- Chama
LoadDataReader(this._idDicionario)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idDicionario).
CompleteObject(SqlTransaction trans)
- Lógica: Similar ao
CompleteObject(), mas executa a operação dentro de uma transação SQL fornecida.
- Chama
LoadDataReader(this._idDicionario, trans)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idDicionario, SqlTransaction trans).
Listar()
- Lógica: Lista todos os itens do dicionário do sistema.
- Cria uma
List<Dicionario>vazia. - Executa a query
SPSELECTpara obter todos os registros deDicionario. - Itera sobre o
IDataReader:
- Cria uma nova instância de
Dicionario. - Chama
SetInstanceOpenDR(método auxiliar privado) para preencher a instância. - Adiciona a instância à lista.
- Fecha e descarta o
IDataReader. - Retorna a lista de dicionários.
- Stored Procedures chamadas:
SELECT * FROM plataforma.Tab_Dicionario
ListarItensDicionario(List<Enumeradores.ItemDicionario> idsItensDicionario)
- Lógica: Retorna um dicionário de itens do dicionário de parâmetros do sistema, filtrados por uma lista de IDs.
- Cria uma lista de
SqlParametere umDictionary<Enumeradores.ItemDicionario, string>vazio. - Constrói uma query SQL dinâmica para selecionar
Idf_Dicionario,Nme_DicionarioeVlr_Dicionarioda tabelaplataforma.TAB_Dicionario, com uma cláusulaWHERE INbaseada nosidsItensDicionariofornecidos. - Adiciona os IDs da lista como parâmetros à query.
- Executa a query e itera sobre o
IDataReader:
- Para cada registro, converte o
Idf_DicionarioparaEnumeradores.ItemDicionarioe adiciona ao dicionário de retorno junto com oVlr_Dicionario.
- Fecha e descarta o
IDataReader. - Retorna o dicionário de itens.
- Stored Procedures chamadas:
SELECT Idf_Dicionario, Nme_Dicionario, Vlr_Dicionario FROM plataforma.TAB_Dicionario WHERE Idf_Dicionario IN (@parm0, @parm1, ...) @parmX(Int): Identificadores dos itens do dicionário a serem recuperados.
RecuperaValorDicionario(Enumeradores.ItemDicionario idDicionario, SqlTransaction trans)
- Lógica: Recupera o valor de um item do dicionário a partir do ID, dentro de uma transação.
- Cria uma lista de
SqlParametere adiciona@Idf_Dicionario. - Define o valor do parâmetro com o
idDicionariofornecido. - Executa a query
SPSELECTIDusando a transação fornecida. - Se houver um registro, recupera o
Vlr_Dicionario. - Fecha e descarta o
IDataReader. - Retorna o valor do dicionário.
- Stored Procedures chamadas:
SELECT * FROM plataforma.TAB_Dicionario WHERE Idf_Dicionario = @Idf_Dicionario @Idf_Dicionario(Int): Identificador do item do dicionário.
RecuperaValorDicionario(Enumeradores.ItemDicionario idDicionario, string valorDicionario = default(string))
- Lógica: Recupera o valor de um item do dicionário a partir do ID.
- Cria uma lista de
SqlParametere adiciona@Idf_Dicionario. - Define o valor do parâmetro com o
idDicionariofornecido. - Executa a query
SPSELECTID. - Se houver um registro, recupera o
Vlr_Dicionario. - Fecha e descarta o
IDataReader. - Retorna o valor do dicionário.
- Stored Procedures chamadas:
SELECT * FROM plataforma.TAB_Dicionario WHERE Idf_Dicionario = @Idf_Dicionario @Idf_Dicionario(Int): Identificador do item do dicionário.
Stored Procedures
| Nome | Parâmetros | Propósito |
|---|---|---|
INSERT INTO plataforma.TAB_Dicionario | @Idf_Dicionario, @Nme_Dicionario, @Ape_Dicionario, @Idf_Tipo_Valor, @Vlr_Dicionario, @Vlr_Anterior, @Flg_Inativo, @Dta_Cadastro | Insere um novo registro na tabela plataforma.TAB_Dicionario. |
UPDATE plataforma.TAB_Dicionario | @Nme_Dicionario, @Ape_Dicionario, @Idf_Tipo_Valor, @Vlr_Dicionario, @Vlr_Anterior, @Flg_Inativo, @Dta_Cadastro, @Idf_Dicionario | Atualiza um registro existente na tabela plataforma.TAB_Dicionario. |
DELETE FROM plataforma.TAB_Dicionario | @Idf_Dicionario | Exclui um registro da tabela plataforma.TAB_Dicionario pelo ID. |
SELECT * FROM plataforma.TAB_Dicionario | @Idf_Dicionario | Seleciona um registro da tabela plataforma.TAB_Dicionario pelo ID. |
SELECT * FROM plataforma.Tab_Dicionario | (Nenhum) | Seleciona todos os registros da tabela plataforma.Tab_Dicionario. |
SELECT Idf_Dicionario, Nme_Dicionario, Vlr_Dicionario FROM plataforma.TAB_Dicionario | @parmX | Seleciona itens específicos do dicionário por uma lista de IDs. |
Empresa
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P1.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P2.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P3.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
Empresa | public Empresa() | Construtor padrão da classe. |
Empresa | public Empresa(int idEmpresa) | Construtor que inicializa a instância com um ID existente, marcando-a como persistida. |
Save | public void Save() | Salva a instância atual de Empresa no banco de dados (insere se não persistida, atualiza se modificada). |
Save | public void Save(SqlTransaction trans) | Salva a instância atual de Empresa no banco de dados dentro de uma transação. |
Delete | public static void Delete(int idEmpresa) | Exclui um registro de Empresa do banco de dados pelo ID. |
Delete | public static void Delete(int idEmpresa, SqlTransaction trans) | Exclui um registro de Empresa do banco de dados pelo ID, dentro de uma transação. |
Delete | public static void Delete(List<int> idEmpresa) | Exclui múltiplos registros de Empresa do banco de dados por uma lista de IDs. |
RecuperarPorIntegracaoFinanceira | public static int RecuperarPorIntegracaoFinanceira(SqlTransaction trans, Int32 Idf_Empresa) | Recupera o ID da empresa matriz para integração financeira. |
RecuperarEmpresaMatriz | public static int RecuperarEmpresaMatriz(SqlTransaction trans, Int32 IdfArquivoGerado) | Recupera o ID da empresa matriz associada a um arquivo gerado. |
UpdateEmpregados | public void UpdateEmpregados(int? pIdFilial, SqlTransaction trans) | Atualiza os empregados ativos da filial e os insere novamente na fila de cálculo para refletir as alterações geradas na empresa. |
AtualizarFichaSemente | public bool AtualizarFichaSemente(SqlTransaction trans, Int64 NumSementeFicha) | Atualiza o número da semente de ficha de registro da empresa. |
SelecionaInformacoesFilialEmpresa | public static DataTable SelecionaInformacoesFilialEmpresa(int idEmpresa, int? idFilial, int? idBanco) | Seleciona informações detalhadas da filial e empresa. |
VerificaEmpresaPrestadora | public static bool VerificaEmpresaPrestadora(int idEmpresa) | Verifica se uma empresa é prestadora de serviços. |
CarregarProdutorRuralEmpresaPeriodo | public static bool CarregarProdutorRuralEmpresaPeriodo(int idEmpresa, int? mes, int ano, out ProdutorRural objProdutorRural) | Carrega informações de produtor rural para uma empresa em um período específico. |
SalvarFlagProdutorRural | public static void SalvarFlagProdutorRural(int idEmpresa, int? mes, int ano, bool flgProdutorRural) | Salva a flag de produtor rural para uma empresa em um período. |
CompleteAuditoria | public bool CompleteAuditoria() | Completa a razão social da empresa para fins de auditoria. |
AtualizarSemente | public bool AtualizarSemente(SqlTransaction trans, int numSementeReferencia) | Atualiza o número da semente de matrícula da empresa se o novo valor for maior. |
RecuperarProximaMatricula | public bool RecuperarProximaMatricula(SqlTransaction trans, out int pNumeroMatricula) | Recupera o próximo número de matrícula “livre” para a empresa. |
RecuperarProximaFichaRegistro | public bool RecuperarProximaFichaRegistro(SqlTransaction trans, out int pNumeroFichaRegistro) | Recupera o próximo número de ficha de registro “livre” para a empresa. |
Detalhamento de Métodos Importantes
Save()
- Lógica: Este método é responsável por persistir o estado do objeto
Empresano banco de dados.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate().
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert()ouUpdate().
Save(SqlTransaction trans)
- Lógica: Similar ao
Save()sem parâmetros, mas executa a operação dentro de uma transação SQL fornecida.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(trans). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate(trans).
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert(trans)ouUpdate(trans).
Delete(int idEmpresa)
- Lógica: Exclui um registro de
Empresado banco de dados.
- Cria uma lista de
SqlParameter. - Adiciona os parâmetros
@Idf_Empresae@Idf_Usuario_Gerador. - Define os valores dos parâmetros, sendo o
Idf_Usuario_Geradorobtido da sessão. - Executa uma query SQL que primeiro atualiza o
Idf_Usuario_Geradore depois deleta o registro da tabelaTAB_Empresa.
- Stored Procedures chamadas:
UPDATE TAB_Empresa SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Empresa = @Idf_Empresa ; DELETE FROM TAB_Empresa WHERE Idf_Empresa = @Idf_Empresa @Idf_Empresa(Int): Identificador da Empresa a ser excluída.@Idf_Usuario_Gerador(Int): ID do usuário que está realizando a exclusão.
Delete(int idEmpresa, SqlTransaction trans)
- Lógica: Exclui um registro de
Empresado banco de dados dentro de uma transação.
- Cria uma lista de
SqlParameter. - Adiciona os parâmetros
@Idf_Empresae@Idf_Usuario_Gerador. - Define os valores dos parâmetros, sendo o
Idf_Usuario_Geradorobtido da sessão. - Executa uma query SQL que primeiro atualiza o
Idf_Usuario_Geradore depois deleta o registro da tabelaTAB_Empresa, usando a transação fornecida.
- Stored Procedures chamadas:
UPDATE TAB_Empresa SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Empresa = @Idf_Empresa ; DELETE FROM TAB_Empresa WHERE Idf_Empresa = @Idf_Empresa @Idf_Empresa(Int): Identificador da Empresa a ser excluída.@Idf_Usuario_Gerador(Int): ID do usuário que está realizando a exclusão.
Delete(List idEmpresa)
- Lógica: Exclui múltiplos registros de
Empresado banco de dados.
- Cria uma lista de
SqlParametere stringsqueryequeryAuxiniciais. - Itera sobre a lista
idEmpresa:
- Para cada ID, cria um parâmetro
@parmXe o adiciona às queries e à lista de parâmetros. - Adiciona o valor do ID ao respectivo parâmetro.
- Adiciona o parâmetro
@Idf_Usuario_Gerador(obtido da sessão) à lista de parâmetros. - Completa as queries com a cláusula
IN. - Concatena
queryAuxequerypara formar uma única instrução SQL. - Executa a query SQL usando
DataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
UPDATE TAB_Empresa SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Empresa IN (@parm0, @parm1, ...) ; DELETE FROM TAB_Empresa WHERE Idf_Empresa IN (@parm0, @parm1, ...) @parmX(Int): Identificadores das Empresas a serem excluídas.@Idf_Usuario_Gerador(Int): ID do usuário que está realizando a exclusão.
RecuperarPorIntegracaoFinanceira(SqlTransaction trans, Int32 Idf_Empresa)
- Lógica: Recupera o ID da empresa matriz para integração financeira.
- Define uma query SQL que seleciona o
Idf_Empresada tabelaTAB_FilialondeIdf_Empresacorresponde ao parâmetro eFlg_Matrizé1. - Cria uma lista de
SqlParametere adiciona@Idf_Empresa. - Executa a query usando
DataAccessLayer.ExecuteScalardentro da transação fornecida. - Retorna o ID da empresa matriz.
- Stored Procedures chamadas:
SELECT Idf_Empresa FROM TAB_Filial WHERE Idf_Empresa = @Idf_Empresa AND Flg_Matriz=1 @Idf_Empresa(Int): Identificador da empresa.
RecuperarEmpresaMatriz(SqlTransaction trans, Int32 IdfArquivoGerado)
- Lógica: Recupera o ID da empresa matriz associada a um arquivo gerado.
- Define uma query SQL que seleciona o
Idf_Empresada tabelaTAB_FilialondeFlg_Matrizé1e oIdf_Empresaé obtido de uma subconsulta que relacionaTAB_Arquivo_GeradoeTAB_Conta_Empresa. - Cria uma lista de
SqlParametere adiciona@Idf_Arquivo_Gerado. - Executa a query usando
DataAccessLayer.ExecuteScalardentro da transação fornecida. - Retorna o ID da empresa matriz.
- Stored Procedures chamadas:
SELECT Idf_Empresa FROM TAB_Filial WHERE Flg_Matriz = 1 AND Idf_Empresa = (SELECT contaEmpresa.Idf_Empresa FROM TAB_Arquivo_Gerado arquivoGerado JOIN TAB_Conta_Empresa contaEmpresa ON arquivoGerado.Idf_Conta_Empresa = contaEmpresa.Idf_Conta_Empresa WHERE Idf_Arquivo_Gerado=@Idf_Arquivo_Gerado) @Idf_Arquivo_Gerado(Int): Identificador do arquivo gerado.
UpdateEmpregados(int? pIdFilial, SqlTransaction trans)
- Lógica: Busca empregados ativos de uma filial (ou de toda a empresa) e os insere na fila de cálculo para processamento.
- Define uma query SQL complexa que utiliza Common Table Expressions (CTEs) para selecionar empregados ativos e inativos com verbas manuais, considerando o tipo de estrutura gerencial da empresa (Contrato/Departamento ou Centro de Resultado).
- Cria uma lista de
SqlParametere adiciona@Idf_Empresa,@Idf_Filiale@UtilizaCR. - Define os valores dos parâmetros com base na instância atual da empresa e no
pIdFilialfornecido. - Executa a query usando
DataAccessLayer.ExecuteReaderdentro da transação fornecida. - Chama
FilaCalculoV2Helper.SalvarEnviarParaCalculo(dr, trans)para processar os resultados e enviar para a fila de cálculo.
- Stored Procedures chamadas: A query é construída dinamicamente, mas envolve as seguintes tabelas e lógica:
TAB_Empregado,TAB_Contrato,TAB_Periodo_Calculo_Filial,TAB_Lancamento,TAB_Verba_Manual,TAB_Centro_Resultado.- Filtra por
Idf_Empresa,Idf_Filial_Gestora(ouIdf_Filialpara Centro de Resultado),Flg_Inativo,Flg_Fechado. @Idf_Empresa(Int): ID da empresa.@Idf_Filial(Int, opcional): ID da filial.@UtilizaCR(Int): Tipo de estrutura gerencial (1 para Centro de Resultado, outro valor para Contrato/Departamento).
AtualizarFichaSemente(SqlTransaction trans, Int64 NumSementeFicha)
- Lógica: Atualiza o número da semente de ficha de registro da empresa.
- Define uma query SQL de
UPDATEpara a tabelaTAB_Empresa, atualizandoNum_Semente_Ficha. - Verifica se
_idEmpresaé maior que 0. - Cria uma lista de
SqlParametere adiciona@Num_Semente_Fichae@Idf_Empresa. - Define os valores dos parâmetros.
- Executa a query usando
DataAccessLayer.ExecuteScalardentro da transação fornecida. - Retorna
truese a operação foi executada,falsecaso contrário.
- Stored Procedures chamadas:
UPDATE TAB_Empresa SET Num_Semente_Ficha = @Num_Semente_Ficha WHERE Idf_Empresa = @Idf_Empresa @Num_Semente_Ficha(BigInt): Novo valor para a semente de ficha.@Idf_Empresa(Int): ID da empresa.
SelecionaInformacoesFilialEmpresa(int idEmpresa, int? idFilial, int? idBanco)
- Lógica: Seleciona informações detalhadas da filial e empresa, como tipo de inscrição, CNPJ, dados bancários, razão social, endereço, etc.
- Cria um
DataTablevazio. - Chama o método privado
LoadDataReaderInfopara obter umIDataReadercom as informações. - Carrega os dados do
IDataReadernoDataTable. - Retorna o
DataTable.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReaderInfo(int idEmpresa, int? idFilial, int? idBanco).
VerificaEmpresaPrestadora(int idEmpresa)
- Lógica: Verifica se a empresa é uma prestadora de serviços.
- Define uma query SQL que conta o número de filiais matrizes que são prestadoras para a
idEmpresafornecida. - Cria uma lista de
SqlParametere adiciona@Idf_Empresa. - Executa a query usando
DataAccessLayer.ExecuteReader. - Se o resultado da contagem for 0, retorna
false. Caso contrário, retornatrue.
- Stored Procedures chamadas:
SELECT COUNT(*) AS Total FROM TAB_FILIAL FIL WHERE FIL.Idf_Empresa = @Idf_Empresa AND FIL.Flg_Matriz = 1 AND Flg_Prestadora = 1 @Idf_Empresa(Int): ID da empresa.
CarregarProdutorRuralEmpresaPeriodo(int idEmpresa, int? mes, int ano, out ProdutorRural objProdutorRural)
- Lógica: Carrega um objeto
ProdutorRuralpara uma empresa em um período específico (mês e ano).
- Define uma query SQL que seleciona o registro
TOP 1da tabelaTAB_Produtor_Ruralfiltrando porIdf_Empresa,Num_Mes(opcional) eNum_Ano. - Cria uma lista de
SqlParametere adiciona@Idf_Empresa,@Num_Mese@Num_Ano. - Define os valores dos parâmetros.
- Executa a query usando
DataAccessLayer.ExecuteReader. - Cria uma nova instância de
ProdutorRural. - Chama
ProdutorRural.SetInstanceProdutorRuralpara preencher a instância. - Se a instância for preenchida com sucesso, define
objProdutorRurale retornatrue. - Caso contrário, define
objProdutorRuralcomonulle retornafalse.
- Stored Procedures chamadas:
SELECT TOP 1 * FROM TAB_Produtor_Rural WHERE Idf_Empresa = @Idf_Empresa AND Num_Mes = @Num_Mes OR Num_Mes IS NULL AND Num_Ano = @Num_Ano @Idf_Empresa(Int): ID da empresa.@Num_Mes(Int, opcional): Mês.@Num_Ano(Int): Ano.
SalvarFlagProdutorRural(int idEmpresa, int? mes, int ano, bool flgProdutorRural)
- Lógica: Salva a flag de produtor rural para uma empresa em um período.
- Inicia uma transação SQL.
- Tenta carregar um objeto
ProdutorRuralexistente usandoCarregarProdutorRuralEmpresaPeriodo. - Se não encontrar um registro existente:
- Cria uma nova instância de
ProdutorRural. - Define suas propriedades (
IdEmpresa,NumeroMes,NumeroAno,FlagProdutorRural). - Salva o novo objeto usando
objProdutorRural.Save().
- Se encontrar um registro existente:
- Atualiza a propriedade
FlagProdutorRuraldo objeto existente. - Salva o objeto atualizado usando
objProdutorRural.Save().
- Comita a transação em caso de sucesso.
- Em caso de erro, faz rollback da transação.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
CarregarProdutorRuralEmpresaPeriodoeobjProdutorRural.Save().
CompleteAuditoria()
- Lógica: Completa a razão social da empresa para fins de auditoria.
- Define uma query SQL que seleciona
Raz_Socialda tabelaTAB_EmpresapeloIdf_Empresa. - Cria uma lista de
SqlParametere adiciona@Idf_Empresa. - Define o valor do parâmetro com o
_idEmpresada instância atual. - Executa a query usando
DataAccessLayer.ExecuteReader. - Se houver um registro, preenche a propriedade
_razaoSocialda instância. - Retorna
truese a razão social foi encontrada e preenchida,falsecaso contrário.
- Stored Procedures chamadas:
SELECT Raz_Social FROM TAB_Empresa WHERE Idf_Empresa = @Idf_Empresa @Idf_Empresa(Int): ID da empresa.
AtualizarSemente(SqlTransaction trans, int numSementeReferencia)
- Lógica: Atualiza o número da semente de matrícula da empresa se o
numSementeReferenciafornecido for maior que a semente atual.
- Define uma query SQL de
UPDATEcondicional para a tabelaTAB_Empresa, atualizandoNum_Semente. - Verifica se
_idEmpresaé maior que 0. - Cria uma lista de
SqlParametere adiciona@Num_Semente_Referenciae@Idf_Empresa. - Define os valores dos parâmetros.
- Executa a query usando
DataAccessLayer.ExecuteScalardentro da transação fornecida. - Retorna
truese a operação foi executada,falsecaso contrário.
- Stored Procedures chamadas:
IF (@Num_Semente_Referencia > (SELECT ISNULL(Num_Semente,0) FROM TAB_Empresa WHERE Idf_Empresa = @Idf_Empresa)) BEGIN UPDATE TAB_Empresa SET Num_Semente = @Num_Semente_Referencia WHERE Idf_Empresa = @Idf_Empresa; END @Num_Semente_Referencia(BigInt): Valor da semente de referência.@Idf_Empresa(Int): ID da empresa.
RecuperarProximaMatricula(SqlTransaction trans, out int pNumeroMatricula)
- Lógica: Recupera o próximo número de matrícula “livre” (não vinculado a empregado) a partir da semente configurada na empresa.
- Define uma query SQL complexa que utiliza um loop
WHILEe uma tabela temporária (@T) para:
- Incrementar
Num_Sementena tabelaTAB_Empresapara oIdf_Empresaatual. - Verificar se o
Num_Semente - 1(o valor anterior à atualização) já está em uso comoNum_Matriculanas tabelasTAB_EmpregadoouTAB_Empregado_Admissao_Futura. - O loop continua até encontrar um número de matrícula não utilizado.
- Verifica se
_idEmpresaé maior que 0. - Cria uma lista de
SqlParametere adiciona@Idf_Empresa. - Executa a query usando
DataAccessLayer.ExecuteScalardentro da transação fornecida. - Tenta converter o resultado para
inte atribui apNumeroMatricula. - Retorna
truese a conversão for bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: A query é construída dinamicamente, mas envolve as seguintes tabelas e lógica:
TAB_Empresa(para atualizarNum_Semente)TAB_Empregado,TAB_Contrato,TAB_Empregado_Admissao_Futura(para verificar matrículas existentes).@Idf_Empresa(Int): ID da empresa.
RecuperarProximaFichaRegistro(SqlTransaction trans, out int pNumeroFichaRegistro)
- Lógica: Recupera o próximo número de ficha de registro “livre” (não vinculado a empregado) a partir da semente de ficha configurada na empresa.
- Define uma query SQL complexa que utiliza um loop
WHILEe uma tabela temporária (@T) para:
- Incrementar
Num_Semente_Fichana tabelaTAB_Empresapara oIdf_Empresaatual. - Verificar se o
Num_Semente - 1(o valor anterior à atualização) já está em uso comoNum_Ficha_Registronas tabelasTAB_EmpregadoouTAB_Empregado_Admissao_Futura. - O loop continua até encontrar um número de ficha de registro não utilizado.
- Verifica se
_idEmpresaé maior que 0. - Cria uma lista de
SqlParametere adiciona@Idf_Empresa. - Executa a query usando
DataAccessLayer.ExecuteScalardentro da transação fornecida. - Tenta converter o resultado para
inte atribui apNumeroFichaRegistro. - Retorna
truese a conversão for bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: A query é construída dinamicamente, mas envolve as seguintes tabelas e lógica:
TAB_Empresa(para atualizarNum_Semente_Ficha)TAB_Empregado,TAB_Contrato,TAB_Empregado_Admissao_Futura(para verificar fichas de registro existentes).@Idf_Empresa(Int): ID da empresa.
Stored Procedures
| Nome | Parâmetros | Propósito |
|---|---|---|
INSERT INTO TAB_Empresa | @Idf_Grupo_Economico, @Num_CNPJ, @Num_CPF, @Raz_Social, @Dta_Fundacao, @Idf_Porte_Empresa, @Idf_Simples, @Vlr_Isencao_Filantropica, @Qtd_Socios, @Idf_Pessoa_Fisica, @Flg_Inativo, @Dta_Cadastro, @Dta_Alteracao, @Num_Semente, @Num_Semente_Ficha, @Cod_Empresa, @Idf_Usuario_Gerador, @Flg_Audita_Fatura, @Flg_Horario_Limite_Faturamento, @Num_Hora_Limite_Faturamento, @Num_Minuto_Limite_Faturamento, @Idf_Tipo_Estrutura_Gerencial, @Dta_Inativacao, @Sig_Empresa, @Idf_Situacao_Cadastral_Fisica, @Idf_Situacao_Cadastral_Juridica, @Idf_Tipo_Acordo_Internacional, @Idf_Tipo_Indicativo_Construtora, @Idf_Tipo_Registro_Eletronico_Empregados, @Idf_Processo_Administrativo_Judicial, @Idf_Tipo_Clafissicacao_Tributaria, @Idf_Tipo_Cooperativa, @Num_SIAFI, @Idf_Classificacao_Economica, @Idf_Indicador_Contribuicao_Substituida, @Vlr_Contribuicao_Mes, @Vlr_Contribuicao_13, @Idf_Empresa (OUTPUT) | Insere um novo registro na tabela TAB_Empresa e retorna o ID gerado. |
UPDATE TAB_Empresa | @Idf_Grupo_Economico, @Num_CNPJ, @Num_CPF, @Raz_Social, @Dta_Fundacao, @Idf_Porte_Empresa, @Idf_Simples, @Vlr_Isencao_Filantropica, @Qtd_Socios, @Idf_Pessoa_Fisica, @Flg_Inativo, @Dta_Cadastro, @Dta_Alteracao, @Num_Semente, @Num_Semente_Ficha, @Cod_Empresa, @Idf_Usuario_Gerador, @Flg_Audita_Fatura, @Flg_Horario_Limite_Faturamento, @Num_Hora_Limite_Faturamento, @Num_Minuto_Limite_Faturamento, @Idf_Tipo_Estrutura_Gerencial, @Dta_Inativacao, @Sig_Empresa, @Idf_Situacao_Cadastral_Fisica, @Idf_Situacao_Cadastral_Juridica, @Idf_Tipo_Acordo_Internacional, @Idf_Tipo_Indicativo_Construtora, @Idf_Tipo_Registro_Eletronico_Empregados, @Idf_Processo_Administrativo_Judicial, @Idf_Tipo_Clafissicacao_Tributaria, @Idf_Tipo_Cooperativa, @Num_SIAFI, @Idf_Classificacao_Economica, @Idf_Indicador_Contribuicao_Substituida, @Vlr_Contribuicao_Mes, @Vlr_Contribuicao_13, @Idf_Empresa | Atualiza um registro existente na tabela TAB_Empresa. |
UPDATE TAB_Empresa SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Empresa = @Idf_Empresa ; DELETE FROM TAB_Empresa WHERE Idf_Empresa = @Idf_Empresa | @Idf_Empresa, @Idf_Usuario_Gerador | Atualiza o usuário gerador e exclui um registro da tabela TAB_Empresa. |
SELECT Idf_Empresa FROM TAB_Filial | @Idf_Empresa | Seleciona o ID da empresa matriz de uma filial. |
SELECT Idf_Empresa FROM TAB_Filial | @Idf_Arquivo_Gerado | Seleciona o ID da empresa matriz associada a um arquivo gerado. |
SELECT MAX(TRY_CAST(Cod_Empresa AS INT)) FROM TAB_EMPRESA | (Nenhum) | Recupera o código da próxima empresa. |
DECLARE @Controle BIT = 1 ... SELECT @Semente - 1 | @Idf_Empresa | Recupera o próximo número de matrícula “livre” para a empresa. |
DECLARE @Controle BIT = 1 ... SELECT @Semente - 1 | @Idf_Empresa | Recupera o próximo número de ficha de registro “livre” para a empresa. |
UPDATE TAB_Empresa SET Num_Semente_Ficha = @Num_Semente_Ficha WHERE Idf_Empresa = @Idf_Empresa | @Num_Semente_Ficha, @Idf_Empresa | Atualiza o número da semente de ficha de registro da empresa. |
SELECT DISTINCT (CASE WHEN (FIL.Num_CEI IS NOT NULL) THEN 1 WHEN (FIL.Num_CNPJ IS NOT NULL)OR(EM.Num_CNPJ IS NOT NULL) THEN 2 ELSE 0 END) AS TipoInscricao, ISNULL(fil.Num_CNPJ, em.Num_CNPJ) as Num_CNPJ, ... FROM TAB_Filial FIL ... | @idfEmpresa, @idfFilial, @idfBanco | Seleciona informações detalhadas da filial e empresa. |
SELECT COUNT(*) AS Total FROM TAB_FILIAL FIL WHERE FIL.Idf_Empresa = @Idf_Empresa AND FIL.Flg_Matriz = 1 AND Flg_Prestadora = 1 | @Idf_Empresa | Verifica se uma empresa é prestadora de serviços. |
SELECT TOP 1 * FROM TAB_Produtor_Rural WHERE Idf_Empresa = @Idf_Empresa AND Num_Mes = @Num_Mes OR Num_Mes IS NULL AND Num_Ano = @Num_Ano | @Idf_Empresa, @Num_Mes, @Num_Ano | Carrega informações de produtor rural para uma empresa em um período específico. |
SELECT Raz_Social FROM TAB_Empresa WHERE Idf_Empresa = @Idf_Empresa | @Idf_Empresa | Seleciona a razão social da empresa. |
IF (@Num_Semente_Referencia > (SELECT ISNULL(Num_Semente,0) FROM TAB_Empresa WHERE Idf_Empresa = @Idf_Empresa)) BEGIN UPDATE TAB_Empresa SET Num_Semente = @Num_Semente_Referencia WHERE Idf_Empresa = @Idf_Empresa; END | @Num_Semente_Referencia, @Idf_Empresa | Atualiza o número da semente de matrícula da empresa se o novo valor for maior. |
SELECT TOP(@Count) Emp.* FROM TAB_Empresa Emp WHERE Emp.Idf_Grupo_Economico = @Idf_Grupo_Economico AND (Emp.Raz_Social LIKE '%' + @Valor + '%' COLLATE SQL_Latin1_General_CP1_CI_AI OR Emp.Num_CNPJ LIKE '%' + @Valor + '%' COLLATE SQL_Latin1_General_CP1_CI_AI OR Emp.Num_CPF LIKE '%' + @Valor + '%' COLLATE SQL_Latin1_General_CP1_CI_AI) AND Emp.Flg_Inativo = 0 ORDER BY Emp.Raz_Social | @Count, @Idf_Grupo_Economico, @Valor | Seleciona empresas por nome parcial, CNPJ ou CPF dentro de um grupo econômico. |
SELECT * FROM TAB_Empresa Emp WHERE Emp.Raz_Social LIKE '%' + @Raz_Social + '%' COLLATE SQL_Latin1_General_CP1_CI_AI | @Raz_Social | Seleciona empresas por razão social parcial. |
SELECT * FROM TAB_Empresa Emp WHERE Emp.Num_CNPJ = @Num_CNPJ | @Num_CNPJ | Seleciona empresas por CNPJ. |
SELECT * FROM TAB_Empresa Emp WHERE Emp.Num_CPF = @Num_CPF | @Num_CPF | Seleciona empresas por CPF. |
SELECT * FROM TAB_Empresa Emp WHERE Emp.Idf_Empresa = @Idf_Empresa | @Idf_Empresa | Seleciona empresa por ID. |
SELECT * FROM TAB_Empresa Emp WHERE Emp.Raz_Social = @Raz_Social | @Raz_Social | Seleciona empresa por razão social exata. |
SELECT Num_CNPJ, Raz_Social FROM TAB_Empresa WHERE (Raz_Social LIKE '%' + @Raz_Social + '%' COLLATE SQL_Latin1_General_CP1_CI_AI OR Num_CNPJ = @Num_CNPJ) AND Flg_Inativo = 0 | @Raz_Social, @Num_CNPJ | Seleciona CNPJ e razão social de empresas por razão social parcial ou CNPJ. |
SELECT * FROM TAB_Empresa emp JOIN TAB_Filial fil ON emp.Idf_Empresa = Fil.Idf_Empresa WHERE (fil.Num_CEI = @Num_CEI) AND emp.Flg_Inativo = 0 | @Num_CEI | Seleciona empresas por CEI. |
SELECT * FROM TAB_Empresa emp JOIN TAB_Filial fil ON emp.Idf_Empresa = Fil.Idf_Empresa WHERE emp.Num_CNPJ = @CNPJCEI OR fil.Num_CEI = @CNPJCEI OR emp.NUM_CPF = CONVERT(NUMERIC, @CNPJCEI) | @CNPJCEI | Seleciona empresas por CNPJ, CEI ou CPF. |
SELECT DISTINCT emp.Num_CNPJ, fil.Num_CEI, emp.Raz_Social FROM TAB_Empresa emp JOIN TAB_Filial fil ON emp.Idf_Empresa = Fil.Idf_Empresa WHERE (emp.Raz_Social LIKE '%' + @Raz_Social + '%' COLLATE SQL_Latin1_General_CP1_CI_AI OR emp.Num_CNPJ = @Num_CNPJ OR fil.Num_CEI = @Num_CEI) AND emp.Flg_Inativo = 0 | @Raz_Social, @Num_CNPJ, @Num_CEI | Seleciona CNPJ, CEI e razão social de empresas por razão social parcial, CNPJ ou CEI. |
SELECT top 1 emp.Num_CNPJ, f.Num_CEI, emp.Raz_Social, ... FROM tab_empregado e inner join tab_contrato c on c.idf_contrato = e.idf_contrato inner join tab_filial f on f.idf_filial = c.idf_filial_gestora inner join tab_empresa emp on emp.idf_empresa = f.idf_empresa left join tab_rescisao r on r.idf_empregado = e.idf_empregado where emp.num_cnpj = @numCNPJ and (e.Dta_Admissao between @dtaInicial and @dtaFinal or ((r.idf_rescisao IS NOT NULL) or (r.dta_rescisao between @dtaInicial and @dtaFinal))) | @numCNPJ, @dtaInicial, @dtaFinal | Seleciona informações de empresa para movimentação de empregados (admissão/rescisão). |
SELECT COUNT(*) FROM TAB_Filial WHERE Idf_Empresa=@Idf_Empresa AND Num_CNPJ IS NOT NULL AND Flg_Matriz=0 | @Idf_Empresa | Conta filiais com CNPJ e não matriz. |
SELECT Idf_Filial, cod_filial FROM TAB_Filial WHERE Idf_Filial NOT IN({0}) AND Idf_Empresa=@Idf_Empresa AND Num_CNPJ IS NOT NULL AND (@Idf_Filial IS NULL OR Idf_Filial=@Idf_Filial) | {0} (lista de IDs), @Idf_Empresa, @Idf_Filial | Seleciona filiais para RAIS sem empregado. |
SELECT F.Num_CNPJ, F.Cod_Filial, F.Raz_Social, ... FROM TAB_Filial F INNER JOIN TAB_Endereco EN ON F.Idf_Endereco = EN.Idf_Endereco LEFT JOIN plataforma.TAB_Cidade C ON EN.Idf_Cidade = C.Idf_Cidade INNER JOIN TAB_Empresa E ON F.Idf_Empresa = E.Idf_Empresa LEFT JOIN plataforma.TAB_CNAE_Sub_Classe CNAE ON F.Idf_CNAE_Principal=CNAE.Idf_CNAE_Sub_Classe LEFT JOIN plataforma.TAB_Natureza_Juridica NJ ON F.Idf_Natureza_Juridica=NJ.Idf_Natureza_Juridica WHERE F.Idf_Filial=@Idf_Filial | @ano_base, @Idf_Filial | Seleciona informações detalhadas da filial para RAIS. |
SELECT DISTINCT Emp.Raz_Social FROM TAB_Filial Fil INNER JOIN TAB_Empresa Emp ON Fil.Idf_Empresa = Emp.Idf_Empresa INNER JOIN TAB_Grupo_Economico Gru ON Emp.Idf_Grupo_Economico = Gru.Idf_Grupo_Economico WHERE Gru.Idf_Grupo_Economico = @Idf_Grupo_Economico AND Emp.Raz_Social LIKE @Raz_Social + '%' COLLATE SQL_Latin1_General_CP1_CI_AI AND (Emp.Idf_Empresa IN (SELECT UA.Idf_Empresa FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL) UA)) | @Idf_Grupo_Economico, @Raz_Social, @Idf_Usuario | Lista razão social de empresas por grupo econômico e usuário, com nome parcial. |
SELECT DISTINCT Emp.Raz_Social FROM TAB_Filial Fil INNER JOIN TAB_Empresa Emp ON Fil.Idf_Empresa = Emp.Idf_Empresa INNER JOIN TAB_Grupo_Economico Gru ON Emp.Idf_Grupo_Economico = Gru.Idf_Grupo_Economico WHERE Gru.Idf_Grupo_Economico = @Idf_Grupo_Economico AND Emp.Raz_Social = @Raz_Social COLLATE SQL_Latin1_General_CP1_CI_AI AND (Emp.Idf_Empresa IN (SELECT UA.Idf_Empresa FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL) UA)) | @Idf_Grupo_Economico, @Raz_Social, @Idf_Usuario | Lista razão social de empresas por grupo econômico e usuário, com nome exato. |
SELECT DISTINCT Emp.Raz_Social FROM TAB_Filial Fil INNER JOIN TAB_Empresa Emp ON Fil.Idf_Empresa = Emp.Idf_Empresa WHERE Emp.Raz_Social = @Raz_Social COLLATE SQL_Latin1_General_CP1_CI_AI AND (Emp.Idf_Empresa IN (SELECT UA.Idf_Empresa FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL) UA)) | @Raz_Social, @Idf_Usuario | Lista razão social de empresas por usuário, com nome exato. |
SELECT DISTINCT Emp.Raz_Social FROM TAB_Empresa Emp INNER JOIN TAB_Filial Fil ON Fil.Idf_Empresa = Emp.Idf_Empresa WHERE Emp.Flg_Inativo = 0 AND Emp.Raz_Social = @Raz_Social COLLATE SQL_Latin1_General_CP1_CI_AI AND (Emp.Idf_Empresa IN (SELECT UA.Idf_Empresa FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL) UA)) | @Raz_Social, @Idf_Usuario | Lista razão social de empresas ativas por usuário, com nome exato. |
SELECT DISTINCT TOP(@Count) Emp.Raz_Social FROM TAB_Empresa Emp LEFT JOIN TAB_Filial Fil ON Fil.Idf_Empresa = Emp.Idf_Empresa WHERE Emp.Flg_Inativo = 0 AND Emp.Raz_Social LIKE '%' + @Raz_Social + '%' COLLATE SQL_Latin1_General_CP1_CI_AI AND (Emp.Idf_Empresa IN (SELECT UA.Idf_Empresa FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL) UA)) | @Count, @Raz_Social, @Idf_Usuario | Seleciona razão social de empresas ativas para autocomplete. |
SELECT E.Idf_Empresa, E.Num_CNPJ, E.Raz_Social FROM TAB_Empresa E WHERE E.Flg_Inativo = 0 AND E.Idf_Grupo_Economico = @Idf_Grupo_Economico AND (((NOT @Num_CNPJ IS NULL) AND (CONVERT(VARCHAR, E.Num_CNPJ) LIKE CONVERT(VARCHAR, @Num_CNPJ) + '%')) OR (( NOT @text IS NULL) AND ((CONVERT(VARCHAR, E.Num_CNPJ) + ' - ' + E.Raz_Social) LIKE '%' + @text + '%'))) | @Idf_Grupo_Economico, @Num_CNPJ, @text | Seleciona empresas por grupo econômico, CNPJ ou texto. |
SELECT E.Idf_Empresa, E.Num_CNPJ, E.Raz_Social FROM TAB_Empresa E WHERE E.Flg_Inativo = 0 AND E.Idf_Grupo_Economico = @Idf_Grupo_Economico AND (((NOT @Num_CNPJ IS NULL) AND (E.Num_CNPJ = @Num_CNPJ)) OR (( NOT @text IS NULL) AND (CONVERT(VARCHAR, E.Num_CNPJ) + ' - ' + E.Raz_Social = @text))) | @Idf_Grupo_Economico, @Num_CNPJ, @text | Seleciona empresas por grupo econômico, CNPJ exato ou texto exato. |
SELECT COUNT(1) FROM TAB_Filial F INNER JOIN TAB_Contrato C ON F.Idf_Filial = C.Idf_Filial_Gestora INNER JOIN FLH_Bloqueio B ON C.Idf_Contrato = B.Idf_Contrato WHERE B.Idf_tipo_Bloqueio = 2 AND F.Idf_Empresa = @Idf_Empresa AND B.Idf_Usuario <> @Idf_Usuario | @Idf_Empresa, @Idf_Usuario | Verifica bloqueio de empresa. |
SELECT Emp.* FROM TAB_Empresa Emp WHERE 1=1 AND Flg_Inativo = 0 AND Emp.Idf_Grupo_Economico = @Idf_Grupo_Economico | @Idf_Grupo_Economico | Seleciona empresas ativas por grupo econômico. |
SELECT COUNT(*) as total FROM TAB_Parametro_Empresa WHERE Idf_Empresa = @Idf_Empresa AND Idf_Pergunta_Parametro_Empresa = 5 AND Idf_Alternativa_Parametro_Empresa = 36 AND Flg_Inativo = 0 | @Idf_Empresa | Consulta integração financeira da empresa. |
SELECT F.Idf_Empresa, F.Num_CEI, F.Num_CNPJ, F.Raz_Social FROM (SELECT DISTINCT Idf_Empresa FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL)) AS UA INNER JOIN TAB_Filial F ON UA.Idf_Empresa = F.Idf_Empresa AND F.flg_Matriz = 1 inner join TAB_Empresa e on e.Idf_Empresa = f.Idf_Empresa WHERE F.Flg_Inativo = 0 and e.Flg_Inativo = 0 | @Idf_Usuario | Seleciona empresas por usuário. |
SELECT COUNT(0) FROM TAB_Empresa E WHERE (E.Cod_Empresa = @Cod_Empresa OR (@Cod_Empresa IS NULL AND E.Cod_Empresa IS NULL)) AND (E.Num_CNPJ <> @Num_CNPJ OR (@Num_CNPJ IS NULL AND E.Num_CNPJ IS NULL)) AND (E.Idf_Grupo_Economico = @Idf_Grupo_Economico OR (@Idf_Grupo_Economico IS NULL AND E.Idf_Grupo_Economico IS NULL)) | @Cod_Empresa, @Num_CNPJ, @Idf_Grupo_Economico | Verifica se o código da empresa já está cadastrado. |
SELECT COUNT(0) FROM TAB_Empresa WHERE 1 = 1 AND (@Idf_Empresa IS NULL OR Idf_Empresa <> @Idf_Empresa) AND ((@Sig_Empresa IS NULL AND Sig_Empresa IS NULL) OR LTRIM(RTRIM(ISNULL(Sig_Empresa, ''))) LIKE @Sig_Empresa) | @Idf_Empresa, @Sig_Empresa | Verifica se a sigla da empresa já está cadastrada. |
SELECT Idf_Empresa, Num_CNPJ, Raz_Social FROM TAB_Empresa WHERE Flg_Inativo = 0 | (Nenhum) | Lista empresas ativas. |
SELECT E.Idf_Empresa, E.Num_CNPJ, E.Raz_Social FROM TAB_Empresa E WHERE 1 = 1 AND (E.Idf_Empresa IN (SELECT UA.Idf_Empresa FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL) UA)) | @Idf_Usuario | Lista empresas filtradas por usuário. |
SELECT * FROM plataforma.TAB_Indicador_Contribuicao_Substituida | (Nenhum) | Lista indicadores de contribuição substituída. |
FolhaWebApi
Arquivo: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.WebFoPag\WebApi\FolhaWebApi.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
FolhaWebApi | public FolhaWebApi() | Construtor padrão da classe, inicializa o endereço base da API da Folha. |
PostFolhaWebApi<TObjeto> | public string PostFolhaWebApi<TObjeto>(EnumFolhaWebApi pEndereco, TObjeto pObjeto) | Realiza uma requisição HTTP POST para a API da Folha, autenticando automaticamente e enviando um objeto serializado. |
PostFolhaWebApi | public string PostFolhaWebApi(EnumFolhaWebApi pEndereco, string pParametros) | Realiza uma requisição HTTP POST para a API da Folha, autenticando automaticamente e enviando parâmetros na URL. |
PostFolhaWebApi<TObjeto> | public string PostFolhaWebApi<TObjeto>(string pToken, TObjeto pObjeto, EnumFolhaWebApi pEndereco) | Realiza uma requisição HTTP POST para a API da Folha, usando um token de autenticação fornecido e enviando um objeto serializado. |
PostFolhaWebApi | public string PostFolhaWebApi(string pToken, EnumFolhaWebApi pEndereco, string pParametros) | Realiza uma requisição HTTP POST para a API da Folha, usando um token de autenticação fornecido e enviando parâmetros na URL. |
AutenticarAPI | public string AutenticarAPI(string pCentroServico, string pCPFUsuario) | Autentica a aplicação na API da Folha, obtendo um token de acesso. |
Detalhamento de Métodos Importantes
PostFolhaWebApi(EnumFolhaWebApi pEndereco, TObjeto pObjeto)
- Lógica: Este método é um wrapper para
PostFolhaWebApi(string pToken, TObjeto pObjeto, EnumFolhaWebApi pEndereco).
- Primeiro, chama
AutenticarAPIpara obter um token de autenticação, usandoNomeCentroServicoeCpfUsuarioLogado. - Em seguida, chama a sobrecarga
PostFolhaWebApi(string pToken, TObjeto pObjeto, EnumFolhaWebApi pEndereco)com o token obtido e os parâmetros originais. - Retorna a resposta da API.
- Stored Procedures chamadas: Nenhuma.
- Validações: Nenhuma explícita neste método, mas
AutenticarAPIpossui validação. - Regras de negócio: Autenticação automática antes de fazer a requisição POST.
PostFolhaWebApi(EnumFolhaWebApi pEndereco, string pParametros)
- Lógica: Similar ao método anterior, mas para enviar parâmetros como string na URL.
- Chama
AutenticarAPIpara obter um token de autenticação, usandoNomeCentroServicoeCpfUsuarioLogado. - Chama a sobrecarga
PostFolhaWebApi(string pToken, EnumFolhaWebApi pEndereco, string pParametros)com o token obtido e os parâmetros originais. - Retorna a resposta da API.
- Stored Procedures chamadas: Nenhuma.
- Validações: Nenhuma explícita neste método, mas
AutenticarAPIpossui validação. - Regras de negócio: Autenticação automática antes de fazer a requisição POST.
PostFolhaWebApi(string pToken, TObjeto pObjeto, EnumFolhaWebApi pEndereco)
- Lógica: Realiza a requisição HTTP POST para a API da Folha com um token e um objeto serializado.
- Cria uma instância de
BetterWebClient. - Configura o
Encodingpara UTF8. - Define
BaseAddresscom o_EnderecoBaseda API. - Limpa os cabeçalhos e adiciona
Content-Type: application/json. - Adiciona o cabeçalho
Authorizationcom o token fornecido (formato “Bearer {token}”). - Serializa o
pObjetopara JSON. - Tenta enviar a string serializada para o endpoint da API (obtido de
pEndereco.GetDescription()) usandoclient.UploadString. - Em caso de
WebException, lê a resposta de erro e lança uma novaExceptioncom a mensagem desserializada. - Verifica o
StatusCodeda resposta. Se não forOK, lança umaExceptionvazia. - Retorna a resposta da API como string.
- Stored Procedures chamadas: Nenhuma.
- Validações:
- Verifica se o
StatusCodeda resposta HTTP éOK.
- Exceções:
WebException: Capturada e relançada comoExceptioncom a mensagem de erro da API.Exception: Lançada se oStatusCodenão forOK.
PostFolhaWebApi(string pToken, EnumFolhaWebApi pEndereco, string pParametros)
- Lógica: Realiza a requisição HTTP POST para a API da Folha com um token e parâmetros na URL.
- Cria uma instância de
BetterWebClient. - Configura o
Encodingpara UTF8. - Define
BaseAddresscom o_EnderecoBaseda API. - Limpa os cabeçalhos e adiciona
Content-Type: application/json. - Adiciona o cabeçalho
Authorizationcom o token fornecido (formato “Bearer {token}”). - Constrói o link da requisição combinando o endpoint (
pEndereco.GetDescription()) e ospParametros. - Tenta enviar a requisição POST para o link construído usando
client.UploadString. - Em caso de
WebException, lê a resposta de erro e lança uma novaExceptioncom a mensagem desserializada. - Verifica o
StatusCodeda resposta. Se não forOK, lança umaExceptionvazia. - Retorna a resposta da API como string.
- Stored Procedures chamadas: Nenhuma.
- Validações:
- Verifica se o
StatusCodeda resposta HTTP éOK.
- Exceções:
WebException: Capturada e relançada comoExceptioncom a mensagem de erro da API.Exception: Lançada se oStatusCodenão forOK.
AutenticarAPI(string pCentroServico, string pCPFUsuario)
- Lógica: Autentica a aplicação na API da Folha para obter um token de acesso.
- Validação: Verifica se
pCentroServicoepCPFUsuariosão nulos ou vazios. Se sim, lança umaException. - Define o corpo da requisição para autenticação (username, password, grant_type). Os valores são fixos (“webfopag_app”, “1C6E5736-B4E3-4398-88AC-723AE8BF622F”, “password”).
- Cria uma instância de
BetterWebClient. - Define
BaseAddresscom o_EnderecoBaseda API. - Adiciona os cabeçalhos “CS” (Centro de Serviço) e “CpfUsuario” com os valores fornecidos.
- Envia a requisição POST para o endpoint
EnumFolhaWebApi.Token.GetDescription()com o corpo da requisição. - Verifica o
StatusCodeda resposta. Se não forOK, lança umaExceptionvazia. - Desserializa a resposta JSON para um objeto
TokenWebAPI. - Retorna o
access_tokendo objetoTokenWebAPI.
- Stored Procedures chamadas: Nenhuma.
- Validações:
pCentroServicoepCPFUsuarionão podem ser nulos ou vazios.- Verifica se o
StatusCodeda resposta HTTP éOK.
- Exceções:
Exception: Lançada sepCentroServicooupCPFUsuarioforem inválidos, ou se oStatusCodeda autenticação não forOK.
Stored Procedures
Nenhuma stored procedure é chamada diretamente por esta classe, pois ela interage com uma API RESTful.
FuncaoEspecifica
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FuncaoEspecifica_P1.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FuncaoEspecifica_P2.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
FuncaoEspecifica | public FuncaoEspecifica() | Construtor padrão da classe. |
FuncaoEspecifica | public FuncaoEspecifica(int idFuncaoEspecifica) | Construtor que inicializa a instância com um ID existente, marcando-a como persistida. |
Save | public void Save() | Salva a instância atual de FuncaoEspecifica no banco de dados (insere se não persistida, atualiza se modificada). |
Save | public void Save(SqlTransaction trans) | Salva a instância atual de FuncaoEspecifica no banco de dados dentro de uma transação. |
Delete | public static void Delete(int idFuncaoEspecifica) | Exclui um registro de FuncaoEspecifica do banco de dados pelo ID. |
Delete | public static void Delete(int idFuncaoEspecifica, SqlTransaction trans) | Exclui um registro de FuncaoEspecifica do banco de dados pelo ID, dentro de uma transação. |
Delete | public static void Delete(List<int> idFuncaoEspecifica) | Exclui múltiplos registros de FuncaoEspecifica do banco de dados por uma lista de IDs. |
LoadDataReader | public static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Retorna um IDataReader com uma consulta paginada e ordenada de FuncaoEspecifica. |
LoadObject | public static FuncaoEspecifica LoadObject(int idFuncaoEspecifica) | Retorna uma instância de FuncaoEspecifica a partir do banco de dados pelo ID. |
LoadObject | public static FuncaoEspecifica LoadObject(int idFuncaoEspecifica, SqlTransaction trans) | Retorna uma instância de FuncaoEspecifica a partir do banco de dados pelo ID, dentro de uma transação. |
CompleteObject | public bool CompleteObject() | Completa as propriedades da instância atual de FuncaoEspecifica a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa as propriedades da instância atual de FuncaoEspecifica a partir do banco de dados, dentro de uma transação. |
Listar | public static List<FuncaoEspecifica> Listar() | Retorna uma lista de todas as instâncias de FuncaoEspecifica do banco de dados. |
Salvar | public static void Salvar(bool funcaoMatriz, FuncaoEspecifica objFuncaoEspecifica, FuncaoSolicitacao objFuncaoSolicitacao, List<CNAEDivisao> listCnae) | Salva uma função específica e suas associações (CNAE, solicitação, atualização), com lógica para função matriz. |
Salvar | public static void Salvar(bool funcaoMatriz, FuncaoEspecifica objFuncaoEspecifica, FuncaoSolicitacao objFuncaoSolicitacao, List<CNAEDivisao> listCnae, SqlTransaction trans) | Salva uma função específica e suas associações dentro de uma transação. |
SalvarAtualizacao | public static void SalvarAtualizacao(FuncaoEspecifica objFuncao, FuncaoSolicitacao objFuncaoSolicitacao, SqlTransaction trans) | Salva uma atualização de função específica no sistema. |
CarregarPorCBO_Nome | public static bool CarregarPorCBO_Nome(string valor, out FuncaoEspecifica objFuncao) | Carrega uma função específica pelo CBO e nome. |
CarregarPorFuncao | public static bool CarregarPorFuncao(int idFuncao, out FuncaoEspecifica objFuncaoEspecifica) | Carrega uma função específica pelo ID da função agrupada. |
CarregarPorFuncaoCentroServicoEmpresaContrato | public static FuncaoEspecifica CarregarPorFuncaoCentroServicoEmpresaContrato(int idFuncao, int idCentroServico, decimal? numCNPJEmpresa, string codContrato) | Carrega uma função específica por ID da função, Centro de Serviço, CNPJ da empresa e código do contrato. |
CarregarPorNome | public static bool CarregarPorNome(string nome, out FuncaoEspecifica objFuncaoEspecifica) | Carrega uma função específica pelo nome. |
ListarFuncaoAutoComplete | public static string[] ListarFuncaoAutoComplete(string valor, int count, bool funcaoAgrupadora) | Retorna uma lista de sugestões de funções para autocomplete, filtrando por nome e tipo (agrupadora ou não). |
ListarPorCBO_NomeParcial | public static Dictionary<int, string> ListarPorCBO_NomeParcial(string valor, int count) | Lista funções específicas por CBO ou nome parcial, retornando um dicionário com número de linha e CBO - Descrição da Função. |
SalvarPorFuncaoOficial | public static void SalvarPorFuncaoOficial(int idFuncao) | Cria um registro de FuncaoEspecifica a partir de um registro de função oficial. |
ExisteFuncaoIgual | public static Boolean ExisteFuncaoIgual(FuncaoEspecifica objFuncaoExclusiva) | Verifica se já existe uma função específica igual (com os mesmos atributos de descrição, CBO, centro de serviço, CNPJ da empresa e contrato). |
ExisteFuncaoIgual2 | public static Boolean ExisteFuncaoIgual2(FuncaoEspecifica objFuncaoExclusiva) | Verifica se já existe uma função específica igual, incluindo CPF e CEI da empresa. |
ListarFuncaoAdicionada | public static IDataReader ListarFuncaoAdicionada(Dictionary<int, string> pIdFuncao, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros) | Lista funções adicionadas, paginadas e ordenadas, com base em uma lista de IDs de função. |
ListarFuncaoEspecificaCriacaoEmpresa | public static List<int> ListarFuncaoEspecificaCriacaoEmpresa(SqlTransaction trans) | Retorna uma lista de IDs de funções específicas sem vínculo com centro de serviço, para replicação em contratos de empresa. |
CarregarPorCentroServicoCBONomeFuncao | public static FuncaoEspecifica CarregarPorCentroServicoCBONomeFuncao(int pIdCentroServico, string pCodigoCBO, string pDescricaoFuncao) | Carrega uma função específica pelo centro de serviço, CBO e nome da função. |
CarregarPorCBONomeFuncao | public static FuncaoEspecifica CarregarPorCBONomeFuncao(string pCodigoCBO, string pDescricaoFuncao) | Carrega uma função específica pelo CBO e nome da função, sem vínculo com centro de serviço, CNPJ da empresa ou contrato. |
CarregarPorCentroServicoCBONomeCNPJCEIEmpresa | public static FuncaoEspecifica CarregarPorCentroServicoCBONomeCNPJCEIEmpresa(int pIdCentroServico, string pCodigoCBO, string pDescricaoFuncao, decimal? pNumCNPJEmpresa, decimal? pNumCEI) | Carrega uma função específica pelo centro de serviço, CBO, nome da função, CNPJ da empresa e CEI. |
CarregarPorFuncaoCentroServicoContratoCBONomeEscolaridadeSalarialCNPJCEIEmpresa | public static FuncaoEspecifica CarregarPorFuncaoCentroServicoContratoCBONomeEscolaridadeSalarialCNPJCEIEmpresa(int pIdFuncao, int pIdCentroServico, string pCodContrato, string pCodCBO, string pDesFuncao, int pIdEscolaridade, int pIdClasseSalarial, string pCodFuncaoFolha, decimal? pNumCNPJEmpresa, decimal? pNumCEI, decimal? pNumCPFEmpresa) | Carrega uma função específica por múltiplos critérios, incluindo ID da função, centro de serviço, contrato, CBO, nome, escolaridade, classe salarial, código da função na folha, CNPJ, CEI e CPF da empresa. |
Detalhamento de Métodos Importantes
Save()
- Lógica: Este método é responsável por persistir o estado do objeto
FuncaoEspecificano banco de dados.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate().
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert()ouUpdate().
Save(SqlTransaction trans)
- Lógica: Similar ao
Save()sem parâmetros, mas executa a operação dentro de uma transação SQL fornecida.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(trans). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate(trans).
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert(trans)ouUpdate(trans).
Delete(int idFuncaoEspecifica)
- Lógica: Exclui um registro de
FuncaoEspecificado banco de dados.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Funcao_Especificacom o valor doidFuncaoEspecificafornecido. - Executa uma query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Funcao_Especifica WHERE Idf_Funcao_Especifica = @Idf_Funcao_Especifica @Idf_Funcao_Especifica(Int): Identificador da Função Específica a ser excluída.
Delete(int idFuncaoEspecifica, SqlTransaction trans)
- Lógica: Exclui um registro de
FuncaoEspecificado banco de dados dentro de uma transação.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Funcao_Especificacom o valor doidFuncaoEspecificafornecido. - Executa uma query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuerye a transação fornecida.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Funcao_Especifica WHERE Idf_Funcao_Especifica = @Idf_Funcao_Especifica @Idf_Funcao_Especifica(Int): Identificador da Função Específica a ser excluída.
Delete(List idFuncaoEspecifica)
- Lógica: Exclui múltiplos registros de
FuncaoEspecificado banco de dados.
- Cria uma lista de
SqlParametere uma stringqueryinicial. - Itera sobre a lista
idFuncaoEspecifica:
- Para cada ID, cria um parâmetro
@parmXe o adiciona àquerye à lista de parâmetros. - Adiciona o valor do ID ao respectivo parâmetro.
- Completa a
querycom a cláusulaIN. - Executa a query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
DELETE FROM plataforma.TAB_Funcao_Especifica WHERE Idf_Funcao_Especifica IN (@parm0, @parm1, ...) @parmX(Int): Identificadores das Funções Específicas a serem excluídas.
LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica: Prepara e executa uma consulta paginada e ordenada para retornar dados de
FuncaoEspecifica.
- Calcula os valores de
inicioefimpara a paginação com base empaginaCorrenteetamanhoPagina. - Constrói a string SQL
SPSELECTPAGpara selecionar os dados comROW_NUMBER()para ordenação e paginação. - Constrói a string SQL
SPSELECTCOUNTpara contar o total de registros. - Executa
SPSELECTCOUNTpara obter ototalRegistros. - Executa
SPSELECTPAGpara retornar oIDataReadercom os dados paginados.
- Stored Procedures chamadas:
SELECT COUNT(*) FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Fun.Idf_Funcao_Especifica, ... FROM plataforma.TAB_Funcao_Especifica Fun) AS temp@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Fun.Idf_Funcao_Especifica, ... FROM plataforma.TAB_Funcao_Especifica Fun) AS temp WHERE RowId BETWEEN @inicio AND @fim@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).@inicio(Int): Início do range de linhas para paginação.@fim(Int): Fim do range de linhas para paginação.
LoadObject(int idFuncaoEspecifica)
- Lógica: Carrega um objeto
FuncaoEspecificapelo seu ID.
- Chama o método
LoadDataReader(idFuncaoEspecifica)para obter umIDataReader. - Cria uma nova instância de
FuncaoEspecifica. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idFuncaoEspecifica).
LoadObject(int idFuncaoEspecifica, SqlTransaction trans)
- Lógica: Similar ao
LoadObject(int idFuncaoEspecifica), mas executa a operação dentro de uma transação SQL fornecida.
- Chama o método
LoadDataReader(idFuncaoEspecifica, trans)para obter umIDataReader. - Cria uma nova instância de
FuncaoEspecifica. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idFuncaoEspecifica, SqlTransaction trans).
CompleteObject()
- Lógica: Preenche as propriedades da instância atual de
FuncaoEspecificaa partir do banco de dados, usando o_idFuncaoEspecificajá existente na instância.
- Chama
LoadDataReader(this._idFuncaoEspecifica)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idFuncaoEspecifica).
CompleteObject(SqlTransaction trans)
- Lógica: Similar ao
CompleteObject(), mas executa a operação dentro de uma transação SQL fornecida.
- Chama
LoadDataReader(this._idFuncaoEspecifica, trans)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idFuncaoEspecifica, SqlTransaction trans).
Listar()
- Lógica: Retorna uma lista de todas as instâncias de
FuncaoEspecifica.
- Cria uma
List<FuncaoEspecifica>vazia. - Executa a query
SPSELECTpara obter todos os registros deFuncaoEspecifica. - Itera sobre o
IDataReader:
- Cria uma nova instância de
FuncaoEspecifica. - Chama
SetInstancepara preencher a instância (combDispose = falsepara não fechar o reader prematuramente). - Adiciona a instância à lista.
- Retorna a lista.
- Stored Procedures chamadas:
SELECT * FROM plataforma.TAB_Funcao_Especifica
Salvar(bool funcaoMatriz, FuncaoEspecifica objFuncaoEspecifica, FuncaoSolicitacao objFuncaoSolicitacao, List listCnae)
- Lógica: Salva uma função específica e suas associações (CNAE, solicitação, atualização).
- Inicia uma transação SQL.
- Chama a sobrecarga
Salvar(bool funcaoMatriz, FuncaoEspecifica objFuncaoEspecifica, FuncaoSolicitacao objFuncaoSolicitacao, List<CNAEDivisao> listCnae, SqlTransaction trans)para realizar a lógica de salvamento. - Comita a transação em caso de sucesso.
- Em caso de erro, faz rollback da transação e relança a exceção.
- Stored Procedures chamadas: Nenhuma diretamente. Chama a sobrecarga
Salvarcom transação.
Salvar(bool funcaoMatriz, FuncaoEspecifica objFuncaoEspecifica, FuncaoSolicitacao objFuncaoSolicitacao, List listCnae, SqlTransaction trans)
- Lógica: Salva uma função específica e suas associações dentro de uma transação.
- Lógica de Função Matriz: Se
funcaoMatrizfortrue:
- Cria um novo objeto
Funcao. - Copia as propriedades relevantes de
objFuncaoEspecificapara o novoobjFuncao. - Salva o
objFuncao(função oficial) usandoobjFuncao.Save(trans). - Atribui o
objFuncaorecém-salvo à propriedadeFuncaodeobjFuncaoEspecifica.
- Salva
objFuncaoEspecificausandoobjFuncaoEspecifica.Save(trans). - Exclui os CNAEs existentes para
objFuncaoEspecificausandoFuncaoEspecificaCNAE.Delete(objFuncaoEspecifica.IdFuncaoEspecifica, trans). - Itera sobre
listCnae:
- Se
funcaoMatrizfortrue, cria e salva umFuncaoCNAEassociado aoobjFuncaoeobjCNAEDivisao. - Cria e salva um
FuncaoEspecificaCNAEassociado aobjFuncaoEspecificaeobjCNAEDivisao.
- Lógica de Solicitação de Função: Se
objFuncaoSolicitacaonão fornull:
- Cria e preenche um objeto
Atualizacaocom informações da solicitação e da função específica. - Salva o
objAtualizacaousandoobjAtualizacao.Save(trans). - Cria e preenche um objeto
AtualizacaoFuncaoassociado àAtualizacaoeFuncaoEspecifica. - Salva o
objAtualizacaoFuncaousandoobjAtualizacaoFuncao.Save(trans). - Atualiza
objFuncaoSolicitacaocom aFuncaoEspecificae defineDataResolucaoeStatusAprovacao. - Salva
objFuncaoSolicitacaousandoobjFuncaoSolicitacao.Save(trans).
- Stored Procedures chamadas: Nenhuma diretamente. Chama
objFuncao.Save(trans),objFuncaoEspecifica.Save(trans),FuncaoEspecificaCNAE.Delete(int idFuncaoEspecifica, SqlTransaction trans),objFuncaoCnae.Save(trans),objFuncaoEspecificaCnae.Save(trans),objAtualizacao.Save(trans),objAtualizacaoFuncao.Save(trans),objFuncaoSolicitacao.Save(trans).
SalvarAtualizacao(FuncaoEspecifica objFuncao, FuncaoSolicitacao objFuncaoSolicitacao, SqlTransaction trans)
- Lógica: Salva uma atualização de função específica no sistema.
- Cria e preenche um objeto
Atualizacaocom informações do centro de serviço, CNPJ da empresa, tipo de atualização e descrição. - Define
DataPublicacaocomo a data e hora atuais. - Salva o
objAtualizacaousandoobjAtualizacao.Save(trans). - Cria e preenche um objeto
AtualizacaoFuncaoassociado àAtualizacaoeFuncaoEspecifica. - Salva o
objAtualizacaoFuncaousandoobjAtualizacaoFuncao.Save(trans).
- Stored Procedures chamadas: Nenhuma diretamente. Chama
objAtualizacao.Save(trans)eobjAtualizacaoFuncao.Save(trans).
CarregarPorCBO_Nome(string valor, out FuncaoEspecifica objFuncao)
- Lógica: Carrega uma função específica pelo CBO e nome.
- Chama o método privado
ListarPorCBO_Nome(valor)para obter umIDataReader. - Cria uma nova instância de
FuncaoEspecifica. - Chama
SetInstancepara preencher a instância. - Se
SetInstanceretornartrue, defineobjFuncaoe retornatrue. - Caso contrário, define
objFuncaocomonulle retornafalse.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarPorCBO_Nome(string valor).
CarregarPorFuncao(int idFuncao, out FuncaoEspecifica objFuncaoEspecifica)
- Lógica: Carrega uma função específica pelo ID da função agrupada.
- Chama o método privado
ListarPorFuncao(idFuncao)para obter umIDataReader. - Cria uma nova instância de
FuncaoEspecifica. - Chama
SetInstancepara preencher a instância. - Se
SetInstanceretornartrue, defineobjFuncaoEspecificae retornatrue. - Caso contrário, define
objFuncaoEspecificacomonulle retornafalse.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarPorFuncao(int idFuncao).
CarregarPorFuncaoCentroServicoEmpresaContrato(int idFuncao, int idCentroServico, decimal? numCNPJEmpresa, string codContrato)
- Lógica: Carrega uma função específica por ID da função, Centro de Serviço, CNPJ da empresa e código do contrato.
- Cria uma nova instância de
FuncaoEspecifica. - Chama o método privado
ListarPorFuncaoCentroServicoEmpresaContratopara obter umIDataReader. - Chama
SetInstancepara preencher a instância. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, retorna
null.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarPorFuncaoCentroServicoEmpresaContrato(int pIdFuncao, int pIdCentroServico, decimal? pNumCNPJEmpresa, string pCodigoContrato).
CarregarPorNome(string nome, out FuncaoEspecifica objFuncaoEspecifica)
- Lógica: Carrega uma função específica pelo nome.
- Chama o método privado
ListarFuncao(nome)para obter umIDataReader. - Cria uma nova instância de
FuncaoEspecifica. - Chama
SetInstancepara preencher a instância. - Se
SetInstanceretornartrue, defineobjFuncaoEspecificae retornatrue. - Caso contrário, define
objFuncaoEspecificacomonulle retornafalse.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarFuncao(string nome).
ListarFuncaoAutoComplete(string valor, int count, bool funcaoAgrupadora)
- Lógica: Retorna uma lista de sugestões de funções para autocomplete.
- Cria uma lista de
SqlParametere adiciona@Valore@Count. - Define os valores dos parâmetros.
- Define a query base como
SPSELECTAUTOCOMPLETE. - Se
funcaoAgrupadorafortrue, adiciona uma cláusulaWHERE Idf_Funcao IS NULL. - Adiciona uma cláusula
ORDER BYpara priorizar correspondências exatas no início da descrição. - Executa a query e preenche uma
List<string>com as descrições das funções. - Retorna a lista como um array de strings.
- Stored Procedures chamadas:
SELECT TOP (@Count) Des_Funcao, Idf_Funcao FROM plataforma.TAB_Funcao_Especifica WHERE Des_Funcao LIKE '%' + @Valor + '%' COLLATE SQL_Latin1_General_CP1_CI_AI ORDER BY CASE WHEN Des_Funcao LIKE @Valor + '%' THEN 0 ELSE 1 END, Des_Funcao @Count(Int): Número máximo de registros a retornar.@Valor(VarChar): Valor parcial para pesquisa na descrição da função.
ListarPorCBO_NomeParcial(string valor, int count)
- Lógica: Lista funções específicas por CBO ou nome parcial.
- Cria uma lista de
SqlParametere adiciona@Valore@Count. - Define os valores dos parâmetros.
- Executa a query
SPSELFUNCCBONOMEPARCIAL. - Itera sobre o
IDataReadere preenche umDictionary<int, string>comRow_Numbercomo chave e a concatenação deCod_CBOeDes_Funcaocomo valor. - Retorna o dicionário.
- Stored Procedures chamadas:
SELECT TOP (@Count) row_number() OVER (ORDER BY Des_Funcao ASC) AS 'Row_Number', Cod_Cbo, Des_Funcao FROM (SELECT DISTINCT(Cod_Cbo), Des_Funcao FROM plataforma.TAB_Funcao_Especifica FEs WHERE (FEs.Des_Funcao LIKE '%' + @Valor + '%' COLLATE SQL_Latin1_General_CP1_CI_AI OR FEs.Cod_CBO LIKE '%' + @Valor + '%' COLLATE SQL_Latin1_General_CP1_CI_AI) AND FEs.Idf_Funcao IS NOT NULL) as temp @Count(Int): Número máximo de registros a retornar.@Valor(VarChar): Valor parcial para pesquisa no CBO ou descrição da função.
SalvarPorFuncaoOficial(int idFuncao)
- Lógica: Cria um registro de
FuncaoEspecificaa partir de um registro de função oficial.
- Cria uma nova instância de
FuncaoEspecifica. - Define as propriedades de vínculo (centro de serviço, CNPJ, CPF, CEI, contrato) como
null, pois é uma função oficial. - Carrega o objeto
Funcao(função oficial) usandoFuncao.LoadObject(idFuncao). - Copia as propriedades relevantes do
objFuncaoparaobjFuncaoEspecifica. - Salva o
objFuncaoEspecificausandoobjFuncaoEspecifica.Save().
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Funcao.LoadObject(int idFuncao)eobjFuncaoEspecifica.Save().
ExisteFuncaoIgual(FuncaoEspecifica objFuncaoExclusiva)
- Lógica: Verifica se já existe uma função específica com os mesmos atributos principais.
- Cria uma lista de
SqlParametere adiciona@Des_Funcao,@Cod_CBO,@Idf_Centro_Servico,@Num_CNPJ_Empresa,@Cod_Contrato,@Idf_Funcao, e@Idf_Funcao_Especifica. - Define os valores dos parâmetros, tratando
nulloustring.EmptycomoDBNull.Value. - Executa a query
SPVERIFICARFUNCAOIGUAL. - Retorna
truese a query retornar algum resultado (ou seja, a função já existe),falsecaso contrário.
- Stored Procedures chamadas:
SELECT 1 FROM plataforma.TAB_Funcao_Especifica WHERE Des_Funcao = @Des_Funcao AND Cod_CBO = @Cod_CBO AND Idf_Centro_Servico = @Idf_Centro_Servico AND Num_CNPJ_Empresa = @Num_CNPJ_Empresa AND Cod_Contrato = @Cod_Contrato AND Idf_Funcao = @Idf_Funcao AND(@Idf_Funcao_Especifica IS NULL OR Idf_Funcao_Especifica = @Idf_Funcao_Especifica) AND Flg_Funcao_Gratificada @Des_Funcao(VarChar): Descrição da função.@Cod_CBO(VarChar): Código CBO.@Idf_Centro_Servico(Int): ID do Centro de Serviço.@Num_CNPJ_Empresa(Decimal): CNPJ da empresa.@Cod_Contrato(VarChar): Código do contrato.@Idf_Funcao(VarChar): ID da função.@Idf_Funcao_Especifica(VarChar, opcional): ID da função específica (para exclusão da própria função na verificação de duplicidade).
ExisteFuncaoIgual2(FuncaoEspecifica objFuncaoExclusiva)
- Lógica: Verifica se já existe uma função específica com os mesmos atributos principais, incluindo CPF e CEI da empresa.
- Cria uma lista de
SqlParametere adiciona@Des_Funcao,@Cod_CBO,@Idf_Centro_Servico,@Num_CNPJ_Empresa,@Cod_Contrato,@Idf_Funcao,@Idf_Funcao_Especifica,@Num_CPF_Empresa, e@Num_CEI. - Define os valores dos parâmetros, tratando
nulloustring.EmptycomoDBNull.Value. - Executa a query
SPVERIFICARFUNCAOIGUAL2. - Retorna
truese a query retornar algum resultado (ou seja, a função já existe),falsecaso contrário.
- Stored Procedures chamadas:
SELECT 1 FROM plataforma.TAB_Funcao_Especifica WHERE Des_Funcao = @Des_Funcao AND Cod_CBO = @Cod_CBO AND Idf_Centro_Servico = @Idf_Centro_Servico AND (@Num_CNPJ_Empresa is null or Num_CNPJ_Empresa = @Num_CNPJ_Empresa) AND (@Num_CEI is null or Num_CEI = @Num_CEI) AND (@Num_CPF_Empresa is null or Num_CPF_Empresa = @Num_CPF_Empresa) AND Cod_Contrato = @Cod_Contrato AND Idf_Funcao = @Idf_Funcao AND(@Idf_Funcao_Especifica IS NULL OR Idf_Funcao_Especifica = @Idf_Funcao_Especifica) @Des_Funcao(VarChar): Descrição da função.@Cod_CBO(VarChar): Código CBO.@Idf_Centro_Servico(Int): ID do Centro de Serviço.@Num_CNPJ_Empresa(Decimal, opcional): CNPJ da empresa.@Cod_Contrato(VarChar): Código do contrato.@Idf_Funcao(VarChar): ID da função.@Idf_Funcao_Especifica(VarChar, opcional): ID da função específica.@Num_CPF_Empresa(Decimal, opcional): CPF da empresa.@Num_CEI(Decimal, opcional): CEI da empresa.
ListarFuncaoAdicionada(Dictionary<int, string> pIdFuncao, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros)
- Lógica: Lista funções adicionadas, paginadas e ordenadas, com base em uma lista de IDs de função.
- Inicializa variáveis para
where,queryPaginada,queryCount,parms,inicioefim. - Calcula
inicioefimpara a paginação. - Se
pIdFuncaonão for nulo e tiver itens, constrói a cláusulaWHERE Idf_Funcao_Especifica IN (...)a partir dos IDs. Caso contrário, defineWHERE 1 = 2para não retornar resultados. - Constrói
queryPaginadaequeryCountusando a query baseSPSELFUNCAOe as cláusulas de paginação e ordenação. - Executa
queryCountpara obterpTotalRegistros. - Executa
queryPaginadae retorna oIDataReader.
- Stored Procedures chamadas:
SELECT COUNT(*) FROM (SELECT Idf_Funcao_Especifica, (Cod_CBO + ' - ' + Des_Funcao)as funcao FROM plataforma.TAB_Funcao_Especifica WHERE Idf_Funcao_Especifica IN (...)) AS tempSELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY @pNomeColuna @pDirecaoOrdenacao) AS RowID, * FROM (SELECT Idf_Funcao_Especifica, (Cod_CBO + ' - ' + Des_Funcao)as funcao FROM plataforma.TAB_Funcao_Especifica WHERE Idf_Funcao_Especifica IN (...)) AS temp) AS temp WHERE RowId BETWEEN @inicio AND @fim@pNomeColuna(string): Nome da coluna para ordenação.@pDirecaoOrdenacao(string): Direção da ordenação (ASC/DESC).@inicio(Int): Início do range de linhas para paginação.@fim(Int): Fim do range de linhas para paginação.
ListarFuncaoEspecificaCriacaoEmpresa(SqlTransaction trans)
- Lógica: Retorna uma lista de IDs de funções específicas sem vínculo com centro de serviço, para replicação em contratos de empresa.
- Cria uma
List<int>vazia. - Executa a query
SELLISTARFUNCAOESPECIFICACRIACAOEMPRESAdentro da transação fornecida. - Itera sobre o
IDataReadere adiciona osIdf_Funcao_Especificaà lista. - Fecha o
IDataReader. - Retorna a lista de IDs.
- Stored Procedures chamadas:
SELECT FEs.Idf_Funcao_Especifica FROM plataforma.TAB_Funcao_Especifica FEs (NOLOCK) WHERE Idf_Centro_Servico IS NULL
CarregarPorCentroServicoCBONomeFuncao(int pIdCentroServico, string pCodigoCBO, string pDescricaoFuncao)
- Lógica: Carrega uma função específica pelo centro de serviço, CBO e nome da função.
- Cria uma lista de
SqlParametere adiciona@Idf_Centro_Servico,@Cod_CBOe@Des_Funcao. - Define os valores dos parâmetros.
- Executa a query
SPSELECTCARREGARPORCENTROSERVICOCBONOME. - Cria uma nova instância de
FuncaoEspecifica. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT fe.* FROM plataforma.TAB_Funcao_Especifica fe WHERE fe.Idf_Centro_Servico = @Idf_Centro_Servico AND fe.Cod_CBO = @Cod_CBO AND fe.Des_Funcao_Pesquisa LIKE @Des_Funcao @Idf_Centro_Servico(Int): ID do Centro de Serviço.@Cod_CBO(VarChar): Código CBO.@Des_Funcao(VarChar): Descrição da função.
CarregarPorCBONomeFuncao(string pCodigoCBO, string pDescricaoFuncao)
- Lógica: Carrega uma função específica pelo CBO e nome da função, sem vínculos com centro de serviço, CNPJ da empresa ou contrato.
- Cria uma lista de
SqlParametere adiciona@Cod_CBOe@Des_Funcao. - Define os valores dos parâmetros.
- Executa a query
SPSELECTCARREGARPORCBONOME. - Cria uma nova instância de
FuncaoEspecifica. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT fe.* FROM plataforma.TAB_Funcao_Especifica fe WHERE fe.Cod_CBO = @Cod_CBO AND fe.Des_Funcao_Pesquisa LIKE @Des_Funcao AND fe.Idf_Centro_Servico IS NULL AND fe.Num_CNPJ_Empresa IS NULL AND fe.Cod_Contrato IS NULL @Cod_CBO(VarChar): Código CBO.@Des_Funcao(VarChar): Descrição da função.
CarregarPorCentroServicoCBONomeCNPJCEIEmpresa(int pIdCentroServico, string pCodigoCBO, string pDescricaoFuncao, decimal? pNumCNPJEmpresa, decimal? pNumCEI)
- Lógica: Carrega uma função específica pelo centro de serviço, CBO, nome da função, CNPJ da empresa e CEI.
- Cria uma lista de
SqlParametere adiciona@Idf_Centro_Servico,@Cod_CBO,@Des_Funcao,@Num_CNPJ_Empresae@Num_CEI. - Define os valores dos parâmetros, tratando
nullpara CNPJ e CEI. - Executa a query
SPSELECTCARREGARPORCENTROSERVICOCBONOMECNPJCEIEMPRESA. - Cria uma nova instância de
FuncaoEspecifica. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT fe.* FROM plataforma.TAB_Funcao_Especifica fe WHERE fe.Idf_Centro_Servico = @Idf_Centro_Servico AND fe.Cod_CBO = @Cod_CBO AND fe.Des_Funcao_Pesquisa LIKE @Des_Funcao AND (@Num_CNPJ_Empresa IS NULL OR fe.Num_CNPJ_Empresa = @Num_CNPJ_Empresa) AND (@Num_CEI IS NULL OR fe.Num_CEI = @Num_CEI) @Idf_Centro_Servico(Int): ID do Centro de Serviço.@Cod_CBO(VarChar): Código CBO.@Des_Funcao(VarChar): Descrição da função.@Num_CNPJ_Empresa(Decimal, opcional): CNPJ da empresa.@Num_CEI(Decimal, opcional): CEI da empresa.
CarregarPorFuncaoCentroServicoContratoCBONomeEscolaridadeSalarialCNPJCEIEmpresa(int pIdFuncao, int pIdCentroServico, string pCodContrato, string pCodCBO, string pDesFuncao, int pIdEscolaridade, int pIdClasseSalarial, string pCodFuncaoFolha, decimal? pNumCNPJEmpresa, decimal? pNumCEI, decimal? pNumCPFEmpresa)
- Lógica: Carrega uma função específica por múltiplos critérios.
- Cria uma lista de
SqlParametere adiciona todos os parâmetros de filtro. - Define os valores dos parâmetros, tratando
nullpara campos opcionais. - Executa a query
SPSELECTCARREGARPORFUNCAOCENTROSERVICOCONTRATOCBONOMEESCOLARIDADESALARIALCNPJCEIEMPRESA. - Cria uma nova instância de
FuncaoEspecifica. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT fe.* FROM plataforma.TAB_Funcao_Especifica fe WHERE fe.Idf_Funcao = @Idf_Funcao AND fe.Idf_Centro_Servico = @Idf_Centro_Servico AND fe.Cod_Contrato = @Cod_Contrato AND fe.Cod_CBO = @Cod_CBO AND fe.Des_Funcao = @Des_Funcao AND fe.Idf_Escolaridade = @Idf_Escolaridade AND fe.Idf_Classe_Salarial = @Idf_Classe_Salarial AND (@Cod_Funcao_Folha IS NULL OR fe.Cod_Funcao_Folha = @Cod_Funcao_Folha) AND (@Num_CNPJ_Empresa IS NULL OR fe.Num_CNPJ_Empresa = @Num_CNPJ_Empresa) AND (@Num_CEI IS NULL OR fe.Num_CEI = @Num_CEI) AND (@Num_CPF_Empresa IS NULL OR fe.Num_CPF_Empresa = @Num_CPF_Empresa) @Idf_Funcao(Int): ID da função.@Idf_Centro_Servico(Int): ID do Centro de Serviço.@Cod_Contrato(VarChar): Código do contrato.@Cod_CBO(VarChar): Código CBO.@Des_Funcao(VarChar): Descrição da função.@Idf_Escolaridade(Int): ID da escolaridade.@Idf_Classe_Salarial(Int): ID da classe salarial.@Cod_Funcao_Folha(VarChar, opcional): Código da função na folha.@Num_CNPJ_Empresa(Decimal, opcional): CNPJ da empresa.@Num_CEI(Decimal, opcional): CEI da empresa.@Num_CPF_Empresa(Decimal, opcional): CPF da empresa.
Stored Procedures
| Nome | Parâmetros | Propósito |
|---|---|---|
INSERT INTO plataforma.TAB_Funcao_Especifica | @Des_Funcao, @Des_Funcao_Pesquisa, @Idf_Funcao_Categoria, @Cod_CBO, @Cod_Funcao_Folha, @Idf_Classe_Salarial, @Idf_Escolaridade, @Idf_Area_BNE, @Flg_Menor_Aprendiz, @Des_Job, @Des_Experiencia, @Flg_RAIS_Analfabeto, @Flg_RAIS_Nivel_Superior, @Flg_Conselho, @Flg_Curso_Especializacao, @Flg_Categoria_Sindical, @Dta_Cadastro, @Flg_Auditada, @Vlr_Piso_Profissional, @Qtd_Carga_Horaria_Diaria, @Des_Local_Trabalho, @Des_EPI, @Des_PPRA, @Des_PCMSO, @Idf_Funcao, @Des_Cursos, @Des_Competencias, @Des_Equipamentos, @Idf_Centro_Servico, @Num_CNPJ_Empresa, @Cod_Contrato, @Num_CPF_Empresa, @Num_CEI, @Flg_Funcao_Gratificada, @Flg_Preenche_Cota_Aprendiz, @Idf_Funcao_Especifica (OUTPUT) | Insere um novo registro na tabela plataforma.TAB_Funcao_Especifica e retorna o ID gerado. |
UPDATE plataforma.TAB_Funcao_Especifica | @Des_Funcao, @Des_Funcao_Pesquisa, @Idf_Funcao_Categoria, @Cod_CBO, @Cod_Funcao_Folha, @Idf_Classe_Salarial, @Idf_Escolaridade, @Idf_Area_BNE, @Flg_Menor_Aprendiz, @Des_Job, @Des_Experiencia, @Flg_RAIS_Analfabeto, @Flg_RAIS_Nivel_Superior, @Flg_Conselho, @Flg_Curso_Especializacao, @Flg_Categoria_Sindical, @Dta_Cadastro, @Flg_Auditada, @Vlr_Piso_Profissional, @Qtd_Carga_Horaria_Diaria, @Des_Local_Trabalho, @Des_EPI, @Des_PPRA, @Des_PCMSO, @Idf_Funcao, @Des_Cursos, @Des_Competencias, @Des_Equipamentos, @Idf_Centro_Servico, @Num_CNPJ_Empresa, @Cod_Contrato, @Num_CPF_Empresa, @Num_CEI, @Flg_Funcao_Gratificada, @Flg_Preenche_Cota_Aprendiz, @Idf_Funcao_Especifica | Atualiza um registro existente na tabela plataforma.TAB_Funcao_Especifica. |
DELETE FROM plataforma.TAB_Funcao_Especifica | @Idf_Funcao_Especifica | Exclui um registro da tabela plataforma.TAB_Funcao_Especifica pelo ID. |
SELECT * FROM plataforma.TAB_Funcao_Especifica | @Idf_Funcao_Especifica | Seleciona um registro da tabela plataforma.TAB_Funcao_Especifica pelo ID. |
SELECT * FROM plataforma.TAB_Funcao_Especifica | (Nenhum) | Seleciona todos os registros da tabela plataforma.TAB_Funcao_Especifica. |
SELECT TOP (@Count) Des_Funcao, Idf_Funcao FROM plataforma.TAB_Funcao_Especifica | @Count, @Valor | Seleciona funções para autocomplete. |
SELECT DISTINCT(Cod_Cbo), Des_Funcao FROM plataforma.TAB_Funcao_Especifica | @Count, @Valor | Seleciona funções por CBO ou nome parcial. |
SELECT FEs.* FROM plataforma.TAB_Funcao_Especifica FEs | @Idf_Centro_Servico, @Num_CNPJ_Empresa, @Cod_Contrato, @Idf_Funcao | Seleciona funções específicas por códigos. |
SELECT FEs.* FROM plataforma.TAB_Funcao_Especifica FEs | @Idf_Funcao | Seleciona funções específicas por ID da função. |
SELECT FEs.* FROM plataforma.TAB_Funcao_Especifica FEs | @Idf_Funcao, @Idf_Centro_Servico, @Num_CNPJ_Empresa, @Cod_Contrato | Seleciona funções específicas por função, centro de serviço, empresa e contrato. |
SELECT FEs.* FROM plataforma.TAB_Funcao_Especifica FEs | @Idf_Centro_Servico, @Num_CPF_Empresa, @Cod_Contrato, @Idf_Funcao | Seleciona funções específicas por códigos (CPF/CEI). |
SELECT FEs.* FROM plataforma.TAB_Funcao_Especifica FEs | @Valor | Seleciona funções por CBO ou nome. |
SELECT 1 FROM plataforma.TAB_Funcao_Especifica | @Des_Funcao, @Cod_CBO, @Idf_Centro_Servico, @Num_CNPJ_Empresa, @Cod_Contrato, @Idf_Funcao, @Idf_Funcao_Especifica | Verifica se já existe uma função específica igual. |
SELECT 1 FROM plataforma.TAB_Funcao_Especifica | @Des_Funcao, @Cod_CBO, @Idf_Centro_Servico, @Num_CNPJ_Empresa, @Num_CEI, @Num_CPF_Empresa, @Cod_Contrato, @Idf_Funcao, @Idf_Funcao_Especifica | Verifica se já existe uma função específica igual (com mais detalhes). |
SELECT Idf_Funcao_Especifica, (Cod_CBO + ' - ' + Des_Funcao)as funcao FROM plataforma.TAB_Funcao_Especifica | (Nenhum) | Seleciona ID e descrição formatada da função específica. |
SELECT FEs.Idf_Funcao_Especifica FROM plataforma.TAB_Funcao_Especifica FEs (NOLOCK) WHERE Idf_Centro_Servico IS NULL | (Nenhum) | Lista funções específicas sem vínculo com centro de serviço. |
SELECT fe.* FROM plataforma.TAB_Funcao_Especifica fe WHERE fe.Idf_Centro_Servico = @Idf_Centro_Servico AND fe.Cod_CBO = @Cod_CBO AND fe.Des_Funcao_Pesquisa LIKE @Des_Funcao | @Idf_Centro_Servico, @Cod_CBO, @Des_Funcao | Carrega função específica por centro de serviço, CBO e nome. |
SELECT fe.* FROM plataforma.TAB_Funcao_Especifica fe WHERE fe.Cod_CBO = @Cod_CBO AND fe.Des_Funcao_Pesquisa LIKE @Des_Funcao AND fe.Idf_Centro_Servico IS NULL AND fe.Num_CNPJ_Empresa IS NULL AND fe.Cod_Contrato IS NULL | @Cod_CBO, @Des_Funcao | Carrega função específica por CBO e nome (sem vínculos). |
SELECT fe.* FROM plataforma.TAB_Funcao_Especifica fe WHERE fe.Idf_Centro_Servico = @Idf_Centro_Servico AND fe.Cod_CBO = @Cod_CBO AND fe.Des_Funcao_Pesquisa LIKE @Des_Funcao AND (@Num_CNPJ_Empresa IS NULL OR fe.Num_CNPJ_Empresa = @Num_CNPJ_Empresa) AND (@Num_CEI IS NULL OR fe.Num_CEI = @Num_CEI) | @Idf_Centro_Servico, @Cod_CBO, @Des_Funcao, @Num_CNPJ_Empresa, @Num_CEI | Carrega função específica por centro de serviço, CBO, nome, CNPJ e CEI. |
SELECT fe.* FROM plataforma.TAB_Funcao_Especifica fe WHERE fe.Idf_Funcao = @Idf_Funcao AND fe.Idf_Centro_Servico = @Idf_Centro_Servico AND fe.Cod_Contrato = @Cod_Contrato AND fe.Cod_CBO = @Cod_CBO AND fe.Des_Funcao = @Des_Funcao AND fe.Idf_Escolaridade = @Idf_Escolaridade AND fe.Idf_Classe_Salarial = @Idf_Classe_Salarial AND (@Cod_Funcao_Folha IS NULL OR fe.Cod_Funcao_Folha = @Cod_Funcao_Folha) AND (@Num_CNPJ_Empresa IS NULL OR fe.Num_CNPJ_Empresa = @Num_CNPJ_Empresa) AND (@Num_CEI IS NULL OR fe.Num_CEI = @Num_CEI) AND (@Num_CPF_Empresa IS NULL OR fe.Num_CPF_Empresa = @Num_CPF_Empresa) | @Idf_Funcao, @Idf_Centro_Servico, @Cod_Contrato, @Cod_CBO, @Des_Funcao, @Idf_Escolaridade, @Idf_Classe_Salarial, @Cod_Funcao_Folha, @Num_CNPJ_Empresa, @Num_CEI, @Num_CPF_Empresa | Carrega função específica por múltiplos critérios. |
FuncaoExclusiva
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FuncaoExclusiva_P1.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FuncaoExclusiva_P2.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
FuncaoExclusiva | public FuncaoExclusiva() | Construtor padrão da classe. |
FuncaoExclusiva | public FuncaoExclusiva(int idFuncaoExclusiva) | Construtor que inicializa a instância com um ID existente, marcando-a como persistida. |
Save | public void Save() | Salva a instância atual de FuncaoExclusiva no banco de dados (insere se não persistida, atualiza se modificada). |
Save | public void Save(SqlTransaction trans) | Salva a instância atual de FuncaoExclusiva no banco de dados dentro de uma transação. |
Delete | public static void Delete(int idFuncaoExclusiva) | Exclui um registro de FuncaoExclusiva do banco de dados pelo ID. |
Delete | public static void Delete(int idFuncaoExclusiva, SqlTransaction trans) | Exclui um registro de FuncaoExclusiva do banco de dados pelo ID, dentro de uma transação. |
Delete | public static void Delete(List<int> idFuncaoExclusiva) | Exclui múltiplos registros de FuncaoExclusiva do banco de dados por uma lista de IDs. |
LoadDataReader | public static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Retorna um IDataReader com uma consulta paginada e ordenada de FuncaoExclusiva. |
LoadObject | public static FuncaoExclusiva LoadObject(int idFuncaoExclusiva) | Retorna uma instância de FuncaoExclusiva a partir do banco de dados pelo ID. |
LoadObject | public static FuncaoExclusiva LoadObject(int idFuncaoExclusiva, SqlTransaction trans) | Retorna uma instância de FuncaoExclusiva a partir do banco de dados pelo ID, dentro de uma transação. |
CompleteObject | public bool CompleteObject() | Completa as propriedades da instância atual de FuncaoExclusiva a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa as propriedades da instância atual de FuncaoExclusiva a partir do banco de dados, dentro de uma transação. |
Listar | public static List<FuncaoExclusiva> Listar() | Retorna uma lista de todas as instâncias de FuncaoExclusiva do banco de dados. |
Inativar | public static void Inativar(int idFuncaoExclusiva) | Inativa logicamente uma função exclusiva no banco de dados. |
Inativar | public static void Inativar(int idFuncaoExclusiva, SqlTransaction trans) | Inativa logicamente uma função exclusiva no banco de dados, dentro de uma transação. |
ListarAutoComplete | public static string[] ListarAutoComplete(int pNumeroRegistros, int pIdEmpresa, int? pIdContrato, string pDescricaoFuncao) | Retorna uma lista de sugestões de funções exclusivas para autocomplete, filtrando por empresa, contrato e descrição da função. |
CarregarPorEmpregadoNomeFuncaoCBO | public static FuncaoExclusiva CarregarPorEmpregadoNomeFuncaoCBO(int pIdEmpregado, string pDesFuncao, string pCodCBO, string pCodFuncaoFolha) | Carrega uma função exclusiva por empregado, descrição da função, CBO e código da função na folha. |
CarregarPorContratoDescricao | public static FuncaoExclusiva CarregarPorContratoDescricao(int pIdContrato, string pDesFuncao, bool? pFlgInativo) | Carrega uma função exclusiva por contrato e descrição da função, podendo incluir inativos. |
CarregarAtivoPorContratoFuncao | public static FuncaoExclusiva CarregarAtivoPorContratoFuncao(int pIdContrato, int pIdFuncaoEspecifica) | Carrega uma função exclusiva ativa por contrato e ID da função específica. |
Salvar | public static void Salvar(Contrato objContrato, FuncaoEspecifica objFuncaoEspecifica, Usuario objUsuario) | Salva uma nova função exclusiva para um contrato (filho). |
SalvarParaContratoMae | public static void SalvarParaContratoMae(Contrato objContrato, FuncaoEspecifica objFuncaoEspecifica, Usuario objUsuario) | Salva uma nova função exclusiva para um contrato mãe. |
VerificarEmpregadosFuncaoExclusiva | public static bool VerificarEmpregadosFuncaoExclusiva(int idfFuncaoExclusiva, bool flgAtivo) | Verifica se existem empregados vinculados a uma função exclusiva, podendo filtrar por status ativo. |
ListarGratificadasPorContratoDt | public static IDataReader ListarGratificadasPorContratoDt(string desPesquisa, int? idfFuncao, Contrato objContrato, string desColunaOrdenacao, string desDirecaoOrdenacao, int numPagina, int numRegistrosPagina, out int numTotalRegistros) | Retorna um IDataReader com funções gratificadas por contrato, com filtros, ordenação e paginação. |
ListarPorContratoDt | public static IDataReader ListarPorContratoDt(string desPesquisa, int? idfFuncao, Contrato objContrato, string desColunaOrdenacao, string desDirecaoOrdenacao, int numPagina, int numRegistrosPagina, out int numTotalRegistros) | Retorna um IDataReader com funções exclusivas por contrato, com filtros, ordenação e paginação. |
CarregarPorEmpregadoFuncaoEspecifica | public static FuncaoExclusiva CarregarPorEmpregadoFuncaoEspecifica(int pIdEmpregado, int pIdFuncaoEspecifica) | Carrega uma função exclusiva por empregado e ID da função específica. |
ListarPorFuncaoEspecifica | public static List<FuncaoExclusiva> ListarPorFuncaoEspecifica(int pIdFuncaoEspecifica) | Lista funções exclusivas ativas por ID da função específica. |
ListarFuncaoExclusivaPorFuncaoEspecificaContratoCodigoCBO | public static FuncaoExclusiva ListarFuncaoExclusivaPorFuncaoEspecificaContratoCodigoCBO(int pIdFuncaoEspecifica, int pIdContrato, string pCodCBO) | Lista uma função exclusiva por ID da função específica, contrato e CBO. |
ListarFuncaoSetorSST | public static IDataReader ListarFuncaoSetorSST(int pIdFilial, int? pIdContratoMae, int? pIdContratoFilho, int? pIdFuncao, string pPesquisa, string pOrdenacao, string pDirecao, int pPagina, int pQtdePagina, out int pTotalRegistros) | Lista funções para o setor SST, com filtros por filial, contrato, função e pesquisa. |
ListarFuncaoSetorSSTLinha | public static IDataReader ListarFuncaoSetorSSTLinha(int pIdFilial, int? pIdContratoMae, int? pIdContratoFilho, int? pIdFuncao, int? pIdSetorSST, string pPesquisa, string pOrdenacao, string pDirecao, int pPagina, int pQtdePagina, out int pTotalRegistros) | Lista funções para o setor SST, incluindo detalhes de setor SST e atribuições, com filtros e paginação. |
ListarFuncoesExclusivas | public static IDataReader ListarFuncoesExclusivas(string pPesquisa, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros) | Lista funções exclusivas com filtros, ordenação e paginação. |
ListarFuncaoSetorSSTPorContrato | public static IDataReader ListarFuncaoSetorSSTPorContrato(int pIdFilial, int? pIdContratoMae, int? pIdContratoFilho, int? pIdFuncao, string pPesquisa, string pOrdenacao, string pDirecao, int pPagina, int pQtdePagina, out int pTotalRegistros) | Lista funções para o setor SST por contrato, com filtros e paginação. |
ListarFuncaoPorContratoManutencao | public static IDataReader ListarFuncaoPorContratoManutencao(int? pIdFilial, int pIdContrato, int? pIdFuncao, bool? pFlgInativo, string pPesquisa, string pOrdenacao, string pDirecao, int pPagina, int pQtdePagina, out int pTotalRegistros) | Lista funções por contrato para manutenção, com filtros, ordenação e paginação. |
CarregarPorNome | public static FuncaoExclusiva CarregarPorNome(string pDesFuncao, bool? pFlgInativo) | Carrega uma função exclusiva por nome, podendo incluir inativos. |
Detalhamento de Métodos Importantes
Save()
- Lógica: Este método é responsável por persistir o estado do objeto
FuncaoExclusivano banco de dados.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate().
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert()ouUpdate().
Save(SqlTransaction trans)
- Lógica: Similar ao
Save()sem parâmetros, mas executa a operação dentro de uma transação SQL fornecida.
- Verifica a propriedade
_persisted. - Se
_persistedforfalse(objeto novo), chama o métodoInsert(trans). - Se
_persistedfortrue(objeto existente), chama o métodoUpdate(trans).
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert(trans)ouUpdate(trans).
Delete(int idFuncaoExclusiva)
- Lógica: Exclui um registro de
FuncaoExclusivado banco de dados.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Funcao_Exclusivacom o valor doidFuncaoExclusivafornecido. - Executa uma query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
DELETE FROM TAB_Funcao_Exclusiva WHERE Idf_Funcao_Exclusiva = @Idf_Funcao_Exclusiva @Idf_Funcao_Exclusiva(Int): Identificador da Função Exclusiva a ser excluída.
Delete(int idFuncaoExclusiva, SqlTransaction trans)
- Lógica: Exclui um registro de
FuncaoExclusivado banco de dados dentro de uma transação.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Funcao_Exclusivacom o valor doidFuncaoExclusivafornecido. - Executa uma query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuerye a transação fornecida.
- Stored Procedures chamadas:
DELETE FROM TAB_Funcao_Exclusiva WHERE Idf_Funcao_Exclusiva = @Idf_Funcao_Exclusiva @Idf_Funcao_Exclusiva(Int): Identificador da Função Exclusiva a ser excluída.
Delete(List idFuncaoExclusiva)
- Lógica: Exclui múltiplos registros de
FuncaoExclusivado banco de dados.
- Cria uma lista de
SqlParametere uma stringqueryinicial. - Itera sobre a lista
idFuncaoExclusiva:
- Para cada ID, cria um parâmetro
@parmXe o adiciona àquerye à lista de parâmetros. - Adiciona o valor do ID ao respectivo parâmetro.
- Completa a
querycom a cláusulaIN. - Executa a query SQL de
DELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
DELETE FROM TAB_Funcao_Exclusiva WHERE Idf_Funcao_Exclusiva IN (@parm0, @parm1, ...) @parmX(Int): Identificadores das Funções Exclusivas a serem excluídas.
LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica: Prepara e executa uma consulta paginada e ordenada para retornar dados de
FuncaoExclusiva.
- Calcula os valores de
inicioefimpara a paginação com base empaginaCorrenteetamanhoPagina. - Constrói a string SQL
SPSELECTPAGpara selecionar os dados comROW_NUMBER()para ordenação e paginação. - Constrói a string SQL
SPSELECTCOUNTpara contar o total de registros. - Executa
SPSELECTCOUNTpara obter ototalRegistros. - Executa
SPSELECTPAGpara retornar oIDataReadercom os dados paginados.
- Stored Procedures chamadas:
SELECT COUNT(*) FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Fun.Idf_Funcao_Exclusiva, ... FROM TAB_Funcao_Exclusiva Fun) AS temp@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Fun.Idf_Funcao_Exclusiva, ... FROM TAB_Funcao_Exclusiva Fun) AS temp WHERE RowId BETWEEN @inicio AND @fim@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).@inicio(Int): Início do range de linhas para paginação.@fim(Int): Fim do range de linhas para paginação.
LoadObject(int idFuncaoExclusiva)
- Lógica: Carrega um objeto
FuncaoExclusivapelo seu ID.
- Chama o método
LoadDataReader(idFuncaoExclusiva)para obter umIDataReader. - Cria uma nova instância de
FuncaoExclusiva. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idFuncaoExclusiva).
LoadObject(int idFuncaoExclusiva, SqlTransaction trans)
- Lógica: Similar ao
LoadObject(int idFuncaoExclusiva), mas executa a operação dentro de uma transação SQL fornecida.
- Chama o método
LoadDataReader(idFuncaoExclusiva, trans)para obter umIDataReader. - Cria uma nova instância de
FuncaoExclusiva. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idFuncaoExclusiva, SqlTransaction trans).
CompleteObject()
- Lógica: Preenche as propriedades da instância atual de
FuncaoExclusivaa partir do banco de dados, usando o_idFuncaoExclusivajá existente na instância.
- Chama
LoadDataReader(this._idFuncaoExclusiva)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idFuncaoExclusiva).
CompleteObject(SqlTransaction trans)
- Lógica: Similar ao
CompleteObject(), mas executa a operação dentro de uma transação SQL fornecida.
- Chama
LoadDataReader(this._idFuncaoExclusiva, trans)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int idFuncaoExclusiva, SqlTransaction trans).
Listar()
- Lógica: Retorna uma lista de todas as instâncias de
FuncaoExclusiva.
- Cria uma
List<FuncaoExclusiva>vazia. - Executa a query
SPSELECTpara obter todos os registros deFuncaoExclusiva. - Itera sobre o
IDataReader:
- Cria uma nova instância de
FuncaoExclusiva. - Chama
SetInstancepara preencher a instância (combDispose = falsepara não fechar o reader prematuramente). - Adiciona a instância à lista.
- Retorna a lista.
- Stored Procedures chamadas:
SELECT * FROM TAB_Funcao_Exclusiva
Inativar(int idFuncaoExclusiva)
- Lógica: Inativa logicamente uma função exclusiva no banco de dados.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Funcao_Exclusivacom o valor doidFuncaoExclusivafornecido. - Executa a query
SPINATIVARusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
UPDATE TAB_Funcao_Exclusiva SET Flg_Inativo = 1, Dta_Inativacao = getdate() WHERE Idf_Funcao_Exclusiva = @Idf_Funcao_Exclusiva @Idf_Funcao_Exclusiva(Int): Identificador da Função Exclusiva a ser inativada.
Inativar(int idFuncaoExclusiva, SqlTransaction trans)
- Lógica: Inativa logicamente uma função exclusiva no banco de dados, dentro de uma transação.
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Funcao_Exclusivacom o valor doidFuncaoExclusivafornecido. - Executa a query
SPINATIVARusandoDataAccessLayer.ExecuteNonQuerye a transação fornecida.
- Stored Procedures chamadas:
UPDATE TAB_Funcao_Exclusiva SET Flg_Inativo = 1, Dta_Inativacao = getdate() WHERE Idf_Funcao_Exclusiva = @Idf_Funcao_Exclusiva @Idf_Funcao_Exclusiva(Int): Identificador da Função Exclusiva a ser inativada.
ListarAutoComplete(int pNumeroRegistros, int pIdEmpresa, int? pIdContrato, string pDescricaoFuncao)
- Lógica: Retorna uma lista de sugestões de funções exclusivas para autocomplete.
- Cria uma lista de
stringpara armazenar as funções. - Cria uma lista de
SqlParametere adiciona@Num_Registro,@Idf_Empresa,@Idf_Contratoe@Des_Funcao. - Define os valores dos parâmetros, tratando
nullparapIdContrato. - Executa a query
SplistarAutoComplete. - Itera sobre o
IDataReadere adiciona as descrições das funções à lista. - Retorna a lista como um array de strings.
- Stored Procedures chamadas:
SELECT DISTINCT TOP (@Num_Registro) FX.Idf_Funcao_Exclusiva, FS.Des_Funcao FROM TAB_Funcao_Exclusiva FX INNER JOIN plataforma.TAB_Funcao_Especifica FS ON FX.Idf_Funcao_Especifica=FS.Idf_Funcao_Especifica INNER JOIN TAB_Empregado_Funcao_Exclusiva EF ON EF.Idf_Funcao_Exclusiva = FX.Idf_Funcao_Exclusiva INNER JOIN TAB_Empregado E ON E.Idf_Empregado = EF.Idf_Empregado INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato INNER JOIN TAB_Filial Fil ON C.Idf_Filial_Gestora = Fil.Idf_Filial WHERE 1 = 1 AND FS.Des_Funcao LIKE '%' + @Des_Funcao + '%' COLLATE SQL_Latin1_General_CP1_CI_AI AND Fil.Idf_Empresa = @Idf_Empresa AND C.Idf_Contrato = ISNULL(@Idf_Contrato, C.Idf_Contrato) ORDER BY Des_Funcao ASC @Num_Registro(Int): Número máximo de registros a retornar.@Idf_Empresa(Int): ID da empresa.@Idf_Contrato(Int, opcional): ID do contrato.@Des_Funcao(VarChar): Descrição da função para pesquisa.
CarregarPorEmpregadoNomeFuncaoCBO(int pIdEmpregado, string pDesFuncao, string pCodCBO, string pCodFuncaoFolha)
- Lógica: Carrega uma função exclusiva por empregado, descrição da função, CBO e código da função na folha.
- Cria uma lista de
SqlParametere adiciona@Idf_Empregado,@Des_Funcao_Pesquisa,@Cod_CBOe@Cod_Funcao_Folha. - Define os valores dos parâmetros, tratando
nullparapCodFuncaoFolha. - Executa a query
SPSELPOREMPREGADONOMEFUNCAOCBOCODFUNCAO. - Cria uma nova instância de
FuncaoExclusiva. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT FX.* FROM TAB_Funcao_Exclusiva FX INNER JOIN plataforma.TAB_Funcao_Especifica FS ON FX.Idf_Funcao_Especifica = FS.Idf_Funcao_Especifica INNER JOIN TAB_Empregado E ON E.Idf_Contrato = FX.Idf_Contrato WHERE 1 = 1 AND E.Idf_Empregado = @Idf_Empregado AND FS.Des_Funcao = @Des_Funcao_Pesquisa AND FS.Cod_CBO = @Cod_CBO AND (@Cod_Funcao_Folha IS NULL OR FS.Cod_Funcao_Folha = @Cod_Funcao_Folha) AND FX.Flg_Inativo = 0 @Idf_Empregado(Int): ID do empregado.@Des_Funcao_Pesquisa(string): Descrição da função para pesquisa.@Cod_CBO(string): Código CBO.@Cod_Funcao_Folha(string, opcional): Código da função na folha.
CarregarPorContratoDescricao(int pIdContrato, string pDesFuncao, bool? pFlgInativo)
- Lógica: Carrega uma função exclusiva por contrato e descrição da função, podendo incluir inativos.
- Cria uma lista de
SqlParametere adiciona@Idf_Contrato,@Des_Funcao_Pesquisae@Flg_Inativo. - Define os valores dos parâmetros, tratando
nullparapFlgInativo. - Executa a query
SPSELNOMECONTRATO. - Cria uma nova instância de
FuncaoExclusiva. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT * FROM TAB_Funcao_Exclusiva FX INNER JOIN plataforma.TAB_Funcao_Especifica FS ON FX.Idf_Funcao_Especifica = FS.Idf_Funcao_Especifica WHERE FX.Idf_Contrato=@Idf_Contrato AND FS.Des_Funcao=@Des_Funcao_Pesquisa AND (@Flg_Inativo IS NULL OR @Flg_Inativo = FX.Flg_Inativo) @Idf_Contrato(Int): ID do contrato.@Des_Funcao_Pesquisa(string): Descrição da função para pesquisa.@Flg_Inativo(Bit, opcional): Flag de inativo.
CarregarAtivoPorContratoFuncao(int pIdContrato, int pIdFuncaoEspecifica)
- Lógica: Carrega uma função exclusiva ativa por contrato e ID da função específica.
- Cria uma lista de
SqlParametere adiciona@Idf_Contratoe@Idf_Funcao_Especifica. - Define os valores dos parâmetros.
- Executa a query
SPSELATIVOCONTRATOFUNC. - Cria uma nova instância de
FuncaoExclusiva. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT FEx.* FROM TAB_Funcao_Exclusiva FEx WHERE FEx.Flg_Inativo = 0 AND FEx.Idf_Contrato = @Idf_Contrato AND FEx.Idf_Funcao_Especifica = @Idf_Funcao_Especifica @Idf_Contrato(Int): ID do contrato.@Idf_Funcao_Especifica(Int): ID da função específica.
Salvar(Contrato objContrato, FuncaoEspecifica objFuncaoEspecifica, Usuario objUsuario)
- Lógica: Salva uma nova função exclusiva para um contrato (filho).
- Cria uma nova instância de
FuncaoExclusiva. - Preenche as propriedades da nova instância com os objetos
objContrato,objFuncaoEspecificaeobjUsuariofornecidos. - Define
FlagInativocomofalseeFlagFuncaoGratificadacomofalse. - Define
ValorPisoeValorTetocom base naClasseSalarialdaFuncaoEspecifica. - Define
CBOcom base noCBOdaFuncaoEspecifica. - Salva a nova instância usando
this.Save().
- Stored Procedures chamadas: Nenhuma diretamente. Chama
this.Save().
SalvarParaContratoMae(Contrato objContrato, FuncaoEspecifica objFuncaoEspecifica, Usuario objUsuario)
- Lógica: Salva uma nova função exclusiva para um contrato mãe.
- Cria uma nova instância de
FuncaoExclusiva. - Preenche as propriedades da nova instância com os objetos
objContrato,objFuncaoEspecificaeobjUsuariofornecidos. - Define
FlagInativocomofalseeFlagFuncaoGratificadacomotrue. - Define
ValorPisoeValorTetocom base naClasseSalarialdaFuncaoEspecifica. - Define
CBOcom base noCBOdaFuncaoEspecifica. - Salva a nova instância usando
this.Save().
- Stored Procedures chamadas: Nenhuma diretamente. Chama
this.Save().
VerificarEmpregadosFuncaoExclusiva(int idfFuncaoExclusiva, bool flgAtivo)
- Lógica: Verifica se existem empregados vinculados a uma função exclusiva.
- Cria uma lista de
SqlParametere adiciona@Idf_Funcao_Exclusivae@Flg_Ativo. - Define os valores dos parâmetros.
- Executa a stored procedure
SP_FUNCAO_EXCLUSIVA_VERIFICAR_EMPREGADOS. - Retorna
truese a stored procedure retornar1(indicando que existem empregados),falsecaso contrário.
- Stored Procedures chamadas:
SP_FUNCAO_EXCLUSIVA_VERIFICAR_EMPREGADOS @Idf_Funcao_Exclusiva(Int): ID da função exclusiva.@Flg_Ativo(Bit): Flag para filtrar empregados ativos.
ListarGratificadasPorContratoDt(string desPesquisa, int? idfFuncao, Contrato objContrato, string desColunaOrdenacao, string desDirecaoOrdenacao, int numPagina, int numRegistrosPagina, out int numTotalRegistros)
- Lógica: Retorna um
IDataReadercom funções gratificadas por contrato, com filtros, ordenação e paginação.
- Cria uma lista de
SqlParametere adiciona@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Flg_Inativo,@Pesquisa,@Ordenacao,@Direcao,@Pagina,@Qtde_Pagina. - Define os valores dos parâmetros com base nos argumentos fornecidos.
- Executa a query
SELLISTARFUNCAOGRATIFICADAPORCONTRATO. Esta query é complexa e utiliza tabelas temporárias para construir o resultado paginado e ordenado. - O
IDataReaderretornado contém os dados das funções gratificadas. numTotalRegistrosé preenchido pela query.
- Stored Procedures chamadas:
SELLISTARFUNCAOGRATIFICADAPORCONTRATO(query SQL complexa com tabelas temporárias) @Idf_Empresa(Int): ID da empresa.@Idf_Filial(Int, opcional): ID da filial.@Idf_Contrato(Int, opcional): ID do contrato.@Flg_Inativo(Bit, opcional): Flag de inativo.@Pesquisa(VarChar, opcional): Termo de pesquisa.@Ordenacao(VarChar): Coluna para ordenação.@Direcao(VarChar): Direção da ordenação (ASC/DESC).@Pagina(Int): Número da página.@Qtde_Pagina(Int): Quantidade de registros por página.
ListarPorContratoDt(string desPesquisa, int? idfFuncao, Contrato objContrato, string desColunaOrdenacao, string desDirecaoOrdenacao, int numPagina, int numRegistrosPagina, out int numTotalRegistros)
- Lógica: Retorna um
IDataReadercom funções exclusivas por contrato, com filtros, ordenação e paginação.
- Cria uma lista de
SqlParametere adiciona@Idf_Funcao_Especifica,@Pesquisa,@SortExpression,@CurrentPage,@PageSize. - Define os valores dos parâmetros com base nos argumentos fornecidos.
- A query
SPSELECTPAGé executada, que é uma stored procedure dinâmica que constrói a consulta paginada e ordenada. numTotalRegistrosé preenchido pela stored procedure.
- Stored Procedures chamadas:
SPSELECTPAG(stored procedure dinâmica) @Idf_Funcao_Especifica(Int, opcional): ID da função específica.@Pesquisa(VarChar, opcional): Termo de pesquisa.@SortExpression(VarChar): Expressão de ordenação.@CurrentPage(Int): Página atual.@PageSize(Int): Tamanho da página.
CarregarPorEmpregadoFuncaoEspecifica(int pIdEmpregado, int pIdFuncaoEspecifica)
- Lógica: Carrega uma função exclusiva por empregado e ID da função específica.
- Cria uma lista de
SqlParametere adiciona@Idf_Funcao_Especificae@Idf_Empregado. - Define os valores dos parâmetros.
- Executa a query
SPCARREGARPOREMPREGADOFUNCAOESPECIFICA. - Cria uma nova instância de
FuncaoExclusiva. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT tfe.* FROM TAB_Empregado_Funcao_Exclusiva tefe INNER JOIN TAB_Funcao_Exclusiva tfe ON tefe.Idf_Funcao_Exclusiva = tfe.Idf_Funcao_Exclusiva WHERE tfe.Idf_Funcao_Especifica = @Idf_Funcao_Especifica AND tefe.Idf_Empregado = @Idf_Empregado AND tefe.flg_Inativo = 0 @Idf_Funcao_Especifica(Int): ID da função específica.@Idf_Empregado(Int): ID do empregado.
ListarPorFuncaoEspecifica(int pIdFuncaoEspecifica)
- Lógica: Lista funções exclusivas ativas por ID da função específica.
- Cria uma lista de
FuncaoExclusivavazia. - Cria uma lista de
SqlParametere adiciona@Idf_Funcao_Especifica. - Define o valor do parâmetro.
- Executa a query
SPSELECTPORFUNCAOESPECIFICA. - Itera sobre o
IDataReader:
- Cria uma nova instância de
FuncaoExclusiva. - Chama
SetInstancepara preencher a instância (combDispose = false). - Adiciona a instância à lista.
- Retorna a lista.
- Stored Procedures chamadas:
SELECT FEx.* FROM TAB_Funcao_Exclusiva FEx WHERE FEx.Flg_Inativo = 0 AND FEx.Idf_Funcao_Especifica = @Idf_Funcao_Especifica @Idf_Funcao_Especifica(Int): ID da função específica.
ListarFuncaoExclusivaPorFuncaoEspecificaContratoCodigoCBO(int pIdFuncaoEspecifica, int pIdContrato, string pCodCBO)
- Lógica: Lista uma função exclusiva por ID da função específica, contrato e CBO.
- Cria uma lista de
SqlParametere adiciona@Idf_Funcao_Especifica,@Idf_Contratoe@Cod_CBO. - Define os valores dos parâmetros.
- Executa a query
SELLISTARFUNCAOEXCLUSIVAPORFUNCAOESPECIFICACONTRATOCODIGOCBO. - Cria uma nova instância de
FuncaoExclusiva. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT * FROM TAB_Funcao_Exclusiva EX WHERE 1=1 AND EX.Idf_Funcao_Especifica = @Idf_Funcao_Especifica AND EX.Idf_Contrato = @Idf_Contrato AND EX.Cod_CBO = @Cod_CBO @Idf_Funcao_Especifica(Int): ID da função específica.@Idf_Contrato(Int): ID do contrato.@Cod_CBO(string): Código CBO.
ListarFuncaoSetorSST(int pIdFilial, int? pIdContratoMae, int? pIdContratoFilho, int? pIdFuncao, string pPesquisa, string pOrdenacao, string pDirecao, int pPagina, int pQtdePagina, out int pTotalRegistros)
- Lógica: Lista funções para o setor SST, com filtros por filial, contrato, função e pesquisa.
- Cria uma lista de
SqlParametere adiciona@Idf_Filial,@Idf_Contrato_Mae,@Idf_Contrato_Filho,@Idf_Funcao,@Pesquisa,@Ordenacao,@Direcao,@Pagina,@Qtde_Pagina. - Define os valores dos parâmetros, tratando
nullpara campos opcionais. - Executa a query
SELLISTARFUNCAOSETORSST. Esta query é complexa e utiliza tabelas temporárias para construir o resultado paginado e ordenado. - O
IDataReaderretornado contém os dados das funções. pTotalRegistrosé preenchido pela query.
- Stored Procedures chamadas:
SELLISTARFUNCAOSETORSST(query SQL complexa com tabelas temporárias) @Idf_Filial(Int): ID da filial.@Idf_Contrato_Mae(Int, opcional): ID do contrato mãe.@Idf_Contrato_Filho(Int, opcional): ID do contrato filho.@Idf_Funcao(Int, opcional): ID da função.@Pesquisa(VarChar, opcional): Termo de pesquisa.@Ordenacao(VarChar): Coluna para ordenação.@Direcao(VarChar): Direção da ordenação (ASC/DESC).@Pagina(Int): Número da página.@Qtde_Pagina(Int): Quantidade de registros por página.
ListarFuncaoSetorSSTLinha(int pIdFilial, int? pIdContratoMae, int? pIdContratoFilho, int? pIdFuncao, int? pIdSetorSST, string pPesquisa, string pOrdenacao, string pDirecao, int pPagina, int pQtdePagina, out int pTotalRegistros)
- Lógica: Lista funções para o setor SST, incluindo detalhes de setor SST e atribuições, com filtros e paginação.
- Cria uma lista de
SqlParametere adiciona@Idf_Filial,@Idf_Contrato_Mae,@Idf_Contrato_Filho,@Idf_Funcao,@Idf_Setor_SST,@Pesquisa,@Ordenacao,@Direcao,@Pagina,@Qtde_Pagina. - Define os valores dos parâmetros, tratando
nullpara campos opcionais. - Executa a query
SELLISTARFUNCAOSETORSSTLINHA. Esta query é complexa e utiliza tabelas temporárias para construir o resultado paginado e ordenado. - O
IDataReaderretornado contém os dados das funções. pTotalRegistrosé preenchido pela query.
- Stored Procedures chamadas:
SELLISTARFUNCAOSETORSSTLINHA(query SQL complexa com tabelas temporárias) @Idf_Filial(Int): ID da filial.@Idf_Contrato_Mae(Int, opcional): ID do contrato mãe.@Idf_Contrato_Filho(Int, opcional): ID do contrato filho.@Idf_Funcao(Int, opcional): ID da função.@Idf_Setor_SST(Int, opcional): ID do setor SST.@Pesquisa(VarChar, opcional): Termo de pesquisa.@Ordenacao(VarChar): Coluna para ordenação.@Direcao(VarChar): Direção da ordenação (ASC/DESC).@Pagina(Int): Número da página.@Qtde_Pagina(Int): Quantidade de registros por página.
ListarFuncoesExclusivas(string pPesquisa, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros)
- Lógica: Lista funções exclusivas com filtros, ordenação e paginação.
- Cria uma lista de
SqlParametere adiciona@Des_Funcao,@Cod_CBO,@SortExpression,@CurrentPage,@PageSize. - Define os valores dos parâmetros, tratando
nullpara campos opcionais. - Executa a query
SplistarFuncaoExclusiva. Esta query é complexa e utiliza tabelas temporárias para construir o resultado paginado e ordenado. - O
IDataReaderretornado contém os dados das funções. pTotalRegistrosé preenchido pela query.
- Stored Procedures chamadas:
SplistarFuncaoExclusiva(query SQL complexa com tabelas temporárias) @Des_Funcao(VarChar, opcional): Descrição da função para pesquisa.@Cod_CBO(VarChar, opcional): Código CBO para pesquisa.@SortExpression(VarChar): Expressão de ordenação.@CurrentPage(Int): Página atual.@PageSize(Int): Tamanho da página.
ListarFuncaoSetorSSTPorContrato(int pIdFilial, int? pIdContratoMae, int? pIdContratoFilho, int? pIdFuncao, string pPesquisa, string pOrdenacao, string pDirecao, int pPagina, int pQtdePagina, out int pTotalRegistros)
- Lógica: Lista funções para o setor SST por contrato, com filtros e paginação.
- Cria uma lista de
SqlParametere adiciona@Idf_Filial,@Idf_Contrato_Mae,@Idf_Contrato_Filho,@Idf_Funcao,@Pesquisa,@Ordenacao,@Direcao,@Pagina,@Qtde_Pagina. - Define os valores dos parâmetros, tratando
nullpara campos opcionais. - Executa a query
SELLISTARFUNCAOSETORSSTPORCONTRATO. Esta query é complexa e utiliza tabelas temporárias para construir o resultado paginado e ordenado. - O
IDataReaderretornado contém os dados das funções. pTotalRegistrosé preenchido pela query.
- Stored Procedures chamadas:
SELLISTARFUNCAOSETORSSTPORCONTRATO(query SQL complexa com tabelas temporárias) @Idf_Filial(Int): ID da filial.@Idf_Contrato_Mae(Int, opcional): ID do contrato mãe.@Idf_Contrato_Filho(Int, opcional): ID do contrato filho.@Idf_Funcao(Int, opcional): ID da função.@Pesquisa(VarChar, opcional): Termo de pesquisa.@Ordenacao(VarChar): Coluna para ordenação.@Direcao(VarChar): Direção da ordenação (ASC/DESC).@Pagina(Int): Número da página.@Qtde_Pagina(Int): Quantidade de registros por página.
ListarFuncaoPorContratoManutencao(int? pIdFilial, int pIdContrato, int? pIdFuncao, bool? pFlgInativo, string pPesquisa, string pOrdenacao, string pDirecao, int pPagina, int pQtdePagina, out int pTotalRegistros)
- Lógica: Lista funções por contrato para manutenção, com filtros, ordenação e paginação.
- Cria uma lista de
SqlParametere adiciona@Idf_Filial,@Idf_Contrato,@Idf_Funcao,@Flg_Inativo,@Pesquisa,@Ordenacao,@Direcao,@Pagina,@Qtde_Pagina. - Define os valores dos parâmetros, tratando
nullpara campos opcionais. - Executa a query
SELLISTARFUNCAOPORCONTRATOMANUTENCAO. Esta query é complexa e utiliza tabelas temporárias para construir o resultado paginado e ordenado. - O
IDataReaderretornado contém os dados das funções. pTotalRegistrosé preenchido pela query.
- Stored Procedures chamadas:
SELLISTARFUNCAOPORCONTRATOMANUTENCAO(query SQL complexa com tabelas temporárias) @Idf_Filial(Int, opcional): ID da filial.@Idf_Contrato(Int): ID do contrato.@Idf_Funcao(Int, opcional): ID da função.@Flg_Inativo(Bit, opcional): Flag de inativo.@Pesquisa(VarChar, opcional): Termo de pesquisa.@Ordenacao(VarChar): Coluna para ordenação.@Direcao(VarChar): Direção da ordenação (ASC/DESC).@Pagina(Int): Número da página.@Qtde_Pagina(Int): Quantidade de registros por página.
CarregarPorNome(string pDesFuncao, bool? pFlgInativo)
- Lógica: Carrega uma função exclusiva por nome, podendo incluir inativos.
- Cria uma lista de
SqlParametere adiciona@Des_Funcao_Pesquisae@Flg_Inativo. - Define os valores dos parâmetros, tratando
nullparapFlgInativo. - Executa a query
SPSELFUNCAOPORNOME. - Cria uma nova instância de
FuncaoExclusiva. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT * FROM TAB_Funcao_Exclusiva FX INNER JOIN plataforma.TAB_Funcao_Especifica FS ON FX.Idf_Funcao_Especifica = FS.Idf_Funcao_Especifica WHERE FS.Des_Funcao = @Des_Funcao_Pesquisa AND (@Flg_Inativo IS NULL OR @Flg_Inativo = FX.Flg_Inativo) @Des_Funcao_Pesquisa(string): Descrição da função para pesquisa.@Flg_Inativo(Bit, opcional): Flag de inativo.
Stored Procedures
| Nome | Parâmetros | Propósito |
|---|---|---|
INSERT INTO TAB_Funcao_Exclusiva | @Idf_Funcao_Especifica, @Idf_Contrato, @Dta_Cadastro, @Idf_Usuario, @Flg_Inativo, @Vlr_Teto, @Vlr_Piso, @Cod_CBO, @Des_Cargo, @Des_Categoria, @Idf_Classe_Salarial, @Flg_Funcao_Gratificada, @Dta_Inativacao, @Idf_Funcao_Exclusiva (OUTPUT) | Insere um novo registro na tabela TAB_Funcao_Exclusiva e retorna o ID gerado. |
UPDATE TAB_Funcao_Exclusiva | @Idf_Funcao_Especifica, @Idf_Contrato, @Dta_Cadastro, @Idf_Usuario, @Flg_Inativo, @Vlr_Teto, @Vlr_Piso, @Cod_CBO, @Des_Cargo, @Des_Categoria, @Idf_Classe_Salarial, @Flg_Funcao_Gratificada, @Dta_Inativacao, @Idf_Funcao_Exclusiva | Atualiza um registro existente na tabela TAB_Funcao_Exclusiva. |
DELETE FROM TAB_Funcao_Exclusiva | @Idf_Funcao_Exclusiva | Exclui um registro da tabela TAB_Funcao_Exclusiva pelo ID. |
SELECT * FROM TAB_Funcao_Exclusiva | @Idf_Funcao_Exclusiva | Seleciona um registro da tabela TAB_Funcao_Exclusiva pelo ID. |
SELECT * FROM TAB_Funcao_Exclusiva | (Nenhum) | Seleciona todos os registros da tabela TAB_Funcao_Exclusiva. |
UPDATE TAB_Funcao_Exclusiva SET Flg_Inativo = 1, Dta_Inativacao = getdate() WHERE Idf_Funcao_Exclusiva = @Idf_Funcao_Exclusiva | @Idf_Funcao_Exclusiva | Inativa logicamente uma função exclusiva. |
SELECT DISTINCT TOP (@Num_Registro) FX.Idf_Funcao_Exclusiva, FS.Des_Funcao FROM TAB_Funcao_Exclusiva FX INNER JOIN plataforma.TAB_Funcao_Especifica FS ON FX.Idf_Funcao_Especifica=FS.Idf_Funcao_Especifica INNER JOIN TAB_Empregado_Funcao_Exclusiva EF ON EF.Idf_Funcao_Exclusiva = FX.Idf_Funcao_Exclusiva INNER JOIN TAB_Empregado E ON E.Idf_Empregado = EF.Idf_Empregado INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato INNER JOIN TAB_Filial Fil ON C.Idf_Filial_Gestora = Fil.Idf_Filial WHERE 1 = 1 AND FS.Des_Funcao LIKE '%' + @Des_Funcao + '%' COLLATE SQL_Latin1_General_CP1_CI_AI AND Fil.Idf_Empresa = @Idf_Empresa AND C.Idf_Contrato = ISNULL(@Idf_Contrato, C.Idf_Contrato) ORDER BY Des_Funcao ASC | @Num_Registro, @Idf_Empresa, @Idf_Contrato, @Des_Funcao | Lista funções exclusivas para autocomplete. |
SELECT FX.* FROM TAB_Funcao_Exclusiva FX INNER JOIN plataforma.TAB_Funcao_Especifica FS ON FX.Idf_Funcao_Especifica = FS.Idf_Funcao_Especifica INNER JOIN TAB_Empregado E ON E.Idf_Contrato = FX.Idf_Contrato WHERE 1 = 1 AND E.Idf_Empregado = @Idf_Empregado AND FS.Des_Funcao = @Des_Funcao_Pesquisa AND FS.Cod_CBO = @Cod_CBO AND (@Cod_Funcao_Folha IS NULL OR FS.Cod_Funcao_Folha = @Cod_Funcao_Folha) AND FX.Flg_Inativo = 0 | @Idf_Empregado, @Des_Funcao_Pesquisa, @Cod_CBO, @Cod_Funcao_Folha | Seleciona função exclusiva por empregado, nome da função, CBO e código da função na folha. |
SELECT * FROM TAB_Funcao_Exclusiva FX INNER JOIN plataforma.TAB_Funcao_Especifica FS ON FX.Idf_Funcao_Especifica = FS.Idf_Funcao_Especifica WHERE FX.Idf_Contrato=@Idf_Contrato AND FS.Des_Funcao=@Des_Funcao_Pesquisa AND (@Flg_Inativo IS NULL OR @Flg_Inativo = FX.Flg_Inativo) | @Idf_Contrato, @Des_Funcao_Pesquisa, @Flg_Inativo | Seleciona função exclusiva por contrato e descrição da função. |
SELECT FEx.* FROM TAB_Funcao_Exclusiva FEx WHERE FEx.Flg_Inativo = 0 AND FEx.Idf_Contrato = @Idf_Contrato AND FEx.Idf_Funcao_Especifica = @Idf_Funcao_Especifica | @Idf_Contrato, @Idf_Funcao_Especifica | Seleciona função exclusiva ativa por contrato e ID da função específica. |
SP_FUNCAO_EXCLUSIVA_VERIFICAR_EMPREGADOS | @Idf_Funcao_Exclusiva, @Flg_Ativo | Verifica se existem empregados vinculados a uma função exclusiva. |
DECLARE @FirstRec INT ... EXECUTE (@iSelectCount) EXECUTE (@iSelectPag) | @Idf_Funcao_Especifica, @Pesquisa, @SortExpression, @CurrentPage, @PageSize | Stored procedure dinâmica para listar funções exclusivas paginadas e ordenadas. |
DECLARE @TBL_RESULTADO_FUNCAO_EXCLUSIVA TABLE ... SELECT COUNT(*) AS Registros FROM @TBL_RESULTADO_FUNCAO_EXCLUSIVA_ORDENADA ... SELECT Filial, Contrato, Funcao, CBO, Atribuicoes, Faixa, De, Ate, Idf_Funcao_Exclusiva, Idf_Funcao_Especifica FROM @TBL_RESULTADO_FUNCAO_EXCLUSIVA_ORDENADA WHERE nrLinha BETWEEN @INICIO_PG AND @FIM_PG | @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Flg_Inativo, @Pesquisa, @Ordenacao, @Direcao, @Pagina, @Qtde_Pagina | Query complexa para listar funções gratificadas por contrato. |
SELECT tfe.* FROM TAB_Empregado_Funcao_Exclusiva tefe INNER JOIN TAB_Funcao_Exclusiva tfe ON tefe.Idf_Funcao_Exclusiva = tfe.Idf_Funcao_Exclusiva WHERE tfe.Idf_Funcao_Especifica = @Idf_Funcao_Especifica AND tefe.Idf_Empregado = @Idf_Empregado AND tefe.flg_Inativo = 0 | @Idf_Funcao_Especifica, @Idf_Empregado | Seleciona função exclusiva por empregado e ID da função específica. |
SELECT FEx.* FROM TAB_Funcao_Exclusiva FEx WHERE FEx.Flg_Inativo = 0 AND FEx.Idf_Funcao_Especifica = @Idf_Funcao_Especifica | @Idf_Funcao_Especifica | Seleciona funções exclusivas ativas por ID da função específica. |
SELECT * FROM TAB_Funcao_Exclusiva EX WHERE 1=1 AND EX.Idf_Funcao_Especifica = @Idf_Funcao_Especifica AND EX.Idf_Contrato = @Idf_Contrato AND EX.Cod_CBO = @Cod_CBO | @Idf_Funcao_Especifica, @Idf_Contrato, @Cod_CBO | Seleciona função exclusiva por ID da função específica, contrato e CBO. |
DECLARE @TBL_RESULTADO_FUNCAO_EXCLUSIVA TABLE ... SELECT COUNT(*) AS Registros FROM @TBL_RESULTADO_FUNCAO_EXCLUSIVA_ORDENADA ... SELECT Contrato, Codigo, Funcao, CBO, Idf_Funcao_Exclusiva, Idf_Contrato_Filho FROM @TBL_RESULTADO_FUNCAO_EXCLUSIVA_ORDENADA WHERE nrLinha BETWEEN @INICIO_PG AND @FIM_PG | @Idf_Filial, @Idf_Contrato_Mae, @Idf_Contrato_Filho, @Idf_Funcao, @Pesquisa, @Ordenacao, @Direcao, @Pagina, @Qtde_Pagina | Query complexa para listar funções para o setor SST. |
DECLARE @TBL_RESULTADO_FUNCAO_EXCLUSIVA TABLE ... SELECT COUNT(*) AS Registros FROM @TBL_RESULTADO_FUNCAO_EXCLUSIVA_ORDENADA ... SELECT Contrato, Codigo, Funcao, CBO, Setor_SST, Atribuicoes, Idf_Funcao_Exclusiva, Idf_Setor_SST_Funcao_Exclusiva FROM @TBL_RESULTADO_FUNCAO_EXCLUSIVA_ORDENADA WHERE nrLinha BETWEEN @INICIO_PG AND @FIM_PG | @Idf_Filial, @Idf_Contrato_Mae, @Idf_Contrato_Filho, @Idf_Funcao, @Idf_Setor_SST, @Pesquisa, @Ordenacao, @Direcao, @Pagina, @Qtde_Pagina | Query complexa para listar funções para o setor SST com detalhes de linha. |
DECLARE @FirstRec INT ... EXECUTE (@iSelectCount) EXECUTE (@iSelectPag) | @Des_Funcao, @Cod_CBO, @SortExpression, @CurrentPage, @PageSize | Stored procedure dinâmica para listar funções exclusivas. |
DECLARE @TBL_RESULTADO_FUNCAO_EXCLUSIVA TABLE ... SELECT COUNT(*) AS Registros FROM @TBL_RESULTADO_FUNCAO_EXCLUSIVA_ORDENADA ... SELECT Contrato, Codigo, Funcao, CBO, Setor_SST, Atribuicoes, Idf_Funcao_Exclusiva, Idf_Setor_SST_Funcao_Exclusiva FROM @TBL_RESULTADO_FUNCAO_EXCLUSIVA_ORDENADA WHERE nrLinha BETWEEN @INICIO_PG AND @FIM_PG | @Idf_Filial, @Idf_Contrato_Mae, @Idf_Contrato_Filho, @Idf_Funcao, @Pesquisa, @Ordenacao, @Direcao, @Pagina, @Qtde_Pagina | Query complexa para listar funções para o setor SST por contrato. |
DECLARE @TBL_RESULTADO_FUNCAO_EXCLUSIVA TABLE ... SELECT COUNT(*) AS Registros FROM @TBL_RESULTADO_FUNCAO_EXCLUSIVA_ORDENADA ... SELECT Filial, Contrato, Codigo, Funcao, CBO, Atribuicoes, Idf_Funcao_Exclusiva , Idf_Funcao_Especifica FROM @TBL_RESULTADO_FUNCAO_EXCLUSIVA_ORDENADA WHERE nrLinha BETWEEN @INICIO_PG AND @FIM_PG | @Idf_Filial, @Idf_Contrato, @Idf_Funcao, @Flg_Inativo, @Pesquisa, @Ordenacao, @Direcao, @Pagina, @Qtde_Pagina | Query complexa para listar funções por contrato para manutenção. |
SELECT * FROM TAB_Funcao_Exclusiva FX INNER JOIN plataforma.TAB_Funcao_Especifica FS ON FX.Idf_Funcao_Especifica = FS.Idf_Funcao_Especifica WHERE FS.Des_Funcao = @Des_Funcao_Pesquisa AND (@Flg_Inativo IS NULL OR @Flg_Inativo = FX.Flg_Inativo) | @Des_Funcao_Pesquisa, @Flg_Inativo | Seleciona função exclusiva por nome. |
UIHelper
Arquivo: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.Code\UIHelper.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
RecuperarMensagemErroSql | public static string RecuperarMensagemErroSql(Type Constraints, Type Indexes, Type PrimaryKeys, ResourceManager resource, SqlException ex, out string mensagem) | Recupera uma mensagem de erro SQL amigável com base em exceções de banco de dados e recursos de mensagens. |
LimparSession | public static void LimparSession(HttpSessionState session, StateBag viewState, Type EnumType) | Remove valores temporários da sessão e os adiciona ao ViewState. |
CarregarListaSugestao | public static void CarregarListaSugestao(Employer.Plataforma.Web.Componentes.ListaSugestoes Lista, IDataReader DataSource, string DataValueField, string DataTextField) | Preenche um componente ListaSugestoes com dados de um IDataReader. |
CarregarListaSugestao | public static void CarregarListaSugestao(Employer.Plataforma.Web.Componentes.ListaSugestoes Lista, DataTable DataSource, string DataValueField, string DataTextField) | Preenche um componente ListaSugestoes com dados de um DataTable. |
CarregarListaSugestao | public static void CarregarListaSugestao(Employer.Plataforma.Web.Componentes.ListaSugestoes Lista, Dictionary<string, string> Dicionario) | Preenche um componente ListaSugestoes com um dicionário de strings. |
CarregarGridView | public static void CarregarGridView(GridView gv, IDataReader dataSource) | Preenche um GridView com dados de um IDataReader. |
CarregarGridView | public static void CarregarGridView(GridView gv, DataTable dataSource) | Preenche um GridView com dados de um DataTable. |
CarregarGridView | public static void CarregarGridView(EmployerGrid gv, DataTable dataSource, int itemCount) | Preenche um EmployerGrid com dados de um DataTable e o total de itens. |
CarregarGridView | public static void CarregarGridView(EmployerGrid gv, IDataReader dataSource, int itemCount) | Preenche um EmployerGrid com dados de um IDataReader e o total de itens. |
CarregarGridView | public static void CarregarGridView(GridView gv, Dictionary<string, string> Dicionario) | Preenche um GridView com um dicionário de strings. |
CarregarGridView | public static void CarregarGridView(GridView gv, Dictionary<int, string> Dicionario) | Preenche um GridView com um dicionário de inteiros e strings. |
CarregarGridView | public static void CarregarGridView(EmployerGrid gv, int itemCount, List<object> dados) | Preenche um EmployerGrid com uma lista de objetos e o total de itens. |
CarregarDataList | public static void CarregarDataList(DataList dl, IDataReader dataSource) | Preenche um DataList com dados de um IDataReader. |
CalculaPaginacao | public static void CalculaPaginacao(out int inicio, out int fim, EmployerGrid grid) | Calcula os índices de início e fim para paginação de um EmployerGrid. |
CarregarRepeater<T> | public static void CarregarRepeater<T>(Repeater rep, T dataSource) | Preenche um Repeater com uma fonte de dados genérica. |
CarregarDropDownList | public static void CarregarDropDownList(DropDownList ddl, IDataReader DataSource, string DataValueField, string DataTextField) | Preenche um DropDownList com dados de um IDataReader. |
AjustarString | public static string AjustarString(string entrada) | Ajusta uma string removendo espaços extras, formatando a primeira letra para maiúscula e tratando números romanos. |
SetImagemOrdenacao | public static void SetImagemOrdenacao(int indiceColuna, GridViewRow headerRow, string direcaoOrdenacao) | Adiciona uma imagem de ordenação (ascendente/descendente) ao cabeçalho de uma coluna do GridView. |
GetIndiceColunaOrdenar | public static int GetIndiceColunaOrdenar(GridView gv, string colunaOrdenacao) | Retorna o índice da coluna que está sendo usada para ordenação em um GridView. |
RetornarMensagem | public static string RetornarMensagem(ResourceManager resource, string idMsg) | Retorna uma mensagem de um ResourceManager com base em um ID. |
RedimensionaFormataTextoString | public static void RedimensionaFormataTextoString(ref string str, int p) | Redimensiona e formata uma string, convertendo para maiúsculas, removendo caracteres especiais e acentos, e completando com espaços se necessário. |
RemoveCaracteresEspeciais | public static string RemoveCaracteresEspeciais(string str) | Remove caracteres especiais de uma string, mantendo ”/” e ”@”. |
RemoverAcentos | public static string RemoverAcentos(string texto) | Remove acentos de uma string. |
ValidateFocus | public static void ValidateFocus(WebControl controle) | Registra um script para atribuir o foco ao primeiro campo inválido da página. |
PrevenirDuploClick | public static void PrevenirDuploClick(WebControl control, Page page) | Adiciona um atributo onclick a um controle para prevenir duplo clique. |
PrevenirDuploClick | public static void PrevenirDuploClick(WebControl control, Page page, String validationGroup = null) | Adiciona um atributo onclick a um controle para prevenir duplo clique, com validação de grupo. |
LoadListaSugestoes | public static void LoadListaSugestoes(Page pag, Employer.Plataforma.Web.Componentes.ListaSugestoes ls, Dictionary<string, string> dic, string sDefault) | Carrega e mantém o estado de um componente ListaSugestoes em postbacks. |
LoadListaSugestoes | public static void LoadListaSugestoes(Page pag, Employer.Plataforma.Web.Componentes.ListaSugestoes ls, IDataReader DataSource, string DataValueField, string DataTextField, string sDefault) | Carrega e mantém o estado de um componente ListaSugestoes com dados de um IDataReader. |
ValidaChavesSession | public static bool ValidaChavesSession() | Valida se as chaves “CentroServico” e “CodigoUsuario” existem na sessão HTTP. |
TrataErroReportViewer | public static bool TrataErroReportViewer(HttpContext ctx) | Trata erros de sessão expirada no ReportViewer, redirecionando para a página de login. |
ConfiguraNomenclaturaCampo | public static void ConfiguraNomenclaturaCampo(Control control, string nomeCampo, bool bMensagensErro) | Configura a nomenclatura de um campo de controle, incluindo mensagens de erro. |
ConfiguraNomenclaturaGrid | public static void ConfiguraNomenclaturaGrid(EmployerGrid grid, string nomePesquisa, string nomeCampo) | Configura a nomenclatura do cabeçalho de uma coluna em um EmployerGrid. |
Detalhamento de Métodos Importantes
RecuperarMensagemErroSql(Type Constraints, Type Indexes, Type PrimaryKeys, ResourceManager resource, SqlException ex, out string mensagem)
- Lógica: Este método tenta mapear uma
SqlExceptionpara uma mensagem de erro amigável.
- Itera sobre os valores dos enums
Constraints,IndexesePrimaryKeys. - Para cada valor, obtém o nome correspondente.
- Verifica se a mensagem da
SqlException(ex.Message) contém esse nome. - Se encontrar uma correspondência, recupera a mensagem do
ResourceManagerusando o prefixo_e o valor do enum. - Define a mensagem de saída e retorna o valor do enum como string.
- Se nenhuma correspondência for encontrada, define a mensagem de saída como
_300003(mensagem de erro genérica) e retorna “_3003”.
- Stored Procedures chamadas: Nenhuma.
- Validações: Nenhuma explícita, mas o método lida com exceções de banco de dados.
- Exceções: Nenhuma lançada diretamente, mas processa
SqlException.
LimparSession(HttpSessionState session, StateBag viewState, Type EnumType)
- Lógica: Move valores temporários da sessão para o ViewState.
- Obtém os nomes dos membros do
EnumType(que representa chaves de sessão). - Itera sobre esses nomes:
- Se um valor correspondente existir na
session, ele é adicionado aoviewStatee removido dasession.
- Stored Procedures chamadas: Nenhuma.
- Regras de negócio: Garante que dados temporários da sessão sejam preservados em postbacks, mas não na sessão persistente.
CarregarListaSugestao(Employer.Plataforma.Web.Componentes.ListaSugestoes Lista, IDataReader DataSource, string DataValueField, string DataTextField)
- Lógica: Preenche um controle
ListaSugestoescom dados de umIDataReader.
- Cria um
Dictionary<string, string>vazio. - Se
DataSourcenão for nulo, itera sobre ele:
- Adiciona ao dicionário o valor do
DataValueField(trimado) como chave e o valor doDataTextFieldcomo valor.
- Atribui o dicionário à propriedade
Dicionariodo controleLista. - Chama
Lista.DataBind(). - Descarta o
DataSourcese não for nulo.
- Stored Procedures chamadas: Nenhuma.
CarregarGridView(EmployerGrid gv, IDataReader dataSource, int itemCount)
- Lógica: Preenche um
EmployerGridcom dados de umIDataReadere o total de itens.
- Cria um novo
DataTable. - Carrega os dados do
IDataReaderpara oDataTable. - Define a propriedade
MockItemCountdogvcom oitemCount. - Atribui o
DataTablecomoDataSourcedogv. - Chama
gv.DataBind(). - Descarta o
dataSourcese não for nulo.
- Stored Procedures chamadas: Nenhuma.
AjustarString(string entrada)
- Lógica: Realiza uma série de ajustes em uma string de entrada.
- Remove espaços iniciais e finais (
Trim()). - Substitui múltiplos espaços por um único espaço.
- Formata a primeira letra de cada palavra para maiúscula (chamando
FormatarPrimeiraMaiscula). - Substitui palavras auxiliares (” De ”, ” E ”, ” Do ”, ” Dos ”, ” Da ”, ” Para ”) para suas versões em minúsculas.
- Tratativa Números Romanos: Divide a string em palavras e verifica se alguma palavra é um número romano comum (II, III, IV, VI, VII, VIII, IX, XI, XII, XIII, XIV, XV, XVI, XVII, XVIII, XIX, XX). Se for, mantém a capitalização original (ex: “II” permanece “II”, não “Ii”).
- Retorna a string ajustada.
- Stored Procedures chamadas: Nenhuma.
- Regras de negócio: Padronização de strings para exibição ou armazenamento.
SetImagemOrdenacao(int indiceColuna, GridViewRow headerRow, string direcaoOrdenacao)
- Lógica: Adiciona uma imagem indicando a direção da ordenação (ascendente/descendente) ao cabeçalho de uma coluna do
GridView.
- Cria um novo controle
Image. - Verifica a
direcaoOrdenacao:
- Se for “Asc”, define
ImageUrlparaico_ordenar_asc_16x16.gifeAlternateTextpara “Ordem ascendente”. - Caso contrário, define
ImageUrlparaico_ordenar_desc_16x16.gifeAlternateTextpara “Ordem descendente”.
- Adiciona a imagem aos controles da célula do cabeçalho (
headerRow.Cells[indiceColuna].Controls.Add(imgOrdenacao)).
- Stored Procedures chamadas: Nenhuma.
- Regras de negócio: Feedback visual para o usuário sobre a ordenação do grid.
GetIndiceColunaOrdenar(GridView gv, string colunaOrdenacao)
- Lógica: Retorna o índice da coluna que está sendo usada para ordenação em um
GridView.
- Itera sobre as colunas (
DataControlField) doGridView. - Para cada coluna, verifica se a propriedade
SortExpressioncorresponde acolunaOrdenacao. - Se encontrar uma correspondência, retorna o índice da coluna.
- Se nenhuma correspondência for encontrada, retorna
-1.
- Stored Procedures chamadas: Nenhuma.
RedimensionaFormataTextoString(ref string str, int p)
- Lógica: Redimensiona e formata uma string.
- Converte a string para maiúsculas.
- Remove caracteres especiais (chamando
RemoveCaracteresEspeciais). - Remove acentos (chamando
RemoverAcentos). - Se o comprimento da string for menor que
p, adiciona espaços em branco até atingir o comprimentop. - Trunca a string para o comprimento
p.
- Stored Procedures chamadas: Nenhuma.
- Regras de negócio: Padronização de strings para um tamanho e formato específicos, geralmente para armazenamento em campos de tamanho fixo no banco de dados ou para exibição.
PrevenirDuploClick(WebControl control, Page page, String validationGroup = null)
- Lógica: Adiciona um script JavaScript ao evento
onclickde um controle para prevenir cliques duplos.
- Verifica se
validationGroupé nulo ou vazio. - Se for nulo, o script
if(Page_ClientValidate()) this.disabled = true;é adicionado, que executa a validação do cliente antes de desabilitar o botão. - Se
validationGroupfor fornecido, o scriptif(Page_ClientValidate('validationGroup')) this.disabled = true;é adicionado, validando apenas o grupo especificado. - O script também inclui
page.ClientScript.GetPostBackEventReference(control, null)para garantir que o postback ocorra após a validação e desabilitação.
- Stored Procedures chamadas: Nenhuma.
- Regras de negócio: Melhora a usabilidade e evita envios duplicados de formulários.
ValidaChavesSession()
- Lógica: Verifica se as chaves “CentroServico” e “CodigoUsuario” existem na sessão HTTP.
- Obtém o
HttpContext.Current. - Tenta acessar
ctx.Session["CentroServico"]ectx.Session["CodigoUsuario"]. - Retorna
truese ambos existirem e não forem nulos. - Em caso de qualquer exceção (por exemplo,
HttpContext.Currentser nulo), retornafalse.
- Stored Procedures chamadas: Nenhuma.
- Regras de negócio: Usado para verificar se o usuário está logado e se o contexto da sessão está válido.
TrataErroReportViewer(HttpContext ctx)
- Lógica: Trata erros de sessão expirada que ocorrem no
ReportViewer, redirecionando para a página de login.
- Verifica se
ctxouctx.Serversão nulos. Se sim, retornafalse. - Obtém o último erro do servidor (
ctx.Server.GetLastError()). Se não houver erro, retornafalse. - Tenta obter a exceção base.
- Se a exceção base for do tipo
Microsoft.Reporting.WebForms.AspNetSessionExpiredException:
- Limpa o erro do servidor (
ctx.Server.ClearError()). - Redireciona para a URL de login (
FormsAuthentication.LoginUrl) com a URL atual comoReturnUrl. - Retorna
true.
- Em caso de outras exceções durante o tratamento, loga o erro.
- Retorna
falsese o erro não for de sessão expirada doReportViewer.
- Stored Procedures chamadas: Nenhuma.
- Regras de negócio: Gerenciamento de sessão e tratamento de erros específicos do
ReportViewer.
ConfiguraNomenclaturaCampo(Control control, string nomeCampo, bool bMensagensErro)
- Lógica: Configura a nomenclatura de um campo de controle, incluindo mensagens de erro.
- Se
bMensagensErrofortrue:
- Tenta definir as propriedades
MensagemErroInvalidoSummary,MensagemErroFormatoSummaryeMensagemErroObrigatorioSummarydo controle com mensagens formatadas usandonomeCampo.
- Se
bMensagensErroforfalse:
- Tenta definir a propriedade
Textdo controle comnomeCampo.
- Chama
control.DataBind().
- Stored Procedures chamadas: Nenhuma.
- Regras de negócio: Personalização da interface do usuário e mensagens de validação.
ConfiguraNomenclaturaGrid(EmployerGrid grid, string nomePesquisa, string nomeCampo)
- Lógica: Configura a nomenclatura do cabeçalho de uma coluna em um
EmployerGrid.
- Converte as colunas do
gridparaDataControlFielde busca a primeira coluna cujoHeaderTextseja igual anomePesquisa. - Se uma coluna for encontrada, atualiza seu
HeaderTextparanomeCampo.
- Stored Procedures chamadas: Nenhuma.
- Regras de negócio: Personalização da interface do usuário do grid.
Stored Procedures
Nenhuma stored procedure é chamada diretamente por esta classe, pois ela é uma classe auxiliar de UI.
Usuario
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P1.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P2.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
Usuario | public Usuario() | Construtor padrão da classe. |
Usuario | public Usuario(int idUsuario) | Construtor que inicializa a instância com um ID existente, marcando-a como persistida. |
LoadDataReader | public static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Retorna um IDataReader com uma consulta paginada e ordenada de Usuario. |
LoadObject | public static Usuario LoadObject(int usuario) | Retorna uma instância de Usuario a partir do banco de dados pelo ID. |
LoadObject | public static Usuario LoadObject(int usuario, SqlTransaction trans) | Retorna uma instância de Usuario a partir do banco de dados pelo ID, dentro de uma transação. |
CompleteObject | public bool CompleteObject() | Completa as propriedades da instância atual de Usuario a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa as propriedades da instância atual de Usuario a partir do banco de dados, dentro de uma transação. |
CarregarPermissoes | public static List<int> CarregarPermissoes(Usuario objUsuario, Enumeradores.CategoriaPermissao categoriaPermissao) | Carrega as permissões de um usuário para uma categoria específica. |
CarregarPermissoesVisualizacaoESocial | public static List<int> CarregarPermissoesVisualizacaoESocial(Usuario objUsuario) | Carrega as permissões de visualização do eSocial para um usuário. |
ListarUsuarios | public static IDataReader ListarUsuarios(string pNome, bool? pStatus, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros) | Lista usuários com filtros por nome e status, ordenação e paginação. |
CarregarPorCPF | public static IDataReader CarregarPorCPF(decimal pNumCPF, bool? pStatus) | Carrega um IDataReader com informações de usuário por CPF e status. |
ListarRelatorioUsuariosPorPerfil | public static IDataReader ListarRelatorioUsuariosPorPerfil(int pIdPerfil) | Lista usuários para um relatório por perfil. |
CarregarPorCPF | public static Usuario CarregarPorCPF(decimal pNumCPF) | Carrega um objeto Usuario por CPF. |
CarregarPerfis | public static IDataReader CarregarPerfis(int pIdUsuario, DateTime pDtaPeriodo) | Carrega os perfis de um usuário para um período específico. |
CarregarPerfisSistema | public static IDataReader CarregarPerfisSistema(int pIdUsuario, DateTime pDtaPeriodo, int pIdSistema, string pOrdenacao) | Carrega os perfis de um usuário para um sistema e período específicos, com ordenação. |
ListarUsuariosAutoComplete | public static string[] ListarUsuariosAutoComplete(string pMatriculaNomeCpf, int pIdfUsuarioLogado, int pCount) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por matrícula, nome ou CPF. |
CarregarUsuariosFilaAtualizacaoPonto | public static IDataReader CarregarUsuariosFilaAtualizacaoPonto(int pNumTentativas) | Carrega usuários da fila de integração de ponto que ainda não foram enviados ou falharam. |
VerificarFiliaisPonto | public static DataTable VerificarFiliaisPonto(decimal pNumCPF) | Verifica as filiais de ponto que um usuário tem acesso. |
CarregarUsuarioContaPagar | public static IDataReader CarregarUsuarioContaPagar(int pIdUsuario) | Carrega informações de usuário para contas a pagar. |
RecuperarFiliaisQueUsuarioTemAcesso | public static IDataReader RecuperarFiliaisQueUsuarioTemAcesso(int pIdEmpresa, int? pIdUsuario) | Recupera as filiais que um usuário tem acesso dentro de uma empresa. |
VerificarPerfilSistemaSenhaMaster | public static bool VerificarPerfilSistemaSenhaMaster(int pIdUsuario, DateTime pDtaPeriodo, int pIdSistema) | Verifica se um usuário possui perfil de senha master para um sistema e período. |
ListarAgrupamentoUsuario | public static IDataReader ListarAgrupamentoUsuario(List<decimal> pListaCpf) | Lista o agrupamento de usuários por CPF, incluindo informações de perfil, grupo econômico, empresa, filial, contrato e centro de resultado. |
ListarUsuariosPorNome | public static IDataReader ListarUsuariosPorNome(string pNome) | Lista usuários por nome. |
ListarUsuariosPorCpf | public static IDataReader ListarUsuariosPorCpf(string pCpf) | Lista usuários por CPF. |
ListarUsuariosPorNomeCpf | public static IDataReader ListarUsuariosPorNomeCpf(string pNome, string pCpf) | Lista usuários por nome ou CPF. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF e ID do usuário. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário e ID da empresa. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa e ID da filial. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial e ID do contrato. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato e ID do centro de resultado. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado, bool pFlgAtivo) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato, ID do centro de resultado e status de ativo. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado, bool pFlgAtivo, bool pFlgInterno) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato, ID do centro de resultado, status de ativo e status de interno. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado, bool pFlgAtivo, bool pFlgInterno, bool pFlgExcecao) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato, ID do centro de resultado, status de ativo, status de interno e status de exceção. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado, bool pFlgAtivo, bool pFlgInterno, bool pFlgExcecao, bool pFlgAcesso) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato, ID do centro de resultado, status de ativo, status de interno, status de exceção e status de acesso. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado, bool pFlgAtivo, bool pFlgInterno, bool pFlgExcecao, bool pFlgAcesso, bool pFlgPermissao) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato, ID do centro de resultado, status de ativo, status de interno, status de exceção, status de acesso e status de permissão. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado, bool pFlgAtivo, bool pFlgInterno, bool pFlgExcecao, bool pFlgAcesso, bool pFlgPermissao, bool pFlgPermissaoVisualizacaoESocial) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato, ID do centro de resultado, status de ativo, status de interno, status de exceção, status de acesso, status de permissão e status de permissão de visualização do eSocial. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado, bool pFlgAtivo, bool pFlgInterno, bool pFlgExcecao, bool pFlgAcesso, bool pFlgPermissao, bool pFlgPermissaoVisualizacaoESocial, bool pFlgPermissaoVisualizacaoESocialExcecao) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato, ID do centro de resultado, status de ativo, status de interno, status de exceção, status de acesso, status de permissão, status de permissão de visualização do eSocial e status de permissão de visualização do eSocial de exceção. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado, bool pFlgAtivo, bool pFlgInterno, bool pFlgExcecao, bool pFlgAcesso, bool pFlgPermissao, bool pFlgPermissaoVisualizacaoESocial, bool pFlgPermissaoVisualizacaoESocialExcecao, bool pFlgPermissaoVisualizacaoESocialExcecaoContrato) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato, ID do centro de resultado, status de ativo, status de interno, status de exceção, status de acesso, status de permissão, status de permissão de visualização do eSocial, status de permissão de visualização do eSocial de exceção e status de permissão de visualização do eSocial de exceção de contrato. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado, bool pFlgAtivo, bool pFlgInterno, bool pFlgExcecao, bool pFlgAcesso, bool pFlgPermissao, bool pFlgPermissaoVisualizacaoESocial, bool pFlgPermissaoVisualizacaoESocialExcecao, bool pFlgPermissaoVisualizacaoESocialExcecaoContrato, bool pFlgPermissaoVisualizacaoESocialExcecaoCentroResultado) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato, ID do centro de resultado, status de ativo, status de interno, status de exceção, status de acesso, status de permissão, status de permissão de visualização do eSocial, status de permissão de visualização do eSocial de exceção, status de permissão de visualização do eSocial de exceção de contrato e status de permissão de visualização do eSocial de exceção de centro de resultado. |
ListarUsuariosPorNomeCpfAutoComplete | public static string[] ListarUsuariosPorNomeCpfAutoComplete(string pNomeCpf, int pCount, int pIdfUsuario, int pIdfEmpresa, int pIdfFilial, int pIdfContrato, int pIdfCentroResultado, bool pFlgAtivo, bool pFlgInterno, bool pFlgExcecao, bool pFlgAcesso, bool pFlgPermissao, bool pFlgPermissaoVisualizacaoESocial, bool pFlgPermissaoVisualizacaoESocialExcecao, bool pFlgPermissaoVisualizacaoESocialExcecaoContrato, bool pFlgPermissaoVisualizacaoESocialExcecaoCentroResultado, bool pFlgPermissaoVisualizacaoESocialExcecaoGrupoEconomico) | Retorna uma lista de sugestões de usuários para autocomplete, filtrando por nome ou CPF, ID do usuário, ID da empresa, ID da filial, ID do contrato, ID do centro de resultado, status de ativo, status de interno, status de exceção, status de acesso, status de permissão, status de permissão de visualização do eSocial, status de permissão de visualização do eSocial de exceção, status de permissão de visualização do eSocial de exceção de contrato, status de permissão de visualização do eSocial de exceção de centro de resultado e status de permissão de visualização do eSocial de exceção de grupo econômico. |
Detalhamento de Métodos Importantes
LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica: Prepara e executa uma consulta paginada e ordenada para retornar dados de
Usuario.
- Calcula os valores de
inicioefimpara a paginação com base empaginaCorrenteetamanhoPagina. - Constrói a string SQL
SPSELECTPAGpara selecionar os dados comROW_NUMBER()para ordenação e paginação, incluindo informações daTAB_Pessoa_Fisica. - Constrói a string SQL
SPSELECTCOUNTpara contar o total de registros. - Executa
SPSELECTCOUNTpara obter ototalRegistros. - Executa
SPSELECTPAGpara retornar oIDataReadercom os dados paginados.
- Stored Procedures chamadas:
SELECT COUNT(*) FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Usu.Idf_Usuario, ... FROM TAB_Usuario Usu LEFT JOIN TAB_Pessoa_Fisica Pfi ON Pfi.Num_CPF = Usu.Num_CPF) AS TblTempCount@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY @colunaOrdenacao @direcaoOrdenacao) AS RowID, Usu.Idf_Usuario, ... FROM TAB_Usuario Usu LEFT JOIN TAB_Pessoa_Fisica Pfi ON Pfi.Num_CPF = Usu.Num_CPF) AS TblTempPag WHERE RowID > @FirstRec AND RowID < @LastRec@colunaOrdenacao(string): Nome da coluna para ordenação.@direcaoOrdenacao(string): Direção da ordenação (ASC/DESC).@FirstRec(Int): Início do range de linhas para paginação.@LastRec(Int): Fim do range de linhas para paginação.
LoadObject(int usuario)
- Lógica: Carrega um objeto
Usuariopelo seu ID.
- Chama o método
LoadDataReader(usuario)para obter umIDataReader. - Cria uma nova instância de
Usuario. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int usuario).
LoadObject(int usuario, SqlTransaction trans)
- Lógica: Similar ao
LoadObject(int usuario), mas executa a operação dentro de uma transação SQL fornecida.
- Chama o método
LoadDataReader(usuario, trans)para obter umIDataReader. - Cria uma nova instância de
Usuario. - Chama
SetInstancepara preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue, retorna o objeto preenchido. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int usuario, SqlTransaction trans).
CompleteObject()
- Lógica: Preenche as propriedades da instância atual de
Usuarioa partir do banco de dados, usando o_idUsuariojá existente na instância.
- Chama
LoadDataReader(this._idUsuario)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int usuario).
CompleteObject(SqlTransaction trans)
- Lógica: Similar ao
CompleteObject(), mas executa a operação dentro de uma transação SQL fornecida.
- Chama
LoadDataReader(this._idUsuario, trans)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados. - Retorna
truese a operação foi bem-sucedida,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader(int usuario, SqlTransaction trans).
CarregarPermissoes(Usuario objUsuario, Enumeradores.CategoriaPermissao categoriaPermissao)
- Lógica: Carrega as permissões de um usuário para uma categoria específica.
- Cria uma lista de
SqlParametere adiciona@idf_usuarioe@Idf_Categoria_Permissao. - Define os valores dos parâmetros.
- Executa a query
SPSELECTPERMISSOESUSUARIO. - Cria uma
List<int>vazia. - Itera sobre o
IDataReadere adiciona os IDs das permissões à lista. - Retorna a lista de permissões.
- Stored Procedures chamadas:
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 @idf_usuario(Int): ID do usuário.@Idf_Categoria_Permissao(Int): ID da categoria de permissão.
CarregarPermissoesVisualizacaoESocial(Usuario objUsuario)
- Lógica: Carrega as permissões de visualização do eSocial para um usuário.
- Cria uma lista de
SqlParametere adiciona@IdF_Usuario. - Define o valor do parâmetro.
- Executa a query
SPSELPERMISSOESVISUALIZACAOESOCIAL. - Cria uma
List<int>vazia. - Itera sobre o
IDataReadere adiciona os valores da colunaVlr_Permissaoà lista. - Retorna a lista de permissões.
- Stored Procedures chamadas:
SELECT * FROM (...) AS TAB(query complexa que une dados de acesso de usuário a grupos econômicos, empresas, filiais, contratos e centros de resultado, com flags de permissão). @IdF_Usuario(Int): ID do usuário.
ListarUsuarios(string pNome, bool? pStatus, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros)
- Lógica: Lista usuários com filtros por nome e status, ordenação e paginação.
- Calcula
FirstReceLastRecpara a paginação. - Constrói a string SQL
iSelectpara selecionar os dados do usuário e da pessoa física, com ordenação. - Adiciona cláusulas
WHEREpara filtrar por nome (@Nome) e status (@Status). - Constrói
iSelectCounteiSelectPagpara a contagem total e a paginação. - Executa
iSelectCountpara obterpTotalRegistros. - Executa
iSelectPage retorna oIDataReader.
- Stored Procedures chamadas:
DECLARE @FirstRec INT ... SELECT COUNT(*) FROM (SELECT ROW_NUMBER() OVER (ORDER BY @SortExpression) AS RowID, Usu.*, Pfi.Nme_Pessoa, ... FROM TAB_Usuario Usu LEFT JOIN TAB_Pessoa_Fisica Pfi ON Pfi.Num_CPF = Usu.Num_CPF WHERE (@Nome IS NULL OR Pfi.Nme_Pessoa LIKE '%' + @Nome + '%') AND (@Status IS NULL OR usu.Flg_Inativo = @Status)) AS TblTempCount@SortExpression(VarChar): Expressão de ordenação.@Nome(VarChar, opcional): Nome para pesquisa.@Status(Bit, opcional): Status de inativo.DECLARE @FirstRec INT ... SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY @SortExpression) AS RowID, Usu.*, Pfi.Nme_Pessoa, ... FROM TAB_Usuario Usu LEFT JOIN TAB_Pessoa_Fisica Pfi ON Pfi.Num_CPF = Usu.Num_CPF WHERE (@Nome IS NULL OR Pfi.Nme_Pessoa LIKE '%' + @Nome + '%') AND (@Status IS NULL OR usu.Flg_Inativo = @Status)) AS TblTempPag WHERE RowID > @FirstRec AND RowID < @LastRec@FirstRec(Int): Início do range de linhas para paginação.@LastRec(Int): Fim do range de linhas para paginação.@SortExpression(VarChar): Expressão de ordenação.@Nome(VarChar, opcional): Nome para pesquisa.@Status(Bit, opcional): Status de inativo.
CarregarPorCPF(decimal pNumCPF, bool? pStatus)
- Lógica: Carrega um
IDataReadercom informações de usuário por CPF e status.
- Cria uma lista de
SqlParametere adiciona@N_CPFe@Status. - Define os valores dos parâmetros.
- Executa a query
CARREGARCPF. - Retorna o
IDataReader.
- Stored Procedures chamadas:
SELECT Usu.Flg_Interno, Usu.Num_CPF, Usu.Flg_Inativo, Pfi.Nme_Pessoa, ... FROM TAB_Usuario Usu LEFT JOIN TAB_Pessoa_Fisica Pfi ON Pfi.Num_CPF = Usu.Num_CPF WHERE Usu.Num_CPF = @N_CPF AND (@Status IS NULL OR usu.Flg_Inativo = @Status) @N_CPF(Decimal): CPF do usuário.@Status(Bit, opcional): Status de inativo.
ListarRelatorioUsuariosPorPerfil(int pIdPerfil)
- Lógica: Lista usuários para um relatório por perfil.
- Cria uma lista de
SqlParametere adiciona@Idf_Perfil. - Define o valor do parâmetro.
- Executa a query
SELRELATORIOUSUARIOSPORPERFIL. - Retorna o
IDataReader.
- Stored Procedures chamadas:
SELECT TAB_Perfil.Idf_Perfil, TAB_Perfil.Des_Perfil, TAB_Pessoa_Fisica.Nme_Pessoa, (...) AS Num_CPF, TAB_Pessoa_Fisica.Eml_Pessoa, (...) AS Celular FROM TAB_Usuario INNER JOIN TAB_Pessoa_Fisica ON TAB_Usuario.Num_CPF = TAB_Pessoa_Fisica.Num_CPF INNER JOIN TAB_Usuario_Perfil ON TAB_Usuario.Idf_Usuario = TAB_Usuario_Perfil.Idf_Usuario INNER JOIN TAB_Perfil ON TAB_Usuario_Perfil.Idf_Perfil = TAB_Perfil.Idf_Perfil WHERE 1 = 1 AND TAB_Perfil.Flg_Inativo = 0 AND TAB_Perfil.Idf_Perfil = @Idf_Perfil ORDER BY TAB_Pessoa_Fisica.Nme_Pessoa ASC @Idf_Perfil(Int): ID do perfil.
CarregarPorCPF(decimal pNumCPF)
- Lógica: Carrega um objeto
Usuariopor CPF.
- Cria uma lista de
SqlParametere adiciona@Num_CPF. - Define o valor do parâmetro.
- Executa a query
SPSELECTCPF. - Cria uma nova instância de
Usuario. - Chama
SetInstancepara preencher a instância. - Se a instância for preenchida, retorna o objeto. Caso contrário, retorna
null.
- Stored Procedures chamadas:
SELECT * FROM TAB_Usuario WHERE Num_CPF = @Num_CPF @Num_CPF(Decimal): CPF do usuário.
CarregarPerfis(int pIdUsuario, DateTime pDtaPeriodo)
- Lógica: Carrega os perfis de um usuário para um período específico.
- Cria uma lista de
SqlParametere adiciona@Idf_Usuarioe@Dta_Periodo. - Define os valores dos parâmetros.
- Executa a query
SPSELPERFIL. - Retorna o
IDataReader.
- Stored Procedures chamadas:
SELECT Per.Idf_Perfil, CASE WHEN Ppe.Idf_Usuario IS NULL THEN 0 ELSE 1 END AS Upe_Permissao, Per.Des_Perfil, Ppe.Dta_Inicio, Ppe.Dta_Fim, CASE WHEN Usu.Idf_Perfil_Principal = Per.Idf_Perfil THEN 1 ELSE 0 END AS Upe_Perfil_Principal FROM TAB_Perfil Per LEFT JOIN Tab_Usuario Usu ON Usu.Idf_Usuario = @Idf_Usuario LEFT JOIN TAB_Usuario_Perfil Upe ON Upe.Idf_Perfil = Per.Idf_Perfil AND Upe.Idf_Usuario = Usu.Idf_Usuario LEFT JOIN TAB_Periodo_Permissao Ppe ON Ppe.Idf_Usuario = Upe.Idf_Usuario AND Ppe.Idf_Perfil = Upe.Idf_Perfil AND (Ppe.Dta_Fim IS NULL OR Ppe.Dta_Fim >= @Dta_Periodo) WHERE Per.Flg_Inativo = 0 ORDER BY Per.Des_Perfil @Idf_Usuario(Int): ID do usuário.@Dta_Periodo(DateTime): Data do período