WebFoPag ~114 min

🛠️ 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

NomeTipoObrigatórioRegra
btnArquivoNISGerarLinkButton⚪ NãoBotão para navegar para a aba “Gerar Arquivo”.
btnArquivoNISDownloadLinkButton⚪ NãoBotão para navegar para a tela “Download do Arquivo Gerado”.
btnArquivoNISUploadLinkButton⚪ NãoBotão para navegar para a tela “Leitura do Arquivo de Retorno”.
btnArquivoNISConsultaLinkButton⚪ NãoBotão para navegar para a tela “Consulta”.
pnlValidacaoPesquisarPanel⚪ NãoContém o vsValidacaoPesquisar.
vsValidacaoPesquisarEmployerValidationSummary⚪ NãoExibe mensagens de validação para o grupo “Pesquisar”.
upnGeralUpdatePanel⚪ NãoAtualiza dinamicamente o conteúdo da tela.
lblFilialEmployer:Label⚪ NãoRótulo para o campo txtFilial.
txtFilialEmployer:LocalizarFilial⚪ NãoCampo para selecionar a filial. Dispara txtFilial_OnValorAlterado ao ter o valor alterado.
divContratoHtmlGenericControl⚪ NãoContêiner para o campo txtContrato, visibilidade controlada por regra de negócio.
lblContratoEmployer:Label⚪ NãoRótulo para o campo txtContrato.
txtContratoEmployer:LocalizarContrato⚪ NãoCampo para selecionar o contrato. Tipo de contrato “ContratoFilho”. Não considera contrato inativo. Dispara txtContrato_OnValorAlterado ao ter o valor alterado.
divDepartamentoHtmlGenericControl⚪ NãoContêiner para o campo txtDepartamento, visibilidade controlada por regra de negócio.
lblDepartamentoEmployer:Label⚪ NãoRótulo para o campo txtDepartamento.
txtDepartamentoEmployer:LocalizarDepartamento⚪ NãoCampo para selecionar o departamento. Dispara txtDepartamento_OnValorAlterado ao ter o valor alterado.
divCentroResultadoHtmlGenericControl⚪ NãoContêiner para o campo txtCentroResultado, visibilidade controlada por regra de negócio.
lblCentroResultadoEmployer:Label⚪ NãoRótulo para o campo txtCentroResultado.
txtCentroResultadoEmployer:LocalizarCentroResultado⚪ NãoCampo para selecionar o centro de resultado. Tipo “Analitico”. Dispara txtCentroResultado_OnValorAlterado ao ter o valor alterado.
lblEmpregadoEmployer:Label⚪ NãoRótulo para o campo txtEmpregado.
txtEmpregadoEmployer:LocalizarEmpregado⚪ NãoCampo para selecionar o empregado. Dispara txtEmpregado_OnValorAlterado ao ter o valor alterado.
btnPesquisarEmployer:Button⚪ NãoBotão para iniciar a pesquisa de empregados. ValidationGroup “Pesquisar”.
ddlSelecaoGridEmpregadosSemNISDropDownList⚪ NãoDropdown para ações em massa na grid (Marcar/Desmarcar todos). AutoPostBack habilitado.
gvwEmpregadosSemNISEmployer:EmployerGrid⚪ NãoGridView que exibe os empregados sem NIS/PIS cadastrado. Permite paginação e ordenação.
gvwEmpregadosSemNIS.Columns[0]BoundField⚪ NãoColuna “Filial” (DataField: Ape_Filial, SortExpression: Ape_Filial).
gvwEmpregadosSemNIS.Columns[1]BoundField⚪ NãoColuna “Contrato” (DataField: Contrato, SortExpression: Contrato). Visibilidade controlada por regra de negócio.
gvwEmpregadosSemNIS.Columns[2]BoundField⚪ NãoColuna “Departamento” (DataField: Des_Departamento, SortExpression: Des_Departamento). Visibilidade controlada por regra de negócio.
gvwEmpregadosSemNIS.Columns[3]BoundField⚪ NãoColuna “Centro Resultado” (DataField: Centro_Resultado, SortExpression: Centro_Resultado). Visibilidade controlada por regra de negócio.
gvwEmpregadosSemNIS.Columns[4]BoundField⚪ NãoColuna “CPF” (DataField: Num_CPF, SortExpression: Num_CPF).
gvwEmpregadosSemNIS.Columns[5]BoundField⚪ NãoColuna “Matrícula” (DataField: Num_Matricula, SortExpression: Num_Matricula).
gvwEmpregadosSemNIS.Columns[6]BoundField⚪ NãoColuna “Empregado” (DataField: Nme_Pessoa, SortExpression: Nme_Pessoa).
ckbSelecionarEmpregadosSemNISEmployer:ControlCheckBox⚪ NãoCheckBox dentro da coluna “Ação” da grid para selecionar empregados individualmente. Dispara ckbSelecionarEmpregadosSemNIS_OnCheckedChanged.
btnGerarArquivoNISEmployer:Button⚪ NãoBotão para gerar o arquivo de cadastramento NIS/PIS. ValidationGroup “GerarArquivo”.
btnExcluirSelecionadosEmployer:Button⚪ NãoBotão para excluir os empregados selecionados na grid.
btnLimparEmployer:Button⚪ NãoBotão para limpar os campos de filtro e a grid.
btnVoltarEmployer:Button⚪ NãoBotã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 de divContrato)

  • Departamento (txtDepartamento, dentro de divDepartamento)

  • Centro de Resultado (txtCentroResultado, dentro de divCentroResultado)

  • 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.GerarArquivoCadastramentoNIS para 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):
  • divContrato e divDepartamento são ocultados (display: none).
  • divCentroResultado é exibido (display: block).
  • As colunas “Contrato” e “Departamento” da gvwEmpregadosSemNIS são ocultadas.
  • A coluna “Centro Resultado” da gvwEmpregadosSemNIS é exibida.
  • Caso contrário (utiliza “Contrato e Departamento”):
  • divContrato e divDepartamento são exibidos (display: block).
  • divCentroResultado é ocultado (display: none).
  • As colunas “Contrato” e “Departamento” da gvwEmpregadosSemNIS sã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 ddlSelecaoGridEmpregadosSemNIS e o botão btnExcluirSelecionados são visíveis apenas se houver empregados na gvwEmpregadosSemNIS. (ArquivoNISGerar.aspx.cs - CarregarGridViewEmpregadosSemNISCadastrado)

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

  • Exclusão de Empregados Selecionados: O método ExcluirEmpregadosSemNISCadastradoSelecionados remove os IDs dos empregados selecionados da lista LstEmpregadosSemNIS. 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):
  1. Configura as permissões do usuário na tela (ConfigurarPermissoesTela).
  2. Configura a visibilidade dos campos de filtro com base no tipo de estrutura gerencial da empresa (ConfigurarPorTipoEstruturaGerencial).
  3. Define o IdEmpresa e IdUsuario para os UserControls de localização (Filial, Contrato, Centro de Resultado, Empregado).
  4. Limpa todos os campos de filtro e a grid (LimparCampos). (ArquivoNISGerar.aspx.cs - Inicializar)
  • Processo de Geração de Arquivo NIS (Salvar):
  1. Cria uma nova instância de LoteArquivoNIS.
  2. Associa a empresa logada (CodigoEmpresa) e o usuário gerador (CodigoUsuarioLogado).
  3. Define o StatusLote como “Inserido” (BLL.Enumeradores.StatusLote.Inserido).
  4. Para cada idEmpregado na lista LstEmpregadosSemNIS:
  • Carrega o objeto Empregado completo. Se não for possível, o empregado é ignorado.
  • Completa o objeto PessoaFisica do empregado.
  • Cria uma nova instância de LoteArquivoNISEmpregado.
  • Associa o Empregado, NumeroCPF (da pessoa física), IdUsuarioGerador e StatusLoteArquivoNISEmpregado como “Aguardando Geração Arquivo” (BLL.Enumeradores.StatusLoteArquivoNISEmpregado.AguardandoGeracaoArquivo).
  • Adiciona o LoteArquivoNISEmpregado a uma lista.
  1. Chama LoteArquivoNISEmpregado.Salvar para persistir o LoteArquivoNIS e a lista de LoteArquivoNISEmpregado, retornando o pNumeroLote.
  2. Inicia um processo assíncrono para a geração do arquivo:
  • Cria uma ParametroExecucaoCollection com pNomeCentroServico, pIdEmpresa, pIdUsuario e pIdLoteArquivoNIS.
  • Chama ProcessoAssincrono.IniciarAtividade utilizando o plugin ArquivoCadastramentoNISGerar e PluginSaidaArquivo.
  1. Se o processo assíncrono for iniciado com sucesso, exibe uma mensagem de sucesso com o número do lote e limpa os campos.
  2. Em caso de exceção, a transação é revertida. (ArquivoNISGerar.aspx.cs - Salvar)
  • Limpeza de Campos (LimparCampos):
  1. Limpa as listas LstEmpregadosSemNIS e LstEmpregadosSemNISSelecionados.
  2. Reseta os valores selecionados de todos os UserControls de localização (txtFilial, txtContrato, txtDepartamento, txtCentroResultado, txtEmpregado) para null.
  3. Desabilita o campo txtDepartamento.
  4. Recarrega a gvwEmpregadosSemNIS. (ArquivoNISGerar.aspx.cs - LimparCampos)
  • Geração de Nome de Arquivo NIS (LoteArquivoNIS): O nome do arquivo é formatado como CADASTRONIS.YYMMDD.SXX, onde YYMMDD é a data atual e XX é 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ção Inicializar() é chamada apenas no primeiro carregamento da página (não é um postback). (ArquivoNISGerar.aspx.cs - Page_Load)
  • Pesquisa de Empregados (btnPesquisar_OnClick):
  1. Limpa a lista de empregados selecionados (LstEmpregadosSemNISSelecionados).
  2. Chama Empregado.ListarIdEmpregadoParaCadastramentoNIS para popular LstEmpregadosSemNIS com base nos filtros informados (usuário logado, empresa, filial, contrato, departamento, centro de resultado, empregado).
  3. Chama CarregarGridViewEmpregadosSemNISCadastrado para 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 LstEmpregadosSemNIS para LstEmpregadosSemNISSelecionados.
  • “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 lista LstEmpregadosSemNISSelecionados com base no estado do checkbox. (ArquivoNISGerar.aspx.cs - ckbSelecionarEmpregadosSemNIS_OnCheckedChanged)
  • Paginação e Ordenação da Grid (gvwEmpregadosSemNIS_OnCarregarGrid): A grid é recarregada chamando CarregarGridViewEmpregadosSemNISCadastrado quando 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 do Idf_Empregado na lista LstEmpregadosSemNISSelecionados. (ArquivoNISGerar.aspx.cs - gvwEmpregadosSemNIS_OnRowDataBound)
  • Redirecionamento do Botão Limpar (btnLimpar_OnClick): Redireciona o usuário para a própria tela ArquivoNISGerar.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 tela MenuMaisOpcoes.aspx?ID=9. (ArquivoNISGerar.aspx.cs - btnVoltar_OnClick)
  • Atualização de Filtros Encadeados (UserControls):
  • txtFilial_OnValorAlterado: Ao alterar a filial, atualiza o IdFilial dos controles txtContrato, txtCentroResultado e txtEmpregado. Define o foco para txtContrato ou txtCentroResultado dependendo da habilitação.
  • txtContrato_OnValorAlterado: Ao alterar o contrato:
  • Carrega o objeto Contrato e, se houver, a FilialGestora para atualizar txtFilial.IdFilialSelecionada e txtContrato.IdFilial.
  • Atualiza o IdContrato de txtDepartamento e habilita/desabilita txtDepartamento com base na seleção.
  • Atualiza IdFilial, IdContrato e IdCentroDeResultado de txtEmpregado.
  • Define o foco para txtDepartamento ou txtEmpregado.
  • txtDepartamento_OnValorAlterado: Ao alterar o departamento, atualiza o IdDepartamento de txtEmpregado e define o foco para txtEmpregado.
  • txtCentroResultado_OnValorAlterado: Ao alterar o centro de resultado:
  • Carrega o objeto CentroResultado e, se houver, a Filial para atualizar txtFilial.IdFilialSelecionada e txtCentroResultado.IdFilial.
  • Atualiza IdFilial e IdCentroDeResultado de txtEmpregado.
  • Define o foco para txtEmpregado.
  • txtEmpregado_OnValorAlterado: Ao alterar o empregado:
  • Carrega o objeto Empregado completo, incluindo Contrato, CentroResultado, EmpregadoDepartamento e EmpregadoFuncaoExclusiva.
  • Atualiza IdFilialSelecionada de txtFilial com base no CentroResultado ou Contrato do empregado.
  • Atualiza IdFilial e IdContratoSelecionado de txtContrato.
  • Atualiza IdContrato, IdDepartamentoSelecionado e habilitação de txtDepartamento.
  • Atualiza IdFilial e IdCentroResultadoSelecionado de txtCentroResultado.
  • Atualiza IdFilial, IdContrato e IdDepartamento de txtEmpregado.
  • 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

  1. Page_Load (ArquivoNISGerar.aspx.cs) é acionado no primeiro carregamento da página.
  2. Chama Inicializar() para configurar o estado inicial da tela.
  3. Inicializar() chama ConfigurarPermissoesTela() para verificar e aplicar as permissões do usuário.
  4. Inicializar() chama ConfigurarPorTipoEstruturaGerencial() para ajustar a interface com base na configuração da empresa.
  5. Inicializar() define IdEmpresa e IdUsuario para os UserControls de localização (txtFilial, txtContrato, txtCentroResultado, txtEmpregado).
  6. Inicializar() chama LimparCampos() para resetar os filtros e a grid.

6.2. Pesquisar Empregados

  1. O usuário preenche os campos de filtro (Filial, Contrato, Departamento, Centro de Resultado, Empregado).
  2. O usuário clica em btnPesquisar.
  3. btnPesquisar_OnClick (ArquivoNISGerar.aspx.cs) é acionado.
  4. LstEmpregadosSemNISSelecionados é limpa.
  5. PesquisarEmpregadosSemNISCadastrado() é chamado.
  6. Empregado.ListarIdEmpregadoParaCadastramentoNIS (Empregado_P3.cs) é chamado com os filtros para obter a lista de IDs de empregados sem NIS.
  7. CarregarGridViewEmpregadosSemNISCadastrado() é chamado.
  8. Empregado.ListarInformacoesEmpregadoParaCadastramentoNIS (Empregado_P3.cs) é chamado com a lista de IDs para obter os dados detalhados dos empregados.
  9. UIHelper.CarregarGridView (UIHelper.cs) é utilizado para popular gvwEmpregadosSemNIS.
  10. A visibilidade de ddlSelecaoGridEmpregadosSemNIS e btnExcluirSelecionados é ajustada com base na quantidade de registros na grid.

6.3. Seleção de Empregados na Grid

  1. Seleção em Massa: O usuário interage com ddlSelecaoGridEmpregadosSemNIS.
  • ddlSelecaoGridEmpregadosSemNIS_OnSelectedIndexChanged (ArquivoNISGerar.aspx.cs) é acionado.
  • A lógica interna do método atualiza LstEmpregadosSemNISSelecionados com base na opção escolhida (marcar/desmarcar todos, marcar/desmarcar página).
  • CarregarGridViewEmpregadosSemNISCadastrado() é chamado para atualizar a exibição da grid.
  1. Seleção Individual: O usuário clica em ckbSelecionarEmpregadosSemNIS em uma linha da grid.
  • ckbSelecionarEmpregadosSemNIS_OnCheckedChanged (ArquivoNISGerar.aspx.cs) é acionado.
  • O ID do empregado da linha é adicionado ou removido de LstEmpregadosSemNISSelecionados.
  1. Renderização da Seleção: gvwEmpregadosSemNIS_OnRowDataBound (ArquivoNISGerar.aspx.cs) é acionado para cada linha da grid, marcando o ckbSelecionarEmpregadosSemNIS se o empregado estiver em LstEmpregadosSemNISSelecionados.

6.4. Excluir Empregados Selecionados

  1. O usuário seleciona empregados na grid.
  2. O usuário clica em btnExcluirSelecionados.
  3. btnExcluirSelecionados_OnClick (ArquivoNISGerar.aspx.cs) é acionado.
  4. ExcluirEmpregadosSemNISCadastradoSelecionados() é chamado.
  5. Os IDs dos empregados em LstEmpregadosSemNISSelecionados são removidos de LstEmpregadosSemNIS.
  6. gvwEmpregadosSemNIS.MockPageIndex é resetado para 0.
  7. CarregarGridViewEmpregadosSemNISCadastrado() é chamado para atualizar a exibição da grid.

6.5. Gerar Arquivo NIS/PIS

  1. O usuário clica em btnGerarArquivoNIS.
  2. btnGerarArquivoNIS_OnClick (ArquivoNISGerar.aspx.cs) é acionado.
  3. Verifica a permissão ArquivoCadastramentoNIS.GerarArquivoCadastramentoNIS usando Util.ValidaPermissaoUsuario. Se não tiver, exibe mensagem de aviso e retorna.
  4. Verifica se LstEmpregadosSemNIS tem itens. Se não tiver, exibe mensagem de aviso e retorna.
  5. Chama Salvar(out numeroLote) para iniciar o processo de persistência e geração do arquivo.
  6. Salvar (ArquivoNISGerar.aspx.cs) inicia uma transação.
  7. Cria e persiste um objeto LoteArquivoNIS (LoteArquivoNIS_P1.cs - Save).
  8. Para cada empregado em LstEmpregadosSemNIS:
  • Carrega o Empregado e PessoaFisica.
  • Cria e persiste um LoteArquivoNISEmpregado (LoteArquivoNISEmpregado_P1.cs - Save).
  1. Chama ProcessoAssincrono.IniciarAtividade (ProcessoAssincrono.cs) para enfileirar a tarefa de geração do arquivo.
  2. A transação é comitada se tudo ocorrer bem, ou revertida em caso de erro.
  3. Exibe mensagem de sucesso com o número do lote e chama LimparCampos().

6.6. Alteração de Valores nos Filtros (UserControls)

  1. txtFilial_OnValorAlterado:
  • Atualiza IdFilial em txtContrato, txtCentroResultado, txtEmpregado.
  • Define o foco.
  1. txtContrato_OnValorAlterado:
  • Carrega Contrato.LoadObject (Contrato_P1.cs) para obter detalhes do contrato.
  • Atualiza IdFilialSelecionada em txtFilial e IdFilial em txtContrato com base na filial gestora do contrato.
  • Atualiza IdContrato em txtDepartamento e habilita/desabilita txtDepartamento.
  • Atualiza IdFilial, IdContrato e IdCentroDeResultado em txtEmpregado.
  • Define o foco.
  1. txtDepartamento_OnValorAlterado:
  • Atualiza IdDepartamento em txtEmpregado.
  • Define o foco.
  1. txtCentroResultado_OnValorAlterado:
  • Carrega CentroResultado.LoadObject (CentroResultado_P1.cs) para obter detalhes do centro de resultado.
  • Atualiza IdFilialSelecionada em txtFilial e IdFilial em txtCentroResultado com base na filial do centro de resultado.
  • Atualiza IdFilial e IdCentroDeResultado em txtEmpregado.
  • Define o foco.
  1. txtEmpregado_OnValorAlterado:
  • Carrega Empregado.LoadObject (Empregado_P1.cs) para obter detalhes do empregado.
  • Completa Contrato, CentroResultado, EmpregadoDepartamento.CarregarEmpregadoDepartamentoAtivo (EmpregadoDepartamento_P2.cs) e EmpregadoFuncaoExclusiva.CarregarEmpregadoFuncaoExclusivaAtivo (EmpregadoFuncaoExclusiva_P2.cs).
  • Atualiza IdFilialSelecionada em txtFilial com base na filial do Centro de Resultado ou Filial Gestora do Contrato do empregado.
  • Atualiza IdFilial e IdContratoSelecionado em txtContrato.
  • Atualiza IdContrato, IdDepartamentoSelecionado e habilitação em txtDepartamento.
  • Atualiza IdFilial e IdCentroResultadoSelecionado em txtCentroResultado.
  • Atualiza IdFilial, IdContrato e IdDepartamento em txtEmpregado.
  • 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 objeto CentroResultado pelo 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 objeto CentroResultado pela descrição da estrutura, empresa e filial.

  • CarregarPorEstruturaV2(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, out CentroResultado objCentroResultado, SqlTransaction pTrans = null): Carrega um objeto CentroResultado pela descrição da estrutura, empresa e filial (versão 2).

  • CarregarPorEstruturaV2(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, string pNomeCentroResultado, out CentroResultado objCentroResultado): Carrega um objeto CentroResultado pela 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 objeto Contrato pelo 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 objeto Empregado pelo 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 objeto Empresa pelo 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 de LoteArquivoNISEmpregado no 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 um EmployerGrid com uma DataTable e 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_Contrato pelo 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_Empregado pelo 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_Empregado pelo 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_NIS pelo 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 (dispara txtFilial_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 (dispara txtContrato_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 (dispara txtDepartamento_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 (dispara txtCentroResultado_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 (dispara txtEmpregado_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.IniciarAtividade enfileira 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() ou RabbitMqClient().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étodoAssinaturaPropósito
LoteArquivoNISEmpregadopublic LoteArquivoNISEmpregado()Construtor padrão da classe.
LoteArquivoNISEmpregadopublic LoteArquivoNISEmpregado(int idLoteArquivoNISEmpregado)Construtor que inicializa a instância com um ID existente, marcando-a como persistida.
GetParametersprivate List<SqlParameter> GetParameters()Prepara uma lista de parâmetros SQL para operações de INSERT/UPDATE.
SetParametersprivate void SetParameters(List<SqlParameter> parms)Preenche uma lista de parâmetros SQL com os valores da instância atual.
Insertprivate void Insert()Insere uma instância de LoteArquivoNISEmpregado no banco de dados.
Insertprivate void Insert(SqlTransaction trans)Insere uma instância de LoteArquivoNISEmpregado no banco de dados, dentro de uma transação.
Updateprivate void Update()Atualiza uma instância de LoteArquivoNISEmpregado no banco de dados.
Updateprivate void Update(SqlTransaction trans)Atualiza uma instância de LoteArquivoNISEmpregado no banco de dados, dentro de uma transação.
Savepublic void Save()Salva uma instância de LoteArquivoNISEmpregado no banco de dados (INSERT ou UPDATE).
Savepublic void Save(SqlTransaction trans)Salva uma instância de LoteArquivoNISEmpregado no banco de dados, dentro de uma transação.
Deletepublic static void Delete(int idLoteArquivoNISEmpregado)Exclui um registro de LoteArquivoNISEmpregado pelo ID.
Deletepublic static void Delete(int idLoteArquivoNISEmpregado, SqlTransaction trans)Exclui um registro de LoteArquivoNISEmpregado pelo ID, dentro de uma transação.
Deletepublic static void Delete(List<int> idLoteArquivoNISEmpregado)Exclui uma lista de registros de LoteArquivoNISEmpregado pelos IDs.
LoadDataReaderprivate static IDataReader LoadDataReader(int idLoteArquivoNISEmpregado)Retorna um IDataReader com as colunas de um registro específico.
LoadDataReaderprivate static IDataReader LoadDataReader(int idLoteArquivoNISEmpregado, SqlTransaction trans)Retorna um IDataReader com as colunas de um registro específico, dentro de uma transação.
LoadDataReaderpublic static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Retorna um IDataReader para uma consulta paginada e ordenada.
LoadObjectpublic static LoteArquivoNISEmpregado LoadObject(int idLoteArquivoNISEmpregado)Retorna uma instância de LoteArquivoNISEmpregado a partir do banco de dados.
LoadObjectpublic static LoteArquivoNISEmpregado LoadObject(int idLoteArquivoNISEmpregado, SqlTransaction trans)Retorna uma instância de LoteArquivoNISEmpregado a partir do banco de dados, dentro de uma transação.
CompleteObjectpublic bool CompleteObject()Completa os atributos da instância atual a partir do banco de dados.
CompleteObjectpublic bool CompleteObject(SqlTransaction trans)Completa os atributos da instância atual a partir do banco de dados, dentro de uma transação.
SetInstanceprivate static bool SetInstance(IDataReader dr, LoteArquivoNISEmpregado objLoteArquivoNISEmpregado)Preenche os atributos de uma instância de LoteArquivoNISEmpregado a partir de um IDataReader.
Salvarpublic static void Salvar(LoteArquivoNIS pObjLoteArquivoNIS, List<LoteArquivoNISEmpregado> pLstObjLoteArquivoNISEmpregado, out int pNumeroLote)Salva o lote de empregados para cadastramento de NIS, gerenciando a transação.
Salvarpublic 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.
ListarPorLoteArquivoNISpublic static IDataReader ListarPorLoteArquivoNIS(int pIdLoteArquivoNIS, bool? pFlgErro)Lista informações dos empregados de um lote NIS, com opção de filtrar por erro.
ListarIdLoteArquivoNISEmpregadopublic 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.
ListarInformacoesLoteArquivoNISEmpregadopublic 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.
AtualizarStatusLotepublic static void AtualizarStatusLote(int pIdLoteArquivoNIS)Atualiza o status de cada empregado dentro de um lote NIS.
LimparObservacaoEmpregadoPorLotepublic static void LimparObservacaoEmpregadoPorLote(int pIdLoteArquivoNIS)Limpa as observações salvas para cada empregado de um lote NIS.
Excluirpublic static void Excluir(int pIdLoteArquivoNISEmpregado)Exclui um registro de empregado do lote e, se for o último, exclui o lote.
Excluirpublic 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 SqlParameter predefinidos para a tabela TAB_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 SPINSERT e SPUPDATE.
  • 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 por GetParameters) e preenche os valores de cada parâmetro com os dados da instância atual de LoteArquivoNISEmpregado.
  • 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 como DBNull.Value.
  • Se a instância não estiver persistida (_persisted é falso), o parâmetro @Idf_Lote_Arquivo_NIS_Empregado é configurado como Output (para receber o ID gerado pelo banco) e _dataCadastro é definido como DateTime.Now. Caso contrário, é configurado como Input.
  • Stored Procedures chamadas: Nenhuma diretamente. Preenche parâmetros para SPINSERT e SPUPDATE.

Insert()

  • Lógica: Insere os dados da instância atual no banco de dados.
  1. Chama GetParameters() para obter a lista de parâmetros.
  2. Chama SetParameters() para preencher os parâmetros com os valores da instância.
  3. Abre uma conexão SQL e inicia uma transação.
  4. Executa a query SPINSERT (SQL de INSERT) usando DataAccessLayer.ExecuteNonQueryCmd.
  5. Recupera o Idf_Lote_Arquivo_NIS_Empregado gerado pelo banco (usando SCOPE_IDENTITY()) e atribui à propriedade _idLoteArquivoNISEmpregado.
  6. Define _persisted como true e _modified como false.
  7. 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 que Insert()).

Update()

  • Lógica: Atualiza os dados da instância atual no banco de dados, se houver modificações (_modified é true).
  1. Verifica se a instância foi modificada.
  2. Chama GetParameters() e SetParameters() para preparar os parâmetros.
  3. Executa a query SPUPDATE (SQL de UPDATE) usando DataAccessLayer.ExecuteNonQuery.
  4. Define _modified como false.
  • 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 que Update()).

Save()

  • Lógica: Método público para persistir a instância.
  • Se a instância não estiver persistida (_persisted é falso), chama Insert().
  • 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), chama Insert(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_Empregado com base no ID fornecido.
  1. Cria uma lista de parâmetros e adiciona @Idf_Lote_Arquivo_NIS_Empregado.
  2. Atribui o idLoteArquivoNISEmpregado ao parâmetro.
  3. Executa a query SPDELETE (SQL de DELETE) usando DataAccessLayer.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 que Delete(int idLoteArquivoNISEmpregado)).

Delete(List idLoteArquivoNISEmpregado)

  • Lógica: Exclui múltiplos registros da tabela TAB_Lote_Arquivo_NIS_Empregado com base em uma lista de IDs.
  1. Constrói uma query SQL dinâmica para a cláusula WHERE IN (...).
  2. Para cada ID na lista, cria um parâmetro @parmX e adiciona à lista de parâmetros.
  3. 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 de idLoteArquivoNISEmpregado.

LoadDataReader(int idLoteArquivoNISEmpregado)

  • Lógica: Retorna um IDataReader contendo os dados de um único registro de LoteArquivoNISEmpregado.
  1. Cria uma lista de parâmetros e adiciona @Idf_Lote_Arquivo_NIS_Empregado.
  2. Atribui o idLoteArquivoNISEmpregado ao parâmetro.
  3. Executa a query SPSELECTID (SQL de SELECT) usando DataAccessLayer.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.
  1. Calcula os índices de início e fim para a paginação.
  2. Constrói duas queries SQL dinâmicas:
  • SPSELECTPAG: Seleciona os dados com ROW_NUMBER() para paginação, ordenando pela colunaOrdenacao e direcaoOrdenacao.
  • SPSELECTCOUNT: Conta o total de registros para a paginação.
  1. Executa SPSELECTCOUNT para obter o totalRegistros.
  2. Executa SPSELECTPAG para obter o IDataReader com 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 LoteArquivoNISEmpregado a partir do banco de dados.
  1. Chama LoadDataReader(idLoteArquivoNISEmpregado) para obter os dados.
  2. Cria uma nova instância de LoteArquivoNISEmpregado.
  3. Chama SetInstance() para preencher a nova instância com os dados do IDataReader.
  4. Se SetInstance retornar true (registro encontrado), retorna a instância preenchida.
  5. Se nenhum registro for encontrado, lança uma RecordNotFoundException.
  • Stored Procedures chamadas: SPSELECTID (via LoadDataReader).

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 (via LoadDataReader).

CompleteObject()

  • Lógica: Preenche os atributos da instância atual de LoteArquivoNISEmpregado a partir do banco de dados, usando o _idLoteArquivoNISEmpregado da própria instância.
  1. Chama LoadDataReader(this._idLoteArquivoNISEmpregado) para obter os dados.
  2. Chama SetInstance() para preencher a instância atual com os dados.
  3. Retorna true se o objeto foi completado com sucesso, false caso contrário.
  • Stored Procedures chamadas: SPSELECTID (via LoadDataReader).

CompleteObject(SqlTransaction trans)

  • Lógica: Similar ao CompleteObject() sem transação, mas utiliza uma transação SQL já existente (trans).
  • Stored Procedures chamadas: SPSELECTID (via LoadDataReader).

SetInstance(IDataReader dr, LoteArquivoNISEmpregado objLoteArquivoNISEmpregado)

  • Lógica: Método auxiliar para mapear os dados de um IDataReader para as propriedades de um objeto LoteArquivoNISEmpregado.
  1. Tenta ler a primeira linha do IDataReader.
  2. Se houver uma linha:
  • Atribui os valores das colunas do IDataReader às propriedades correspondentes do objLoteArquivoNISEmpregado.
  • Instancia objetos LoteArquivoNIS, Empregado e StatusLoteArquivoNISEmpregado com seus respectivos IDs.
  • Trata Des_Mensagem para DBNull.Value.
  • Define _persisted como true e _modified como false.
  • Retorna true.
  1. Se não houver linhas, retorna false.
  2. Em caso de erro, relança a exceção. Garante que o IDataReader seja descartado no finally.

Salvar(LoteArquivoNIS pObjLoteArquivoNIS, List pLstObjLoteArquivoNISEmpregado, out int pNumeroLote)

  • Lógica: Salva um objeto LoteArquivoNIS e uma lista de objetos LoteArquivoNISEmpregado em uma única transação.
  1. Abre uma conexão SQL e inicia uma transação.
  2. Chama a sobrecarga Salvar(SqlTransaction pTrans, ...) para executar a lógica de salvamento dentro da transação.
  3. 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) e LoteArquivoNISEmpregado.Save(pTrans).

Salvar(SqlTransaction pTrans, LoteArquivoNIS pObjLoteArquivoNIS, List pLstObjLoteArquivoNISEmpregado, out int pNumeroLote)

  • Lógica: Salva um objeto LoteArquivoNIS e uma lista de objetos LoteArquivoNISEmpregado usando uma transação SQL existente.
  1. Chama pObjLoteArquivoNIS.Save(pTrans) para persistir o objeto LoteArquivoNIS.
  2. Atribui o IdLoteArquivoNIS do objeto salvo a pNumeroLote.
  3. Itera sobre pLstObjLoteArquivoNISEmpregado:
  • Para cada objLoteArquivoNISEmpregado, associa o pObjLoteArquivoNIS a ele.
  • Chama objLoteArquivoNISEmpregado.Save(pTrans) para persistir cada item do lote.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoteArquivoNIS.Save(pTrans) e LoteArquivoNISEmpregado.Save(pTrans).

ListarPorLoteArquivoNIS(int pIdLoteArquivoNIS, bool? pFlgErro)

  • Lógica: Lista informações detalhadas dos empregados pertencentes a um lote NIS específico.
  1. Inicializa uma lista de parâmetros e adiciona @Idf_Lote_Arquivo_NIS.
  2. Define o valor de @Idf_Lote_Arquivo_NIS com pIdLoteArquivoNIS.
  3. Constrói uma cláusula WHERE dinâmica (strWhereDinamico):
  • Se pFlgErro for true, adiciona AND lane.Idf_Status_Lote_Arquivo_NIS_Empregado = [FinalizadoComErro].
  • Se pFlgErro for false, adiciona AND lane.Idf_Status_Lote_Arquivo_NIS_Empregado != [FinalizadoComErro].
  1. Executa a query SELLISPORLOTEARQUIVONIS concatenada com strWhereDinamico usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas:
  • SELLISPORLOTEARQUIVONIS: SQL de SELECT que une TAB_Lote_Arquivo_NIS_Empregado, plataforma.TAB_Status_Lote_Arquivo_NIS_Empregado, TAB_Empregado e TAB_Pessoa_Fisica para 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 LoteArquivoNISEmpregado com base em diversos critérios de filtro.
  1. Inicializa uma lista de parâmetros SQL e uma lista para armazenar os IDs resultantes.
  2. Adiciona todos os parâmetros de filtro (@Idf_Usuario, @Idf_Empresa, etc.) à lista de parâmetros.
  3. Preenche os valores dos parâmetros, tratando nullables com DBNull.Value. Para pDtaGeracaoFinal, adiciona um dia para incluir o dia inteiro.
  4. Constrói uma cláusula WHERE dinâ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ção TAB_SF_Usuario_Acesso.
  1. Executa a query SPSELIDLOTEARQUIVONISEMPREGADO formatada com a strWhereDinamico usando DataAccessLayer.ExecuteReaderDs.
  2. Itera sobre as linhas do DataTable resultante e adiciona os Idf_Lote_Arquivo_NIS_Empregado à lista de retorno.
  • Stored Procedures chamadas:
  • SPSELIDLOTEARQUIVONISEMPREGADO: SQL de SELECT que une TAB_Lote_Arquivo_NIS_Empregado, TAB_Lote_Arquivo_NIS, TAB_Empregado, TAB_Contrato e TAB_Centro_Resultado para buscar IDs de empregados no lote.
  • @Idf_Empresa: ID da empresa.
  • @Idf_Usuario: ID do usuário (usado na função TAB_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.
  1. Inicializa variáveis para a cláusula WHERE, queries paginadas e de contagem, e lista de parâmetros.
  2. Calcula os índices de início e fim para a paginação.
  3. Constrói a cláusula WHERE:
  • Se pLstIdLoteArquivoNISEmpregado não for nula e tiver itens, cria uma cláusula IN com os IDs.
  • Caso contrário, define WHERE 1 = 0 para não retornar registros.
  1. Constrói a queryPaginada usando SPSELLOTEARQUIVONISEMPREGADO e a cláusula WHERE, aplicando ROW_NUMBER() para ordenação e paginação.
  2. Constrói a queryCount para obter o total de registros.
  3. Executa queryCount para obter pTotalRegistros.
  4. Executa queryPaginada para retornar o SqlDataReader com os dados da página atual.
  • Stored Procedures chamadas:
  • SPSELLOTEARQUIVONISEMPREGADO: SQL de SELECT que une TAB_Lote_Arquivo_NIS_Empregado, plataforma.TAB_Status_Lote_Arquivo_NIS_Empregado, TAB_Lote_Arquivo_NIS, TAB_Empregado, TAB_Pessoa_Fisica, TAB_Contrato, TAB_Centro_Resultado e TAB_Filial para obter informações detalhadas dos empregados no lote.

AtualizarStatusLote(int pIdLoteArquivoNIS)

  • Lógica: Atualiza o status dos empregados dentro de um lote NIS.
  1. Cria uma lista de parâmetros e adiciona @Idf_Lote_Arquivo_NIS.
  2. Define o valor de @Idf_Lote_Arquivo_NIS com pIdLoteArquivoNIS.
  3. Executa a query SPUPDATESTATUSLOTE usando DataAccessLayer.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.
  1. Cria uma lista de parâmetros e adiciona @Idf_Lote_Arquivo_NIS.
  2. Define o valor de @Idf_Lote_Arquivo_NIS com pIdLoteArquivoNIS.
  3. Executa a query SPUPDATELIMPAROBSERVACAOEMPREGADOPORLOTE usando DataAccessLayer.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.
  1. Abre uma conexão SQL e inicia uma transação.
  2. Chama a sobrecarga Excluir(SqlTransaction pTrans, ...) para executar a lógica de exclusão dentro da transação.
  3. 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.
  1. Cria uma lista de parâmetros e adiciona @Idf_Lote_Arquivo_NIS_Empregado.
  2. Define o valor de @Idf_Lote_Arquivo_NIS_Empregado com pIdLoteArquivoNISEmpregado.
  3. Executa a query SPDELETEEDELETELOTE usando DataAccessLayer.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

NomeParâmetrosPropó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_EmpregadoAtualiza um registro existente na tabela TAB_Lote_Arquivo_NIS_Empregado.
SPDELETE@Idf_Lote_Arquivo_NIS_EmpregadoExclui um registro da tabela TAB_Lote_Arquivo_NIS_Empregado pelo ID.
SPSELECTID@Idf_Lote_Arquivo_NIS_EmpregadoSeleciona todas as colunas de um registro da tabela TAB_Lote_Arquivo_NIS_Empregado pelo ID.
SELLISPORLOTEARQUIVONIS@Idf_Lote_Arquivo_NISLista 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_NISLista 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.
SPSELLOTEARQUIVONISEMPREGADONenhum (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_NISAtualiza 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_NISDefine a coluna Des_Mensagem como NULL para todos os empregados de um lote NIS.
SPDELETEEDELETELOTE@Idf_Lote_Arquivo_NIS_EmpregadoExclui 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étodoAssinaturaPropósito
Empregadopublic Empregado()Construtor padrão da classe.
Empregadopublic Empregado(int idEmpregado)Construtor que inicializa a instância com um ID existente, marcando-a como persistida.
GetParametersprivate List<SqlParameter> GetParameters()Prepara uma lista de parâmetros SQL para operações de INSERT/UPDATE.
SetParametersprivate void SetParameters(List<SqlParameter> parms)Preenche uma lista de parâmetros SQL com os valores da instância atual.
Insertprivate void Insert()Insere uma instância de Empregado no banco de dados.
Insertprivate void Insert(SqlTransaction trans)Insere uma instância de Empregado no banco de dados, dentro de uma transação.
Updateprivate void Update()Atualiza uma instância de Empregado no banco de dados.
Updateprivate void Update(SqlTransaction trans)Atualiza uma instância de Empregado no banco de dados, dentro de uma transação.
Savepublic void Save()Salva uma instância de Empregado no banco de dados (INSERT ou UPDATE).
Savepublic void Save(SqlTransaction trans)Salva uma instância de Empregado no banco de dados, dentro de uma transação.
Deletepublic static void Delete(int idEmpregado)Exclui um registro de Empregado pelo ID.
Deletepublic static void Delete(int idEmpregado, SqlTransaction trans)Exclui um registro de Empregado pelo ID, dentro de uma transação.
Deletepublic static void Delete(List<int> idEmpregado)Exclui uma lista de registros de Empregado pelos IDs.
LoadDataReaderprivate static IDataReader LoadDataReader(int idEmpregado)Retorna um IDataReader com as colunas de um registro específico.
LoadDataReaderprivate static IDataReader LoadDataReader(int idEmpregado, SqlTransaction trans)Retorna um IDataReader com as colunas de um registro específico, dentro de uma transação.
LoadDataReaderpublic static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Retorna um IDataReader para uma consulta paginada e ordenada.
LoadObjectpublic static Empregado LoadObject(int idEmpregado)Retorna uma instância de Empregado a partir do banco de dados.
LoadObjectpublic static Empregado LoadObject(int idEmpregado, SqlTransaction trans)Retorna uma instância de Empregado a partir do banco de dados, dentro de uma transação.
SetInstanceprivate static bool SetInstance(IDataReader dr, Empregado objEmpregado, bool bDispose = true)Preenche os atributos de uma instância de Empregado a partir de um IDataReader.
Listarpublic static List<Empregado> Listar()Retorna uma lista de todas as instâncias de Empregado do banco de dados.
CompleteObjectpublic bool CompleteObject()Completa os atributos da instância atual a partir do banco de dados.
CompleteObjectpublic bool CompleteObject(SqlTransaction trans)Completa os atributos da instância atual a partir do banco de dados, dentro de uma transação.
CarregarAutoCompletepublic 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.
CarregarPorMatriculaCpfpublic static bool CarregarPorMatriculaCpf(string matricula, string cpf, int idFilial, out Empregado objEmpregado)Carrega um objeto Empregado por matrícula ou CPF e filial.
CarregarEmpregadosAtivosPorPeriodopublic 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.
CarregarEmpregadosAdmitidosDemitidosPorPeriodopublic 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.
NumeroDiasFaltaspublic 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.
NumeroDiasFaltaspublic 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.
CarregarPorMatriculaCpfUsuarioAtivoInativopublic 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.
CarregarPorMatriculaCpfUsuariopublic 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.
CarregarPorMatriculaCpfUsuariopublic 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.
CarregarEmpregadoCentroResultadopublic 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.
CarregarAdmitidosPorPeriodopublic 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.
ListarAutoCompleteEmpregadopublic 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.
ListarAutoCompleteEmpregadopublic 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.
ListarEmpregadosRescisaopublic static string[] ListarEmpregadosRescisao(string prefixText, int pNumeroRegistros, Dictionary<string, string> valores)Lista empregados com rescisão para autocomplete, com filtros dinâmicos.
ListarAutoCompletepublic 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.
ListarAutoCompletepublic 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).
ListarAutoCompleteTestepublic static string[] ListarAutoCompleteTeste(int pNumeroRegistros, string pNome)Lista empregados para autocomplete de teste, filtrando por nome.
ListarAutoCompleteTipoVinculopublic 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.
ListarBeneficioEmpregadopublic 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.
ListarEmpregadoContratopublic 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.
ListarPorListapublic 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.
Listarpublic 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.
ListarEmpregadoPorContratoParcialprivate 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.
ListarEmpregadoPorContratoParcialAtivoInativoprivate 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.
ListarEmpregadoPorContratopublic 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.
ListarEmpregadoPorContratoAtivoInativopublic 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.
ListarParcialpublic 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.
ListarPorPessoaFisicapublic static List<Empregado> ListarPorPessoaFisica(PessoaFisica objPessoaFisica, SqlTransaction trans)Retorna todos os empregados ativos relacionados a uma pessoa física.
ListarPorPessoaFisicaInativopublic static List<int> ListarPorPessoaFisicaInativo(List<int> lstPessoaFisica)Retorna os IDs de empregados inativos relacionados a uma lista de pessoas físicas.
ListarPorPessoaFisicaFilialpublic static List<Empregado> ListarPorPessoaFisicaFilial(PessoaFisica objPessoaFisica, Filial objFilial, SqlTransaction trans)Retorna todos os empregados ativos relacionados a uma pessoa física e filial.
ListarPorMatriculaCpfpublic static IDataReader ListarPorMatriculaCpf(string numMatricula, string numCpf, string idFilial)Retorna dados de um empregado por matrícula ou CPF e filial.
ListarPorMatriculaContratoprivate static IDataReader ListarPorContratoMatricula(int idContrato, string numMatricula)Retorna dados de um empregado por contrato e matrícula.
Listarpublic static IDataReader Listar(string matriculaNomeCpf, string idFilial)Retorna dados de um empregado por matrícula/nome/CPF e filial.
ListarPorPessoaFisicaEmpresapublic static List<Empregado> ListarPorPessoaFisicaEmpresa(PessoaFisica objPessoaFisica, Empresa objEmpresa, SqlTransaction trans)Retorna todos os empregados ativos relacionados a uma pessoa física e empresa.
ListarEmpregadoAutoCompleteUsuariopublic static string[] ListarEmpregadoAutoCompleteUsuario(string matriculaNomeCpf, int idfUsuarioLogado, int count)Lista empregados para autocomplete, filtrando por matrícula/nome/CPF e acesso do usuário.
ListarEmpregadoAutoCompleteUsuarioEmpresapublic 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivospublic static string[] ListarEmpregadoAutoCompleteUsuarioEmpresaAtivos(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count)Lista empregados ATIVOS para autocomplete, com filtros de usuário e empresa.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialAtivospublic 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialInativospublic 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialprivate 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoAtivospublic 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoInativospublic 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoprivate 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativopublic 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialAtivoInativopublic 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContratoDepartamentoAtivoInativopublic 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.
ListarEmpregadoAutoCompleteAtivopublic static string[] ListarEmpregadoAutoCompleteAtivo(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count)Lista empregados ATIVOS para autocomplete, com filtros de usuário e empresa.
ListarEmpregadoAutoCompleteUsuarioEmpresaInativopublic 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.
ListarEmpregadoAutoCompleteUsuarioEmpresapublic static string[] ListarEmpregadoAutoCompleteUsuarioEmpresa(string matriculaNomeCpf, int idfUsuarioLogado, int idfEmpresaLogada, int count)Lista empregados para autocomplete, com filtros de usuário e empresa.
ListarPorMatriculaCpfUsuariopublic static IDataReader ListarPorMatriculaCpfUsuario(string numMatricula, string numCpf, int idfUsuarioLogado)Retorna dados de um empregado por matrícula ou CPF e acesso do usuário.
ListarPorMatriculaCpfUsuariopublic 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.
ListarPorMatriculaCpfUsuariopublic 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.
ListarPorMatriculaCpfUsuarioAtivoInativopublic 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.
ListarEmpregadosFiltroBeneficiopublic 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.
MontarQueryListarEmpregadosFiltroPagamentoBeneficioprivate 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.
MontarQueryListarEmpregadosFiltroPagamentoprivate 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.
ListarEmpregadosFiltroPagamentopublic 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).
ListarEmpregadosFiltroPagamentopublic 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.
ListarPorMatriculaCpfEmpresapublic static IDataReader ListarPorMatriculaCpfEmpresa(string numMatricula, string numCpf, string idEmpresa)Retorna dados de um empregado por matrícula ou CPF e empresa.
CarregarPorMatriculaCpfNomepublic 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_Cpfpublic static Empregado LoadObject_Por_Matricula_Cpf(string _matricula, string _cpf)Carrega um objeto Empregado por matrícula e CPF.
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFuturapublic 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFuturapublic 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.
ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFuturapublic 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.
ListarEmpregadoAutoCompleteCentroResultadopublic 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.
AdicionarItemFilaCalculoBeneficioprivate void AdicionarItemFilaCalculoBeneficio(SqlTransaction trans)Adiciona o empregado na fila de cálculo de benefício.
GerarAcessoHoleritepublic void GerarAcessoHolerite(SqlTransaction trans)Gera o acesso ao holerite para o empregado atual.
GerarAcessoHoleritepublic static void GerarAcessoHolerite(SqlTransaction trans, Empregado pObjEmpregado)Gera o acesso ao holerite para um empregado específico.
RecuperarQtdHoraMensalTotalpublic static int RecuperarQtdHoraMensalTotal(int idPessoa)Recupera a quantidade total de horas mensais de trabalho de uma pessoa física.
RecuperarPorPessoaFisicaFilialpublic static List<Empregado> RecuperarPorPessoaFisicaFilial(PessoaFisica objPessoaFisica, Filial objFilial, SqlTransaction trans)Recupera a lista de empregados de uma pessoa física em uma filial.
RecuperarPorPessoaFisicaEmpresapublic static List<Empregado> RecuperarPorPessoaFisicaEmpresa(PessoaFisica objPessoaFisica, Empresa objEmpresa, SqlTransaction trans)Recupera a lista de empregados de uma pessoa física em uma empresa.
RecuperarEmpregadosAtivosPorFilialpublic static DataTable RecuperarEmpregadosAtivosPorFilial(int idfFilial, SqlTransaction trans)Recupera um DataTable com empregados ativos de uma filial.
RecuperarListaEmpregadosAtivosPorFilialpublic static List<Empregado> RecuperarListaEmpregadosAtivosPorFilial(SqlTransaction trans, int idfFilial)Recupera uma lista de objetos Empregado ativos de uma filial.
ListarEmpregadosDecimoTerceiropublic 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.
ListarEmpregadosDecimoTerceiroLancamentopublic 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.
VerificaAdiantamentoDecimoTerceiroPagamentopublic static bool VerificaAdiantamentoDecimoTerceiroPagamento(int IdEmpregado)Verifica se um empregado possui adiantamento de 13º salário com pagamento pendente.
ListarEmpregadosAtivosPorFilialpublic 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.
ListarIdsEmpregadosAtivosPorFilialpublic static List<int> ListarIdsEmpregadosAtivosPorFilial(int idfFilial)Lista os IDs de empregados ativos por filial.
ListarEmpregadosAtivosDecimoTerceiropublic 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.
RecuperarIdPorMatriculaCpfNomepublic static int RecuperarIdPorMatriculaCpfNome(string matricula, string nome, string cpf)Recupera o ID de um empregado por matrícula, nome e CPF.
VerificarSequenciaMatriculapublic static int VerificarSequenciaMatricula(int tipoBusca, Filial filial)Recupera a próxima sequência de matrícula disponível (por empresa ou filial).
VerificaSequenciaMatriculaEmpresaprivate static int VerificaSequenciaMatriculaEmpresa(int idEmpresa)Recupera a última matrícula usada em uma empresa.
VerificaSequenciaMatriculaFilialprivate static int VerificaSequenciaMatriculaFilial(int idFilial)Recupera a última matrícula usada em uma filial.
VerificarSequenciaFichaRegistropublic static int VerificarSequenciaFichaRegistro(int tipoBusca, Filial filial)Recupera a próxima sequência de ficha de registro disponível (por empresa ou filial).
VerificaSequenciaFichaRegistroEmpresaprivate static int VerificaSequenciaFichaRegistroEmpresa(int idEmpresa)Recupera a última ficha de registro usada em uma empresa.
VerificaSequenciaFichaRegistroFilialprivate static int VerificaSequenciaFichaRegistroFilial(int idFilial)Recupera a última ficha de registro usada em uma filial.
VerificarMatriculapublic static bool VerificarMatricula(string numeroMatricula, int tipoBusca, Filial filial, int? idEmpregado)Verifica a existência de uma matrícula (por empresa ou filial).
VerificaMatriculaEmpresaprivate static bool VerificaMatriculaEmpresa(string numeroMatricula, int idEmpresa, int? idEmpregado)Verifica a existência de uma matrícula em uma empresa.
VerificaMatriculaFilialpublic static bool VerificaMatriculaFilial(string numeroMatricula, int idFilial, int? idEmpregado)Verifica a existência de uma matrícula em uma filial.
VerificarFichaRegistropublic static bool VerificarFichaRegistro(string numeroFichaRegistro, int tipoBusca, Filial filial, int? idEmpregado)Verifica a existência de uma ficha de registro (por empresa ou filial).
VerificaFichaRegistroEmpresaprivate static bool VerificaFichaRegistroEmpresa(string numeroFichaRegistro, int idEmpresa, int? idEmpregado)Verifica a existência de uma ficha de registro em uma empresa.
VerificaFichaRegistroFilialprivate static bool VerificaFichaRegistroFilial(string numeroFichaRegistro, int idFilial, int? idEmpregado)Verifica a existência de uma ficha de registro em uma filial.
VerificarContratopublic static bool VerificarContrato(string numeroContrato)Verifica a existência de um contrato pelo código.
VerificarDepartamentopublic static bool VerificarDepartamento(string numeroDepartamento)Verifica a existência de um departamento pelo código.
VerificarRecontratacaopublic 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.
VerificarFolhaPagapublic static bool VerificarFolhaPaga(int IdEmpregado, DateTime DtaInicio, DateTime DtaFinal)Verifica se um empregado possui folha paga em um determinado período.
Inativarpublic static void Inativar(int idEmpregado)Inativa um empregado.
Inativarpublic static void Inativar(int idEmpregado, SqlTransaction trans)Inativa um empregado dentro de uma transação.
DeleteMemoriaCalculoLogTemppublic static void DeleteMemoriaCalculoLogTemp(int idEmpregado, SqlTransaction trans)Exclui registros temporários de log de memória de cálculo para um empregado.
ExisteEmpregadoContratopublic static bool ExisteEmpregadoContrato(int idContrato)Verifica se existe algum empregado vinculado a um contrato.
ExisteEmpregadoAtivoContratopublic static bool ExisteEmpregadoAtivoContrato(int idContrato)Verifica se existe algum empregado ATIVO vinculado a um contrato.
ExisteEmpregadoContratoAtivopublic static bool ExisteEmpregadoContratoAtivo(PessoaFisica objPessoaFisica, Contrato objContrato)Verifica se existe um empregado ativo para uma pessoa física e contrato específicos.
ExisteEmpregadoAtivopublic 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.
ExisteEmpregadoAtivopublic static bool ExisteEmpregadoAtivo(decimal pCpf, int pIdEmpresa)Verifica se existe um empregado ativo com um CPF e empresa específicos.
ExisteEmpregadoAtivopublic 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.
ExisteEstadopublic static bool ExisteEstado(string estado)Verifica se um estado existe na tabela de estados.
ExisteCPFcomMatriculapublic static bool ExisteCPFcomMatricula(long cpf, string matricula)Verifica se existe um CPF com uma matrícula específica.
ExisteCPFpublic static bool ExisteCPF(long cpf)Verifica se um CPF existe na tabela de pessoas físicas.
ExisteMatriculapublic static bool ExisteMatricula(string matricula)Verifica se uma matrícula existe para um empregado ativo.
ExisteEmpregadoAtivopublic static bool ExisteEmpregadoAtivo(int IdPessoaFisica)Verifica se existe um empregado ativo para uma pessoa física.
Clonepublic object Clone()Cria uma cópia superficial da instância atual de Empregado.
RecuperarSomaEncargosFPASpublic decimal RecuperarSomaEncargosFPAS()Recupera a soma dos encargos FPAS para o empregado.
RecuperarFPASpublic static void RecuperarFPAS(Empregado objEmpregado, out FPASAliquota objFPASAliquota, SqlTransaction trans)Recupera a alíquota FPAS para um empregado, dentro de uma transação.
RecuperarFPASpublic static void RecuperarFPAS(Empregado objEmpregado, out FPASAliquota fpasEscolhido)Recupera a alíquota FPAS para um empregado, gerenciando a transação.
RecuperarTipoVinculopublic static int RecuperarTipoVinculo(int idEmpregado)Recupera o ID do tipo de vínculo de um empregado.
RecuperarFilialGestoraPeriodoCalculopublic 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.
AtualizaNovaDataAdmissaoEmppublic 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).
ListarEmpAltSalFuncpublic 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.
CarregarEmpAltSalFuncpublic 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.
AlterarFuncaoSalarioEmpLotepublic 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.
AlterarFuncaoEmpregadospublic 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.
AlterarSalarioEmpregadospublic 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.
NovoSalarioEmpregadoprivate 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.
NovoSalarioEmpregadoprivate 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.
NovoSalarioEmpregadoAdmissaoprivate void NovoSalarioEmpregadoAdmissao(Salario objSalarioAtual, SqlTransaction trans, decimal novoSalario, int idfUsuario)Atualiza o valor do salário de admissão de um empregado.
LoteAlteracaoEmpregadoprivate 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).
LoteAlteracaoEmpregadoprivate 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.
ListarEmpregadosAlteracaoSalarioFuncaopublic 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.
TabelaErrosAlteracaoSalarioFuncaoprivate void TabelaErrosAlteracaoSalarioFuncao(DataSet ds, string nomeTabela)Cria a estrutura de um DataTable para registrar erros de alteração de salário/função.
VerificarPessoaFisicaEstaEmpregagopublic static string[] VerificarPessoaFisicaEstaEmpregago(int idPessoaFisica, int idEmpresaLogada)Verifica se uma pessoa física está empregada e retorna dados do contrato.
VerificarDataAdmissaoValidaprivate bool VerificarDataAdmissaoValida()Verifica se a data de admissão está no período de cálculo atual ou no próximo.
VerificarUtilizaMatriculaAlfanumericaprivate bool VerificarUtilizaMatriculaAlfanumerica(SqlTransaction trans, Empresa empresa, Filial filial, Contrato contrato)Verifica se a empresa/filial/contrato utiliza matrícula alfanumérica.
VerificarGeracaoMatriculaprivate bool VerificarGeracaoMatricula(SqlTransaction trans, Empresa empresa, Filial filial, Contrato contrato)Verifica se a geração de matrícula é automática (por transação).
VerificarGeracaoMatriculaprivate bool VerificarGeracaoMatricula(Empresa empresa, Filial filial, Contrato contrato)Verifica se a geração de matrícula é automática.
VerificarGeracaoFichaRegistroprivate bool VerificarGeracaoFichaRegistro(SqlTransaction trans, Empresa empresa, Filial filial, Contrato contrato)Verifica se a geração de ficha de registro é automática (por transação).
VerificarGeracaoFichaRegistroprivate bool VerificarGeracaoFichaRegistro(Empresa empresa, Filial filial, Contrato contrato)Verifica se a geração de ficha de registro é automática.
GerarMatriculaAutomaticaprivate int GerarMatriculaAutomatica(int idContrato, SqlTransaction trans)Gera a próxima matrícula automática para um contrato.
GerarFichaRegistroAutomaticaprivate int GerarFichaRegistroAutomatica(int idContrato, SqlTransaction trans)Gera a próxima ficha de registro automática para um contrato.
ListarMatriculasOuFichasExistentespublic 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.
AdicionarFilaDeCalculopublic void AdicionarFilaDeCalculo(SqlTransaction trans, int idfLote = 0)Adiciona o empregado na fila de cálculo (geral e benefício).
AdicionarFilaDeCalculopublic void AdicionarFilaDeCalculo(SqlTransaction trans, int? idUsuario)Adiciona o empregado na fila de cálculo (geral e benefício), com ID de usuário opcional.
VerificarPrimeiroEmpregopublic static bool VerificarPrimeiroEmprego(int idPessoaFisica)Verifica se é o primeiro emprego de uma pessoa física.
AlterarSalarioEmpregados2public 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.
AlterarSalarioPosExperienciaprivate 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.
AlterarSalarioPeloMotivo1ou2private 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).
CalcularValorSalarioprivate 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).
VerificarPeriodoCalculoDataprivate 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.
VerificarValorSalarioprivate bool VerificarValorSalario(List<Salario> salarios, decimal valor)Verifica se um novo valor de salário é maior que os salários futuros agendados.
RegistrarErroprivate 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.
VerificarConstraintEmpregadopublic 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.
RecuperarPensionistaspublic List<Pensionista> RecuperarPensionistas()Retorna uma lista de pensionistas vinculados ao empregado.
RecuperarPensionistaspublic List<Pensionista> RecuperarPensionistas(PeriodoCalculo objPeriodoCalculo)Retorna uma lista de pensionistas vinculados ao empregado, considerando um período de cálculo.
ListarEmpregadosPorFiltroContratopublic 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.
ListarEmpregadosPorFiltroCRpublic 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.
ListarIDEmpregadosPorFiltroContratoFeriaspublic 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.
ListarIDEmpregadosPorFiltroCRpublic 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.
ListarEmpregadosFeriaspublic 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.
ListarEmpregadospublic 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.
ListarEmpregadospublic 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.
ListarIDEmpregadosPorFiltroCRFeriaspublic 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.
ListarIDEmpregadosPorFiltroContratopublic 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.
ListarIDEmpregadosDecimoTerceiroPorFiltroCRpublic 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.
ListarIDEmpregadosDecimoTerceiroPorFiltroContratopublic 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.
ExistemEmpregadomVinculadosEmpresapublic static bool ExistemEmpregadomVinculadosEmpresa(int pIdEmpresa)Verifica se existem empregados ativos vinculados a uma empresa.
ExisteMatriculaAlfanumericaPorEmpresapublic static bool ExisteMatriculaAlfanumericaPorEmpresa(int pIdEmpresa)Verifica se a empresa possui matrículas alfanuméricas cadastradas.
AlterarDataGeracaoCagedEmpregadosSeguroDesempregopublic 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.
CarregarEmpregadosAtivosPorContratoMaeFilhopublic static bool CarregarEmpregadosAtivosPorContratoMaeFilho(int idfEmpresa, int idfDepartamento, int? idfContratoMae, int? idfContrato, out DataTable dtEmpregados)Carrega empregados ativos por departamento e contrato (mãe/filho).
CarregarParaAberturaContapublic 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.
ListarInformacoesAberturaContapublic 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.
ProximoDiaUtilPorGradeEmpregadospublic 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.
ProximoDiaUtilPorEmpregadospublic static DateTime ProximoDiaUtilPorEmpregados(List<int> lstEmpregados, DateTime dta, int IdEmpresa)Calcula o próximo dia útil para uma lista de empregados, considerando feriados.
ProximoDiaUtilPorEmpregadospublic 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.
VerificaMatriculaEmpregadopublic static bool VerificaMatriculaEmpregado(int pIdEmpresa, string pMatricula)Verifica se uma matrícula já existe para um empregado ativo em uma empresa.
ListarInformacoesEmpregadosPorIdpublic static IDataReader ListarInformacoesEmpregadosPorId(string idfEmpregados)Lista informações de empregados por uma string de IDs.
ListarInformacoesEmpregadoParaRelatorioFichaFinanceirapublic 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.
CompleteAuditoriaFeriaspublic 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 SqlParameter predefinidos para a tabela TAB_Empregado. Cada parâmetro é inicializado com seu nome, tipo SQL e tamanho máximo.
  • Stored Procedures chamadas: Nenhuma diretamente. Prepara parâmetros para SPINSERT e SPUPDATE.
  • 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 SqlParameter e preenche seus valores com os dados da instância atual de Empregado.
  • Atribui valores de propriedades da instância aos parâmetros.
  • Trata valores nullables (como PrazoDuracao, DataOpcaoFGTS, etc.) definindo-os como DBNull.Value se não tiverem valor.
  • Para objetos aninhados (PessoaFisica, Contrato, TipoVinculo, etc.), utiliza apenas o Id do objeto.
  • Se a instância não estiver persistida (_persisted é falso), o parâmetro @Idf_Empregado é configurado como Output e _dataCadastro é definido como DateTime.Now. O _usuarioGerador é instanciado com o CodigoUsuario da sessão atual ou 1 se a sessão não estiver disponível.
  • Stored Procedures chamadas: Nenhuma diretamente. Preenche parâmetros para SPINSERT e SPUPDATE.

Insert()

  • Lógica: Insere os dados da instância atual no banco de dados.
  1. Chama GetParameters() e SetParameters() para preparar os parâmetros.
  2. Abre uma conexão SQL e inicia uma transação.
  3. Executa a query SPINSERT usando DataAccessLayer.ExecuteNonQueryCmd.
  4. Recupera o Idf_Empregado gerado pelo banco (usando SCOPE_IDENTITY()) e atribui à propriedade _idEmpregado.
  5. Define _persisted como true e _modified como false.
  6. 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 que Insert()).

Update()

  • Lógica: Atualiza os dados da instância atual no banco de dados se houver modificações (_modified é true).
  1. Verifica _modified.
  2. Chama GetParameters() e SetParameters() para preparar os parâmetros.
  3. Executa a query SPUPDATE usando DataAccessLayer.ExecuteNonQuery.
  4. Define _modified como false.
  • 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 que Update()).

Save()

  • Lógica: Método público para persistir a instância.
  • Se a instância não estiver persistida (_persisted é falso), chama Insert().
  • 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), chama Insert(trans).
  • Se a instância já estiver persistida, chama Update(trans).

Delete(int idEmpregado)

  • Lógica: Exclui um registro da tabela TAB_Empregado pelo ID.
  1. Cria uma lista de parâmetros e adiciona @Idf_Empregado e @Idf_Usuario_Gerador.
  2. Atribui idEmpregado e o CodigoUsuario da sessão aos parâmetros.
  3. Executa a query SPDELETE usando DataAccessLayer.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_Empregado com base em uma lista de IDs.
  1. Constrói duas queries SQL dinâmicas: uma para atualizar o Idf_Usuario_Gerador e outra para o DELETE.
  2. Para cada ID na lista, cria um parâmetro @parmX e adiciona à lista.
  3. Adiciona um parâmetro para o Idf_Usuario_Gerador da sessão.
  4. Concatena as queries de UPDATE e DELETE e as executa usando DataAccessLayer.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 IDataReader contendo os dados de um único registro de Empregado.
  1. Cria uma lista de parâmetros e adiciona @Idf_Empregado.
  2. Atribui idEmpregado ao parâmetro.
  3. Executa a query SPSELECTID usando DataAccessLayer.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.
  1. Calcula os índices de início e fim para a paginação.
  2. Constrói duas queries SQL dinâmicas:
  • SPSELECTPAG: Seleciona os dados com ROW_NUMBER() para paginação, ordenando pela colunaOrdenacao e direcaoOrdenacao.
  • SPSELECTCOUNT: Conta o total de registros para a paginação.
  1. Executa SPSELECTCOUNT para obter o totalRegistros.
  2. Executa SPSELECTPAG para obter o IDataReader com 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 Empregado a partir do banco de dados.
  1. Chama LoadDataReader(idEmpregado) para obter os dados.
  2. Cria uma nova instância de Empregado.
  3. Chama SetInstance() para preencher a nova instância com os dados do IDataReader.
  4. Se SetInstance retornar true (registro encontrado), retorna a instância preenchida.
  5. Se nenhum registro for encontrado, lança uma RecordNotFoundException.
  • Stored Procedures chamadas: SPSELECTID (via LoadDataReader).

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 (via LoadDataReader).

SetInstance(IDataReader dr, Empregado objEmpregado, bool bDispose = true)

  • Lógica: Método auxiliar para mapear os dados de um IDataReader para as propriedades de um objeto Empregado.
  1. Tenta ler a primeira linha do IDataReader.
  2. Se houver uma linha:
  • Atribui os valores das colunas do IDataReader às propriedades correspondentes do objEmpregado.
  • Instancia objetos aninhados (PessoaFisica, Contrato, TipoVinculo, Usuario, ExposicaoAgentesNocivos, CentroResultado, Lote, TipoMaoObra, Empregado (para supervisor), Safra, CategoriaTrabalhador, TipoContabilizacaoEspecifica, TipoContratoExperiencia) com seus respectivos IDs, tratando DBNull.Value.
  • Define _persisted como true e _modified como false.
  • Retorna true.
  1. Se não houver linhas, retorna false.
  2. O IDataReader é descartado no finally se bDispose for true.

Listar()

  • Lógica: Retorna uma lista de todas as instâncias de Empregado do banco de dados.
  1. Cria uma lista vazia de Empregado.
  2. Executa a query SPSELECT (seleciona todos os registros) usando DataAccessLayer.ExecuteReader.
  3. Itera sobre o IDataReader, criando uma nova instância de Empregado para cada linha e preenchendo-a com SetInstance(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 Empregado a partir do banco de dados, usando o _idEmpregado da própria instância.
  1. Verifica se o objeto já foi completado (completed flag).
  2. Chama LoadDataReader(this._idEmpregado) para obter os dados.
  3. Chama SetInstance() para preencher a instância atual com os dados.
  4. Define a flag completed como true se a operação for bem-sucedida.
  • Stored Procedures chamadas: SPSELECTID (via LoadDataReader).

CompleteObject(SqlTransaction trans)

  • Lógica: Similar ao CompleteObject() sem transação, mas utiliza uma transação SQL já existente (trans).
  • Stored Procedures chamadas: SPSELECTID (via LoadDataReader).

CarregarAutoComplete(int pIdEmpresa, int pIdUsuario, bool pFuncionarioInativo, decimal pCpf, string pNumeroMatricula, string pNome, out Empregado pObjEmpregado)

  • Lógica: Tenta carregar um único objeto Empregado com base em critérios de pesquisa de autocomplete.
  1. Cria uma lista de SqlParameter para os filtros: @Idf_Empresa, @Idf_Usuario, @Flg_Inativo, @CPF, @Num_Matricula, @Nme_Pessoa.
  2. Preenche os parâmetros com os valores fornecidos, tratando null ou string.Empty com DBNull.Value.
  3. Executa a query SPCARREGARAUTOCOMPLETE usando DataAccessLayer.ExecuteReader.
  4. Tenta preencher um novo objeto Empregado (pObjEmpregado) com SetInstance().
  5. Retorna true se o objeto foi carregado, false caso contrário, e pObjEmpregado será null se não encontrado.
  • Stored Procedures chamadas:
  • SPCARREGARAUTOCOMPLETE: SQL de SELECT que busca dados de TAB_Empregado, TAB_Contrato, TAB_Filial, TAB_Pessoa_Fisica com filtros de empresa, usuário (usando TAB_SF_Usuario_Acesso), inatividade, CPF, matrícula e nome.

CarregarPorMatriculaCpf(string matricula, string cpf, int idFilial, out Empregado objEmpregado)

  • Lógica: Carrega um objeto Empregado usando matrícula ou CPF e o ID da filial.
  1. Chama ListarPorMatriculaCpf(matricula, cpf, idFilial.ToString()) para obter um IDataReader.
  2. Tenta preencher um novo objeto Empregado (objEmpregado) com SetInstance().
  3. Retorna true se o objeto foi carregado, false caso contrário.
  • Stored Procedures chamadas: SPSELECTPARCIAL (via ListarPorMatriculaCpf).

CarregarEmpregadosAtivosPorPeriodo(DateTime? de, DateTime? ate, int Idf_Empresa, string idContrato, string idDepartamento, int? idCentroResultado, int IdUsuario, int TipoContrato, int IdFilial)

  • Lógica: Carrega um DataTable de empregados ativos em um período específico, com diversos filtros.
  1. Cria uma lista de SqlParameter para os filtros de data, empresa, departamento, usuário, tipo de contrato, contrato e filial.
  2. Preenche os parâmetros, tratando nullables e convertendo strings para int quando necessário.
  3. Se idCentroResultado tiver valor, adiciona o parâmetro @Idf_Centro_Resultado e executa SPSELECTATIVOSPORPERIODOCENTRORESULTADO.
  4. Caso contrário, executa SPSELECTATIVOSPORPERIODO.
  5. Retorna o DataTable resultante.
  • Stored Procedures chamadas:
  • SPSELECTATIVOSPORPERIODO: SQL de SELECT que une TAB_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 em CentroResultado e 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 DataTable de empregados admitidos ou demitidos em um período, com diversos filtros.
  1. Cria uma lista de SqlParameter para os filtros.
  2. Preenche os parâmetros, tratando nullables e convertendo strings para int.
  3. Verifica o TipoEstruturaGerencial da empresa logada (usando Empresa.LoadObject).
  4. Se a empresa utiliza CentroResultado, executa SPSELECTADMITIDOSDEMITIDOSPORPERIODOCENTRORESULTADO.
  5. Caso contrário, executa SPSELECTADMITIDOSDEMITIDOSPORPERIODO.
  6. Retorna o DataTable resultante.
  • Stored Procedures chamadas:
  • SPSELECTADMITIDOSDEMITIDOSPORPERIODO: SQL de SELECT que une TAB_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 em CentroResultado.
  • 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.
  1. Inicializa numDiasFaltas e horasFaltasOut.
  2. Constrói uma query para somar as QTD_LANCAMENTO de verbas de falta/atraso (enumVSFaltaAtraso) para o empregado e período de cálculo.
  3. Cria parâmetros para @Idf_Verba_Sistema, @Idf_Empregado, @Idf_Periodo_Calculo.
  4. Executa a query usando DataAccessLayer.ExecuteScalar dentro da transação para obter horasFalta.
  5. Recupera a carga horária ativa do empregado (EmpregadoCargaHoraria.RecuperarAtiva).
  6. 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).
  7. Se QuantidadeCargaHorariaDiaria e horasFalta forem maiores que zero, entra em um loop:
  • Subtrai QuantidadeCargaHorariaDiaria de horasFalta.
  • Incrementa numDiasFaltas.
  • Continua até que horasFalta seja menor que QuantidadeCargaHorariaDiaria.
  1. 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 NumeroDiasFaltas que gerencia a transação.
  1. Abre uma conexão SQL e inicia uma transação.
  2. Chama a sobrecarga NumeroDiasFaltas(out horasFaltasOut, objPeriodoCalculo, objEmpregado, trans, enumVSFaltaAtraso) para realizar o cálculo.
  3. 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 Empregado por matrícula ou CPF, considerando o acesso do usuário e a empresa.
  1. Chama ListarPorMatriculaCpfUsuarioAtivoInativo(matricula, cpf, idfUsuario, idfEmpresa) para obter um IDataReader.
  2. Tenta preencher um novo objeto Empregado (objEmpregado) com SetInstance().
  3. Retorna true se o objeto foi carregado, false caso contrário.
  • Stored Procedures chamadas: SPSELECTMATRICULACPFATIVOINATIVO (via ListarPorMatriculaCpfUsuarioAtivoInativo).

CarregarPorMatriculaCpfUsuario(string matricula, string cpf, int idfUsuario, int idfEmpresa, out Empregado objEmpregado, bool flgInativo)

  • Lógica: Carrega um objeto Empregado por matrícula ou CPF, com filtro de inatividade e acesso do usuário.
  1. Chama ListarPorMatriculaCpfUsuario(matricula, cpf, idfUsuario, idfEmpresa, flgInativo) para obter um IDataReader.
  2. Tenta preencher um novo objeto Empregado (objEmpregado) com SetInstance().
  3. Retorna true se o objeto foi carregado, false caso contrário.
  • Stored Procedures chamadas: SPSELECTMATRICULACPF_NEW (via ListarPorMatriculaCpfUsuario).

CarregarPorMatriculaCpfUsuario(string matricula, string cpf, int idfUsuario, int idfEmpresa, out Empregado objEmpregado, bool? flgInativo)

  • Lógica: Sobrecarga que permite um flgInativo nulo.
  1. Chama ListarPorMatriculaCpfUsuario(matricula, cpf, idfUsuario, idfEmpresa, flgInativo) para obter um IDataReader.
  2. Tenta preencher um novo objeto Empregado (objEmpregado) com SetInstance().
  3. Fecha o IDataReader explicitamente.
  4. Retorna true se o objeto foi carregado, false caso contrário.
  • Stored Procedures chamadas: SPSELECTMATRICULACPF_NEW (via ListarPorMatriculaCpfUsuario).

CarregarEmpregadoCentroResultado(int pIdEmpresa, int pIdUsuario, Int64 pCpf, string pNum_Matricula, out Empregado objEmpregado)

  • Lógica: Carrega um objeto Empregado com base em empresa, usuário, CPF e matrícula, filtrando por Centro de Resultado.
  1. Constrói uma query SQL que une TAB_Empregado, TAB_Centro_Resultado e TAB_Pessoa_Fisica.
  2. Cria e preenche parâmetros para @Idf_Empresa, @Idf_Usuario, @Cpf, @Num_Matricula.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  4. Tenta preencher um novo objeto Empregado (objEmpregado) com SetInstance().
  5. Retorna true se o objeto foi carregado, false caso 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.
  1. Constrói uma query SQL para contar empregados da TAB_Empregado que se encaixam nos critérios.
  2. Cria e preenche parâmetros para @Idf_Empresa, @Idf_Filial, @Dta_Inicio, @Dta_Fim.
  3. Executa a query usando DataAccessLayer.ExecuteScalar para 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.
  1. Cria uma lista de SqlParameter para os filtros de número de registros, empresa, usuário, inatividade, CPF/PIS, matrícula e nome.
  2. Preenche os parâmetros, tratando nullables com DBNull.Value.
  3. Executa a query Splistarautocomplete usando DataAccessLayer.ExecuteReader.
  4. 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 busca Num_Matricula, Nme_Pessoa, Num_CPF (formatado) e Num_PIS de TAB_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.
  1. Cria e preenche os mesmos parâmetros da sobrecarga anterior, adicionando @Idf_Filial.
  2. Executa a query Splistarautocomplete2 usando DataAccessLayer.ExecuteReader.
  3. Formata os resultados e os adiciona à lista de strings.
  • Stored Procedures chamadas:
  • Splistarautocomplete2: Similar a Splistarautocomplete, mas com filtro adicional para Idf_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.
  1. Inicializa a query com SPSELECTEMPREGADOSRESCISAO.
  2. Processa o dicionário valores para adicionar parâmetros e cláusulas WHERE dinâmicas (para Idf_Usuario, Idf_Empresa, etc.).
  • Para Idf_Usuario, adiciona a lógica de TAB_SF_Usuario_Acesso.
  1. Processa prefixText: se for um CPF de 11 dígitos, filtra por CPF/PIS; caso contrário, filtra por matrícula ou nome.
  2. Adiciona o parâmetro @Count para limitar o número de registros.
  3. Adiciona ORDER BY para matrícula.
  4. Executa a query dinâmica e formata os resultados como “Matrícula - Nome - CPF”.
  • Stored Procedures chamadas:
  • SPSELECTEMPREGADOSRESCISAO: SQL de SELECT que une TAB_Empregado, TAB_Contrato, TAB_Pessoa_Fisica e TAB_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.
  1. Cria e preenche os mesmos parâmetros de ListarAutoCompleteEmpregado.
  2. Executa a query Splistarautocomplete usando DataAccessLayer.ExecuteReader.
  3. 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.
  1. Inicializa a query com SPSELECTAUTOCOMPLETEATIVOGENERICO.
  2. Processa o dicionário valores para adicionar parâmetros e cláusulas WHERE dinâmicas.
  • Para Idf_Usuario, verifica se a empresa usa Centro de Resultado (Empresa.UtilizaCR) e ajusta a cláusula IN para Idf_Centro_Resultado ou Idf_Contrato usando TAB_SF_Usuario_Acesso.
  • Adiciona filtros para Flg_Inativo, Idf_Empresa, Idf_Centro_Resultado, Idf_Filial, Idf_Contrato, Idf_Departamento, Idf_Empregado.
  1. Processa prefixText (CPF/PIS, Matrícula ou Nome) e adiciona a cláusula AND correspondente.
  2. Adiciona o parâmetro @Count.
  3. Adiciona ORDER BY para matrícula.
  4. Executa a query dinâmica e popula um Dictionary<string, string> com o ID do empregado (concatenado com flg_adm_futura se aplicável) como chave e a string formatada como valor.
  • Stored Procedures chamadas:
  • SPSELECTAUTOCOMPLETEATIVOGENERICO: SQL de SELECT que busca Idf_Empregado, Num_Matricula, Num_CPF (formatado), Nme_Pessoa e Raz_Social de TAB_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.
  1. Cria parâmetros para @Num_Registro e @Nme_Pessoa.
  2. Preenche os parâmetros.
  3. Executa a query Splistarautocompleteteste e formata os resultados.
  • Stored Procedures chamadas:
  • Splistarautocompleteteste: SQL de SELECT que busca Num_Matricula, Nme_Pessoa, Num_CPF (formatado), Num_PIS e Idf_Empresa de TAB_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.
  1. Inicializa a query com SPSELECTAUTOCOMPLETEATIVOTIPOVINCULO.
  2. Processa o dicionário valores para adicionar parâmetros e cláusulas WHERE dinâmicas, incluindo Idf_Tipo_Vinculo.
  • Para Idf_Usuario, adiciona a lógica de TAB_SF_Usuario_Acesso.
  1. Processa prefixText (CPF/PIS, Matrícula ou Nome) e adiciona a cláusula AND correspondente.
  2. Adiciona o parâmetro @Count.
  3. Adiciona ORDER BY para matrícula.
  4. Executa a query dinâmica e formata os resultados.
  • Stored Procedures chamadas:
  • SPSELECTAUTOCOMPLETEATIVOTIPOVINCULO: SQL de SELECT que busca Num_Matricula, Num_CPF (formatado) e Nme_Pessoa de TAB_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.
  1. Cria uma lista de SqlParameter para todos os filtros.
  2. Preenche os parâmetros, tratando nullables com DBNull.Value.
  3. Executa a query SPSELBENEFICIOSEMPREGADO usando DataAccessLayer.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ções FLH_SF_BuscarRegraBeneficio e FLH_SF_BuscarRegraBeneficioTransporte para 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.
  1. Cria e preenche parâmetros para @Idf_Contrato, @Idf_Usuario, @Idf_Empresa, @Valor_Padrao, @Idf_Beneficio.
  2. Executa a query SPSELEMPREGADOPORCONTRATO usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas:
  • SPSELEMPREGADOPORCONTRATO: SQL de SELECT que une TAB_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.
  1. Constrói uma cláusula WHERE dinâmica para filtrar por Idf_Empregado IN (...) com base nas chaves do dicEmpregados.
  2. Calcula os índices de início e fim para a paginação.
  3. Formata a query SPSELECTGRID_NEW com a coluna e direção de ordenação.
  4. Concatena a cláusula WHERE dinâmica à query.
  5. Cria e preenche parâmetros para @Idf_Usuario e @Idf_Empresa.
  6. Constrói uma query de contagem (query_count) e uma query paginada.
  7. Executa query_count para obter totalRegistros.
  8. Executa a query paginada para obter um DataTable.
  9. Itera sobre as linhas do DataTable e, para cada empregado, atribui o valor correspondente de dicEmpregados à coluna vlr_fins_rescisorios.
  • Stored Procedures chamadas:
  • SPSELECTGRID_NEW: SQL de SELECT que une TAB_Pessoa_Fisica, TAB_Empregado, TAB_Contrato, TAB_Filial para obter informações de empregados. Inclui uma UNION para 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.
  1. Constrói uma cláusula WHERE dinâmica (sbWhereExpression) com base nos filtros fornecidos.
  • Se cpfPis for um CPF/PIS válido, adiciona (temp.Num_CPF='...' OR temp.Num_PIS='...').
  • Se nome for fornecido, adiciona (temp.Nme_Pessoa LIKE '%...%' OR temp.Ape_Pessoa LIKE '%...').
  • Se ctps for fornecido, adiciona (temp.Num_CTPS='...').
  • Remove o último “OR” se houver.
  1. Calcula os índices de início e fim para a paginação.
  2. Formata a query SPSELECTGRID_NEW com a coluna e direção de ordenação.
  3. Concatena a cláusula WHERE dinâmica à query.
  4. Cria e preenche parâmetros para @Idf_Usuario e @Idf_Empresa.
  5. Constrói uma query de contagem (query_count) e uma query paginada.
  6. Executa query_count para obter totalRegistros.
  7. 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 IDataReader com 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).
  1. Cria e preenche parâmetros para @Count, @Idf_Usuario, @Idf_Empresa, @Idf_Tipo_Contrato, @Cod_Contrato_Mae, @Cod_Contrato, @Valor.
  2. Executa a query SPEMPREGADOPORCONTRATO usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas:
  • SPEMPREGADOPORCONTRATO: SQL de SELECT que busca Emp.*, Pfi.*, Con.Idf_Tipo_Contrato, Con.Idf_Contrato, Con.Cod_Contrato, Con.Ape_Contrato, ConMae.Idf_Contrato, ConMae.Cod_Contrato, ConMae.Ape_Contrato de TAB_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 SPEMPREGADOPORCONTRATOATIVOINATIVO que não filtra por Flg_Inativo = 0 na cláusula principal, permitindo buscar ativos e inativos.
  • Stored Procedures chamadas:
  • SPEMPREGADOPORCONTRATOATIVOINATIVO: Similar a SPEMPREGADOPORCONTRATO, mas sem o filtro EMP.Flg_Inativo = 0 na 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.
  1. Chama ListarEmpregadoPorContratoParcial para obter um IDataReader.
  2. Itera sobre o IDataReader, formatando cada linha como “Matrícula - Nome - CPF” e adicionando à lista de strings.
  • Stored Procedures chamadas: SPEMPREGADOPORCONTRATO (via ListarEmpregadoPorContratoParcial).

ListarEmpregadoPorContratoAtivoInativo(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string valor)

  • Lógica: Similar à sobrecarga anterior, mas utiliza ListarEmpregadoPorContratoParcialAtivoInativo para incluir empregados inativos.
  • Stored Procedures chamadas: SPEMPREGADOPORCONTRATOATIVOINATIVO (via ListarEmpregadoPorContratoParcialAtivoInativo).

ListarParcial(string matriculaNomeCpf, int idFilial, int? tipoFolha)

  • Lógica: Retorna um IDataReader com dados parciais de empregados, filtrados por matrícula/nome/CPF, filial e, opcionalmente, tipo de folha.
  1. Cria e preenche parâmetros para @Idf_Filial e @WhereExpression.
  2. Constrói a WhereExpression dinamicamente:
  • Se matriculaNomeCpf for um CPF de 11 dígitos, filtra por Num_Cpf ou Num_PIS.
  • Caso contrário, filtra por Num_Matricula ou Nme_Pessoa.
  • Se tipoFolha for “Férias” ou “Rescisão”, adiciona uma subquery para filtrar empregados com esses tipos de folha.
  1. Executa a query SPSELECTPARCIAL usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas:
  • SPSELECTPARCIAL: SQL de SELECT que busca Idf_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_Pessoa de TAB_Empregado, TAB_Empregado_carga_horaria, TAB_Pessoa_Fisica, TAB_Contrato. A cláusula WHERE é construída dinamicamente.

ListarPorPessoaFisica(PessoaFisica objPessoaFisica, SqlTransaction trans)

  • Lógica: Retorna uma lista de objetos Empregado ativos associados a uma PessoaFisica específica.
  1. Cria e preenche um parâmetro @Idf_Pessoa_Fisica.
  2. Executa a query SPSELECTPESSOAFISICA usando DataAccessLayer.ExecuteReader dentro da transação.
  3. Itera sobre o IDataReader, criando e preenchendo objetos Empregado para 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.
  1. Constrói uma cláusula WHERE dinâmica IN (...) com base na lstPessoaFisica. Se a lista estiver vazia, usa WHERE 1 = 0.
  2. Executa a query SPSELECTPESSOAFISICAINATIVO formatada com a cláusula WHERE usando DataAccessLayer.ExecuteReader.
  3. Itera sobre o IDataReader e adiciona os Idf_Empregado à lista de retorno.
  • Stored Procedures chamadas:
  • SPSELECTPESSOAFISICAINATIVO: SELECT Idf_Empregado FROM TAB_Empregado {0} AND Flg_Inativo = 1 (onde {0} é a cláusula WHERE dinâmica).

ListarPorPessoaFisicaFilial(PessoaFisica objPessoaFisica, Filial objFilial, SqlTransaction trans)

  • Lógica: Retorna uma lista de objetos Empregado ativos associados a uma PessoaFisica e Filial específicas.
  1. Cria e preenche parâmetros para @Idf_Pessoa_Fisica e @Idf_Filial.
  2. Constrói uma query que combina SPSELECTPESSOAFISICA com um filtro adicional para Idf_Filial_Gestora e ordenação por Dta_Admissao.
  3. Executa a query usando DataAccessLayer.ExecuteReader (com ou sem transação).
  4. Itera sobre o IDataReader, criando e preenchendo objetos Empregado para 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 IDataReader com dados de um empregado, filtrado por matrícula ou CPF e ID da filial.
  1. Cria e preenche parâmetros para @Idf_Filial e @WhereExpression.
  2. Constrói a WhereExpression dinamicamente:
  • Se numCpf for um CPF de 11 dígitos, adiciona PF.Num_Cpf = ....
  • Se numMatricula não for vazio, adiciona Emp.Num_Matricula = '...'.
  • Se nenhuma das anteriores for preenchida, usa PF.Nme_Pessoa LIKE ... (o que parece ser um fallback, mas pode ser problemático se numMatricula for usado como nome).
  1. Executa a query SPSELECTPARCIAL usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTPARCIAL.

ListarPorContratoMatricula(int idContrato, string numMatricula)

  • Lógica: Retorna um IDataReader com dados de um empregado, filtrado por ID do contrato e número de matrícula.
  1. Cria e preenche parâmetros para @Idf_Contrato e @Num_Matricula.
  2. Executa a query SPSELCONTRATOMATRICULA usando DataAccessLayer.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 IDataReader com dados de um empregado, filtrado por matrícula/nome/CPF e ID da filial.
  1. Cria e preenche parâmetros para @Idf_Filial e @WhereExpression.
  2. Constrói a WhereExpression dinamicamente:
  • Se matriculaNomeCpf for um CPF de 11 dígitos, adiciona PF.Num_Cpf = ....
  • Caso contrário, adiciona Emp.Num_Matricula = '...'.
  1. Executa a query SPSELECTPARCIAL usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTPARCIAL.

ListarPorPessoaFisicaEmpresa(PessoaFisica objPessoaFisica, Empresa objEmpresa, SqlTransaction trans)

  • Lógica: Retorna uma lista de objetos Empregado ativos associados a uma PessoaFisica e Empresa específicas.
  1. Cria e preenche parâmetros para @Idf_Pessoa_Fisica e @Idf_Empresa.
  2. Constrói uma query que combina SPSELECTPESSOAFISICAEMPRESA com um filtro adicional para Idf_Empresa e ordenação por Dta_Admissao.
  3. Executa a query usando DataAccessLayer.ExecuteReader (com ou sem transação).
  4. Itera sobre o IDataReader, criando e preenchendo objetos Empregado para 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.
  1. Cria e preenche parâmetros para @Idf_Usuario e @Count.
  2. Constrói a parte da query para filtro de matriculaNomeCpf (CPF/PIS ou matrícula/nome).
  3. Concatena a query base SPSELECTAUTOCOMPLETE com os filtros e ORDER BY.
  4. 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.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Count, @Idf_Empresa, @Flg_Inativo.
  2. Constrói a parte da query para filtro de matriculaNomeCpf.
  3. Concatena a query base SPSELECTAUTOCOMPLETEFLGINATIVO com os filtros e ORDER BY.
  4. 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.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Count, @Idf_Empresa.
  2. Constrói a parte da query para filtro de matriculaNomeCpf.
  3. Concatena a query base SPSELECTAUTOCOMPLETE_ATIVOS com os filtros e ORDER BY.
  4. 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 ListarEmpregadoAutoCompleteUsuarioEmpresaFilial com ativo = 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 ListarEmpregadoAutoCompleteUsuarioEmpresaFilial com ativo = 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.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Count, @Idf_Empresa, @Idf_Filial, @Flg_Inativo.
  2. Constrói a parte da query para filtro de matriculaNomeCpf.
  3. Concatena a query base SPSELECTAUTOCOMPLETE_ATIVOS_FILIAL com os filtros e ORDER BY.
  4. 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 ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContrato com ativo = 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 ListarEmpregadoAutoCompleteUsuarioEmpresaFilialContrato com ativo = 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.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Count, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Flg_Inativo.
  2. Constrói a parte da query para filtro de matriculaNomeCpf.
  3. Concatena a query base com os filtros e ORDER BY.
  4. 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.
  1. Cria e preenche parâmetros para @Idf_Empresa, @Idf_Usuario, @Count.
  2. Constrói a parte da query para filtro de matriculaNomeCpf.
  3. Usa uma query condicional (query0) que verifica Idf_Tipo_Estrutura_Gerencial da empresa para aplicar o filtro de acesso (TAB_SF_Usuario_Acesso) em Idf_Contrato ou Idf_Centro_Resultado.
  4. 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.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Count, @Idf_Empresa, @Idf_Filial.
  2. Constrói a parte da query para filtro de matriculaNomeCpf.
  3. Concatena a query base SPSELECTAUTOCOMPLETEATIVOINATIVO com os filtros e ORDER BY.
  4. 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.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Count, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Departamento.
  2. Constrói a parte da query para filtro de matriculaNomeCpf.
  3. Concatena a query base SPSELECTAUTOCOMPLETEATIVOINATIVO2 com os filtros e ORDER BY.
  4. 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.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Count, @Idf_Empresa.
  2. Constrói a parte da query para filtro de matriculaNomeCpf.
  3. Concatena a query base SPSELECTAUTOCOMPLETEATIVO com os filtros e ORDER BY.
  4. 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.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Count, @Idf_Empresa.
  2. Constrói a parte da query para filtro de matriculaNomeCpf, adicionando subqueries para TAB_RESCISAO (Task #3750).
  3. Concatena a query base SPSELECTAUTOCOMPLETEATIVOINATIVO com os filtros e ORDER BY.
  4. 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.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Count, @Idf_Empresa.
  2. Constrói a parte da query para filtro de matriculaNomeCpf.
  3. Concatena a query base SPSELECTAUTOCOMPLETE_NEW com os filtros e ORDER BY.
  4. Executa a query e formata os resultados.
  • Stored Procedures chamadas: SPSELECTAUTOCOMPLETE_NEW.

ListarPorMatriculaCpfUsuario(string numMatricula, string numCpf, int idfUsuarioLogado)

  • Lógica: Retorna um IDataReader com dados de um empregado por matrícula ou CPF e acesso do usuário.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Num_Matricula, @Num_Cpf.
  2. Se numMatricula for diferente de numCpf, adiciona um filtro extra para Emp.Num_Matricula.
  3. Executa a query SPSELECTMATRICULACPF usando DataAccessLayer.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 IDataReader com dados de um empregado por matrícula ou CPF, com filtro de inatividade opcional e acesso do usuário.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Num_Matricula, @Num_Cpf, @Idf_Empresa, @Flg_Inativo.
  2. Se numMatricula for diferente de numCpf, adiciona um filtro extra para Emp.Num_Matricula.
  3. Executa a query SPSELECTMATRICULACPF_NEW usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTMATRICULACPF_NEW.

ListarPorMatriculaCpfUsuarioAtivoInativo(string numMatricula, string numCpf, int idfUsuarioLogado, int idfEmpresa)

  • Lógica: Retorna um IDataReader com dados de um empregado por matrícula ou CPF, considerando status ativo/inativo e acesso do usuário.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Num_Matricula, @Num_Cpf, @Idf_Empresa.
  2. Se numMatricula for diferente de numCpf, adiciona um filtro extra para Emp.Num_Matricula.
  3. Executa a query SPSELECTMATRICULACPFATIVOINATIVO usando DataAccessLayer.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.
  1. Constrói uma query SQL dinâmica que une TAB_Empregado, TAB_Pessoa_Fisica, TAB_Contrato, TAB_Filial.
  2. Adiciona cláusulas WHERE dinâmicas com base nos filtros de filial, empregado, contrato, departamento, função exclusiva e existência de TAB_Beneficio_Fornecimento para o mês/ano.
  3. Adiciona ORDER BY para a coluna e direção especificadas.
  4. 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.
  1. Inicializa a lista de parâmetros e adiciona @idfEmpresa, @Idf_Usuario.
  2. 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.
  3. Adiciona LEFT JOIN para 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).
  4. Adiciona cláusulas WHERE e INNER JOIN/LEFT JOIN dinâmicas com base nos filtros de pIdFormaPagamentoBeneficio, idfFormaPagamento, idfTpBeneficio, idfBanco, idfDepartamento, idfFuncaoExlusiva, mes, ano, NotIn.
  5. Inclui a lógica de acesso do usuário (TAB_SF_Usuario_Acesso).
  6. 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.
  1. Inicializa a lista de parâmetros e adiciona @idfEmpresa, @Idf_Usuario.
  2. 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.
  3. Adiciona LEFT JOIN para informações de conta bancária e endereço.
  4. Adiciona cláusulas WHERE e INNER JOIN/LEFT JOIN dinâmicas com base nos filtros de idfFormaPagamento, idfTpBeneficio (lança exceção se for benefício), idfBanco, idfDepartamento, idfFuncaoExclusiva, NotIn, idfTpFolha, idfFilial, idfContrato, idfFuncionario.
  5. Inclui a lógica de acesso do usuário (TAB_SF_Usuario_Acesso).
  6. Retorna a query construída.
  • Stored Procedures chamadas: TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa).
  • Exceções: Lança Exception se idfTpBeneficio tiver 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).
  1. Verifica se idfTpFolha tem valor.
  2. Se sim, chama MontarQueryListarEmpregadosFiltroPagamento.
  3. Se não, chama MontarQueryListarEmpregadosFiltroPagamentoBeneficio.
  4. Executa a query resultante usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama MontarQueryListarEmpregadosFiltroPagamento ou MontarQueryListarEmpregadosFiltroPagamentoBeneficio.

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.
  1. Chama MontarQueryListarEmpregadosFiltroPagamento ou MontarQueryListarEmpregadosFiltroPagamentoBeneficio para obter a query base e os parâmetros.
  2. Calcula os índices de início e fim para a paginação.
  3. Constrói uma query de contagem e totalizadores (SPSELECTCOUNT) e uma query paginada (SPSELECTPAG).
  4. Executa SPSELECTCOUNT para obter totalRegistros, valorTotal e valorMedio.
  5. Cria uma nova lista de parâmetros (para evitar problemas com o IDataReader anterior).
  6. Executa SPSELECTPAG para retornar o IDataReader com os dados da página atual.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama MontarQueryListarEmpregadosFiltroPagamento ou MontarQueryListarEmpregadosFiltroPagamentoBeneficio.
  • SPSELECTCOUNT: SELECT COUNT(*) AS totalRegistros, ISNULL(SUM(Vlr_Holerite),0) AS valorTotal, ISNULL(AVG(Vlr_Holerite),0) AS valorMedio FROM ([query_base]) AS temp
  • SPSELECTPAG: Query paginada que envolve a query_base.

ListarPorMatriculaCpfEmpresa(string numMatricula, string numCpf, string idEmpresa)

  • Lógica: Retorna um IDataReader com dados de um empregado, filtrado por matrícula ou CPF e ID da empresa.
  1. Cria e preenche parâmetros para @Idf_Empresa e @WhereExpression.
  2. Constrói a WhereExpression dinamicamente:
  • Se numCpf for um CPF de 11 dígitos, adiciona PF.Num_Cpf = ....
  • Se numMatricula for uma matrícula numérica, adiciona Emp.Num_Matricula = '...'.
  • Se nenhuma das anteriores for preenchida, usa PF.Nme_Pessoa LIKE ....
  1. Executa a query SPSELECTPARCIALEMPRESA usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas:
  • SPSELECTPARCIALEMPRESA: SQL de SELECT que busca Emp.*, Num_CPF (formatado), Nme_Pessoa de TAB_Empregado, TAB_Pessoa_Fisica, TAB_Contrato, TAB_Filial. A cláusula WHERE é construída dinamicamente.

CarregarPorMatriculaCpfNome(string textoAutoComplete, out Empregado empregado)

  • Lógica: Tenta carregar um objeto Empregado a partir de uma string de autocomplete formatada (ex: “Matrícula - Nome - CPF”).
  1. Divide a string textoAutoComplete em matrícula, nome e CPF.
  2. Cria e preenche parâmetros para @Num_Matricula, @Nome, @Num_Cpf, @Idf_Empresa (da sessão).
  3. Constrói uma query SQL para buscar o empregado com esses critérios.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  5. Tenta preencher um novo objeto Empregado (empregado) com SetInstance().
  6. Retorna true se o objeto foi carregado, false caso 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 Empregado por matrícula e CPF.
  1. Constrói uma query SQL para buscar o empregado com o CPF e matrícula fornecidos.
  2. Cria e preenche parâmetros para @Num_CPF e @Num_Matricula.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  4. Tenta preencher um novo objeto Empregado com SetInstance().
  5. 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 ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura sem 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 ListarEmpregadoAutoCompleteUsuarioEmpresaAtivoInativoComAdmissaoFutura com 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.
  1. Define duas queries base (query para estrutura por contrato, queryCR para estrutura por centro de resultado). Ambas incluem UNION com TAB_Empregado_Admissao_Futura.
  2. Seleciona a query apropriada com base em Empresa.UtilizaCR(idfEmpresaLogada).
  3. Cria e preenche parâmetros para @Idf_Usuario, @Count, @CpfPis, @Num_Matricula, @Nme_Pessoa, @Idf_Empresa, @Idf_Filial, @Idf_Centro_Resultado.
  4. Constrói complementoQuery com base em matriculaNomeCpf (CPF/PIS, matrícula ou nome).
  5. Formata a query selecionada com complementoQuery.
  6. 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.
  1. Cria e preenche parâmetros para @Count, @Idf_Usuario, @Idf_Empresa, @Idf_Filial, @Idf_Centro_Resultado, @Flg_Inativo.
  2. Constrói a parte da query para filtro de matriculaNomeCpf.
  3. Concatena a query base com os filtros e ORDER BY.
  4. 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.
  1. Verifica se o empregado está inativo; se sim, retorna.
  2. Chama FilaCalculoBeneficio.AdicionarItemFila com o ID do empregado, ano e mês da admissão.
  3. Chama FilaBenesite.AdicionarEmpregadoFila para adicionar o empregado à fila do Benesite.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama métodos de FilaCalculoBeneficio e FilaBenesite.

GerarAcessoHolerite(SqlTransaction trans)

  • Lógica: Gera o acesso ao holerite para o empregado atual.
  1. 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.
  1. Tenta carregar um HoleriteAcesso existente para a PessoaFisica do empregado.
  2. Se não existir, cria um novo HoleriteAcesso, define a PessoaFisica, gera uma senha aleatória e a marca como FlagSenhaAleatoria = true.
  3. Salva o objeto HoleriteAcesso (novo ou existente).
  • Stored Procedures chamadas: Nenhuma diretamente. Chama HoleriteAcesso.CarregarPorPessoaFisica e HoleriteAcesso.Save.

RecuperarQtdHoraMensalTotal(int idPessoa)

  • Lógica: Recupera a quantidade total de horas mensais de trabalho de uma pessoa física.
  1. Cria e preenche um parâmetro @IDF_PESSOA_FISICA.
  2. Executa a query SPHORAMENSALTOTAL usando DataAccessLayer.ExecuteScalar.
  3. Retorna o resultado convertido para int, ou 0 se 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 ListarPorPessoaFisicaFilial para recuperar a lista de empregados.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorPessoaFisicaFilial.

RecuperarPorPessoaFisicaEmpresa(PessoaFisica objPessoaFisica, Empresa objEmpresa, SqlTransaction trans)

  • Lógica: Chama ListarPorPessoaFisicaEmpresa para recuperar a lista de empregados.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorPessoaFisicaEmpresa.

RecuperarEmpregadosAtivosPorFilial(int idfFilial, SqlTransaction trans)

  • Lógica: Recupera um DataTable com empregados ativos de uma filial.
  1. Cria e preenche um parâmetro @Idf_Filial.
  2. Executa a query SELATIVOSPORFILIAL usando DataAccessLayer.ExecuteReaderDs dentro da transação.
  3. Retorna o primeiro DataTable do DataSet.
  • 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.
  1. Cria e preenche um parâmetro @Idf_Filial.
  2. Executa a query SELATIVOSPORFILIAL usando DataAccessLayer.ExecuteReader dentro da transação.
  3. Itera sobre o IDataReader, criando objetos Empregado com 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.
  1. 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.
  2. Determina o Idf_Verba com base em IdTipoFolha (Adiantamento 13º ou 13º).
  3. Calcula os índices de início e fim para a paginação.
  4. Constrói a query principal (query) usando SPCONSULTAREMPREGADOSDECIMOTERCEIRO, aplicando lógica complexa para NotIn e empregadosIn para filtrar empregados já lançados ou incluídos.
  5. Executa a query usando DataAccessLayer.ExecuteReader.
  6. Lê o primeiro resultado para obter totalRegistros.
  7. Avança para o próximo resultado e retorna o IDataReader.
  • Stored Procedures chamadas:
  • SPCONSULTAREMPREGADOSDECIMOTERCEIRO: SQL de SELECT complexa que une TAB_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.
  1. Cria e preenche parâmetros para @Idf_Usuario, @Idf_Empresa, @Idf_Filial, @idf_Contrato, @idf_Departamento, @idf_Empregado, @Idf_Tipo_Folha, @Idf_Centro_Resultado.
  2. Constrói a query principal (query) usando SPCONSULTAREMPREGADOSDECIMOTERCEIROLANCAMENTO, formatando com a string NotIn.
  3. Executa a query usando DataAccessLayer.ExecuteReaderDs e retorna o primeiro DataTable.
  • Stored Procedures chamadas:
  • SPCONSULTAREMPREGADOSDECIMOTERCEIROLANCAMENTO: SQL de SELECT complexa que une TAB_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.
  1. Cria e preenche um parâmetro @idf_Empregado.
  2. Executa a query SPVERIFICAADIANTAMENTODECIMOTERCEIROPAGAMENTO usando DataAccessLayer.ExecuteScalar.
  3. Retorna true se a contagem for maior que zero, false caso 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.
  1. Cria e preenche parâmetros para @SortExpression, @CurrentPage, @PageSize, @WhereExpression (nulo), @Idf_Filial.
  2. Executa a query SELATIVOSPORFILIALPAGINACAO usando DataAccessLayer.ExecuteReader.
  3. Lê o primeiro resultado para obter totalRegistros.
  4. Avança para o próximo resultado e retorna o IDataReader.
  • Stored Procedures chamadas:
  • SELATIVOSPORFILIALPAGINACAO: SQL de SELECT complexa que utiliza ROW_NUMBER() para paginação e contagem, buscando dados de TAB_Pessoa_Fisica, TAB_Empregado, TAB_Contrato, TAB_Filial.

ListarIdsEmpregadosAtivosPorFilial(int idfFilial)

  • Lógica: Lista os IDs de empregados ativos por filial.
  1. Cria e preenche um parâmetro @Idf_Filial.
  2. Executa a query SELATIVOSPORFILIAL usando DataAccessLayer.ExecuteReader.
  3. Itera sobre o IDataReader e 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.
  1. Cria e preenche parâmetros para @SortExpression, @CurrentPage, @PageSize, @WhereExpression (nulo), @Idf_Filial.
  2. Executa a query SELATIVOSDECIMOTERCEIROPAGINACAO usando DataAccessLayer.ExecuteReader.
  3. Lê o primeiro resultado para obter totalRegistros.
  4. Avança para o próximo resultado e retorna o IDataReader.
  • Stored Procedures chamadas:
  • SELATIVOSDECIMOTERCEIROPAGINACAO: SQL de SELECT complexa que utiliza ROW_NUMBER() para paginação e contagem, buscando dados de TAB_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.
  1. Constrói uma query SQL para buscar o Idf_Empregado.
  2. Cria e preenche parâmetros para @Num_Matricula, @Nome, @Num_Cpf, @Idf_Empresa (da sessão).
  3. Executa a query usando DataAccessLayer.ExecuteScalar.
  4. Retorna o ID do empregado ou 0 se 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).
  1. Se tipoBusca for 1:
  • Completa o objeto filial.
  • Chama VerificaSequenciaMatriculaEmpresa com o ID da empresa da filial.
  1. Se tipoBusca for 2:
  • Chama VerificaSequenciaMatriculaFilial com o ID da filial.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama VerificaSequenciaMatriculaEmpresa ou VerificaSequenciaMatriculaFilial.

VerificaSequenciaMatriculaEmpresa(int idEmpresa)

  • Lógica: Recupera o último número de matrícula usado em uma empresa.
  1. Cria e preenche um parâmetro @Idf_Empresa.
  2. Executa a query SPSELECTEMPRESAMATRICULASEQUENCIA usando DataAccessLayer.ExecuteScalar.
  3. 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.
  1. Cria e preenche um parâmetro @Idf_Filial.
  2. Executa a query SPSELECTFILIALMATRICULASEQUENCIA usando DataAccessLayer.ExecuteScalar.
  3. 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).
  1. Se tipoBusca for 1:
  • Completa o objeto filial.
  • Chama VerificaSequenciaFichaRegistroEmpresa com o ID da empresa da filial.
  1. Se tipoBusca for 2:
  • Chama VerificaSequenciaFichaRegistroFilial com o ID da filial.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama VerificaSequenciaFichaRegistroEmpresa ou VerificaSequenciaFichaRegistroFilial.

VerificaSequenciaFichaRegistroEmpresa(int idEmpresa)

  • Lógica: Recupera o último número de ficha de registro usado em uma empresa.
  1. Cria e preenche um parâmetro @Idf_Empresa.
  2. Executa a query SPSELECTEMPRESAFICHAREGISTROSEQUENCIA usando DataAccessLayer.ExecuteScalar.
  3. 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.
  1. Cria e preenche um parâmetro @Idf_Filial.
  2. Executa a query SPSELECTFILIALFICHAREGISTROSEQUENCIA usando DataAccessLayer.ExecuteScalar.
  3. 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).
  1. Se tipoBusca for 1:
  • Completa o objeto filial.
  • Chama VerificaMatriculaEmpresa com a matrícula, ID da empresa da filial e idEmpregado.
  1. Se tipoBusca for 2:
  • Chama VerificaMatriculaFilial com a matrícula, ID da filial e idEmpregado.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama VerificaMatriculaEmpresa ou VerificaMatriculaFilial.

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 idEmpregado for fornecido.
  1. Cria e preenche parâmetros para @Num_Matricula e @Idf_Empresa.
  2. Constrói a query SPSELECTEMPRESAMATRICULA.
  3. Se idEmpregado tiver valor, adiciona AND E.Idf_Empregado <> @Idf_Empregado e o parâmetro @Idf_Empregado.
  4. Executa a query e retorna true se 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 idEmpregado for fornecido.
  1. Cria e preenche parâmetros para @Num_Matricula e @Idf_Filial.
  2. Constrói a query SPSELECTFILIALMATRICULA.
  3. Se idEmpregado tiver valor, adiciona AND E.Idf_Empregado <> @Idf_Empregado e o parâmetro @Idf_Empregado.
  4. Executa a query e retorna true se 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).
  1. Se tipoBusca for 1:
  • Completa o objeto filial.
  • Chama VerificaFichaRegistroEmpresa com a ficha de registro, ID da empresa da filial e idEmpregado.
  1. Se tipoBusca for 2:
  • Chama VerificaFichaRegistroFilial com a ficha de registro, ID da filial e idEmpregado.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama VerificaFichaRegistroEmpresa ou VerificaFichaRegistroFilial.

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 idEmpregado for fornecido.
  1. Cria e preenche parâmetros para @Num_Ficha_Registro e @Idf_Empresa.
  2. Constrói a query SPSELECTEMPRESAFICHAREGISTRO.
  3. Se idEmpregado tiver valor, adiciona AND E.Idf_Empregado <> @Idf_Empregado e o parâmetro @Idf_Empregado.
  4. Executa a query e retorna true se 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 idEmpregado for fornecido.
  1. Cria e preenche parâmetros para @Num_Ficha_Registro e @Idf_Filial.
  2. Constrói a query SPSELECTFILIALFICHAREGISTRO.
  3. Se idEmpregado tiver valor, adiciona AND E.Idf_Empregado <> @Idf_Empregado e o parâmetro @Idf_Empregado.
  4. Executa a query e retorna true se 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.
  1. Cria e preenche um parâmetro @Cod_Contrato.
  2. Executa a query SPSELECTCONTRATO usando DataAccessLayer.ExecuteReader.
  3. Retorna true se 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.
  1. Cria e preenche um parâmetro @Cod_Departamento.
  2. Executa a query SPSELECTDEPARTAMENTO usando DataAccessLayer.ExecuteReader.
  3. Retorna true se 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.
  1. Cria e preenche parâmetros para @Idf_FilialTomadora, @Idf_PessoaTomadora, @Idf_Pessoa_Fisica, @Dta_InicioPeriodo, @Idf_Empresa.
  2. Executa a query SPSELECTRECONTRATACAO usando DataAccessLayer.ExecuteReader.
  3. 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 une TAB_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_Empregado e Dta_Pagamento não nulos, e Idf_Pre_Fatura não nulo) em um determinado período.
  1. Cria e preenche parâmetros para @Idf_Empregado, @Dta_Inicio_Periodo, @Dta_Fim_Periodo.
  2. Executa a query SPSELECTVERIFICAFOLHAPAGA usando DataAccessLayer.ExecuteReader.
  3. Retorna true se 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.
  1. Cria e preenche um parâmetro @Idf_Empregado.
  2. Executa a query SPINATIVAR usando DataAccessLayer.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.
  1. Cria e preenche um parâmetro @Idf_Empregado.
  2. Executa a query SPDELMEMORIACALCULOLOGTEMP usando DataAccessLayer.ExecuteNonQuery dentro 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.
  1. Cria e preenche um parâmetro @Idf_Contrato.
  2. Executa a query SPEXISTEEMPREGADOCONTRATO usando DataAccessLayer.ExecuteScalar.
  3. Retorna true se 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.
  1. Cria e preenche um parâmetro @Idf_Contrato.
  2. Executa a query SELEXISTEEMPREGADOATIVOCONTRATO usando DataAccessLayer.ExecuteScalar.
  3. Retorna true se 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.
  1. Cria e preenche parâmetros para @Idf_Pessoa_Fisica e @Idf_Contrato.
  2. Executa a query SPEXISTEEMPREGADOCONTRATOATIVO usando DataAccessLayer.ExecuteScalar.
  3. Retorna true se 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.
  1. Cria e preenche parâmetros para @Idf_Pessoa_Fisica, @Idf_Empresa, @Idf_Usuario.
  2. Constrói uma query SQL que une TAB_Pessoa_Fisica, TAB_Empregado, TAB_Contrato, TAB_Filial.
  3. Inclui a lógica de acesso do usuário (TAB_SF_Usuario_Acesso).
  4. Executa a query usando DataAccessLayer.ExecuteScalar.
  5. Retorna true se 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.
  1. Cria e preenche parâmetros para @Num_CPF e @Idf_Empresa.
  2. Constrói uma query SQL que une TAB_Empregado, TAB_Pessoa_Fisica, TAB_Contrato, TAB_Centro_Resultado, TAB_Filial.
  3. Executa a query usando DataAccessLayer.ExecuteScalar.
  4. Retorna true se 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.
  1. Cria e preenche um parâmetro @Idf_Pessoa_Fisica.
  2. Constrói uma query SQL:
  • Se valor for diferente de Registro_de_Empregado e Rescisao, a query busca apenas na TAB_Pessoa_Fisica.
  • Caso contrário, a query une TAB_Pessoa_Fisica com TAB_Empregado.
  1. Executa a query usando DataAccessLayer.ExecuteScalar.
  2. Retorna true se 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.
  1. Cria e preenche um parâmetro @Sig.
  2. Executa uma query SQL simples para buscar a sigla do estado.
  3. Retorna true se 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.
  1. Cria e preenche parâmetros para @CPF e @Matricula.
  2. Executa uma query SQL que une tab_Empregado e TAB_Pessoa_Fisica.
  3. Retorna true se 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.
  1. Cria e preenche um parâmetro @CPF.
  2. Executa uma query SQL que une tab_Empregado e TAB_Pessoa_Fisica.
  3. Retorna true se 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.
  1. Cria e preenche um parâmetro @Matricula.
  2. Executa uma query SQL simples na tab_empregado filtrando por matrícula e Flg_Inativo = 0.
  3. Retorna true se 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.
  1. Cria e preenche um parâmetro @Idf_Pessoa_Fisica.
  2. Executa uma query SQL que une TAB_Pessoa_Fisica e TAB_Empregado, filtrando por Flg_Inativo = 0.
  3. Retorna true se um resultado for encontrado.
  • Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.

Clone()

  • Lógica: Implementa a interface ICloneable para criar uma cópia superficial da instância atual de Empregado.
  1. Cria uma nova instância de Empregado.
  2. 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.
  1. Inicializa somaEncargos como 0.
  2. Chama RecuperarFPAS(this, out fpasEscolhido) para obter o objeto FPASAliquota.
  3. Se fpasEscolhido não for nulo, soma os valores dos encargos (ValorDpc, ValorFundoAeroviario, etc.).
  4. 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.
  1. Completa o objeto objEmpregado, seu Contrato e, se existir, seu CentroResultado.
  2. Chama TributoAliquota.BuscaFPASPorFilialVinculo para obter o idFpasAliquota com base na filial (do Centro de Resultado ou da Filial Gestora do Contrato) e no tipo de vínculo do empregado.
  3. Se idFpasAliquota tiver valor, carrega o objeto FPASAliquota usando FPASAliquota.LoadObject.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama TributoAliquota.BuscaFPASPorFilialVinculo e FPASAliquota.LoadObject.

RecuperarFPAS(Empregado objEmpregado, out FPASAliquota fpasEscolhido)

  • Lógica: Sobrecarga de RecuperarFPAS que gerencia a transação.
  1. Abre uma conexão SQL e inicia uma transação.
  2. Chama a sobrecarga RecuperarFPAS(objEmpregado, out fpasEscolhido, trans) para realizar a recuperação.
  3. 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.
  1. Cria e preenche um parâmetro @Idf_Empregado.
  2. Executa a query SPSELTIPOVINCULO usando DataAccessLayer.ExecuteScalar.
  3. 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.
  1. Cria e preenche um parâmetro @Idf_Empregado.
  2. Executa a query SPCONSULTAFILIALPERIODOCALCULO usando DataAccessLayer.ExecuteReader dentro da transação.
  3. Lê o resultado e atribui os valores a idFilialGestora e idPeriodoCalculo.
  • 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.
  1. Completa o objeto Contrato do empregado e carrega a Filial gestora.
  2. 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.
  3. Se o tipo de vínculo for “Temporário”:
  • Calcula o totalDias (prazo de duração + prorrogação).
  • Atualiza Dta_Saida_Prevista, Dta_Rescisao e Dta_Opcao_FGTS na TAB_Rescisao com base na nova DataAdmissao e totalDias.
  1. Cria parâmetros para @Idf_Empregado e @DataAdmissao.
  2. Atualiza Dta_Admissao e Dta_Opcao_FGTS na TAB_Rescisao (para rescisões com data de rescisão maior ou igual à nova data de admissão).
  3. Lógica de Salário:
  • Recupera o salário atual do empregado.
  • Lista salários posteriores à data de admissão.
  • Ajusta as DataInicioVigencia dos salários posteriores com base na nova DataAdmissao.
  1. Atualiza Dta_Inicio_Vigencia em TAB_Empregado_Funcao_Exclusiva, TAB_Empregado_Departamento, TAB_Empregado_Carga_Horaria e TAB_Empregado_Contrato para a nova DataAdmissao.
  2. Atualiza Dta_Opcao_FGTS em TAB_Empregado_Log e TAB_Empregado_Fechamento_Decimo_Terceiro.
  • Stored Procedures chamadas:
  • Holerite.VerificaExistenciaHoleriteEmpregadoTipoFolhaPeriodo(...): Verifica a existência de holerites pagos.
  • Queries dinâmicas de UPDATE para TAB_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.
  1. 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.
  2. Constrói uma cláusula WHERE dinâmica (query) com base nos filtros fornecidos.
  3. Executa a query Splistarempaltsalfunc concatenada com a query dinâmica usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader e popula um Dictionary<int, string> com o ID do empregado e uma string formatada.
  • Stored Procedures chamadas:
  • Splistarempaltsalfunc: SQL de SELECT que une TAB_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 DataTable de empregados para alteração de salário/função, com diversos filtros.
  1. Cria e preenche parâmetros para @Idf_Filial, @Idf_Contrato, @Idf_Centro_Resultado, @Idf_Funcao, @Idf_Departamento, @Idf_Empregado, @Idf_Sindicato, @de, @ate.
  2. Constrói uma cláusula WHERE dinâmica (query) com base nos filtros fornecidos.
  3. Adiciona ORDER BY pf.Nme_Pessoa ASC.
  4. Executa a query SPCARREGAREMPALTSALFUNC concatenada com a query dinâmica usando DataAccessLayer.ExecuteReaderDs.
  5. Retorna o primeiro DataTable do DataSet.
  • Stored Procedures chamadas:
  • SPCARREGAREMPALTSALFUNC: SQL de SELECT que une TAB_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.
  1. Abre uma conexão SQL e inicia uma transação.
  2. Inicializa ds e objLoteAlteracao como nulos, e verificarSalarioMenor como false.
  3. Adiciona uma coluna “MsgErro” ao DataTable de entrada se não existir.
  4. Se idfMotivoAlteracaoFuncao for maior que 0, chama AlterarFuncaoEmpregados para processar as alterações de função.
  5. Se idfMotivoAlteracaoSalario for maior que 0, chama AlterarSalarioEmpregados2 para processar as alterações de salário.
  6. Comita a transação.
  7. Chama FilaCalculoTransactionSingleton.EnviarParaCalculo para enfileirar os cálculos.
  8. Em caso de exceção, reverte a transação e remove da fila de cálculo.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama AlterarFuncaoEmpregados e AlterarSalarioEmpregados2.

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.
  1. Carrega o objeto FuncaoExclusiva e seus objetos aninhados (FuncaoEspecifica, Escolaridade).
  2. Itera sobre cada DataRow no DataTable de entrada:
  • Carrega o objeto Empregado.
  • Determina a data da alteração (se idfMotivoAlteracao for “Admissão”, usa a DataAdmissao do empregado).
  • Chama Holerite.VerificarHoleriteAltFunc para 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 AlterarFuncaoAdmissao no EmpregadoFuncaoExclusivaAtual.
  • Completa PessoaFisica e Escolaridade do empregado.
  • Validações:
  • Se a escolaridade da nova função for maior que a escolaridade da pessoa física, registra um erro.
  • Se a DataInicioVigencia da função atual for maior ou igual à data da alteração, registra um erro (alteração agendada posterior).
  • Se a data da 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 data da 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 LoteAlteracaoEmpregado para 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.
  1. Itera sobre cada DataRow no DataTable de entrada:
  • Carrega o objeto Empregado.
  • Converte mes e ano para DateTime.
  • Chama Holerite.VerificarHoleriteAltFunc para 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 PeriodoCalculo correspondente à data da alteração.
  • Chama LoteEmpregadoAlteracao.VerificarLoteAlteracaoEmpregadoSalario para 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 DataInicioVigencia do salário atual for maior que a DataInicio do 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 novoSalario com base no alteracaoSalario (Novo Salário, Valor Aumento, Percentual Aumento). Define verificarSalarioMenor se 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 valorHoraAtual for menor que o valorMinimoHora, 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 LoteAlteracaoEmpregado para 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.
  1. Se objSalarioAtual nã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.
  2. Cria um novo objeto Salario (objSalarioNovo).
  3. Define DataInicioVigencia como a data de início do objPeriodo.
  4. Define MotivoSalarioFuncao, ValorSalario e Empregado.
  5. Salva o novo salário (objSalarioNovo.Save).
  6. Atribui objSalarioNovo ao parâmetro de saída obj.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama Salario.InativarSalario e Salario.Save.

NovoSalarioEmpregado(Salario objSalarioAtual, SqlTransaction trans, Empregado objEmpregado, DateTime dataInicioVigencia, decimal novoSalario, int idfMotivoAlteracao, int idfUsuario, out Salario obj)

  • Lógica: Sobrecarga de NovoSalarioEmpregado que permite especificar a dataInicioVigencia diretamente.
  1. Se objSalarioAtual não for nulo, inativa-o (Salario.InativarSalario) com a data de fim de vigência como o dia anterior à dataInicioVigencia.
  2. Se dataInicioVigencia for igual à DataInicioVigencia do objSalarioAtual, reutiliza objSalarioAtual.
  3. Cria um novo objeto Salario (objSalarioNovo).
  4. Define DataInicioVigencia, MotivoSalarioFuncao, ValorSalario e Empregado.
  5. Salva o novo salário (objSalarioNovo.Save).
  6. Atribui objSalarioNovo ao parâmetro de saída obj.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama Salario.InativarSalario e Salario.Save.

NovoSalarioEmpregadoAdmissao(Salario objSalarioAtual, SqlTransaction trans, decimal novoSalario, int idfUsuario)

  • Lógica: Atualiza o valor do salário de admissão de um empregado.
  1. Define ValorSalario do objSalarioAtual com o novoSalario.
  2. 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).
  1. Se objLoteAlteracao for nulo, cria um novo LoteAlteracao, define FlagInativo = false e o salva.
  2. Cria um novo LoteEmpregadoAlteracao.
  3. Associa o Empregado, Salario (se fornecido) e EmpregadoFuncaoExclusiva (se fornecido).
  4. Associa o LoteAlteracao.
  5. Salva o LoteEmpregadoAlteracao.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoteAlteracao.Save e LoteEmpregadoAlteracao.Save.

LoteAlteracaoEmpregado(Empregado objEmpregado, DateTime dataInicio, SqlTransaction trans, Salario objSalario, EmpregadoFuncaoExclusiva objFuncao, ref LoteAlteracao objLoteAlteracao)

  • Lógica: Sobrecarga de LoteAlteracaoEmpregado que permite especificar a dataInicio.
  1. Tenta carregar um LoteEmpregadoAlteracao existente para o salário fornecido (LoteEmpregadoAlteracao.CarregarPorEmpregadoFuncaoExclusivaSalario). Se encontrado, reutiliza o LoteAlteracao associado.
  2. Se objLoteAlteracao ainda for nulo, cria um novo LoteAlteracao, define FlagInativo = false e o salva.
  3. Cria um novo LoteEmpregadoAlteracao (ou reutiliza se carregado).
  4. Associa o Empregado, Salario (se fornecido) e EmpregadoFuncaoExclusiva (se fornecido).
  5. Associa o LoteAlteracao.
  6. Salva o LoteEmpregadoAlteracao.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoteEmpregadoAlteracao.CarregarPorEmpregadoFuncaoExclusivaSalario, LoteAlteracao.Save e LoteEmpregadoAlteracao.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.
  1. 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.
  2. Constrói uma cláusula WHERE dinâmica (query) com base nos filtros fornecidos.
  3. Executa a query Splistarempaltsalfunc concatenada com a query dinâmica usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader e popula um Dictionary<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 DataTable para registrar erros de alteração de salário/função dentro de um DataSet.
  1. Adiciona uma nova tabela ao DataSet com o nomeTabela.
  2. 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.
  1. Cria e preenche parâmetros para @IDPESSOA_FISICA e @IDEMPRESA.
  2. Executa a query SPVERIFICARPESSOAFISICAESTAEMPREGADA usando DataAccessLayer.ExecuteReader.
  3. 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.
  1. Completa o objeto Contrato do empregado.
  2. Carrega o PeriodoCalculoFilial aberto para a filial gestora do contrato.
  3. 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 DataAdmissao do empregado com esses períodos.
  • Retorna true se a data estiver no período vigente, false se 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.
  1. Chama ParametroEspecifico.RecuperarParametroEspecifico para obter o valor do parâmetro UtilizaMatriculaAlfanumerica.
  2. 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.
  1. Chama ParametroEspecifico.RecuperarParametroEspecifico para obter o valor do parâmetro GeracaoAutomaticaMatricula.
  2. Converte o valor para bool.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ParametroEspecifico.RecuperarParametroEspecifico.

VerificarGeracaoMatricula(Empresa empresa, Filial filial, Contrato contrato)

  • Lógica: Sobrecarga de VerificarGeracaoMatricula sem transação.
  1. Chama ParametroEspecifico.RecuperarParametroEspecifico para obter o valor do parâmetro GeracaoAutomaticaMatricula.
  2. 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.
  1. Chama ParametroEspecifico.RecuperarParametroEspecifico para obter o valor do parâmetro GeracaoAutomaticaNumeroFichaRegistro.
  2. Converte o valor para bool.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ParametroEspecifico.RecuperarParametroEspecifico.

VerificarGeracaoFichaRegistro(Empresa empresa, Filial filial, Contrato contrato)

  • Lógica: Sobrecarga de VerificarGeracaoFichaRegistro sem transação.
  1. Chama ParametroEspecifico.RecuperarParametroEspecifico para obter o valor do parâmetro GeracaoAutomaticaNumeroFichaRegistro.
  2. 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.
  1. Carrega o parâmetro GeracaoAutomoticaMatriculaPorFilial.
  2. Carrega o objeto Contrato.
  3. Se o parâmetro indicar geração por empresa, chama contrato.Empresa.RecuperarProximaMatricula.
  4. Se o parâmetro indicar geração por filial, chama contrato.FilialGestora.RecuperarProximaMatricula.
  5. Retorna a matrícula incrementada em 1.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama Parametro.LoadObject, Contrato.LoadObject, Empresa.RecuperarProximaMatricula ou Filial.RecuperarProximaMatricula.

GerarFichaRegistroAutomatica(int idContrato, SqlTransaction trans)

  • Lógica: Gera a próxima ficha de registro automática para um contrato.
  1. Carrega o parâmetro GeracaoAutomoticaMatriculaPorFilial.
  2. Carrega o objeto Contrato.
  3. Se o parâmetro indicar geração por empresa, e a empresa tiver NumeroSementeFicha, chama contrato.Empresa.RecuperarProximaFichaRegistro.
  4. Se o parâmetro indicar geração por filial, e a filial tiver NumeroSementeFicha, chama contrato.FilialGestora.RecuperarProximaFichaRegistro.
  5. Retorna a ficha de registro incrementada em 1.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama Parametro.LoadObject, Contrato.LoadObject, Empresa.RecuperarProximaFichaRegistro ou Filial.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.
  1. Determina o idEmpresa e idFilial com base em idfContrato ou idfCentroResultado.
  2. Carrega o parâmetro GeracaoAutomoticaMatriculaPorFilial (para matrículas) ou CriterioControleSequenciaFichaRegistro (para fichas) para determinar se a geração é por empresa ou filial.
  3. Cria um parâmetro @IDF com o ID da empresa ou filial, conforme o critério.
  4. Executa a query SPSELECTMATRICULAEFICHACADASTRADASPOREMPRESA ou SPSELECTMATRICULAEFICHACADASTRADASPORFILIALGESTORA com base no critério.
  5. Itera sobre o IDataReader e adiciona as matrículas ou fichas à lista de retorno.
  • Stored Procedures chamadas:
  • SPSELECTMATRICULAEFICHACADASTRADASPOREMPRESA: SQL de SELECT que busca NUM_MATRICULA e NUM_FICHA_REGISTRO de TAB_EMPREGADO_ADMISSAO_FUTURA e TAB_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).
  1. Completa o objeto Empregado.
  2. 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).
  1. Adiciona o empregado à fila de cálculo de benefício (AdicionarItemFilaCalculoBeneficio).
  2. 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 AdicionarFilaDeCalculo que permite um idUsuario opcional. 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.
  1. Cria e preenche um parâmetro @Idf_Pessoa_Fisica.
  2. Executa a query SPVERIFICAPRIMEIROEMPREGO usando DataAccessLayer.ExecuteScalar para contar os empregos.
  3. Retorna true se a contagem for 0.
  • 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.
  1. Itera sobre cada DataRow no DataTable de entrada:
  • Carrega o objeto Empregado.
  • Se idfMotivoAlteracao for 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.VerificarHoleriteAltFunc para 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 AlterarSalarioPosExperiencia para 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.
  1. Carrega o objeto Empregado e o salário atual (Salario.RecuperarSalarioAtivoAltLote).
  2. Validação: Se não houver salário atual, registra erro.
  3. Calcula o salarioFinal e salarioComparativo usando CalcularValorSalario.
  4. Verifica Período de Cálculo:
  • Chama VerificarPeriodoCalculoData para determinar se a data está no período atual ou futuro.
  • Se no período atual:
  • Validação: Se a data for anterior ou igual à DataInicioVigencia do 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 salarioComparativo for igual ao ValorSalario atual, registra erro (mesmo valor).
  • Validação (comentada): Havia uma validação para redução de salário sem redução de jornada.
  • Chama NovoSalarioEmpregado para criar/atualizar o salário.
  • Chama LoteAlteracaoEmpregado e 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 salarioComparativo for igual ao ValorSalario atual, registra erro (mesmo valor).
  • Validação: Se o salarioComparativo for menor que o ValorSalario atual, registra um aviso (redução de salário sem redução de jornada).
  • Chama NovoSalarioEmpregado para criar/atualizar o salário.
  • Chama LoteAlteracaoEmpregado e 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).
  1. Carrega o objeto Empregado.
  2. Obtém a lista de salários do empregado (Salario.GetListaSalariosEmpregado).
  3. Se houver salários:
  • Pega o primeiro salário (admissão/experiência).
  • Chama Holerite.VerificarHoleriteAltFunc para verificar holerite pago. Se sim, registra erro.
  • Calcula o salarioFinal e salarioComparativo usando CalcularValorSalario.
  • Validação: Chama VerificarValorSalario para 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 NovoSalarioEmpregadoAdmissao para atualizar o primeiro salário.
  • Adiciona à fila de cálculo.
  1. 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).
  1. Inicializa salarioComparativo e salarioFinal.
  2. Se tipoAlteracao for “PercentualAumento”:
  • Calcula o novo salário aplicando o percentual ao valorAtual.
  1. Se tipoAlteracao for “ValorAumento”:
  • Soma valorAumento ao valorAtual.
  1. Se tipoAlteracao for “NovoSalario”:
  • Se o empregado for horista, recupera a carga horária ativa (EmpregadoCargaHoraria.RecuperarAtiva) e calcula o salarioFinal como valorAumento (valor por hora) multiplicado pela carga horária.
  • Caso contrário, salarioFinal é simplesmente valorAumento.
  1. Aplica arredondamento se flagArredondaValor for true.
  2. 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.
  1. Recupera o período de cálculo atual da filial (PeriodoCalculoFilial.CarregarPeriodoAberto).
  2. Recupera o período de cálculo ao qual a data pertence (PeriodoCalculo.RecuperarPorData).
  3. Define idfPeriodoCalculo com o ID do período encontrado para a data.
  4. Retorna true se o período atual e o período da data forem o mesmo.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama PeriodoCalculoFilial.CarregarPeriodoAberto e PeriodoCalculo.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.
  1. Itera sobre a lista de salarios.
  2. Se valor for maior que o ValorSalario de qualquer item na lista, retorna false.
  3. 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 DataSet para relatórios de alteração de salário/função.
  1. Define a coluna “MsgErro” da row com a msg.
  2. Se ds for nulo, o inicializa.
  3. Se a tabela tableName não existir no ds, chama TabelaErrosAlteracaoSalarioFuncao para criá-la.
  4. Adiciona a row (com a mensagem de erro) à tabela no ds.
  • 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.
  1. Cria e preenche parâmetros para @ID_PESSOA, @DATA, @ID_CONTRATO.
  2. Executa uma query SQL que faz um UNION ALL entre TAB_EMPREGADO e TAB_EMPREGADO_ADMISSAO_FUTURA para contar registros com os mesmos critérios.
  3. Retorna true se a contagem for 0 (não existe duplicidade), false caso contrário.
  • Stored Procedures chamadas: Nenhuma diretamente. Constrói uma query SQL dinâmica.

RecuperarPensionistas()

  • Lógica: Retorna uma lista de objetos Pensionista vinculados ao empregado atual.
  1. Cria e preenche um parâmetro @Idf_Empregado.
  2. Executa uma query SQL para buscar idf_Pensionista da TAB_Pensionista.
  3. Itera sobre o IDataReader, cria objetos Pensionista com 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 Pensionista vinculados ao empregado atual, considerando um PeriodoCalculo.
  1. Cria e preenche parâmetros para @Idf_Empregado e @Idf_Periodo_Calculo.
  2. Executa uma query SQL que une TAB_Periodo_Calculo, TAB_Pensionista e TAB_Pensionista_Forma_Pagamento, filtrando por vigência.
  3. Itera sobre o IDataReader, cria objetos Pensionista com 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.
  1. Cria e preenche parâmetros para @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Departamento, @Idf_Empregado.
  2. Executa a query SELLISTAREMPREGADOSPORFILTROCONTRATO usando DataAccessLayer.ExecuteReader.
  3. Itera sobre o IDataReader, cria objetos Empregado com o ID e os completa (objEmpregado.CompleteObject()), adicionando-os à lista.
  • Stored Procedures chamadas:
  • SELLISTAREMPREGADOSPORFILTROCONTRATO: SQL de SELECT que une TAB_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

Digite para pesquisar...

Scroll para zoom · Esc para fechar

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