🛠️ Documentação Técnica: Arquivos Cadastramento NIPS/PIS
[!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.
👁️ 1. Visão Geral
A tela “Cadastramento NIS/PIS” (ArquivoNISGerar.aspx) tem como propósito principal permitir a geração de um arquivo para cadastramento de NIS/PIS para empregados que ainda não possuem esse registro. A tela faz parte do módulo WebFoPag e se integra com funcionalidades de download e leitura de arquivos de retorno, além de uma consulta de status. Os usuários podem pesquisar empregados sem NIS/PIS cadastrado utilizando diversos filtros e, em seguida, selecionar os empregados desejados para inclusão no arquivo a ser gerado.
🗂️ 2. Tipos/Modalidades
A tela opera em uma modalidade principal de “Gerar Arquivo”, mas oferece navegação para outras funcionalidades relacionadas ao processo de NIS/PIS:
- Gerar Arquivo: Modalidade principal da tela, onde o usuário filtra e seleciona empregados para gerar o arquivo de cadastramento NIS/PIS.
- Download do Arquivo Gerado: Permite baixar arquivos de NIS/PIS que já foram gerados. (Navegação para
~/ArquivoNISDownload.aspx) - Leitura do Arquivo de Retorno: Permite fazer upload e processar arquivos de retorno do cadastramento NIS/PIS. (Navegação para
~/ArquivoNISUpload.aspx) - Consulta: Permite consultar o status de processos de NIS/PIS. (Navegação para
~/ArquivoNISConsulta.aspx)
A tela adapta sua interface com base no tipo de estrutura gerencial da empresa logada:
- Centro de Resultado: Se a empresa utiliza Centro de Resultado, os campos de “Contrato” e “Departamento” são ocultados, e o campo “Centro de Resultado” é exibido. A coluna “Centro Resultado” na grid de empregados é visível, enquanto as colunas “Contrato” e “Departamento” são ocultadas.
- Contrato e Departamento: Se a empresa utiliza Contrato e Departamento, os campos “Contrato” e “Departamento” são exibidos, e o campo “Centro de Resultado” é ocultado. As colunas “Contrato” e “Departamento” na grid de empregados são visíveis, enquanto a coluna “Centro Resultado” é ocultada.
🖥️ 3. Interface — Campos e Controles
| Nome | Tipo | Obrigatório | Regra |
|---|---|---|---|
| btnArquivoNISGerar | LinkButton | ⚪ Não | Botão para navegar para a aba “Gerar Arquivo”. |
| btnArquivoNISDownload | LinkButton | ⚪ Não | Botão para navegar para a tela “Download do Arquivo Gerado”. |
| btnArquivoNISUpload | LinkButton | ⚪ Não | Botão para navegar para a tela “Leitura do Arquivo de Retorno”. |
| btnArquivoNISConsulta | LinkButton | ⚪ Não | Botão para navegar para a tela “Consulta”. |
| pnlValidacaoPesquisar | Panel | ⚪ Não | Contém o vsValidacaoPesquisar. |
| vsValidacaoPesquisar | EmployerValidationSummary | ⚪ Não | Exibe mensagens de validação para o grupo “Pesquisar”. |
| upnGeral | UpdatePanel | ⚪ Não | Atualiza dinamicamente o conteúdo da tela. |
| lblFilial | Employer:Label | ⚪ Não | Rótulo para o campo txtFilial. |
| txtFilial | Employer:LocalizarFilial | ⚪ Não | Campo para selecionar a filial. Dispara txtFilial_OnValorAlterado ao ter o valor alterado. |
| divContrato | HtmlGenericControl | ⚪ Não | Contêiner para o campo txtContrato, visibilidade controlada por regra de negócio. |
| lblContrato | Employer:Label | ⚪ Não | Rótulo para o campo txtContrato. |
| txtContrato | Employer:LocalizarContrato | ⚪ Não | Campo para selecionar o contrato. Tipo de contrato “ContratoFilho”. Não considera contrato inativo. Dispara txtContrato_OnValorAlterado ao ter o valor alterado. |
| divDepartamento | HtmlGenericControl | ⚪ Não | Contêiner para o campo txtDepartamento, visibilidade controlada por regra de negócio. |
| lblDepartamento | Employer:Label | ⚪ Não | Rótulo para o campo txtDepartamento. |
| txtDepartamento | Employer:LocalizarDepartamento | ⚪ Não | Campo para selecionar o departamento. Dispara txtDepartamento_OnValorAlterado ao ter o valor alterado. |
| divCentroResultado | HtmlGenericControl | ⚪ Não | Contêiner para o campo txtCentroResultado, visibilidade controlada por regra de negócio. |
| lblCentroResultado | Employer:Label | ⚪ Não | Rótulo para o campo txtCentroResultado. |
| txtCentroResultado | Employer:LocalizarCentroResultado | ⚪ Não | Campo para selecionar o centro de resultado. Tipo “Analitico”. Dispara txtCentroResultado_OnValorAlterado ao ter o valor alterado. |
| lblEmpregado | Employer:Label | ⚪ Não | Rótulo para o campo txtEmpregado. |
| txtEmpregado | Employer:LocalizarEmpregado | ⚪ Não | Campo para selecionar o empregado. Dispara txtEmpregado_OnValorAlterado ao ter o valor alterado. |
| btnPesquisar | Employer:Button | ⚪ Não | Botão para iniciar a pesquisa de empregados. ValidationGroup “Pesquisar”. |
| ddlSelecaoGridEmpregadosSemNIS | DropDownList | ⚪ Não | Dropdown para ações em massa na grid (Marcar/Desmarcar todos). AutoPostBack habilitado. |
| gvwEmpregadosSemNIS | Employer:EmployerGrid | ⚪ Não | GridView que exibe os empregados sem NIS/PIS cadastrado. Permite paginação e ordenação. |
| gvwEmpregadosSemNIS.Columns[0] | BoundField | ⚪ Não | Coluna “Filial” (DataField: Ape_Filial, SortExpression: Ape_Filial). |
| gvwEmpregadosSemNIS.Columns[1] | BoundField | ⚪ Não | Coluna “Contrato” (DataField: Contrato, SortExpression: Contrato). Visibilidade controlada por regra de negócio. |
| gvwEmpregadosSemNIS.Columns[2] | BoundField | ⚪ Não | Coluna “Departamento” (DataField: Des_Departamento, SortExpression: Des_Departamento). Visibilidade controlada por regra de negócio. |
| gvwEmpregadosSemNIS.Columns[3] | BoundField | ⚪ Não | Coluna “Centro Resultado” (DataField: Centro_Resultado, SortExpression: Centro_Resultado). Visibilidade controlada por regra de negócio. |
| gvwEmpregadosSemNIS.Columns[4] | BoundField | ⚪ Não | Coluna “CPF” (DataField: Num_CPF, SortExpression: Num_CPF). |
| gvwEmpregadosSemNIS.Columns[5] | BoundField | ⚪ Não | Coluna “Matrícula” (DataField: Num_Matricula, SortExpression: Num_Matricula). |
| gvwEmpregadosSemNIS.Columns[6] | BoundField | ⚪ Não | Coluna “Empregado” (DataField: Nme_Pessoa, SortExpression: Nme_Pessoa). |
| ckbSelecionarEmpregadosSemNIS | Employer:ControlCheckBox | ⚪ Não | CheckBox dentro da coluna “Ação” da grid para selecionar empregados individualmente. Dispara ckbSelecionarEmpregadosSemNIS_OnCheckedChanged. |
| btnGerarArquivoNIS | Employer:Button | ⚪ Não | Botão para gerar o arquivo de cadastramento NIS/PIS. ValidationGroup “GerarArquivo”. |
| btnExcluirSelecionados | Employer:Button | ⚪ Não | Botão para excluir os empregados selecionados na grid. |
| btnLimpar | Employer:Button | ⚪ Não | Botão para limpar os campos de filtro e a grid. |
| btnVoltar | Employer:Button | ⚪ Não | Botão para retornar à tela de “Menu Mais Opções”. |
📑 4. Abas e Seções
A tela é estruturada com um conjunto de abas de navegação na parte superior e um conteúdo principal abaixo.
-
Abas de Navegação (
<div class="abas_novas">): -
“Gerar Arquivo” (ativa)
-
“Download do Arquivo Gerado” (link para
~/ArquivoNISDownload.aspx) -
“Leitura do Arquivo de Retorno” (link para
~/ArquivoNISUpload.aspx) -
“Consulta” (link para
~/ArquivoNISConsulta.aspx) -
Seção Principal (
<div class="painel_padrao">): -
Filtros de Pesquisa:
-
Filial (
txtFilial) -
Contrato (
txtContrato, dentro dedivContrato) -
Departamento (
txtDepartamento, dentro dedivDepartamento) -
Centro de Resultado (
txtCentroResultado, dentro dedivCentroResultado) -
Empregado (
txtEmpregado) -
Botão de Ação:
-
Pesquisar (
btnPesquisar) -
Resultados da Pesquisa:
-
Título: “Empregados sem NIS/PIS cadastrado” (
<h2>) -
Dropdown de Seleção em Massa (
ddlSelecaoGridEmpregadosSemNIS) -
Grid de Empregados (
gvwEmpregadosSemNIS) -
Botões de Ação da Grid:
-
Gerar Arquivo Cadastro NIS/PIS (
btnGerarArquivoNIS) -
Excluir Selecionados (
btnExcluirSelecionados) -
Limpar (
btnLimpar) -
Voltar (
btnVoltar)
🛡️ 5. Regras de Negócio
5.1. Validações de Campos
- Permissão para Gerar Arquivo NIS/PIS: O usuário logado deve possuir a permissão
ArquivoCadastramentoNIS.GerarArquivoCadastramentoNISpara que o botão “Gerar Arquivo Cadastro NIS/PIS” (btnGerarArquivoNIS) esteja habilitado. Caso contrário, o botão é desabilitado. (ArquivoNISGerar.aspx.cs -ConfigurarPermissoesTela) - Empregados para Geração de Arquivo: Ao clicar em “Gerar Arquivo Cadastro NIS/PIS” (
btnGerarArquivoNIS), a lista de empregados sem NIS (LstEmpregadosSemNIS) não pode estar vazia. Se estiver vazia, uma mensagem de aviso “Nenhum empregado sem NIS/PIS cadastrado foi encontrado.” é exibida. (ArquivoNISGerar.aspx.cs -btnGerarArquivoNIS_OnClick) - CPF (LoteArquivoNISEmpregado): Campo obrigatório. (LoteArquivoNISEmpregado_P1.cs)
- IdLoteArquivoNIS (LoteArquivoNISEmpregado): Campo obrigatório. (LoteArquivoNISEmpregado_P1.cs)
- Empregado (LoteArquivoNISEmpregado): Campo obrigatório. (LoteArquivoNISEmpregado_P1.cs)
- StatusLoteArquivoNISEmpregado (LoteArquivoNISEmpregado): Campo obrigatório. (LoteArquivoNISEmpregado_P1.cs)
- IdUsuarioGerador (LoteArquivoNISEmpregado): Campo obrigatório. (LoteArquivoNISEmpregado_P1.cs)
- IdEmpresa (LoteArquivoNIS): Campo obrigatório. (LoteArquivoNIS_P1.cs)
- StatusLote (LoteArquivoNIS): Campo obrigatório. (LoteArquivoNIS_P1.cs)
- IdUsuarioGerador (LoteArquivoNIS): Campo obrigatório. (LoteArquivoNIS_P1.cs)
- Validação de CTPS (LoteArquivoNIS): Para a geração do arquivo NIS, o empregado deve ter as informações completas da CTPS (número, série, UF e data de emissão) cadastradas no sistema. Caso contrário, um erro é registrado. (LoteArquivoNIS_P2.cs -
ValidarArquivoNISPorCadastroPessoaFisica) - Validação de Endereço (LoteArquivoNIS): Para a geração do arquivo NIS, o empregado deve ter um endereço completo (CEP, logradouro, cidade) cadastrado no sistema. Caso contrário, um erro é registrado. (LoteArquivoNIS_P2.cs -
ValidarArquivoNISPorEnderecoPessoaFisica) - Validação de NIS Existente (LoteArquivoNIS): Não é permitida a geração do arquivo de cadastramento de NIS para empregados que já possuem NIS cadastrado no sistema. Um erro é registrado se essa condição for violada. (LoteArquivoNIS_P2.cs -
ValidarArquivoNISParaEmpregadoComNISCadastrado) - Validação de Lote Pendente (LoteArquivoNIS): Não é permitida a geração do arquivo de cadastramento de NIS para empregados cuja pessoa física já está sendo processada em um lote pendente de finalização na mesma empresa. Um erro é registrado. (LoteArquivoNIS_P2.cs -
ValidarArquivoNISParaPessoaFisicaPertencenteLotePendenteMesmaEmpresa)
5.2. Regras de Habilitação/Desabilitação e Visibilidade
- Acesso à Tela: Se o usuário não tiver a permissão
ArquivoCadastramentoNIS.VisualizarTelaGerar, ele é redirecionado para a página de acesso negado (Configuracao.UrlAcessoNegado). (ArquivoNISGerar.aspx.cs -ConfigurarPermissoesTela) - Visibilidade de Filtros por Estrutura Gerencial:
- Se a empresa utiliza “Centro de Resultado” (
Empresa.TipoEstruturaGerencial == TipoEstruturaGerencial.CentroResultado): divContratoedivDepartamentosão ocultados (display: none).divCentroResultadoé exibido (display: block).- As colunas “Contrato” e “Departamento” da
gvwEmpregadosSemNISsão ocultadas. - A coluna “Centro Resultado” da
gvwEmpregadosSemNISé exibida. - Caso contrário (utiliza “Contrato e Departamento”):
divContratoedivDepartamentosão exibidos (display: block).divCentroResultadoé ocultado (display: none).- As colunas “Contrato” e “Departamento” da
gvwEmpregadosSemNISsão exibidas. - A coluna “Centro Resultado” da
gvwEmpregadosSemNISé ocultada. (ArquivoNISGerar.aspx.cs -ConfigurarPorTipoEstruturaGerencial) - Habilitação de Campo Departamento: O campo
txtDepartamentoé habilitado apenas se um contrato (txtContrato.IdContratoSelecionado) estiver selecionado. (ArquivoNISGerar.aspx.cs -txtContrato_OnValorAlterado) - Visibilidade de Ações na Grid: O dropdown
ddlSelecaoGridEmpregadosSemNISe o botãobtnExcluirSelecionadossão visíveis apenas se houver empregados nagvwEmpregadosSemNIS. (ArquivoNISGerar.aspx.cs -CarregarGridViewEmpregadosSemNISCadastrado)
5.3. Regras de Inativação e Exclusão
- Exclusão de Empregados Selecionados: O método
ExcluirEmpregadosSemNISCadastradoSelecionadosremove os IDs dos empregados selecionados da listaLstEmpregadosSemNIS. Após a exclusão, a grid é recarregada e o índice da página é resetado para 0. (ArquivoNISGerar.aspx.cs -btnExcluirSelecionados_OnClick)
5.4. Regras de Salvar e Fluxo de Configuração
- Inicialização da Tela (
Inicializar):
- Configura as permissões do usuário na tela (
ConfigurarPermissoesTela). - Configura a visibilidade dos campos de filtro com base no tipo de estrutura gerencial da empresa (
ConfigurarPorTipoEstruturaGerencial). - Define o
IdEmpresaeIdUsuariopara os UserControls de localização (Filial, Contrato, Centro de Resultado, Empregado). - Limpa todos os campos de filtro e a grid (
LimparCampos). (ArquivoNISGerar.aspx.cs -Inicializar)
- Processo de Geração de Arquivo NIS (
Salvar):
- Cria uma nova instância de
LoteArquivoNIS. - Associa a empresa logada (
CodigoEmpresa) e o usuário gerador (CodigoUsuarioLogado). - Define o
StatusLotecomo “Inserido” (BLL.Enumeradores.StatusLote.Inserido). - Para cada
idEmpregadona listaLstEmpregadosSemNIS:
- Carrega o objeto
Empregadocompleto. Se não for possível, o empregado é ignorado. - Completa o objeto
PessoaFisicado empregado. - Cria uma nova instância de
LoteArquivoNISEmpregado. - Associa o
Empregado,NumeroCPF(da pessoa física),IdUsuarioGeradoreStatusLoteArquivoNISEmpregadocomo “Aguardando Geração Arquivo” (BLL.Enumeradores.StatusLoteArquivoNISEmpregado.AguardandoGeracaoArquivo). - Adiciona o
LoteArquivoNISEmpregadoa uma lista.
- Chama
LoteArquivoNISEmpregado.Salvarpara persistir oLoteArquivoNISe a lista deLoteArquivoNISEmpregado, retornando opNumeroLote. - Inicia um processo assíncrono para a geração do arquivo:
- Cria uma
ParametroExecucaoCollectioncompNomeCentroServico,pIdEmpresa,pIdUsuarioepIdLoteArquivoNIS. - Chama
ProcessoAssincrono.IniciarAtividadeutilizando o pluginArquivoCadastramentoNISGerarePluginSaidaArquivo.
- Se o processo assíncrono for iniciado com sucesso, exibe uma mensagem de sucesso com o número do lote e limpa os campos.
- Em caso de exceção, a transação é revertida.
(ArquivoNISGerar.aspx.cs -
Salvar)
- Limpeza de Campos (
LimparCampos):
- Limpa as listas
LstEmpregadosSemNISeLstEmpregadosSemNISSelecionados. - Reseta os valores selecionados de todos os UserControls de localização (
txtFilial,txtContrato,txtDepartamento,txtCentroResultado,txtEmpregado) paranull. - Desabilita o campo
txtDepartamento. - Recarrega a
gvwEmpregadosSemNIS. (ArquivoNISGerar.aspx.cs -LimparCampos)
- Geração de Nome de Arquivo NIS (LoteArquivoNIS): O nome do arquivo é formatado como
CADASTRONIS.YYMMDD.SXX, ondeYYMMDDé a data atual eXXé um número sequencial de 2 dígitos, incrementado com base na quantidade de arquivos gerados no mesmo dia para a mesma empresa. (LoteArquivoNIS_P2.cs -GerarArquivoCadastramentoNIS) - Estrutura do Arquivo NIS (LoteArquivoNIS): O arquivo NIS é gerado com um “Header Geral”, “Registros Detalhe” para cada empregado e um “Trailer Geral”, seguindo um formato específico com códigos de campo e sequenciais lógicos/físicos. (LoteArquivoNIS_P2.cs -
IncluirHeaderGeralArquivoCadastramentoNIS,IncluirRegistrosDetalheArquivoCadastramentoNIS,IncluirTrailerGeralArquivoCadastramentoNIS,IncluirInformacaoLinhaArquivoCadastramentoNIS)
5.5. Outras Regras Específicas da Tela
- Carregamento Inicial (
Page_Load): A funçãoInicializar()é chamada apenas no primeiro carregamento da página (não é um postback). (ArquivoNISGerar.aspx.cs -Page_Load) - Pesquisa de Empregados (
btnPesquisar_OnClick):
- Limpa a lista de empregados selecionados (
LstEmpregadosSemNISSelecionados). - Chama
Empregado.ListarIdEmpregadoParaCadastramentoNISpara popularLstEmpregadosSemNIScom base nos filtros informados (usuário logado, empresa, filial, contrato, departamento, centro de resultado, empregado). - Chama
CarregarGridViewEmpregadosSemNISCadastradopara exibir os resultados na grid. (ArquivoNISGerar.aspx.cs -btnPesquisar_OnClick)
- Seleção em Massa na Grid (
ddlSelecaoGridEmpregadosSemNIS_OnSelectedIndexChanged): - “Desmarcar todos” (Value=1): Limpa a lista
LstEmpregadosSemNISSelecionados. - “Marcar todos” (Value=2): Copia todos os IDs de
LstEmpregadosSemNISparaLstEmpregadosSemNISSelecionados. - “Desmarcar todos desta página” (Value=3): Remove os IDs dos empregados visíveis na página atual da grid de
LstEmpregadosSemNISSelecionados. - “Marcar todos desta página” (Value=4): Adiciona os IDs dos empregados visíveis na página atual da grid a
LstEmpregadosSemNISSelecionados. - Após a operação, a grid é recarregada e o dropdown é resetado para “Selecione”.
(ArquivoNISGerar.aspx.cs -
ddlSelecaoGridEmpregadosSemNIS_OnSelectedIndexChanged) - Seleção Individual na Grid (
ckbSelecionarEmpregadosSemNIS_OnCheckedChanged): Adiciona ou remove o ID do empregado da linha correspondente na listaLstEmpregadosSemNISSelecionadoscom base no estado do checkbox. (ArquivoNISGerar.aspx.cs -ckbSelecionarEmpregadosSemNIS_OnCheckedChanged) - Paginação e Ordenação da Grid (
gvwEmpregadosSemNIS_OnCarregarGrid): A grid é recarregada chamandoCarregarGridViewEmpregadosSemNISCadastradoquando há eventos de paginação ou ordenação. (ArquivoNISGerar.aspx.cs -gvwEmpregadosSemNIS_OnCarregarGrid) - Marcação de Checkbox na Grid (
gvwEmpregadosSemNIS_OnRowDataBound): Durante a vinculação de dados da grid, o checkbox de seleção de cada linha é marcado ou desmarcado com base na presença doIdf_Empregadona listaLstEmpregadosSemNISSelecionados. (ArquivoNISGerar.aspx.cs -gvwEmpregadosSemNIS_OnRowDataBound) - Redirecionamento do Botão Limpar (
btnLimpar_OnClick): Redireciona o usuário para a própria telaArquivoNISGerar.aspx, efetivamente limpando todos os filtros e a grid. (ArquivoNISGerar.aspx.cs -btnLimpar_OnClick) - Redirecionamento do Botão Voltar (
btnVoltar_OnClick): Redireciona o usuário para a telaMenuMaisOpcoes.aspx?ID=9. (ArquivoNISGerar.aspx.cs -btnVoltar_OnClick) - Atualização de Filtros Encadeados (UserControls):
txtFilial_OnValorAlterado: Ao alterar a filial, atualiza oIdFilialdos controlestxtContrato,txtCentroResultadoetxtEmpregado. Define o foco paratxtContratooutxtCentroResultadodependendo da habilitação.txtContrato_OnValorAlterado: Ao alterar o contrato:- Carrega o objeto
Contratoe, se houver, aFilialGestorapara atualizartxtFilial.IdFilialSelecionadaetxtContrato.IdFilial. - Atualiza o
IdContratodetxtDepartamentoe habilita/desabilitatxtDepartamentocom base na seleção. - Atualiza
IdFilial,IdContratoeIdCentroDeResultadodetxtEmpregado. - Define o foco para
txtDepartamentooutxtEmpregado. txtDepartamento_OnValorAlterado: Ao alterar o departamento, atualiza oIdDepartamentodetxtEmpregadoe define o foco paratxtEmpregado.txtCentroResultado_OnValorAlterado: Ao alterar o centro de resultado:- Carrega o objeto
CentroResultadoe, se houver, aFilialpara atualizartxtFilial.IdFilialSelecionadaetxtCentroResultado.IdFilial. - Atualiza
IdFilialeIdCentroDeResultadodetxtEmpregado. - Define o foco para
txtEmpregado. txtEmpregado_OnValorAlterado: Ao alterar o empregado:- Carrega o objeto
Empregadocompleto, incluindoContrato,CentroResultado,EmpregadoDepartamentoeEmpregadoFuncaoExclusiva. - Atualiza
IdFilialSelecionadadetxtFilialcom base noCentroResultadoouContratodo empregado. - Atualiza
IdFilialeIdContratoSelecionadodetxtContrato. - Atualiza
IdContrato,IdDepartamentoSelecionadoe habilitação detxtDepartamento. - Atualiza
IdFilialeIdCentroResultadoSelecionadodetxtCentroResultado. - Atualiza
IdFilial,IdContratoeIdDepartamentodetxtEmpregado. - Define o foco para
btnPesquisar. (ArquivoNISGerar.aspx.cs -txtFilial_OnValorAlterado,txtContrato_OnValorAlterado,txtDepartamento_OnValorAlterado,txtCentroResultado_OnValorAlterado,txtEmpregado_OnValorAlterado) - Tipo de Arquivo NIS (LoteArquivoNIS): O tipo de arquivo é “C” (Cadastramento) para o Header Geral. (LoteArquivoNIS_P2.cs -
IncluirHeaderGeralArquivoCadastramentoNIS) - Tipo de Remessa NIS (LoteArquivoNIS): O tipo de remessa é “O” (Original) para o Header Geral. (LoteArquivoNIS_P2.cs -
IncluirHeaderGeralArquivoCadastramentoNIS) - Código do Processo NIS (LoteArquivoNIS): O código do processo é “0013” para o Header Geral. (LoteArquivoNIS_P2.cs -
IncluirHeaderGeralArquivoCadastramentoNIS) - Tipo de Operação NIS (LoteArquivoNIS): O tipo de operação para os Registros Detalhe é “I” (Inclusão). (LoteArquivoNIS_P2.cs -
IncluirRegistrosDetalheArquivoCadastramentoNIS) - Nome da Mãe/Pai NIS (LoteArquivoNIS): Se o nome da mãe ou do pai não estiver preenchido, é utilizado “IGNORADA” ou “IGNORADO” respectivamente no arquivo NIS. (LoteArquivoNIS_P2.cs -
IncluirRegistrosDetalheArquivoCadastramentoNIS) - Sexo NIS (LoteArquivoNIS): O sexo é representado por “F” para Feminino e “M” para Masculino no arquivo NIS. (LoteArquivoNIS_P2.cs -
IncluirRegistrosDetalheArquivoCadastramentoNIS) - Nacionalidade NIS (LoteArquivoNIS): A nacionalidade “Naturalizado Brasileiro” é convertida para “Brasileiro” (código 1) no arquivo NIS. O detalhamento da nacionalidade é “1” para Brasileiro, “2” para Naturalizado Brasileiro e “0” para outros. (LoteArquivoNIS_P2.cs -
IncluirRegistrosDetalheArquivoCadastramentoNIS) - Endereço Tipo Endereço NIS (LoteArquivoNIS): O tipo de endereço é “1” no arquivo NIS. (LoteArquivoNIS_P2.cs -
IncluirRegistrosDetalheArquivoCadastramentoNIS) - Endereço Tipo Logradouro Endereço NIS (LoteArquivoNIS): O tipo de logradouro é “R” no arquivo NIS. (LoteArquivoNIS_P2.cs -
IncluirRegistrosDetalheArquivoCadastramentoNIS) - Endereço Sigla Posição Determinante NIS (LoteArquivoNIS): A sigla da posição determinante é “Num.” no arquivo NIS. (LoteArquivoNIS_P2.cs -
IncluirRegistrosDetalheArquivoCadastramentoNIS) - Endereço Posição Determinante NIS (LoteArquivoNIS): Se o número do endereço não estiver preenchido, é utilizado “S/N” no arquivo NIS. (LoteArquivoNIS_P2.cs -
IncluirRegistrosDetalheArquivoCadastramentoNIS) - Dados do Vínculo Tipo de Vínculo NIS (LoteArquivoNIS): O tipo de vínculo é “59” se a filial matriz tiver CNPJ, ou “60” se tiver CEI. (LoteArquivoNIS_P2.cs -
IncluirRegistrosDetalheArquivoCadastramentoNIS) - Dados do Vínculo CNPJ/CEI NIS (LoteArquivoNIS): O CNPJ ou CEI da filial matriz é utilizado para os dados do vínculo. (LoteArquivoNIS_P2.cs -
IncluirRegistrosDetalheArquivoCadastramentoNIS) - Total de Registros Físicos do Arquivo NIS (LoteArquivoNIS): O trailer geral do arquivo NIS inclui o total de registros físicos do arquivo, que corresponde ao
pNumeroOrdemFisicaRegistro. (LoteArquivoNIS_P2.cs -IncluirTrailerGeralArquivoCadastramentoNIS)
🔄 6. Fluxos Principais
6.1. Inicialização da Tela
Page_Load(ArquivoNISGerar.aspx.cs) é acionado no primeiro carregamento da página.- Chama
Inicializar()para configurar o estado inicial da tela. Inicializar()chamaConfigurarPermissoesTela()para verificar e aplicar as permissões do usuário.Inicializar()chamaConfigurarPorTipoEstruturaGerencial()para ajustar a interface com base na configuração da empresa.Inicializar()defineIdEmpresaeIdUsuariopara os UserControls de localização (txtFilial,txtContrato,txtCentroResultado,txtEmpregado).Inicializar()chamaLimparCampos()para resetar os filtros e a grid.
6.2. Pesquisar Empregados
- O usuário preenche os campos de filtro (Filial, Contrato, Departamento, Centro de Resultado, Empregado).
- O usuário clica em
btnPesquisar. btnPesquisar_OnClick(ArquivoNISGerar.aspx.cs) é acionado.LstEmpregadosSemNISSelecionadosé limpa.PesquisarEmpregadosSemNISCadastrado()é chamado.Empregado.ListarIdEmpregadoParaCadastramentoNIS(Empregado_P3.cs) é chamado com os filtros para obter a lista de IDs de empregados sem NIS.CarregarGridViewEmpregadosSemNISCadastrado()é chamado.Empregado.ListarInformacoesEmpregadoParaCadastramentoNIS(Empregado_P3.cs) é chamado com a lista de IDs para obter os dados detalhados dos empregados.UIHelper.CarregarGridView(UIHelper.cs) é utilizado para populargvwEmpregadosSemNIS.- A visibilidade de
ddlSelecaoGridEmpregadosSemNISebtnExcluirSelecionadosé ajustada com base na quantidade de registros na grid.
6.3. Seleção de Empregados na Grid
- Seleção em Massa: O usuário interage com
ddlSelecaoGridEmpregadosSemNIS.
ddlSelecaoGridEmpregadosSemNIS_OnSelectedIndexChanged(ArquivoNISGerar.aspx.cs) é acionado.- A lógica interna do método atualiza
LstEmpregadosSemNISSelecionadoscom base na opção escolhida (marcar/desmarcar todos, marcar/desmarcar página). CarregarGridViewEmpregadosSemNISCadastrado()é chamado para atualizar a exibição da grid.
- Seleção Individual: O usuário clica em
ckbSelecionarEmpregadosSemNISem uma linha da grid.
ckbSelecionarEmpregadosSemNIS_OnCheckedChanged(ArquivoNISGerar.aspx.cs) é acionado.- O ID do empregado da linha é adicionado ou removido de
LstEmpregadosSemNISSelecionados.
- Renderização da Seleção:
gvwEmpregadosSemNIS_OnRowDataBound(ArquivoNISGerar.aspx.cs) é acionado para cada linha da grid, marcando ockbSelecionarEmpregadosSemNISse o empregado estiver emLstEmpregadosSemNISSelecionados.
6.4. Excluir Empregados Selecionados
- O usuário seleciona empregados na grid.
- O usuário clica em
btnExcluirSelecionados. btnExcluirSelecionados_OnClick(ArquivoNISGerar.aspx.cs) é acionado.ExcluirEmpregadosSemNISCadastradoSelecionados()é chamado.- Os IDs dos empregados em
LstEmpregadosSemNISSelecionadossão removidos deLstEmpregadosSemNIS. gvwEmpregadosSemNIS.MockPageIndexé resetado para 0.CarregarGridViewEmpregadosSemNISCadastrado()é chamado para atualizar a exibição da grid.
6.5. Gerar Arquivo NIS/PIS
- O usuário clica em
btnGerarArquivoNIS. btnGerarArquivoNIS_OnClick(ArquivoNISGerar.aspx.cs) é acionado.- Verifica a permissão
ArquivoCadastramentoNIS.GerarArquivoCadastramentoNISusandoUtil.ValidaPermissaoUsuario. Se não tiver, exibe mensagem de aviso e retorna. - Verifica se
LstEmpregadosSemNIStem itens. Se não tiver, exibe mensagem de aviso e retorna. - Chama
Salvar(out numeroLote)para iniciar o processo de persistência e geração do arquivo. Salvar(ArquivoNISGerar.aspx.cs) inicia uma transação.- Cria e persiste um objeto
LoteArquivoNIS(LoteArquivoNIS_P1.cs -Save). - Para cada empregado em
LstEmpregadosSemNIS:
- Carrega o
EmpregadoePessoaFisica. - Cria e persiste um
LoteArquivoNISEmpregado(LoteArquivoNISEmpregado_P1.cs -Save).
- Chama
ProcessoAssincrono.IniciarAtividade(ProcessoAssincrono.cs) para enfileirar a tarefa de geração do arquivo. - A transação é comitada se tudo ocorrer bem, ou revertida em caso de erro.
- Exibe mensagem de sucesso com o número do lote e chama
LimparCampos().
6.6. Alteração de Valores nos Filtros (UserControls)
txtFilial_OnValorAlterado:
- Atualiza
IdFilialemtxtContrato,txtCentroResultado,txtEmpregado. - Define o foco.
txtContrato_OnValorAlterado:
- Carrega
Contrato.LoadObject(Contrato_P1.cs) para obter detalhes do contrato. - Atualiza
IdFilialSelecionadaemtxtFilialeIdFilialemtxtContratocom base na filial gestora do contrato. - Atualiza
IdContratoemtxtDepartamentoe habilita/desabilitatxtDepartamento. - Atualiza
IdFilial,IdContratoeIdCentroDeResultadoemtxtEmpregado. - Define o foco.
txtDepartamento_OnValorAlterado:
- Atualiza
IdDepartamentoemtxtEmpregado. - Define o foco.
txtCentroResultado_OnValorAlterado:
- Carrega
CentroResultado.LoadObject(CentroResultado_P1.cs) para obter detalhes do centro de resultado. - Atualiza
IdFilialSelecionadaemtxtFilialeIdFilialemtxtCentroResultadocom base na filial do centro de resultado. - Atualiza
IdFilialeIdCentroDeResultadoemtxtEmpregado. - Define o foco.
txtEmpregado_OnValorAlterado:
- Carrega
Empregado.LoadObject(Empregado_P1.cs) para obter detalhes do empregado. - Completa
Contrato,CentroResultado,EmpregadoDepartamento.CarregarEmpregadoDepartamentoAtivo(EmpregadoDepartamento_P2.cs) eEmpregadoFuncaoExclusiva.CarregarEmpregadoFuncaoExclusivaAtivo(EmpregadoFuncaoExclusiva_P2.cs). - Atualiza
IdFilialSelecionadaemtxtFilialcom base na filial do Centro de Resultado ou Filial Gestora do Contrato do empregado. - Atualiza
IdFilialeIdContratoSelecionadoemtxtContrato. - Atualiza
IdContrato,IdDepartamentoSelecionadoe habilitação emtxtDepartamento. - Atualiza
IdFilialeIdCentroResultadoSelecionadoemtxtCentroResultado. - Atualiza
IdFilial,IdContratoeIdDepartamentoemtxtEmpregado. - Define o foco.
🔌 7. Integrações e Dependências
7.1. Classes BLL e Service utilizadas
-
Employer.Plataforma.BLL.CentroResultado
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroResultado_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroResultado_P2.cs -
Métodos chamados pela tela:
-
LoadObject(int idCentroResultado): Carrega um objetoCentroResultadopelo seu ID. -
ListarIDCentroResultadoAnaliticoAtivos(int? pIdEmpresa, int? pIdCentroResultadoBase): Retorna uma lista de IDs de centros de resultado analíticos ativos para uma empresa e um centro de resultado base. -
CarregarPorEstrutura(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, out CentroResultado objCentroResultado, SqlTransaction pTrans = null, int? pIdUsuario = null): Carrega um objetoCentroResultadopela descrição da estrutura, empresa e filial. -
CarregarPorEstruturaV2(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, out CentroResultado objCentroResultado, SqlTransaction pTrans = null): Carrega um objetoCentroResultadopela descrição da estrutura, empresa e filial (versão 2). -
CarregarPorEstruturaV2(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, string pNomeCentroResultado, out CentroResultado objCentroResultado): Carrega um objetoCentroResultadopela descrição da estrutura, nome do CR, empresa e filial (versão 2). -
UtilizaCR(int idEmpresa): Verifica se a empresa utiliza Centro de Resultado como tipo de estrutura gerencial. -
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 chamados pela tela:
-
LoadObject(int idContrato): Carrega um objetoContratopelo seu ID. -
CarregarContratoCentroResultado(int idEmpresa, out Contrato objContrato): Carrega o contrato filho da empresa que utiliza centro de resultado. -
CarregarPorCodigo(int pIdUsuario, int pIdEmpresa, string pCodigoContrato, out Contrato objContrato): Carrega o contrato pela empresa e código informados, considerando permissões do usuário. -
Employer.Plataforma.BLL.Empregado
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empregado_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empregado_P2.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empregado_P3.cs -
Métodos chamados pela tela:
-
ListarIdEmpregadoParaCadastramentoNIS(int pIdUsuario, int pIdEmpresa, int? pIdFilial, int? pIdContrato, int? pIdDepartamento, int? pIdCentroResultado, int? pIdEmpregado): Lista os IDs dos empregados sem NIS/PIS cadastrado, aplicando filtros. -
ListarInformacoesEmpregadoParaCadastramentoNIS(List<int> pLstIdEmpregado, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros): Lista as informações detalhadas dos empregados para cadastramento de NIS, com paginação. -
LoadObject(int idEmpregado): Carrega um objetoEmpregadopelo seu ID. -
CarregarEmpregadoPorCPFeMatricula(decimal pCpf, string pMatricula): Carrega um empregado pelo CPF e matrícula. -
Employer.Plataforma.BLL.EmpregadoDepartamento
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoDepartamento_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoDepartamento_P2.cs -
Métodos chamados pela tela:
-
CarregarEmpregadoDepartamentoAtivo(int pIdEmpregado): Carrega o registro de departamento ativo para o empregado. -
Employer.Plataforma.BLL.EmpregadoFuncaoExclusiva
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoFuncaoExclusiva_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoFuncaoExclusiva_P2.cs -
Métodos chamados pela tela:
-
CarregarEmpregadoFuncaoExclusivaAtivo(int pIdEmpregado): Carrega o registro de função exclusiva ativo para o empregado. -
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 chamados pela tela:
-
LoadObject(int idEmpresa): Carrega um objetoEmpresapelo seu ID. -
UtilizaCR(int idEmpresa): Verifica se a empresa utiliza Centro de Resultado como tipo de estrutura gerencial. -
Employer.Plataforma.BLL.LoteArquivoNIS
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\LoteArquivoNIS_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\LoteArquivoNIS_P2.cs -
Métodos chamados pela tela:
-
Save(SqlTransaction pTrans, LoteArquivoNIS pObjLoteArquivoNIS, List<LoteArquivoNISEmpregado> pLstObjLoteArquivoNISEmpregado, out int pNumeroLote): Salva o lote de empregados para cadastramento de NIS dentro de uma transação. -
CarregarQuantidadeArquivosMesmaData(int pIdEmpresa, DateTime pDataComparacao): Recupera a quantidade de arquivos gerados para uma empresa e uma determinada data. -
ValidarEmpregadoParaGerarArquivoCadastramentoNIS(int? pIdLoteArquivoNIS, int? pIdEmpregado, ref DataTable pDtErros): Processa todas as validações necessárias para permitir ou não a geração do arquivo de cadastramento de NIS. -
Employer.Plataforma.BLL.LoteArquivoNISEmpregado
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\LoteArquivoNISEmpregado_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\LoteArquivoNISEmpregado_P2.cs -
Métodos chamados pela tela:
-
Save(SqlTransaction trans): Salva uma instância deLoteArquivoNISEmpregadono banco de dados, dentro de uma transação. -
LimparObservacaoEmpregadoPorLote(int pIdLoteArquivoNIS): Limpa as observações salvas para cada empregado de um lote. -
AtualizarStatusLote(int pIdLoteArquivoNIS): Atualiza o status de cada empregado dentro do lote informado. -
Employer.Plataforma.BLL.PluginsCompatibilidade
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PluginsCompatibilidade_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PluginsCompatibilidade_P2.cs -
Métodos chamados pela tela:
-
CarregarPorMetadata(Enum metaPluginEntrada, Enum metaPluginSaida): Carrega a relação de compatibilidade pelos metadados dos plugins. -
Employer.PlataformaServices.ProcessosAssincronos.ProcessoAssincrono
-
Arquivo:
C:\Webfopag\Etec.WebFopag\Employer.PlataformaServices\ProcessosAssincronos\ProcessoAssincrono.cs -
Métodos chamados pela tela:
-
IniciarAtividade(PluginsCompatibilidade objPluginComp, String centroServico, ParametroExecucaoCollection parametrosEntrada, ParametroExecucaoCollection parametrosSaida, TipoSaida? tipoSaida, byte[] anexo, String nomeAnexo, DateTime dtaAgendamento, int pIdEmpresa, Employer.Plataforma.BLL.Enumeradores.Sistema IdSistema, bool retornaIdAtividade = false, int? idLoteAtividade = default(int?), AtividadeOrigemEnum? origem = default(AtividadeOrigemEnum?), bool atribuirUsuarioSistema = false): Insere uma atividade na fila de processos assíncronos. -
Employer.Plataforma.Web.Code.UIHelper
-
Arquivo:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.Code\UIHelper.cs -
Métodos chamados pela tela:
-
CarregarGridView(EmployerGrid gv, DataTable dataSource, int itemCount): Carrega umEmployerGridcom umaDataTablee o número total de itens. -
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 chamados pela tela:
-
CarregarPermissoes(Usuario usuario, Enumeradores.CategoriaPermissao categoria): Retorna todas as permissões de um usuário em uma determinada categoria de permissão. -
Employer.Plataforma.BLL.Util
-
Arquivo:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Util.cs -
Métodos chamados pela tela:
-
ValidaPermissaoUsuario(List<int> permissoes, int permissaoNecessaria): Verifica se o usuário tem permissão para realizar determinada ação. -
Employer.PlataformaServices.ProcessosAssincronos.ParametroExecucaoCollection
-
Arquivo:
C:\Webfopag\Etec.WebFopag\Employer.PlataformaServices\ProcessosAssincronos\ParametroExecucao.cs -
Métodos chamados pela tela:
-
Add(String parametro, String desParametro, String valor, String desValor): Adiciona um item à coleção de parâmetros. -
Employer.Plataforma.BLL.StatusLote
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\StatusLote_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\StatusLote_P2.cs -
Métodos chamados pela tela:
-
StatusLote(BLL.Enumeradores.StatusLote eStatusLote): Construtor que inicializa o status do lote com base em um enumerador. -
Employer.Plataforma.BLL.StatusLoteArquivoNISEmpregado
-
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\StatusLoteArquivoNISEmpregado_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\StatusLoteArquivoNISEmpregado_P2.cs -
Métodos chamados pela tela:
-
StatusLoteArquivoNISEmpregado(int idStatusLoteArquivoNISEmpregado): Construtor que inicializa o objeto com o ID.
7.2. Stored Procedures chamadas
- SPSLISTARCRCADASTRADOS (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Lista centros de resultado cadastrados em formato de árvore, incluindo filial e link para postback.
- SPCODIGOREDUZIDOJAUSADO (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Centro_Resultado,@Des_Codigo_Reduzido,@Idf_Empresa - Propósito: Verifica se um código reduzido de centro de resultado já está em uso para a empresa, excluindo o próprio centro de resultado se for uma atualização.
- SPVERIFICARULTIMONIVEL (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Centro_Resultado - Propósito: Verifica se um centro de resultado é o último nível na hierarquia.
- SPVERIFICAREXISTEMLANCAMENTOS (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Centro_Resultado - Propósito: Verifica se existem lançamentos de empregados vinculados a um centro de resultado.
- SPEXCLUIRCR (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Centro_Resultado - Propósito: Exclui um centro de resultado.
- SPQUANTIDADENIVEISEMPRESA (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Retorna a quantidade de níveis de centro de resultado existentes na empresa.
- SPRELATORIOCENTRORESULTADO (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Empresa,@Flg_Inativo,@Idf_Cr_Superior - Propósito: Gera um relatório de centros de resultado com base na empresa, situação e centro de resultado superior.
- SPCARREGARPORCRSUPERIOR (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Centro_Resultado_Superior - Propósito: Carrega todos os centros de resultado filhos diretamente conectados a um centro de resultado superior (não recursivo).
- SPVERIFICAFILHOS (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Centro_Resultado_Superior - Propósito: Verifica se um centro de resultado possui filhos.
- SPRECUPERARCRFILHOS (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Cr_Atual,@Idf_Cr_Superior,@Idf_Empresa,@Idf_Usuario - Propósito: Retorna os centros de resultado filhos que o usuário tem permissão.
- SPRECUPERARCRANALITICOS (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Centro_Resultado_Sintetico,@Idf_Empresa,@Idf_Usuario - Propósito: Retorna os IDs dos centros de resultado analíticos a partir de um centro de resultado sintético.
- SPRECUPERARHISTORICO (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Empregado - Propósito: Recupera o histórico de centros de resultado de um funcionário.
- SPCARREGACRPORDESCRICAOESTRUTURA (CentroResultado_P2.cs)
- Parâmetros:
@Des_Estrutura_Centro_Resultado,@Idf_Empresa - Propósito: Carrega centros de resultado pela descrição da estrutura e empresa.
- SPSELIDCENTRORESULTADOANALITICOATIVO (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Centro_Resultado_Base,@Flg_Inativo - Propósito: Carrega a lista de IDs de centros de resultado analíticos ativos (ou inativos/todos) de uma empresa, opcionalmente a partir de um centro de resultado base.
- SPSELIDCENTRORESULTADOANALITICOATIVORELATORIOFOLHAPAGAMENTO (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Centro_Resultado_Base,@Flg_Inativo - Propósito: Carrega a lista de IDs de centros de resultado analíticos ativos (ou inativos/todos) de uma empresa para relatório de folha de pagamento, opcionalmente a partir de um centro de resultado base.
- SPCONSULTACENTRORESULTADOPORLISTIDF (CentroResultado_P2.cs)
- Parâmetros:
@IdfCentroResultado,@Pesquisa - Propósito: Consulta centros de resultado por uma lista de IDs e termo de pesquisa.
- SELCENTRORESULTADOPOREMPRESAESTRUTURA (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Filial,@Des_Estrutura_Centro_Resultado,@Idf_Usuario - Propósito: Carrega um centro de resultado pela empresa, filial, estrutura e permissão do usuário.
- SELCENTRORESULTADOPOREMPRESAESTRUTURAV2 (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Filial,@Des_Estrutura_Centro_Resultado - Propósito: Carrega um centro de resultado pela empresa, filial e estrutura (versão 2).
- SPSLISTARCENTRORESULTADOSATIVOS (CentroResultado_P2.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Filial,@Des_Estrutura_Centro_Resultado,@Flg_Permite_Lancamento,@Idf_Usuario - Propósito: Lista centros de resultado ativos com base em filtros de empresa, filial, estrutura, permissão de lançamento e usuário.
- SPINSERT (Contrato_P1.cs)
- Parâmetros:
@Cod_Contrato,@Ape_Contrato,@Idf_Contrato_Mae,@Idf_Proposta,@Idf_Empresa,@Idf_Cliente,@Idf_Tipo_Contrato,@Dta_Inicio,@Dta_Termino,@Idf_Tipo_Vencimento,@Dia_Vencimento_Mensal,@Idf_Dia_Semana,@Qtd_Dias_Prazo,@Idf_Tipo_Cobranca,@Idf_Conta_Empresa,@Idf_Endereco,@Idf_Pessoa_Fisica,@Flg_Inativo,@Dta_Cadastro,@Flg_Alterar_Emissao,@Idf_Filial_Gestora,@Idf_ISS_Faturamento,@Idf_Tipo_Agrupamento,@Flg_Tributos_Taxa,@Idf_Usuario_Gerador,@Flg_Usa_CEI,@Flg_Agrupar_Cidade,@Flg_Envia_SMS_Confirmacao_Credito,@Flg_Envia_Email_Confirmacao_Credito,@Num_Apolice_Seguro,@Nme_Seguradora,@Idf_Motivo_Contratacao_Temporario - Propósito: Insere um novo registro na tabela
TAB_Contrato. - SPUPDATE (Contrato_P1.cs)
- Parâmetros:
@Cod_Contrato,@Ape_Contrato,@Idf_Contrato_Mae,@Idf_Proposta,@Idf_Empresa,@Idf_Cliente,@Idf_Tipo_Contrato,@Dta_Inicio,@Dta_Termino,@Idf_Tipo_Vencimento,@Dia_Vencimento_Mensal,@Idf_Dia_Semana,@Qtd_Dias_Prazo,@Idf_Tipo_Cobranca,@Idf_Conta_Empresa,@Idf_Endereco,@Idf_Pessoa_Fisica,@Flg_Inativo,@Dta_Cadastro,@Flg_Alterar_Emissao,@Idf_Filial_Gestora,@Idf_ISS_Faturamento,@Idf_Tipo_Agrupamento,@Flg_Tributos_Taxa,@Idf_Usuario_Gerador,@Flg_Usa_CEI,@Flg_Agrupar_Cidade,@Flg_Envia_SMS_Confirmacao_Credito,@Flg_Envia_Email_Confirmacao_Credito,@Num_Apolice_Seguro,@Nme_Seguradora,@Idf_Motivo_Contratacao_Temporario,@Idf_Contrato - Propósito: Atualiza um registro existente na tabela
TAB_Contrato. - SPDELETE (Contrato_P1.cs)
- Parâmetros:
@Idf_Usuario_Gerador,@Idf_Contrato - Propósito: Inativa e/ou exclui um registro da tabela
TAB_Contrato. - SPSELECTID (Contrato_P1.cs)
- Parâmetros:
@Idf_Contrato - Propósito: Seleciona um registro da tabela
TAB_Contratopelo seu ID. - SPSLISTARAUTOCOMPLETE (Contrato_P2.cs)
- Parâmetros:
@Num_Registro,@Idf_Empresa,@Idf_Usuario,@Idf_Filial,@Idf_Tipo_Contrato,@Cod_Contrato_Filho,@Cod_Contrato_Mae,@Ape_Contrato,@Flg_Contrato_Mae,@Idf_Contrato_Mae,@Flg_Filtrar_Por_Usuario_Logado - Propósito: Lista contratos para autocomplete, aplicando diversos filtros e regras de permissão.
- SPCARREGARAUTOCOMPLETE (Contrato_P2.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Usuario,@Idf_Tipo_Contrato,@Cod_Contrato_Mae,@Cod_Contrato_Filho,@Ape_Contrato,@Flg_Filtrar_Por_Usuario_Logado - Propósito: Carrega um objeto contrato de acordo com os parâmetros encontrados no autocomplete.
- SPSELECTCONTRATOCODIGO (Contrato_P2.cs)
- Parâmetros:
@Cod_Contrato_Mae,@Cod_Contrato,@Idf_Tipo_Contrato,@Idf_Empresa,@Idf_Usuario - Propósito: Seleciona um contrato pelo código do contrato mãe, código do contrato filho, tipo de contrato, empresa e permissão do usuário.
- SPSELECTCONTRATOFILHOEMPRESA (Contrato_P2.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Seleciona contratos filhos de uma empresa.
- SPRECUPERARCONTRATOSFILHOS (Contrato_P2.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Usuario,@Idf_Contrato_Mae - Propósito: Retorna todos os contratos filhos que o usuário tem permissão.
- SPINSERT (Empregado_P1.cs)
- Parâmetros:
@Idf_Pessoa_Fisica,@Idf_Contrato,@Dta_Admissao,@Num_Matricula,@Idf_Tipo_Vinculo,@Prz_Duracao,@Prz_Prorrogacao,@Num_Ficha_Registro,@Flg_Inativo,@Dta_Cadastro,@Dta_Opcao_FGTS,@Idf_Usuario_Gerador,@Idf_Exposicao_Agentes_Nocivos,@Idf_Centro_Resultado,@Flg_Primeiro_Emprego,@Num_Lote,@Idf_Tipo_Mao_Obra,@Idf_Supervisor,@Des_Motivo_Estabilidade,@Dta_Fim_Estabilidade,@Des_Observacao,@Des_Observacao_Confidencial,@Idf_Safra,@Flg_Docente,@Nme_Supervisor,@Flg_FGTS,@Idf_Categoria_Trabalhador,@Flg_Seguro_Desemprego,@Dta_Geracao_Caged,@Idf_Pasta_WDocs,@Flg_Integracao_Ponto,@Cod_Generico,@Idf_Tipo_Contabilizacao_Especifica,@Idf_Tipo_Contrato_Experiencia,@Idf_Indicativo_Admissao,@Idf_Natureza_Atividade,@Idf_Motivo_Contratacao,@Idf_Tipo_Admissao,@Des_Justificativa_Prorrogacao,@Idf_Historico_Motivo_Justificador_Contrato,@Idf_Tipo_Contratacao,@Idf_Fato_Gerador_Contratacao,@Cod_Generico2 - Propósito: Insere um novo registro na tabela
TAB_Empregado. - SPUPDATE (Empregado_P1.cs)
- Parâmetros:
@Idf_Pessoa_Fisica,@Idf_Contrato,@Dta_Admissao,@Num_Matricula,@Idf_Tipo_Vinculo,@Prz_Duracao,@Prz_Prorrogacao,@Num_Ficha_Registro,@Flg_Inativo,@Dta_Cadastro,@Dta_Opcao_FGTS,@Idf_Usuario_Alteracao,@Idf_Exposicao_Agentes_Nocivos,@Idf_Centro_Resultado,@Flg_Primeiro_Emprego,@Num_Lote,@Idf_Tipo_Mao_Obra,@Idf_Supervisor,@Des_Motivo_Estabilidade,@Dta_Fim_Estabilidade,@Des_Observacao,@Des_Observacao_Confidencial,@Idf_Safra,@Flg_Docente,@Nme_Supervisor,@Flg_FGTS,@Idf_Categoria_Trabalhador,@Flg_Seguro_Desemprego,@Dta_Geracao_Caged,@Idf_Pasta_WDocs,@Flg_Integracao_Ponto,@Cod_Generico,@Idf_Tipo_Contabilizacao_Especifica,@Idf_Tipo_Contrato_Experiencia,@Idf_Indicativo_Admissao,@Idf_Natureza_Atividade,@Idf_Motivo_Contratacao,@Idf_Tipo_Admissao,@Des_Justificativa_Prorrogacao,@Idf_Historico_Motivo_Justificador_Contrato,@Idf_Tipo_Contratacao,@Idf_Fato_Gerador_Contratacao,@Cod_Generico2,@Idf_Empregado - Propósito: Atualiza um registro existente na tabela
TAB_Empregado. - SPDELETE (Empregado_P1.cs)
- Parâmetros:
@Idf_Usuario_Gerador,@Idf_Empregado - Propósito: Inativa e/ou exclui um registro da tabela
TAB_Empregado. - SPSELECTID (Empregado_P1.cs)
- Parâmetros:
@Idf_Empregado - Propósito: Seleciona um registro da tabela
TAB_Empregadopelo seu ID. - SPSELIDEMPREGADOPARACADASTRAMENTONIS (Empregado_P3.cs)
- Parâmetros:
@Idf_Usuario,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Departamento,@Idf_Centro_Resultado,@Idf_Empregado - Propósito: Lista os IDs dos empregados sem NIS/PIS cadastrado, incluindo aqueles com erro no processamento anterior, aplicando filtros.
- SPSELEMPREGADOPARACADASTRAMENTONIS (Empregado_P3.cs)
- Parâmetros: Nenhum (o
WHEREé construído dinamicamente) - Propósito: Seleciona informações de empregados para cadastramento de NIS, com base em filtros dinâmicos.
- SPSELECTEMPREGADODEPTO (EmpregadoDepartamento_P2.cs)
- Parâmetros:
@Idf_Empregado - Propósito: Seleciona o registro de departamento ativo para um empregado.
- SPINSERT (LoteArquivoNISEmpregado_P1.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS,@Idf_Empregado,@Num_CPF,@Idf_Status_Lote_Arquivo_NIS_Empregado,@Des_Mensagem,@Idf_Usuario_Gerador,@Dta_Cadastro - Propósito: Insere um novo registro na tabela
TAB_Lote_Arquivo_NIS_Empregado. - SPUPDATE (LoteArquivoNISEmpregado_P1.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS,@Idf_Empregado,@Num_CPF,@Idf_Status_Lote_Arquivo_NIS_Empregado,@Des_Mensagem,@Idf_Usuario_Gerador,@Dta_Cadastro,@Idf_Lote_Arquivo_NIS_Empregado - Propósito: Atualiza um registro existente na tabela
TAB_Lote_Arquivo_NIS_Empregado. - SPDELETE (LoteArquivoNISEmpregado_P1.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS_Empregado - Propósito: Exclui um registro da tabela
TAB_Lote_Arquivo_NIS_Empregado. - SPSELECTID (LoteArquivoNISEmpregado_P1.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS_Empregado - Propósito: Seleciona um registro da tabela
TAB_Lote_Arquivo_NIS_Empregadopelo seu ID. - SELLISPORLOTEARQUIVONIS (LoteArquivoNISEmpregado_P2.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS - Propósito: Lista as informações dos empregados de um lote de arquivo NIS, opcionalmente filtrando por erro.
- SPUPDATESTATUSLOTE (LoteArquivoNISEmpregado_P2.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS - Propósito: Atualiza o status dos empregados em um lote de arquivo NIS para “Processado” (sem mensagem de erro) ou “Finalizado com Erro” (com mensagem de erro).
- SPUPDATELIMPAROBSERVACAOEMPREGADOPORLOTE (LoteArquivoNISEmpregado_P2.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS - Propósito: Limpa as mensagens de erro (
Des_Mensagem) para todos os empregados de um lote de arquivo NIS. - SPDELETEEDELETELOTE (LoteArquivoNISEmpregado_P2.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS_Empregado - Propósito: Exclui um registro de empregado do lote e, se for o último, exclui o próprio lote.
- SPCARREGARPORMETADATA (PluginsCompatibilidade_P2.cs)
- Parâmetros:
@Des_Plugin_Metadata_Entrada,@Des_Plugin_Metadata_Saida - Propósito: Carrega a relação de compatibilidade entre plugins com base em seus metadados.
- SPINSERT (LoteArquivoNIS_P1.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Status_Lote,@Nme_Arquivo,@Arq_Envio,@Idf_Usuario_Gerador,@Dta_Cadastro - Propósito: Insere um novo registro na tabela
TAB_Lote_Arquivo_NIS. - SPUPDATE (LoteArquivoNIS_P1.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Status_Lote,@Nme_Arquivo,@Arq_Envio,@Idf_Usuario_Gerador,@Dta_Cadastro,@Idf_Lote_Arquivo_NIS - Propósito: Atualiza um registro existente na tabela
TAB_Lote_Arquivo_NIS. - SPDELETE (LoteArquivoNIS_P1.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS - Propósito: Exclui um registro da tabela
TAB_Lote_Arquivo_NIS. - SPSELECTID (LoteArquivoNIS_P1.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS - Propósito: Seleciona um registro da tabela
TAB_Lote_Arquivo_NISpelo seu ID. - SELLISTARIDLOTEARQUIVONISPARADOWNLOAD (LoteArquivoNIS_P2.cs)
- Parâmetros:
@Idf_Empresa,@Dta_Geracao_Inicial,@Dta_Geracao_Final,@Idf_Lote_Arquivo_NIS - Propósito: Lista os IDs dos arquivos de pagamento gerados para download, aplicando filtros.
- SELLISTARINFORMACOESLOTEARQUIVONISPARADOWNLOAD (LoteArquivoNIS_P2.cs)
- Parâmetros: Nenhum (o
WHEREé construído dinamicamente) - Propósito: Lista os lotes de arquivos de cadastramento de NIS para download, com informações do status e usuário gerador.
- SELQUANTIDADEARQUIVOSMESMADATA (LoteArquivoNIS_P2.cs)
- Parâmetros:
@Idf_Empresa,@Data - Propósito: Recupera a quantidade de arquivos gerados para uma empresa em uma determinada data.
- SELDADOSARQUIVOCADASTRAMENTONIS (LoteArquivoNIS_P2.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS - Propósito: Seleciona os dados dos empregados de um lote de arquivo NIS necessários para a geração do arquivo.
- SPVALIDARARQUIVONISPARAEMPREGADOCOMNISCADASTRADO (LoteArquivoNIS_P2.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS,@Idf_Empregado - Propósito: Valida se o empregado já possui NIS cadastrado no sistema.
- SPVALIDARARQUIVONISPARAPESSOAFISICAPERTENCENTELOTEPENDENTEMESMAEMPRESA (LoteArquivoNIS_P2.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS,@Idf_Empregado - Propósito: Valida se a pessoa física já pertence a um lote pendente de finalização na mesma empresa.
- SPVALIDARARQUIVONISPORCADASTROPESSOAFISICA (LoteArquivoNIS_P2.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS,@Idf_Empregado - Propósito: Valida se a pessoa física possui todas as informações de CTPS necessárias.
- SPVALIDARARQUIVONISPORENDERECOPESSOAFISICA (LoteArquivoNIS_P2.cs)
- Parâmetros:
@Idf_Lote_Arquivo_NIS,@Idf_Empregado - Propósito: Valida se a pessoa física possui todas as informações de endereço necessárias.
- SPSELPERMISSOESUSUARIO (Usuario_P2.cs)
- Parâmetros:
@idf_usuario,@Idf_Categoria_Permissao - Propósito: Retorna as permissões de um usuário em uma categoria específica.
7.3. UserControls incluídos (.ascx)
- Employer:LocalizarFilial (ID:
txtFilial) - Caminho: Não especificado no
.aspx, mas é um controle customizado da plataforma. - Propriedades expostas:
Obrigatorio,ValidationGroup,IdEmpresa,IdUsuario,IdFilialSelecionada. - Eventos:
OnValorAlterado(disparatxtFilial_OnValorAlterado). - Employer:LocalizarContrato (ID:
txtContrato) - Caminho: Não especificado no
.aspx, mas é um controle customizado da plataforma. - Propriedades expostas:
Obrigatorio,ValidationGroup,TipoDeContrato(“ContratoFilho”),ConsiderarContratoInativo,IdEmpresa,IdUsuario,IdFilial,IdContratoSelecionado. - Eventos:
OnValorAlterado(disparatxtContrato_OnValorAlterado). - Employer:LocalizarDepartamento (ID:
txtDepartamento) - Caminho: Não especificado no
.aspx, mas é um controle customizado da plataforma. - Propriedades expostas:
Obrigatorio,ValidationGroup,IdDepartamentoSelecionado,IdContrato,Enabled. - Eventos:
OnValorAlterado(disparatxtDepartamento_OnValorAlterado). - Employer:LocalizarCentroResultado (ID:
txtCentroResultado) - Caminho: Não especificado no
.aspx, mas é um controle customizado da plataforma. - Propriedades expostas:
Obrigatorio,ValidationGroup,TipoCentroResultado(“Analitico”),IdEmpresa,IdUsuario,IdFilial,IdCentroResultadoSelecionado. - Eventos:
OnValorAlterado(disparatxtCentroResultado_OnValorAlterado). - Employer:LocalizarEmpregado (ID:
txtEmpregado) - Caminho: Não especificado no
.aspx, mas é um controle customizado da plataforma. - Propriedades expostas:
Obrigatorio,ValidationGroup,IdEmpregadoSelecionado,IdEmpresa,IdUsuario,IdFilial,IdContrato,IdDepartamento,IdCentroDeResultado. - Eventos:
OnValorAlterado(disparatxtEmpregado_OnValorAlterado). - Employer:EmployerValidationSummary (ID:
vsValidacaoPesquisar) - Caminho: Não especificado no
.aspx, mas é um controle customizado da plataforma. - Propriedades expostas:
DisplayMode,CssClass,HeaderText,ValidationGroup. - Employer:Button (IDs:
btnPesquisar,btnGerarArquivoNIS,btnExcluirSelecionados,btnLimpar,btnVoltar) - Caminho: Não especificado no
.aspx, mas é um controle customizado da plataforma. - Propriedades expostas:
Text,ValidationGroup,CausesValidation. - Eventos:
OnClick. - Employer:EmployerGrid (ID:
gvwEmpregadosSemNIS) - Caminho: Não especificado no
.aspx, mas é um controle customizado da plataforma. - Propriedades expostas:
SkinID,AutoGenerateColumns,DataKeyNames,EmptyDataText,AllowPaging,AllowSorting,MockColunaOrdenada,MockDirecaoOrdenacao,MockPageIndex,PageSize,MockItemCount. - Eventos:
OnCarregarGrid,OnRowDataBound. - Employer:ControlCheckBox (ID:
ckbSelecionarEmpregadosSemNIS) - Caminho: Não especificado no
.aspx, mas é um controle customizado da plataforma. - Propriedades expostas:
CausesValidation,Checked. - Eventos:
OnCheckedChanged.
7.4. WebServices, APIs externas, filas
- Fila de Processos Assíncronos (MSMQ/RabbitMQ): A tela interage com um sistema de processamento assíncrono para a geração do arquivo NIS. O método
ProcessoAssincrono.IniciarAtividadeenfileira uma mensagem que será processada por um serviço externo. A fila pode ser baseada em MSMQ ou RabbitMQ, dependendo da configuração de criticidade do plugin. - Endpoint/Fila: Determinada dinamicamente por
QueueName.RecuperarNomeFila()ouRabbitMqClient().SendMessage(). - Parâmetros enviados:
IdAtividade,centroServico,IdPlugin,IdCriticidade,parametrosEntrada(XML/JSON),parametrosSaida(XML/JSON),tipoSaida,anexo,nomeAnexo,dtaAgendamento,pIdEmpresa,IdSistema,retornaIdAtividade,idLoteAtividade,origem,atribuirUsuarioSistema. - Propósito: Desacoplar a geração do arquivo da requisição HTTP, permitindo que processos demorados sejam executados em segundo plano.
💬 8. Mensagens ao Usuário
- “Usuário não tem permissão para executar essa operação!” (TipoMensagem.Aviso) - Exibida se o usuário não tiver a permissão necessária para gerar o arquivo NIS.
- “Nenhum empregado sem NIS/PIS cadastrado foi encontrado.” (TipoMensagem.Aviso) - Exibida se a lista de empregados para geração do arquivo estiver vazia ao tentar gerar.
- “Solicitação de geração do arquivo de cadastramento de NIS/PIS feita com sucesso. O número do lote gerado é {0}” (TipoMensagem.Aviso, com duração de 7 segundos) - Exibida após a solicitação bem-sucedida de geração do arquivo.
🔐 9. Permissões e Perfis
- Employer.Plataforma.BLL.Enumeradores.Permissoes.ArquivoCadastramentoNIS.VisualizarTelaGerar:
- Controla: O acesso à tela
ArquivoNISGerar.aspx. Se o usuário não possuir esta permissão, é redirecionado para a página de acesso negado. - Verificado em:
ArquivoNISGerar.aspx.cs(ConfigurarPermissoesTela). - Employer.Plataforma.BLL.Enumeradores.Permissoes.ArquivoCadastramentoNIS.GerarArquivoCadastramentoNIS:
- Controla: A habilitação do botão “Gerar Arquivo Cadastro NIS/PIS” (
btnGerarArquivoNIS) e a execução da ação de geração do arquivo. - Verificado em:
ArquivoNISGerar.aspx.cs(ConfigurarPermissoesTela,btnGerarArquivoNIS_OnClick).
🔎 10. Aprofundamento — Detalhes Internos de Métodos
Com certeza! Vou consolidar todas as informações coletadas e gerar a documentação detalhada para cada classe, focando nos métodos internos, lógica, Stored Procedures e validações.
LoteArquivoNISEmpregado
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\LoteArquivoNISEmpregado_P1.cs
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\LoteArquivoNISEmpregado_P2.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
LoteArquivoNISEmpregado | public LoteArquivoNISEmpregado() | Construtor padrão da classe. |
LoteArquivoNISEmpregado | public LoteArquivoNISEmpregado(int idLoteArquivoNISEmpregado) | Construtor que inicializa a instância com um ID existente, marcando-a como persistida. |
GetParameters | private List<SqlParameter> GetParameters() | Prepara uma lista de parâmetros SQL para operações de INSERT/UPDATE. |
SetParameters | private void SetParameters(List<SqlParameter> parms) | Preenche uma lista de parâmetros SQL com os valores da instância atual. |
Insert | private void Insert() | Insere uma instância de LoteArquivoNISEmpregado no banco de dados. |
Insert | private void Insert(SqlTransaction trans) | Insere uma instância de LoteArquivoNISEmpregado no banco de dados, dentro de uma transação. |
Update | private void Update() | Atualiza uma instância de LoteArquivoNISEmpregado no banco de dados. |
Update | private void Update(SqlTransaction trans) | Atualiza uma instância de LoteArquivoNISEmpregado no banco de dados, dentro de uma transação. |
Save | public void Save() | Salva uma instância de LoteArquivoNISEmpregado no banco de dados (INSERT ou UPDATE). |
Save | public void Save(SqlTransaction trans) | Salva uma instância de LoteArquivoNISEmpregado no banco de dados, dentro de uma transação. |
Delete | public static void Delete(int idLoteArquivoNISEmpregado) | Exclui um registro de LoteArquivoNISEmpregado pelo ID. |
Delete | public static void Delete(int idLoteArquivoNISEmpregado, SqlTransaction trans) | Exclui um registro de LoteArquivoNISEmpregado pelo ID, dentro de uma transação. |
Delete | public static void Delete(List<int> idLoteArquivoNISEmpregado) | Exclui uma lista de registros de LoteArquivoNISEmpregado pelos IDs. |
LoadDataReader | private static IDataReader LoadDataReader(int idLoteArquivoNISEmpregado) | Retorna um IDataReader com as colunas de um registro específico. |
LoadDataReader | private static IDataReader LoadDataReader(int idLoteArquivoNISEmpregado, SqlTransaction trans) | Retorna um IDataReader com as colunas de um registro específico, dentro de uma transação. |
LoadDataReader | public static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Retorna um IDataReader para uma consulta paginada e ordenada. |
LoadObject | public static LoteArquivoNISEmpregado LoadObject(int idLoteArquivoNISEmpregado) | Retorna uma instância de LoteArquivoNISEmpregado a partir do banco de dados. |
LoadObject | public static LoteArquivoNISEmpregado LoadObject(int idLoteArquivoNISEmpregado, SqlTransaction trans) | Retorna uma instância de LoteArquivoNISEmpregado a partir do banco de dados, dentro de uma transação. |
CompleteObject | public bool CompleteObject() | Completa os atributos da instância atual a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa os atributos da instância atual a partir do banco de dados, dentro de uma transação. |
SetInstance | private static bool SetInstance(IDataReader dr, LoteArquivoNISEmpregado objLoteArquivoNISEmpregado) | Preenche os atributos de uma instância de LoteArquivoNISEmpregado a partir de um IDataReader. |
Salvar | public static void Salvar(LoteArquivoNIS pObjLoteArquivoNIS, List<LoteArquivoNISEmpregado> pLstObjLoteArquivoNISEmpregado, out int pNumeroLote) | Salva o lote de empregados para cadastramento de NIS, gerenciando a transação. |
Salvar | public static void Salvar(SqlTransaction pTrans, LoteArquivoNIS pObjLoteArquivoNIS, List<LoteArquivoNISEmpregado> pLstObjLoteArquivoNISEmpregado, out int pNumeroLote) | Salva o lote de empregados para cadastramento de NIS, utilizando uma transação existente. |
ListarPorLoteArquivoNIS | public static IDataReader ListarPorLoteArquivoNIS(int pIdLoteArquivoNIS, bool? pFlgErro) | Lista informações dos empregados de um lote NIS, com opção de filtrar por erro. |
ListarIdLoteArquivoNISEmpregado | public static List<int> ListarIdLoteArquivoNISEmpregado(int pIdUsuario, int pIdEmpresa, int? pIdFilial, int? pIdContrato, int? pIdDepartamento, int? pIdCentroResultado, int? pIdEmpregado, DateTime? pDtaGeracaoInicial, DateTime? pDtaGeracaoFinal, int? pIdLoteArquivoNIS) | Lista os IDs dos registros de empregados dentro de um lote NIS, com diversos filtros. |
ListarInformacoesLoteArquivoNISEmpregado | public static SqlDataReader ListarInformacoesLoteArquivoNISEmpregado(List<int> pLstIdLoteArquivoNISEmpregado, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros) | Lista registros de empregados para cadastramento de NIS de forma paginada. |
AtualizarStatusLote | public static void AtualizarStatusLote(int pIdLoteArquivoNIS) | Atualiza o status de cada empregado dentro de um lote NIS. |
LimparObservacaoEmpregadoPorLote | public static void LimparObservacaoEmpregadoPorLote(int pIdLoteArquivoNIS) | Limpa as observações salvas para cada empregado de um lote NIS. |
Excluir | public static void Excluir(int pIdLoteArquivoNISEmpregado) | Exclui um registro de empregado do lote e, se for o último, exclui o lote. |
Excluir | public static void Excluir(SqlTransaction pTrans, int pIdLoteArquivoNISEmpregado) | Exclui um registro de empregado do lote e, se for o último, exclui o lote, dentro de uma transação. |
Detalhamento de Métodos Importantes
GetParameters()
- Lógica: Este método privado é responsável por criar e retornar uma lista de objetos
SqlParameterpredefinidos para a tabelaTAB_Lote_Arquivo_NIS_Empregado. Cada parâmetro é inicializado com seu nome, tipo SQL e tamanho máximo. - Stored Procedures chamadas: Nenhuma diretamente. Prepara parâmetros para
SPINSERTeSPUPDATE. - Parâmetros SQL:
@Idf_Lote_Arquivo_NIS_Empregado(Int, 4): Identificador único do registro do empregado no lote NIS.@Idf_Lote_Arquivo_NIS(Int, 4): Identificador do lote NIS ao qual o empregado pertence.@Idf_Empregado(Int, 4): Identificador do empregado.@Num_CPF(Decimal, 9): Número do CPF do empregado.@Idf_Status_Lote_Arquivo_NIS_Empregado(Int, 4): Status do empregado no lote NIS.@Des_Mensagem(VarChar, 2000): Descrição de mensagem (erro/observação).@Idf_Usuario_Gerador(Int, 4): Identificador do usuário que gerou o registro.@Dta_Cadastro(DateTime, 8): Data de cadastro do registro.
SetParameters(List parms)
- Lógica: Este método privado recebe uma lista de
SqlParameter(gerada porGetParameters) e preenche os valores de cada parâmetro com os dados da instância atual deLoteArquivoNISEmpregado. - Atribui os valores das propriedades da instância aos respectivos parâmetros.
- Para
DescricaoMensagem, se a propriedade for nula ou vazia, define o valor do parâmetro comoDBNull.Value. - Se a instância não estiver persistida (
_persistedé falso), o parâmetro@Idf_Lote_Arquivo_NIS_Empregadoé configurado comoOutput(para receber o ID gerado pelo banco) e_dataCadastroé definido comoDateTime.Now. Caso contrário, é configurado comoInput. - Stored Procedures chamadas: Nenhuma diretamente. Preenche parâmetros para
SPINSERTeSPUPDATE.
Insert()
- Lógica: Insere os dados da instância atual no banco de dados.
- Chama
GetParameters()para obter a lista de parâmetros. - Chama
SetParameters()para preencher os parâmetros com os valores da instância. - Abre uma conexão SQL e inicia uma transação.
- Executa a query
SPINSERT(SQL de INSERT) usandoDataAccessLayer.ExecuteNonQueryCmd. - Recupera o
Idf_Lote_Arquivo_NIS_Empregadogerado pelo banco (usandoSCOPE_IDENTITY()) e atribui à propriedade_idLoteArquivoNISEmpregado. - Define
_persistedcomotruee_modifiedcomofalse. - Comita a transação. Em caso de erro, a transação é revertida e a exceção é relançada.
- Stored Procedures chamadas:
SPINSERT:INSERT INTO TAB_Lote_Arquivo_NIS_Empregado (Idf_Lote_Arquivo_NIS, Idf_Empregado, Num_CPF, Idf_Status_Lote_Arquivo_NIS_Empregado, Des_Mensagem, Idf_Usuario_Gerador, Dta_Cadastro) VALUES (@Idf_Lote_Arquivo_NIS, @Idf_Empregado, @Num_CPF, @Idf_Status_Lote_Arquivo_NIS_Empregado, @Des_Mensagem, @Idf_Usuario_Gerador, @Dta_Cadastro);SET @Idf_Lote_Arquivo_NIS_Empregado = SCOPE_IDENTITY();@Idf_Lote_Arquivo_NIS: ID do lote NIS.@Idf_Empregado: ID do empregado.@Num_CPF: CPF do empregado.@Idf_Status_Lote_Arquivo_NIS_Empregado: Status do empregado no lote.@Des_Mensagem: Mensagem de descrição.@Idf_Usuario_Gerador: ID do usuário que gerou.@Dta_Cadastro: Data de cadastro.@Idf_Lote_Arquivo_NIS_Empregado(Output): Retorna o ID gerado.
Insert(SqlTransaction trans)
- Lógica: Similar ao
Insert()sem transação, mas utiliza uma transação SQL já existente (trans) passada como parâmetro. Não gerencia a abertura/fechamento da conexão ou commit/rollback da transação. - Stored Procedures chamadas:
SPINSERT(mesmos parâmetros queInsert()).
Update()
- Lógica: Atualiza os dados da instância atual no banco de dados, se houver modificações (
_modifiedé true).
- Verifica se a instância foi modificada.
- Chama
GetParameters()eSetParameters()para preparar os parâmetros. - Executa a query
SPUPDATE(SQL de UPDATE) usandoDataAccessLayer.ExecuteNonQuery. - Define
_modifiedcomofalse.
- Stored Procedures chamadas:
SPUPDATE:UPDATE TAB_Lote_Arquivo_NIS_Empregado SET Idf_Lote_Arquivo_NIS = @Idf_Lote_Arquivo_NIS, Idf_Empregado = @Idf_Empregado, Num_CPF = @Num_CPF, Idf_Status_Lote_Arquivo_NIS_Empregado = @Idf_Status_Lote_Arquivo_NIS_Empregado, Des_Mensagem = @Des_Mensagem, Idf_Usuario_Gerador = @Idf_Usuario_Gerador, Dta_Cadastro = @Dta_Cadastro WHERE Idf_Lote_Arquivo_NIS_Empregado = @Idf_Lote_Arquivo_NIS_Empregado@Idf_Lote_Arquivo_NIS_Empregado: ID do registro a ser atualizado.@Idf_Lote_Arquivo_NIS: Novo ID do lote NIS.@Idf_Empregado: Novo ID do empregado.@Num_CPF: Novo CPF do empregado.@Idf_Status_Lote_Arquivo_NIS_Empregado: Novo status do empregado no lote.@Des_Mensagem: Nova mensagem de descrição.@Idf_Usuario_Gerador: Novo ID do usuário gerador.@Dta_Cadastro: Nova data de cadastro.
Update(SqlTransaction trans)
- Lógica: Similar ao
Update()sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPUPDATE(mesmos parâmetros queUpdate()).
Save()
- Lógica: Método público para persistir a instância.
- Se a instância não estiver persistida (
_persistedé falso), chamaInsert(). - Se a instância já estiver persistida, chama
Update().
Save(SqlTransaction trans)
- Lógica: Método público para persistir a instância dentro de uma transação.
- Se a instância não estiver persistida (
_persistedé falso), chamaInsert(trans). - Se a instância já estiver persistida, chama
Update(trans).
Delete(int idLoteArquivoNISEmpregado)
- Lógica: Exclui um registro da tabela
TAB_Lote_Arquivo_NIS_Empregadocom base no ID fornecido.
- Cria uma lista de parâmetros e adiciona
@Idf_Lote_Arquivo_NIS_Empregado. - Atribui o
idLoteArquivoNISEmpregadoao parâmetro. - Executa a query
SPDELETE(SQL de DELETE) usandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
SPDELETE:DELETE FROM TAB_Lote_Arquivo_NIS_Empregado WHERE Idf_Lote_Arquivo_NIS_Empregado = @Idf_Lote_Arquivo_NIS_Empregado@Idf_Lote_Arquivo_NIS_Empregado: ID do registro a ser excluído.
Delete(int idLoteArquivoNISEmpregado, SqlTransaction trans)
- Lógica: Similar ao
Delete(int idLoteArquivoNISEmpregado)sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPDELETE(mesmos parâmetros queDelete(int idLoteArquivoNISEmpregado)).
Delete(List idLoteArquivoNISEmpregado)
- Lógica: Exclui múltiplos registros da tabela
TAB_Lote_Arquivo_NIS_Empregadocom base em uma lista de IDs.
- Constrói uma query SQL dinâmica para a cláusula
WHERE IN (...). - Para cada ID na lista, cria um parâmetro
@parmXe adiciona à lista de parâmetros. - Executa a query dinâmica usando
DataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
- Exemplo de query gerada:
delete from TAB_Lote_Arquivo_NIS_Empregado where Idf_Lote_Arquivo_NIS_Empregado in (@parm0, @parm1, ...) @parmX: Cada ID da lista deidLoteArquivoNISEmpregado.
LoadDataReader(int idLoteArquivoNISEmpregado)
- Lógica: Retorna um
IDataReadercontendo os dados de um único registro deLoteArquivoNISEmpregado.
- Cria uma lista de parâmetros e adiciona
@Idf_Lote_Arquivo_NIS_Empregado. - Atribui o
idLoteArquivoNISEmpregadoao parâmetro. - Executa a query
SPSELECTID(SQL de SELECT) usandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELECTID:SELECT * FROM TAB_Lote_Arquivo_NIS_Empregado WHERE Idf_Lote_Arquivo_NIS_Empregado = @Idf_Lote_Arquivo_NIS_Empregado@Idf_Lote_Arquivo_NIS_Empregado: ID do registro a ser consultado.
LoadDataReader(int idLoteArquivoNISEmpregado, SqlTransaction trans)
- Lógica: Similar ao
LoadDataReader(int idLoteArquivoNISEmpregado)sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPSELECTID(mesmos parâmetros).
LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica: Realiza uma consulta paginada e ordenada na tabela
TAB_Lote_Arquivo_NIS_Empregado.
- Calcula os índices de início e fim para a paginação.
- Constrói duas queries SQL dinâmicas:
SPSELECTPAG: Seleciona os dados comROW_NUMBER()para paginação, ordenando pelacolunaOrdenacaoedirecaoOrdenacao.SPSELECTCOUNT: Conta o total de registros para a paginação.
- Executa
SPSELECTCOUNTpara obter ototalRegistros. - Executa
SPSELECTPAGpara obter oIDataReadercom os dados da página atual.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói queries SQL dinâmicas.
- Exemplo de
SPSELECTPAG:SELECT ROW_NUMBER() OVER (ORDER BY [colunaOrdenacao] [direcaoOrdenacao]) AS RowID, Lot.Idf_Lote_Arquivo_NIS_Empregado, ... FROM TAB_Lote_Arquivo_NIS_Empregado Lot - Exemplo de
SPSELECTCOUNT:SELECT COUNT(*) FROM (SELECT ROW_NUMBER() OVER (ORDER BY [colunaOrdenacao] [direcaoOrdenacao]) AS RowID, Lot.Idf_Lote_Arquivo_NIS_Empregado, ... FROM TAB_Lote_Arquivo_NIS_Empregado Lot) AS temp
LoadObject(int idLoteArquivoNISEmpregado)
- Lógica: Carrega uma instância completa de
LoteArquivoNISEmpregadoa partir do banco de dados.
- Chama
LoadDataReader(idLoteArquivoNISEmpregado)para obter os dados. - Cria uma nova instância de
LoteArquivoNISEmpregado. - Chama
SetInstance()para preencher a nova instância com os dados doIDataReader. - Se
SetInstanceretornartrue(registro encontrado), retorna a instância preenchida. - Se nenhum registro for encontrado, lança uma
RecordNotFoundException.
- Stored Procedures chamadas:
SPSELECTID(viaLoadDataReader).
LoadObject(int idLoteArquivoNISEmpregado, SqlTransaction trans)
- Lógica: Similar ao
LoadObject(int idLoteArquivoNISEmpregado)sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPSELECTID(viaLoadDataReader).
CompleteObject()
- Lógica: Preenche os atributos da instância atual de
LoteArquivoNISEmpregadoa partir do banco de dados, usando o_idLoteArquivoNISEmpregadoda própria instância.
- Chama
LoadDataReader(this._idLoteArquivoNISEmpregado)para obter os dados. - Chama
SetInstance()para preencher a instância atual com os dados. - Retorna
truese o objeto foi completado com sucesso,falsecaso contrário.
- Stored Procedures chamadas:
SPSELECTID(viaLoadDataReader).
CompleteObject(SqlTransaction trans)
- Lógica: Similar ao
CompleteObject()sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPSELECTID(viaLoadDataReader).
SetInstance(IDataReader dr, LoteArquivoNISEmpregado objLoteArquivoNISEmpregado)
- Lógica: Método auxiliar para mapear os dados de um
IDataReaderpara as propriedades de um objetoLoteArquivoNISEmpregado.
- Tenta ler a primeira linha do
IDataReader. - Se houver uma linha:
- Atribui os valores das colunas do
IDataReaderàs propriedades correspondentes doobjLoteArquivoNISEmpregado. - Instancia objetos
LoteArquivoNIS,EmpregadoeStatusLoteArquivoNISEmpregadocom seus respectivos IDs. - Trata
Des_MensagemparaDBNull.Value. - Define
_persistedcomotruee_modifiedcomofalse. - Retorna
true.
- Se não houver linhas, retorna
false. - Em caso de erro, relança a exceção. Garante que o
IDataReaderseja descartado nofinally.
Salvar(LoteArquivoNIS pObjLoteArquivoNIS, List pLstObjLoteArquivoNISEmpregado, out int pNumeroLote)
- Lógica: Salva um objeto
LoteArquivoNISe uma lista de objetosLoteArquivoNISEmpregadoem uma única transação.
- Abre uma conexão SQL e inicia uma transação.
- Chama a sobrecarga
Salvar(SqlTransaction pTrans, ...)para executar a lógica de salvamento dentro da transação. - Comita a transação se tudo ocorrer bem. Em caso de erro, reverte a transação e relança a exceção.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoteArquivoNIS.Save(pTrans)eLoteArquivoNISEmpregado.Save(pTrans).
Salvar(SqlTransaction pTrans, LoteArquivoNIS pObjLoteArquivoNIS, List pLstObjLoteArquivoNISEmpregado, out int pNumeroLote)
- Lógica: Salva um objeto
LoteArquivoNISe uma lista de objetosLoteArquivoNISEmpregadousando uma transação SQL existente.
- Chama
pObjLoteArquivoNIS.Save(pTrans)para persistir o objetoLoteArquivoNIS. - Atribui o
IdLoteArquivoNISdo objeto salvo apNumeroLote. - Itera sobre
pLstObjLoteArquivoNISEmpregado:
- Para cada
objLoteArquivoNISEmpregado, associa opObjLoteArquivoNISa ele. - Chama
objLoteArquivoNISEmpregado.Save(pTrans)para persistir cada item do lote. - Stored Procedures chamadas: Nenhuma diretamente. Chama
LoteArquivoNIS.Save(pTrans)eLoteArquivoNISEmpregado.Save(pTrans).
ListarPorLoteArquivoNIS(int pIdLoteArquivoNIS, bool? pFlgErro)
- Lógica: Lista informações detalhadas dos empregados pertencentes a um lote NIS específico.
- Inicializa uma lista de parâmetros e adiciona
@Idf_Lote_Arquivo_NIS. - Define o valor de
@Idf_Lote_Arquivo_NIScompIdLoteArquivoNIS. - Constrói uma cláusula
WHEREdinâmica (strWhereDinamico):
- Se
pFlgErrofortrue, adicionaAND lane.Idf_Status_Lote_Arquivo_NIS_Empregado = [FinalizadoComErro]. - Se
pFlgErroforfalse, adicionaAND lane.Idf_Status_Lote_Arquivo_NIS_Empregado != [FinalizadoComErro].
- Executa a query
SELLISPORLOTEARQUIVONISconcatenada comstrWhereDinamicousandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SELLISPORLOTEARQUIVONIS: SQL de SELECT que uneTAB_Lote_Arquivo_NIS_Empregado,plataforma.TAB_Status_Lote_Arquivo_NIS_Empregado,TAB_EmpregadoeTAB_Pessoa_Fisicapara obter informações do empregado, CPF formatado, matrícula, nome e descrição da mensagem/status.@Idf_Lote_Arquivo_NIS: ID do lote NIS.
ListarIdLoteArquivoNISEmpregado(int pIdUsuario, int pIdEmpresa, int? pIdFilial, int? pIdContrato, int? pIdDepartamento, int? pIdCentroResultado, int? pIdEmpregado, DateTime? pDtaGeracaoInicial, DateTime? pDtaGeracaoFinal, int? pIdLoteArquivoNIS)
- Lógica: Retorna uma lista de IDs de
LoteArquivoNISEmpregadocom base em diversos critérios de filtro.
- Inicializa uma lista de parâmetros SQL e uma lista para armazenar os IDs resultantes.
- Adiciona todos os parâmetros de filtro (
@Idf_Usuario,@Idf_Empresa, etc.) à lista de parâmetros. - Preenche os valores dos parâmetros, tratando
nullablescomDBNull.Value. ParapDtaGeracaoFinal, adiciona um dia para incluir o dia inteiro. - Constrói uma cláusula
WHEREdinâmica (strWhereDinamico) com base nos parâmetros de filtro fornecidos.
- Inclui condições para Filial, Contrato, Departamento (com subquery para o departamento ativo do empregado), Centro de Resultado, Empregado, Data de Geração (inicial e final) e ID do Lote NIS.
- A condição de acesso do usuário (
@Idf_Usuario) é aplicada usando a funçãoTAB_SF_Usuario_Acesso.
- Executa a query
SPSELIDLOTEARQUIVONISEMPREGADOformatada com astrWhereDinamicousandoDataAccessLayer.ExecuteReaderDs. - Itera sobre as linhas do
DataTableresultante e adiciona osIdf_Lote_Arquivo_NIS_Empregadoà lista de retorno.
- Stored Procedures chamadas:
SPSELIDLOTEARQUIVONISEMPREGADO: SQL de SELECT que uneTAB_Lote_Arquivo_NIS_Empregado,TAB_Lote_Arquivo_NIS,TAB_Empregado,TAB_ContratoeTAB_Centro_Resultadopara buscar IDs de empregados no lote.@Idf_Empresa: ID da empresa.@Idf_Usuario: ID do usuário (usado na funçãoTAB_SF_Usuario_Acesso).@Idf_Filial: ID da filial.@Idf_Contrato: ID do contrato.@Idf_Departamento: ID do departamento (usado em subquery).@Idf_Centro_Resultado: ID do centro de resultado.@Idf_Empregado: ID do empregado.@Dta_Geracao_Inicial: Data de geração inicial.@Dta_Geracao_Final: Data de geração final.@Idf_Lote_Arquivo_NIS: ID do lote NIS.TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa): Função de tabela que retorna os contratos/centros de resultado aos quais o usuário tem acesso.
ListarInformacoesLoteArquivoNISEmpregado(List pLstIdLoteArquivoNISEmpregado, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros)
- Lógica: Lista informações detalhadas e paginadas dos empregados de um lote NIS, com base em uma lista de IDs.
- Inicializa variáveis para a cláusula
WHERE, queries paginadas e de contagem, e lista de parâmetros. - Calcula os índices de início e fim para a paginação.
- Constrói a cláusula
WHERE:
- Se
pLstIdLoteArquivoNISEmpregadonão for nula e tiver itens, cria uma cláusulaINcom os IDs. - Caso contrário, define
WHERE 1 = 0para não retornar registros.
- Constrói a
queryPaginadausandoSPSELLOTEARQUIVONISEMPREGADOe a cláusulaWHERE, aplicandoROW_NUMBER()para ordenação e paginação. - Constrói a
queryCountpara obter o total de registros. - Executa
queryCountpara obterpTotalRegistros. - Executa
queryPaginadapara retornar oSqlDataReadercom os dados da página atual.
- Stored Procedures chamadas:
SPSELLOTEARQUIVONISEMPREGADO: SQL de SELECT que uneTAB_Lote_Arquivo_NIS_Empregado,plataforma.TAB_Status_Lote_Arquivo_NIS_Empregado,TAB_Lote_Arquivo_NIS,TAB_Empregado,TAB_Pessoa_Fisica,TAB_Contrato,TAB_Centro_ResultadoeTAB_Filialpara obter informações detalhadas dos empregados no lote.
AtualizarStatusLote(int pIdLoteArquivoNIS)
- Lógica: Atualiza o status dos empregados dentro de um lote NIS.
- Cria uma lista de parâmetros e adiciona
@Idf_Lote_Arquivo_NIS. - Define o valor de
@Idf_Lote_Arquivo_NIScompIdLoteArquivoNIS. - Executa a query
SPUPDATESTATUSLOTEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
SPUPDATESTATUSLOTE:UPDATE TAB_Lote_Arquivo_NIS_Empregado SET Idf_Status_Lote_Arquivo_NIS_Empregado = 2 WHERE Idf_Lote_Arquivo_NIS = @Idf_Lote_Arquivo_NIS AND Des_Mensagem IS NULL- Propósito: Define o status como “Finalizado com Sucesso” (2) para empregados do lote sem mensagem de erro.
UPDATE TAB_Lote_Arquivo_NIS_Empregado SET Idf_Status_Lote_Arquivo_NIS_Empregado = 3 WHERE Idf_Lote_Arquivo_NIS = @Idf_Lote_Arquivo_NIS AND Des_Mensagem IS NOT NULL- Propósito: Define o status como “Finalizado com Erro” (3) para empregados do lote com mensagem de erro.
@Idf_Lote_Arquivo_NIS: ID do lote NIS.
LimparObservacaoEmpregadoPorLote(int pIdLoteArquivoNIS)
- Lógica: Limpa as mensagens de observação (
Des_Mensagem) para todos os empregados de um lote NIS.
- Cria uma lista de parâmetros e adiciona
@Idf_Lote_Arquivo_NIS. - Define o valor de
@Idf_Lote_Arquivo_NIScompIdLoteArquivoNIS. - Executa a query
SPUPDATELIMPAROBSERVACAOEMPREGADOPORLOTEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
SPUPDATELIMPAROBSERVACAOEMPREGADOPORLOTE:UPDATE TAB_Lote_Arquivo_NIS_Empregado SET Des_Mensagem = NULL WHERE Idf_Lote_Arquivo_NIS = @Idf_Lote_Arquivo_NIS@Idf_Lote_Arquivo_NIS: ID do lote NIS.
Excluir(int pIdLoteArquivoNISEmpregado)
- Lógica: Exclui um registro de empregado do lote e, se não houver mais empregados nesse lote, exclui o próprio lote.
- Abre uma conexão SQL e inicia uma transação.
- Chama a sobrecarga
Excluir(SqlTransaction pTrans, ...)para executar a lógica de exclusão dentro da transação. - Comita a transação se tudo ocorrer bem. Em caso de erro, reverte a transação e relança a exceção.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Excluir(SqlTransaction pTrans, ...).
Excluir(SqlTransaction pTrans, int pIdLoteArquivoNISEmpregado)
- Lógica: Exclui um registro de empregado do lote e, se não houver mais empregados nesse lote, exclui o próprio lote, utilizando uma transação SQL existente.
- Cria uma lista de parâmetros e adiciona
@Idf_Lote_Arquivo_NIS_Empregado. - Define o valor de
@Idf_Lote_Arquivo_NIS_EmpregadocompIdLoteArquivoNISEmpregado. - Executa a query
SPDELETEEDELETELOTEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
SPDELETEEDELETELOTE:DECLARE @Idf_Lote_Arquivo_NIS INT;SET @Idf_Lote_Arquivo_NIS = (SELECT TOP 1 Idf_Lote_Arquivo_NIS FROM TAB_Lote_Arquivo_NIS_Empregado WHERE Idf_Lote_Arquivo_NIS_Empregado = @Idf_Lote_Arquivo_NIS_Empregado)- Propósito: Recupera o ID do lote ao qual o empregado pertence.
DELETE FROM TAB_Lote_Arquivo_NIS_Empregado WHERE Idf_Lote_Arquivo_NIS_Empregado = @Idf_Lote_Arquivo_NIS_Empregado- Propósito: Exclui o registro do empregado do lote.
IF NOT EXISTS (SELECT Idf_Lote_Arquivo_NIS_Empregado FROM TAB_Lote_Arquivo_NIS_Empregado WHERE Idf_Lote_Arquivo_NIS = @Idf_Lote_Arquivo_NIS) BEGIN DELETE FROM TAB_Lote_Arquivo_NIS WHERE Idf_Lote_Arquivo_NIS = @Idf_Lote_Arquivo_NIS END- Propósito: Verifica se ainda existem outros empregados no mesmo lote. Se não houver, exclui o registro do lote principal (
TAB_Lote_Arquivo_NIS). @Idf_Lote_Arquivo_NIS_Empregado: ID do registro do empregado no lote a ser excluído.@Idf_Lote_Arquivo_NIS: ID do lote (variável interna da SP).
Stored Procedures
| Nome | Parâmetros | Propósito |
|---|---|---|
SPINSERT | @Idf_Lote_Arquivo_NIS, @Idf_Empregado, @Num_CPF, @Idf_Status_Lote_Arquivo_NIS_Empregado, @Des_Mensagem, @Idf_Usuario_Gerador, @Dta_Cadastro, @Idf_Lote_Arquivo_NIS_Empregado (Output) | Insere um novo registro na tabela TAB_Lote_Arquivo_NIS_Empregado e retorna o ID gerado. |
SPUPDATE | @Idf_Lote_Arquivo_NIS, @Idf_Empregado, @Num_CPF, @Idf_Status_Lote_Arquivo_NIS_Empregado, @Des_Mensagem, @Idf_Usuario_Gerador, @Dta_Cadastro, @Idf_Lote_Arquivo_NIS_Empregado | Atualiza um registro existente na tabela TAB_Lote_Arquivo_NIS_Empregado. |
SPDELETE | @Idf_Lote_Arquivo_NIS_Empregado | Exclui um registro da tabela TAB_Lote_Arquivo_NIS_Empregado pelo ID. |
SPSELECTID | @Idf_Lote_Arquivo_NIS_Empregado | Seleciona todas as colunas de um registro da tabela TAB_Lote_Arquivo_NIS_Empregado pelo ID. |
SELLISPORLOTEARQUIVONIS | @Idf_Lote_Arquivo_NIS | Lista informações detalhadas dos empregados de um lote NIS, incluindo CPF formatado, matrícula, nome, status e mensagem. Pode ser filtrado por status de erro. |
SPSELIDLOTEARQUIVONISEMPREGADO | @Idf_Empresa, @Idf_Usuario, @Idf_Filial, @Idf_Contrato, @Idf_Departamento, @Idf_Centro_Resultado, @Idf_Empregado, @Dta_Geracao_Inicial, @Dta_Geracao_Final, @Idf_Lote_Arquivo_NIS | Lista os identificadores dos registros de empregado dentro do lote do arquivo de cadastramento de NIS, com diversos filtros e controle de acesso por usuário. |
SPSELLOTEARQUIVONISEMPREGADO | Nenhum (filtros são concatenados dinamicamente) | Seleciona informações detalhadas dos empregados para cadastramento de NIS, incluindo filial, matrícula, nome, CPF formatado, status e mensagem. Usado para paginação. |
SPUPDATESTATUSLOTE | @Idf_Lote_Arquivo_NIS | Atualiza o status dos empregados em um lote NIS para “Finalizado com Sucesso” (se Des_Mensagem for NULL) ou “Finalizado com Erro” (se Des_Mensagem não for NULL). |
SPUPDATELIMPAROBSERVACAOEMPREGADOPORLOTE | @Idf_Lote_Arquivo_NIS | Define a coluna Des_Mensagem como NULL para todos os empregados de um lote NIS. |
SPDELETEEDELETELOTE | @Idf_Lote_Arquivo_NIS_Empregado | Exclui um registro de empregado do lote. Se este for o último registro do lote, o lote principal (TAB_Lote_Arquivo_NIS) também é excluído. |
TAB_SF_Usuario_Acesso | @Idf_Usuario, @Idf_Empresa | (Função de Tabela) Retorna os contratos e centros de resultado aos quais um usuário tem acesso dentro de uma empresa. |
Empregado
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empregado_P1.cs
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empregado_P2.cs
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empregado_P3.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
Empregado | public Empregado() | Construtor padrão da classe. |
Empregado | public Empregado(int idEmpregado) | Construtor que inicializa a instância com um ID existente, marcando-a como persistida. |
GetParameters | private List<SqlParameter> GetParameters() | Prepara uma lista de parâmetros SQL para operações de INSERT/UPDATE. |
SetParameters | private void SetParameters(List<SqlParameter> parms) | Preenche uma lista de parâmetros SQL com os valores da instância atual. |
Insert | private void Insert() | Insere uma instância de Empregado no banco de dados. |
Insert | private void Insert(SqlTransaction trans) | Insere uma instância de Empregado no banco de dados, dentro de uma transação. |
Update | private void Update() | Atualiza uma instância de Empregado no banco de dados. |
Update | private void Update(SqlTransaction trans) | Atualiza uma instância de Empregado no banco de dados, dentro de uma transação. |
Save | public void Save() | Salva uma instância de Empregado no banco de dados (INSERT ou UPDATE). |
Save | public void Save(SqlTransaction trans) | Salva uma instância de Empregado no banco de dados, dentro de uma transação. |
Delete | public static void Delete(int idEmpregado) | Exclui um registro de Empregado pelo ID. |
Delete | public static void Delete(int idEmpregado, SqlTransaction trans) | Exclui um registro de Empregado pelo ID, dentro de uma transação. |
Delete | public static void Delete(List<int> idEmpregado) | Exclui uma lista de registros de Empregado pelos IDs. |
LoadDataReader | private static IDataReader LoadDataReader(int idEmpregado) | Retorna um IDataReader com as colunas de um registro específico. |
LoadDataReader | private static IDataReader LoadDataReader(int idEmpregado, SqlTransaction trans) | Retorna um IDataReader com as colunas de um registro específico, dentro de uma transação. |
LoadDataReader | public static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Retorna um IDataReader para uma consulta paginada e ordenada. |
LoadObject | public static Empregado LoadObject(int idEmpregado) | Retorna uma instância de Empregado a partir do banco de dados. |
LoadObject | public static Empregado LoadObject(int idEmpregado, SqlTransaction trans) | Retorna uma instância de Empregado a partir do banco de dados, dentro de uma transação. |
SetInstance | private static bool SetInstance(IDataReader dr, Empregado objEmpregado, bool bDispose = true) | Preenche os atributos de uma instância de Empregado a partir de um IDataReader. |
Listar | public static List<Empregado> Listar() | Retorna uma lista de todas as instâncias de Empregado do banco de dados. |
CompleteObject | public bool CompleteObject() | Completa os atributos da instância atual a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa os atributos da instância atual a partir do banco de dados, dentro de uma transação. |
CarregarAutoComplete | public static bool CarregarAutoComplete(int pIdEmpresa, int pIdUsuario, bool pFuncionarioInativo, decimal pCpf, string pNumeroMatricula, string pNome, out Empregado pObjEmpregado) | Carrega um objeto Empregado com base em filtros de autocomplete. |
CarregarPorMatriculaCpf | public static bool CarregarPorMatriculaCpf(string matricula, string cpf, int idFilial, out Empregado objEmpregado) | Carrega um objeto Empregado por matrícula ou CPF e filial. |
CarregarEmpregadosAtivosPorPeriodo | public static DataTable CarregarEmpregadosAtivosPorPeriodo(DateTime? de, DateTime? ate, int Idf_Empresa, string idContrato, string idDepartamento, int? idCentroResultado, int IdUsuario, int TipoContrato, int IdFilial) | Carrega empregados ativos em um período, com filtros de empresa, contrato, departamento, CR, usuário, tipo de contrato e filial. |
CarregarEmpregadosAdmitidosDemitidosPorPeriodo | public static DataTable CarregarEmpregadosAdmitidosDemitidosPorPeriodo(DateTime? de, DateTime? ate, int Idf_Empresa, int? idFilial, string idContrato, string idDimensao, int? idCentroResultado, int IdUsuario, int TipoContrato) | Carrega empregados admitidos ou demitidos em um período, com diversos filtros. |
NumeroDiasFaltas | public static short NumeroDiasFaltas(out decimal horasFaltasOut, PeriodoCalculo objPeriodoCalculo, Empregado objEmpregado, SqlTransaction trans, Enumeradores.VerbaSistema enumVSFaltaAtraso) | Calcula o número de dias de faltas de um empregado em um período, considerando horas de faltas. |
NumeroDiasFaltas | public static short NumeroDiasFaltas(out decimal horasFaltasOut, PeriodoCalculo objPeriodoCalculo, Empregado objEmpregado, Enumeradores.VerbaSistema enumVSFaltaAtraso) | Calcula o número de dias de faltas de um empregado em um período, gerenciando a transação. |
CarregarPorMatriculaCpfUsuarioAtivoInativo | public static bool CarregarPorMatriculaCpfUsuarioAtivoInativo(string matricula, string cpf, int idfUsuario, int idfEmpresa, out Empregado objEmpregado) | Carrega um empregado por matrícula ou CPF, considerando status ativo/inativo e acesso do usuário. |
CarregarPorMatriculaCpfUsuario | public static bool CarregarPorMatriculaCpfUsuario(string matricula, string cpf, int idfUsuario, int idfEmpresa, out Empregado objEmpregado, bool flgInativo) | Carrega um empregado por matrícula ou CPF, com filtro de inatividade e acesso do usuário. |
CarregarPorMatriculaCpfUsuario | public static bool CarregarPorMatriculaCpfUsuario(string matricula, string cpf, int idfUsuario, int idfEmpresa, out Empregado objEmpregado, bool? flgInativo) | Carrega um empregado por matrícula ou CPF, com filtro de inatividade opcional e acesso do usuário. |
CarregarEmpregadoCentroResultado | public static bool CarregarEmpregadoCentroResultado(int pIdEmpresa, int pIdUsuario, Int64 pCpf, string pNum_Matricula, out Empregado objEmpregado) | Carrega um empregado por CPF e matrícula, filtrando por centro de resultado e empresa. |
CarregarAdmitidosPorPeriodo | public static int CarregarAdmitidosPorPeriodo(int idfEmpresa, int? idfFilial, DateTime dtaInicio, DateTime? dtaFim) | Conta o número de empregados admitidos em um período para uma empresa/filial. |
ListarAutoCompleteEmpregado | public static string[] ListarAutoCompleteEmpregado(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, bool pFuncionarioInativo, decimal? pCpfPis, string pNumeroMatricula, string pNome) | Retorna uma lista de strings formatadas para autocomplete de empregados. |
ListarAutoCompleteEmpregado | public static string[] ListarAutoCompleteEmpregado(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, bool pFuncionarioInativo, decimal? pCpfPis, string pNumeroMatricula, string pNome, int idFilial) | Retorna uma lista de strings formatadas para autocomplete de empregados, com filtro de filial. |
ListarEmpregadosRescisao | public static string[] ListarEmpregadosRescisao(string prefixText, int pNumeroRegistros, Dictionary<string, string> valores) | Lista empregados com rescisão para autocomplete, com filtros dinâmicos. |
ListarAutoComplete | public static string[] ListarAutoComplete(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, bool pFuncionarioInativo, decimal? pCpfPis, string pNumeroMatricula, string pNome) | Retorna uma lista de strings formatadas para autocomplete de empregados, incluindo ID da empresa. |
ListarAutoComplete | public static Dictionary<string, string> ListarAutoComplete2(string prefixText, int pNumeroRegistros, Dictionary<string, string> valores) | Retorna um dicionário para autocomplete de empregados, com filtros dinâmicos e tratamento para estrutura gerencial (CR ou Contrato). |
ListarAutoCompleteTeste | public static string[] ListarAutoCompleteTeste(int pNumeroRegistros, string pNome) | Lista empregados para autocomplete de teste, filtrando por nome. |
ListarAutoCompleteTipoVinculo | public static string[] ListarAutoCompleteTipoVinculo(string prefixText, int pNumeroRegistros, Dictionary<string, string> valores) | Lista empregados para autocomplete, com filtro de tipo de vínculo e outros filtros dinâmicos. |
ListarBeneficioEmpregado | public static IDataReader ListarBeneficioEmpregado(int? idContrato, int? idEmpregado, int? idTipoBeneficio, int? idFornecedor, int? idBeneficio, int? idCentroResultado, int? idFilial) | Lista benefícios de empregados com diversos filtros. |
ListarEmpregadoContrato | public static IDataReader ListarEmpregadoContrato(int idContrato, int idUsuario, int idEmpresa, decimal ValorPadrao, int idBeneficio) | Lista empregados de um contrato para regras de benefício de transporte. |
ListarPorLista | public static DataTable ListarPorLista(string nomeColuna, string direcaoOrdenacao, Dictionary<int, decimal?> dicEmpregados, int paginaCorrente, int tamanhoPagina, int idUsuario, int idEmpresa, out int totalRegistros) | Lista empregados de uma lista de IDs para grid, com paginação e ordenação. |
Listar | public static IDataReader Listar(string nomeColuna, string direcaoOrdenacao, string cpfPis, string nome, string ctps, int paginaCorrente, int tamanhoPagina, int idUsuario, int idEmpresa, out int totalRegistros) | Lista empregados com paginação e ordenação, filtrando por CPF/PIS, nome e CTPS. |
ListarEmpregadoPorContratoParcial | private static IDataReader ListarEmpregadoPorContratoParcial(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string valor) | Lista empregados de forma parcial por contrato, com filtros de tipo de contrato, contrato mãe/filho e valor de busca. |
ListarEmpregadoPorContratoParcialAtivoInativo | private static IDataReader ListarEmpregadoPorContratoParcialAtivoInativo(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string valor) | Lista empregados de forma parcial por contrato, incluindo inativos, com filtros de tipo de contrato, contrato mãe/filho e valor de busca. |
ListarEmpregadoPorContrato | public static string[] ListarEmpregadoPorContrato(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string valor) | Retorna uma lista de strings formatadas para autocomplete de empregados por contrato. |
ListarEmpregadoPorContratoAtivoInativo | public static string[] ListarEmpregadoPorContratoAtivoInativo(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string valor) | Retorna uma lista de strings formatadas para autocomplete de empregados por contrato, incluindo inativos. |
ListarParcial | public static IDataReader ListarParcial(string matriculaNomeCpf, int idFilial, int? tipoFolha) | Lista empregados parcialmente por matrícula/nome/CPF e filial, com filtro opcional de tipo de folha. |
ListarPorPessoaFisica | public static List<Empregado> ListarPorPessoaFisica(PessoaFisica objPessoaFisica, SqlTransaction trans) | Retorna todos os empregados ativos relacionados a uma pessoa física. |
ListarPorPessoaFisicaInativo | public static List<int> ListarPorPessoaFisicaInativo(List<int> lstPessoaFisica) | Retorna os IDs de empregados inativos relacionados a uma lista de pessoas físicas. |
ListarPorPessoaFisicaFilial | public static List<Empregado> ListarPorPessoaFisicaFilial(PessoaFisica objPessoaFisica, Filial objFilial, SqlTransaction trans) | Retorna todos os empregados ativos relacionados a uma pessoa física e filial. |
ListarPorMatriculaCpf | public static IDataReader ListarPorMatriculaCpf(string numMatricula, string numCpf, string idFilial) | Retorna dados de um empregado por matrícula ou CPF e filial. |
ListarPorMatriculaContrato | private static IDataReader ListarPorContratoMatricula(int idContrato, string numMatricula) | Retorna dados de um empregado por contrato e matrícula. |
Listar | public static IDataReader Listar(string matriculaNomeCpf, string idFilial) | Retorna dados de um empregado por matrícula/nome/CPF e filial. |
ListarPorPessoaFisicaEmpresa | public static List<Empregado> ListarPorPessoaFisicaEmpresa(PessoaFisica objPessoaFisica, Empresa objEmpresa, SqlTransaction trans) | Retorna todos os empregados ativos relacionados a uma pessoa física e empresa. |
ListarEmpregadoAutoCompleteUsuario | public static string[] ListarEmpregadoAutoCompleteUsuario(string matriculaNomeCpf, int idfUsuarioLogado, int count) | Lista empregados para autocomplete, filtrando por matrícula/nome/CPF e acesso do usuário. |
ListarEmpregadoAutoCompleteUsuarioEmpresa | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresa(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count, bool funcInativo) | Lista empregados para autocomplete, com filtros de usuário, empresa e status de inatividade. |
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivos | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaAtivos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count) | Lista empregados ATIVOS para autocomplete, com filtros de usuário e empresa. |
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialAtivos | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaFilialAtivos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int count) | Lista empregados ATIVOS para autocomplete, com filtros de usuário, empresa e filial. |
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialInativos | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaFilialInativos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int count) | Lista empregados INATIVOS para autocomplete, com filtros de usuário, empresa e filial. |
ListarEmpregadoAutoCompleteUsuarioEmpresaFilial | private static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaFilial(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int count, bool ativo) | Método auxiliar para listar empregados para autocomplete, com filtros de usuário, empresa, filial e status ativo/inativo. |
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoAtivos | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoAtivos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int idfContrato, int count) | Lista empregados ATIVOS para autocomplete, com filtros de usuário, empresa, filial e contrato. |
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoInativos | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoInativos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int idfContrato, int count) | Lista empregados INATIVOS para autocomplete, com filtros de usuário, empresa, filial e contrato. |
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContrato | private static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContrato(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int idfContrato, int count, bool ativo) | Método auxiliar para listar empregados para autocomplete, com filtros de usuário, empresa, filial, contrato e status ativo/inativo. |
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativo | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count) | Lista empregados (ativos/inativos) para autocomplete, com filtros de usuário e empresa, considerando estrutura gerencial. |
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialAtivoInativo | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaFilialAtivoInativo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int count) | Lista empregados (ativos/inativos) para autocomplete, com filtros de usuário, empresa e filial. |
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoDepartamentoAtivoInativo | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoDepartamentoAtivoInativo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int idfContrato, int idfDepartamento, int count) | Lista empregados (ativos/inativos) para autocomplete, com filtros de usuário, empresa, filial, contrato e departamento. |
ListarEmpregadoAutoCompleteAtivo | public static string[] ListarEmpregadoAutoCompleteAtivo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count) | Lista empregados ATIVOS para autocomplete, com filtros de usuário e empresa. |
ListarEmpregadoAutoCompleteUsuarioEmpresaInativo | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaInativo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count) | Lista empregados INATIVOS para autocomplete, com filtros de usuário e empresa, incluindo validações de rescisão. |
ListarEmpregadoAutoCompleteUsuarioEmpresa | public static string[] ListarEmpregadoAutoCompleteUsuarioEmpresa(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count) | Lista empregados para autocomplete, com filtros de usuário e empresa. |
ListarPorMatriculaCpfUsuario | public static IDataReader ListarPorMatriculaCpfUsuario(string numMatricula, string numCpf, int idfUsuarioLogado) | Retorna dados de um empregado por matrícula ou CPF e acesso do usuário. |
ListarPorMatriculaCpfUsuario | public static IDataReader ListarPorMatriculaCpfUsuario(string numMatricula, string numCpf, int idfUsuarioLogado, int idfEmpresa, bool flgInativo) | Retorna dados de um empregado por matrícula ou CPF, com filtro de inatividade e acesso do usuário. |
ListarPorMatriculaCpfUsuario | public static IDataReader ListarPorMatriculaCpfUsuario(string numMatricula, string numCpf, int idfUsuarioLogado, int idfEmpresa, bool? flgInativo) | Retorna dados de um empregado por matrícula ou CPF, com filtro de inatividade opcional e acesso do usuário. |
ListarPorMatriculaCpfUsuarioAtivoInativo | public static IDataReader ListarPorMatriculaCpfUsuarioAtivoInativo(string numMatricula, string numCpf, int idfUsuarioLogado, int idfEmpresa) | Retorna dados de um empregado por matrícula ou CPF, considerando status ativo/inativo e acesso do usuário. |
ListarEmpregadosFiltroBeneficio | public static IDataReader ListarEmpregadosFiltroBeneficio(int idEmpresa, int idFilial, int idContrato, int idDepartamento, int idFuncaoExclusiva, int idEmpregado, int numMes, int numAno, string nomeColuna, string direcaoOrdenacao) | Lista empregados para filtro de benefício, com diversos critérios. |
MontarQueryListarEmpregadosFiltroPagamentoBeneficio | private static string MontarQueryListarEmpregadosFiltroPagamentoBeneficio(out List<SqlParameter> parms, int idfEmpresa, int idfUsuario, int? idfBanco, int? idfFilial, int? idfContrato, int? idfDepartamento, int? idfFuncaoExlusiva, int? idfTipoFolha, int? idfTpBeneficio, int? idfFormaPagamento, string NotIn, int? mes, int? ano, int? pIdFormaPagamentoBeneficio) | Monta a query SQL para listar empregados para filtro de pagamento de benefício. |
MontarQueryListarEmpregadosFiltroPagamento | private static string MontarQueryListarEmpregadosFiltroPagamento(out List<SqlParameter> parms, int idfEmpresa, int idfUsuario, int? idfBanco, int? idfFilial, int? idfContrato, int? idfDepartamento, int? idfFuncaoExclusiva, int? idfFuncionario, int? idfTpFolha, int? idfTpBeneficio, int? idfFormaPagamento, string NotIn) | Monta a query SQL para listar empregados para filtro de pagamento de folha. |
ListarEmpregadosFiltroPagamento | public static IDataReader ListarEmpregadosFiltroPagamento(int idfEmpresa, int idfUsuario, int? idfBanco, int? idfFilial, int? idfContrato, int? idfDepartamento, int? idfFuncaoExclusiva, int? idfFuncionario, int? idfTpFolha, int? idfTpBeneficio, int? idfFormaPagamento, int? mes, int? ano, int? pIdFormaPagamentoBeneficio) | Lista empregados para o filtro de geração de arquivos de pagamento (benefício ou folha). |
ListarEmpregadosFiltroPagamento | public static IDataReader ListarEmpregadosFiltroPagamento(int idfEmpresa, int idfUsuario, int? idfBanco, int? idfFilial, int? idfContrato, int? idfDepartamento, int? idfFuncaoExclusiva, int? idfFuncionario, int? idfTpFolha, int? idfTpBeneficio, int? idfFormaPagamento, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros, out decimal valorTotal, out decimal valorMedio, string NotIn, int? mes, int? ano, int? pIdFormaPagamentoBeneficio) | Lista empregados para o filtro de geração de arquivos de pagamento (benefício ou folha) com paginação e totalizadores. |
ListarPorMatriculaCpfEmpresa | public static IDataReader ListarPorMatriculaCpfEmpresa(string numMatricula, string numCpf, string idEmpresa) | Retorna dados de um empregado por matrícula ou CPF e empresa. |
CarregarPorMatriculaCpfNome | public static bool CarregarPorMatriculaCpfNome(string textoAutoComplete, out Empregado empregado) | Carrega um empregado a partir de uma string de autocomplete formatada (matrícula - nome - CPF). |
LoadObject_Por_Matricula_Cpf | public static Empregado LoadObject_Por_Matricula_Cpf(string _matricula, string _cpf) | Carrega um objeto Empregado por matrícula e CPF. |
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura | public static Dictionary<string, string> ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count) | Lista empregados (ativos/inativos) e admissões futuras para autocomplete, com filtros de usuário e empresa. |
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura | public static Dictionary<string, string> ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int count) | Lista empregados (ativos/inativos) e admissões futuras para autocomplete, com filtros de usuário, empresa e filial. |
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura | public static Dictionary<string, string> ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int? idfFilial, int? idfCentroResultado, int count) | Lista empregados (ativos/inativos) e admissões futuras para autocomplete, com filtros de usuário, empresa, filial e centro de resultado. |
ListarEmpregadoAutoCompleteCentroResultado | public static string[] ListarEmpregadoAutoCompleteCentroResultado(string matriculaNomeCpf, int idUsuarioLogado, int idEmpresaLogada, int? idFilial, int? idCentroResultado, int count, bool? inativo) | Lista empregados para autocomplete, com filtros de centro de resultado, filial, empresa e status de inatividade. |
AdicionarItemFilaCalculoBeneficio | private void AdicionarItemFilaCalculoBeneficio(SqlTransaction trans) | Adiciona o empregado na fila de cálculo de benefício. |
GerarAcessoHolerite | public void GerarAcessoHolerite(SqlTransaction trans) | Gera o acesso ao holerite para o empregado atual. |
GerarAcessoHolerite | public static void GerarAcessoHolerite(SqlTransaction trans, Empregado pObjEmpregado) | Gera o acesso ao holerite para um empregado específico. |
RecuperarQtdHoraMensalTotal | public static int RecuperarQtdHoraMensalTotal(int idPessoa) | Recupera a quantidade total de horas mensais de trabalho de uma pessoa física. |
RecuperarPorPessoaFisicaFilial | public static List<Empregado> RecuperarPorPessoaFisicaFilial(PessoaFisica objPessoaFisica, Filial objFilial, SqlTransaction trans) | Recupera a lista de empregados de uma pessoa física em uma filial. |
RecuperarPorPessoaFisicaEmpresa | public static List<Empregado> RecuperarPorPessoaFisicaEmpresa(PessoaFisica objPessoaFisica, Empresa objEmpresa, SqlTransaction trans) | Recupera a lista de empregados de uma pessoa física em uma empresa. |
RecuperarEmpregadosAtivosPorFilial | public static DataTable RecuperarEmpregadosAtivosPorFilial(int idfFilial, SqlTransaction trans) | Recupera um DataTable com empregados ativos de uma filial. |
RecuperarListaEmpregadosAtivosPorFilial | public static List<Empregado> RecuperarListaEmpregadosAtivosPorFilial(SqlTransaction trans, int idfFilial) | Recupera uma lista de objetos Empregado ativos de uma filial. |
ListarEmpregadosDecimoTerceiro | public static IDataReader ListarEmpregadosDecimoTerceiro(int IdEmpresa, int IdFilial, int IdContrato, int IdDepartamento, int IdEmpregado, int NumAno, int CodigoUsuarioLogado, string NotIn, int IdTipoFolha, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros, string empregadosIn, bool lancamentoEfetuado, int? IdCentroResultado) | Lista empregados para cálculo de 13º salário, com diversos filtros e paginação. |
ListarEmpregadosDecimoTerceiroLancamento | public static DataTable ListarEmpregadosDecimoTerceiroLancamento(int IdEmpresa, int IdFilial, int IdContrato, int IdDepartamento, int IdEmpregado, int CodigoUsuarioLogado, string NotIn, int IdTipoFolha, int? IdCentroResultado) | Lista empregados para lançamento de 13º salário. |
VerificaAdiantamentoDecimoTerceiroPagamento | public static bool VerificaAdiantamentoDecimoTerceiroPagamento(int IdEmpregado) | Verifica se um empregado possui adiantamento de 13º salário com pagamento pendente. |
ListarEmpregadosAtivosPorFilial | public static IDataReader ListarEmpregadosAtivosPorFilial(int idfFilial, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Lista empregados ativos por filial com paginação e ordenação. |
ListarIdsEmpregadosAtivosPorFilial | public static List<int> ListarIdsEmpregadosAtivosPorFilial(int idfFilial) | Lista os IDs de empregados ativos por filial. |
ListarEmpregadosAtivosDecimoTerceiro | public static IDataReader ListarEmpregadosAtivosDecimoTerceiro(int idfFilial, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Lista empregados ativos para 13º salário com paginação e ordenação. |
RecuperarIdPorMatriculaCpfNome | public static int RecuperarIdPorMatriculaCpfNome(string matricula, string nome, string cpf) | Recupera o ID de um empregado por matrícula, nome e CPF. |
VerificarSequenciaMatricula | public static int VerificarSequenciaMatricula(int tipoBusca, Filial filial) | Recupera a próxima sequência de matrícula disponível (por empresa ou filial). |
VerificaSequenciaMatriculaEmpresa | private static int VerificaSequenciaMatriculaEmpresa(int idEmpresa) | Recupera a última matrícula usada em uma empresa. |
VerificaSequenciaMatriculaFilial | private static int VerificaSequenciaMatriculaFilial(int idFilial) | Recupera a última matrícula usada em uma filial. |
VerificarSequenciaFichaRegistro | public static int VerificarSequenciaFichaRegistro(int tipoBusca, Filial filial) | Recupera a próxima sequência de ficha de registro disponível (por empresa ou filial). |
VerificaSequenciaFichaRegistroEmpresa | private static int VerificaSequenciaFichaRegistroEmpresa(int idEmpresa) | Recupera a última ficha de registro usada em uma empresa. |
VerificaSequenciaFichaRegistroFilial | private static int VerificaSequenciaFichaRegistroFilial(int idFilial) | Recupera a última ficha de registro usada em uma filial. |
VerificarMatricula | public static bool VerificarMatricula(string numeroMatricula, int tipoBusca, Filial filial, int? idEmpregado) | Verifica a existência de uma matrícula (por empresa ou filial). |
VerificaMatriculaEmpresa | private static bool VerificaMatriculaEmpresa(string numeroMatricula, int idEmpresa, int? idEmpregado) | Verifica a existência de uma matrícula em uma empresa. |
VerificaMatriculaFilial | public static bool VerificaMatriculaFilial(string numeroMatricula, int idFilial, int? idEmpregado) | Verifica a existência de uma matrícula em uma filial. |
VerificarFichaRegistro | public static bool VerificarFichaRegistro(string numeroFichaRegistro, int tipoBusca, Filial filial, int? idEmpregado) | Verifica a existência de uma ficha de registro (por empresa ou filial). |
VerificaFichaRegistroEmpresa | private static bool VerificaFichaRegistroEmpresa(string numeroFichaRegistro, int idEmpresa, int? idEmpregado) | Verifica a existência de uma ficha de registro em uma empresa. |
VerificaFichaRegistroFilial | private static bool VerificaFichaRegistroFilial(string numeroFichaRegistro, int idFilial, int? idEmpregado) | Verifica a existência de uma ficha de registro em uma filial. |
VerificarContrato | public static bool VerificarContrato(string numeroContrato) | Verifica a existência de um contrato pelo código. |
VerificarDepartamento | public static bool VerificarDepartamento(string numeroDepartamento) | Verifica a existência de um departamento pelo código. |
VerificarRecontratacao | public static bool VerificarRecontratacao(int? idTomadorPJ, int? idTomadorPF, int idPessoaFisica, int idTipoVinculo, DateTime dtInicioPeriodo, int idEmpresa) | Verifica se uma recontratação é permitida com base em regras de vínculo e período. |
VerificarFolhaPaga | public static bool VerificarFolhaPaga(int IdEmpregado, DateTime DtaInicio, DateTime DtaFinal) | Verifica se um empregado possui folha paga em um determinado período. |
Inativar | public static void Inativar(int idEmpregado) | Inativa um empregado. |
Inativar | public static void Inativar(int idEmpregado, SqlTransaction trans) | Inativa um empregado dentro de uma transação. |
DeleteMemoriaCalculoLogTemp | public static void DeleteMemoriaCalculoLogTemp(int idEmpregado, SqlTransaction trans) | Exclui registros temporários de log de memória de cálculo para um empregado. |
ExisteEmpregadoContrato | public static bool ExisteEmpregadoContrato(int idContrato) | Verifica se existe algum empregado vinculado a um contrato. |
ExisteEmpregadoAtivoContrato | public static bool ExisteEmpregadoAtivoContrato(int idContrato) | Verifica se existe algum empregado ATIVO vinculado a um contrato. |
ExisteEmpregadoContratoAtivo | public static bool ExisteEmpregadoContratoAtivo(PessoaFisica objPessoaFisica, Contrato objContrato) | Verifica se existe um empregado ativo para uma pessoa física e contrato específicos. |
ExisteEmpregadoAtivo | public static bool ExisteEmpregadoAtivo(PessoaFisica objPessoaFisica, int idEmpresa, int idUsuario) | Verifica se existe um empregado ativo para uma pessoa física, empresa e usuário, considerando acesso. |
ExisteEmpregadoAtivo | public static bool ExisteEmpregadoAtivo(decimal pCpf, int pIdEmpresa) | Verifica se existe um empregado ativo com um CPF e empresa específicos. |
ExisteEmpregadoAtivo | public static bool ExisteEmpregadoAtivo(int IdPessoaFisica, int valor) | Verifica se existe um empregado ativo para uma pessoa física, com lógica condicional baseada em valor. |
ExisteEstado | public static bool ExisteEstado(string estado) | Verifica se um estado existe na tabela de estados. |
ExisteCPFcomMatricula | public static bool ExisteCPFcomMatricula(long cpf, string matricula) | Verifica se existe um CPF com uma matrícula específica. |
ExisteCPF | public static bool ExisteCPF(long cpf) | Verifica se um CPF existe na tabela de pessoas físicas. |
ExisteMatricula | public static bool ExisteMatricula(string matricula) | Verifica se uma matrícula existe para um empregado ativo. |
ExisteEmpregadoAtivo | public static bool ExisteEmpregadoAtivo(int IdPessoaFisica) | Verifica se existe um empregado ativo para uma pessoa física. |
Clone | public object Clone() | Cria uma cópia superficial da instância atual de Empregado. |
RecuperarSomaEncargosFPAS | public decimal RecuperarSomaEncargosFPAS() | Recupera a soma dos encargos FPAS para o empregado. |
RecuperarFPAS | public static void RecuperarFPAS(Empregado objEmpregado, out FPASAliquota objFPASAliquota, SqlTransaction trans) | Recupera a alíquota FPAS para um empregado, dentro de uma transação. |
RecuperarFPAS | public static void RecuperarFPAS(Empregado objEmpregado, out FPASAliquota fpasEscolhido) | Recupera a alíquota FPAS para um empregado, gerenciando a transação. |
RecuperarTipoVinculo | public static int RecuperarTipoVinculo(int idEmpregado) | Recupera o ID do tipo de vínculo de um empregado. |
RecuperarFilialGestoraPeriodoCalculo | public static void RecuperarFilialGestoraPeriodoCalculo(int idEmpregado, out int idPeriodoCalculo, out int idFilialGestora, SqlTransaction trans) | Recupera o ID da filial gestora e do período de cálculo de um empregado. |
AtualizaNovaDataAdmissaoEmp | public void AtualizaNovaDataAdmissaoEmp(SqlTransaction trans) | Atualiza a data de admissão do empregado e datas relacionadas em outras tabelas (rescisão, salário, função, departamento, carga horária, log). |
ListarEmpAltSalFunc | public static Dictionary<int, string> ListarEmpAltSalFunc(string nome, string cpf, string matricula, int? idFilial, int? idContrato, int? idDep, int? idCentroResultado, int? idFuncao, int? idSindicato, decimal? de, decimal? ate, int count) | Lista empregados para alteração de salário/função, com diversos filtros. |
CarregarEmpAltSalFunc | public static DataTable CarregarEmpAltSalFunc(int? idFilial, int? idContrato, int? idDep, int? idCentroResultado, int? idFuncao, int? idSindicato, decimal? de, decimal? ate, int? idEmpregado) | Carrega um DataTable de empregados para alteração de salário/função, com diversos filtros. |
AlterarFuncaoSalarioEmpLote | public void AlterarFuncaoSalarioEmpLote(DataTable dt, DateTime dataAgendamento, int idfFuncaoExcluisvaNova, int idfMotivoAlteracaoFuncao, string tipoAlteracaoSalario, decimal novoValor, int idfMotivoAlteracaoSalario, int idfUsuario, ref LoteAlteracao objLoteAlteracao, ref DataSet ds, ref bool verificarSalarioMenor, int alteraSalario, int idfFilial, bool flgArredondaValor) | Altera a função e/ou salário de múltiplos empregados em lote, gerenciando transações e logs. |
AlterarFuncaoEmpregados | public void AlterarFuncaoEmpregados(DataTable dt, string dia, string mes, string ano, int idfFuncaoExcluisvaNova, int idfMotivoAlteracao, int idfUsuario, int idfFilial, bool flagArredondaValor, SqlTransaction trans, ref LoteAlteracao objLoteAlteracao, ref DataSet ds) | Altera a função de múltiplos empregados em lote, com validações e registro de erros. |
AlterarSalarioEmpregados | public void AlterarSalarioEmpregados(DataTable dt, string mes, string ano, int idfMotivoAlteracao, string alteracaoSalario, decimal novoValor, int idfUsuario, SqlTransaction trans, ref LoteAlteracao objLoteAlteracao, ref DataSet ds, ref bool verificarSalarioMenor) | Altera o salário de múltiplos empregados em lote, com validações e registro de erros. |
NovoSalarioEmpregado | private void NovoSalarioEmpregado(Salario objSalarioAtual, SqlTransaction trans, Empregado objEmpregado, PeriodoCalculo objPeriodo, decimal novoSalario, int idfMotivoAlteracao, int idfUsuario, out Salario obj) | Cria um novo registro de salário para um empregado, inativando o anterior. |
NovoSalarioEmpregado | private void NovoSalarioEmpregado(Salario objSalarioAtual, SqlTransaction trans, Empregado objEmpregado, DateTime dataInicioVigencia, decimal novoSalario, int idfMotivoAlteracao, int idfUsuario, out Salario obj) | Cria um novo registro de salário para um empregado, inativando o anterior, com data de início de vigência explícita. |
NovoSalarioEmpregadoAdmissao | private void NovoSalarioEmpregadoAdmissao(Salario objSalarioAtual, SqlTransaction trans, decimal novoSalario, int idfUsuario) | Atualiza o valor do salário de admissão de um empregado. |
LoteAlteracaoEmpregado | private void LoteAlteracaoEmpregado(Empregado objEmpregado, PeriodoCalculo objPeriodo, SqlTransaction trans, Salario objSalario, EmpregadoFuncaoExclusiva objFuncao, ref LoteAlteracao objLoteAlteracao) | Cria ou atualiza um registro de lote de alteração para um empregado (salário ou função). |
LoteAlteracaoEmpregado | private void LoteAlteracaoEmpregado(Empregado objEmpregado, DateTime dataInicio, SqlTransaction trans, Salario objSalario, EmpregadoFuncaoExclusiva objFuncao, ref LoteAlteracao objLoteAlteracao) | Cria ou atualiza um registro de lote de alteração para um empregado (salário ou função), com data de início. |
ListarEmpregadosAlteracaoSalarioFuncao | public static Dictionary<int, string> ListarEmpregadosAlteracaoSalarioFuncao(int pIdEmpresa, string nome, string cpf, string matricula, int? idFilial, int? idContrato, int? idDep, int? idCentroResultado, int? idFuncao, int? idSindicato, decimal? de, decimal? ate, int count) | Lista empregados para alteração de salário/função, com diversos filtros e retorno em dicionário. |
TabelaErrosAlteracaoSalarioFuncao | private void TabelaErrosAlteracaoSalarioFuncao(DataSet ds, string nomeTabela) | Cria a estrutura de um DataTable para registrar erros de alteração de salário/função. |
VerificarPessoaFisicaEstaEmpregago | public static string[] VerificarPessoaFisicaEstaEmpregago(int idPessoaFisica, int idEmpresaLogada) | Verifica se uma pessoa física está empregada e retorna dados do contrato. |
VerificarDataAdmissaoValida | private bool VerificarDataAdmissaoValida() | Verifica se a data de admissão está no período de cálculo atual ou no próximo. |
VerificarUtilizaMatriculaAlfanumerica | private bool VerificarUtilizaMatriculaAlfanumerica(SqlTransaction trans, Empresa empresa, Filial filial, Contrato contrato) | Verifica se a empresa/filial/contrato utiliza matrícula alfanumérica. |
VerificarGeracaoMatricula | private bool VerificarGeracaoMatricula(SqlTransaction trans, Empresa empresa, Filial filial, Contrato contrato) | Verifica se a geração de matrícula é automática (por transação). |
VerificarGeracaoMatricula | private bool VerificarGeracaoMatricula(Empresa empresa, Filial filial, Contrato contrato) | Verifica se a geração de matrícula é automática. |
VerificarGeracaoFichaRegistro | private bool VerificarGeracaoFichaRegistro(SqlTransaction trans, Empresa empresa, Filial filial, Contrato contrato) | Verifica se a geração de ficha de registro é automática (por transação). |
VerificarGeracaoFichaRegistro | private bool VerificarGeracaoFichaRegistro(Empresa empresa, Filial filial, Contrato contrato) | Verifica se a geração de ficha de registro é automática. |
GerarMatriculaAutomatica | private int GerarMatriculaAutomatica(int idContrato, SqlTransaction trans) | Gera a próxima matrícula automática para um contrato. |
GerarFichaRegistroAutomatica | private int GerarFichaRegistroAutomatica(int idContrato, SqlTransaction trans) | Gera a próxima ficha de registro automática para um contrato. |
ListarMatriculasOuFichasExistentes | public static List<int> ListarMatriculasOuFichasExistentes(int idfContrato, int? idfCentroResultado, bool porMatricula) | Lista matrículas ou fichas de registro existentes, considerando critério por empresa ou filial. |
AdicionarFilaDeCalculo | public void AdicionarFilaDeCalculo(SqlTransaction trans, int idfLote = 0) | Adiciona o empregado na fila de cálculo (geral e benefício). |
AdicionarFilaDeCalculo | public void AdicionarFilaDeCalculo(SqlTransaction trans, int? idUsuario) | Adiciona o empregado na fila de cálculo (geral e benefício), com ID de usuário opcional. |
VerificarPrimeiroEmprego | public static bool VerificarPrimeiroEmprego(int idPessoaFisica) | Verifica se é o primeiro emprego de uma pessoa física. |
AlterarSalarioEmpregados2 | public void AlterarSalarioEmpregados2(DataTable dt, DateTime data, int idfMotivoAlteracao, string tipoAlteracaoVlrSalario, decimal novoValor, int idfFilial, int idfUsuario, SqlTransaction trans, ref LoteAlteracao objLoteAlteracao, ref DataSet ds, ref bool verificarSalarioMenor, int alteraSalario, bool flagArredondaValor) | Altera o salário de múltiplos empregados em lote, com validações específicas para motivos 1 e 2, e salário pós-experiência. |
AlterarSalarioPosExperiencia | private bool AlterarSalarioPosExperiencia(DateTime data, int idfMotivoAlteracao, string tipoAlteracaoVlrSalario, decimal novoValor, int idfFilial, int idfUsuario, SqlTransaction trans, ref LoteAlteracao objLoteAlteracao, ref DataSet ds, ref bool verificarSalarioMenor, int alteraSalario, bool flagArredondaValor, DataRow row) | Lógica interna para alterar o salário pós-experiência de um empregado, com diversas validações. |
AlterarSalarioPeloMotivo1ou2 | private bool AlterarSalarioPeloMotivo1ou2(int idfMotivoAlteracao, string tipoAlteracaoVlrSalario, decimal novoValor, int idfUsuario, bool flagArredondaValor, SqlTransaction trans, ref DataSet ds, DataRow row) | Lógica interna para alterar o salário de admissão ou término de experiência (motivos 1 e 2). |
CalcularValorSalario | private decimal CalcularValorSalario(decimal? valorAtual, decimal valorAumento, Enumeradores.AlteracaoSalario tipoAlteracao, bool flagArredondaValor, Empregado empregado, SqlTransaction trans, out Decimal salarioComparativo) | Calcula o novo valor do salário com base no tipo de alteração (absoluto, aumento, percentual). |
VerificarPeriodoCalculoData | private bool VerificarPeriodoCalculoData(DateTime data, int idFilial, out int idfPeriodoCalculo, SqlTransaction trans) | Verifica se uma data está no período de cálculo atual ou futuro de uma filial. |
VerificarValorSalario | private bool VerificarValorSalario(List<Salario> salarios, decimal valor) | Verifica se um novo valor de salário é maior que os salários futuros agendados. |
RegistrarErro | private void RegistrarErro(ref DataSet ds, string tableName, string msg, DataRow row) | Registra uma mensagem de erro em um DataSet para relatórios de alteração de salário/função. |
VerificarConstraintEmpregado | public static bool VerificarConstraintEmpregado(int idfPessoaFisica, DateTime dataAdmissao, int idfContrato) | Verifica se já existe um empregado (ou admissão futura) com a mesma pessoa física, data de admissão e contrato. |
RecuperarPensionistas | public List<Pensionista> RecuperarPensionistas() | Retorna uma lista de pensionistas vinculados ao empregado. |
RecuperarPensionistas | public List<Pensionista> RecuperarPensionistas(PeriodoCalculo objPeriodoCalculo) | Retorna uma lista de pensionistas vinculados ao empregado, considerando um período de cálculo. |
ListarEmpregadosPorFiltroContrato | public static List<Empregado> ListarEmpregadosPorFiltroContrato(int pIdEmpresa, int? pIdFilial, int? pIdContrato, int? pIdDepartamento, int? pIdEmpregado) | Lista empregados por filtros de empresa, filial, contrato, departamento e empregado. |
ListarEmpregadosPorFiltroCR | public static List<Empregado> ListarEmpregadosPorFiltroCR(int pIdEmpresa, int? pIdFilial, int? pIdCentroResultado, int? pIdEmpregado, int idfUsuario) | Lista empregados por filtros de empresa, filial, centro de resultado e empregado, considerando acesso do usuário. |
ListarIDEmpregadosPorFiltroContratoFerias | public static List<int> ListarIDEmpregadosPorFiltroContratoFerias(int pIdEmpresa, int? pIdFilial, int? pIdContrato, int? pIdDepartamento, int? pIdEmpregado) | Lista os IDs de empregados para férias, com filtros de empresa, filial, contrato, departamento e empregado. |
ListarIDEmpregadosPorFiltroCR | public static List<int> ListarIDEmpregadosPorFiltroCR(int pIdEmpresa, int? pIdFilial, int? pIdCentroResultado, int? pIdEmpregado, int pIdUsuario) | Lista os IDs de empregados por filtros de empresa, filial, centro de resultado e empregado, considerando acesso do usuário. |
ListarEmpregadosFerias | public static DataTable ListarEmpregadosFerias(List<int> pIdEmpregados, String colunaOrdenada, String direcaoOrdenacao, int tamanhoPagina, int pagina, Boolean utilizaCR) | Lista empregados para férias em um DataTable, com paginação e ordenação, considerando estrutura gerencial. |
ListarEmpregados | public static DataTable ListarEmpregados(List<int> pIdEmpregados, String colunaOrdenada, String direcaoOrdenacao, int pagina, int tamanhoPagina, out int totalRegistros) | Lista empregados em um DataTable com paginação, ordenação e total de registros. |
ListarEmpregados | public static DataTable ListarEmpregados(List<int> pIdEmpregados, String colunaOrdenada, String direcaoOrdenacao, int tamanhoPagina, int pagina) | Lista empregados em um DataTable com paginação e ordenação. |
ListarIDEmpregadosPorFiltroCRFerias | public static List<int> ListarIDEmpregadosPorFiltroCRFerias(int pIdEmpresa, int? pIdFilial, int? pIdCentroResultado, int? pIdEmpregado) | Lista os IDs de empregados para férias, com filtros de empresa, filial, centro de resultado e empregado. |
ListarIDEmpregadosPorFiltroContrato | public static List<int> ListarIDEmpregadosPorFiltroContrato(int pIdEmpresa, int? pIdFilial, int? pIdContrato, int? pIdDepartamento, int? pIdEmpregado, int pIdUsuario, int? pIdSupervisor = null) | Lista os IDs de empregados por filtros de empresa, filial, contrato, departamento, empregado, usuário e supervisor. |
ListarIDEmpregadosDecimoTerceiroPorFiltroCR | public static List<int> ListarIDEmpregadosDecimoTerceiroPorFiltroCR(int pIdEmpresa, int? pIdFilial, int? pIdCentroResultado, int? pIdEmpregado, int idfUsuario) | Lista os IDs de empregados para 13º salário, com filtros de empresa, filial, centro de resultado e empregado. |
ListarIDEmpregadosDecimoTerceiroPorFiltroContrato | public static List<int> ListarIDEmpregadosDecimoTerceiroPorFiltroContrato(int pIdEmpresa, int? pIdFilial, int? pIdContratoMae, int? pIdContrato, int? pIdDepartamento, int? pIdEmpregado, int idfUsuario, int? pIdSupevisor = null) | Lista os IDs de empregados para 13º salário, com filtros de empresa, filial, contrato mãe/filho, departamento, empregado, usuário e supervisor. |
ExistemEmpregadomVinculadosEmpresa | public static bool ExistemEmpregadomVinculadosEmpresa(int pIdEmpresa) | Verifica se existem empregados ativos vinculados a uma empresa. |
ExisteMatriculaAlfanumericaPorEmpresa | public static bool ExisteMatriculaAlfanumericaPorEmpresa(int pIdEmpresa) | Verifica se a empresa possui matrículas alfanuméricas cadastradas. |
AlterarDataGeracaoCagedEmpregadosSeguroDesemprego | public static bool AlterarDataGeracaoCagedEmpregadosSeguroDesemprego(List<int> listEmpregadosSeguroDesempregoGerados, int pIdUsuario, bool pReabrir, out string pMensagemErro) | Altera a data de geração do CAGED para empregados com seguro-desemprego. |
CarregarEmpregadosAtivosPorContratoMaeFilho | public static bool CarregarEmpregadosAtivosPorContratoMaeFilho(int idfEmpresa, int idfDepartamento, int? idfContratoMae, int? idfContrato, out DataTable dtEmpregados) | Carrega empregados ativos por departamento e contrato (mãe/filho). |
CarregarParaAberturaConta | public static DataTable CarregarParaAberturaConta(Enumeradores.TipoProcessoArquivo? eTipoProcessoArquivo, bool flgCR, int idfBanco, int idfTipoConta, int idfEmpresa, int? idfFilial, int? idfContrato, int? idfDepartamento, int? idfCentroResultado, int? idfFuncao, int? idfTipoVinculo, int? idfEmpregado, int? idfPensionista, int? numLoteAdmissao, DateTime? dtaAdmissaoInicio, DateTime? dtaAdmissaoFim, bool flgUsaPensionista, bool flgInativo = false) | Carrega dados de empregados e pensionistas para processos de abertura de conta, com diversos filtros e lógica para CR/Contrato. |
ListarInformacoesAberturaConta | public static IDataReader ListarInformacoesAberturaConta(List<int> pLstIdEmpregado, List<int> pLstIdPensionista, bool flgUsaCR, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina) | Lista informações de empregados e pensionistas para abertura de conta, com paginação e ordenação. |
ProximoDiaUtilPorGradeEmpregados | public static DateTime ProximoDiaUtilPorGradeEmpregados(List<int> lstEmpregados, DateTime dta, int IdEmpresa) | Calcula o próximo dia útil para uma lista de empregados, considerando a grade horária e feriados. |
ProximoDiaUtilPorEmpregados | public static DateTime ProximoDiaUtilPorEmpregados(List<int> lstEmpregados, DateTime dta, int IdEmpresa) | Calcula o próximo dia útil para uma lista de empregados, considerando feriados. |
ProximoDiaUtilPorEmpregados | public static DateTime ProximoDiaUtilPorEmpregados(List<int> lstEmpregados, DateTime dta, int IdEmpresa, bool Incremento) | Calcula o próximo dia útil para uma lista de empregados, com opção de incremento e considerando feriados. |
VerificaMatriculaEmpregado | public static bool VerificaMatriculaEmpregado(int pIdEmpresa, string pMatricula) | Verifica se uma matrícula já existe para um empregado ativo em uma empresa. |
ListarInformacoesEmpregadosPorId | public static IDataReader ListarInformacoesEmpregadosPorId(string idfEmpregados) | Lista informações de empregados por uma string de IDs. |
ListarInformacoesEmpregadoParaRelatorioFichaFinanceira | public static DataTable ListarInformacoesEmpregadoParaRelatorioFichaFinanceira(DataTable dtEmpregados, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros) | Lista informações de empregados para relatório de ficha financeira, com paginação e total de registros, usando tabela temporária. |
CompleteAuditoriaFerias | public bool CompleteAuditoriaFerias() | Completa a data de admissão do empregado para fins de auditoria de férias. |
Detalhamento de Métodos Importantes
GetParameters()
- Lógica: Cria e retorna uma lista de objetos
SqlParameterpredefinidos para a tabelaTAB_Empregado. Cada parâmetro é inicializado com seu nome, tipo SQL e tamanho máximo. - Stored Procedures chamadas: Nenhuma diretamente. Prepara parâmetros para
SPINSERTeSPUPDATE. - Parâmetros SQL: Inclui parâmetros para todas as colunas da tabela
TAB_Empregado, como@Idf_Empregado,@Idf_Pessoa_Fisica,@Idf_Contrato,@Dta_Admissao,@Num_Matricula,@Idf_Tipo_Vinculo,@Prz_Duracao,@Prz_Prorrogacao,@Num_Ficha_Registro,@Flg_Inativo,@Dta_Cadastro,@Dta_Opcao_FGTS,@Idf_Usuario_Gerador,@Idf_Exposicao_Agentes_Nocivos,@Idf_Centro_Resultado,@Flg_Primeiro_Emprego,@Num_Lote,@Idf_Tipo_Mao_Obra,@Idf_Supervisor,@Des_Motivo_Estabilidade,@Dta_Fim_Estabilidade,@Des_Observacao,@Des_Observacao_Confidencial,@Idf_Safra,@Flg_Docente,@Nme_Supervisor,@Flg_FGTS,@Idf_Categoria_Trabalhador,@Flg_Seguro_Desemprego,@Dta_Geracao_Caged,@Idf_Pasta_WDocs,@Flg_Integracao_Ponto,@Cod_Generico,@Idf_Tipo_Contabilizacao_Especifica,@Idf_Tipo_Contrato_Experiencia,@Idf_Indicativo_Admissao,@Idf_Natureza_Atividade,@Idf_Motivo_Contratacao,@Idf_Tipo_Admissao,@Des_Justificativa_Prorrogacao,@Idf_Historico_Motivo_Justificador_Contrato,@Idf_Tipo_Contratacao,@Idf_Fato_Gerador_Contratacao,@Cod_Generico2.
SetParameters(List parms)
- Lógica: Recebe uma lista de
SqlParametere preenche seus valores com os dados da instância atual deEmpregado. - Atribui valores de propriedades da instância aos parâmetros.
- Trata valores
nullables(comoPrazoDuracao,DataOpcaoFGTS, etc.) definindo-os comoDBNull.Valuese não tiverem valor. - Para objetos aninhados (
PessoaFisica,Contrato,TipoVinculo, etc.), utiliza apenas oIddo objeto. - Se a instância não estiver persistida (
_persistedé falso), o parâmetro@Idf_Empregadoé configurado comoOutpute_dataCadastroé definido comoDateTime.Now. O_usuarioGeradoré instanciado com oCodigoUsuarioda sessão atual ou1se a sessão não estiver disponível. - Stored Procedures chamadas: Nenhuma diretamente. Preenche parâmetros para
SPINSERTeSPUPDATE.
Insert()
- Lógica: Insere os dados da instância atual no banco de dados.
- Chama
GetParameters()eSetParameters()para preparar os parâmetros. - Abre uma conexão SQL e inicia uma transação.
- Executa a query
SPINSERTusandoDataAccessLayer.ExecuteNonQueryCmd. - Recupera o
Idf_Empregadogerado pelo banco (usandoSCOPE_IDENTITY()) e atribui à propriedade_idEmpregado. - Define
_persistedcomotruee_modifiedcomofalse. - Comita a transação. Em caso de erro, a transação é revertida e a exceção é relançada.
- Stored Procedures chamadas:
SPINSERT:INSERT INTO TAB_Empregado (...) VALUES (...) ;SET @Idf_Empregado = SCOPE_IDENTITY();- Parâmetros: Todos os atributos da classe
Empregado.@Idf_Empregadoé um parâmetro de saída.
Insert(SqlTransaction trans)
- Lógica: Similar ao
Insert()sem transação, mas utiliza uma transação SQL já existente (trans). Não gerencia a conexão ou commit/rollback. - Stored Procedures chamadas:
SPINSERT(mesmos parâmetros queInsert()).
Update()
- Lógica: Atualiza os dados da instância atual no banco de dados se houver modificações (
_modifiedé true).
- Verifica
_modified. - Chama
GetParameters()eSetParameters()para preparar os parâmetros. - Executa a query
SPUPDATEusandoDataAccessLayer.ExecuteNonQuery. - Define
_modifiedcomofalse.
- Stored Procedures chamadas:
SPUPDATE:UPDATE TAB_Empregado SET Idf_Pessoa_Fisica = @Idf_Pessoa_Fisica, ... WHERE Idf_Empregado = @Idf_Empregado- Parâmetros: Todos os atributos da classe
Empregado.
Update(SqlTransaction trans)
- Lógica: Similar ao
Update()sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPUPDATE(mesmos parâmetros queUpdate()).
Save()
- Lógica: Método público para persistir a instância.
- Se a instância não estiver persistida (
_persistedé falso), chamaInsert(). - Se a instância já estiver persistida, chama
Update().
Save(SqlTransaction trans)
- Lógica: Método público para persistir a instância dentro de uma transação.
- Se a instância não estiver persistida (
_persistedé falso), chamaInsert(trans). - Se a instância já estiver persistida, chama
Update(trans).
Delete(int idEmpregado)
- Lógica: Exclui um registro da tabela
TAB_Empregadopelo ID.
- Cria uma lista de parâmetros e adiciona
@Idf_Empregadoe@Idf_Usuario_Gerador. - Atribui
idEmpregadoe oCodigoUsuarioda sessão aos parâmetros. - Executa a query
SPDELETEusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
SPDELETE:UPDATE TAB_Empregado SET Idf_Usuario_Alteracao = @Idf_Usuario_Gerador WHERE Idf_Empregado = @Idf_Empregado ; DELETE FROM TAB_Empregado WHERE Idf_Empregado = @Idf_Empregado@Idf_Empregado: ID do empregado a ser excluído.@Idf_Usuario_Gerador: ID do usuário que realizou a exclusão (registrado antes da exclusão física).
Delete(int idEmpregado, SqlTransaction trans)
- Lógica: Similar ao
Delete(int idEmpregado)sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPDELETE(mesmos parâmetros).
Delete(List idEmpregado)
- Lógica: Exclui múltiplos registros da tabela
TAB_Empregadocom base em uma lista de IDs.
- Constrói duas queries SQL dinâmicas: uma para atualizar o
Idf_Usuario_Geradore outra para oDELETE. - Para cada ID na lista, cria um parâmetro
@parmXe adiciona à lista. - Adiciona um parâmetro para o
Idf_Usuario_Geradorda sessão. - Concatena as queries de
UPDATEeDELETEe as executa usandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói queries SQL dinâmicas.
- Exemplo de query gerada:
update TAB_Empregado set Idf_Usuario_Gerador = @Idf_Usuario_Gerador where Idf_Empregado in (@parm0, @parm1, ...) ; delete from TAB_Empregado where Idf_Empregado in (@parm0, @parm1, ...)
LoadDataReader(int idEmpregado)
- Lógica: Retorna um
IDataReadercontendo os dados de um único registro deEmpregado.
- Cria uma lista de parâmetros e adiciona
@Idf_Empregado. - Atribui
idEmpregadoao parâmetro. - Executa a query
SPSELECTIDusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELECTID:SELECT * FROM TAB_Empregado WHERE Idf_Empregado = @Idf_Empregado@Idf_Empregado: ID do empregado a ser consultado.
LoadDataReader(int idEmpregado, SqlTransaction trans)
- Lógica: Similar ao
LoadDataReader(int idEmpregado)sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPSELECTID(mesmos parâmetros).
LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica: Realiza uma consulta paginada e ordenada na tabela
TAB_Empregado.
- Calcula os índices de início e fim para a paginação.
- Constrói duas queries SQL dinâmicas:
SPSELECTPAG: Seleciona os dados comROW_NUMBER()para paginação, ordenando pelacolunaOrdenacaoedirecaoOrdenacao.SPSELECTCOUNT: Conta o total de registros para a paginação.
- Executa
SPSELECTCOUNTpara obter ototalRegistros. - Executa
SPSELECTPAGpara obter oIDataReadercom os dados da página atual.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói queries SQL dinâmicas.
- Exemplo de
SPSELECTPAG:SELECT ROW_NUMBER() OVER (ORDER BY [colunaOrdenacao] [direcaoOrdenacao]) AS RowID, Emp.Idf_Empregado, ... FROM TAB_Empregado Emp - Exemplo de
SPSELECTCOUNT:SELECT COUNT(*) FROM (SELECT ROW_NUMBER() OVER (ORDER BY [colunaOrdenacao] [direcaoOrdenacao]) AS RowID, Emp.Idf_Empregado, ... FROM TAB_Empregado Emp) AS temp
LoadObject(int idEmpregado)
- Lógica: Carrega uma instância completa de
Empregadoa partir do banco de dados.
- Chama
LoadDataReader(idEmpregado)para obter os dados. - Cria uma nova instância de
Empregado. - Chama
SetInstance()para preencher a nova instância com os dados doIDataReader. - Se
SetInstanceretornartrue(registro encontrado), retorna a instância preenchida. - Se nenhum registro for encontrado, lança uma
RecordNotFoundException.
- Stored Procedures chamadas:
SPSELECTID(viaLoadDataReader).
LoadObject(int idEmpregado, SqlTransaction trans)
- Lógica: Similar ao
LoadObject(int idEmpregado)sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPSELECTID(viaLoadDataReader).
SetInstance(IDataReader dr, Empregado objEmpregado, bool bDispose = true)
- Lógica: Método auxiliar para mapear os dados de um
IDataReaderpara as propriedades de um objetoEmpregado.
- Tenta ler a primeira linha do
IDataReader. - Se houver uma linha:
- Atribui os valores das colunas do
IDataReaderàs propriedades correspondentes doobjEmpregado. - Instancia objetos aninhados (
PessoaFisica,Contrato,TipoVinculo,Usuario,ExposicaoAgentesNocivos,CentroResultado,Lote,TipoMaoObra,Empregado(para supervisor),Safra,CategoriaTrabalhador,TipoContabilizacaoEspecifica,TipoContratoExperiencia) com seus respectivos IDs, tratandoDBNull.Value. - Define
_persistedcomotruee_modifiedcomofalse. - Retorna
true.
- Se não houver linhas, retorna
false. - O
IDataReaderé descartado nofinallysebDisposefortrue.
Listar()
- Lógica: Retorna uma lista de todas as instâncias de
Empregadodo banco de dados.
- Cria uma lista vazia de
Empregado. - Executa a query
SPSELECT(seleciona todos os registros) usandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, criando uma nova instância deEmpregadopara cada linha e preenchendo-a comSetInstance(dr, obj, false). Adiciona a instância à lista.
- Stored Procedures chamadas:
SPSELECT:SELECT * FROM TAB_Empregado
CompleteObject()
- Lógica: Preenche os atributos da instância atual de
Empregadoa partir do banco de dados, usando o_idEmpregadoda própria instância.
- Verifica se o objeto já foi completado (
completedflag). - Chama
LoadDataReader(this._idEmpregado)para obter os dados. - Chama
SetInstance()para preencher a instância atual com os dados. - Define a flag
completedcomotruese a operação for bem-sucedida.
- Stored Procedures chamadas:
SPSELECTID(viaLoadDataReader).
CompleteObject(SqlTransaction trans)
- Lógica: Similar ao
CompleteObject()sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPSELECTID(viaLoadDataReader).
CarregarAutoComplete(int pIdEmpresa, int pIdUsuario, bool pFuncionarioInativo, decimal pCpf, string pNumeroMatricula, string pNome, out Empregado pObjEmpregado)
- Lógica: Tenta carregar um único objeto
Empregadocom base em critérios de pesquisa de autocomplete.
- Cria uma lista de
SqlParameterpara os filtros:@Idf_Empresa,@Idf_Usuario,@Flg_Inativo,@CPF,@Num_Matricula,@Nme_Pessoa. - Preenche os parâmetros com os valores fornecidos, tratando
nulloustring.EmptycomDBNull.Value. - Executa a query
SPCARREGARAUTOCOMPLETEusandoDataAccessLayer.ExecuteReader. - Tenta preencher um novo objeto
Empregado(pObjEmpregado) comSetInstance(). - Retorna
truese o objeto foi carregado,falsecaso contrário, epObjEmpregadoseránullse não encontrado.
- Stored Procedures chamadas:
SPCARREGARAUTOCOMPLETE: SQL de SELECT que busca dados deTAB_Empregado,TAB_Contrato,TAB_Filial,TAB_Pessoa_Fisicacom filtros de empresa, usuário (usandoTAB_SF_Usuario_Acesso), inatividade, CPF, matrícula e nome.
CarregarPorMatriculaCpf(string matricula, string cpf, int idFilial, out Empregado objEmpregado)
- Lógica: Carrega um objeto
Empregadousando matrícula ou CPF e o ID da filial.
- Chama
ListarPorMatriculaCpf(matricula, cpf, idFilial.ToString())para obter umIDataReader. - Tenta preencher um novo objeto
Empregado(objEmpregado) comSetInstance(). - Retorna
truese o objeto foi carregado,falsecaso contrário.
- Stored Procedures chamadas:
SPSELECTPARCIAL(viaListarPorMatriculaCpf).
CarregarEmpregadosAtivosPorPeriodo(DateTime? de, DateTime? ate, int Idf_Empresa, string idContrato, string idDepartamento, int? idCentroResultado, int IdUsuario, int TipoContrato, int IdFilial)
- Lógica: Carrega um
DataTablede empregados ativos em um período específico, com diversos filtros.
- Cria uma lista de
SqlParameterpara os filtros de data, empresa, departamento, usuário, tipo de contrato, contrato e filial. - Preenche os parâmetros, tratando
nullablese convertendo strings paraintquando necessário. - Se
idCentroResultadotiver valor, adiciona o parâmetro@Idf_Centro_Resultadoe executaSPSELECTATIVOSPORPERIODOCENTRORESULTADO. - Caso contrário, executa
SPSELECTATIVOSPORPERIODO. - Retorna o
DataTableresultante.
- Stored Procedures chamadas:
SPSELECTATIVOSPORPERIODO: SQL de SELECT que uneTAB_Empregado,TAB_Pessoa_Fisica,TAB_Empregado_Contrato,TAB_Contrato,plataforma.TAB_Tipo_Contrato,TAB_Filial,TAB_Empresa,plataforma.TAB_Sexo,TAB_Cliente,TAB_Rescisao,TAB_Empregado_Departamento,TAB_Departamento,TAB_Empregado_Funcao_Exclusiva,TAB_Funcao_Exclusiva,plataforma.TAB_Funcao_Especifica,TAB_Salario,TAB_Empregado_Carga_Horaria,TAB_Empregado_Conta,TAB_Conta_Pessoa,TAB_Agencia_Bancaria. Filtra por período de admissão/rescisão, empresa, filial, contrato, tipo de contrato, departamento e acesso do usuário (TAB_SF_Usuario_Acesso).SPSELECTATIVOSPORPERIODOCENTRORESULTADO: Similar ao anterior, mas com foco emCentroResultadoe sua filial.TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa): Função de tabela para controle de acesso.
CarregarEmpregadosAdmitidosDemitidosPorPeriodo(DateTime? de, DateTime? ate, int Idf_Empresa, int? idFilial, string idContrato, string idDimensao, int? idCentroResultado, int IdUsuario, int TipoContrato)
- Lógica: Carrega um
DataTablede empregados admitidos ou demitidos em um período, com diversos filtros.
- Cria uma lista de
SqlParameterpara os filtros. - Preenche os parâmetros, tratando
nullablese convertendo strings paraint. - Verifica o
TipoEstruturaGerencialda empresa logada (usandoEmpresa.LoadObject). - Se a empresa utiliza
CentroResultado, executaSPSELECTADMITIDOSDEMITIDOSPORPERIODOCENTRORESULTADO. - Caso contrário, executa
SPSELECTADMITIDOSDEMITIDOSPORPERIODO. - Retorna o
DataTableresultante.
- Stored Procedures chamadas:
SPSELECTADMITIDOSDEMITIDOSPORPERIODO: SQL de SELECT que uneTAB_Empregado,TAB_Rescisao,TAB_Pessoa_Fisica,TAB_Empregado_Departamento,TAB_Departamento,TAB_Empregado_Funcao_Exclusiva,TAB_Funcao_Exclusiva,plataforma.TAB_Funcao_Especifica,TAB_Contrato,TAB_Filial,TAB_Empresa,plataforma.TAB_Tipo_Contrato,TAB_Cliente,plataforma.TAB_Motivo_Rescisao,TAB_Salario. Filtra por período de admissão/rescisão, empresa, tipo de contrato, filial, contrato, departamento e acesso do usuário (TAB_SF_Usuario_Acesso).SPSELECTADMITIDOSDEMITIDOSPORPERIODOCENTRORESULTADO: Similar ao anterior, mas com foco emCentroResultado.Empresa.LoadObject(Idf_Empresa): Carrega o objeto Empresa para verificar o tipo de estrutura gerencial.TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa): Função de tabela para controle de acesso.
NumeroDiasFaltas(out decimal horasFaltasOut, PeriodoCalculo objPeriodoCalculo, Empregado objEmpregado, SqlTransaction trans, Enumeradores.VerbaSistema enumVSFaltaAtraso)
- Lógica: Calcula o número de dias de faltas de um empregado em um período, convertendo horas de faltas em dias.
- Inicializa
numDiasFaltasehorasFaltasOut. - Constrói uma query para somar as
QTD_LANCAMENTOde verbas de falta/atraso (enumVSFaltaAtraso) para o empregado e período de cálculo. - Cria parâmetros para
@Idf_Verba_Sistema,@Idf_Empregado,@Idf_Periodo_Calculo. - Executa a query usando
DataAccessLayer.ExecuteScalardentro da transação para obterhorasFalta. - Recupera a carga horária ativa do empregado (
EmpregadoCargaHoraria.RecuperarAtiva). - Calcula a
QuantidadeCargaHorariaDiaria(carga horária mensal / 5 dias / 6 horas por dia, assumindo uma semana de 5 dias úteis e 6 horas de trabalho por dia para o cálculo da carga horária diária). - Se
QuantidadeCargaHorariaDiariaehorasFaltaforem maiores que zero, entra em um loop:
- Subtrai
QuantidadeCargaHorariaDiariadehorasFalta. - Incrementa
numDiasFaltas. - Continua até que
horasFaltaseja menor queQuantidadeCargaHorariaDiaria.
- Retorna
numDiasFaltas.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
- Query dinâmica:
SELECT ISNULL(SUM(QTD_LANCAMENTO),0) AS HORAS_FALTA FROM tab_lancamento L JOIN TAB_Verba ON L.Idf_Verba = TAB_Verba.Idf_Verba JOIN FLH_Verba_Sistema ON TAB_Verba.Idf_Verba = FLH_Verba_Sistema.Idf_Verba JOIN TAB_Periodo_Calculo PC ON L.Dta_Periodo_Inicial <= PC.Dta_Fim and (L.Dta_Periodo_Final IS NULL OR L.Dta_Periodo_Final >= PC.Dta_Inicio) OR PC.Dta_Fim between L.Dta_Periodo_Inicial and L.Dta_Periodo_Final WHERE L.Idf_Empregado = @Idf_Empregado AND Idf_Verba_Sistema = @Idf_Verba_Sistema AND PC.Idf_Periodo_Calculo = @Idf_Periodo_Calculo @Idf_Verba_Sistema: ID da verba de sistema (falta/atraso).@Idf_Empregado: ID do empregado.@Idf_Periodo_Calculo: ID do período de cálculo.EmpregadoCargaHoraria.RecuperarAtiva(objEmpregado.IdEmpregado, trans): Recupera a carga horária ativa do empregado.
NumeroDiasFaltas(out decimal horasFaltasOut, PeriodoCalculo objPeriodoCalculo, Empregado objEmpregado, Enumeradores.VerbaSistema enumVSFaltaAtraso)
- Lógica: Sobrecarga de
NumeroDiasFaltasque gerencia a transação.
- Abre uma conexão SQL e inicia uma transação.
- Chama a sobrecarga
NumeroDiasFaltas(out horasFaltasOut, objPeriodoCalculo, objEmpregado, trans, enumVSFaltaAtraso)para realizar o cálculo. - Comita a transação se bem-sucedido, reverte em caso de erro.
- Stored Procedures chamadas: Nenhuma diretamente. Chama a outra sobrecarga de
NumeroDiasFaltas.
CarregarPorMatriculaCpfUsuarioAtivoInativo(string matricula, string cpf, int idfUsuario, int idfEmpresa, out Empregado objEmpregado)
- Lógica: Carrega um objeto
Empregadopor matrícula ou CPF, considerando o acesso do usuário e a empresa.
- Chama
ListarPorMatriculaCpfUsuarioAtivoInativo(matricula, cpf, idfUsuario, idfEmpresa)para obter umIDataReader. - Tenta preencher um novo objeto
Empregado(objEmpregado) comSetInstance(). - Retorna
truese o objeto foi carregado,falsecaso contrário.
- Stored Procedures chamadas:
SPSELECTMATRICULACPFATIVOINATIVO(viaListarPorMatriculaCpfUsuarioAtivoInativo).
CarregarPorMatriculaCpfUsuario(string matricula, string cpf, int idfUsuario, int idfEmpresa, out Empregado objEmpregado, bool flgInativo)
- Lógica: Carrega um objeto
Empregadopor matrícula ou CPF, com filtro de inatividade e acesso do usuário.
- Chama
ListarPorMatriculaCpfUsuario(matricula, cpf, idfUsuario, idfEmpresa, flgInativo)para obter umIDataReader. - Tenta preencher um novo objeto
Empregado(objEmpregado) comSetInstance(). - Retorna
truese o objeto foi carregado,falsecaso contrário.
- Stored Procedures chamadas:
SPSELECTMATRICULACPF_NEW(viaListarPorMatriculaCpfUsuario).
CarregarPorMatriculaCpfUsuario(string matricula, string cpf, int idfUsuario, int idfEmpresa, out Empregado objEmpregado, bool? flgInativo)
- Lógica: Sobrecarga que permite um
flgInativonulo.
- Chama
ListarPorMatriculaCpfUsuario(matricula, cpf, idfUsuario, idfEmpresa, flgInativo)para obter umIDataReader. - Tenta preencher um novo objeto
Empregado(objEmpregado) comSetInstance(). - Fecha o
IDataReaderexplicitamente. - Retorna
truese o objeto foi carregado,falsecaso contrário.
- Stored Procedures chamadas:
SPSELECTMATRICULACPF_NEW(viaListarPorMatriculaCpfUsuario).
CarregarEmpregadoCentroResultado(int pIdEmpresa, int pIdUsuario, Int64 pCpf, string pNum_Matricula, out Empregado objEmpregado)
- Lógica: Carrega um objeto
Empregadocom base em empresa, usuário, CPF e matrícula, filtrando por Centro de Resultado.
- Constrói uma query SQL que une
TAB_Empregado,TAB_Centro_ResultadoeTAB_Pessoa_Fisica. - Cria e preenche parâmetros para
@Idf_Empresa,@Idf_Usuario,@Cpf,@Num_Matricula. - Executa a query usando
DataAccessLayer.ExecuteReader. - Tenta preencher um novo objeto
Empregado(objEmpregado) comSetInstance(). - Retorna
truese o objeto foi carregado,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
- Query dinâmica:
SELECT Emp.* FROM TAB_Empregado Emp INNER JOIN TAB_Centro_Resultado CR ON CR.Idf_Centro_Resultado = Emp.Idf_Centro_Resultado INNER JOIN TAB_Pessoa_Fisica PF ON Emp.Idf_Pessoa_Fisica = PF.Idf_Pessoa_Fisica WHERE CR.Idf_Empresa = @Idf_Empresa AND PF.Num_Cpf = @Cpf AND Emp.Num_Matricula LIKE '%' + @Num_Matricula + '%'
CarregarAdmitidosPorPeriodo(int idfEmpresa, int? idfFilial, DateTime dtaInicio, DateTime? dtaFim)
- Lógica: Conta o número de empregados admitidos em um período específico para uma empresa e, opcionalmente, uma filial.
- Constrói uma query SQL para contar empregados da
TAB_Empregadoque se encaixam nos critérios. - Cria e preenche parâmetros para
@Idf_Empresa,@Idf_Filial,@Dta_Inicio,@Dta_Fim. - Executa a query usando
DataAccessLayer.ExecuteScalarpara obter a contagem.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
- Query dinâmica (
SPSELEMPREGADOSADMITIDOS):SELECT COUNT(*) FROM TAB_Empregado E (NOLOCK) INNER JOIN TAB_Contrato C (NOLOCK) ON E.Idf_Contrato = C.Idf_Contrato LEFT JOIN TAB_Centro_Resultado CR (NOLOCK) ON E.Idf_Centro_Resultado = CR.Idf_Centro_Resultado WHERE 1 = 1 AND C.Idf_Empresa = @Idf_Empresa AND (@Idf_Filial IS NULL OR ISNULL(CR.Idf_Filial, C.Idf_Filial_Gestora) = @Idf_Filial) AND E.Dta_Admissao >= @Dta_Inicio AND (@Dta_Fim IS NULL OR E.Dta_Admissao <= @Dta_Fim)
ListarAutoCompleteEmpregado(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, bool pFuncionarioInativo, decimal? pCpfPis, string pNumeroMatricula, string pNome)
- Lógica: Retorna uma lista de strings formatadas para um controle de autocomplete de empregados.
- Cria uma lista de
SqlParameterpara os filtros de número de registros, empresa, usuário, inatividade, CPF/PIS, matrícula e nome. - Preenche os parâmetros, tratando
nullablescomDBNull.Value. - Executa a query
SplistarautocompleteusandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, formatando cada linha como “Matrícula - Nome - CPF” e adicionando à lista de strings.
- Stored Procedures chamadas:
Splistarautocomplete: SQL de SELECT que buscaNum_Matricula,Nme_Pessoa,Num_CPF(formatado) eNum_PISdeTAB_Empregado,TAB_Contrato,TAB_Filial,TAB_Pessoa_Fisica. Filtra por empresa, acesso do usuário (TAB_SF_Usuario_Acesso), inatividade, CPF/PIS, matrícula e nome.
ListarAutoCompleteEmpregado(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, bool pFuncionarioInativo, decimal? pCpfPis, string pNumeroMatricula, string pNome, int idFilial)
- Lógica: Similar à sobrecarga anterior, mas inclui um filtro adicional por
idFilial.
- Cria e preenche os mesmos parâmetros da sobrecarga anterior, adicionando
@Idf_Filial. - Executa a query
Splistarautocomplete2usandoDataAccessLayer.ExecuteReader. - Formata os resultados e os adiciona à lista de strings.
- Stored Procedures chamadas:
Splistarautocomplete2: Similar aSplistarautocomplete, mas com filtro adicional paraIdf_Filial.
ListarEmpregadosRescisao(string prefixText, int pNumeroRegistros, Dictionary<string, string> valores)
- Lógica: Lista empregados que possuem rescisão para um controle de autocomplete, com filtros dinâmicos.
- Inicializa a query com
SPSELECTEMPREGADOSRESCISAO. - Processa o dicionário
valorespara adicionar parâmetros e cláusulasWHEREdinâmicas (paraIdf_Usuario,Idf_Empresa, etc.).
- Para
Idf_Usuario, adiciona a lógica deTAB_SF_Usuario_Acesso.
- Processa
prefixText: se for um CPF de 11 dígitos, filtra por CPF/PIS; caso contrário, filtra por matrícula ou nome. - Adiciona o parâmetro
@Countpara limitar o número de registros. - Adiciona
ORDER BYpara matrícula. - Executa a query dinâmica e formata os resultados como “Matrícula - Nome - CPF”.
- Stored Procedures chamadas:
SPSELECTEMPREGADOSRESCISAO: SQL de SELECT que uneTAB_Empregado,TAB_Contrato,TAB_Pessoa_FisicaeTAB_Rescisao.TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL): Função de tabela para controle de acesso.
ListarAutoComplete(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, bool pFuncionarioInativo, decimal? pCpfPis, string pNumeroMatricula, string pNome)
- Lógica: Retorna uma lista de strings formatadas para autocomplete de empregados, incluindo o ID da empresa no resultado.
- Cria e preenche os mesmos parâmetros de
ListarAutoCompleteEmpregado. - Executa a query
SplistarautocompleteusandoDataAccessLayer.ExecuteReader. - Formata os resultados como “Matrícula - Nome (CPF) - ID_Empresa”.
- Stored Procedures chamadas:
Splistarautocomplete.
ListarAutoComplete(string prefixText, int pNumeroRegistros, Dictionary<string, string> valores)
- Lógica: Retorna um dicionário (ID do empregado, string formatada) para autocomplete de empregados, com filtros dinâmicos e tratamento para o tipo de estrutura gerencial da empresa.
- Inicializa a query com
SPSELECTAUTOCOMPLETEATIVOGENERICO. - Processa o dicionário
valorespara adicionar parâmetros e cláusulasWHEREdinâmicas.
- Para
Idf_Usuario, verifica se a empresa usa Centro de Resultado (Empresa.UtilizaCR) e ajusta a cláusulaINparaIdf_Centro_ResultadoouIdf_ContratousandoTAB_SF_Usuario_Acesso. - Adiciona filtros para
Flg_Inativo,Idf_Empresa,Idf_Centro_Resultado,Idf_Filial,Idf_Contrato,Idf_Departamento,Idf_Empregado.
- Processa
prefixText(CPF/PIS, Matrícula ou Nome) e adiciona a cláusulaANDcorrespondente. - Adiciona o parâmetro
@Count. - Adiciona
ORDER BYpara matrícula. - Executa a query dinâmica e popula um
Dictionary<string, string>com o ID do empregado (concatenado comflg_adm_futurase aplicável) como chave e a string formatada como valor.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETEATIVOGENERICO: SQL de SELECT que buscaIdf_Empregado,Num_Matricula,Num_CPF(formatado),Nme_PessoaeRaz_SocialdeTAB_Empregado,TAB_Contrato,TAB_Filial,TAB_Empresa,TAB_Pessoa_Fisica,TAB_Empregado_Departamento,TAB_Centro_Resultado.Empresa.LoadObject(idEmpresa): Carrega o objeto Empresa para verificar o tipo de estrutura gerencial.TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL): Função de tabela para controle de acesso.
ListarAutoCompleteTeste(int pNumeroRegistros, string pNome)
- Lógica: Lista empregados para autocomplete de teste, filtrando apenas por nome.
- Cria parâmetros para
@Num_Registroe@Nme_Pessoa. - Preenche os parâmetros.
- Executa a query
Splistarautocompletetestee formata os resultados.
- Stored Procedures chamadas:
Splistarautocompleteteste: SQL de SELECT que buscaNum_Matricula,Nme_Pessoa,Num_CPF(formatado),Num_PISeIdf_EmpresadeTAB_Empregado,TAB_Contrato,TAB_Filial,TAB_Pessoa_Fisica. Filtra por nome.
ListarAutoCompleteTipoVinculo(string prefixText, int pNumeroRegistros, Dictionary<string, string> valores)
- Lógica: Lista empregados para autocomplete, com filtros dinâmicos que incluem o tipo de vínculo.
- Inicializa a query com
SPSELECTAUTOCOMPLETEATIVOTIPOVINCULO. - Processa o dicionário
valorespara adicionar parâmetros e cláusulasWHEREdinâmicas, incluindoIdf_Tipo_Vinculo.
- Para
Idf_Usuario, adiciona a lógica deTAB_SF_Usuario_Acesso.
- Processa
prefixText(CPF/PIS, Matrícula ou Nome) e adiciona a cláusulaANDcorrespondente. - Adiciona o parâmetro
@Count. - Adiciona
ORDER BYpara matrícula. - Executa a query dinâmica e formata os resultados.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETEATIVOTIPOVINCULO: SQL de SELECT que buscaNum_Matricula,Num_CPF(formatado) eNme_PessoadeTAB_Empregado,TAB_Contrato,TAB_Filial,TAB_Pessoa_Fisica,TAB_Empregado_Departamento,TAB_Centro_Resultado. Filtra por tipo de vínculo, empresa, filial, contrato, departamento, centro de resultado e acesso do usuário.TAB_SF_Usuario_Acesso(@Idf_Usuario, NULL): Função de tabela para controle de acesso.
ListarBeneficioEmpregado(int? idContrato, int? idEmpregado, int? idTipoBeneficio, int? idFornecedor, int? idBeneficio, int? idCentroResultado, int? idFilial)
- Lógica: Lista informações de benefícios de empregados com base em diversos filtros.
- Cria uma lista de
SqlParameterpara todos os filtros. - Preenche os parâmetros, tratando
nullablescomDBNull.Value. - Executa a query
SPSELBENEFICIOSEMPREGADOusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELBENEFICIOSEMPREGADO: SQL de SELECT complexa que une diversas tabelas (TAB_Empregado,TAB_Beneficio_Regra,TAB_Contrato,TAB_Pessoa_Fisica,TAB_Beneficio,plataforma.TAB_Tipo_Beneficio,TAB_Fornecedor,TAB_Centro_Resultado,TAB_Beneficio_Regra_Transporte,TAB_Beneficio_Transporte,TAB_Beneficio_Valor,BNC_Configuracao_Produto,BNC_Configuracao_Produto_Alimentacao,BNC_Produto,BNC_Empregado_Beneficio,BNC_Empregado_Beneficio_Linha,BNC_Produto_Transporte_Linha) para listar benefícios. Utiliza as funçõesFLH_SF_BuscarRegraBeneficioeFLH_SF_BuscarRegraBeneficioTransportepara determinar as regras de benefício aplicáveis.
ListarEmpregadoContrato(int idContrato, int idUsuario, int idEmpresa, decimal ValorPadrao, int idBeneficio)
- Lógica: Lista empregados de um contrato específico, incluindo informações de benefício de transporte.
- Cria e preenche parâmetros para
@Idf_Contrato,@Idf_Usuario,@Idf_Empresa,@Valor_Padrao,@Idf_Beneficio. - Executa a query
SPSELEMPREGADOPORCONTRATOusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELEMPREGADOPORCONTRATO: SQL de SELECT que uneTAB_Empregado,TAB_Pessoa_Fisica,TAB_Beneficio_Regra_Transporte,plataforma.TAB_Frequencia_Beneficio,TAB_Beneficio_Transporte. Retorna informações do empregado e valores de benefício de transporte, com lógica para diferentes origens de regra (empregado, contrato filho, contrato mãe).
ListarPorLista(string nomeColuna, string direcaoOrdenacao, Dictionary<int, decimal?> dicEmpregados, int paginaCorrente, int tamanhoPagina, int idUsuario, int idEmpresa, out int totalRegistros)
- Lógica: Lista empregados de uma lista de IDs fornecida, com paginação e ordenação, e adiciona um valor rescisório.
- Constrói uma cláusula
WHEREdinâmica para filtrar porIdf_Empregado IN (...)com base nas chaves dodicEmpregados. - Calcula os índices de início e fim para a paginação.
- Formata a query
SPSELECTGRID_NEWcom a coluna e direção de ordenação. - Concatena a cláusula
WHEREdinâmica à query. - Cria e preenche parâmetros para
@Idf_Usuarioe@Idf_Empresa. - Constrói uma query de contagem (
query_count) e uma query paginada. - Executa
query_countpara obtertotalRegistros. - Executa a query paginada para obter um
DataTable. - Itera sobre as linhas do
DataTablee, para cada empregado, atribui o valor correspondente dedicEmpregadosà colunavlr_fins_rescisorios.
- Stored Procedures chamadas:
SPSELECTGRID_NEW: SQL de SELECT que uneTAB_Pessoa_Fisica,TAB_Empregado,TAB_Contrato,TAB_Filialpara obter informações de empregados. Inclui umaUNIONpara pessoas físicas sem empregado.TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa): Função de tabela para controle de acesso.
Listar(string nomeColuna, string direcaoOrdenacao, string cpfPis, string nome, string ctps, int paginaCorrente, int tamanhoPagina, int idUsuario, int idEmpresa, out int totalRegistros)
- Lógica: Lista empregados com paginação e ordenação, aplicando filtros por CPF/PIS, nome e CTPS.
- Constrói uma cláusula
WHEREdinâmica (sbWhereExpression) com base nos filtros fornecidos.
- Se
cpfPisfor um CPF/PIS válido, adiciona(temp.Num_CPF='...' OR temp.Num_PIS='...'). - Se
nomefor fornecido, adiciona(temp.Nme_Pessoa LIKE '%...%' OR temp.Ape_Pessoa LIKE '%...'). - Se
ctpsfor fornecido, adiciona(temp.Num_CTPS='...'). - Remove o último “OR” se houver.
- Calcula os índices de início e fim para a paginação.
- Formata a query
SPSELECTGRID_NEWcom a coluna e direção de ordenação. - Concatena a cláusula
WHEREdinâmica à query. - Cria e preenche parâmetros para
@Idf_Usuarioe@Idf_Empresa. - Constrói uma query de contagem (
query_count) e uma query paginada. - Executa
query_countpara obtertotalRegistros. - Executa a query paginada para retornar o
IDataReader.
- Stored Procedures chamadas:
SPSELECTGRID_NEW.
ListarEmpregadoPorContratoParcial(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string valor)
- Lógica: Retorna um
IDataReadercom um número limitado de empregados, filtrados por contrato, tipo de contrato, contrato mãe/filho e um valor de busca (nome, CPF, matrícula).
- Cria e preenche parâmetros para
@Count,@Idf_Usuario,@Idf_Empresa,@Idf_Tipo_Contrato,@Cod_Contrato_Mae,@Cod_Contrato,@Valor. - Executa a query
SPEMPREGADOPORCONTRATOusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPEMPREGADOPORCONTRATO: SQL de SELECT que buscaEmp.*,Pfi.*,Con.Idf_Tipo_Contrato,Con.Idf_Contrato,Con.Cod_Contrato,Con.Ape_Contrato,ConMae.Idf_Contrato,ConMae.Cod_Contrato,ConMae.Ape_ContratodeTAB_EMPREGADO,TAB_PESSOA_FISICA,TAB_Contrato,TAB_Filial,plataforma.TAB_Tipo_Contrato. Filtra por empresa, acesso do usuário (TAB_SF_Usuario_Acesso), inatividade, tipo de contrato, contrato mãe/filho e valor de busca (apelido, nome, CPF, matrícula).
ListarEmpregadoPorContratoParcialAtivoInativo(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string valor)
- Lógica: Similar à sobrecarga anterior, mas utiliza a query
SPEMPREGADOPORCONTRATOATIVOINATIVOque não filtra porFlg_Inativo = 0na cláusula principal, permitindo buscar ativos e inativos. - Stored Procedures chamadas:
SPEMPREGADOPORCONTRATOATIVOINATIVO: Similar aSPEMPREGADOPORCONTRATO, mas sem o filtroEMP.Flg_Inativo = 0na cláusula principal.
ListarEmpregadoPorContrato(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string valor)
- Lógica: Retorna uma lista de strings formatadas para autocomplete de empregados por contrato.
- Chama
ListarEmpregadoPorContratoParcialpara obter umIDataReader. - Itera sobre o
IDataReader, formatando cada linha como “Matrícula - Nome - CPF” e adicionando à lista de strings.
- Stored Procedures chamadas:
SPEMPREGADOPORCONTRATO(viaListarEmpregadoPorContratoParcial).
ListarEmpregadoPorContratoAtivoInativo(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string valor)
- Lógica: Similar à sobrecarga anterior, mas utiliza
ListarEmpregadoPorContratoParcialAtivoInativopara incluir empregados inativos. - Stored Procedures chamadas:
SPEMPREGADOPORCONTRATOATIVOINATIVO(viaListarEmpregadoPorContratoParcialAtivoInativo).
ListarParcial(string matriculaNomeCpf, int idFilial, int? tipoFolha)
- Lógica: Retorna um
IDataReadercom dados parciais de empregados, filtrados por matrícula/nome/CPF, filial e, opcionalmente, tipo de folha.
- Cria e preenche parâmetros para
@Idf_Filiale@WhereExpression. - Constrói a
WhereExpressiondinamicamente:
- Se
matriculaNomeCpffor um CPF de 11 dígitos, filtra porNum_CpfouNum_PIS. - Caso contrário, filtra por
Num_MatriculaouNme_Pessoa. - Se
tipoFolhafor “Férias” ou “Rescisão”, adiciona uma subquery para filtrar empregados com esses tipos de folha.
- Executa a query
SPSELECTPARCIALusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELECTPARCIAL: SQL de SELECT que buscaIdf_Empregado,Idf_Pessoa_Fisica,Idf_Contrato,Idf_Cidade,Dta_Admissao,Num_Matricula,Idf_Tipo_Vinculo,Prz_Duracao,Prz_Prorrogacao,Num_Ficha_Registro,Flg_Inativo,Dta_Cadastro,Dta_Opcao_FGTS,Idf_Filial_Gestora,Idf_Usuario_Gerador,Num_CPF(formatado),Cod_Generico,Nme_PessoadeTAB_Empregado,TAB_Empregado_carga_horaria,TAB_Pessoa_Fisica,TAB_Contrato. A cláusulaWHEREé construída dinamicamente.
ListarPorPessoaFisica(PessoaFisica objPessoaFisica, SqlTransaction trans)
- Lógica: Retorna uma lista de objetos
Empregadoativos associados a umaPessoaFisicaespecífica.
- Cria e preenche um parâmetro
@Idf_Pessoa_Fisica. - Executa a query
SPSELECTPESSOAFISICAusandoDataAccessLayer.ExecuteReaderdentro da transação. - Itera sobre o
IDataReader, criando e preenchendo objetosEmpregadopara cada linha, e adicionando-os à lista.
- Stored Procedures chamadas:
SPSELECTPESSOAFISICA:SELECT * FROM TAB_Empregado WHERE Idf_Pessoa_Fisica = @Idf_Pessoa_Fisica AND Flg_Inativo = 0
ListarPorPessoaFisicaInativo(List lstPessoaFisica)
- Lógica: Retorna uma lista de IDs de empregados inativos associados a uma lista de IDs de pessoas físicas.
- Constrói uma cláusula
WHEREdinâmicaIN (...)com base nalstPessoaFisica. Se a lista estiver vazia, usaWHERE 1 = 0. - Executa a query
SPSELECTPESSOAFISICAINATIVOformatada com a cláusulaWHEREusandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReadere adiciona osIdf_Empregadoà lista de retorno.
- Stored Procedures chamadas:
SPSELECTPESSOAFISICAINATIVO:SELECT Idf_Empregado FROM TAB_Empregado {0} AND Flg_Inativo = 1(onde{0}é a cláusulaWHEREdinâmica).
ListarPorPessoaFisicaFilial(PessoaFisica objPessoaFisica, Filial objFilial, SqlTransaction trans)
- Lógica: Retorna uma lista de objetos
Empregadoativos associados a umaPessoaFisicaeFilialespecíficas.
- Cria e preenche parâmetros para
@Idf_Pessoa_Fisicae@Idf_Filial. - Constrói uma query que combina
SPSELECTPESSOAFISICAcom um filtro adicional paraIdf_Filial_Gestorae ordenação porDta_Admissao. - Executa a query usando
DataAccessLayer.ExecuteReader(com ou sem transação). - Itera sobre o
IDataReader, criando e preenchendo objetosEmpregadopara cada linha, e adicionando-os à lista.
- Stored Procedures chamadas:
SPSELECTPESSOAFISICA(como base para a query dinâmica).
ListarPorMatriculaCpf(string numMatricula, string numCpf, string idFilial)
- Lógica: Retorna um
IDataReadercom dados de um empregado, filtrado por matrícula ou CPF e ID da filial.
- Cria e preenche parâmetros para
@Idf_Filiale@WhereExpression. - Constrói a
WhereExpressiondinamicamente:
- Se
numCpffor um CPF de 11 dígitos, adicionaPF.Num_Cpf = .... - Se
numMatriculanão for vazio, adicionaEmp.Num_Matricula = '...'. - Se nenhuma das anteriores for preenchida, usa
PF.Nme_Pessoa LIKE ...(o que parece ser um fallback, mas pode ser problemático senumMatriculafor usado como nome).
- Executa a query
SPSELECTPARCIALusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELECTPARCIAL.
ListarPorContratoMatricula(int idContrato, string numMatricula)
- Lógica: Retorna um
IDataReadercom dados de um empregado, filtrado por ID do contrato e número de matrícula.
- Cria e preenche parâmetros para
@Idf_Contratoe@Num_Matricula. - Executa a query
SPSELCONTRATOMATRICULAusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELCONTRATOMATRICULA:SELECT Emp.* FROM Tab_Empregado Emp inner join TAB_Empregado_carga_horaria ech on emp.Idf_Empregado = ech.Idf_Empregado WHERE Emp.Flg_Inativo = 0 AND Emp.Idf_Contrato = @Idf_Contrato AND Emp.Num_Matricula = @Num_Matricula
Listar(string matriculaNomeCpf, string idFilial)
- Lógica: Retorna um
IDataReadercom dados de um empregado, filtrado por matrícula/nome/CPF e ID da filial.
- Cria e preenche parâmetros para
@Idf_Filiale@WhereExpression. - Constrói a
WhereExpressiondinamicamente:
- Se
matriculaNomeCpffor um CPF de 11 dígitos, adicionaPF.Num_Cpf = .... - Caso contrário, adiciona
Emp.Num_Matricula = '...'.
- Executa a query
SPSELECTPARCIALusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELECTPARCIAL.
ListarPorPessoaFisicaEmpresa(PessoaFisica objPessoaFisica, Empresa objEmpresa, SqlTransaction trans)
- Lógica: Retorna uma lista de objetos
Empregadoativos associados a umaPessoaFisicaeEmpresaespecíficas.
- Cria e preenche parâmetros para
@Idf_Pessoa_Fisicae@Idf_Empresa. - Constrói uma query que combina
SPSELECTPESSOAFISICAEMPRESAcom um filtro adicional paraIdf_Empresae ordenação porDta_Admissao. - Executa a query usando
DataAccessLayer.ExecuteReader(com ou sem transação). - Itera sobre o
IDataReader, criando e preenchendo objetosEmpregadopara cada linha, e adicionando-os à lista.
- Stored Procedures chamadas:
SPSELECTPESSOAFISICAEMPRESA:SELECT * FROM TAB_Empregado Emp INNER JOIN TAB_Contrato Con ON Emp.Idf_Contrato = Con.Idf_Contrato WHERE Emp.Idf_Pessoa_Fisica = @Idf_Pessoa_Fisica AND Emp.Flg_Inativo = 0(como base para a query dinâmica).
ListarEmpregadoAutoCompleteUsuario(string matriculaNomeCpf, int idfUsuarioLogado, int count)
- Lógica: Lista empregados para autocomplete, filtrando por matrícula/nome/CPF e considerando o acesso do usuário.
- Cria e preenche parâmetros para
@Idf_Usuarioe@Count. - Constrói a parte da query para filtro de
matriculaNomeCpf(CPF/PIS ou matrícula/nome). - Concatena a query base
SPSELECTAUTOCOMPLETEcom os filtros eORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETE.
ListarEmpregadoAutoCompleteUsuarioEmpresa(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count, bool funcInativo)
- Lógica: Lista empregados para autocomplete, com filtros de usuário, empresa e status de inatividade.
- Cria e preenche parâmetros para
@Idf_Usuario,@Count,@Idf_Empresa,@Flg_Inativo. - Constrói a parte da query para filtro de
matriculaNomeCpf. - Concatena a query base
SPSELECTAUTOCOMPLETEFLGINATIVOcom os filtros eORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETEFLGINATIVO.
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count)
- Lógica: Lista empregados ATIVOS para autocomplete, com filtros de usuário e empresa.
- Cria e preenche parâmetros para
@Idf_Usuario,@Count,@Idf_Empresa. - Constrói a parte da query para filtro de
matriculaNomeCpf. - Concatena a query base
SPSELECTAUTOCOMPLETE_ATIVOScom os filtros eORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETE_ATIVOS.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialAtivos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int count)
- Lógica: Chama o método auxiliar
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialcomativo = true. - Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarEmpregadoAutoCompleteUsuarioEmpresaFilial.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialInativos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int count)
- Lógica: Chama o método auxiliar
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialcomativo = false. - Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarEmpregadoAutoCompleteUsuarioEmpresaFilial.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilial(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int count, bool ativo)
- Lógica: Método auxiliar que lista empregados para autocomplete, com filtros de usuário, empresa, filial e status ativo/inativo.
- Cria e preenche parâmetros para
@Idf_Usuario,@Count,@Idf_Empresa,@Idf_Filial,@Flg_Inativo. - Constrói a parte da query para filtro de
matriculaNomeCpf. - Concatena a query base
SPSELECTAUTOCOMPLETE_ATIVOS_FILIALcom os filtros eORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETE_ATIVOS_FILIAL.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoAtivos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int idfContrato, int count)
- Lógica: Chama o método auxiliar
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratocomativo = true. - Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContrato.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoInativos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int idfContrato, int count)
- Lógica: Chama o método auxiliar
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratocomativo = false. - Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContrato.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContrato(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int idfContrato, int count, bool ativo)
- Lógica: Método auxiliar que lista empregados para autocomplete, com filtros de usuário, empresa, filial, contrato e status ativo/inativo.
- Cria e preenche parâmetros para
@Idf_Usuario,@Count,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Flg_Inativo. - Constrói a parte da query para filtro de
matriculaNomeCpf. - Concatena a query base com os filtros e
ORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
- Query dinâmica:
SELECT TOP(@Count) Emp.Num_Matricula, FORMAT(PF.Num_CPF, '00000000000') AS Num_CPF, PF.Nme_Pessoa FROM TAB_Empregado Emp INNER JOIN TAB_Contrato C ON C.Idf_Contrato = Emp.Idf_Contrato INNER JOIN TAB_Filial F ON F.Idf_Filial = C.Idf_Filial_Gestora INNER JOIN TAB_Pessoa_Fisica PF ON Emp.Idf_Pessoa_Fisica = PF.Idf_Pessoa_Fisica WHERE C.Idf_Empresa = @Idf_Empresa AND C.Flg_Inativo = 0 AND Emp.Flg_Inativo = @Flg_Inativo AND F.Flg_Inativo = 0 AND (Emp.Idf_Centro_Resultado IS NULL AND Emp.Idf_Contrato IN (SELECT UA.Idf_Contrato FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa) UA) OR Emp.Idf_Centro_Resultado IS NOT NULL AND Emp.Idf_Centro_Resultado IN (SELECT UA.Idf_Centro_Resultado FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa) UA)) [filtros de matricula/cpf/nome] AND C.Idf_Filial_Gestora = @Idf_Filial AND C.Idf_Contrato = @Idf_Contrato ORDER BY TRY_CAST(Emp.Num_Matricula AS INT), Emp.Num_Matricula
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count)
- Lógica: Lista empregados (ativos/inativos) para autocomplete, com filtros de usuário e empresa, adaptando a consulta com base no tipo de estrutura gerencial da empresa.
- Cria e preenche parâmetros para
@Idf_Empresa,@Idf_Usuario,@Count. - Constrói a parte da query para filtro de
matriculaNomeCpf. - Usa uma query condicional (
query0) que verificaIdf_Tipo_Estrutura_Gerencialda empresa para aplicar o filtro de acesso (TAB_SF_Usuario_Acesso) emIdf_ContratoouIdf_Centro_Resultado. - Executa a query formatada e popula a lista de strings.
- Stored Procedures chamadas:
TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa): Função de tabela para controle de acesso.- Query dinâmica que une
TAB_Empregado,TAB_Contrato,TAB_Filial,TAB_Pessoa_Fisica.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialAtivoInativo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int count)
- Lógica: Lista empregados (ativos/inativos) para autocomplete, com filtros de usuário, empresa e filial.
- Cria e preenche parâmetros para
@Idf_Usuario,@Count,@Idf_Empresa,@Idf_Filial. - Constrói a parte da query para filtro de
matriculaNomeCpf. - Concatena a query base
SPSELECTAUTOCOMPLETEATIVOINATIVOcom os filtros eORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETEATIVOINATIVO.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoDepartamentoAtivoInativo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int idfContrato, int idfDepartamento, int count)
- Lógica: Lista empregados (ativos/inativos) para autocomplete, com filtros de usuário, empresa, filial, contrato e departamento.
- Cria e preenche parâmetros para
@Idf_Usuario,@Count,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Departamento. - Constrói a parte da query para filtro de
matriculaNomeCpf. - Concatena a query base
SPSELECTAUTOCOMPLETEATIVOINATIVO2com os filtros eORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETEATIVOINATIVO2.
ListarEmpregadoAutoCompleteAtivo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count)
- Lógica: Lista empregados ATIVOS para autocomplete, com filtros de usuário e empresa.
- Cria e preenche parâmetros para
@Idf_Usuario,@Count,@Idf_Empresa. - Constrói a parte da query para filtro de
matriculaNomeCpf. - Concatena a query base
SPSELECTAUTOCOMPLETEATIVOcom os filtros eORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETEATIVO.
ListarEmpregadoAutoCompleteUsuarioEmpresaInativo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count)
- Lógica: Lista empregados INATIVOS para autocomplete, com filtros de usuário e empresa, incluindo lógica para buscar empregados em rescisão.
- Cria e preenche parâmetros para
@Idf_Usuario,@Count,@Idf_Empresa. - Constrói a parte da query para filtro de
matriculaNomeCpf, adicionando subqueries paraTAB_RESCISAO(Task #3750). - Concatena a query base
SPSELECTAUTOCOMPLETEATIVOINATIVOcom os filtros eORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETEATIVOINATIVO.
ListarEmpregadoAutoCompleteUsuarioEmpresa(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count)
- Lógica: Lista empregados para autocomplete, com filtros de usuário e empresa.
- Cria e preenche parâmetros para
@Idf_Usuario,@Count,@Idf_Empresa. - Constrói a parte da query para filtro de
matriculaNomeCpf. - Concatena a query base
SPSELECTAUTOCOMPLETE_NEWcom os filtros eORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas:
SPSELECTAUTOCOMPLETE_NEW.
ListarPorMatriculaCpfUsuario(string numMatricula, string numCpf, int idfUsuarioLogado)
- Lógica: Retorna um
IDataReadercom dados de um empregado por matrícula ou CPF e acesso do usuário.
- Cria e preenche parâmetros para
@Idf_Usuario,@Num_Matricula,@Num_Cpf. - Se
numMatriculafor diferente denumCpf, adiciona um filtro extra paraEmp.Num_Matricula. - Executa a query
SPSELECTMATRICULACPFusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELECTMATRICULACPF.
ListarPorMatriculaCpfUsuario(string numMatricula, string numCpf, int idfUsuarioLogado, int idfEmpresa, bool flgInativo)
- Lógica: Sobrecarga que chama
ListarPorMatriculaCpfUsuario(numMatricula, numCpf, idfUsuarioLogado, idfEmpresa, (bool?)flgInativo). - Stored Procedures chamadas: Nenhuma diretamente. Chama a outra sobrecarga.
ListarPorMatriculaCpfUsuario(string numMatricula, string numCpf, int idfUsuarioLogado, int idfEmpresa, bool? flgInativo)
- Lógica: Retorna um
IDataReadercom dados de um empregado por matrícula ou CPF, com filtro de inatividade opcional e acesso do usuário.
- Cria e preenche parâmetros para
@Idf_Usuario,@Num_Matricula,@Num_Cpf,@Idf_Empresa,@Flg_Inativo. - Se
numMatriculafor diferente denumCpf, adiciona um filtro extra paraEmp.Num_Matricula. - Executa a query
SPSELECTMATRICULACPF_NEWusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELECTMATRICULACPF_NEW.
ListarPorMatriculaCpfUsuarioAtivoInativo(string numMatricula, string numCpf, int idfUsuarioLogado, int idfEmpresa)
- Lógica: Retorna um
IDataReadercom dados de um empregado por matrícula ou CPF, considerando status ativo/inativo e acesso do usuário.
- Cria e preenche parâmetros para
@Idf_Usuario,@Num_Matricula,@Num_Cpf,@Idf_Empresa. - Se
numMatriculafor diferente denumCpf, adiciona um filtro extra paraEmp.Num_Matricula. - Executa a query
SPSELECTMATRICULACPFATIVOINATIVOusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELECTMATRICULACPFATIVOINATIVO.
ListarEmpregadosFiltroBeneficio(int idEmpresa, int idFilial, int idContrato, int idDepartamento, int idFuncaoExclusiva, int idEmpregado, int numMes, int numAno, string nomeColuna, string direcaoOrdenacao)
- Lógica: Lista empregados para o filtro de benefício, com diversos critérios.
- Constrói uma query SQL dinâmica que une
TAB_Empregado,TAB_Pessoa_Fisica,TAB_Contrato,TAB_Filial. - Adiciona cláusulas
WHEREdinâmicas com base nos filtros de filial, empregado, contrato, departamento, função exclusiva e existência deTAB_Beneficio_Fornecimentopara o mês/ano. - Adiciona
ORDER BYpara a coluna e direção especificadas. - Executa a query usando
DataAccessLayer.ExecuteReader.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
MontarQueryListarEmpregadosFiltroPagamentoBeneficio(out List parms, int idfEmpresa, int idfUsuario, int? idfBanco, int? idfFilial, int? idfContrato, int? idfDepartamento, int? idfFuncaoExlusiva, int? idfTipoFolha, int? idfTpBeneficio, int? idfFormaPagamento, string NotIn, int? mes, int? ano, int? pIdFormaPagamentoBeneficio)
- Lógica: Monta a query SQL para listar empregados para filtro de pagamento de benefício.
- Inicializa a lista de parâmetros e adiciona
@idfEmpresa,@Idf_Usuario. - Constrói a query base que une
TAB_empregado,TAB_Contrato,TAB_Filial,TAB_Periodo_Calculo_Filial,TAB_Periodo_Calculo,TAB_Pessoa_Fisica,TAB_Beneficio_Fornecimento,TAB_Beneficio,TAB_Tipo_Beneficio,plataforma.TAB_Forma_Pagamento_Beneficio,TAB_Empregado_Forma_Pagamento. - Adiciona
LEFT JOINpara informações de conta bancária (TAB_Empregado_Conta,TAB_Conta_Pessoa,TAB_Agencia_Bancaria) e endereço (TAB_Endereco,plataforma.TAB_Cidade,plataforma.TAB_Estado). - Adiciona cláusulas
WHEREeINNER JOIN/LEFT JOINdinâmicas com base nos filtros depIdFormaPagamentoBeneficio,idfFormaPagamento,idfTpBeneficio,idfBanco,idfDepartamento,idfFuncaoExlusiva,mes,ano,NotIn. - Inclui a lógica de acesso do usuário (
TAB_SF_Usuario_Acesso). - Retorna a query construída.
- Stored Procedures chamadas:
TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa).
MontarQueryListarEmpregadosFiltroPagamento(out List parms, int idfEmpresa, int idfUsuario, int? idfBanco, int? idfFilial, int? idfContrato, int? idfDepartamento, int? idfFuncaoExclusiva, int? idfFuncionario, int? idfTpFolha, int? idfTpBeneficio, int? idfFormaPagamento, string NotIn)
- Lógica: Monta a query SQL para listar empregados para filtro de pagamento de folha.
- Inicializa a lista de parâmetros e adiciona
@idfEmpresa,@Idf_Usuario. - Constrói a query base que une
TAB_empregado,TAB_Contrato,TAB_Filial,TAB_Pessoa_Fisica,TAB_Holerite,TAB_Periodo_Calculo,TAB_Empregado_Forma_Pagamento,plataforma.TAB_Tipo_Folha,plataforma.TAB_Forma_Pagamento. - Adiciona
LEFT JOINpara informações de conta bancária e endereço. - Adiciona cláusulas
WHEREeINNER JOIN/LEFT JOINdinâmicas com base nos filtros deidfFormaPagamento,idfTpBeneficio(lança exceção se for benefício),idfBanco,idfDepartamento,idfFuncaoExclusiva,NotIn,idfTpFolha,idfFilial,idfContrato,idfFuncionario. - Inclui a lógica de acesso do usuário (
TAB_SF_Usuario_Acesso). - Retorna a query construída.
- Stored Procedures chamadas:
TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa). - Exceções: Lança
ExceptionseidfTpBeneficiotiver valor, indicando que não deveria entrar nesse método para tipo de benefício.
ListarEmpregadosFiltroPagamento(int idfEmpresa, int idfUsuario, int? idfBanco, int? idfFilial, int? idfContrato, int? idfDepartamento, int? idfFuncaoExclusiva, int? idfFuncionario, int? idfTpFolha, int? idfTpBeneficio, int? idfFormaPagamento, int? mes, int? ano, int? pIdFormaPagamentoBeneficio)
- Lógica: Lista empregados para o filtro de geração de arquivos de pagamento (benefício ou folha).
- Verifica se
idfTpFolhatem valor. - Se sim, chama
MontarQueryListarEmpregadosFiltroPagamento. - Se não, chama
MontarQueryListarEmpregadosFiltroPagamentoBeneficio. - Executa a query resultante usando
DataAccessLayer.ExecuteReader.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
MontarQueryListarEmpregadosFiltroPagamentoouMontarQueryListarEmpregadosFiltroPagamentoBeneficio.
ListarEmpregadosFiltroPagamento(int idfEmpresa, int idfUsuario, int? idfBanco, int? idfFilial, int? idfContrato, int? idfDepartamento, int? idfFuncaoExclusiva, int? idfFuncionario, int? idfTpFolha, int? idfTpBeneficio, int? idfFormaPagamento, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros, out decimal valorTotal, out decimal valorMedio, string NotIn, int? mes, int? ano, int? pIdFormaPagamentoBeneficio)
- Lógica: Lista empregados para o filtro de geração de arquivos de pagamento (benefício ou folha) com paginação e totalizadores.
- Chama
MontarQueryListarEmpregadosFiltroPagamentoouMontarQueryListarEmpregadosFiltroPagamentoBeneficiopara obter a query base e os parâmetros. - Calcula os índices de início e fim para a paginação.
- Constrói uma query de contagem e totalizadores (
SPSELECTCOUNT) e uma query paginada (SPSELECTPAG). - Executa
SPSELECTCOUNTpara obtertotalRegistros,valorTotalevalorMedio. - Cria uma nova lista de parâmetros (para evitar problemas com o
IDataReaderanterior). - Executa
SPSELECTPAGpara retornar oIDataReadercom os dados da página atual.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
MontarQueryListarEmpregadosFiltroPagamentoouMontarQueryListarEmpregadosFiltroPagamentoBeneficio. SPSELECTCOUNT:SELECT COUNT(*) AS totalRegistros, ISNULL(SUM(Vlr_Holerite),0) AS valorTotal, ISNULL(AVG(Vlr_Holerite),0) AS valorMedio FROM ([query_base]) AS tempSPSELECTPAG: Query paginada que envolve aquery_base.
ListarPorMatriculaCpfEmpresa(string numMatricula, string numCpf, string idEmpresa)
- Lógica: Retorna um
IDataReadercom dados de um empregado, filtrado por matrícula ou CPF e ID da empresa.
- Cria e preenche parâmetros para
@Idf_Empresae@WhereExpression. - Constrói a
WhereExpressiondinamicamente:
- Se
numCpffor um CPF de 11 dígitos, adicionaPF.Num_Cpf = .... - Se
numMatriculafor uma matrícula numérica, adicionaEmp.Num_Matricula = '...'. - Se nenhuma das anteriores for preenchida, usa
PF.Nme_Pessoa LIKE ....
- Executa a query
SPSELECTPARCIALEMPRESAusandoDataAccessLayer.ExecuteReader.
- Stored Procedures chamadas:
SPSELECTPARCIALEMPRESA: SQL de SELECT que buscaEmp.*,Num_CPF(formatado),Nme_PessoadeTAB_Empregado,TAB_Pessoa_Fisica,TAB_Contrato,TAB_Filial. A cláusulaWHEREé construída dinamicamente.
CarregarPorMatriculaCpfNome(string textoAutoComplete, out Empregado empregado)
- Lógica: Tenta carregar um objeto
Empregadoa partir de uma string de autocomplete formatada (ex: “Matrícula - Nome - CPF”).
- Divide a string
textoAutoCompleteem matrícula, nome e CPF. - Cria e preenche parâmetros para
@Num_Matricula,@Nome,@Num_Cpf,@Idf_Empresa(da sessão). - Constrói uma query SQL para buscar o empregado com esses critérios.
- Executa a query usando
DataAccessLayer.ExecuteReader. - Tenta preencher um novo objeto
Empregado(empregado) comSetInstance(). - Retorna
truese o objeto foi carregado,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
LoadObject_Por_Matricula_Cpf(string _matricula, string _cpf)
- Lógica: Carrega um objeto
Empregadopor matrícula e CPF.
- Constrói uma query SQL para buscar o empregado com o CPF e matrícula fornecidos.
- Cria e preenche parâmetros para
@Num_CPFe@Num_Matricula. - Executa a query usando
DataAccessLayer.ExecuteReader. - Tenta preencher um novo objeto
EmpregadocomSetInstance(). - Retorna o objeto
Empregado.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count)
- Lógica: Chama a sobrecarga mais completa de
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFuturasem filtros de filial ou centro de resultado. - Stored Procedures chamadas: Nenhuma diretamente. Chama a outra sobrecarga.
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int idfFilial, int count)
- Lógica: Chama a sobrecarga mais completa de
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFuturacom filtro de filial. - Stored Procedures chamadas: Nenhuma diretamente. Chama a outra sobrecarga.
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int? idfFilial, int? idfCentroResultado, int count)
- Lógica: Lista empregados (ativos/inativos) e admissões futuras para autocomplete, com filtros de usuário, empresa, filial e centro de resultado.
- Define duas queries base (
querypara estrutura por contrato,queryCRpara estrutura por centro de resultado). Ambas incluemUNIONcomTAB_Empregado_Admissao_Futura. - Seleciona a query apropriada com base em
Empresa.UtilizaCR(idfEmpresaLogada). - Cria e preenche parâmetros para
@Idf_Usuario,@Count,@CpfPis,@Num_Matricula,@Nme_Pessoa,@Idf_Empresa,@Idf_Filial,@Idf_Centro_Resultado. - Constrói
complementoQuerycom base emmatriculaNomeCpf(CPF/PIS, matrícula ou nome). - Formata a query selecionada com
complementoQuery. - Executa a query e popula um
Dictionary<string, string>onde a chave é “flg_adm_futura;Idf_Empregado” e o valor é a string formatada.
- Stored Procedures chamadas:
TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa): Função de tabela para controle de acesso.- Queries dinâmicas que unem
TAB_Empregado,TAB_Empregado_Admissao_Futura,TAB_Contrato,TAB_Centro_Resultado,TAB_Filial,TAB_Pessoa_Fisica.
ListarEmpregadoAutoCompleteCentroResultado(string matriculaNomeCpf, int idUsuarioLogado, int idEmpresaLogada, int? idFilial, int? idCentroResultado, int count, bool? inativo)
- Lógica: Lista empregados para autocomplete, com filtros de centro de resultado, filial, empresa e status de inatividade.
- Cria e preenche parâmetros para
@Count,@Idf_Usuario,@Idf_Empresa,@Idf_Filial,@Idf_Centro_Resultado,@Flg_Inativo. - Constrói a parte da query para filtro de
matriculaNomeCpf. - Concatena a query base com os filtros e
ORDER BY. - Executa a query e formata os resultados.
- Stored Procedures chamadas:
TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa): Função de tabela para controle de acesso.- Query dinâmica que une
TAB_Empregado,TAB_Centro_Resultado,TAB_Filial,TAB_Pessoa_Fisica.
AdicionarItemFilaCalculoBeneficio(SqlTransaction trans)
- Lógica: Adiciona o empregado atual na fila de cálculo de benefício.
- Verifica se o empregado está inativo; se sim, retorna.
- Chama
FilaCalculoBeneficio.AdicionarItemFilacom o ID do empregado, ano e mês da admissão. - Chama
FilaBenesite.AdicionarEmpregadoFilapara adicionar o empregado à fila do Benesite.
- Stored Procedures chamadas: Nenhuma diretamente. Chama métodos de
FilaCalculoBeneficioeFilaBenesite.
GerarAcessoHolerite(SqlTransaction trans)
- Lógica: Gera o acesso ao holerite para o empregado atual.
- Chama a sobrecarga
GerarAcessoHolerite(trans, this).
- Stored Procedures chamadas: Nenhuma diretamente. Chama a outra sobrecarga.
GerarAcessoHolerite(SqlTransaction trans, Empregado pObjEmpregado)
- Lógica: Gera o acesso ao holerite para um empregado específico.
- Tenta carregar um
HoleriteAcessoexistente para aPessoaFisicado empregado. - Se não existir, cria um novo
HoleriteAcesso, define aPessoaFisica, gera uma senha aleatória e a marca comoFlagSenhaAleatoria = true. - Salva o objeto
HoleriteAcesso(novo ou existente).
- Stored Procedures chamadas: Nenhuma diretamente. Chama
HoleriteAcesso.CarregarPorPessoaFisicaeHoleriteAcesso.Save.
RecuperarQtdHoraMensalTotal(int idPessoa)
- Lógica: Recupera a quantidade total de horas mensais de trabalho de uma pessoa física.
- Cria e preenche um parâmetro
@IDF_PESSOA_FISICA. - Executa a query
SPHORAMENSALTOTALusandoDataAccessLayer.ExecuteScalar. - Retorna o resultado convertido para
int, ou0se for nulo.
- Stored Procedures chamadas:
SPHORAMENSALTOTAL:SELECT ISNULL(SUM(ECH.QTD_Carga_Horaria),0) QTD_HORA_MENSAL_TOTAL FROM TAB_PESSOA_FISICA PES INNER JOIN TAB_EMPREGADO EMP ON EMP.IDF_PESSOA_FISICA = PES.IDF_PESSOA_FISICA INNER JOIN TAB_EMPREGADO_Carga_Horariaa ECH ON ECH.IDF_EMPREGADO = EMP.IDF_EMPREGADO WHERE EMP.FLG_INATIVO = 0 AND PES.IDF_PESSOA_FISICA = @IDF_PESSOA_FISICA
RecuperarPorPessoaFisicaFilial(PessoaFisica objPessoaFisica, Filial objFilial, SqlTransaction trans)
- Lógica: Chama
ListarPorPessoaFisicaFilialpara recuperar a lista de empregados. - Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarPorPessoaFisicaFilial.
RecuperarPorPessoaFisicaEmpresa(PessoaFisica objPessoaFisica, Empresa objEmpresa, SqlTransaction trans)
- Lógica: Chama
ListarPorPessoaFisicaEmpresapara recuperar a lista de empregados. - Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarPorPessoaFisicaEmpresa.
RecuperarEmpregadosAtivosPorFilial(int idfFilial, SqlTransaction trans)
- Lógica: Recupera um
DataTablecom empregados ativos de uma filial.
- Cria e preenche um parâmetro
@Idf_Filial. - Executa a query
SELATIVOSPORFILIALusandoDataAccessLayer.ExecuteReaderDsdentro da transação. - Retorna o primeiro
DataTabledoDataSet.
- Stored Procedures chamadas:
SELATIVOSPORFILIAL:SELECT DISTINCT E.Idf_Empregado FROM TAB_Empregado E INNER JOIN TAB_Pessoa_Fisica PF ON E.Idf_Pessoa_Fisica = PF.Idf_Pessoa_Fisica INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato WHERE C.Idf_Filial_Gestora = @Idf_Filial AND E.Flg_Inativo = 0
RecuperarListaEmpregadosAtivosPorFilial(SqlTransaction trans, int idfFilial)
- Lógica: Recupera uma lista de objetos
Empregado(apenas com o ID preenchido) ativos de uma filial.
- Cria e preenche um parâmetro
@Idf_Filial. - Executa a query
SELATIVOSPORFILIALusandoDataAccessLayer.ExecuteReaderdentro da transação. - Itera sobre o
IDataReader, criando objetosEmpregadocom o ID e adicionando-os à lista.
- Stored Procedures chamadas:
SELATIVOSPORFILIAL.
ListarEmpregadosDecimoTerceiro(int IdEmpresa, int IdFilial, int IdContrato, int IdDepartamento, int IdEmpregado, int NumAno, int CodigoUsuarioLogado, string NotIn, int IdTipoFolha, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros, string empregadosIn, bool lancamentoEfetuado, int? IdCentroResultado)
- Lógica: Lista empregados para cálculo de 13º salário, com diversos filtros e paginação.
- Cria e preenche parâmetros para
@Idf_Usuario,@Idf_Empresa,@Idf_Filial,@idf_Contrato,@idf_Departamento,@idf_Empregado,@Idf_Tipo_Folha,@Idf_Verba,@Num_Ano,@Idf_Centro_Resultado. - Determina o
Idf_Verbacom base emIdTipoFolha(Adiantamento 13º ou 13º). - Calcula os índices de início e fim para a paginação.
- Constrói a query principal (
query) usandoSPCONSULTAREMPREGADOSDECIMOTERCEIRO, aplicando lógica complexa paraNotIneempregadosInpara filtrar empregados já lançados ou incluídos. - Executa a query usando
DataAccessLayer.ExecuteReader. - Lê o primeiro resultado para obter
totalRegistros. - Avança para o próximo resultado e retorna o
IDataReader.
- Stored Procedures chamadas:
SPCONSULTAREMPREGADOSDECIMOTERCEIRO: SQL de SELECT complexa que uneTAB_Empregado,TAB_Pessoa_Fisica,V_COD_CONTRATO,plataforma.TAB_Tipo_Folha,TAB_Empregado_Departamento,TAB_Departamento,TAB_Holerite,TAB_Holerite_Verba,TAB_Centro_Resultado,TAB_Filial. Inclui subqueries para verificar holerites de 13º, adiantamento de 13º, férias com verba de adiantamento e afastamentos por aposentadoria.VerbaSistema.RecuperarIDVerba(...): Recupera o ID da verba de sistema.TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa): Função de tabela para controle de acesso.
ListarEmpregadosDecimoTerceiroLancamento(int IdEmpresa, int IdFilial, int IdContrato, int IdDepartamento, int IdEmpregado, int CodigoUsuarioLogado, string NotIn, int IdTipoFolha, int? IdCentroResultado)
- Lógica: Lista empregados para lançamento de 13º salário.
- Cria e preenche parâmetros para
@Idf_Usuario,@Idf_Empresa,@Idf_Filial,@idf_Contrato,@idf_Departamento,@idf_Empregado,@Idf_Tipo_Folha,@Idf_Centro_Resultado. - Constrói a query principal (
query) usandoSPCONSULTAREMPREGADOSDECIMOTERCEIROLANCAMENTO, formatando com a stringNotIn. - Executa a query usando
DataAccessLayer.ExecuteReaderDse retorna o primeiroDataTable.
- Stored Procedures chamadas:
SPCONSULTAREMPREGADOSDECIMOTERCEIROLANCAMENTO: SQL de SELECT complexa que uneTAB_Empregado,TAB_Pessoa_Fisica,V_COD_CONTRATO,plataforma.TAB_Tipo_Folha,TAB_Empregado_Departamento,TAB_Departamento,TAB_Centro_Resultado,TAB_Filial,TAB_Holerite,TAB_Periodo_Calculo. Inclui subqueries para verificar holerites de 13º e afastamentos por aposentadoria.TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa): Função de tabela para controle de acesso.
VerificaAdiantamentoDecimoTerceiroPagamento(int IdEmpregado)
- Lógica: Verifica se um empregado possui adiantamento de 13º salário com pagamento pendente no ano corrente.
- Cria e preenche um parâmetro
@idf_Empregado. - Executa a query
SPVERIFICAADIANTAMENTODECIMOTERCEIROPAGAMENTOusandoDataAccessLayer.ExecuteScalar. - Retorna
truese a contagem for maior que zero,falsecaso contrário.
- Stored Procedures chamadas:
SPVERIFICAADIANTAMENTODECIMOTERCEIROPAGAMENTO:SELECT COUNT(*) FROM TAB_Holerite H INNER JOIN TAB_Periodo_Calculo PC ON H.Idf_Periodo_Calculo=PC.Idf_Periodo_Calculo WHERE Idf_Tipo_Folha IN(6) AND YEAR(PC.Dta_Inicio) = YEAR(GETDATE()) AND H.Dta_Pagamento IS NULL AND H.Idf_Empregado = @Idf_Empregado
ListarEmpregadosAtivosPorFilial(int idfFilial, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica: Lista empregados ativos por filial com paginação e ordenação.
- Cria e preenche parâmetros para
@SortExpression,@CurrentPage,@PageSize,@WhereExpression(nulo),@Idf_Filial. - Executa a query
SELATIVOSPORFILIALPAGINACAOusandoDataAccessLayer.ExecuteReader. - Lê o primeiro resultado para obter
totalRegistros. - Avança para o próximo resultado e retorna o
IDataReader.
- Stored Procedures chamadas:
SELATIVOSPORFILIALPAGINACAO: SQL de SELECT complexa que utilizaROW_NUMBER()para paginação e contagem, buscando dados deTAB_Pessoa_Fisica,TAB_Empregado,TAB_Contrato,TAB_Filial.
ListarIdsEmpregadosAtivosPorFilial(int idfFilial)
- Lógica: Lista os IDs de empregados ativos por filial.
- Cria e preenche um parâmetro
@Idf_Filial. - Executa a query
SELATIVOSPORFILIALusandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReadere adiciona os IDs à lista de retorno.
- Stored Procedures chamadas:
SELATIVOSPORFILIAL.
ListarEmpregadosAtivosDecimoTerceiro(int idfFilial, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica: Lista empregados ativos para 13º salário com paginação e ordenação.
- Cria e preenche parâmetros para
@SortExpression,@CurrentPage,@PageSize,@WhereExpression(nulo),@Idf_Filial. - Executa a query
SELATIVOSDECIMOTERCEIROPAGINACAOusandoDataAccessLayer.ExecuteReader. - Lê o primeiro resultado para obter
totalRegistros. - Avança para o próximo resultado e retorna o
IDataReader.
- Stored Procedures chamadas:
SELATIVOSDECIMOTERCEIROPAGINACAO: SQL de SELECT complexa que utilizaROW_NUMBER()para paginação e contagem, buscando dados deTAB_Pessoa_Fisica,TAB_Empregado,TAB_Contrato,TAB_Filial.
RecuperarIdPorMatriculaCpfNome(string matricula, string nome, string cpf)
- Lógica: Recupera o ID de um empregado por matrícula, nome e CPF.
- Constrói uma query SQL para buscar o
Idf_Empregado. - Cria e preenche parâmetros para
@Num_Matricula,@Nome,@Num_Cpf,@Idf_Empresa(da sessão). - Executa a query usando
DataAccessLayer.ExecuteScalar. - Retorna o ID do empregado ou
0se não encontrado.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
VerificarSequenciaMatricula(int tipoBusca, Filial filial)
- Lógica: Recupera a próxima sequência de matrícula disponível, com base no
tipoBusca(1 para empresa, 2 para filial).
- Se
tipoBuscafor 1:
- Completa o objeto
filial. - Chama
VerificaSequenciaMatriculaEmpresacom o ID da empresa da filial.
- Se
tipoBuscafor 2:
- Chama
VerificaSequenciaMatriculaFilialcom o ID da filial. - Stored Procedures chamadas: Nenhuma diretamente. Chama
VerificaSequenciaMatriculaEmpresaouVerificaSequenciaMatriculaFilial.
VerificaSequenciaMatriculaEmpresa(int idEmpresa)
- Lógica: Recupera o último número de matrícula usado em uma empresa.
- Cria e preenche um parâmetro
@Idf_Empresa. - Executa a query
SPSELECTEMPRESAMATRICULASEQUENCIAusandoDataAccessLayer.ExecuteScalar. - Retorna o resultado convertido para
int.
- Stored Procedures chamadas:
SPSELECTEMPRESAMATRICULASEQUENCIA:SELECT MAX(E.Num_Matricula) FROM TAB_Empregado E INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato INNER JOIN TAB_Filial F ON F.Idf_Filial = C.Idf_Filial_Gestora WHERE E.Flg_Inativo = 0 AND C.Idf_Empresa = @Idf_Empresa
VerificaSequenciaMatriculaFilial(int idFilial)
- Lógica: Recupera o último número de matrícula usado em uma filial.
- Cria e preenche um parâmetro
@Idf_Filial. - Executa a query
SPSELECTFILIALMATRICULASEQUENCIAusandoDataAccessLayer.ExecuteScalar. - Retorna o resultado convertido para
int.
- Stored Procedures chamadas:
SPSELECTFILIALMATRICULASEQUENCIA:SELECT MAX(E.Num_Matricula) FROM TAB_Empregado E INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato WHERE E.Flg_Inativo = 0 AND C.Idf_Filial_Gestora = @Idf_Filial
VerificarSequenciaFichaRegistro(int tipoBusca, Filial filial)
- Lógica: Recupera a próxima sequência de ficha de registro disponível, com base no
tipoBusca(1 para empresa, 2 para filial).
- Se
tipoBuscafor 1:
- Completa o objeto
filial. - Chama
VerificaSequenciaFichaRegistroEmpresacom o ID da empresa da filial.
- Se
tipoBuscafor 2:
- Chama
VerificaSequenciaFichaRegistroFilialcom o ID da filial. - Stored Procedures chamadas: Nenhuma diretamente. Chama
VerificaSequenciaFichaRegistroEmpresaouVerificaSequenciaFichaRegistroFilial.
VerificaSequenciaFichaRegistroEmpresa(int idEmpresa)
- Lógica: Recupera o último número de ficha de registro usado em uma empresa.
- Cria e preenche um parâmetro
@Idf_Empresa. - Executa a query
SPSELECTEMPRESAFICHAREGISTROSEQUENCIAusandoDataAccessLayer.ExecuteScalar. - Retorna o resultado convertido para
int.
- Stored Procedures chamadas:
SPSELECTEMPRESAFICHAREGISTROSEQUENCIA:SELECT MAX(E.Num_Ficha_Registro) FROM TAB_Empregado E INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato WHERE E.Flg_Inativo = 0 AND C.Idf_Empresa = @Idf_Empresa
VerificaSequenciaFichaRegistroFilial(int idFilial)
- Lógica: Recupera o último número de ficha de registro usado em uma filial.
- Cria e preenche um parâmetro
@Idf_Filial. - Executa a query
SPSELECTFILIALFICHAREGISTROSEQUENCIAusandoDataAccessLayer.ExecuteScalar. - Retorna o resultado convertido para
int.
- Stored Procedures chamadas:
SPSELECTFILIALFICHAREGISTROSEQUENCIA:SELECT MAX(E.Num_Ficha_Registro) FROM TAB_Empregado E INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato WHERE E.Flg_Inativo = 0 AND C.Idf_Filial_Gestora = @Idf_Filial
VerificarMatricula(string numeroMatricula, int tipoBusca, Filial filial, int? idEmpregado)
- Lógica: Verifica a existência de um número de matrícula, com base no
tipoBusca(1 para empresa, 2 para filial).
- Se
tipoBuscafor 1:
- Completa o objeto
filial. - Chama
VerificaMatriculaEmpresacom a matrícula, ID da empresa da filial eidEmpregado.
- Se
tipoBuscafor 2:
- Chama
VerificaMatriculaFilialcom a matrícula, ID da filial eidEmpregado. - Stored Procedures chamadas: Nenhuma diretamente. Chama
VerificaMatriculaEmpresaouVerificaMatriculaFilial.
VerificaMatriculaEmpresa(string numeroMatricula, int idEmpresa, int? idEmpregado)
- Lógica: Verifica a existência de um número de matrícula em uma empresa, excluindo o próprio empregado se
idEmpregadofor fornecido.
- Cria e preenche parâmetros para
@Num_Matriculae@Idf_Empresa. - Constrói a query
SPSELECTEMPRESAMATRICULA. - Se
idEmpregadotiver valor, adicionaAND E.Idf_Empregado <> @Idf_Empregadoe o parâmetro@Idf_Empregado. - Executa a query e retorna
truese um registro for encontrado.
- Stored Procedures chamadas:
SPSELECTEMPRESAMATRICULA:select E.Idf_Empregado from TAB_Empregado E INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato where E.Flg_Inativo = 0 and E.Num_Matricula = @Num_Matricula and C.Idf_Empresa = @Idf_Empresa
VerificaMatriculaFilial(string numeroMatricula, int idFilial, int? idEmpregado)
- Lógica: Verifica a existência de um número de matrícula em uma filial, excluindo o próprio empregado se
idEmpregadofor fornecido.
- Cria e preenche parâmetros para
@Num_Matriculae@Idf_Filial. - Constrói a query
SPSELECTFILIALMATRICULA. - Se
idEmpregadotiver valor, adicionaAND E.Idf_Empregado <> @Idf_Empregadoe o parâmetro@Idf_Empregado. - Executa a query e retorna
truese um registro for encontrado.
- Stored Procedures chamadas:
SPSELECTFILIALMATRICULA:select E.Idf_Empregado from TAB_Empregado E INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato where E.Flg_Inativo = 0 and E.Num_Matricula = @Num_Matricula and C.Idf_Filial_Gestora = @Idf_Filial
VerificarFichaRegistro(string numeroFichaRegistro, int tipoBusca, Filial filial, int? idEmpregado)
- Lógica: Verifica a existência de um número de ficha de registro, com base no
tipoBusca(1 para empresa, 2 para filial).
- Se
tipoBuscafor 1:
- Completa o objeto
filial. - Chama
VerificaFichaRegistroEmpresacom a ficha de registro, ID da empresa da filial eidEmpregado.
- Se
tipoBuscafor 2:
- Chama
VerificaFichaRegistroFilialcom a ficha de registro, ID da filial eidEmpregado. - Stored Procedures chamadas: Nenhuma diretamente. Chama
VerificaFichaRegistroEmpresaouVerificaFichaRegistroFilial.
VerificaFichaRegistroEmpresa(string numeroFichaRegistro, int idEmpresa, int? idEmpregado)
- Lógica: Verifica a existência de um número de ficha de registro em uma empresa, excluindo o próprio empregado se
idEmpregadofor fornecido.
- Cria e preenche parâmetros para
@Num_Ficha_Registroe@Idf_Empresa. - Constrói a query
SPSELECTEMPRESAFICHAREGISTRO. - Se
idEmpregadotiver valor, adicionaAND E.Idf_Empregado <> @Idf_Empregadoe o parâmetro@Idf_Empregado. - Executa a query e retorna
truese um registro for encontrado.
- Stored Procedures chamadas:
SPSELECTEMPRESAFICHAREGISTRO:select E.Idf_Empregado from TAB_Empregado E INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato where E.Flg_Inativo = 0 and E.Num_Ficha_Registro = @Num_Ficha_Registro and C.Idf_Empresa = @Idf_Empresa
VerificaFichaRegistroFilial(string numeroFichaRegistro, int idFilial, int? idEmpregado)
- Lógica: Verifica a existência de um número de ficha de registro em uma filial, excluindo o próprio empregado se
idEmpregadofor fornecido.
- Cria e preenche parâmetros para
@Num_Ficha_Registroe@Idf_Filial. - Constrói a query
SPSELECTFILIALFICHAREGISTRO. - Se
idEmpregadotiver valor, adicionaAND E.Idf_Empregado <> @Idf_Empregadoe o parâmetro@Idf_Empregado. - Executa a query e retorna
truese um registro for encontrado.
- Stored Procedures chamadas:
SPSELECTFILIALFICHAREGISTRO:select E.Idf_Empregado from TAB_Empregado E INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato where E.Flg_Inativo = 0 and E.Num_Ficha_Registro = @Num_Ficha_Registro and C.Idf_Filial_Gestora = @Idf_Filial
VerificarContrato(string numeroContrato)
- Lógica: Verifica a existência de um contrato pelo código.
- Cria e preenche um parâmetro
@Cod_Contrato. - Executa a query
SPSELECTCONTRATOusandoDataAccessLayer.ExecuteReader. - Retorna
truese um registro for encontrado.
- Stored Procedures chamadas:
SPSELECTCONTRATO:SELECT Con.Idf_Contrato FROM TAB_Contrato Con INNER JOIN TAB_Cliente Cli ON Con.Idf_Cliente = Cli.Idf_Cliente WHERE Cli.Idf_Tipo_Cliente = 1 AND Con.Cod_Contrato = @Cod_Contrato
VerificarDepartamento(string numeroDepartamento)
- Lógica: Verifica a existência de um departamento pelo código.
- Cria e preenche um parâmetro
@Cod_Departamento. - Executa a query
SPSELECTDEPARTAMENTOusandoDataAccessLayer.ExecuteReader. - Retorna
truese um registro for encontrado.
- Stored Procedures chamadas:
SPSELECTDEPARTAMENTO:SELECT D.Idf_Departamento FROM TAB_Departamento D WHERE D.Cod_Departamento = @Cod_Departamento
VerificarRecontratacao(int? idTomadorPJ, int? idTomadorPF, int idPessoaFisica, int idTipoVinculo, DateTime dtInicioPeriodo, int idEmpresa)
- Lógica: Verifica se uma recontratação é permitida com base em regras de vínculo e período.
- Cria e preenche parâmetros para
@Idf_FilialTomadora,@Idf_PessoaTomadora,@Idf_Pessoa_Fisica,@Dta_InicioPeriodo,@Idf_Empresa. - Executa a query
SPSELECTRECONTRATACAOusandoDataAccessLayer.ExecuteReader. - Itera sobre os resultados:
- Para cada tipo de vínculo encontrado, aplica regras específicas para determinar se a recontratação é permitida.
- Por exemplo, se o vínculo anterior era “Temporário” e o novo também é “Temporário”, a recontratação pode ser permitida. Se o vínculo anterior era “Empregado por Tempo Determinado” ou “Indeterminado”, a recontratação não é permitida.
- Stored Procedures chamadas:
SPSELECTRECONTRATACAO: SQL de SELECT que uneTAB_Empregado,TAB_Contrato,TAB_Cliente,TAB_Filial,TAB_Pessoa_Fisica,TAB_Rescisao. Filtra por tomador, pessoa física, tipo de vínculo e período de rescisão.
VerificarFolhaPaga(int IdEmpregado, DateTime DtaInicio, DateTime DtaFinal)
- Lógica: Verifica se um empregado possui folha paga (com
Idf_Arquivo_Gerado_EmpregadoeDta_Pagamentonão nulos, eIdf_Pre_Faturanão nulo) em um determinado período.
- Cria e preenche parâmetros para
@Idf_Empregado,@Dta_Inicio_Periodo,@Dta_Fim_Periodo. - Executa a query
SPSELECTVERIFICAFOLHAPAGAusandoDataAccessLayer.ExecuteReader. - Retorna
truese um registro for encontrado.
- Stored Procedures chamadas:
SPSELECTVERIFICAFOLHAPAGA:SELECT H.* FROM Tab_Holerite H INNER JOIN Tab_Periodo_Calculo PC ON H.idf_periodo_calculo = PC.idf_periodo_calculo WHERE idf_arquivo_gerado_empregado IS NOT NULL AND dta_pagamento IS NOT NULL AND idf_pre_fatura IS NOT NULL AND idf_empregado = @Idf_Empregado AND PC.Dta_Inicio Between @Dta_Inicio_Periodo AND @Dta_Fim_Periodo
Inativar(int idEmpregado)
- Lógica: Inativa um empregado definindo
Flg_Inativo = 1.
- Cria e preenche um parâmetro
@Idf_Empregado. - Executa a query
SPINATIVARusandoDataAccessLayer.ExecuteNonQuery.
- Stored Procedures chamadas:
SPINATIVAR:UPDATE TAB_Empregado SET Flg_Inativo = 1 WHERE Idf_Empregado = @Idf_Empregado
Inativar(int idEmpregado, SqlTransaction trans)
- Lógica: Similar a
Inativar(int idEmpregado)sem transação, mas utiliza uma transação SQL já existente (trans). - Stored Procedures chamadas:
SPINATIVAR.
DeleteMemoriaCalculoLogTemp(int idEmpregado, SqlTransaction trans)
- Lógica: Exclui registros temporários de log de memória de cálculo para um empregado.
- Cria e preenche um parâmetro
@Idf_Empregado. - Executa a query
SPDELMEMORIACALCULOLOGTEMPusandoDataAccessLayer.ExecuteNonQuerydentro da transação.
- Stored Procedures chamadas:
SPDELMEMORIACALCULOLOGTEMP:DELETE FLH_Memoria_Calculo_Log_Temp WHERE Idf_Empregado=@Idf_Empregado
ExisteEmpregadoContrato(int idContrato)
- Lógica: Verifica se existe algum empregado vinculado a um contrato.
- Cria e preenche um parâmetro
@Idf_Contrato. - Executa a query
SPEXISTEEMPREGADOCONTRATOusandoDataAccessLayer.ExecuteScalar. - Retorna
truese a contagem for maior que zero.
- Stored Procedures chamadas:
SPEXISTEEMPREGADOCONTRATO:SELECT Count(Emp.Idf_Empregado) FROM TAB_Empregado Emp WHERE Emp.Idf_Contrato = @Idf_Contrato
ExisteEmpregadoAtivoContrato(int idContrato)
- Lógica: Verifica se existe algum empregado ATIVO vinculado a um contrato.
- Cria e preenche um parâmetro
@Idf_Contrato. - Executa a query
SELEXISTEEMPREGADOATIVOCONTRATOusandoDataAccessLayer.ExecuteScalar. - Retorna
truese a contagem for maior que zero.
- Stored Procedures chamadas:
SELEXISTEEMPREGADOATIVOCONTRATO:SELECT Count(Emp.Idf_Empregado) FROM TAB_Empregado Emp WHERE Emp.Idf_Contrato = @Idf_Contrato AND Emp.Flg_Inativo = 0
ExisteEmpregadoContratoAtivo(PessoaFisica objPessoaFisica, Contrato objContrato)
- Lógica: Verifica se existe um empregado ativo para uma pessoa física e contrato específicos.
- Cria e preenche parâmetros para
@Idf_Pessoa_Fisicae@Idf_Contrato. - Executa a query
SPEXISTEEMPREGADOCONTRATOATIVOusandoDataAccessLayer.ExecuteScalar. - Retorna
truese a contagem for maior que zero.
- Stored Procedures chamadas:
SPEXISTEEMPREGADOCONTRATOATIVO:SELECT Count(Emp.Idf_Empregado) FROM TAB_Empregado Emp WHERE Emp.Idf_Contrato = @Idf_Contrato AND Emp.Idf_Pessoa_Fisica = @Idf_Pessoa_Fisica AND Emp.Flg_Inativo = 0
ExisteEmpregadoAtivo(PessoaFisica objPessoaFisica, int idEmpresa, int idUsuario)
- Lógica: Verifica se existe um empregado ativo para uma pessoa física, empresa e usuário, considerando o controle de acesso.
- Cria e preenche parâmetros para
@Idf_Pessoa_Fisica,@Idf_Empresa,@Idf_Usuario. - Constrói uma query SQL que une
TAB_Pessoa_Fisica,TAB_Empregado,TAB_Contrato,TAB_Filial. - Inclui a lógica de acesso do usuário (
TAB_SF_Usuario_Acesso). - Executa a query usando
DataAccessLayer.ExecuteScalar. - Retorna
truese um resultado for encontrado.
- Stored Procedures chamadas:
TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa).
ExisteEmpregadoAtivo(decimal pCpf, int pIdEmpresa)
- Lógica: Verifica se existe um empregado ativo com um CPF e empresa específicos.
- Cria e preenche parâmetros para
@Num_CPFe@Idf_Empresa. - Constrói uma query SQL que une
TAB_Empregado,TAB_Pessoa_Fisica,TAB_Contrato,TAB_Centro_Resultado,TAB_Filial. - Executa a query usando
DataAccessLayer.ExecuteScalar. - Retorna
truese um resultado for encontrado.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
ExisteEmpregadoAtivo(int IdPessoaFisica, int valor)
- Lógica: Verifica se existe um empregado ativo para uma pessoa física, com lógica condicional baseada no parâmetro
valor.
- Cria e preenche um parâmetro
@Idf_Pessoa_Fisica. - Constrói uma query SQL:
- Se
valorfor diferente deRegistro_de_EmpregadoeRescisao, a query busca apenas naTAB_Pessoa_Fisica. - Caso contrário, a query une
TAB_Pessoa_FisicacomTAB_Empregado.
- Executa a query usando
DataAccessLayer.ExecuteScalar. - Retorna
truese um resultado for encontrado.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
ExisteEstado(string estado)
- Lógica: Verifica se um estado existe na tabela
plataforma.tab_estado.
- Cria e preenche um parâmetro
@Sig. - Executa uma query SQL simples para buscar a sigla do estado.
- Retorna
truese um resultado for encontrado.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
ExisteCPFcomMatricula(long cpf, string matricula)
- Lógica: Verifica se existe um CPF com uma matrícula específica em empregados ativos.
- Cria e preenche parâmetros para
@CPFe@Matricula. - Executa uma query SQL que une
tab_EmpregadoeTAB_Pessoa_Fisica. - Retorna
truese um resultado for encontrado.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
ExisteCPF(long cpf)
- Lógica: Verifica se um CPF existe na tabela de pessoas físicas, vinculado a um empregado.
- Cria e preenche um parâmetro
@CPF. - Executa uma query SQL que une
tab_EmpregadoeTAB_Pessoa_Fisica. - Retorna
truese um resultado for encontrado.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
ExisteMatricula(string matricula)
- Lógica: Verifica se uma matrícula existe para um empregado ativo.
- Cria e preenche um parâmetro
@Matricula. - Executa uma query SQL simples na
tab_empregadofiltrando por matrícula eFlg_Inativo = 0. - Retorna
truese um resultado for encontrado.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
ExisteEmpregadoAtivo(int IdPessoaFisica)
- Lógica: Verifica se existe um empregado ativo para uma pessoa física.
- Cria e preenche um parâmetro
@Idf_Pessoa_Fisica. - Executa uma query SQL que une
TAB_Pessoa_FisicaeTAB_Empregado, filtrando porFlg_Inativo = 0. - Retorna
truese um resultado for encontrado.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
Clone()
- Lógica: Implementa a interface
ICloneablepara criar uma cópia superficial da instância atual deEmpregado.
- Cria uma nova instância de
Empregado. - Copia os valores dos atributos relevantes da instância atual para a nova instância.
- Stored Procedures chamadas: Nenhuma.
RecuperarSomaEncargosFPAS()
- Lógica: Recupera a soma dos encargos FPAS para o empregado atual.
- Inicializa
somaEncargoscomo0. - Chama
RecuperarFPAS(this, out fpasEscolhido)para obter o objetoFPASAliquota. - Se
fpasEscolhidonão for nulo, soma os valores dos encargos (ValorDpc,ValorFundoAeroviario, etc.). - Retorna a
somaEncargos.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
RecuperarFPAS.
RecuperarFPAS(Empregado objEmpregado, out FPASAliquota objFPASAliquota, SqlTransaction trans)
- Lógica: Recupera a alíquota FPAS para um empregado, dentro de uma transação.
- Completa o objeto
objEmpregado, seuContratoe, se existir, seuCentroResultado. - Chama
TributoAliquota.BuscaFPASPorFilialVinculopara obter oidFpasAliquotacom base na filial (do Centro de Resultado ou da Filial Gestora do Contrato) e no tipo de vínculo do empregado. - Se
idFpasAliquotativer valor, carrega o objetoFPASAliquotausandoFPASAliquota.LoadObject.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
TributoAliquota.BuscaFPASPorFilialVinculoeFPASAliquota.LoadObject.
RecuperarFPAS(Empregado objEmpregado, out FPASAliquota fpasEscolhido)
- Lógica: Sobrecarga de
RecuperarFPASque gerencia a transação.
- Abre uma conexão SQL e inicia uma transação.
- Chama a sobrecarga
RecuperarFPAS(objEmpregado, out fpasEscolhido, trans)para realizar a recuperação. - Comita a transação se bem-sucedido, reverte em caso de erro.
- Stored Procedures chamadas: Nenhuma diretamente. Chama a outra sobrecarga de
RecuperarFPAS.
RecuperarTipoVinculo(int idEmpregado)
- Lógica: Recupera o ID do tipo de vínculo de um empregado.
- Cria e preenche um parâmetro
@Idf_Empregado. - Executa a query
SPSELTIPOVINCULOusandoDataAccessLayer.ExecuteScalar. - Retorna o resultado convertido para
int.
- Stored Procedures chamadas:
SPSELTIPOVINCULO:SELECT Idf_Tipo_Vinculo FROM TAB_Empregado WHERE Idf_Empregado = @Idf_Empregado
RecuperarFilialGestoraPeriodoCalculo(int idEmpregado, out int idPeriodoCalculo, out int idFilialGestora, SqlTransaction trans)
- Lógica: Recupera o ID da filial gestora e o ID do período de cálculo ativo para um empregado.
- Cria e preenche um parâmetro
@Idf_Empregado. - Executa a query
SPCONSULTAFILIALPERIODOCALCULOusandoDataAccessLayer.ExecuteReaderdentro da transação. - Lê o resultado e atribui os valores a
idFilialGestoraeidPeriodoCalculo.
- Stored Procedures chamadas:
SPCONSULTAFILIALPERIODOCALCULO:SELECT con.Idf_Filial_Gestora, pcf.Idf_Periodo_Calculo FROM TAB_Empregado emp INNER JOIN TAB_Contrato con ON con.Idf_Contrato = emp.Idf_Contrato INNER JOIN TAB_Periodo_Calculo_Filial pcf ON pcf.Idf_Filial = con.Idf_Filial_Gestora WHERE pcf.Flg_Fechado = 0 AND Idf_Empregado = @Idf_Empregado
AtualizaNovaDataAdmissaoEmp(SqlTransaction trans)
- Lógica: Atualiza a data de admissão do empregado e datas relacionadas em outras tabelas (rescisão, salário, função, departamento, carga horária, log) se não houver holerites pagos no período atual.
- Completa o objeto
Contratodo empregado e carrega aFilialgestora. - Verifica se existem holerites pagos (regular ou rescisão) para o empregado no período de cálculo atual da filial. Se houver, não prossegue.
- Se o tipo de vínculo for “Temporário”:
- Calcula o
totalDias(prazo de duração + prorrogação). - Atualiza
Dta_Saida_Prevista,Dta_RescisaoeDta_Opcao_FGTSnaTAB_Rescisaocom base na novaDataAdmissaoetotalDias.
- Cria parâmetros para
@Idf_Empregadoe@DataAdmissao. - Atualiza
Dta_AdmissaoeDta_Opcao_FGTSnaTAB_Rescisao(para rescisões com data de rescisão maior ou igual à nova data de admissão). - Lógica de Salário:
- Recupera o salário atual do empregado.
- Lista salários posteriores à data de admissão.
- Ajusta as
DataInicioVigenciados salários posteriores com base na novaDataAdmissao.
- Atualiza
Dta_Inicio_VigenciaemTAB_Empregado_Funcao_Exclusiva,TAB_Empregado_Departamento,TAB_Empregado_Carga_HorariaeTAB_Empregado_Contratopara a novaDataAdmissao. - Atualiza
Dta_Opcao_FGTSemTAB_Empregado_LogeTAB_Empregado_Fechamento_Decimo_Terceiro.
- Stored Procedures chamadas:
Holerite.VerificaExistenciaHoleriteEmpregadoTipoFolhaPeriodo(...): Verifica a existência de holerites pagos.- Queries dinâmicas de
UPDATEparaTAB_Rescisao,TAB_Empregado_Funcao_Exclusiva,TAB_Empregado_Departamento,TAB_Empregado_Carga_Horaria,TAB_Empregado_Contrato,TAB_Empregado_Log,TAB_Empregado_Fechamento_Decimo_Terceiro. Empregado.LoadObject(...),Contrato.CompleteObject(...),Filial.LoadObject(...),Salario.ListarHistoricoSalariosPosEmpregado(...),Salario.Save(...).
ListarEmpAltSalFunc(string nome, string cpf, string matricula, int? idFilial, int? idContrato, int? idDep, int? idCentroResultado, int? idFuncao, int? idSindicato, decimal? de, decimal? ate, int count)
- Lógica: Lista empregados para alteração de salário/função, com diversos filtros.
- Cria e preenche parâmetros para
@Nme_Pessoa,@CPF,@Num_Matricula,@Idf_Filial,@Idf_Contrato,@Idf_Centro_Resultado,@Idf_Funcao,@Idf_Departamento,@Idf_Sindicato,@de,@ate,@Count. - Constrói uma cláusula
WHEREdinâmica (query) com base nos filtros fornecidos. - Executa a query
Splistarempaltsalfuncconcatenada com aquerydinâmica usandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReadere popula umDictionary<int, string>com o ID do empregado e uma string formatada.
- Stored Procedures chamadas:
Splistarempaltsalfunc: SQL de SELECT que uneTAB_Empregado,TAB_Pessoa_Fisica,TAB_Empregado_Funcao_Exclusiva,TAB_Funcao_Exclusiva,plataforma.TAB_Funcao_Especifica,TAB_Contrato,TAB_Filial,TAB_Salario,TAB_Empregado_Departamento,TAB_Empregado_Sindicato,TAB_Sindicato,TAB_Centro_Resultado.
CarregarEmpAltSalFunc(int? idFilial, int? idContrato, int? idDep, int? idCentroResultado, int? idFuncao, int? idSindicato, decimal? de, decimal? ate, int? idEmpregado)
- Lógica: Carrega um
DataTablede empregados para alteração de salário/função, com diversos filtros.
- Cria e preenche parâmetros para
@Idf_Filial,@Idf_Contrato,@Idf_Centro_Resultado,@Idf_Funcao,@Idf_Departamento,@Idf_Empregado,@Idf_Sindicato,@de,@ate. - Constrói uma cláusula
WHEREdinâmica (query) com base nos filtros fornecidos. - Adiciona
ORDER BY pf.Nme_Pessoa ASC. - Executa a query
SPCARREGAREMPALTSALFUNCconcatenada com aquerydinâmica usandoDataAccessLayer.ExecuteReaderDs. - Retorna o primeiro
DataTabledoDataSet.
- Stored Procedures chamadas:
SPCARREGAREMPALTSALFUNC: SQL de SELECT que uneTAB_Empregado,TAB_Pessoa_Fisica,TAB_Empregado_Funcao_Exclusiva,TAB_Funcao_Exclusiva,plataforma.TAB_Funcao_Especifica,TAB_Contrato,TAB_Filial,TAB_Salario,TAB_Empregado_Departamento,TAB_Empregado_Sindicato,TAB_Sindicato,TAB_Centro_Resultado.
AlterarFuncaoSalarioEmpLote(DataTable dt, DateTime dataAgendamento, int idfFuncaoExcluisvaNova, int idfMotivoAlteracaoFuncao, string tipoAlteracaoSalario, decimal novoValor, int idfMotivoAlteracaoSalario, int idfUsuario, ref LoteAlteracao objLoteAlteracao, ref DataSet ds, ref bool verificarSalarioMenor, int alteraSalario, int idfFilial, bool flgArredondaValor)
- Lógica: Orquestra a alteração de função e/ou salário de múltiplos empregados em lote.
- Abre uma conexão SQL e inicia uma transação.
- Inicializa
dseobjLoteAlteracaocomo nulos, everificarSalarioMenorcomofalse. - Adiciona uma coluna “MsgErro” ao
DataTablede entrada se não existir. - Se
idfMotivoAlteracaoFuncaofor maior que 0, chamaAlterarFuncaoEmpregadospara processar as alterações de função. - Se
idfMotivoAlteracaoSalariofor maior que 0, chamaAlterarSalarioEmpregados2para processar as alterações de salário. - Comita a transação.
- Chama
FilaCalculoTransactionSingleton.EnviarParaCalculopara enfileirar os cálculos. - Em caso de exceção, reverte a transação e remove da fila de cálculo.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
AlterarFuncaoEmpregadoseAlterarSalarioEmpregados2.
AlterarFuncaoEmpregados(DataTable dt, string dia, string mes, string ano, int idfFuncaoExcluisvaNova, int idfMotivoAlteracao, int idfUsuario, int idfFilial, bool flagArredondaValor, SqlTransaction trans, ref LoteAlteracao objLoteAlteracao, ref DataSet ds)
- Lógica: Altera a função de múltiplos empregados em lote, com validações e registro de erros.
- Carrega o objeto
FuncaoExclusivae seus objetos aninhados (FuncaoEspecifica,Escolaridade). - Itera sobre cada
DataRownoDataTablede entrada:
- Carrega o objeto
Empregado. - Determina a
datada alteração (seidfMotivoAlteracaofor “Admissão”, usa aDataAdmissaodo empregado). - Chama
Holerite.VerificarHoleriteAltFuncpara verificar se há holerite pago no período. Se sim, registra um erro e continua. - Se a alteração for na data de admissão do empregado, chama
AlterarFuncaoAdmissaonoEmpregadoFuncaoExclusivaAtual. - Completa
PessoaFisicaeEscolaridadedo empregado. - Validações:
- Se a escolaridade da nova função for maior que a escolaridade da pessoa física, registra um erro.
- Se a
DataInicioVigenciada função atual for maior ou igual àdatada alteração, registra um erro (alteração agendada posterior). - Se a
datada alteração estiver no período de cálculo atual e já houver uma alteração com o mesmo motivo, registra um erro. - Se a
datada alteração estiver no período de cálculo futuro e já houver uma alteração com o mesmo motivo, registra um erro. - Se as validações passarem:
- Inativa a função exclusiva atual do empregado (
EmpregadoFuncaoExclusiva.InativarFuncaoExclusiva). - Cria um novo
EmpregadoFuncaoExclusiva, preenche seus atributos e o salva. - Chama
LoteAlteracaoEmpregadopara registrar a alteração no lote. - Adiciona o empregado à fila de cálculo (
FilaCalculo.AdicionarEmpregadoFila) e registra o log (LogFilaCalculo.SalvarLog). - Stored Procedures chamadas: Nenhuma diretamente. Chama métodos de
FuncaoExclusiva,Empregado,Holerite,PeriodoCalculoFilial,PeriodoCalculo,EmpregadoFuncaoExclusiva,PessoaFisica,LoteAlteracaoEmpregado,FilaCalculo,LogFilaCalculo.
AlterarSalarioEmpregados(DataTable dt, string mes, string ano, int idfMotivoAlteracao, string alteracaoSalario, decimal novoValor, int idfUsuario, SqlTransaction trans, ref LoteAlteracao objLoteAlteracao, ref DataSet ds, ref bool verificarSalarioMenor)
- Lógica: Altera o salário de múltiplos empregados em lote, com validações e registro de erros.
- Itera sobre cada
DataRownoDataTablede entrada:
- Carrega o objeto
Empregado. - Converte
meseanoparaDateTime. - Chama
Holerite.VerificarHoleriteAltFuncpara verificar se há holerite pago no período. Se sim, registra um erro e continua. - Recupera o salário atual do empregado (
Salario.RecuperarSalarioAtivoAltLote). - Carrega o
PeriodoCalculocorrespondente à data da alteração. - Chama
LoteEmpregadoAlteracao.VerificarLoteAlteracaoEmpregadoSalariopara verificar se já houve alteração de salário para o empregado no período. Se não, e a data não for a de admissão, registra um erro. - Se a
DataInicioVigenciado salário atual for maior que aDataIniciodo período de cálculo da alteração (indicando uma alteração anterior), e a data não for a de admissão, registra um erro. - Calcula o
novoSalariocom base noalteracaoSalario(Novo Salário, Valor Aumento, Percentual Aumento). DefineverificarSalarioMenorse o novo salário for menor. - Validações de Salário Mínimo (se não for estagiário):
- Recupera o salário mínimo nacional (
IndiceVigencia.RecuperarSalarioMinimo). - Recupera a quantidade de horas mensais padrão.
- Calcula o valor mínimo por hora.
- Calcula o valor por hora do novo salário (considerando tipo de pagamento horista/produção/comissão ou carga horária).
- Se o
valorHoraAtualfor menor que ovalorMinimoHora, registra um erro. - Se as validações passarem:
- Se a alteração for na data de admissão, chama
NovoSalarioEmpregadoAdmissao. - Caso contrário, chama
NovoSalarioEmpregado. - Adiciona o empregado à fila de cálculo (
FilaCalculo.AdicionarEmpregadoFila) e registra o log (LogFilaCalculo.SalvarLog). - Chama
LoteAlteracaoEmpregadopara registrar a alteração no lote. - Stored Procedures chamadas: Nenhuma diretamente. Chama métodos de
Empregado,Holerite,Salario,PeriodoCalculo,LoteEmpregadoAlteracao,IndiceVigencia,Dicionario,EmpregadoCargaHoraria,FilaCalculo,LogFilaCalculo,LoteAlteracaoEmpregado.
NovoSalarioEmpregado(Salario objSalarioAtual, SqlTransaction trans, Empregado objEmpregado, PeriodoCalculo objPeriodo, decimal novoSalario, int idfMotivoAlteracao, int idfUsuario, out Salario obj)
- Lógica: Cria um novo registro de salário para um empregado, inativando o anterior se existir.
- Se
objSalarioAtualnão for nulo, inativa-o (Salario.InativarSalario) com a data de fim de vigência como o dia anterior ao início do novo período. - Cria um novo objeto
Salario(objSalarioNovo). - Define
DataInicioVigenciacomo a data de início doobjPeriodo. - Define
MotivoSalarioFuncao,ValorSalarioeEmpregado. - Salva o novo salário (
objSalarioNovo.Save). - Atribui
objSalarioNovoao parâmetro de saídaobj.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Salario.InativarSalarioeSalario.Save.
NovoSalarioEmpregado(Salario objSalarioAtual, SqlTransaction trans, Empregado objEmpregado, DateTime dataInicioVigencia, decimal novoSalario, int idfMotivoAlteracao, int idfUsuario, out Salario obj)
- Lógica: Sobrecarga de
NovoSalarioEmpregadoque permite especificar adataInicioVigenciadiretamente.
- Se
objSalarioAtualnão for nulo, inativa-o (Salario.InativarSalario) com a data de fim de vigência como o dia anterior àdataInicioVigencia. - Se
dataInicioVigenciafor igual àDataInicioVigenciadoobjSalarioAtual, reutilizaobjSalarioAtual. - Cria um novo objeto
Salario(objSalarioNovo). - Define
DataInicioVigencia,MotivoSalarioFuncao,ValorSalarioeEmpregado. - Salva o novo salário (
objSalarioNovo.Save). - Atribui
objSalarioNovoao parâmetro de saídaobj.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Salario.InativarSalarioeSalario.Save.
NovoSalarioEmpregadoAdmissao(Salario objSalarioAtual, SqlTransaction trans, decimal novoSalario, int idfUsuario)
- Lógica: Atualiza o valor do salário de admissão de um empregado.
- Define
ValorSalariodoobjSalarioAtualcom onovoSalario. - Chama
objSalarioAtual.UpdateSalarioAtualAdmissao(trans)para persistir a alteração.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Salario.UpdateSalarioAtualAdmissao.
LoteAlteracaoEmpregado(Empregado objEmpregado, PeriodoCalculo objPeriodo, SqlTransaction trans, Salario objSalario, EmpregadoFuncaoExclusiva objFuncao, ref LoteAlteracao objLoteAlteracao)
- Lógica: Cria ou atualiza um registro de lote de alteração para um empregado (salário ou função).
- Se
objLoteAlteracaofor nulo, cria um novoLoteAlteracao, defineFlagInativo = falsee o salva. - Cria um novo
LoteEmpregadoAlteracao. - Associa o
Empregado,Salario(se fornecido) eEmpregadoFuncaoExclusiva(se fornecido). - Associa o
LoteAlteracao. - Salva o
LoteEmpregadoAlteracao.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoteAlteracao.SaveeLoteEmpregadoAlteracao.Save.
LoteAlteracaoEmpregado(Empregado objEmpregado, DateTime dataInicio, SqlTransaction trans, Salario objSalario, EmpregadoFuncaoExclusiva objFuncao, ref LoteAlteracao objLoteAlteracao)
- Lógica: Sobrecarga de
LoteAlteracaoEmpregadoque permite especificar adataInicio.
- Tenta carregar um
LoteEmpregadoAlteracaoexistente para o salário fornecido (LoteEmpregadoAlteracao.CarregarPorEmpregadoFuncaoExclusivaSalario). Se encontrado, reutiliza oLoteAlteracaoassociado. - Se
objLoteAlteracaoainda for nulo, cria um novoLoteAlteracao, defineFlagInativo = falsee o salva. - Cria um novo
LoteEmpregadoAlteracao(ou reutiliza se carregado). - Associa o
Empregado,Salario(se fornecido) eEmpregadoFuncaoExclusiva(se fornecido). - Associa o
LoteAlteracao. - Salva o
LoteEmpregadoAlteracao.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoteEmpregadoAlteracao.CarregarPorEmpregadoFuncaoExclusivaSalario,LoteAlteracao.SaveeLoteEmpregadoAlteracao.Save.
ListarEmpregadosAlteracaoSalarioFuncao(int pIdEmpresa, string nome, string cpf, string matricula, int? idFilial, int? idContrato, int? idDep, int? idCentroResultado, int? idFuncao, int? idSindicato, decimal? de, decimal? ate, int count)
- Lógica: Lista empregados para alteração de salário/função, com diversos filtros e retorno em dicionário.
- Cria e preenche parâmetros para
@Nme_Pessoa,@CPF,@Num_Matricula,@Idf_Filial,@Idf_Contrato,@Idf_Centro_Resultado,@Idf_Funcao,@Idf_Departamento,@Idf_Sindicato,@de,@ate,@Count,@Idf_Empresa. - Constrói uma cláusula
WHEREdinâmica (query) com base nos filtros fornecidos. - Executa a query
Splistarempaltsalfuncconcatenada com aquerydinâmica usandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReadere popula umDictionary<int, string>com o ID do empregado e uma string formatada.
- Stored Procedures chamadas:
Splistarempaltsalfunc.
TabelaErrosAlteracaoSalarioFuncao(DataSet ds, string nomeTabela)
- Lógica: Cria a estrutura de um
DataTablepara registrar erros de alteração de salário/função dentro de umDataSet.
- Adiciona uma nova tabela ao
DataSetcom onomeTabela. - Adiciona as colunas necessárias:
Idf_Empregado,Num_Matricula,Nme_Pessoa,Num_CPF,Dta_Admissao,Situacao,Des_Funcao,Vlr_Salario,MsgErro.
- Stored Procedures chamadas: Nenhuma.
VerificarPessoaFisicaEstaEmpregago(int idPessoaFisica, int idEmpresaLogada)
- Lógica: Verifica se uma pessoa física está empregada em algum contrato ativo e retorna informações do contrato.
- Cria e preenche parâmetros para
@IDPESSOA_FISICAe@IDEMPRESA. - Executa a query
SPVERIFICARPESSOAFISICAESTAEMPREGADAusandoDataAccessLayer.ExecuteReader. - Se um registro for encontrado, preenche um array de strings com
COD_CONTRATO,APE_CONTRATO,QTD_HORA_MENSAL,IDF_FILIAL_CR,APE_FILIAL_CR.
- Stored Procedures chamadas:
SPVERIFICARPESSOAFISICAESTAEMPREGADA:SELECT V_COD_CONTRATO.COD_CONTRATO, APE_CONTRATO, CargaHorariaAtiva.Qtd_carga_Horaria QTD_HORA_MENSAL, CR.IDF_FILIAL AS IDF_FILIAL_CR, FILIALCR.APE_FILIAL AS APE_FILIAL_CR FROM TAB_EMPREGADO INNER JOIN TAB_EMPREGADO_CONTRATO ON TAB_EMPREGADO_CONTRATO.IDF_EMPREGADO = TAB_EMPREGADO.IDF_EMPREGADO INNER JOIN V_COD_CONTRATO ON V_COD_CONTRATO.IDF_CONTRATO = TAB_EMPREGADO_CONTRATO.IDF_CONTRATO LEFT JOIN TAB_CENTRO_RESULTADO CR ON TAB_EMPREGADO.IDF_CENTRO_RESULTADO = CR.IDF_CENTRO_RESULTADO LEFT JOIN TAB_FILIAL FILIALCR ON CR.IDF_FILIAL = FILIALCR.IDF_FILIAL LEFT JOIN TAB_Periodo_Calculo_Filial PCF ON PCF.Idf_Filial = FILIALCR.Idf_Filial AND PCF.Flg_Fechado = 0 AND PCF.Dta_Fechamento IS NULL LEFT JOIN TAB_Periodo_Calculo PC ON PC.Idf_Periodo_Calculo = PCF.Idf_Periodo_Calculo OUTER APPLY (SELECT TOP(1)* FROM TAB_Empregado_Carga_Horaria ECH WHERE 1 = 1 AND ECH.Idf_Empregado = TAB_EMPREGADO.Idf_Empregado AND ((PC.Dta_Inicio BETWEEN ECH.Dta_Inicio_Vigencia AND ISNULL(ECH.Dta_Fim_Vigencia, PC.Dta_Fim)) OR PC.Dta_Fim BETWEEN ECH.Dta_Inicio_Vigencia AND ISNULL(ECH.Dta_Fim_Vigencia, PC.Dta_Fim))) AS CargaHorariaAtiva WHERE TAB_EMPREGADO.IDF_PESSOA_FISICA = @IDPESSOA_FISICA AND TAB_EMPREGADO.FLG_INATIVO = 0 AND V_COD_CONTRATO.IDF_EMPRESA = @IDEMPRESA
VerificarDataAdmissaoValida()
- Lógica: Verifica se a data de admissão do empregado atual está dentro do período de cálculo vigente ou no período de cálculo imediatamente posterior.
- Completa o objeto
Contratodo empregado. - Carrega o
PeriodoCalculoFilialaberto para a filial gestora do contrato. - Se um período de cálculo for encontrado:
- Recupera a data final do período vigente e a data inicial/final do período posterior.
- Compara a
DataAdmissaodo empregado com esses períodos. - Retorna
truese a data estiver no período vigente,falsese estiver no período posterior ou fora. - Stored Procedures chamadas: Nenhuma diretamente. Chama métodos de
Contrato,PeriodoCalculoFilial,PeriodoCalculo.
VerificarUtilizaMatriculaAlfanumerica(SqlTransaction trans, Empresa empresa, Filial filial, Contrato contrato)
- Lógica: Verifica se a empresa/filial/contrato utiliza matrícula alfanumérica, consultando um parâmetro específico.
- Chama
ParametroEspecifico.RecuperarParametroEspecificopara obter o valor do parâmetroUtilizaMatriculaAlfanumerica. - Converte o valor para
bool.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ParametroEspecifico.RecuperarParametroEspecifico.
VerificarGeracaoMatricula(SqlTransaction trans, Empresa empresa, Filial filial, Contrato contrato)
- Lógica: Verifica se a geração de matrícula é automática, consultando um parâmetro específico.
- Chama
ParametroEspecifico.RecuperarParametroEspecificopara obter o valor do parâmetroGeracaoAutomaticaMatricula. - Converte o valor para
bool.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ParametroEspecifico.RecuperarParametroEspecifico.
VerificarGeracaoMatricula(Empresa empresa, Filial filial, Contrato contrato)
- Lógica: Sobrecarga de
VerificarGeracaoMatriculasem transação.
- Chama
ParametroEspecifico.RecuperarParametroEspecificopara obter o valor do parâmetroGeracaoAutomaticaMatricula. - Converte o valor para
bool.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ParametroEspecifico.RecuperarParametroEspecifico.
VerificarGeracaoFichaRegistro(SqlTransaction trans, Empresa empresa, Filial filial, Contrato contrato)
- Lógica: Verifica se a geração de ficha de registro é automática, consultando um parâmetro específico.
- Chama
ParametroEspecifico.RecuperarParametroEspecificopara obter o valor do parâmetroGeracaoAutomaticaNumeroFichaRegistro. - Converte o valor para
bool.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ParametroEspecifico.RecuperarParametroEspecifico.
VerificarGeracaoFichaRegistro(Empresa empresa, Filial filial, Contrato contrato)
- Lógica: Sobrecarga de
VerificarGeracaoFichaRegistrosem transação.
- Chama
ParametroEspecifico.RecuperarParametroEspecificopara obter o valor do parâmetroGeracaoAutomaticaNumeroFichaRegistro. - Converte o valor para
bool.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ParametroEspecifico.RecuperarParametroEspecifico.
GerarMatriculaAutomatica(int idContrato, SqlTransaction trans)
- Lógica: Gera a próxima matrícula automática para um contrato.
- Carrega o parâmetro
GeracaoAutomoticaMatriculaPorFilial. - Carrega o objeto
Contrato. - Se o parâmetro indicar geração por empresa, chama
contrato.Empresa.RecuperarProximaMatricula. - Se o parâmetro indicar geração por filial, chama
contrato.FilialGestora.RecuperarProximaMatricula. - Retorna a matrícula incrementada em 1.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Parametro.LoadObject,Contrato.LoadObject,Empresa.RecuperarProximaMatriculaouFilial.RecuperarProximaMatricula.
GerarFichaRegistroAutomatica(int idContrato, SqlTransaction trans)
- Lógica: Gera a próxima ficha de registro automática para um contrato.
- Carrega o parâmetro
GeracaoAutomoticaMatriculaPorFilial. - Carrega o objeto
Contrato. - Se o parâmetro indicar geração por empresa, e a empresa tiver
NumeroSementeFicha, chamacontrato.Empresa.RecuperarProximaFichaRegistro. - Se o parâmetro indicar geração por filial, e a filial tiver
NumeroSementeFicha, chamacontrato.FilialGestora.RecuperarProximaFichaRegistro. - Retorna a ficha de registro incrementada em 1.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Parametro.LoadObject,Contrato.LoadObject,Empresa.RecuperarProximaFichaRegistroouFilial.RecuperarProximaFichaRegistro.
ListarMatriculasOuFichasExistentes(int idfContrato, int? idfCentroResultado, bool porMatricula)
- Lógica: Lista matrículas ou fichas de registro existentes, considerando se a busca é por empresa ou filial.
- Determina o
idEmpresaeidFilialcom base emidfContratoouidfCentroResultado. - Carrega o parâmetro
GeracaoAutomoticaMatriculaPorFilial(para matrículas) ouCriterioControleSequenciaFichaRegistro(para fichas) para determinar se a geração é por empresa ou filial. - Cria um parâmetro
@IDFcom o ID da empresa ou filial, conforme o critério. - Executa a query
SPSELECTMATRICULAEFICHACADASTRADASPOREMPRESAouSPSELECTMATRICULAEFICHACADASTRADASPORFILIALGESTORAcom base no critério. - Itera sobre o
IDataReadere adiciona as matrículas ou fichas à lista de retorno.
- Stored Procedures chamadas:
SPSELECTMATRICULAEFICHACADASTRADASPOREMPRESA: SQL de SELECT que buscaNUM_MATRICULAeNUM_FICHA_REGISTROdeTAB_EMPREGADO_ADMISSAO_FUTURAeTAB_EMPREGADO, filtrando por empresa.SPSELECTMATRICULAEFICHACADASTRADASPORFILIALGESTORA: SQL de SELECT similar, filtrando por filial gestora.CentroResultado.LoadObject(...),Contrato.LoadObject(...),Parametro.LoadObject(...).
AdicionarFilaDeCalculo(SqlTransaction trans, int idfLote = 0)
- Lógica: Adiciona o empregado atual na fila de cálculo (geral e benefício).
- Completa o objeto
Empregado. - Se o tipo de vínculo não for “Temporário”:
- Adiciona o empregado à fila de cálculo geral (
FilaCalculo.AdicionarEmpregadoFila). - Salva o log da fila de cálculo (
LogFilaCalculo.SalvarLog).
- Adiciona o empregado à fila de cálculo de benefício (
AdicionarItemFilaCalculoBeneficio). - Salva o log da fila de cálculo de benefício.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
FilaCalculo.AdicionarEmpregadoFila,LogFilaCalculo.SalvarLog,AdicionarItemFilaCalculoBeneficio.
AdicionarFilaDeCalculo(SqlTransaction trans, int? idUsuario)
- Lógica: Sobrecarga de
AdicionarFilaDeCalculoque permite umidUsuarioopcional. A lógica é a mesma da sobrecarga anterior. - Stored Procedures chamadas: Nenhuma diretamente. Chama
FilaCalculo.AdicionarEmpregadoFila,LogFilaCalculo.SalvarLog,AdicionarItemFilaCalculoBeneficio.
VerificarPrimeiroEmprego(int idPessoaFisica)
- Lógica: Verifica se é o primeiro emprego de uma pessoa física, excluindo vínculos de estagiário, autônomo e sócio.
- Cria e preenche um parâmetro
@Idf_Pessoa_Fisica. - Executa a query
SPVERIFICAPRIMEIROEMPREGOusandoDataAccessLayer.ExecuteScalarpara contar os empregos. - Retorna
truese a contagem for0.
- Stored Procedures chamadas:
SPVERIFICAPRIMEIROEMPREGO:SELECT COUNT(IDF_PESSOA_FISICA) AS QTDE FROM TAB_EMPREGADO WHERE IDF_PESSOA_FISICA = @IDF_PESSOA_FISICA AND IDF_TIPO_VINCULO NOT IN (4,6)
AlterarSalarioEmpregados2(DataTable dt, DateTime data, int idfMotivoAlteracao, string tipoAlteracaoVlrSalario, decimal novoValor, int idfFilial, int idfUsuario, SqlTransaction trans, ref LoteAlteracao objLoteAlteracao, ref DataSet ds, ref bool verificarSalarioMenor, int alteraSalario, bool flagArredondaValor)
- Lógica: Altera o salário de múltiplos empregados em lote, com validações específicas para motivos 1 e 2, e salário pós-experiência.
- Itera sobre cada
DataRownoDataTablede entrada:
- Carrega o objeto
Empregado. - Se
idfMotivoAlteracaofor 1 ou 2 (admissão/término de experiência): - Chama
AlterarSalarioPeloMotivo1ou2. - Caso contrário (alteração de salário pós-experiência):
- Chama
Holerite.VerificarHoleriteAltFuncpara verificar holerite pago. Se sim, registra erro. - Validação para Estagiário: Se o empregado não for estagiário e o motivo for “Reajuste Bolsa Auxílio”, registra erro.
- Chama
AlterarSalarioPosExperienciapara processar a alteração. - Stored Procedures chamadas: Nenhuma diretamente. Chama
AlterarSalarioPeloMotivo1ou2,Holerite.VerificarHoleriteAltFunc,AlterarSalarioPosExperiencia.
AlterarSalarioPosExperiencia(DateTime data, int idfMotivoAlteracao, string tipoAlteracaoVlrSalario, decimal novoValor, int idfFilial, int idfUsuario, SqlTransaction trans, ref LoteAlteracao objLoteAlteracao, ref DataSet ds, ref bool verificarSalarioMenor, int alteraSalario, bool flagArredondaValor, DataRow row)
- Lógica: Lógica interna para alterar o salário pós-experiência de um empregado, com diversas validações.
- Carrega o objeto
Empregadoe o salário atual (Salario.RecuperarSalarioAtivoAltLote). - Validação: Se não houver salário atual, registra erro.
- Calcula o
salarioFinalesalarioComparativousandoCalcularValorSalario. - Verifica Período de Cálculo:
- Chama
VerificarPeriodoCalculoDatapara determinar se adataestá no período atual ou futuro. - Se no período atual:
- Validação: Se a
datafor anterior ou igual àDataInicioVigenciado salário atual, registra erro (agendamento anterior). - Validação: Se já houver alteração com o mesmo motivo no período atual, registra erro.
- Validação: Se o
salarioComparativofor igual aoValorSalarioatual, registra erro (mesmo valor). - Validação (comentada): Havia uma validação para redução de salário sem redução de jornada.
- Chama
NovoSalarioEmpregadopara criar/atualizar o salário. - Chama
LoteAlteracaoEmpregadoe adiciona à fila de cálculo. - Se no período futuro:
- Lista salários agendados para o período futuro (
Salario.ListarSalariosAgendadosPeriodoCalculo). - Validação: Se já houver salários agendados para o período futuro, registra erro.
- Validação: Se já houver alteração com o mesmo motivo no período futuro, registra erro.
- Validação: Se o
salarioComparativofor igual aoValorSalarioatual, registra erro (mesmo valor). - Validação: Se o
salarioComparativofor menor que oValorSalarioatual, registra um aviso (redução de salário sem redução de jornada). - Chama
NovoSalarioEmpregadopara criar/atualizar o salário. - Chama
LoteAlteracaoEmpregadoe adiciona à fila de cálculo. - Stored Procedures chamadas: Nenhuma diretamente. Chama métodos de
Empregado,Salario,CalcularValorSalario,VerificarPeriodoCalculoData,PeriodoCalculo,NovoSalarioEmpregado,LoteAlteracaoEmpregado,FilaCalculo,LogFilaCalculo.
AlterarSalarioPeloMotivo1ou2(int idfMotivoAlteracao, string tipoAlteracaoVlrSalario, decimal novoValor, int idfUsuario, bool flagArredondaValor, SqlTransaction trans, ref DataSet ds, DataRow row)
- Lógica: Lógica interna para alterar o salário de admissão ou término de experiência (motivos 1 e 2).
- Carrega o objeto
Empregado. - Obtém a lista de salários do empregado (
Salario.GetListaSalariosEmpregado). - Se houver salários:
- Pega o primeiro salário (admissão/experiência).
- Chama
Holerite.VerificarHoleriteAltFuncpara verificar holerite pago. Se sim, registra erro. - Calcula o
salarioFinalesalarioComparativousandoCalcularValorSalario. - Validação: Chama
VerificarValorSalariopara garantir que o novo salário não seja maior que salários futuros. Se não for válido, registra erro. - Se válido, chama
NovoSalarioEmpregadoAdmissaopara atualizar o primeiro salário. - Adiciona à fila de cálculo.
- Se não houver salários, registra erro (empregado sem salário de admissão/término de experiência).
- Stored Procedures chamadas: Nenhuma diretamente. Chama métodos de
Empregado,Salario,Holerite,CalcularValorSalario,VerificarValorSalario,NovoSalarioEmpregadoAdmissao,FilaCalculo,LogFilaCalculo.
CalcularValorSalario(decimal? valorAtual, decimal valorAumento, Enumeradores.AlteracaoSalario tipoAlteracao, bool flagArredondaValor, Empregado empregado, SqlTransaction trans, out Decimal salarioComparativo)
- Lógica: Calcula o novo valor do salário com base no tipo de alteração (absoluto, aumento, percentual).
- Inicializa
salarioComparativoesalarioFinal. - Se
tipoAlteracaofor “PercentualAumento”:
- Calcula o novo salário aplicando o percentual ao
valorAtual.
- Se
tipoAlteracaofor “ValorAumento”:
- Soma
valorAumentoaovalorAtual.
- Se
tipoAlteracaofor “NovoSalario”:
- Se o empregado for horista, recupera a carga horária ativa (
EmpregadoCargaHoraria.RecuperarAtiva) e calcula osalarioFinalcomovalorAumento(valor por hora) multiplicado pela carga horária. - Caso contrário,
salarioFinalé simplesmentevalorAumento.
- Aplica arredondamento se
flagArredondaValorfortrue. - Retorna
salarioFinal.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
EmpregadoCargaHoraria.RecuperarAtiva.
VerificarPeriodoCalculoData(DateTime data, int idFilial, out int idfPeriodoCalculo, SqlTransaction trans)
- Lógica: Verifica se uma data está no período de cálculo atual ou futuro de uma filial.
- Recupera o período de cálculo atual da filial (
PeriodoCalculoFilial.CarregarPeriodoAberto). - Recupera o período de cálculo ao qual a
datapertence (PeriodoCalculo.RecuperarPorData). - Define
idfPeriodoCalculocom o ID do período encontrado para adata. - Retorna
truese o período atual e o período da data forem o mesmo.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
PeriodoCalculoFilial.CarregarPeriodoAbertoePeriodoCalculo.RecuperarPorData.
VerificarValorSalario(List salarios, decimal valor)
- Lógica: Verifica se um novo valor de salário é menor que qualquer um dos salários futuros agendados na lista.
- Itera sobre a lista de
salarios. - Se
valorfor maior que oValorSalariode qualquer item na lista, retornafalse. - Se o loop terminar sem encontrar um salário maior, retorna
true.
- Stored Procedures chamadas: Nenhuma.
RegistrarErro(ref DataSet ds, string tableName, string msg, DataRow row)
- Lógica: Registra uma mensagem de erro em um
DataSetpara relatórios de alteração de salário/função.
- Define a coluna “MsgErro” da
rowcom amsg. - Se
dsfor nulo, o inicializa. - Se a tabela
tableNamenão existir nods, chamaTabelaErrosAlteracaoSalarioFuncaopara criá-la. - Adiciona a
row(com a mensagem de erro) à tabela nods.
- Stored Procedures chamadas: Nenhuma.
VerificarConstraintEmpregado(int idfPessoaFisica, DateTime dataAdmissao, int idfContrato)
- Lógica: Verifica se já existe um empregado (ou admissão futura) com a mesma pessoa física, data de admissão e contrato.
- Cria e preenche parâmetros para
@ID_PESSOA,@DATA,@ID_CONTRATO. - Executa uma query SQL que faz um
UNION ALLentreTAB_EMPREGADOeTAB_EMPREGADO_ADMISSAO_FUTURApara contar registros com os mesmos critérios. - Retorna
truese a contagem for0(não existe duplicidade),falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
RecuperarPensionistas()
- Lógica: Retorna uma lista de objetos
Pensionistavinculados ao empregado atual.
- Cria e preenche um parâmetro
@Idf_Empregado. - Executa uma query SQL para buscar
idf_PensionistadaTAB_Pensionista. - Itera sobre o
IDataReader, cria objetosPensionistacom o ID e os completa (objPensionista.CompleteObject()), adicionando-os à lista.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
RecuperarPensionistas(PeriodoCalculo objPeriodoCalculo)
- Lógica: Retorna uma lista de objetos
Pensionistavinculados ao empregado atual, considerando umPeriodoCalculo.
- Cria e preenche parâmetros para
@Idf_Empregadoe@Idf_Periodo_Calculo. - Executa uma query SQL que une
TAB_Periodo_Calculo,TAB_PensionistaeTAB_Pensionista_Forma_Pagamento, filtrando por vigência. - Itera sobre o
IDataReader, cria objetosPensionistacom o ID e os completa (objPensionista.CompleteObject()), adicionando-os à lista.
- Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.
ListarEmpregadosPorFiltroContrato(int pIdEmpresa, int? pIdFilial, int? pIdContrato, int? pIdDepartamento, int? pIdEmpregado)
- Lógica: Lista empregados por filtros de empresa, filial, contrato, departamento e empregado.
- Cria e preenche parâmetros para
@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Departamento,@Idf_Empregado. - Executa a query
SELLISTAREMPREGADOSPORFILTROCONTRATOusandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, cria objetosEmpregadocom o ID e os completa (objEmpregado.CompleteObject()), adicionando-os à lista.
- Stored Procedures chamadas:
SELLISTAREMPREGADOSPORFILTROCONTRATO: SQL de SELECT que uneTAB_Empregado,TAB_Pessoa_Fisica,TAB_Contrato,TAB_Filial,TAB_Empregado_Departamento,TAB_Empresa. Filtra por inatividade, filial, contrato, departamento, empregado e acesso do usuário (TAB_SF_Usuario_Acesso).
ListarEmpregadosPorFiltroCR(int pIdEmpresa, int? pIdFilial, int? pIdCentroResultado, int? pIdEmpregado, int idfUsuario)
📌 Status: Concluído 👤 Responsável: Equipe de QA