WebFoPag ~92 min

🛠️ Documentação Técnica: Pagar Benefícios

[!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 “Pagamento de Benefício” (PagamentoBeneficio.aspx) tem como propósito principal permitir o gerenciamento e a efetivação de pagamentos de benefícios pendentes para empregados. Ela oferece funcionalidades para pesquisar pagamentos com base em diversos filtros, selecionar pagamentos individuais ou em massa, excluir pagamentos selecionados e confirmar a efetivação do pagamento, incluindo a geração de arquivos para impressão de cheques e relatórios de conferência. A tela também lida com a integração com o sistema EPAYS para pagamentos via TEDPays e o tratamento de erros durante o processo de pagamento.

O contexto no sistema é o módulo de Folha de Pagamento (WebFoPag), onde os usuários podem administrar os benefícios concedidos aos empregados. Os usuários que utilizam esta tela são, provavelmente, administradores de folha de pagamento, analistas de RH ou outros perfis com permissão para efetuar e gerenciar pagamentos de benefícios.

🗂️ 2. Tipos/Modalidades

A tela PagamentoBeneficio.aspx apresenta as seguintes variações de comportamento e modos de operação:

  • Tipo de Estrutura Gerencial da Empresa: A tela se adapta ao tipo de estrutura gerencial configurada para a empresa logada. Se a empresa utiliza “Centro de Resultado”, campos relacionados a Cliente, Tipo de Contrato, Contrato Mãe, Contrato Filho e Departamento são ocultados, e campos de Centro de Resultado e Lotação são exibidos. Caso contrário, os campos de Contrato e Departamento são exibidos, e Centro de Resultado e Lotação são ocultados.
  • Permissões de Usuário: A visibilidade e a habilitação de botões e funcionalidades são controladas por permissões de usuário:
  • VisualizarPagamentoBeneficio: Permissão para acessar a tela.
  • PagarBeneficio: Permissão para habilitar o botão “Pagar”.
  • AbrirPagamentoBeneficio: Permissão para habilitar o botão “Confirmar” na modal de abertura de pagamento.
  • PermitirConfigurarComoEfetuarPagamentoBeneficio: Permissão para habilitar a edição dos campos de “Forma de Pagamento Confirmação”, “Banco Confirmação” e “Convênio Bancário Confirmação”. Se o usuário não tiver essa permissão, esses campos podem ser desabilitados ou ter sua obrigatoriedade alterada.
  • SenhaMaster: Permissão especial que pode anular a trava de data de corte para pagamento de cheque.
  • Forma de Pagamento do Benefício: A seleção da “Forma de Pagamento do Benefício” (Espécie, Crédito, Informação Fornecedor) influencia a obrigatoriedade e o comportamento dos campos de “Forma de Pagamento Empregado”, “Banco Conta Empregado” e os campos de confirmação de pagamento.
  • Pagamento TEDPays: Se a integração com EPAYS e a utilização de pagamentos via TEDPays estiverem habilitadas, um placeholder para “Pagamento TEDPays” é exibido, e a seleção “Sim” ou “Não” para TEDPays afeta a obrigatoriedade e habilitação dos campos de banco e tipo de conta.
  • Validação de Data de Pagamento Retroativa: Ao tentar efetuar um pagamento com data retroativa em relação ao período de cálculo aberto, uma modal de confirmação é exibida, alertando sobre possíveis impactos na DARF.
  • Exclusão de Pagamentos: Permite excluir pagamentos pendentes individualmente ou em massa, removendo-os da lista de pagamentos a serem processados.
  • Abertura de Pagamento com Erro: Permite “abrir” um pagamento que foi processado com erro (e.g., erro TEDPays), resetando seu status para pendente e permitindo uma nova tentativa de pagamento.
  • Geração de Relatórios: A tela oferece botões para redirecionar para telas de geração de relatórios específicos, como “Impressão de Cheque”, “Relatório Conferência Benefício” e “Relatório Valor Líquido Folha”.

🖥️ 3. Interface — Campos e Controles

NomeTipoObrigatórioRegra
vsValidacaoPesquisarEmployerValidationSummary⚪ NãoExibe erros de validação para o grupo “Pesquisar”
vsValidacaoPagarEmployerValidationSummary⚪ NãoExibe erros de validação para o grupo “Pagar”
lblTipoBeneficioLabel⚪ NãoRótulo para lsTipoBeneficio
lsTipoBeneficioListaSugestoes⚪ NãoCampo de seleção para o tipo de benefício. Mensagem de erro: “Campo Tipo de Benefício é obrigatório.” e “Campo Tipo de Benefício preenchido com valor inválido.”
divBeneficioDiv⚪ NãoContêiner para o campo de Regra de Benefício. Visibilidade controlada.
lblBeneficioLabel⚪ NãoRótulo para txtBeneficio
txtBeneficioLocalizarBeneficio⚪ NãoCampo de busca para a regra de benefício. Mensagem de erro: “Campo Inválido.”
lblFormaPagamentoBeneficioLabel⚪ NãoRótulo para lsFormaPagamentoBeneficio
lsFormaPagamentoBeneficioListaSugestoes⚪ NãoCampo de seleção para a forma de pagamento do benefício. Mensagem de erro: “Campo Forma de Pagamento do Benefício é obrigatório.” e “Campo Forma de Pagamento do Benefício preenchido com valor inválido.”
lblFilialLabel⚪ NãoRótulo para txtFilial
txtFilialLocalizarFilial⚪ NãoCampo de busca para a filial. Mensagem de erro: “Campo Filial é obrigatório.” e “Campo Filial preenchido com valor em um formato inválido.”
divClienteDiv⚪ NãoContêiner para o campo de Cliente. Visibilidade controlada.
lblClienteLabel⚪ NãoRótulo para txtCliente
txtClienteLocalizarCliente⚪ NãoCampo de busca para o cliente. Mensagem de erro: “Campo Cliente é obrigatório.” e “Campo Cliente preenchido com valor em um formato inválido.”
divTipoContratoDiv⚪ NãoContêiner para o campo de Tipo de Contrato. Visibilidade controlada.
lblTipoContratoLabel⚪ NãoRótulo para lsTipoContrato
lsTipoContratoListaSugestoes⚪ NãoCampo de seleção para o tipo de contrato. Mensagem de erro: “Campo Tipo de Contrato é obrigatório.” e “Campo Tipo de Contrato preenchido com valor inválido.”
divContratoMaeDiv⚪ NãoContêiner para o campo de Contrato Mãe. Visibilidade controlada.
lblContratoMaeLabel⚪ NãoRótulo para txtContratoMae
txtContratoMaeLocalizarContrato⚪ NãoCampo de busca para o contrato mãe. Mensagem de erro: “Campo Inválido.” e “Campo Obrigatório.”
divContratoDiv⚪ NãoContêiner para o campo de Contrato Filho. Visibilidade controlada.
lblContratoLabel⚪ NãoRótulo para txtContrato
txtContratoLocalizarContrato⚪ NãoCampo de busca para o contrato filho. Mensagem de erro: “Campo Contrato é obrigatório.” e “Campo Contrato preenchido com valor em um formato inválido.”
divDepartamentoDiv⚪ NãoContêiner para o campo de Departamento. Visibilidade controlada.
lblDepartamentoLabel⚪ NãoRótulo para txtDepartamento
txtDepartamentoLocalizarDepartamento⚪ NãoCampo de busca para o departamento. Mensagem de erro: “Campo Departamento é obrigatório.” e “Campo Departamento preenchido com valor em um formato inválido.”
divCentroResultadoDiv⚪ NãoContêiner para o campo de Centro de Resultado. Visibilidade controlada.
lblCentroResultadoLabel⚪ NãoRótulo para txtCentroResultado
txtCentroResultadoLocalizarCentroResultado⚪ NãoCampo de busca para o centro de resultado. Mensagem de erro: “Campo Centro de Resultado é obrigatório.” e “Campo Centro de Resultado preenchido com valor em um formato inválido.”
lblFuncaoLabel⚪ NãoRótulo para txtFuncao
txtFuncaoLocalizarFuncao⚪ NãoCampo de busca para a função. Mensagem de erro: “Campo Função é obrigatório.” e “Campo Função preenchido com valor em um formato inválido.”
divSupervisorDiv⚪ NãoContêiner para o campo de Supervisor. Visibilidade controlada.
lblSupervisorLabel⚪ NãoRótulo para txtSupervisorGeral
txtSupervisorGeralLocalizarSupervisor⚪ NãoCampo de busca para o supervisor. Mensagem de erro: “Campo Supervisor é Obrigatório.” e “Campo Filial deve conter uma das sugestões.”
divLotacaoDiv⚪ NãoContêiner para o campo de Lotação. Visibilidade controlada.
lblLotacaoLabel⚪ NãoRótulo para txtLotacao
txtLotacaoLocalizarLotacao⚪ NãoCampo de busca para a lotação.
lblTipoVinculoLabel⚪ NãoRótulo para lsTipoVinculo
lsTipoVinculoListaSugestoes⚪ NãoCampo de seleção para o tipo de vínculo. Mensagem de erro: “Campo Tipo de Vínculo é obrigatório.” e “Campo Tipo de Vínculo preenchido com valor inválido.”
lblEmpregadoLabel⚪ NãoRótulo para txtEmpregado
txtEmpregadoLocalizarEmpregado⚪ NãoCampo de busca para o empregado. Mensagem de erro: “Campo empregado é obrigatório.” e “Campo Empregado Preenchido com valor em um formato inválido.”
lblFormaPagamentoLabel⚪ NãoRótulo para lsFormaPagamento
lsFormaPagamentoListaSugestoes⚪ NãoCampo de seleção para a forma de pagamento do empregado. Mensagem de erro: “Campo Forma de Pagamento do Empregado é obrigatório.” e “Campo Forma de Pagamento do Empregado preenchido com valor inválido.”
plhPagamentoTedPaysPlaceHolder⚪ NãoContêiner para os campos de Pagamento TEDPays. Visibilidade controlada.
lblPagamentoTedPaysLabel⚪ NãoRótulo para lsPagamentoTedPays
lsPagamentoTedPaysListaSugestoes🔴 SimCampo de seleção para Pagamento TEDPays. Mensagem de erro: “Campo Pagamento TEDPays é Obrigatório.” e “Campo Pagamento TEDPays deve conter uma das sugestões.”
lblBancoLabel⚪ NãoRótulo para txtBanco
txtBancoLocalizarBanco⚪ NãoCampo de busca para o banco da conta do empregado. Mensagem de erro: “Campo Banco da Conta do Empregado é obrigatório.” e “Campo Banco da Conta do Empregado preenchido com valor em um formato inválido.”
lblTipoContaLabel⚪ NãoRótulo para lsTipoConta
lsTipoContaListaSugestoes⚪ NãoCampo de seleção para o tipo de conta do empregado. Mensagem de erro: “Campo Tipo de Conta do Empregado é obrigatório.” e “Campo Tipo de Conta do Empregado preenchido com valor inválido.”
lblPeriodoLabel⚪ NãoRótulo para lsPeriodoMes
lblPeriodoMesLabel⚪ NãoRótulo secundário para lsPeriodoMes
lsPeriodoMesListaSugestoes⚪ NãoCampo de seleção para o mês do período. Mensagem de erro: “Campo Mês é obrigatório.” e “Campo Mês preenchido com valor inválido.”
lblPeriodoAnoLabel⚪ NãoRótulo secundário para txtPeriodoAno
txtPeriodoAnoControlAlfaNumerico⚪ NãoCampo de texto para o ano do período. Mensagem de erro: “Campo Ano é obrigatório.”, “Campo Ano preenchido com valor em um formato inválido.”, “Campo Ano preenchido com um valor maior que o máximo permitido.” e “Campo Ano preenchido com um valor menor que mínimo permitido.”
btnPesquisarButton⚪ NãoBotão para pesquisar pagamentos pendentes.
divGvwPendenciaPagamentoDiv⚪ NãoContêiner para a grid de pagamentos pendentes.
ddlSelecaoGridPendenciaPagamentoDropDownList⚪ NãoDropdown para ações em massa na grid (Marcar/Desmarcar).
gvwPendenciaPagamentoEmployerGrid⚪ NãoGrid de pagamentos pendentes. Colunas: CPF, Matrícula, Empregado, Período, Tipo Benefício, R$, Banco, Agência, Conta/Chave, Tipo Conta, Forma Pagamento Empregado, Forma Pagamento Benefício, Ação (checkbox e botão de aviso).
ckbSelecionarPagamentoControlCheckBox⚪ NãoCheckbox para selecionar pagamentos na grid.
btnAbrirPagamentoImageButton⚪ NãoBotão de aviso para abrir pagamento com erro na grid.
btnExcluirSelecionadosButton⚪ NãoBotão para excluir pagamentos selecionados na grid.
lblValorTotalConfirmacaoLabel⚪ NãoRótulo para txtValorTotalConfirmacao
txtValorTotalConfirmacaoValorNumericoTextBox🔴 SimCampo de texto para o valor total de confirmação. Desabilitado. Mensagem de erro: “Campo Valor Total é obrigatório.” e “Campo valor total preenchido com valor em um formato inválido.”
lblDataPagamentoConfirmacaoLabel⚪ NãoRótulo para txtDataPagamentoConfirmacao
txtDataPagamentoConfirmacaoDataTextBox🔴 SimCampo de data para a data de pagamento. Mensagem de erro: “Campo Data de Pagamento é obrigatório.” e “Campo Data de Pagamento preenchido com valor em um formato inválido.”
lblFormaPagamentoConfirmacaoLabel⚪ NãoRótulo para lsFormaPagamentoConfirmacao
lsFormaPagamentoConfirmacaoListaSugestoes🔴 SimCampo de seleção para a forma de pagamento de confirmação. Mensagem de erro: “Campo Forma de Pagamento é obrigatório.” e “Campo Forma de Pagamento preenchido com valor inválido.”
lblBancoConfirmacaoLabel⚪ NãoRótulo para txtBancoConfirmacao
txtBancoConfirmacaoLocalizarBanco⚪ NãoCampo de busca para o banco de confirmação. Desabilitado. Mensagem de erro: “Campo Banco é obrigatório.” e “Campo Banco preenchido com valor em um formato inválido.”
lblConvenioBancarioConfirmacaoLabel⚪ NãoRótulo para txtConvenioBancarioConfirmacao
txtConvenioBancarioConfirmacaoLocalizarConvenioBancario⚪ NãoCampo de busca para o convênio bancário de confirmação. Desabilitado. Mensagem de erro: “Campo Convênio Bancário é obrigatório.” e “Campo Convênio Bancário preenchido com valor em um formato inválido.”
btnAlterarConvenioBancarioButton⚪ NãoBotão para alterar o convênio bancário (requer senha master).
btnPagarButton⚪ NãoBotão para efetuar o pagamento.
btnImprimirChequeButton⚪ NãoBotão para redirecionar para a tela de impressão de cheque.
btnRelatorioConfereciaBeneficioButton⚪ NãoBotão para redirecionar para o relatório de conferência de benefício.
btnRelatorioValorLiquidoFolhaButton⚪ NãoBotão para redirecionar para o relatório de valor líquido da folha.
btnLimparButton⚪ NãoBotão para limpar os campos da tela.
btnVoltarButton⚪ NãoBotão para voltar para a tela anterior.
ucModalConfirmacaoEmployerModalConfirmacao⚪ NãoModal de confirmação genérica.
divGvwErrosDiv⚪ NãoContêiner para a grid de erros. Visibilidade controlada.
lblTituloGvwErrosLabel⚪ NãoTítulo para a grid de erros.
gvwErrosEmployerGrid⚪ NãoGrid de erros durante o pagamento. Colunas: Matrícula, Empregado, Valor, Ocorrência.
modalConfirmacaoSenhaConfirmacaoSenha⚪ NãoModal para confirmação de senha (e.g., para alterar convênio bancário).
modalConfirmacaoSenhaTedPaysConfirmacaoSenha⚪ NãoModal para confirmação de senha específica para TEDPays.
pnlModalConfirmacaoAberturaPagamentoPanel⚪ NãoPainel da modal de confirmação de abertura de pagamento.
btnFecharModalConfirmacaoAberturaPagamentoImageButton⚪ NãoBotão para fechar a modal de confirmação de abertura de pagamento.
lblEmpregadoModalConfirmacaoAberturaPagamentoLabel⚪ NãoRótulo para txtEmpregadoModalConfirmacaoAberturaPagamento
txtEmpregadoModalConfirmacaoAberturaPagamentoLocalizarEmpregado🔴 SimCampo de busca para o empregado na modal de abertura de pagamento. Desabilitado. Mensagem de erro: “Campo Empregado é obrigatório.” e “Campo Empregado preenchido com valor em um formato inválido.”
lblPeriodoModalConfirmacaoAberturaPagamentoLabel⚪ NãoRótulo para lsPeriodoMesModalConfirmacaoAberturaPagamento
lblPeriodoMesModalConfirmacaoAberturaPagamentoLabel⚪ NãoRótulo secundário para lsPeriodoMesModalConfirmacaoAberturaPagamento
lsPeriodoMesModalConfirmacaoAberturaPagamentoListaSugestoes🔴 SimCampo de seleção para o mês do período na modal de abertura de pagamento. Desabilitado. Mensagem de erro: “Campo Mês é obrigatório.” e “Campo Mês preenchido com valor inválido.”
lblPeriodoAnoModalConfirmacaoAberturaPagamentoLabel⚪ NãoRótulo secundário para txtPeriodoAnoModalConfirmacaoAberturaPagamento
txtPeriodoAnoModalConfirmacaoAberturaPagamentoControlAlfaNumerico🔴 SimCampo de texto para o ano do período na modal de abertura de pagamento. Desabilitado. Mensagem de erro: “Campo ano é obrigatório.”, “Campo ano preenchido com valor em um formato inválido.”, “Campo ano preenchido com um valor maior que o máximo permitido.” e “Campo ano preenchido com um valor menor que mínimo permitido.”
lblValorPagamentoModalConfirmacaoAberturaPagamentoLabel⚪ NãoRótulo para txtValorPagamentoModalConfirmacaoAberturaPagamento
txtValorPagamentoModalConfirmacaoAberturaPagamentoValorNumericoTextBox🔴 SimCampo de texto para o valor do pagamento na modal de abertura de pagamento. Desabilitado. Mensagem de erro: “Campo Valor Pagamento é obrigatório.” e “Campo Valor Pagamento preenchido com valor em um formato inválido.”
gvwErrosModalConfirmacaoAberturaPagamentoEmployerGrid⚪ NãoGrid de erros na modal de confirmação de abertura de pagamento. Colunas: Código, Descrição.
btnConfirmarModalConfirmacaoAberturaPagamentoButton⚪ NãoBotão para confirmar a abertura do pagamento na modal.
btnCancelarModalConfirmacaoAberturaPagamentoButton⚪ NãoBotão para cancelar a abertura do pagamento na modal.
hfIdPagamentoPendenteHiddenField⚪ NãoArmazena o ID do pagamento pendente.
hfIdPagamentoPendenteBeneficioFornecidoHiddenField⚪ NãoArmazena o ID do pagamento pendente de benefício fornecido.
hfModalConfirmacaoAberturaPagamentoHiddenField⚪ NãoCampo auxiliar para o ModalPopupExtender.
mpeModalConfirmacaoAberturaPagamentoModalPopupExtender⚪ NãoExtender para exibir a modal de confirmação de abertura de pagamento.

📑 4. Abas e Seções

A tela é organizada em seções principais, sem o uso de abas explícitas, mas com painéis e um modal:

  • Painel de Pesquisa (<div class="painel_padrao">): Contém os campos de filtro para a pesquisa de pagamentos pendentes.
  • Tipo de Benefício
  • Regra de Benefício (divBeneficio)
  • Forma de Pagamento do Benefício
  • Filial
  • Cliente (divCliente)
  • Tipo de Contrato (divTipoContrato)
  • Contrato Mãe (divContratoMae)
  • Contrato Filho (divContrato)
  • Departamento (divDepartamento)
  • Centro de Resultado (divCentroResultado)
  • Função
  • Supervisor (divSupervisor)
  • Lotação (divLotacao)
  • Tipo de Vínculo
  • Empregado
  • Forma de Pagamento Empregado
  • Pagamento TEDPays (plhPagamentoTedPays)
  • Banco Conta Empregado
  • Tipo Conta Empregado
  • Período (Mês e Ano)
  • Botões de Ação de Pesquisa (<div class="panel_botoes_secao">): Contém o botão “Pesquisar”.
  • Seção “Pagamentos Pendentes” (divGvwPendenciaPagamento): Exibe a lista de pagamentos pendentes em uma grid.
  • Dropdown de seleção em massa (ddlSelecaoGridPendenciaPagamento).
  • Grid de pagamentos pendentes (gvwPendenciaPagamento).
  • Botão “Excluir Selecionados”.
  • Seção “Confirmar Pagamento” (upnConfirmarPagamento): Contém os campos para a confirmação e efetivação dos pagamentos.
  • Valor Total
  • Data de Pagamento
  • Forma de Pagamento
  • Banco
  • Convênio Bancário
  • Botão “Alterar Convênio Bancário”.
  • Botões de Ação de Pagamento (<div class="panel_botoes_secao">): Contém os botões “Pagar”, “Imprimir Cheque”, “Relatório Conferência Benefício”, “Relatório Valor Líquido Folha”, “Limpar” e “Voltar”.
  • Listagem de Erros (divGvwErros): Um painel oculto que se torna visível para exibir erros de processamento em uma grid (gvwErros).
  • Modal de Confirmação de Senha (modalConfirmacaoSenha): Uma modal genérica para solicitar senha master para operações sensíveis.
  • Modal de Confirmação de Senha TEDPays (modalConfirmacaoSenhaTedPays): Uma modal específica para solicitar senha para operações TEDPays.
  • Modal de Confirmação de Abertura de Pagamento (pnlModalConfirmacaoAberturaPagamento): Uma modal para confirmar a reabertura de um pagamento com erro, exibindo detalhes do empregado, período e valor, além de uma grid com os erros anteriores.

🛡️ 5. Regras de Negócio

5.1. Validações de Campos

  • lsTipoBeneficio:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo Tipo de Benefício é obrigatório.” (summary) e “Campo Tipo de Benefício preenchido com valor inválido.” (summary).
  • txtBeneficio:
  • Mensagem de erro: “Campo Inválido.” (formato).
  • lsFormaPagamentoBeneficio:
  • Obrigatório: Não (para pesquisa), mas pode se tornar true se o usuário não tiver a permissão PermitirConfigurarComoEfetuarPagamentoBeneficio.
  • Mensagem de erro: “Campo Forma de Pagamento do Benefício é obrigatório.” (summary) e “Campo Forma de Pagamento do Benefício preenchido com valor inválido.” (summary).
  • txtFilial:
  • Obrigatório: false se PermiteEfetuarPagamentoTodasFiliais for true, caso contrário true.
  • Mensagem de erro: “Campo Filial é obrigatório.” (summary) e “Campo Filial preenchido com valor em um formato inválido.” (summary).
  • txtCliente:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo Cliente é obrigatório.” (summary) e “Campo Cliente preenchido com valor em um formato inválido.” (summary).
  • lsTipoContrato:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo Tipo de Contrato é obrigatório.” (summary) e “Campo Tipo de Contrato preenchido com valor inválido.” (summary).
  • txtContratoMae:
  • Obrigatório: Não.
  • Mensagem de erro: “Campo Inválido.” (formato), “Campo Obrigatório.” (obrigatório), “Campo Contrato Mãe é Inválido.” (summary) e “Campo Contrato Mãe é Obrigatório.” (summary).
  • txtContrato:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo Contrato é obrigatório.” (summary) e “Campo Contrato preenchido com valor em um formato inválido.” (summary).
  • txtDepartamento:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo Departamento é obrigatório.” (summary) e “Campo Departamento preenchido com valor em um formato inválido.” (summary).
  • txtCentroResultado:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo Centro de Resultado é obrigatório.” (summary) e “Campo Centro de Resultado preenchido com valor em um formato inválido.” (summary).
  • txtFuncao:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo Função é obrigatório.” (summary) e “Campo Função preenchido com valor em um formato inválido.” (summary).
  • txtSupervisorGeral:
  • Obrigatório: Não.
  • Mensagem de erro: “Campo Supervisor é Obrigatório.” (summary) e “Campo Filial deve conter uma das sugestões.” (formato).
  • lsTipoVinculo:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo Tipo de Vínculo é obrigatório.” (summary) e “Campo Tipo de Vínculo preenchido com valor inválido.” (summary).
  • txtEmpregado:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo empregado é obrigatório.” (summary) e “Campo Empregado Preenchido com valor em um formato inválido.” (summary).
  • lsFormaPagamento:
  • Obrigatório: false se lsFormaPagamentoBeneficio.ValorInt for “Espécie”, caso contrário true se o usuário não tiver a permissão PermitirConfigurarComoEfetuarPagamentoBeneficio.
  • Mensagem de erro: “Campo Forma de Pagamento do Empregado é obrigatório.” (summary) e “Campo Forma de Pagamento do Empregado preenchido com valor inválido.” (summary).
  • lsPagamentoTedPays:
  • Obrigatório: Sim, se plhPagamentoTedPays estiver visível.
  • Mensagem de erro: “Campo Pagamento TEDPays é Obrigatório.” (summary) e “Campo Pagamento TEDPays deve conter uma das sugestões.” (summary).
  • txtBanco:
  • Obrigatório: false se lsFormaPagamentoBeneficio.ValorInt for “Espécie” ou se lsPagamentoTedPays for “Sim”, caso contrário true se o usuário não tiver a permissão PermitirConfigurarComoEfetuarPagamentoBeneficio.
  • Mensagem de erro: “Campo Banco da Conta do Empregado é obrigatório.” (summary) e “Campo Banco da Conta do Empregado preenchido com valor em um formato inválido.” (summary).
  • Se lsFormaPagamento.ValorInt for “Cheque”, o rótulo muda para “Banco Cheque” e as mensagens de erro são atualizadas para “Campo Banco do Cheque é obrigatório.” e “Campo Banco do Cheque preenchido com valor em um formato inválido.”.
  • lsTipoConta:
  • Obrigatório: Não.
  • Mensagem de erro: “Campo Tipo de Conta do Empregado é obrigatório.” (summary) e “Campo Tipo de Conta do Empregado preenchido com valor inválido.” (summary).
  • lsPeriodoMes:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo Mês é obrigatório.” (summary) e “Campo Mês preenchido com valor inválido.” (summary).
  • txtPeriodoAno:
  • Obrigatório: Não (para pesquisa).
  • Mensagem de erro: “Campo Ano é obrigatório.” (summary), “Campo Ano preenchido com valor em um formato inválido.” (summary), “Campo Ano preenchido com um valor maior que o máximo permitido.” (summary) e “Campo Ano preenchido com um valor menor que mínimo permitido.” (summary).
  • txtValorTotalConfirmacao:
  • Obrigatório: Sim.
  • Desabilitado.
  • Mensagem de erro: “Campo Valor Total é obrigatório.” (summary) e “Campo valor total preenchido com valor em um formato inválido.” (summary).
  • txtDataPagamentoConfirmacao:
  • Obrigatório: Sim.
  • Mensagem de erro: “Campo Data de Pagamento é obrigatório.” (summary) e “Campo Data de Pagamento preenchido com valor em um formato inválido.” (summary).
  • lsFormaPagamentoConfirmacao:
  • Obrigatório: Sim.
  • Mensagem de erro: “Campo Forma de Pagamento é obrigatório.” (summary) e “Campo Forma de Pagamento preenchido com valor inválido.” (summary).
  • txtBancoConfirmacao:
  • Obrigatório: true se lsFormaPagamentoConfirmacao.ValorInt for “Banco” ou “Cheque”.
  • Desabilitado por padrão, habilitado se o usuário tiver permissão PermitirConfigurarComoEfetuarPagamentoBeneficio.
  • Mensagem de erro: “Campo Banco é obrigatório.” (summary) e “Campo Banco preenchido com valor em um formato inválido.” (summary).
  • txtConvenioBancarioConfirmacao:
  • Obrigatório: true se lsFormaPagamentoConfirmacao.ValorInt for “Banco” ou “Cheque”.
  • Desabilitado por padrão, habilitado se o usuário tiver permissão PermitirConfigurarComoEfetuarPagamentoBeneficio ou se FlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBanco for true.
  • Mensagem de erro: “Campo Convênio Bancário é obrigatório.” (summary) e “Campo Convênio Bancário preenchido com valor em um formato inválido.” (summary).
  • txtEmpregadoModalConfirmacaoAberturaPagamento:
  • Obrigatório: Sim.
  • Desabilitado.
  • Mensagem de erro: “Campo Empregado é obrigatório.” (summary) e “Campo Empregado preenchido com valor em um formato inválido.” (summary).
  • lsPeriodoMesModalConfirmacaoAberturaPagamento:
  • Obrigatório: Sim.
  • Desabilitado.
  • Mensagem de erro: “Campo Mês é obrigatório.” (summary) e “Campo Mês preenchido com valor inválido.” (summary).
  • txtPeriodoAnoModalConfirmacaoAberturaPagamento:
  • Obrigatório: Sim.
  • Desabilitado.
  • Mensagem de erro: “Campo ano é obrigatório.” (summary), “Campo ano preenchido com valor em um formato inválido.” (summary), “Campo ano preenchido com um valor maior que o máximo permitido.” (summary) e “Campo ano preenchido com um valor menor que mínimo permitido.” (summary).
  • txtValorPagamentoModalConfirmacaoAberturaPagamento:
  • Obrigatório: Sim.
  • Desabilitado.
  • Mensagem de erro: “Campo Valor Pagamento é obrigatório.” (summary) e “Campo Valor Pagamento preenchido com valor em um formato inválido.” (summary).
  • Validação de Pagamentos Pendentes: Antes de pagar, a tela verifica se há pagamentos selecionados na lista. Se não houver, exibe a mensagem “Nenhum pagamento pendente de benefício foi encontrado.” (TipoMensagem.Aviso).
  • Validação de Forma de Pagamento de Confirmação: Antes de pagar, verifica se uma forma de pagamento foi selecionada. Se não, exibe “Não foi identificada uma forma de pagamento.” (TipoMensagem.Erro).
  • Validação de Convênio Bancário: Se a forma de pagamento de confirmação for “Banco” ou “Cheque”, verifica se um convênio bancário foi especificado. Se não, exibe “Nenhum convênio bancário especificado.” (TipoMensagem.Erro).
  • Validação de Feriado: Antes de pagar, verifica se a txtDataPagamentoConfirmacao cai em um feriado. Se sim, e a filial não permite pagamento em feriado, exibe “Pagamento não realizado. Data de pagamento se trata de feriado.” (TipoMensagem.Erro). (BLL.Feriado.ValidarPagamentoFeriado)
  • Validação de Data de Pagamento Retroativa: Se a txtDataPagamentoConfirmacao for anterior à DataInicio do PeriodoCalculo aberto, exibe uma modal de confirmação com a mensagem “Data de pagamento retroativa pode interferir no valor da DARF já processada. Deseja continuar?”. (ValidarNecessidadeConfirmacaoUsuario)
  • Validação de Pagamento TEDPays sem Banco: Se pagamentoTEDPays for true e txtBancoConfirmacao.IdBancoSelecionado não tiver valor, lança uma Exception com a mensagem “Não é permitido pagamento TEDPays sem informar o banco.”. (Pagar)

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

  • divCliente, divTipoContrato, divContratoMae, divContrato, divDepartamento, divCentroResultado, divLotacao: A visibilidade desses painéis é controlada pela propriedade UtilizaCentroResultado, que é definida com base no TipoEstruturaGerencial da Empresa logada.
  • Se UtilizaCentroResultado for true (Centro de Resultado):
  • divCliente, divTipoContrato, divContratoMae, divContrato, divDepartamento são ocultados (display: none).
  • divCentroResultado, divLotacao são exibidos (display: block).
  • Se UtilizaCentroResultado for false (Contrato e Departamento):
  • divCliente, divTipoContrato, divContratoMae, divContrato, divDepartamento são exibidos (display: block).
  • divCentroResultado, divLotacao são ocultados (display: none).
  • txtFilial.Obrigatorio: Definido como true por padrão, mas se PermiteEfetuarPagamentoTodasFiliais for true, torna-se false.
  • txtFuncao.Enabled: Habilitado se txtContrato.IdContratoSelecionado tiver valor. Se UtilizaCentroResultado for true, é sempre habilitado.
  • txtDepartamento.Enabled: Habilitado se txtContrato.IdContratoSelecionado tiver valor.
  • plhPagamentoTedPays.Visible: Visível se UtilizaPagamentosViaTEDPays for true E lsFormaPagamento.ValorInt for “Banco”.
  • txtBanco.Enabled:
  • Desabilitado por padrão.
  • Habilitado se lsFormaPagamento.ValorInt tiver valor e não for “Dinheiro”.
  • Se lsFormaPagamento.ValorInt for “Banco” e UtilizaPagamentosViaTEDPays for true e lsPagamentoTedPays for “Sim”, txtBanco.Obrigatorio torna-se false e txtBanco.Enabled permanece true.
  • lsTipoConta.Enabled: Habilitado se lsFormaPagamento.ValorInt for “Banco”. Caso contrário, desabilitado e seu valor é limpo.
  • lsFormaPagamentoBeneficio.Obrigatorio: Se o usuário não tiver a permissão PermitirConfigurarComoEfetuarPagamentoBeneficio, torna-se true.
  • lsFormaPagamento.Obrigatorio: Se o usuário não tiver a permissão PermitirConfigurarComoEfetuarPagamentoBeneficio, torna-se true.
  • lsFormaPagamentoConfirmacao.Enabled: Desabilitado se o usuário não tiver a permissão PermitirConfigurarComoEfetuarPagamentoBeneficio.
  • txtBancoConfirmacao.Enabled:
  • Desabilitado por padrão.
  • Habilitado se lsFormaPagamentoConfirmacao.ValorInt for “Banco” ou “Cheque” E o usuário tiver a permissão PermitirConfigurarComoEfetuarPagamentoBeneficio.
  • Se lsFormaPagamentoConfirmacao.ValorInt for “Banco” e UtilizaPagamentosViaTEDPays for true e lsPagamentoTedPays for “Sim”, txtBancoConfirmacao.Enabled é false e seu texto é limpo.
  • txtConvenioBancarioConfirmacao.Enabled:
  • Desabilitado por padrão.
  • Habilitado se lsFormaPagamentoConfirmacao.ValorInt for “Banco” ou “Cheque” E (PermiteEfetuarPagamentoTodasFiliais for true OU FlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBanco for true).
  • ddlSelecaoGridPendenciaPagamento.Visible: Visível se gvwPendenciaPagamento tiver linhas.
  • btnExcluirSelecionados.Visible: Visível se gvwPendenciaPagamento tiver linhas.
  • txtFilial.Enabled: Habilitado se não houver pagamentos pendentes na grid OU se PermiteEfetuarPagamentoTodasFiliais for true.
  • lsFormaPagamentoBeneficio.Enabled: Habilitado se PermitirConfigurarComoEfetuarPagamento for true OU se não houver pagamentos pendentes na grid.
  • lsFormaPagamento.Enabled: Habilitado se PermitirConfigurarComoEfetuarPagamento for true OU se não houver pagamentos pendentes na grid.
  • txtBanco.Enabled: Habilitado se lsFormaPagamento.ValorInt tiver valor e não for “Dinheiro” E (PermitirConfigurarComoEfetuarPagamento for true OU se não houver pagamentos pendentes na grid).
  • divGvwErros.Visible: Visível se DtErros (DataTable de erros) tiver linhas.
  • ckbSelecionarPagamento.Visible (na grid): Visível se Idf_Arquivo_Gerado_Empregado for DBNull.Value OU Erro_Tedpays não for DBNull.Value.
  • btnAbrirPagamento.Visible (na grid): Visível se Idf_Arquivo_Gerado_Empregado não for DBNull.Value E Erro_Tedpays for DBNull.Value.
  • btnPagar.Enabled: Desabilitado se o usuário não tiver a permissão PagarBeneficio.
  • btnConfirmarModalConfirmacaoAberturaPagamento.Enabled: Desabilitado se o usuário não tiver a permissão AbrirPagamentoBeneficio.
  • txtBancoConfirmacao.ConsiderarTedPays: Definido como true se lsPagamentoTedPays for “Sim” e lsFormaPagamentoConfirmacao não for “Dinheiro”. Caso contrário, false.
  • txtConvenioBancarioConfirmacao.ConsiderarTedPays: Definido como true se lsPagamentoTedPays for “Sim” e lsFormaPagamentoConfirmacao não for “Dinheiro”. Caso contrário, false.
  • txtContrato.IdFilial, txtContrato.IdCliente, lsTipoContrato.ValorInt, txtContratoMae.IdContratoSelecionado, txtFilial.IdFilialSelecionada: São preenchidos automaticamente quando txtContrato.ValorAlterado é disparado, com base nos dados do contrato selecionado.
  • txtDepartamento.IdContrato, txtDepartamento.IdDepartamentoSelecionado: São preenchidos automaticamente quando txtContrato.ValorAlterado é disparado.
  • txtFuncao.IdContrato, txtFuncao.IdFuncaoSelecionada: São preenchidos automaticamente quando txtContrato.ValorAlterado é disparado.
  • txtEmpregado.IdFilial, txtEmpregado.IdContrato, txtEmpregado.IdDepartamento, txtEmpregado.IdLotacao: São preenchidos automaticamente quando txtEmpregado.ValorAlterado é disparado, com base nos dados do empregado selecionado.
  • txtBancoConfirmacao.IdBancoSelecionado: É preenchido com o valor de txtBanco.IdBancoSelecionado quando txtBanco.ValorAlterado é disparado.
  • txtConvenioBancarioConfirmacao.IdBanco: É preenchido com o valor de txtBancoConfirmacao.IdBancoSelecionado quando txtBancoConfirmacao.ValorAlterado é disparado.
  • txtBancoConfirmacao.IdBancoSelecionado: É preenchido com o ID do banco do convênio selecionado quando txtConvenioBancarioConfirmacao.ValorAlterado é disparado.

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

  • Excluir Selecionados (btnExcluirSelecionados_Click):
  • Remove os IDs dos pagamentos selecionados das listas LstPagamentosPendentes e LstPagamentosPendentes2.
  • Atualiza a grid de pagamentos pendentes (gvwPendenciaPagamento).
  • Habilita o campo txtFilial se não houver mais pagamentos pendentes.
  • Excluir Pagamentos Pendentes por Lista de Erros (ExcluirPagamentosPendentesPorListaErros):
  • Itera sobre o DtErros (DataTable de erros).
  • Para cada erro, remove o ID do pagamento correspondente das listas LstPagamentosPendentes e LstPagamentosPendentes2.
  • Atualiza a grid de pagamentos pendentes.
  • Abrir Pagamento (AbrirPagamento):
  • Define ArquivoGeradoEmpregado e DataPagamento do BeneficioFornecimento como null.
  • Salva o objeto BeneficioFornecimento, efetivamente “reabrindo” o pagamento.
  • Lança uma exceção se ocorrer um erro ao abrir o pagamento.

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

  • Inicialização da Tela (Inicializar):
  • Chama ConfigurarPermissoesTela() para definir as permissões do usuário.
  • Chama ConfigurarPorTipoEstruturaGerencial() para ajustar a interface com base na configuração da empresa.
  • Chama CarregarParametros() para carregar parâmetros específicos do sistema.
  • Configura propriedades de UserControls (txtFilial.Obrigatorio, txtFilial.IdEmpresa, etc.).
  • Verifica o parâmetro DataCortePagamentoCheque (ParametroEspecifico.RecuperarParametroEspecifico) e a permissão SenhaMaster para determinar se o pagamento por cheque deve ser exibido.
  • Carrega as listas de sugestão (lsTipoBeneficio, lsTipoContrato, lsTipoVinculo, lsFormaPagamentoBeneficio, lsFormaPagamento, lsFormaPagamentoConfirmacao, lsTipoConta, lsPeriodoMes, lsPeriodoMesModalConfirmacaoAberturaPagamento, lsPagamentoTedPays).
  • Chama LimparCampos() e PreencherCamposPorParametrosRecebidos().
  • Preenchimento de Campos por Parâmetros (PreencherCamposPorParametrosRecebidos):
  • Preenche os campos de filtro com base em parâmetros passados para a tela (IdTipoBeneficio, IdEmpregado, IdContrato, IdDepartamento, IdFuncaoExclusiva, IdFilial, NumeroMes, NumeroAno).
  • Se IdFilialPadraoUsuario tiver valor e nenhum parâmetro de filial for fornecido, txtFilial é preenchido com IdFilialPadraoUsuario.
  • Limpa os parâmetros após o uso.
  • Configuração de Permissões (ConfigurarPermissoesTela):
  • Carrega as permissões do usuário logado para a categoria “Pagamento” (Usuario.CarregarPermissoes).
  • Verifica se o usuário tem permissão SenhaMaster e, se sim, adiciona-a à lista de permissões.
  • Redireciona para UrlAcessoNegado se o usuário não tiver VisualizarPagamentoBeneficio.
  • Desabilita btnPagar se o usuário não tiver PagarBeneficio.
  • Desabilita btnConfirmarModalConfirmacaoAberturaPagamento se o usuário não tiver AbrirPagamentoBeneficio.
  • Define PermitirConfigurarComoEfetuarPagamento com base na permissão PermitirConfigurarComoEfetuarPagamentoBeneficio. Se não tiver, define lsFormaPagamentoBeneficio.Obrigatorio e lsFormaPagamento.Obrigatorio como true e lsFormaPagamentoConfirmacao.Enabled como false.
  • Configuração por Tipo de Estrutura Gerencial (ConfigurarPorTipoEstruturaGerencial):
  • Carrega o objeto Empresa logada (Empresa.LoadObject).
  • Define UtilizaCentroResultado com base em objEmpresa.TipoEstruturaGerencial.
  • Ajusta a visibilidade dos painéis de filtro (divCliente, divTipoContrato, divContratoMae, divContrato, divDepartamento, divCentroResultado, divLotacao).
  • Se UtilizaCentroResultado for true, tenta carregar o contrato padrão por centro de resultado (Contrato.CarregarContratoCentroResultado) e preenche txtContrato.IdContratoSelecionado e txtFuncao.IdContrato.
  • Configuração de Obrigatoriedade da Forma de Pagamento do Empregado (ConfigurarObrigatoriedadeFormaPagamentoEmpregadoPorFormaPagamentoBeneficio):
  • Se lsFormaPagamentoBeneficio.ValorInt for “Espécie”, lsFormaPagamento.Obrigatorio e txtBanco.Obrigatorio são definidos como false.
  • Caso contrário, lsFormaPagamento.Obrigatorio e txtBanco.Obrigatorio são definidos como !PermitirConfigurarComoEfetuarPagamento.
  • Configuração da Forma de Pagamento de Confirmação (ConfigurarFormaPagamentoConfirmacaoPorFormaPagamentoBeneficio):
  • Com base em lsFormaPagamentoBeneficio.ValorInt:
  • “Espécie”: lsFormaPagamentoConfirmacao.ValorInt é definido como “Dinheiro”, txtConvenioBancarioConfirmacao e txtBancoConfirmacao são limpos e tornam-se não obrigatórios.
  • “Crédito”: lsFormaPagamentoConfirmacao.ValorInt é definido como o valor de lsFormaPagamento.ValorInt.
  • “InformacaoFornecedor”: lsFormaPagamentoConfirmacao.ValorInt é definido como “Dinheiro”.
  • Padrão: lsFormaPagamentoConfirmacao.ValorInt é definido como o valor de lsFormaPagamento.ValorInt.
  • Configuração de Banco por Forma de Pagamento (ConfigurarBancoPorFormaPagamento):
  • Se lsFormaPagamento.ValorInt for “Cheque” e o usuário não tiver PermitirConfigurarComoEfetuarPagamento:
  • lblBanco.Text muda para “Banco Cheque”.
  • txtBanco.Obrigatorio é true (a menos que lsFormaPagamentoBeneficio.ValorInt seja “Espécie”).
  • txtBanco.Enabled é true.
  • Mensagens de erro de txtBanco são atualizadas para “Banco do Cheque”.
  • Se lsFormaPagamento.ValorInt for “Banco”:
  • lblBanco.Text é “Banco Conta Empregado”.
  • txtBanco.Obrigatorio é true (a menos que lsFormaPagamentoBeneficio.ValorInt seja “Espécie” e o usuário não tenha PermitirConfigurarComoEfetuarPagamento).
  • txtBanco.Enabled é true.
  • Mensagens de erro de txtBanco são atualizadas para “Banco da Conta do Empregado”.
  • Se UtilizaPagamentosViaTEDPays for true e lsPagamentoTedPays for “Sim”, txtBanco.Obrigatorio torna-se false.
  • Caso contrário, txtBanco é limpo, desabilitado e não obrigatório.
  • Configuração de Tipo de Conta por Forma de Pagamento (ConfigurarTipoContaPorFormaPagamento):
  • Se lsFormaPagamento.ValorInt for “Banco”:
  • lsTipoConta.Enabled é true.
  • Se UtilizaPagamentosViaTEDPays for true e lsPagamentoTedPays for “Sim”, lsTipoConta é carregado com TipoConta.ListarTiposTEDPays().
  • Caso contrário, lsTipoConta é limpo e desabilitado.
  • Configuração de Banco, Convênio e Tipo de Operação por Forma de Pagamento de Confirmação (ConfigurarBancoConvenioTipoOperacaoPorFormaPagamentoConfirmacao):
  • Se lsFormaPagamentoConfirmacao.ValorInt for “Banco”:
  • Se UtilizaPagamentosViaTEDPays for true e lsPagamentoTedPays for “Sim”:
  • txtBanco é desabilitado e limpo.
  • txtConvenioBancarioConfirmacao.IdBanco é definido como “EmployerPagamentos”.
  • Caso contrário:
  • txtBanco.Enabled é true.
  • txtBancoConfirmacao.ConsiderarBancoConvenioEmpresa é true.
  • txtBancoConfirmacao.Enabled é true se o usuário tiver PermitirConfigurarComoEfetuarPagamento.
  • txtBancoConfirmacao.Obrigatorio é true.
  • txtBancoConfirmacao.PermiteCheque é null.
  • txtConvenioBancarioConfirmacao.Obrigatorio é true.
  • txtConvenioBancarioConfirmacao.Enabled é true se PermiteEfetuarPagamentoTodasFiliais ou FlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBanco for true.
  • Se lsFormaPagamentoConfirmacao.ValorInt for “Cheque”:
  • txtBancoConfirmacao.ConsiderarBancoConvenioEmpresa é false.
  • txtBancoConfirmacao.Enabled é true se o usuário tiver PermitirConfigurarComoEfetuarPagamento.
  • txtBancoConfirmacao.Obrigatorio é true.
  • txtBancoConfirmacao.PermiteCheque é true.
  • txtConvenioBancarioConfirmacao.IdConvenioBancarioSelecionado é null.
  • txtConvenioBancarioConfirmacao.Enabled é true se PermiteEfetuarPagamentoTodasFiliais ou FlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBanco for true.
  • txtConvenioBancarioConfirmacao.Obrigatorio é true.
  • Caso contrário, txtBancoConfirmacao e txtConvenioBancarioConfirmacao são limpos, desabilitados e não obrigatórios.
  • Configuração de Sugestão de Período por Filial (ConfigurarSugestaoPeriodoPorFilial):
  • Se txtFilial.IdFilialSelecionada tiver valor, tenta carregar o período de cálculo aberto para a filial (PeriodoCalculoFilial.CarregarPeriodoAberto).
  • Se encontrado, preenche lsPeriodoMes.ValorInt com o mês e txtPeriodoAno.Text com o ano do período.
  • Carregamento de Convênio Bancário por Filial e Banco (CarregarConvenioBancarioPorFilialBancoConfirmacao):
  • Se txtBancoConfirmacao.IdBancoSelecionado tiver valor:
  • Define FlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBanco como false.
  • Lista convênios bancários por filial e banco (ConvenioBancario.ListarConvenioBancarioPorFilialBanco).
  • Se apenas um convênio for encontrado, preenche txtConvenioBancarioConfirmacao.IdConvenioBancarioSelecionado.
  • Se mais de um for encontrado, txtConvenioBancarioConfirmacao.IdConvenioBancarioSelecionado é limpo e FlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBanco é definido como true, o que reconfigura os campos de banco/convênio.
  • Efetuar Pagamento (EfetuarPagamento):
  • Chama o método Pagar (da própria tela) para processar os pagamentos.
  • Se o pagamento for bem-sucedido:
  • Se a forma de pagamento for “Cheque”, armazena o ID do lote e os erros na sessão e redireciona para ImpressaoCheque.aspx.
  • Limpa os campos da tela.
  • Exibe mensagem de sucesso com o número do lote gerado.
  • Se o pagamento falhar, exibe mensagem de erro.
  • Pagar (Pagar):
  • Inicializa pDicIdFormaPagamentoNumerosLote.
  • Define pagamentoTEDPays com base em UtilizaPagamentosViaTEDPays e lsPagamentoTedPays.
  • Validação: Lança Exception se pagamentoTEDPays for true e txtBancoConfirmacao.IdBancoSelecionado não tiver valor (“Não é permitido pagamento TEDPays sem informar o banco.”).
  • Chama BeneficioFornecimento.Pagar e BeneficioFornecido.Pagar para processar os pagamentos, atualizando dtErrosAuxiliar e pDicIdFormaPagamentoNumerosLote.
  • Chama SolicitacaoAssincrona para iniciar a atividade assíncrona.
  • Integração EPAYS: Se IntegracaoComEPAYS for true e houver lotes gerados:
  • Recupera UsuarioAPIEPAYS e SenhaAPIEPAYS de ParametroEspecifico.
  • Cria um objeto EPaysRabbitMQ e envia uma mensagem IntegrarPagamentoEPaysDto para a fila QUEUE_EPAYS_PAGAMENTO para cada lote.
  • Grava um registro em IntegracaoEpaysHistorico.
  • Se os parâmetros de acesso à API EPAYS não forem encontrados, exibe um aviso.
  • Atualiza DtErros com dtErrosAuxiliar.
  • Chama ExcluirPagamentosPendentesPorListaErros() para remover os pagamentos com erro da lista.
  • Chama CarregarGridViewErros() para exibir os erros.
  • Se nenhum pagamento foi realizado ou nenhum lote foi gerado, exibe “Nenhum pagamento foi realizado.” (TipoMensagem.Erro) e retorna false.
  • Retorna true se o pagamento for bem-sucedido.
  • Lança uma exceção se ocorrer um erro durante o processo de pagamento.
  • Solicitação Assíncrona (SolicitacaoAssincrona):
  • Cria uma ParametroExecucaoCollection com informações da empresa e usuário logado.
  • Adiciona os números dos lotes de pagamento à coleção de parâmetros.
  • Chama ProcessoAssincrono.IniciarAtividade para agendar a geração do relatório de pagamento de benefício.
  • Exibe mensagem de sucesso ou aviso/erro com base no retorno de IniciarAtividade.

5.5. Outras Regras Específicas da Tela

  • Data de Corte para Pagamento de Cheque: A exibição da opção de pagamento por cheque é controlada por um parâmetro específico (NomeParametro.DataCortePagamentoCheque). Se a data atual for maior ou igual à data de corte e o usuário não tiver permissão SenhaMaster, a opção de cheque é desabilitada.
  • Carregamento de Tipos de Conta para TEDPays: Se a empresa utiliza pagamentos via TEDPays e a forma de pagamento selecionada for “Banco” e “Pagamento TEDPays” for “Sim”, a lista de tipos de conta é carregada especificamente com TipoConta.ListarTiposTEDPays().
  • Seleção de Itens na Grid de Pagamentos Pendentes (ddlSelecaoGridPendenciaPagamento_OnSelectedIndexChanged):
  • “Desmarcar todos”: Limpa a lista LstPagamentosPendentesSelecionados.
  • “Marcar todos”: Adiciona todos os IDs de LstPagamentosPendentes e LstPagamentosPendentes2 à LstPagamentosPendentesSelecionados.
  • “Desmarcar todos desta página”: Remove os IDs dos itens visíveis na página atual da grid de LstPagamentosPendentesSelecionados.
  • “Marcar todos desta página”: Adiciona os IDs dos itens visíveis na página atual da grid a LstPagamentosPendentesSelecionados.
  • Após a ação, a grid é recarregada e o dropdown é resetado para “Selecione”.
  • Seleção Individual de Pagamento na Grid (ckbSelecionarPagamento_CheckedChanged):
  • Adiciona ou remove o ID do pagamento da linha clicada na lista LstPagamentosPendentesSelecionados com base no estado do checkbox.
  • Alterar Convênio Bancário (btnAlterarConvenioBancario_OnClick):
  • Configura a modal de confirmação de senha (modalConfirmacaoSenha) com uma mensagem específica e a permissão SenhaMaster.
  • Exibe a modal.
  • Confirmação de Senha para Alterar Convênio Bancário (modalConfirmacaoSenha_OnConfirmar):
  • Se o CommandName for “AlterarConvenioBancario”, habilita txtConvenioBancarioConfirmacao e define o foco.
  • Fecha a modal.
  • Confirmação de Senha para TEDPays (modalConfirmacaoSenhaTedPays_OnConfirmar):
  • Se o CommandName for “TedPays”, chama EfetuarPagamento().
  • Atualiza o painel geral e fecha a modal.
  • Cancelamento da Confirmação de Senha TEDPays (modalConfirmacaoSenhaTedPays_OnCancelar, modalConfirmacaoSenhaTedPays_OnFecharModal):
  • Limpa os campos da tela e fecha a modal.
  • Confirmação da Modal de Pagamento Retroativo (ucModalConfirmacao_Confirmar_Click):
  • Chama EfetuarPagamento().
  • Atualiza o painel geral.
  • Cancelamento da Modal de Pagamento Retroativo (ucModalConfirmacao_Cancelar_Click):
  • Limpa txtDataPagamentoConfirmacao e define o foco.
  • Atualiza o painel geral.
  • Redirecionamento para Impressão de Cheque (btnImprimirCheque_OnClick):
  • Redireciona para ImpressaoCheque.aspx.
  • Redirecionamento para Relatório Conferência Benefício (btnRelatorioConfereciaBeneficio_OnClick):
  • Armazena o ID do relatório na sessão e redireciona para GeradorDeRelatoriosAssincronos.aspx.
  • Redirecionamento para Relatório Valor Líquido Folha (btnRelatorioValorLiquidoFolha_OnClick):
  • Armazena o ID do relatório na sessão e redireciona para GeradorDeRelatoriosAssincronos.aspx.
  • Limpar Campos (btnLimpar_OnClick):
  • Redireciona para a própria tela (PagamentoBeneficio.aspx), efetivamente recarregando-a e limpando todos os campos.
  • Voltar (btnVoltar_OnClick):
  • Redireciona para MenuMaisOpcoes.aspx?ID=7.
  • Carregamento da Grid de Erros na Modal de Abertura de Pagamento (gvwErrosModalConfirmacaoAberturaPagamento_OnCarregarGrid):
  • Carrega os códigos de retorno de pagamento por benefício ou benefício fornecido (ArquivoGeradoStatus.ListarCodigosRetornoPagamentoPorBeneficio ou ArquivoGeradoStatus.ListarCodigosRetornoPagamentoPorBeneficioFornecido).
  • Carregamento da Grid de Pagamentos Pendentes (gvwPendenciaPagamento_OnRowDataBound):
  • Marca ou desmarca o checkbox ckbSelecionarPagamento com base na presença do ID do pagamento em LstPagamentosPendentesSelecionados.

🔄 6. Fluxos Principais

6.1. Inicialização da Tela

  1. Page_Load:
  • Associa os eventos Confirmar e Cancelar da ucModalConfirmacao aos seus respectivos handlers.
  • Se não for um postback, chama Inicializar().
  1. Inicializar():
  • Chama ConfigurarPermissoesTela() para carregar as permissões do usuário e ajustar a interface.
  • Chama ConfigurarPorTipoEstruturaGerencial() para adaptar a tela ao tipo de estrutura gerencial da empresa.
  • Chama CarregarParametros() para carregar parâmetros de configuração.
  • Configura propriedades iniciais de UserControls (ex: txtFilial.Obrigatorio, txtBeneficio.IdEmpresa).
  • Verifica o parâmetro DataCortePagamentoCheque e a permissão SenhaMaster para determinar a exibição da opção de pagamento por cheque.
  • Carrega os dados para todas as ListaSugestoes (Tipo Benefício, Tipo Contrato, Tipo Vínculo, Formas de Pagamento, Tipos de Conta, Meses, Pagamento TEDPays).
  • Chama LimparCampos() para resetar os filtros e áreas de confirmação.
  • Chama PreencherCamposPorParametrosRecebidos() para preencher campos se houver parâmetros na URL.
  1. ConfigurarPermissoesTela():
  • Carrega as permissões do usuário para a categoria Pagamento e SenhaMaster.
  • Redireciona se o usuário não tiver permissão de visualização.
  • Habilita/desabilita botões (btnPagar, btnConfirmarModalConfirmacaoAberturaPagamento) e campos (lsFormaPagamentoBeneficio.Obrigatorio, lsFormaPagamento.Obrigatorio, lsFormaPagamentoConfirmacao.Enabled) com base nas permissões.
  1. ConfigurarPorTipoEstruturaGerencial():
  • Carrega o objeto Empresa logada.
  • Define a propriedade UtilizaCentroResultado com base no TipoEstruturaGerencial da empresa.
  • Ajusta a visibilidade dos painéis de filtro (divCliente, divTipoContrato, divContratoMae, divContrato, divDepartamento, divCentroResultado, divLotacao).
  • Se UtilizaCentroResultado for true, tenta carregar o contrato padrão por centro de resultado (Contrato.CarregarContratoCentroResultado) e configura txtContrato e txtFuncao.
  1. CarregarParametros():
  • Carrega parâmetros específicos do sistema (PermiteEfetuarPagamentoTodasFiliais, IntegracaoComEPAYS, UtilizaPagamentosViaTEDPays) usando ParametroEspecifico.RecuperarParametroEspecifico.
  1. PreencherCamposPorParametrosRecebidos():
  • Popula os campos de filtro com valores recebidos via ViewState (parâmetros da URL).
  • Se IdFilialPadraoUsuario estiver disponível e nenhum parâmetro de filial for fornecido, preenche txtFilial.

6.2. Pesquisar Pagamentos Pendentes

  1. btnPesquisar_OnClick:
  • Chama PesquisarPendenciaPagamento().
  • Chama CarregarGridViewPendenciaPagamento().
  1. PesquisarPendenciaPagamento():
  • Limpa a lista de erros (DtErros) e a lista de pagamentos selecionados (LstPagamentosPendentesSelecionados).
  • Determina se o pagamento será TEDPays.
  • Chama BeneficioFornecimento.ListarIdPagamentosPendentes() e BeneficioFornecido.ListarIdPagamentosPendentes() para obter os IDs dos pagamentos pendentes com base nos filtros da tela, populando LstPagamentosPendentes e LstPagamentosPendentes2.
  1. CarregarGridViewPendenciaPagamento():
  • Chama UIHelper.CarregarGridView() para preencher gvwPendenciaPagamento com os dados retornados por BeneficioFornecimento.ListarInformacoesPagamentosPendentesTEMP().
  • Atualiza a visibilidade do ddlSelecaoGridPendenciaPagamento e btnExcluirSelecionados com base na quantidade de registros.
  • Ajusta a habilitação de txtFilial, lsFormaPagamentoBeneficio, lsFormaPagamento, txtBanco com base na existência de pagamentos pendentes e permissões.
  • Atualiza txtValorTotalConfirmacao com o valor total dos pagamentos.

6.3. Seleção de Pagamentos na Grid

  1. ddlSelecaoGridPendenciaPagamento_OnSelectedIndexChanged:
  • Com base na opção selecionada no dropdown (Marcar/Desmarcar todos, Marcar/Desmarcar desta página), atualiza a lista LstPagamentosPendentesSelecionados.
  • Chama CarregarGridViewPendenciaPagamento() para refletir as mudanças na interface.
  • Reseta o dropdown para “Selecione”.
  1. ckbSelecionarPagamento_CheckedChanged:
  • Adiciona ou remove o ID do pagamento da linha clicada na lista LstPagamentosPendentesSelecionados.

6.4. Abertura de Pagamento com Erro

  1. btnAbrirPagamento_OnClick:
  • Recupera o Idf_Beneficio_Fornecimento ou Idf_Beneficio_Fornecido da linha da grid.
  • Chama CarregarInformacoesModalAberturaPagamento() para popular a modal.
  • Exibe a modal mpeModalConfirmacaoAberturaPagamento.
  1. CarregarInformacoesModalAberturaPagamento():
  • Carrega o objeto BeneficioFornecimento ou BeneficioFornecido correspondente.
  • Preenche os campos da modal (txtEmpregadoModalConfirmacaoAberturaPagamento, txtValorPagamentoModalConfirmacaoAberturaPagamento, lsPeriodoMesModalConfirmacaoAberturaPagamento, txtPeriodoAnoModalConfirmacaoAberturaPagamento).
  • Chama CarregarGridViewErrosModalConfirmacaoAberturaPagamento() para exibir os erros do pagamento.
  1. btnConfirmarModalConfirmacaoAberturaPagamento_OnClick:
  • Verifica a permissão AbrirPagamentoBeneficio.
  • Chama AbrirPagamento() com o ID do pagamento.
  • Se bem-sucedido, recarrega a grid de pagamentos pendentes e exibe mensagem de sucesso.
  • Fecha a modal.
  1. AbrirPagamento():
  • Carrega o objeto BeneficioFornecimento.
  • Define ArquivoGeradoEmpregado e DataPagamento como null.
  • Salva o objeto, reabrindo o pagamento.

6.5. Efetivar Pagamento

  1. btnPagar_OnClick:
  • Verifica a permissão PagarBeneficio.
  • Valida se há pagamentos selecionados, se a forma de pagamento de confirmação foi selecionada e se o convênio bancário foi especificado (se aplicável).
  • Chama ValidarFeriado() para verificar se a data de pagamento cai em um feriado.
  • Chama ValidarNecessidadeConfirmacaoUsuario() para verificar se a data de pagamento é retroativa e, se sim, exibe uma modal de confirmação.
  • Se todas as validações passarem ou a confirmação for aceita, chama EfetuarPagamento().
  1. EfetuarPagamento():
  • Chama Pagar() (da própria tela) para processar os pagamentos.
  • Se Pagar() retornar true:
  • Se a forma de pagamento for “Cheque”, armazena informações na sessão e redireciona para ImpressaoCheque.aspx.
  • Limpa os campos da tela.
  • Exibe mensagem de sucesso com o número do lote gerado.
  • Se Pagar() retornar false, exibe mensagem de erro.
  1. Pagar():
  • Prepara as listas de erros e lotes.
  • Verifica se o pagamento é TEDPays e se o banco foi informado (lança exceção se não).
  • Chama BeneficioFornecimento.Pagar() e BeneficioFornecido.Pagar() para efetivar os pagamentos, atualizando as listas de erros e lotes.
  • Chama SolicitacaoAssincrona() para iniciar a geração de relatórios.
  • Se IntegracaoComEPAYS estiver ativa, envia mensagens para o RabbitMQ do EPAYS e registra o histórico.
  • Atualiza a lista de erros da tela (DtErros).
  • Chama ExcluirPagamentosPendentesPorListaErros() para remover pagamentos com erro da lista de pendentes.
  • Chama CarregarGridViewErros() para exibir os erros na grid da tela.
  • Retorna true se pagamentos foram realizados, false caso contrário.
  1. SolicitacaoAssincrona():
  • Cria uma coleção de parâmetros de execução com dados da empresa, usuário e lotes de pagamento.
  • Chama ProcessoAssincrono.IniciarAtividade() para agendar a atividade de geração de relatório.
  • Exibe mensagens de sucesso ou erro/aviso.

6.6. Limpar Tela

  1. btnLimpar_OnClick:
  • Redireciona para a própria página (PagamentoBeneficio.aspx), recarregando-a e limpando todos os campos.

6.7. Voltar

  1. btnVoltar_OnClick:
  • Redireciona para MenuMaisOpcoes.aspx?ID=7.

🔌 7. Integrações e Dependências

7.1. Classes BLL e Service utilizadas

  • Employer.Plataforma.BLL.ArquivoGeradoStatus (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ArquivoGeradoStatus_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ArquivoGeradoStatus_P2.cs)
  • ListarCodigosRetornoPagamentoPorBeneficio(int pIdBeneficioFornecimento, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros): Lista os códigos de retorno de pagamento para um benefício fornecimento específico de forma paginada.
  • ListarCodigosRetornoPagamentoPorBeneficioFornecido(int pIdBeneficioFornecido, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros): Lista os códigos de retorno de pagamento para um benefício fornecido específico de forma paginada.
  • Employer.Plataforma.Web.WebFoPag.Code.BasePageWebFoPag (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.WebFoPag\Code\BasePageWebFoPag.cs)
  • IdEmpresaLogada(): Retorna o ID da empresa logada na sessão.
  • Employer.Plataforma.BLL.Beneficios.BeneficioFornecido (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Beneficios\BeneficioFornecido_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Beneficios\BeneficioFornecido_P2.cs)
  • ListarIdPagamentosPendentes(int? idfTipoBeneficio, int? idfConfiguracaoProduto, int? idfFormaPagamentoBeneficio, int idfEmpresa, int? idfFilial, int? idfCliente, int? idfTipoContrato, int? idfContratoMae, int? idfContrato, int? idfDepartamento, int? idfCentroResultado, int? idfFuncaoExclusiva, int? idfTipoVinculo, int? idfEmpregado, int? idfFormaPagamento, int? idfBanco, int? idfTipoConta, int? numMes, int? numAno, bool flgPagamentoTEDPays, int? idfSupervisor, int? idfLotacao): Lista os IDs de pagamentos de benefícios fornecidos pendentes com base em diversos filtros.
  • LoadObject(int idBeneficioFornecido): Carrega um objeto BeneficioFornecido pelo seu ID.
  • Pagar(List<int> lstIdBeneficioFornecido, int idEmpresa, DateTime dtaPagamento, int idfFormaPagamento, int? idfBanco, int? idfConvenioBancario, bool flgPagamentoTEDPays, ref DataTable dtErros, out Dictionary<int, int> dicIdFormaPagamentoNumerosLote): Efetua o pagamento de uma lista de benefícios fornecidos, gerando lotes e registrando erros.
  • Employer.Plataforma.BLL.BeneficioFornecimento (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\BeneficioFornecimento_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\BeneficioFornecimento_P2.cs)
  • ListarIdPagamentosPendentes(int? idfTipoBeneficio, int? idfFormaPagamentoBeneficio, int idfEmpresa, int? idfFilial, int? idfCliente, int? idfTipoContrato, int? idfContratoMae, int? idfContrato, int? idfDepartamento, int? idfCentroResultado, int? idfFuncaoExclusiva, int? idfTipoVinculo, int? idfEmpregado, int? idfFormaPagamento, int? idfBanco, int? idfTipoConta, int? numMes, int? numAno, bool flgPagamentoTEDPays, int? idfSupervisor, int? idfLotacao): Lista os IDs de pagamentos de benefícios fornecimento pendentes com base em diversos filtros.
  • ListarInformacoesPagamentosPendentesTEMP(List<int> lstIdBeneficioFornecimento, List<int> lstIdBeneficioFornecido, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros, out decimal pValorTotal): Lista informações detalhadas de pagamentos pendentes (temporário).
  • LoadObject(int idBeneficioFornecimento): Carrega um objeto BeneficioFornecimento pelo seu ID.
  • Pagar(List<int> lstIdBeneficioFornecimento, int idEmpresa, DateTime dtaPagamento, int idfFormaPagamento, int? idfBanco, int? idfConvenioBancario, bool flgPagamentoTEDPays, ref DataTable dtErros, out Dictionary<int, int> dicIdFormaPagamentoNumerosLote): Efetua o pagamento de uma lista de benefícios fornecimento, gerando lotes e registrando erros.
  • Save(): Salva as alterações no objeto BeneficioFornecimento.
  • Employer.Plataforma.BLL.CentroResultado (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroResultado_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroResultado_P2.cs)
  • LoadObject(int idCentroResultado): Carrega um objeto CentroResultado pelo seu ID.
  • Employer.Plataforma.Web.WebFoPag.Code.ConfirmacaoSenhaUtil (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.WebFoPag\Code\ConfirmacaoSenhaUtil.cs)
  • ConfigurarMensagemImpacto(ref string pMensagemOriginal, string valorAdicionar, ConfirmacaoSenhaUtil.EnumTipoEstrutura pEnumTipoEstrutura): Configura a mensagem de impacto para a modal de confirmação de senha.
  • Employer.Plataforma.BLL.Contrato (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)
  • CarregarContratoCentroResultado(int idEmpresa, out Contrato objContrato): Carrega o contrato padrão de uma empresa por centro de resultado.
  • LoadObject(int idContrato): Carrega um objeto Contrato pelo seu ID.
  • Employer.Plataforma.BLL.ConvenioBancario (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ConvenioBancario_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ConvenioBancario_P2.cs)
  • ListarConvenioBancarioPorFilialBanco(int? idfFilial, int idfBanco, bool flgPagaFolha, bool flgPagaBeneficio, bool flgPagaRPA, bool flgPagaPensao, int idfEmpresa): Lista convênios bancários por filial e banco, filtrando por tipo de pagamento.
  • LoadObject(int idConvenioBancario): Carrega um objeto ConvenioBancario pelo seu ID.
  • Employer.Plataforma.BLL.Empregado (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)
  • LoadObject(int idEmpregado): Carrega um objeto Empregado pelo seu ID.
  • Employer.Plataforma.BLL.EmpregadoDepartamento (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoDepartamento_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoDepartamento_P2.cs)
  • CarregarEmpregadoDepartamentoAtivo(int pIdEmpregado): Carrega o registro de departamento ativo para um empregado.
  • Employer.Plataforma.BLL.EmpregadoFuncaoExclusiva (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoFuncaoExclusiva_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoFuncaoExclusiva_P2.cs)
  • CarregarEmpregadoFuncaoExclusivaAtivo(int pIdEmpregado): Carrega o registro de função exclusiva ativo para um empregado.
  • Employer.Plataforma.BLL.EmpregadoLotacao (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoLotacao_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoLotacao_P2.cs)
  • CarregarEmpregadoLotacaoAtivo(int pIdEmpregado): Carrega o registro de lotação ativo para um empregado.
  • Employer.Plataforma.BLL.Empresa (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)
  • LoadObject(int idEmpresa): Carrega um objeto Empresa pelo seu ID.
  • Employer.Plataforma.BLL.Feriado (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Feriado_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Feriado_P2.cs)
  • ValidarPagamentoFeriado(int idEmpresa, List<int> lstIdFilial, DateTime dtaPagamento): Valida se a data de pagamento cai em um feriado para as filiais especificadas.
  • Employer.Plataforma.BLL.Filial (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Filial_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Filial_P2.cs)
  • CarregarPorIdEmpresa(decimal idEmpresa): Carrega uma filial pelo ID da empresa.
  • Employer.Plataforma.BLL.FormaPagamento (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FormaPagamento_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FormaPagamento_P2.cs)
  • Listar(bool exibirPagamentoCheque): Lista as formas de pagamento, com opção de excluir o pagamento por cheque.
  • Employer.Plataforma.BLL.FormaPagamentoBeneficio (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FormaPagamentoBeneficio_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\FormaPagamentoBeneficio_P2.cs)
  • Listar(): Lista todas as formas de pagamento de benefício.
  • Employer.Plataforma.BLL.IntegracaoEpaysHistorico (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\IntegracaoEpaysHistorico_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\IntegracaoEpaysHistorico_P2.cs)
  • Save(): Salva o histórico de integração com EPAYS.
  • Employer.Plataforma.BLL.Mes (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Mes_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Mes_P2.cs)
  • Listar(): Lista todos os meses.
  • Employer.Plataforma.BLL.ParametroEspecifico (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ParametroEspecifico_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ParametroEspecifico_P2.cs)
  • RecuperarParametroEspecifico(BLL.Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, CentroResultado objCentroResultado): Recupera o valor de um parâmetro específico, considerando a hierarquia Empresa/Filial/Contrato/CentroResultado.
  • Employer.Plataforma.BLL.PeriodoCalculo (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PeriodoCalculo_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PeriodoCalculo_P2.cs)
  • CarregarPeriodoCalculoAbertoPorEmpresa(int idEmpresa, out PeriodoCalculo objPeriodoCalculo): Carrega o período de cálculo aberto para uma empresa.
  • Employer.Plataforma.BLL.PeriodoCalculoFilial (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PeriodoCalculoFilial_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PeriodoCalculoFilial_P2.cs)
  • CarregarPeriodoAberto(int idFilial, out PeriodoCalculo objPeriodoCalculo): Carrega o período de cálculo aberto para uma filial.
  • Employer.Plataforma.BLL.PluginsCompatibilidade (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PluginsCompatibilidade_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PluginsCompatibilidade_P2.cs)
  • CarregarPorMetadata(BLL.Enumeradores.PluginEntradaRelatorio pluginEntrada, BLL.Enumeradores.PluginSaidaRelatorio pluginSaida): Carrega a compatibilidade de plugins por metadata.
  • Employer.PlataformaServices.ProcessosAssincronos.ProcessoAssincrono (C:\Webfopag\Etec.WebFopag\Employer.PlataformaServices\ProcessosAssincronos\ProcessoAssincrono.cs)
  • 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, int? idLoteAtividade, AtividadeOrigemEnum? origem, bool atribuirUsuarioSistema): Inicia uma atividade assíncrona para processamento de relatórios ou outras tarefas.
  • Employer.Plataforma.BLL.TipoBeneficio (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoBeneficio_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoBeneficio_P2.cs)
  • ListarTipoBeneficioExceto(List<string> lstExcecao, bool? pSituacao): Lista tipos de benefício, excluindo os da lista lstExcecao.
  • Employer.Plataforma.BLL.TipoConta (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoConta_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoConta_P2.cs)
  • Listar(): Lista todos os tipos de conta.
  • ListarTiposTEDPays(): Lista os tipos de conta específicos para pagamentos TEDPays.
  • Employer.Plataforma.BLL.TipoContrato (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoContrato_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoContrato_P2.cs)
  • ListarPorEmpresa(int pIdEmpresa): Lista os tipos de contrato para uma empresa.
  • Employer.Plataforma.BLL.TipoVinculo (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoVinculo_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoVinculo_P2.cs)
  • ListarPorEmpresa(int pIdEmpresa): Lista os tipos de vínculo para uma empresa.
  • Employer.Plataforma.Web.Code.UIHelper (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.Code\UIHelper.cs)
  • CarregarGridView(EmployerGrid gv, DataTable dataSource, int itemCount): Preenche um EmployerGrid com dados de um DataTable.
  • Employer.Plataforma.BLL.Usuario (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P2.cs)
  • CarregarPermissoes(Usuario usuario, CategoriaPermissao categoriaPermissao): Carrega as permissões de um usuário para uma categoria específica.
  • Employer.Plataforma.BLL.Util (C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Util.cs)
  • ValidaPermissaoUsuario(List<int> lstPermissoes, int idPermissao): Verifica se o usuário possui uma permissão específica.

7.2. Stored Procedures chamadas

  • SPSELECTID (TAB_Arquivo_Gerado_Status_P1.cs)
  • Parâmetros: @Idf_Arquivo_Gerado_Status
  • Propósito: Seleciona um registro da tabela TAB_Arquivo_Gerado_Status pelo seu ID.
  • SPINSERT (TAB_Arquivo_Gerado_Status_P1.cs)
  • Parâmetros: @Idf_Arquivo_Gerado_Empregado, @Idf_Usuario_Gerador, @Idf_Banco, @Flg_Erro, @Idf_Arquivo_Gerado_Pensionista, @Idf_Arquivo_Gerado_Autonomo, @Cod_Retorno, @Idf_Processo_Leitura
  • Propósito: Insere um novo registro na tabela TAB_Arquivo_Gerado_Status.
  • SPUPDATE (TAB_Arquivo_Gerado_Status_P1.cs)
  • Parâmetros: @Idf_Arquivo_Gerado_Empregado, @Idf_Usuario_Gerador, @Idf_Banco, @Flg_Erro, @Idf_Arquivo_Gerado_Pensionista, @Idf_Arquivo_Gerado_Autonomo, @Cod_Retorno, @Idf_Processo_Leitura, @Idf_Arquivo_Gerado_Status
  • Propósito: Atualiza um registro existente na tabela TAB_Arquivo_Gerado_Status.
  • SPDELETE (TAB_Arquivo_Gerado_Status_P1.cs)
  • Parâmetros: @Idf_Arquivo_Gerado_Status, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Arquivo_Gerado_Status.
  • SELCODIGORETORNOPAGAMENTOPORBENEFICIO (TAB_Arquivo_Gerado_Status_P2.cs)
  • Parâmetros: @Idf_Beneficio_Fornecimento
  • Propósito: Lista códigos de retorno de pagamento para um benefício fornecimento.
  • SELCODIGORETORNOPAGAMENTOPORBENEFICIOFORNECIDO (TAB_Arquivo_Gerado_Status_P2.cs)
  • Parâmetros: @Idf_Beneficio_Fornecido
  • Propósito: Lista códigos de retorno de pagamento para um benefício fornecido.
  • SPINSERT (TAB_Beneficio_Fornecido_P1.cs)
  • Parâmetros: @Des_Beneficio_Fornecido, @Idf_Tipo_Beneficio, @Ano_Beneficio_Fornecido, @Mes_Beneficio_Fornecido, @Qtd_Beneficio_Fornecido, @Vlr_Unitario, @Vlr_Fornecido, @Des_Formula_Desconto, @Des_Formula_Desconto_Nao_Utilizado, @Idf_Empregado, @Idf_Dependente, @Idf_Verba_Sistema, @Dta_Cadastro, @Idf_Empregado_Beneficio, @Idf_Empregado_Beneficio_Dependente, @Idf_Usuario_Gerador, @Idf_Complemento_Verba, @Flg_Fornecimento_Continuo, @Vlr_Desconto, @Vlr_Reembolso, @Flg_Inativo, @Cod_Produto, @Num_Ordem, @Dta_Nascimento, @Idf_Acao_Tipo_Afastamento, @Dta_Pagamento, @Idf_Arquivo_Gerado_Empregado, @Qtd_Dias_Fornecido, @Qtd_Diaria_Fornecida, @Idf_Forma_Pagamento_Beneficio, @Idf_Beneficio_Extra, @idf_empregado_beneficio_linha, @Dta_Inicio_Vigencia, @Dta_Fim_Vigencia, @Idf_Periodicidade_Beneficio, @Idf_Lancamento_Beneficio, @Num_Lote_Importacao, @Idf_Usuario_Bloqueio, @Dta_Bloqueio
  • Propósito: Insere um novo registro na tabela TAB_Beneficio_Fornecido.
  • SPUPDATE (TAB_Beneficio_Fornecido_P1.cs)
  • Parâmetros: @Des_Beneficio_Fornecido, @Idf_Tipo_Beneficio, @Ano_Beneficio_Fornecido, @Mes_Beneficio_Fornecido, @Qtd_Beneficio_Fornecido, @Vlr_Unitario, @Vlr_Fornecido, @Des_Formula_Desconto, @Des_Formula_Desconto_Nao_Utilizado, @Idf_Empregado, @Idf_Dependente, @Idf_Verba_Sistema, @Dta_Cadastro, @Idf_Empregado_Beneficio, @Idf_Empregado_Beneficio_Dependente, @Idf_Usuario_Gerador, @Idf_Complemento_Verba, @Flg_Fornecimento_Continuo, @Vlr_Desconto, @Vlr_Reembolso, @Flg_Inativo, @Cod_Produto, @Num_Ordem, @Dta_Nascimento, @Idf_Acao_Tipo_Afastamento, @Dta_Pagamento, @Idf_Arquivo_Gerado_Empregado, @Qtd_Dias_Fornecido, @Qtd_Diaria_Fornecida, @Idf_Forma_Pagamento_Beneficio, @Idf_Beneficio_Extra, @idf_empregado_beneficio_linha, @Dta_Inicio_Vigencia, @Dta_Fim_Vigencia, @Idf_Periodicidade_Beneficio, @Idf_Lancamento_Beneficio, @Num_Lote_Importacao, @Idf_Usuario_Bloqueio, @Dta_Bloqueio, @Idf_Beneficio_Fornecido
  • Propósito: Atualiza um registro existente na tabela TAB_Beneficio_Fornecido.
  • SPDELETE (TAB_Beneficio_Fornecido_P1.cs)
  • Parâmetros: @Idf_Beneficio_Fornecido, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Beneficio_Fornecido.
  • SPSELECTID (TAB_Beneficio_Fornecido_P1.cs)
  • Parâmetros: @Idf_Beneficio_Fornecido
  • Propósito: Seleciona um registro da tabela TAB_Beneficio_Fornecido pelo seu ID.
  • SELIDBENEFICIOFORNECIDOPENDENTEPAGAMENTO (TAB_Beneficio_Fornecido_P2.cs)
  • Parâmetros: @Idf_Empresa, @Idf_Tipo_Beneficio, @Idf_Filial, @Idf_Cliente, @Idf_Tipo_Contrato, @Idf_Contrato_Mae, @Idf_Supervisor, @Idf_Contrato, @Idf_Departamento, @Idf_Funcao_Exclusiva, @Idf_Tipo_Vinculo, @Idf_Empregado, @Idf_Forma_Pagamento_Beneficio, @Idf_Forma_Pagamento, @Idf_Banco, @Idf_Tipo_Conta, @Num_Mes, @Num_Ano, @Flg_Pagamento_TEDPays, @Idf_Lotacao, @Idf_Configuracao_Produto, @Idf_Usuario
  • Propósito: Lista os IDs de benefícios fornecidos pendentes de pagamento, considerando diversos filtros e permissões de acesso.
  • SPINSERT (TAB_Beneficio_Fornecimento_P1.cs)
  • Parâmetros: @Idf_Beneficio, @Idf_Empregado, @Num_Ano, @Num_Mes, @Qtd_Fornecida, @Vlr_Unitario, @Vlr_Desconto, @Dta_Cadastro, @Qtd_Beneficio, @Idf_Frequencia_Beneficio, @Dta_Pagamento, @Idf_Arquivo_Gerado_Empregado, @Idf_Beneficio_Manual, @Idf_Forma_Pagamento_Beneficio, @Idf_Forma_Desconto_Beneficio, @Idf_Teto_Beneficio, @Vlr_Teto, @Idf_Pre_Fatura, @Idf_Beneficio_Regra, @Idf_Beneficio_Regra_Transporte, @Idf_Pagamento_Folha, @Qtd_Dias_Fornecido, @Qtd_Diaria_Fornecido
  • Propósito: Insere um novo registro na tabela TAB_Beneficio_Fornecimento.
  • SPUPDATE (TAB_Beneficio_Fornecimento_P1.cs)
  • Parâmetros: @Idf_Beneficio, @Idf_Empregado, @Num_Ano, @Num_Mes, @Qtd_Fornecida, @Vlr_Unitario, @Vlr_Desconto, @Dta_Cadastro, @Qtd_Beneficio, @Idf_Frequencia_Beneficio, @Dta_Pagamento, @Idf_Arquivo_Gerado_Empregado, @Idf_Beneficio_Manual, @Idf_Forma_Pagamento_Beneficio, @Idf_Forma_Desconto_Beneficio, @Idf_Teto_Beneficio, @Vlr_Teto, @Idf_Pre_Fatura, @Idf_Beneficio_Regra, @Idf_Beneficio_Regra_Transporte, @Idf_Pagamento_Folha, @Qtd_Dias_Fornecido, @Qtd_Diaria_Fornecido, @Idf_Beneficio_Fornecimento
  • Propósito: Atualiza um registro existente na tabela TAB_Beneficio_Fornecimento.
  • SPSELECTID (TAB_Beneficio_Fornecimento_P1.cs)
  • Parâmetros: @Idf_Beneficio_Fornecimento
  • Propósito: Seleciona um registro da tabela TAB_Beneficio_Fornecimento pelo seu ID.
  • SPDELETE (TAB_Beneficio_Fornecimento_P2.cs)
  • Parâmetros: @Idf_Beneficio_Fornecimento
  • Propósito: Exclui um registro da tabela TAB_Beneficio_Fornecimento se Dta_Pagamento e Idf_Arquivo_Gerado_Empregado forem NULL e não estiver em TAB_Arquivo_Beneficio_Fornecimento.
  • SPSELIDBENEFICIOFORNECIMENTOPENDENTEPAGAMENTO (TAB_Beneficio_Fornecimento_P2.cs)
  • Parâmetros: @Idf_Empresa, @Idf_Tipo_Beneficio, @Idf_Filial, @Idf_Cliente, @Idf_Tipo_Contrato, @Idf_Contrato_Mae, @Idf_Supervisor, @Idf_Contrato, @Idf_Departamento, @Idf_Funcao_Exclusiva, @Idf_Tipo_Vinculo, @Idf_Empregado, @Idf_Forma_Pagamento_Beneficio, @Idf_Forma_Pagamento, @Idf_Banco, @Idf_Tipo_Conta, @Num_Mes, @Num_Ano, @Flg_Pagamento_TEDPays, @Idf_Lotacao, @Idf_Usuario, @Lst_Idf_Centro_Resultado
  • Propósito: Lista os IDs de benefícios fornecimento pendentes de pagamento, considerando diversos filtros e permissões de acesso, e o tipo de estrutura gerencial da empresa.
  • SPSELBENEFICIOFORNECIMENTOPENDENTEPAGAMENTO (TAB_Beneficio_Fornecimento_P2.cs)
  • Parâmetros: @Idf_Empresa, @Idf_Tipo_Beneficio, @Idf_Filial, @Idf_Cliente, @Idf_Tipo_Contrato, @Idf_Contrato_Mae, @Idf_Supervisor, @Idf_Contrato, @Idf_Departamento, @Idf_Funcao_Exclusiva, @Idf_Tipo_Vinculo, @Idf_Empregado, @Idf_Forma_Pagamento_Beneficio, @Idf_Forma_Pagamento, @Idf_Banco, @Idf_Tipo_Conta, @Num_Mes, @Num_Ano, @Flg_Pagamento_TEDPays, @Idf_Lotacao, @Idf_Usuario, @Lst_Idf_Centro_Resultado, @SortExpression, @CurrentPage, @PageSize
  • Propósito: Lista informações detalhadas de benefícios fornecimento pendentes de pagamento, com paginação e ordenação.
  • SPCARREGARCRCADASTRADOS (TAB_Centro_Resultado_P2.cs)
  • Parâmetros: @Idf_Empresa
  • Propósito: Lista os centros de resultado cadastrados em formato de árvore.
  • SPSELECTID (TAB_Centro_Resultado_P1.cs)
  • Parâmetros: @Idf_Centro_Resultado
  • Propósito: Seleciona um registro da tabela TAB_Centro_Resultado pelo seu ID.
  • SPINSERT (TAB_Centro_Resultado_P1.cs)
  • Parâmetros: @Idf_Empresa, @Idf_Filial, @Idf_Centro_Resultado_Superior, @Des_Centro_Resultado, @Des_Estrutura_Centro_Resultado, @Flg_Permite_Lancamento, @Dta_Inicio_Vigencia, @Dta_Fim_Vigencia, @Des_Codigo_Reduzido, @Flg_Inativo, @Dta_Cadastro, @Idf_Usuario_Gerador
  • Propósito: Insere um novo registro na tabela TAB_Centro_Resultado.
  • SPUPDATE (TAB_Centro_Resultado_P1.cs)
  • Parâmetros: @Idf_Empresa, @Idf_Filial, @Idf_Centro_Resultado_Superior, @Des_Centro_Resultado, @Des_Estrutura_Centro_Resultado, @Flg_Permite_Lancamento, @Dta_Inicio_Vigencia, @Dta_Fim_Vigencia, @Des_Codigo_Reduzido, @Flg_Inativo, @Dta_Cadastro, @Idf_Usuario_Gerador, @Idf_Centro_Resultado
  • Propósito: Atualiza um registro existente na tabela TAB_Centro_Resultado.
  • SPDELETE (TAB_Centro_Resultado_P1.cs)
  • Parâmetros: @Idf_Centro_Resultado, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Centro_Resultado.
  • SPSELECTID (TAB_Contrato_P1.cs)
  • Parâmetros: @Idf_Contrato
  • Propósito: Seleciona um registro da tabela TAB_Contrato pelo seu ID.
  • SPINSERT (TAB_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, @Flg_Utiliza_Unidade_de_Trabalho
  • Propósito: Insere um novo registro na tabela TAB_Contrato.
  • SPUPDATE (TAB_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, @Flg_Utiliza_Unidade_de_Trabalho, @Idf_Contrato
  • Propósito: Atualiza um registro existente na tabela TAB_Contrato.
  • SPDELETE (TAB_Contrato_P1.cs)
  • Parâmetros: @Idf_Contrato, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Contrato.
  • SPSELECTCONTRATOCODIGO (TAB_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 usuário.
  • SPSELECTID (TAB_Convenio_Bancario_P1.cs)
  • Parâmetros: @Idf_Convenio_Bancario
  • Propósito: Seleciona um registro da tabela TAB_Convenio_Bancario pelo seu ID.
  • SPINSERT (TAB_Convenio_Bancario_P1.cs)
  • Parâmetros: @Idf_Conta_Empresa, @Num_Convenio, @Num_Atual, @Flg_Inativo, @Dta_Criacao, @Idf_Tipo_Padrao_Convenio, @Dta_Fim_Convenio, @Nme_Gerente_Convenio, @Obs_Convenio, @Idf_Tipo_Convenio, @Vlr_Pagamento_Minimo, @Vlr_Pagamento_Maximo, @Flg_Separa_Contas, @Num_Compromisso, @Flg_Paga_Folha, @Flg_Paga_Beneficio, @Flg_Paga_RPA, @Flg_Paga_Pensao, @Hor_Limite_Geracao_Pagamento, @Min_Limite_Geracao_Pagamento, @Num_Sequencia_Convenio, @Idf_Layout_Arquivo_Bancario, @Num_Codigo_Cliente, @Des_Codigo_Usuario, @Flg_Abertura_Conta_BB_Massificada, @Num_Processo_BB, @Flg_Permite_Gerar_Credito_Fim_Semana
  • Propósito: Insere um novo registro na tabela TAB_Convenio_Bancario.
  • SPUPDATE (TAB_Convenio_Bancario_P1.cs)
  • Parâmetros: @Idf_Conta_Empresa, @Num_Convenio, @Num_Atual, @Flg_Inativo, @Dta_Criacao, @Idf_Tipo_Padrao_Convenio, @Dta_Fim_Convenio, @Nme_Gerente_Convenio, @Obs_Convenio, @Idf_Tipo_Convenio, @Vlr_Pagamento_Minimo, @Vlr_Pagamento_Maximo, @Flg_Separa_Contas, @Num_Compromisso, @Flg_Paga_Folha, @Flg_Paga_Beneficio, @Flg_Paga_RPA, @Flg_Paga_Pensao, @Hor_Limite_Geracao_Pagamento, @Min_Limite_Geracao_Pagamento, @Num_Sequencia_Convenio, @Idf_Layout_Arquivo_Bancario, @Num_Codigo_Cliente, @Des_Codigo_Usuario, @Flg_Abertura_Conta_BB_Massificada, @Num_Processo_BB, @Flg_Permite_Gerar_Credito_Fim_Semana, @Idf_Convenio_Bancario
  • Propósito: Atualiza um registro existente na tabela TAB_Convenio_Bancario.
  • SPDELETE (TAB_Convenio_Bancario_P1.cs)
  • Parâmetros: @Idf_Convenio_Bancario
  • Propósito: Exclui um registro da tabela TAB_Convenio_Bancario.
  • SELLISTARCONVENIOBANCARIOPORFILIALBANCO (TAB_Convenio_Bancario_P2.cs)
  • Parâmetros: @Idf_Empresa, @Idf_Filial, @Idf_Banco, @Flg_Paga_Folha, @Flg_Paga_Beneficio, @Flg_Paga_RPA, @Flg_Paga_Pensao
  • Propósito: Lista convênios bancários por filial e banco, filtrando por tipos de pagamento.
  • SPSELECTID (TAB_Empregado_P1.cs)
  • Parâmetros: @Idf_Empregado
  • Propósito: Seleciona um registro da tabela TAB_Empregado pelo seu ID.
  • SPINSERT (TAB_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 (TAB_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 (TAB_Empregado_P1.cs)
  • Parâmetros: @Idf_Empregado, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Empregado.
  • SPSELECTCARREGARATIVAPOREMPREGADO (TAB_EmpregadoDepartamento_P2.cs)
  • Parâmetros: @Idf_Empregado
  • Propósito: Seleciona o registro de departamento ativo para um empregado.
  • SPSELECTCARREGARATIVAPOREMPREGADO (TAB_EmpregadoFuncaoExclusiva_P2.cs)
  • Parâmetros: @Idf_Empregado
  • Propósito: Seleciona o registro de função exclusiva ativo para um empregado.
  • SPSELECTCARREGARATIVAPOREMPREGADO (TAB_EmpregadoLotacao_P2.cs)
  • Parâmetros: @Idf_Empregado
  • Propósito: Seleciona o registro de lotação ativo para um empregado.
  • SPSELECTID (TAB_Empresa_P1.cs)
  • Parâmetros: @Idf_Empresa
  • Propósito: Seleciona um registro da tabela TAB_Empresa pelo seu ID.
  • SPINSERT (TAB_Empresa_P1.cs)
  • Parâmetros: @Idf_Grupo_Economico, @Num_CNPJ, @Num_CPF, @Raz_Social, @Dta_Fundacao, @Idf_Porte_Empresa, @Idf_Simples, @Vlr_Isencao_Filantropica, @Qtd_Socios, @Idf_Pessoa_Fisica, @Flg_Inativo, @Dta_Cadastro, @Dta_Alteracao, @Num_Semente, @Num_Semente_Ficha, @Cod_Empresa, @Idf_Usuario_Gerador, @Flg_Audita_Fatura, @Flg_Horario_Limite_Faturamento, @Num_Hora_Limite_Faturamento, @Num_Minuto_Limite_Faturamento, @Idf_Tipo_Estrutura_Gerencial, @Dta_Inativacao, @Sig_Empresa, @Idf_Situacao_Cadastral_Fisica, @Idf_Situacao_Cadastral_Juridica, @Idf_Tipo_Acordo_Internacional, @Idf_Tipo_Indicativo_Construtora, @Idf_Tipo_Registro_Eletronico_Empregados, @Idf_Processo_Administrativo_Judicial, @Idf_Tipo_Clafissicacao_Tributaria, @Idf_Tipo_Cooperativa, @Num_SIAFI, @Idf_Classificacao_Economica, @Idf_Indicador_Contribuicao_Substituida, @Vlr_Contribuicao_Mes, @Vlr_Contribuicao_13
  • Propósito: Insere um novo registro na tabela TAB_Empresa.
  • SPUPDATE (TAB_Empresa_P1.cs)
  • Parâmetros: @Idf_Grupo_Economico, @Num_CNPJ, @Num_CPF, @Raz_Social, @Dta_Fundacao, @Idf_Porte_Empresa, @Idf_Simples, @Vlr_Isencao_Filantropica, @Qtd_Socios, @Idf_Pessoa_Fisica, @Flg_Inativo, @Dta_Cadastro, @Dta_Alteracao, @Num_Semente, @Num_Semente_Ficha, @Cod_Empresa, @Idf_Usuario_Gerador, @Flg_Audita_Fatura, @Flg_Horario_Limite_Faturamento, @Num_Hora_Limite_Faturamento, @Num_Minuto_Limite_Faturamento, @Idf_Tipo_Estrutura_Gerencial, @Dta_Inativacao, @Sig_Empresa, @Idf_Situacao_Cadastral_Fisica, @Idf_Situacao_Cadastral_Juridica, @Idf_Tipo_Acordo_Internacional, @Idf_Tipo_Indicativo_Construtora, @Idf_Tipo_Registro_Eletronico_Empregados, @Idf_Processo_Administrativo_Judicial, @Idf_Tipo_Clafissicacao_Tributaria, @Idf_Tipo_Cooperativa, @Num_SIAFI, @Idf_Classificacao_Economica, @Idf_Indicador_Contribuicao_Substituida, @Vlr_Contribuicao_Mes, @Vlr_Contribuicao_13, @Idf_Empresa
  • Propósito: Atualiza um registro existente na tabela TAB_Empresa.
  • SPDELETE (TAB_Empresa_P1.cs)
  • Parâmetros: @Idf_Empresa, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Empresa.
  • SPSELECTID (TAB_Feriado_P1.cs)
  • Parâmetros: @Idf_Feriado
  • Propósito: Seleciona um registro da tabela TAB_Feriado pelo seu ID.
  • SPINSERT (TAB_Feriado_P1.cs)
  • Parâmetros: @Dta_Feriado, @Des_Motivo_Feriado, @Idf_Tipo_Feriado, @Idf_Estado, @Idf_Cidade, @Flg_Inativo, @Dta_Cadastro, @Flg_Permanente, @Idf_Usuario_Gerador, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Centro_Resultado
  • Propósito: Insere um novo registro na tabela TAB_Feriado.
  • SPUPDATE (TAB_Feriado_P1.cs)
  • Parâmetros: @Dta_Feriado, @Des_Motivo_Feriado, @Idf_Tipo_Feriado, @Idf_Estado, @Idf_Cidade, @Flg_Inativo, @Dta_Cadastro, @Flg_Permanente, @Idf_Usuario_Gerador, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Centro_Resultado, @Idf_Feriado
  • Propósito: Atualiza um registro existente na tabela TAB_Feriado.
  • SPDELETE (TAB_Feriado_P1.cs)
  • Parâmetros: @Idf_Feriado, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Feriado.
  • SPVALIDARFERIADONACIONAL (TAB_Feriado_P2.cs)
  • Parâmetros: @Dta_Feriado
  • Propósito: Verifica se a data fornecida corresponde a um feriado nacional.
  • SPSELECTID (TAB_Filial_P1.cs)
  • Parâmetros: @Idf_Filial
  • Propósito: Seleciona um registro da tabela TAB_Filial pelo seu ID.
  • SPINSERT (TAB_Filial_P1.cs)
  • Parâmetros: @Idf_Empresa, @Flg_Matriz, @Num_CNPJ, @Num_CEI, @Raz_Social, @Nme_Fantasia, @Ape_Filial, @Idf_CNAE_Principal, @Idf_CNAE_Secundario, @Idf_Natureza_Juridica, @Idf_Endereco, @Eml_Filial, @End_Site, @Num_DDD_Comercial, @Num_Comercial, @Num_DDD_Comercial2, @Num_Comercial2, @Num_DDD_Fax, @Num_Fax, @Idf_GPS, @Idf_RAT, @Cod_CEF, @Flg_Inativo, @Dta_Cadastro, @Dta_Alteracao, @Num_Semente, @Flg_Prestadora, @Num_Semente_Ficha, @Num_IE, @Idf_Usuario_Gerador, @Cod_Filial, @Flg_Emite_NFE, @Num_CNPJ_Emissor, @Dta_Inativacao, @Idf_Tipo_Centralizacao, @Num_FAP, @Vlr_PIS_Folha, @Flg_PAT, @Flg_Empresa_Cidada, @Idf_Sindicato_Patronal, @Idf_Tipo_Registro_Ponto, @Idf_Tipo_CAEPF, @Idf_Tipo_Contratacao_Aprendiz, @Idf_Tipo_Contratacao_PCD, @Idf_Processo_Contratacao_Aprendiz, @Idf_Processo_Contratacao_PCD, @Flg_Contratacao_Entidade_Educativa, @Flg_Substituicao_Contribuicao_Patronal, @Des_Divisao_Negocio, @Sig_Empresa, @Flg_Indicativo_Trabalho_Temporario, @Reg_Empresa_Trabalho_Temporario, @Idf_Classificacao_Economica, @Num_CAEPF, @Flg_Pis_Cofins, @Flg_Integra_Ponto, @Num_Tipo_Cno, @Num_Tipo_Inscricao_Contratante, @Num_CPF_Contratante, @Num_CNPJ_Contratante
  • Propósito: Insere um novo registro na tabela TAB_Filial.
  • SPUPDATE (TAB_Filial_P1.cs)
  • Parâmetros: @Idf_Empresa, @Flg_Matriz, @Num_CNPJ, @Num_CEI, @Raz_Social, @Nme_Fantasia, @Ape_Filial, @Idf_CNAE_Principal, @Idf_CNAE_Secundario, @Idf_Natureza_Juridica, @Idf_Endereco, @Eml_Filial, @End_Site, @Num_DDD_Comercial, @Num_Comercial, @Num_DDD_Comercial2, @Num_Comercial2, @Num_DDD_Fax, @Num_Fax, @Idf_GPS, @Idf_RAT, @Cod_CEF, @Flg_Inativo, @Dta_Cadastro, @Dta_Alteracao, @Num_Semente, @Flg_Prestadora, @Num_Semente_Ficha, @Num_IE, @Idf_Usuario_Gerador, @Cod_Filial, @Flg_Emite_NFE, @Num_CNPJ_Emissor, @Dta_Inativacao, @Idf_Tipo_Centralizacao, @Num_FAP, @Vlr_PIS_Folha, @Flg_PAT, @Flg_Empresa_Cidada, @Idf_Sindicato_Patronal, @Idf_Tipo_Registro_Ponto, @Idf_Tipo_CAEPF, @Idf_Tipo_Contratacao_Aprendiz, @Idf_Tipo_Contratacao_PCD, @Idf_Processo_Contratacao_Aprendiz, @Idf_Processo_Contratacao_PCD, @Flg_Contratacao_Entidade_Educativa, @Flg_Substituicao_Contribuicao_Patronal, @Des_Divisao_Negocio, @Sig_Empresa, @Flg_Indicativo_Trabalho_Temporario, @Reg_Empresa_Trabalho_Temporario, @Idf_Classificacao_Economica, @Num_CAEPF, @Flg_Pis_Cofins, @Flg_Integra_Ponto, @Num_Tipo_Cno, @Num_Tipo_Inscricao_Contratante, @Num_CPF_Contratante, @Num_CNPJ_Contratante, @Idf_Filial
  • Propósito: Atualiza um registro existente na tabela TAB_Filial.
  • SPDELETE (TAB_Filial_P1.cs)
  • Parâmetros: @Idf_Filial, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Filial.
  • SPSELECTID (TAB_Integracao_Epays_Historico_P1.cs)
  • Parâmetros: @Idf_Integracao_Epays_Historico
  • Propósito: Seleciona um registro da tabela TAB_Integracao_Epays_Historico pelo seu ID.
  • SPINSERT (TAB_Integracao_Epays_Historico_P1.cs)
  • Parâmetros: @Idf_Usuario_Gerador, @Dta_Envio, @Idf_Periodo_Calculo, @Idf_Empregado, @Idf_Lote
  • Propósito: Insere um novo registro na tabela TAB_Integracao_Epays_Historico.
  • SPUPDATE (TAB_Integracao_Epays_Historico_P1.cs)
  • Parâmetros: @Idf_Usuario_Gerador, @Dta_Envio, @Idf_Periodo_Calculo, @Idf_Empregado, @Idf_Lote, @Idf_Integracao_Epays_Historico
  • Propósito: Atualiza um registro existente na tabela TAB_Integracao_Epays_Historico.
  • SPDELETE (TAB_Integracao_Epays_Historico_P1.cs)
  • Parâmetros: @Idf_Integracao_Epays_Historico
  • Propósito: Exclui um registro da tabela TAB_Integracao_Epays_Historico.
  • SPSELECTID (TAB_Mes_P1.cs)
  • Parâmetros: @Idf_Mes
  • Propósito: Seleciona um registro da tabela plataforma.TAB_Mes pelo seu ID.
  • SPINSERT (TAB_Mes_P1.cs)
  • Parâmetros: @Idf_Mes, @Des_Mes, @Flg_Inativo, @Dta_Cadastro
  • Propósito: Insere um novo registro na tabela plataforma.TAB_Mes.
  • SPUPDATE (TAB_Mes_P1.cs)
  • Parâmetros: @Des_Mes, @Flg_Inativo, @Dta_Cadastro, @Idf_Mes
  • Propósito: Atualiza um registro existente na tabela plataforma.TAB_Mes.
  • SPDELETE (TAB_Mes_P1.cs)
  • Parâmetros: @Idf_Mes
  • Propósito: Exclui um registro da tabela plataforma.TAB_Mes.
  • SPSELECT (TAB_Mes_P2.cs)
  • Parâmetros: Nenhum
  • Propósito: Seleciona todos os registros da tabela plataforma.TAB_Mes.
  • SPSELECTID (TAB_Parametro_Especifico_P1.cs)
  • Parâmetros: @Idf_Parametro_Especifico
  • Propósito: Seleciona um registro da tabela TAB_Parametro_Especifico pelo seu ID.
  • SPINSERT (TAB_Parametro_Especifico_P1.cs)
  • Parâmetros: @Idf_Parametro, @Idf_Tipo_Valor, @Vlr_Parametro, @Flg_Inativo, @Dta_Cadastro, @Idf_Usuario_Gerador, @Flg_Validado, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Sindicato, @Idf_Centro_Resultado, @Des_Verbas_Informacao
  • Propósito: Insere um novo registro na tabela TAB_Parametro_Especifico.
  • SPUPDATE (TAB_Parametro_Especifico_P1.cs)
  • Parâmetros: @Idf_Parametro, @Idf_Tipo_Valor, @Vlr_Parametro, @Flg_Inativo, @Dta_Cadastro, @Idf_Usuario_Gerador, @Flg_Validado, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Sindicato, @Idf_Centro_Resultado, @Des_Verbas_Informacao, @Idf_Parametro_Especifico
  • Propósito: Atualiza um registro existente na tabela TAB_Parametro_Especifico.
  • SPDELETE (TAB_Parametro_Especifico_P1.cs)
  • Parâmetros: @Idf_Parametro_Especifico, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Parametro_Especifico.
  • SPSELPARAMENTROESPECIFICO (TAB_Parametro_Especifico_P2.cs)
  • Parâmetros: @Idf_Parametro, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Sindicato, @Idf_Centro_Resultado
  • Propósito: Recupera o valor de um parâmetro específico, considerando a hierarquia Empresa/Filial/Contrato/Sindicato/CentroResultado.
  • SPSELECTID (TAB_Periodo_Calculo_P1.cs)
  • Parâmetros: @Idf_Periodo_Calculo
  • Propósito: Seleciona um registro da tabela TAB_Periodo_Calculo pelo seu ID.
  • SPINSERT (TAB_Periodo_Calculo_P1.cs)
  • Parâmetros: @Des_Periodo_Calculo, @Dta_Inicio, @Dta_Fim, @Dta_Cadastro, @Idf_Usuario_Gerador
  • Propósito: Insere um novo registro na tabela TAB_Periodo_Calculo.
  • SPUPDATE (TAB_Periodo_Calculo_P1.cs)
  • Parâmetros: @Des_Periodo_Calculo, @Dta_Inicio, @Dta_Fim, @Dta_Cadastro, @Idf_Usuario_Gerador, @Idf_Periodo_Calculo
  • Propósito: Atualiza um registro existente na tabela TAB_Periodo_Calculo.
  • SPDELETE (TAB_Periodo_Calculo_P1.cs)
  • Parâmetros: @Idf_Periodo_Calculo, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Periodo_Calculo.
  • SELPERIODOCALCULOABERTOPOREMPRESA (TAB_Periodo_Calculo_P2.cs)
  • Parâmetros: @Idf_Empresa
  • Propósito: Seleciona o período de cálculo aberto para uma empresa.
  • SPSELECTID (TAB_Periodo_Calculo_Filial_P1.cs)
  • Parâmetros: @Idf_Periodo_Calculo_Filial
  • Propósito: Seleciona um registro da tabela TAB_Periodo_Calculo_Filial pelo seu ID.
  • SPINSERT (TAB_Periodo_Calculo_Filial_P1.cs)
  • Parâmetros: @Idf_Periodo_Calculo, @Idf_Filial, @Flg_Fechado, @Idf_Usuario_Gerador, @Dta_Alteracao, @Dta_Fechamento
  • Propósito: Insere um novo registro na tabela TAB_Periodo_Calculo_Filial.
  • SPUPDATE (TAB_Periodo_Calculo_Filial_P1.cs)
  • Parâmetros: @Idf_Periodo_Calculo, @Idf_Filial, @Flg_Fechado, @Idf_Usuario_Gerador, @Dta_Alteracao, @Dta_Fechamento, @Idf_Periodo_Calculo_Filial
  • Propósito: Atualiza um registro existente na tabela TAB_Periodo_Calculo_Filial.
  • SPDELETE (TAB_Periodo_Calculo_Filial_P1.cs)
  • Parâmetros: @Idf_Periodo_Calculo_Filial, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Periodo_Calculo_Filial.
  • SPGETIDFPERIODOATUAL (TAB_Periodo_Calculo_Filial_P2.cs)
  • Parâmetros: @Idf_Filial
  • Propósito: Retorna o ID do período de cálculo aberto para uma filial.
  • SPCARREGARPORMETADATA (TAB_Plugins_Compatibilidade_P2.cs)
  • Parâmetros: @Des_Plugin_Metadata_Entrada, @Des_Plugin_Metadata_Saida
  • Propósito: Carrega a compatibilidade de plugins por metadata de entrada e saída.
  • SPSELECTID (TAB_Tipo_Beneficio_P1.cs)
  • Parâmetros: @Idf_Tipo_Beneficio
  • Propósito: Seleciona um registro da tabela plataforma.TAB_Tipo_Beneficio pelo seu ID.
  • SPINSERT (TAB_Tipo_Beneficio_P1.cs)
  • Parâmetros: @Des_Tipo_Beneficio, @Idf_Categoria_Beneficio, @Flg_Inativo, @Dta_Cadastro, @Flg_Transporte
  • Propósito: Insere um novo registro na tabela plataforma.TAB_Tipo_Beneficio.
  • SPUPDATE (TAB_Tipo_Beneficio_P1.cs)
  • Parâmetros: @Des_Tipo_Beneficio, @Idf_Categoria_Beneficio, @Flg_Inativo, @Dta_Cadastro, @Flg_Transporte, @Idf_Tipo_Beneficio
  • Propósito: Atualiza um registro existente na tabela plataforma.TAB_Tipo_Beneficio.
  • SPDELETE (TAB_Tipo_Beneficio_P1.cs)
  • Parâmetros: @Idf_Tipo_Beneficio
  • Propósito: Exclui um registro da tabela plataforma.TAB_Tipo_Beneficio.
  • SELLISTARTIPOBENEFICIOEXCETO (TAB_Tipo_Beneficio_P2.cs)
  • Parâmetros: @Status, {0} (lista de IDs de tipo de benefício para exceção)
  • Propósito: Lista tipos de benefício, excluindo os IDs fornecidos.
  • SPSELECTID (TAB_Tipo_Conta_P1.cs)
  • Parâmetros: @Idf_Tipo_Conta
  • Propósito: Seleciona um registro da tabela plataforma.TAB_Tipo_Conta pelo seu ID.
  • SPINSERT (TAB_Tipo_Conta_P1.cs)
  • Parâmetros: @Idf_Tipo_Conta, @Des_Tipo_Conta, @Flg_Inativo, @Dta_Cadastro
  • Propósito: Insere um novo registro na tabela plataforma.TAB_Tipo_Conta.
  • SPUPDATE (TAB_Tipo_Conta_P1.cs)
  • Parâmetros: @Des_Tipo_Conta, @Flg_Inativo, @Dta_Cadastro, @Idf_Tipo_Conta
  • Propósito: Atualiza um registro existente na tabela plataforma.TAB_Tipo_Conta.
  • SPDELETE (TAB_Tipo_Conta_P1.cs)
  • Parâmetros: @Idf_Tipo_Conta
  • Propósito: Exclui um registro da tabela plataforma.TAB_Tipo_Conta.
  • SPSELECTTIPOSTEDPAYS (TAB_Tipo_Conta_P2.cs)
  • Parâmetros: Nenhum
  • Propósito: Seleciona os tipos de conta válidos para pagamentos TEDPays.
  • SPSELECTID (TAB_Tipo_Contrato_P1.cs)
  • Parâmetros: @Idf_Tipo_Contrato
  • Propósito: Seleciona um registro da tabela plataforma.TAB_Tipo_Contrato pelo seu ID.
  • SPINSERT (TAB_Tipo_Contrato_P1.cs)
  • Parâmetros: @Idf_Tipo_Contrato, @Des_Tipo_Contrato, @Flg_Inativo, @Dta_Cadastro, @Idf_Servico
  • Propósito: Insere um novo registro na tabela plataforma.TAB_Tipo_Contrato.
  • SPUPDATE (TAB_Tipo_Contrato_P1.cs)
  • Parâmetros: @Des_Tipo_Contrato, @Flg_Inativo, @Dta_Cadastro, @Idf_Servico, @Idf_Tipo_Contrato
  • Propósito: Atualiza um registro existente na tabela plataforma.TAB_Tipo_Contrato.
  • SPDELETE (TAB_Tipo_Contrato_P1.cs)
  • Parâmetros: @Idf_Tipo_Contrato
  • Propósito: Exclui um registro da tabela plataforma.TAB_Tipo_Contrato.
  • SPSELECTPOREMPRESA (TAB_Tipo_Contrato_P2.cs)
  • Parâmetros: @Idf_Empresa
  • Propósito: Seleciona os tipos de contrato associados a uma empresa.
  • SPSELECTID (TAB_Tipo_Vinculo_P1.cs)
  • Parâmetros: @Idf_Tipo_Vinculo
  • Propósito: Seleciona um registro da tabela plataforma.TAB_Tipo_Vinculo pelo seu ID.
  • SPINSERT (TAB_Tipo_Vinculo_P1.cs)
  • Parâmetros: @Des_Tipo_Vinculo, @Flg_Prazo_Determinado, @Qtd_Prazo_Padrao, @Flg_Prazo_Variavel, @Flg_Experiencia, @Flg_Inativo, @Dta_Cadastro, @Cod_Categoria_Trabalhador, @Flg_Utiliza_Ficha_Registro
  • Propósito: Insere um novo registro na tabela plataforma.TAB_Tipo_Vinculo.
  • SPUPDATE (TAB_Tipo_Vinculo_P1.cs)
  • Parâmetros: @Des_Tipo_Vinculo, @Flg_Prazo_Determinado, @Qtd_Prazo_Padrao, @Flg_Prazo_Variavel, @Flg_Experiencia, @Flg_Inativo, @Dta_Cadastro, @Cod_Categoria_Trabalhador, @Flg_Utiliza_Ficha_Registro, @Idf_Tipo_Vinculo
  • Propósito: Atualiza um registro existente na tabela plataforma.TAB_Tipo_Vinculo.
  • SPDELETE (TAB_Tipo_Vinculo_P1.cs)
  • Parâmetros: @Idf_Tipo_Vinculo
  • Propósito: Exclui um registro da tabela plataforma.TAB_Tipo_Vinculo.
  • SPSELECTPOREMPRESA (TAB_Tipo_Vinculo_P2.cs)
  • Parâmetros: @Idf_Empresa
  • Propósito: Seleciona os tipos de vínculo associados a uma empresa.
  • SPSELECTID (TAB_Usuario_P1.cs)
  • Parâmetros: @Idf_Usuario
  • Propósito: Seleciona um registro da tabela TAB_Usuario pelo seu ID.
  • SPINSERT (TAB_Usuario_P1.cs)
  • Parâmetros: @Num_CPF, @Idf_Perfil_Principal, @Idf_Ultima_Empresa, @Idf_Usuario_Gerador, @Idf_Sistema_Gerador, @Idf_Pessoa_Fisica, @Flg_Interno, @Dta_Cadastro, @Flg_Inativo
  • Propósito: Insere um novo registro na tabela TAB_Usuario.
  • SPUPDATE (TAB_Usuario_P1.cs)
  • Parâmetros: @Num_CPF, @Idf_Perfil_Principal, @Idf_Ultima_Empresa, @Idf_Usuario_Gerador, @Idf_Sistema_Gerador, @Idf_Pessoa_Fisica, @Flg_Interno, @Dta_Cadastro, @Flg_Inativo, @Idf_Usuario
  • Propósito: Atualiza um registro existente na tabela TAB_Usuario.
  • SPDELETE (TAB_Usuario_P1.cs)
  • Parâmetros: @Idf_Usuario, @Idf_Usuario_Gerador
  • Propósito: Atualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Usuario.
  • SPSELECTPERMISSOESUSUARIO (TAB_Usuario_P2.cs)
  • Parâmetros: @idf_usuario, @Idf_Categoria_Permissao
  • Propósito: Seleciona as permissões de um usuário para uma categoria específica.

7.3. UserControls incluídos (.ascx)

  • Employer:EmployerValidationSummary
  • ID: vsValidacaoPesquisar, vsValidacaoPagar
  • Propósito: Exibir mensagens de validação.
  • Employer:ListaSugestoes
  • ID: lsTipoBeneficio, lsFormaPagamentoBeneficio, lsTipoContrato, lsTipoVinculo, lsFormaPagamento, lsPagamentoTedPays, lsTipoConta, lsPeriodoMes, lsFormaPagamentoConfirmacao, lsPeriodoMesModalConfirmacaoAberturaPagamento
  • Propósito: Componente de seleção com sugestões.
  • Eventos: OnValueChanged (para lsFormaPagamentoBeneficio, lsFormaPagamento, lsPagamentoTedPays, lsFormaPagamentoConfirmacao).
  • Employer:LocalizarBeneficio
  • ID: txtBeneficio
  • Propósito: Componente para localizar regras de benefício.
  • Employer:LocalizarFilial
  • ID: txtFilial
  • Propósito: Componente para localizar filiais.
  • Eventos: OnValorAlterado (txtFilial_ValorAlterado).
  • Employer:LocalizarCliente
  • ID: txtCliente
  • Propósito: Componente para localizar clientes.
  • Eventos: OnValorAlterado (txtCliente_ValorAlterado).
  • Employer:LocalizarContrato
  • ID: txtContratoMae, txtContrato
  • Propósito: Componente para localizar contratos (mãe e filho).
  • Eventos: OnValorAlterado (txtContratoMae_ValorAlterado, txtContrato_ValorAlterado).
  • Employer:LocalizarDepartamento
  • ID: txtDepartamento
  • Propósito: Componente para localizar departamentos.
  • Eventos: OnValorAlterado (txtDepartamento_ValorAlterado).
  • Employer:LocalizarCentroResultado
  • ID: txtCentroResultado
  • Propósito: Componente para localizar centros de resultado.
  • Eventos: OnValorAlterado (txtCentroResultado_ValorAlterado).
  • Employer:LocalizarFuncao
  • ID: txtFuncao
  • Propósito: Componente para localizar funções.
  • Eventos: OnValorAlterado (txtFuncao_ValorAlterado).
  • Employer:LocalizarSupervisor
  • ID: txtSupervisorGeral
  • Propósito: Componente para localizar supervisores.
  • Eventos: OnValorAlterado (txtSupervisor_ValorAlterado).
  • Employer:LocalizarLotacao
  • ID: txtLotacao
  • Propósito: Componente para localizar lotações.
  • Eventos: OnValorAlterado (txtLotacao_ValorAlterado).
  • Employer:LocalizarEmpregado
  • ID: txtEmpregado, txtEmpregadoModalConfirmacaoAberturaPagamento
  • Propósito: Componente para localizar empregados.
  • Eventos: OnValorAlterado (txtEmpregado_ValorAlterado).
  • Employer:ControlAlfaNumerico
  • ID: txtPeriodoAno, txtPeriodoAnoModalConfirmacaoAberturaPagamento
  • Propósito: Campo de texto alfanumérico.
  • Employer:Button
  • ID: btnPesquisar, btnExcluirSelecionados, btnAlterarConvenioBancario, btnPagar, btnImprimirCheque, btnRelatorioConfereciaBeneficio, btnRelatorioValorLiquidoFolha, btnLimpar, btnVoltar, btnConfirmarModalConfirmacaoAberturaPagamento, btnCancelarModalConfirmacaoAberturaPagamento
  • Propósito: Botões de ação.
  • Employer:EmployerGrid
  • ID: gvwPendenciaPagamento, gvwErros, gvwErrosModalConfirmacaoAberturaPagamento
  • Propósito: Componente de grid para exibir dados.
  • Eventos: OnCarregarGrid (gvwPendenciaPagamento_OnCarregarGrid, gvwErrosModalConfirmacaoAberturaPagamento_OnCarregarGrid), OnRowDataBound (gvwPendenciaPagamento_OnRowDataBound).
  • Employer:ControlCheckBox
  • ID: ckbSelecionarPagamento
  • Propósito: Checkbox para seleção de itens na grid.
  • Eventos: OnCheckedChanged (ckbSelecionarPagamento_CheckedChanged).
  • Employer:ValorNumericoTextBox
  • ID: txtValorTotalConfirmacao, txtValorPagamentoModalConfirmacaoAberturaPagamento
  • Propósito: Campo de texto para valores numéricos.
  • Employer:DataTextBox
  • ID: txtDataPagamentoConfirmacao
  • Propósito: Campo de texto para datas com calendário.
  • Employer:LocalizarBanco
  • ID: txtBanco, txtBancoConfirmacao
  • Propósito: Componente para localizar bancos.
  • Eventos: OnValorAlterado (txtBanco_ValorAlterado, txtBancoConfirmacao_ValorAlterado).
  • Employer:LocalizarConvenioBancario
  • ID: txtConvenioBancarioConfirmacao
  • Propósito: Componente para localizar convênios bancários.
  • Eventos: OnValorAlterado (txtConvenioBancarioConfirmacao_ValorAlterado).
  • Employer:EmployerModalConfirmacao
  • ID: ucModalConfirmacao
  • Propósito: Modal genérica de confirmação.
  • Eventos: Confirmar (ucModalConfirmacao_Confirmar_Click), Cancelar (ucModalConfirmacao_Cancelar_Click).
  • Employer:ConfirmacaoSenha
  • ID: modalConfirmacaoSenha, modalConfirmacaoSenhaTedPays
  • Propósito: Modal para confirmação de senha.
  • Eventos: OnConfirmar (modalConfirmacaoSenha_OnConfirmar, modalConfirmacaoSenhaTedPays_OnConfirmar), OnCancelar (modalConfirmacaoSenhaTedPays_OnCancelar), OnFecharModal (modalConfirmacaoSenhaTedPays_OnFecharModal).
  • AjaxTookit:ModalPopupExtender
  • ID: mpeModalConfirmacaoAberturaPagamento
  • Propósito: Extender para exibir a modal de confirmação de abertura de pagamento.

7.4. WebServices, APIs externas, filas

  • RabbitMQ (EPAYS):
  • Filas: Webfopag_Epays_Pagamento, Webfopag_Epays_Pagamento_Delete, Webfopag_Epays_Empregado, Webfopag_Epays_Empregado_Delete, Webfopag_Epays_Pessoa_Fisica_Foto.
  • Propósito: Integração com o sistema EPAYS para envio de informações de pagamento, exclusão de pagamentos, integração de dados de empregados e fotos de pessoas físicas.
  • Chamadas: EPaysRabbitMQ.SendIntegracaoPagamento(), EPaysRabbitMQ.SendPaymentIntegrationDelete(), EPaysRabbitMQ.SendIntegracaoEmpregado(), EPaysRabbitMQ.SendIntegracaoEmpregadoDelete(), EPaysRabbitMQ.SendIntegracaoPessoaFisicaFoto().
  • Processos Assíncronos (PlataformaServices):
  • Propósito: Agendamento de tarefas em segundo plano, como a geração de relatórios.
  • Chamadas: ProcessoAssincrono.IniciarAtividade().

💬 8. Mensagens ao Usuário

  • “Campo Tipo de Benefício é obrigatório.” (Erro de validação - summary)
  • “Campo Tipo de Benefício preenchido com valor inválido.” (Erro de validação - summary)
  • “Campo Inválido.” (Erro de validação - formato para txtBeneficio, txtContratoMae)
  • “Campo Forma de Pagamento do Benefício é obrigatório.” (Erro de validação - summary)
  • “Campo Forma de Pagamento do Benefício preenchido com valor inválido.” (Erro de validação - summary)
  • “Campo Filial é obrigatório.” (Erro de validação - summary)
  • “Campo Filial preenchido com valor em um formato inválido.” (Erro de validação - summary)
  • “Campo Cliente é obrigatório.” (Erro de validação - summary)
  • “Campo Cliente preenchido com valor em um formato inválido.” (Erro de validação - summary)
  • “Campo Tipo de Contrato é obrigatório.” (Erro de validação - summary)
  • “Campo Tipo de Contrato preenchido com valor inválido.” (Erro de validação - summary)
  • “Campo Obrigatório.” (Erro de validação - obrigatório para txtContratoMae, txtSupervisorGeral)
  • “Campo Contrato Mãe é Inválido.” (Erro de validação - summary para txtContratoMae)
  • “Campo Contrato Mãe é Obrigatório.” (Erro de validação - summary para txtContratoMae)
  • “Campo Contrato é obrigatório.” (Erro de validação - summary)
  • “Campo Contrato preenchido com valor em um formato inválido.” (Erro de validação - summary)
  • “Campo Departamento é obrigatório.” (Erro de validação - summary)
  • “Campo Departamento preenchido com valor em um formato inválido.” (Erro de validação - summary)
  • “Campo Centro de Resultado é obrigatório.” (Erro de validação - summary)
  • “Campo Centro de Resultado preenchido com valor em um formato inválido.” (Erro de validação - summary)
  • “Campo Função é obrigatório.” (Erro de validação - summary)
  • “Campo Função preenchido com valor em um formato inválido.” (Erro de validação - summary)
  • “Campo Supervisor é Obrigatório.” (Erro de validação - summary para txtSupervisorGeral)
  • “Campo Filial deve conter uma das sugestões.” (Erro de validação - formato para txtSupervisorGeral)
  • “Campo Tipo de Vínculo é obrigatório.” (Erro de validação - summary)
  • “Campo Tipo de Vínculo preenchido com valor inválido.” (Erro de validação - summary)
  • “Campo empregado é obrigatório.” (Erro de validação - summary)
  • “Campo Empregado Preenchido com valor em um formato inválido.” (Erro de validação - summary)
  • “Campo Forma de Pagamento do Empregado é obrigatório.” (Erro de validação - summary)
  • “Campo Forma de Pagamento do Empregado preenchido com valor inválido.” (Erro de validação - summary)
  • “Campo Pagamento TEDPays é Obrigatório.” (Erro de validação - summary)
  • “Campo Pagamento TEDPays deve conter uma das sugestões.” (Erro de validação - summary)
  • “Campo Banco da Conta do Empregado é obrigatório.” (Erro de validação - summary para txtBanco)
  • “Campo Banco da Conta do Empregado preenchido com valor em um formato inválido.” (Erro de validação - summary para txtBanco)
  • “Campo Banco do Cheque é obrigatório.” (Erro de validação - summary para txtBanco quando forma de pagamento é cheque)
  • “Campo Banco do Cheque preenchido com valor em um formato inválido.” (Erro de validação - summary para txtBanco quando forma de pagamento é cheque)
  • “Campo Tipo de Conta do Empregado é obrigatório.” (Erro de validação - summary)
  • “Campo Tipo de Conta do Empregado preenchido com valor inválido.” (Erro de validação - summary)
  • “Campo Mês é obrigatório.” (Erro de validação - summary)
  • “Campo Mês preenchido com valor inválido.” (Erro de validação - summary)
  • “Campo Ano é obrigatório.” (Erro de validação - summary)
  • “Campo Ano preenchido com valor em um formato inválido.” (Erro de validação - summary)
  • “Campo Ano preenchido com um valor maior que o máximo permitido.” (Erro de validação - summary)
  • “Campo Ano preenchido com um valor menor que mínimo permitido.” (Erro de validação - summary)
  • “Nenhum pagamento pendente de benefício foi encontrado.” (Mensagem de aviso - quando a grid está vazia ou ao tentar pagar sem itens)
  • “Campo Valor Total é obrigatório.” (Erro de validação - summary para txtValorTotalConfirmacao)
  • “Campo valor total preenchido com valor em um formato inválido.” (Erro de validação - summary para txtValorTotalConfirmacao)
  • “Campo Data de Pagamento é obrigatório.” (Erro de validação - summary)
  • “Campo Data de Pagamento preenchido com valor em um formato inválido.” (Erro de validação - summary)
  • “Campo Forma de Pagamento é obrigatório.” (Erro de validação - summary)
  • “Campo Forma de Pagamento preenchido com valor inválido.” (Erro de validação - summary)
  • “Campo Banco é obrigatório.” (Erro de validação - summary para txtBancoConfirmacao)
  • “Campo Banco preenchido com valor em um formato inválido.” (Erro de validação - summary para txtBancoConfirmacao)
  • “Campo Convênio Bancário é obrigatório.” (Erro de validação - summary)
  • “Campo Convênio Bancário preenchido com valor em um formato inválido.” (Erro de validação - summary)
  • “Usuário não tem permissão para executar essa operação!” (Mensagem de aviso - ao tentar realizar uma ação sem permissão)
  • “Não foi identificada uma forma de pagamento.” (Mensagem de erro - ao tentar pagar sem forma de pagamento selecionada)
  • “Nenhum convênio bancário especificado.” (Mensagem de erro - ao tentar pagar com forma de pagamento Banco/Cheque sem convênio)
  • “Pagamento não realizado. Data de pagamento se trata de feriado.” (Mensagem de erro - ao tentar pagar em feriado sem permissão)
  • “Data de pagamento retroativa pode interferir no valor da DARF já processada. Deseja continuar?” (Texto da modal de confirmação)
  • “Pagamento aberto com sucesso.” (Mensagem de aviso - após reabrir um pagamento)
  • “Para alterar o convênio bancário é necessário acesso máster. Por favor, informe o usuário e senha para confirmar a ação.” (Mensagem de impacto na modal de confirmação de senha)
  • “Nenhum pagamento foi realizado.” (Mensagem de erro - se o processo de pagamento não resultou em nenhum pagamento efetivado)
  • “Integração com EPAYS não realizada! Favor verificar parâmetros de acesso a API.” (Mensagem de aviso - se os parâmetros da API EPAYS não estiverem configurados)
  • “Solicitação de relatório enviada com sucesso.” (Mensagem de aviso - após iniciar um processo assíncrono de relatório)
  • “Erro ao gravar a atividade” (Erro de sistema - ao falhar em gravar a atividade assíncrona)
  • “Atividade duplicada” (Erro de sistema - se a atividade assíncrona já existe)
  • “Erro ao realizar o pagamento de benefício” (Erro de sistema - genérico durante o processo de pagamento)
  • “Erro ao abrir pagamento de benefício.” (Erro de sistema - genérico durante a reabertura de pagamento)
  • “Campo Empregado é obrigatório.” (Erro de validação - summary para txtEmpregadoModalConfirmacaoAberturaPagamento)
  • “Campo Empregado preenchido com valor em um formato inválido.” (Erro de validação - summary para txtEmpregadoModalConfirmacaoAberturaPagamento)
  • “Campo Mês é obrigatório.” (Erro de validação - summary para lsPeriodoMesModalConfirmacaoAberturaPagamento)
  • “Campo Mês preenchido com valor inválido.” (Erro de validação - summary para lsPeriodoMesModalConfirmacaoAberturaPagamento)
  • “Campo ano é obrigatório.” (Erro de validação - summary para txtPeriodoAnoModalConfirmacaoAberturaPagamento)
  • “Campo ano preenchido com valor em um formato inválido.” (Erro de validação - summary para txtPeriodoAnoModalConfirmacaoAberturaPagamento)
  • “Campo ano preenchido com um valor maior que o máximo permitido.” (Erro de validação - summary para txtPeriodoAnoModalConfirmacaoAberturaPagamento)
  • “Campo ano preenchido com um valor menor que mínimo permitido.” (Erro de validação - summary para txtPeriodoAnoModalConfirmacaoAberturaPagamento)
  • “Campo Valor Pagamento é obrigatório.” (Erro de validação - summary para txtValorPagamentoModalConfirmacaoAberturaPagamento)
  • “Campo Valor Pagamento preenchido com valor em um formato inválido.” (Erro de validação - summary para txtValorPagamentoModalConfirmacaoAberturaPagamento)
  • “Nenhum código ou descrição de retorno encontrado para este pagamento.” (Mensagem na grid de erros da modal de abertura de pagamento)
  • “Não é permitido pagamento TEDPays sem informar o banco.” (Exceção lançada internamente no método Pagar)

🔐 9. Permissões e Perfis

  • Employer.Plataforma.BLL.Enumeradores.Permissoes.Pagamento.VisualizarPagamentoBeneficio:
  • Controla o acesso à tela PagamentoBeneficio.aspx. Se o usuário não possuir, é redirecionado para a página de acesso negado.
  • Employer.Plataforma.BLL.Enumeradores.Permissoes.Pagamento.PagarBeneficio:
  • Controla a habilitação do botão “Pagar” (btnPagar). Se o usuário não possuir, o botão é desabilitado.
  • Employer.Plataforma.BLL.Enumeradores.Permissoes.Pagamento.AbrirPagamentoBeneficio:
  • Controla a habilitação do botão “Confirmar” (btnConfirmarModalConfirmacaoAberturaPagamento) na modal de abertura de pagamento. Se o usuário não possuir, o botão é desabilitado.
  • Employer.Plataforma.BLL.Enumeradores.Permissoes.Pagamento.PermitirConfigurarComoEfetuarPagamentoBeneficio:
  • Controla se o usuário pode configurar a forma de pagamento e o banco na seção de confirmação. Se o usuário não possuir, os campos lsFormaPagamentoConfirmacao, txtBancoConfirmacao e txtConvenioBancarioConfirmacao podem ser desabilitados ou ter sua obrigatoriedade alterada.
  • Employer.Plataforma.BLL.Enumeradores.Permissoes.SenhaMaster.SenhaMaster:
  • Permissão especial que, se o usuário possuir, permite ignorar a trava de data de corte para pagamento de cheque.
  • É verificada para habilitar a funcionalidade de “Alterar Convênio Bancário” através da modal de confirmação de senha.

🔎 10. Aprofundamento — Detalhes Internos de Métodos

Com certeza! Com todos os dados coletados, vou gerar a documentação detalhada para cada classe, incluindo métodos, lógica interna, stored procedures e parâmetros, validações e exceções.


ParametroEspecifico

Arquivo: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ParametroEspecifico_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ParametroEspecifico_P2.cs

Métodos

MétodoAssinaturaPropósito
GetParametersprivate List<SqlParameter> GetParameters()Prepara uma lista de parâmetros SQL para operações de INSERT e UPDATE.
SetParametersprivate void SetParameters(List<SqlParameter> parms)Preenche uma lista de parâmetros SQL com os valores da instância atual de ParametroEspecifico.
Insertprivate void Insert()Insere uma nova instância de ParametroEspecifico no banco de dados.
Insertprivate void Insert(SqlTransaction trans)Insere uma nova instância de ParametroEspecifico no banco de dados dentro de uma transação existente.
Updateprivate void Update()Atualiza uma instância existente de ParametroEspecifico no banco de dados.
Updateprivate void Update(SqlTransaction trans)Atualiza uma instância existente de ParametroEspecifico no banco de dados dentro de uma transação existente.
Savepublic void Save()Salva a instância atual de ParametroEspecifico no banco de dados (insere se for nova, atualiza se já existir).
Savepublic void Save(SqlTransaction trans)Salva a instância atual de ParametroEspecifico no banco de dados dentro de uma transação (insere se for nova, atualiza se já existir).
Deletepublic static void Delete(int idParametroEspecifico)Exclui um registro de ParametroEspecifico do banco de dados pelo seu ID.
Deletepublic static void Delete(int idParametroEspecifico, SqlTransaction trans)Exclui um registro de ParametroEspecifico do banco de dados pelo seu ID dentro de uma transação.
Deletepublic static void Delete(List<int> idParametroEspecifico)Exclui múltiplos registros de ParametroEspecifico do banco de dados por uma lista de IDs.
LoadDataReaderprivate static IDataReader LoadDataReader(int idParametroEspecifico)Retorna um IDataReader com as colunas de um único registro de ParametroEspecifico.
LoadDataReaderprivate static IDataReader LoadDataReader(int idParametroEspecifico, SqlTransaction trans)Retorna um IDataReader com as colunas de um único registro de ParametroEspecifico dentro de uma transação.
LoadDataReaderpublic static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Retorna um IDataReader com uma consulta paginada de registros de ParametroEspecifico.
LoadObjectpublic static ParametroEspecifico LoadObject(int idParametroEspecifico)Retorna uma instância de ParametroEspecifico preenchida a partir do banco de dados.
LoadObjectpublic static ParametroEspecifico LoadObject(int idParametroEspecifico, SqlTransaction trans)Retorna uma instância de ParametroEspecifico preenchida a partir do banco de dados dentro de uma transação.
CompleteObjectpublic bool CompleteObject()Completa os atributos da instância atual de ParametroEspecifico a partir do banco de dados.
CompleteObjectpublic bool CompleteObject(SqlTransaction trans)Completa os atributos da instância atual de ParametroEspecifico a partir do banco de dados dentro de uma transação.
SetInstanceprivate static bool SetInstance(IDataReader dr, ParametroEspecifico objParametroEspecifico)Método auxiliar para preencher uma instância de ParametroEspecifico a partir de um IDataReader.
SetInstanceprivate static bool SetInstance(IDataReader dr, ParametroEspecifico objParametroEspecifico, Boolean dispose)Método auxiliar para preencher uma instância de ParametroEspecifico a partir de um IDataReader, com opção de dispor o reader.
ListarNaturezasPermitidasINSS15e16public static List<int> ListarNaturezasPermitidasINSS15e16()Lista os IDs das naturezas permitidas para INSS 15 e 16.
RecuperarParametroEspecificopublic static string RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, CentroResultado objCentroResultado)Recupera o valor de um parâmetro específico, buscando por empresa, filial, contrato e centro de resultado. Se não encontrar, retorna do centro de serviço.
RecuperarParametroEspecificopublic static string RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, CentroResultado objCentroResultado, SqlTransaction trans)Overload para manter compatibilidade, chamando o método com Sindicato nulo.
RecuperarParametroEspecificopublic static string RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, Sindicato objSindicato, CentroResultado objCentroResultado)Recupera o valor de um parâmetro específico, buscando por empresa, filial, contrato, sindicato e centro de resultado. Se não encontrar, retorna do centro de serviço.
RecuperarParametroEspecificopublic static string RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, Sindicato objSindicato, CentroResultado objCentroResultado, SqlTransaction trans)Recupera o valor de um parâmetro específico, buscando por empresa, filial, contrato, sindicato e centro de resultado dentro de uma transação.
RecuperarParametroEspecificoEmpresapublic static string RecuperarParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa)Recupera o valor de um parâmetro específico para uma empresa, considerando apenas o escopo da empresa.
RecuperarParametroEspecificoEmpresapublic static string RecuperarParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, SqlTransaction trans)Recupera o valor de um parâmetro específico para uma empresa dentro de uma transação, considerando apenas o escopo da empresa.
RecuperarParametroEspecificoEmpregadopublic static string RecuperarParametroEspecificoEmpregado(Enumeradores.NomeParametro enumNomeParametro, Empregado objEmpregado)Recupera o valor de um parâmetro específico para um empregado, considerando a hierarquia (contrato, filial, empresa).
RecuperarSomenteParametroEspecificoEmpresapublic static string RecuperarSomenteParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa)Recupera o valor de um parâmetro específico para uma empresa, sem considerar o parâmetro global.
RecuperarSomenteParametroEspecificoEmpresapublic static string RecuperarSomenteParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, SqlTransaction trans)Recupera o valor de um parâmetro específico para uma empresa dentro de uma transação, sem considerar o parâmetro global.
ExisteParametroEspecificoCadastradopublic static bool ExisteParametroEspecificoCadastrado(int idParametro, int? idParametroEspecifico, int? idEmpresa, int? idFilial, int? idContrato, int? idCentroResultado, int? idSindicato)Verifica se já existe um parâmetro específico cadastrado com os valores fornecidos.
Salvarpublic static bool Salvar(ParametroEspecifico objParametroEspecifico, Parametro objParametro, AlteracaoMaster objAlteracaoMaster)Salva um objeto de parâmetro específico, incluindo o parâmetro associado e um registro de alteração master.

Detalhamento de Métodos Importantes

GetParameters()

  • Lógica: Este método privado é responsável por inicializar e retornar uma lista de objetos SqlParameter. Cada SqlParameter é configurado com seu nome (prefixado com ”@”), tipo de dado SQL e tamanho máximo. Ele serve como um template para os parâmetros que serão usados nas operações de INSERT e UPDATE.
  • Stored Procedures chamadas: Nenhuma diretamente.
  • Validações: Nenhuma.

SetParameters(List<SqlParameter> parms)

  • Lógica: Este método privado recebe uma lista de SqlParameter (geralmente criada por GetParameters()) e preenche os valores de cada parâmetro com os dados da instância atual de ParametroEspecifico.
  • Atribui _idParametroEspecifico, _parametro.IdParametro, _tipoValor.IdTipoValor.
  • Para _valorParametro, _empresa, _filial, _contrato, _sindicato, _centroResultado e _descricaoVerbasInformacao, verifica se o valor é nulo ou vazio e atribui DBNull.Value se for, caso contrário, atribui o valor da propriedade.
  • Atribui _flagInativo e _flagValidado.
  • Se a instância não for persistida (_persisted é false), define _idParametroEspecifico como ParameterDirection.Output (para receber o ID gerado pelo banco) e define _dataCadastro como DateTime.Now.
  • Se a instância já for persistida, define _idParametroEspecifico como ParameterDirection.Input.
  • Define _dataCadastro e _usuarioGerador (obtendo o ID do usuário da sessão HTTP ou usando 1 como padrão).
  • Stored Procedures chamadas: Nenhuma diretamente.
  • Validações: Verifica se as propriedades são nulas ou vazias antes de atribuir DBNull.Value.

Insert()

  • Lógica:
  1. Chama GetParameters() para obter uma lista de parâmetros SQL vazia.
  2. Chama SetParameters(parms) para preencher a lista de parâmetros com os dados da instância.
  3. Abre uma nova conexão SQL e inicia uma transação.
  4. Executa a query SPINSERT (um comando INSERT) usando DataAccessLayer.ExecuteNonQueryCmd.
  5. Recupera o IdParametroEspecifico gerado pelo banco (usando SCOPE_IDENTITY()) e atribui à propriedade _idParametroEspecifico.
  6. Limpa os parâmetros do comando.
  7. Define _persisted como true e _modified como false.
  8. Comita a transação.
  9. Em caso de erro, faz rollback da transação e relança a exceção.
  • Stored Procedures chamadas: SPINSERT (INSERT INTO TAB_Parametro_Especifico ... SET @Idf_Parametro_Especifico = SCOPE_IDENTITY();)
  • @Idf_Parametro: ID do parâmetro.
  • @Idf_Tipo_Valor: ID do tipo de valor.
  • @Vlr_Parametro: Valor do parâmetro.
  • @Flg_Inativo: Flag de inativo.
  • @Dta_Cadastro: Data de cadastro.
  • @Idf_Usuario_Gerador: ID do usuário que gerou o registro.
  • @Flg_Validado: Flag de validado.
  • @Idf_Empresa: ID da empresa (opcional).
  • @Idf_Filial: ID da filial (opcional).
  • @Idf_Contrato: ID do contrato (opcional).
  • @Idf_Sindicato: ID do sindicato (opcional).
  • @Idf_Centro_Resultado: ID do centro de resultado (opcional).
  • @Des_Verbas_Informacao: Descrição das verbas de informação (opcional).
  • Validações: Nenhuma explícita além das do banco de dados.
  • Exceções: Lança exceções de banco de dados em caso de falha na inserção.

Insert(SqlTransaction trans)

  • Lógica: Similar a Insert(), mas utiliza uma transação SQL já existente, não abrindo nem comitando uma nova.
  1. Chama GetParameters() e SetParameters(parms).
  2. Executa a query SPINSERT usando DataAccessLayer.ExecuteNonQueryCmd com a transação fornecida.
  3. Recupera o IdParametroEspecifico gerado e atualiza a instância.
  4. Define _persisted como true e _modified como false.
  • Stored Procedures chamadas: SPINSERT (mesmos parâmetros de Insert()).
  • Validações: Nenhuma explícita.
  • Exceções: Lança exceções de banco de dados em caso de falha na inserção.

Update()

  • Lógica:
  1. Verifica se a instância foi modificada (_modified é true).
  2. Se modificada, chama GetParameters() e SetParameters(parms).
  3. Executa a query SPUPDATE (um comando UPDATE) usando DataAccessLayer.ExecuteNonQuery.
  4. Define _modified como false.
  • Stored Procedures chamadas: SPUPDATE (UPDATE TAB_Parametro_Especifico SET ... WHERE Idf_Parametro_Especifico = @Idf_Parametro_Especifico)
  • @Idf_Parametro: ID do parâmetro.
  • @Idf_Tipo_Valor: ID do tipo de valor.
  • @Vlr_Parametro: Valor do parâmetro.
  • @Flg_Inativo: Flag de inativo.
  • @Dta_Cadastro: Data de cadastro.
  • @Idf_Usuario_Gerador: ID do usuário que gerou o registro.
  • @Flg_Validado: Flag de validado.
  • @Idf_Empresa: ID da empresa (opcional).
  • @Idf_Filial: ID da filial (opcional).
  • @Idf_Contrato: ID do contrato (opcional).
  • @Idf_Sindicato: ID do sindicato (opcional).
  • @Idf_Centro_Resultado: ID do centro de resultado (opcional).
  • @Des_Verbas_Informacao: Descrição das verbas de informação (opcional).
  • @Idf_Parametro_Especifico: ID do parâmetro específico a ser atualizado.
  • Validações: Nenhuma explícita.
  • Exceções: Lança exceções de banco de dados em caso de falha na atualização.

Update(SqlTransaction trans)

  • Lógica: Similar a Update(), mas utiliza uma transação SQL já existente.
  1. Verifica se a instância foi modificada (_modified é true).
  2. Se modificada, chama GetParameters() e SetParameters(parms).
  3. Executa a query SPUPDATE usando DataAccessLayer.ExecuteNonQuery com a transação fornecida.
  4. Define _modified como false.
  • Stored Procedures chamadas: SPUPDATE (mesmos parâmetros de Update()).
  • Validações: Nenhuma explícita.
  • Exceções: Lança exceções de banco de dados em caso de falha na atualização.

Save()

  • Lógica: Método público para persistir a instância.
  1. Verifica se a instância já foi persistida (_persisted).
  2. Se não foi persistida, chama this.Insert().
  3. Se já foi persistida, chama this.Update().
  • Stored Procedures chamadas: Depende se é uma inserção ou atualização (chama Insert() ou Update()).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções de Insert() ou Update().

Save(SqlTransaction trans)

  • Lógica: Similar a Save(), mas utiliza uma transação SQL já existente.
  1. Verifica se a instância já foi persistida (_persisted).
  2. Se não foi persistida, chama this.Insert(trans).
  3. Se já foi persistida, chama this.Update(trans).
  • Stored Procedures chamadas: Depende se é uma inserção ou atualização (chama Insert(trans) ou Update(trans)).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções de Insert(trans) ou Update(trans).

Delete(int idParametroEspecifico)

  • Lógica:
  1. Cria uma lista de SqlParameter para o ID do parâmetro específico e o ID do usuário gerador.
  2. Atribui os valores aos parâmetros (o ID do usuário é obtido da sessão HTTP).
  3. Executa a query SPDELETE (um comando UPDATE para registrar o usuário que “excluiu” e depois um DELETE físico) usando DataAccessLayer.ExecuteNonQuery.
  • Stored Procedures chamadas: SPDELETE (UPDATE TAB_Parametro_Especifico SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Parametro_Especifico = @Idf_Parametro_Especifico ; DELETE FROM TAB_Parametro_Especifico WHERE Idf_Parametro_Especifico = @Idf_Parametro_Especifico)
  • @Idf_Parametro_Especifico: ID do parâmetro específico a ser excluído.
  • @Idf_Usuario_Gerador: ID do usuário que realizou a exclusão.
  • Validações: Nenhuma explícita.
  • Exceções: Lança exceções de banco de dados em caso de falha.

Delete(int idParametroEspecifico, SqlTransaction trans)

  • Lógica: Similar a Delete(int), mas utiliza uma transação SQL já existente.
  1. Cria uma lista de SqlParameter e atribui os valores.
  2. Executa a query SPDELETE usando DataAccessLayer.ExecuteNonQuery com a transação fornecida.
  • Stored Procedures chamadas: SPDELETE (mesmos parâmetros de Delete(int)).
  • Validações: Nenhuma explícita.
  • Exceções: Lança exceções de banco de dados em caso de falha.

Delete(List<int> idParametroEspecifico)

  • Lógica:
  1. Constrói uma query SQL dinâmica para realizar um UPDATE e um DELETE em massa.
  2. Itera sobre a lista de IDs fornecida, adicionando cada ID como um parâmetro nomeado à query e à lista de SqlParameter.
  3. Adiciona o ID do usuário gerador (da sessão HTTP) como o último parâmetro.
  4. Executa a query construída usando DataAccessLayer.ExecuteNonQuery.
  • Stored Procedures chamadas: Query dinâmica construída com UPDATE TAB_Parametro_Especifico SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Parametro_Especifico in (...) e DELETE FROM TAB_Parametro_Especifico WHERE Idf_Parametro_Especifico in (...).
  • @parmX: Cada ID da lista de parâmetros específicos.
  • @Idf_Usuario_Gerador: ID do usuário que realizou a exclusão.
  • Validações: Nenhuma explícita.
  • Exceções: Lança exceções de banco de dados em caso de falha.

LoadDataReader(int idParametroEspecifico)

  • Lógica:
  1. Cria uma lista de SqlParameter para o ID do parâmetro específico.
  2. Atribui o ID fornecido ao parâmetro.
  3. Executa a query SPSELECTID (um comando SELECT) usando DataAccessLayer.ExecuteReader e retorna o IDataReader.
  • Stored Procedures chamadas: SPSELECTID (SELECT * FROM TAB_Parametro_Especifico WHERE Idf_Parametro_Especifico = @Idf_Parametro_Especifico)
  • @Idf_Parametro_Especifico: ID do parâmetro específico.
  • Validações: Nenhuma explícita.
  • Exceções: Lança exceções de banco de dados em caso de falha.

LoadDataReader(int idParametroEspecifico, SqlTransaction trans)

  • Lógica: Similar a LoadDataReader(int), mas utiliza uma transação SQL já existente.
  1. Cria uma lista de SqlParameter e atribui o ID.
  2. Executa a query SPSELECTID usando DataAccessLayer.ExecuteReader com a transação fornecida.
  • Stored Procedures chamadas: SPSELECTID (mesmos parâmetros de LoadDataReader(int)).
  • Validações: Nenhuma explícita.
  • Exceções: Lança exceções de banco de dados em caso de falha.

LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)

  • Lógica:
  1. Calcula os limites inicio e fim para a paginação.
  2. Constrói duas queries SQL dinâmicas: SPSELECTPAG para a seleção paginada e SPSELECTCOUNT para contar o total de registros.
  3. Executa SPSELECTCOUNT usando DataAccessLayer.ExecuteScalar para obter o totalRegistros.
  4. Executa SPSELECTPAG usando DataAccessLayer.ExecuteReader e retorna o IDataReader.
  • Stored Procedures chamadas: Queries dinâmicas construídas com:
  • SELECT ROW_NUMBER() OVER (ORDER BY [colunaOrdenacao] [direcaoOrdenacao]) AS RowID, ... FROM TAB_Parametro_Especifico Par
  • SELECT COUNT(*) FROM (...) AS temp
  • Validações: Nenhuma explícita.
  • Exceções: Lança exceções de banco de dados em caso de falha.

LoadObject(int idParametroEspecifico)

  • Lógica:
  1. Chama LoadDataReader(idParametroEspecifico) para obter um IDataReader.
  2. Cria uma nova instância de ParametroEspecifico.
  3. Chama SetInstance(dr, objParametroEspecifico) para preencher a instância.
  4. Se SetInstance retornar true, a instância preenchida é retornada.
  5. Se SetInstance retornar false (nenhum registro encontrado), lança uma RecordNotFoundException.
  • Stored Procedures chamadas: Nenhuma diretamente (chama LoadDataReader).
  • Validações: Verifica se o registro foi encontrado.
  • Exceções: RecordNotFoundException se o registro não for encontrado.

LoadObject(int idParametroEspecifico, SqlTransaction trans)

  • Lógica: Similar a LoadObject(int), mas utiliza uma transação SQL já existente.
  1. Chama LoadDataReader(idParametroEspecifico, trans).
  2. Cria uma nova instância de ParametroEspecifico.
  3. Chama SetInstance(dr, objParametroEspecifico).
  4. Retorna a instância ou lança RecordNotFoundException.
  • Stored Procedures chamadas: Nenhuma diretamente (chama LoadDataReader(trans)).
  • Validações: Verifica se o registro foi encontrado.
  • Exceções: RecordNotFoundException se o registro não for encontrado.

CompleteObject()

  • Lógica:
  1. Chama LoadDataReader(this._idParametroEspecifico) para obter um IDataReader usando o ID da própria instância.
  2. Chama SetInstance(dr, this) para preencher a própria instância com os dados do reader.
  3. Retorna o resultado de SetInstance.
  • Stored Procedures chamadas: Nenhuma diretamente (chama LoadDataReader).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções de LoadDataReader ou SetInstance.

CompleteObject(SqlTransaction trans)

  • Lógica: Similar a CompleteObject(), mas utiliza uma transação SQL já existente.
  1. Chama LoadDataReader(this._idParametroEspecifico, trans).
  2. Chama SetInstance(dr, this).
  3. Retorna o resultado de SetInstance.
  • Stored Procedures chamadas: Nenhuma diretamente (chama LoadDataReader(trans)).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções de LoadDataReader(trans) ou SetInstance.

SetInstance(IDataReader dr, ParametroEspecifico objParametroEspecifico)

  • Lógica: Este método privado estático lê uma linha do IDataReader e mapeia os valores das colunas para as propriedades do objeto ParametroEspecifico fornecido.
  • Tenta ler a próxima linha do IDataReader.
  • Se houver uma linha, atribui os valores das colunas (como Idf_Parametro_Especifico, Idf_Parametro, Idf_Tipo_Valor, Vlr_Parametro, etc.) às propriedades correspondentes do objeto.
  • Lida com valores DBNull.Value para campos opcionais.
  • Cria novas instâncias de classes relacionadas (como Parametro, TipoValor, Usuario, Empresa, Filial, Contrato, Sindicato, CentroResultado) usando seus construtores que aceitam ID.
  • Define _persisted como true e _modified como false.
  • Retorna true se a instância foi preenchida, false caso contrário.
  • Garante que o IDataReader seja disposto no bloco finally.
  • Stored Procedures chamadas: Nenhuma diretamente.
  • Validações: Nenhuma explícita, mas lida com DBNull.Value.
  • Exceções: Lança exceções de conversão de tipo ou de banco de dados.

SetInstance(IDataReader dr, ParametroEspecifico objParametroEspecifico, Boolean dispose)

  • Lógica: Idêntica a SetInstance(IDataReader dr, ParametroEspecifico objParametroEspecifico), mas com um parâmetro dispose adicional que controla se o IDataReader deve ser disposto no bloco finally. Isso é útil quando o IDataReader precisa ser mantido aberto para leituras subsequentes.
  • Stored Procedures chamadas: Nenhuma diretamente.
  • Validações: Nenhuma explícita, mas lida com DBNull.Value.
  • Exceções: Lança exceções de conversão de tipo ou de banco de dados.

ListarNaturezasPermitidasINSS15e16()

  • Lógica:
  1. Executa a query SELNATUREZASPERMITIDASINSS15E16 usando DataAccessLayer.ExecuteReader.
  2. Lê a primeira linha do resultado.
  3. Extrai a string Des_Verbas_Informacao.
  4. Divide a string por vírgulas e converte cada parte para int, retornando uma List<int>.
  • Stored Procedures chamadas: SELNATUREZASPERMITIDASINSS15E16 (SELECT Des_Verbas_Informacao FROM TAB_Parametro_Especifico PES WHERE PES.Idf_Parametro = 1516 AND PES.Vlr_Parametro = 1)
  • Validações: Assume que a string Des_Verbas_Informacao contém números inteiros separados por vírgulas.
  • Exceções: Pode lançar FormatException se a conversão para int falhar.

RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, CentroResultado objCentroResultado)

  • Lógica: Este é um método de conveniência que encapsula a chamada transacional para a versão mais completa do método.
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama RecuperarParametroEspecifico(enumNomeParametro, objEmpresa, objFilial, objContrato, objCentroResultado, trans).
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna o resultado.
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, CentroResultado objCentroResultado, SqlTransaction trans)

  • Lógica: Este é um overload que chama a versão mais completa do método, passando null para o parâmetro objSindicato para manter a compatibilidade.
  • Stored Procedures chamadas: Nenhuma diretamente (chama RecuperarParametroEspecifico(enumNomeParametro, objEmpresa, objFilial, objContrato, null, objCentroResultado, trans)).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão mais completa.

RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, Sindicato objSindicato, CentroResultado objCentroResultado)

  • Lógica: Similar a RecuperarParametroEspecifico(..., CentroResultado objCentroResultado), mas encapsula a chamada transacional para a versão mais completa com Sindicato.
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama RecuperarParametroEspecifico(enumNomeParametro, objEmpresa, objFilial, objContrato, objSindicato, objCentroResultado, trans).
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna o resultado.
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, Sindicato objSindicato, CentroResultado objCentroResultado, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de SqlParameter.
  2. Adiciona o Idf_Parametro (convertendo enumNomeParametro para int).
  3. Para objEmpresa, objFilial, objContrato, objSindicato e objCentroResultado, verifica se são nulos e adiciona DBNull.Value ou o Id correspondente.
  4. Executa a função de tabela TAB_SF_Parametro_Especifico usando DataAccessLayer.ExecuteReader com a transação fornecida.
  5. Se houver um resultado, extrai o Vlr_Parametro e o retorna.
  6. Se não houver resultado, retorna uma string vazia.
  • Stored Procedures chamadas: TAB_SF_Parametro_Especifico (função de tabela)
  • @Idf_Parametro: ID do parâmetro.
  • @Idf_Empresa: ID da empresa.
  • @Idf_Filial: ID da filial.
  • @Idf_Contrato: ID do contrato.
  • @Idf_Sindicato: ID do sindicato.
  • @Idf_Centro_Resultado: ID do centro de resultado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita, retorna string vazia se não encontrar.

RecuperarParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa)

  • Lógica: Encapsula a chamada transacional para a versão mais completa do método.
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama RecuperarParametroEspecificoEmpresa(enumNomeParametro, objEmpresa, trans).
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna o resultado.
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

RecuperarParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de SqlParameter para o Idf_Parametro e Idf_Empresa.
  2. Se objEmpresa for nulo, adiciona DBNull.Value para Idf_Empresa.
  3. Constrói uma query SQL que busca o Vlr_Parametro da TAB_Parametro_Especifico filtrando por Idf_Parametro e Idf_Empresa. Prioriza o parâmetro específico da empresa.
  4. Executa a query usando DataAccessLayer.ExecuteReader com a transação.
  5. Se encontrar um resultado, retorna o Vlr_Parametro.
  6. Se não encontrar, chama Parametro.RecuperaValorParametro(enumNomeParametro, trans) para tentar recuperar o valor do parâmetro global.
  • Stored Procedures chamadas: Query dinâmica (SELECT TOP 1 Vlr_Parametro FROM TAB_Parametro_Especifico …).
  • @Idf_Parametro: ID do parâmetro.
  • @Idf_Empresa: ID da empresa.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita, retorna string vazia ou valor do parâmetro global se não encontrar.

RecuperarParametroEspecificoEmpregado(Enumeradores.NomeParametro enumNomeParametro, Empregado objEmpregado)

  • Lógica:
  1. Completa os objetos objEmpregado e objEmpregado.Contrato.
  2. Cria uma lista de SqlParameter para Idf_Parametro e Idf_Empresa (do contrato do empregado).
  3. Adiciona parâmetros para Idf_Filial (da filial gestora do contrato), Idf_Contrato (do contrato do empregado), tratando nulos.
  4. Constrói uma query SQL complexa (copiada de uma função de banco de dados fun_tab_paramentro_especifico) que busca o Vlr_Parametro com uma hierarquia de prioridade: primeiro por contrato, depois por filial, depois por empresa.
  5. Executa a query usando DataAccessLayer.ExecuteReader.
  6. Se encontrar um resultado, retorna o Vlr_Parametro.
  7. Se não encontrar, chama Parametro.RecuperaValorParametro(enumNomeParametro) para tentar recuperar o valor do parâmetro global.
  • Stored Procedures chamadas: Query dinâmica complexa (SELECT TOP 1 Vlr_Parametro FROM (UNION ALL de selects por empresa, filial, contrato)).
  • @Idf_Parametro: ID do parâmetro.
  • @Idf_Empresa: ID da empresa do contrato.
  • @Idf_Filial: ID da filial gestora do contrato.
  • @Idf_Contrato: ID do contrato do empregado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita, retorna string vazia ou valor do parâmetro global se não encontrar.

RecuperarSomenteParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa)

  • Lógica: Encapsula a chamada transacional para a versão mais completa do método.
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama RecuperarSomenteParametroEspecificoEmpresa(enumNomeParametro, objEmpresa, trans).
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna o resultado.
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

RecuperarSomenteParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de SqlParameter para o Idf_Parametro e Idf_Empresa.
  2. Se objEmpresa for nulo, adiciona DBNull.Value para Idf_Empresa.
  3. Constrói uma query SQL que busca o Vlr_Parametro da TAB_Parametro_Especifico filtrando por Idf_Parametro e Idf_Empresa. Diferente de RecuperarParametroEspecificoEmpresa, este método não tenta buscar o parâmetro global se não encontrar na empresa.
  4. Executa a query usando DataAccessLayer.ExecuteReader com a transação.
  5. Se encontrar um resultado, retorna o Vlr_Parametro.
  6. Se não encontrar, retorna uma string vazia.
  • Stored Procedures chamadas: Query dinâmica (SELECT TOP 1 Vlr_Parametro FROM TAB_Parametro_Especifico …).
  • @Idf_Parametro: ID do parâmetro.
  • @Idf_Empresa: ID da empresa.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita, retorna string vazia se não encontrar.

ExisteParametroEspecificoCadastrado(int idParametro, int? idParametroEspecifico, int? idEmpresa, int? idFilial, int? idContrato, int? idCentroResultado, int? idSindicato)

  • Lógica:
  1. Cria uma lista de SqlParameter para todos os IDs de filtro.
  2. Atribui os valores aos parâmetros, tratando null com DBNull.Value.
  3. Executa a query SPEXISTEPARAMETROESPECIFICOCADASTRADO usando DataAccessLayer.ExecuteScalar.
  4. Converte o resultado para bool (espera 0 ou 1 do COUNT(*)).
  • Stored Procedures chamadas: SPEXISTEPARAMETROESPECIFICOCADASTRADO (SELECT COUNT(*) FROM TAB_Parametro_Especifico PES ... WHERE PES.Idf_Parametro = @Idf_Parametro AND (@Idf_Parametro_Especifico IS NULL OR PES.Idf_Parametro_Especifico <> @Idf_Parametro_Especifico) AND (PES.Idf_Empresa = @Idf_Empresa OR (@Idf_Empresa IS NULL AND PES.Idf_Empresa IS NULL)) AND ...)
  • @Idf_Parametro: ID do parâmetro.
  • @Idf_Parametro_Especifico: ID do parâmetro específico (para exclusão da própria verificação em updates).
  • @Idf_Empresa: ID da empresa.
  • @Idf_Filial: ID da filial.
  • @Idf_Contrato: ID do contrato.
  • @Idf_Centro_Resultado: ID do centro de resultado.
  • @Idf_Sindicato: ID do sindicato.
  • Validações: Verifica a existência de um parâmetro específico com a mesma combinação de filtros, excluindo o próprio ID do parâmetro específico se fornecido (para edições).
  • Exceções: Nenhuma explícita.

Salvar(ParametroEspecifico objParametroEspecifico, Parametro objParametro, AlteracaoMaster objAlteracaoMaster)

  • Lógica:
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Tenta salvar objParametroEspecifico:
  • Se objParametroEspecifico.Parametro não estiver completo, ele é salvo primeiro.
  • Em seguida, objParametroEspecifico é salvo (chamando Insert(trans) ou Update(trans)).
  1. Se objParametroEspecifico for nulo, apenas objParametro é salvo.
  2. Se objAlteracaoMaster não for nulo, ele também é salvo.
  3. Comita a transação se todas as operações forem bem-sucedidas.
  4. Em caso de erro, faz rollback da transação e retorna false.
  • Stored Procedures chamadas: Depende das operações de Save dos objetos ParametroEspecifico, Parametro e AlteracaoMaster.
  • Validações: Nenhuma explícita além das internas dos métodos Save chamados.
  • Exceções: Captura e faz rollback de exceções, retornando false.

Stored Procedures

NomeParâmetrosPropósito
SPINSERT@Idf_Parametro_Especifico (OUTPUT), @Idf_Parametro, @Idf_Tipo_Valor, @Vlr_Parametro, @Flg_Inativo, @Dta_Cadastro, @Idf_Usuario_Gerador, @Flg_Validado, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Sindicato, @Idf_Centro_Resultado, @Des_Verbas_InformacaoInsere um novo registro na tabela TAB_Parametro_Especifico e retorna o ID gerado.
SPUPDATE@Idf_Parametro, @Idf_Tipo_Valor, @Vlr_Parametro, @Flg_Inativo, @Dta_Cadastro, @Idf_Usuario_Gerador, @Flg_Validado, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Sindicato, @Idf_Centro_Resultado, @Des_Verbas_Informacao, @Idf_Parametro_EspecificoAtualiza um registro existente na tabela TAB_Parametro_Especifico.
SPDELETE@Idf_Usuario_Gerador, @Idf_Parametro_EspecificoAtualiza o Idf_Usuario_Gerador e depois exclui um registro da tabela TAB_Parametro_Especifico.
SPSELECTID@Idf_Parametro_EspecificoSeleciona um registro da tabela TAB_Parametro_Especifico pelo seu ID.
SELNATUREZASPERMITIDASINSS15E16N/ASeleciona a descrição das verbas de informação para o parâmetro 1516 com valor 1.
SPEXISTEPARAMETROESPECIFICOCADASTRADO@Idf_Parametro, @Idf_Parametro_Especifico, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Centro_Resultado, @Idf_SindicatoVerifica a existência de um parâmetro específico com a combinação de filtros fornecida.
SPSELPARAMENTROESPECIFICO@Idf_Parametro, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Sindicato, @Idf_Centro_ResultadoFunção de tabela que retorna o valor de um parâmetro específico com base na hierarquia de escopo.

PeriodoCalculo

Arquivo: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PeriodoCalculo_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PeriodoCalculo_P2.cs

Métodos

MétodoAssinaturaPropósito
GetParametersprivate List<SqlParameter> GetParameters()Prepara uma lista de parâmetros SQL para operações de INSERT e UPDATE.
Insertprivate void Insert()Insere uma nova instância de PeriodoCalculo no banco de dados.
Insertprivate void Insert(SqlTransaction trans)Insere uma nova instância de PeriodoCalculo no banco de dados dentro de uma transação existente.
Updateprivate void Update()Atualiza uma instância existente de PeriodoCalculo no banco de dados.
Updateprivate void Update(SqlTransaction trans)Atualiza uma instância existente de PeriodoCalculo no banco de dados dentro de uma transação existente.
Savepublic void Save()Salva a instância atual de PeriodoCalculo no banco de dados (insere se for nova, atualiza se já existir).
Savepublic void Save(SqlTransaction trans)Salva a instância atual de PeriodoCalculo no banco de dados dentro de uma transação (insere se for nova, atualiza se já existir).
Deletepublic static void Delete(int idPeriodoCalculo)Exclui um registro de PeriodoCalculo do banco de dados pelo seu ID.
Deletepublic static void Delete(int idPeriodoCalculo, SqlTransaction trans)Exclui um registro de PeriodoCalculo do banco de dados pelo seu ID dentro de uma transação.
Deletepublic static void Delete(List<int> idPeriodoCalculo)Exclui múltiplos registros de PeriodoCalculo do banco de dados por uma lista de IDs.
LoadDataReaderprivate static IDataReader LoadDataReader(int idPeriodoCalculo)Retorna um IDataReader com as colunas de um único registro de PeriodoCalculo.
LoadDataReaderprivate static IDataReader LoadDataReader(int idPeriodoCalculo, SqlTransaction trans)Retorna um IDataReader com as colunas de um único registro de PeriodoCalculo dentro de uma transação.
LoadDataReaderpublic static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Retorna um IDataReader com uma consulta paginada de registros de PeriodoCalculo.
LoadObjectpublic static PeriodoCalculo LoadObject(int idPeriodoCalculo)Retorna uma instância de PeriodoCalculo preenchida a partir do banco de dados.
LoadObjectpublic static PeriodoCalculo LoadObject(int idPeriodoCalculo, SqlTransaction trans)Retorna uma instância de PeriodoCalculo preenchida a partir do banco de dados dentro de uma transação.
CompleteObjectpublic bool CompleteObject()Completa os atributos da instância atual de PeriodoCalculo a partir do banco de dados.
CompleteObjectpublic bool CompleteObject(SqlTransaction trans)Completa os atributos da instância atual de PeriodoCalculo a partir do banco de dados dentro de uma transação.
SetInstanceprivate static bool SetInstance(IDataReader dr, PeriodoCalculo objPeriodoCalculo)Método auxiliar para preencher uma instância de PeriodoCalculo a partir de um IDataReader.
SetParametersprivate void SetParameters(List<SqlParameter> parms)Preenche uma lista de parâmetros SQL com os valores da instância atual de PeriodoCalculo.
Comparepublic int Compare(PeriodoCalculo x, PeriodoCalculo y)Implementa a interface IComparer<PeriodoCalculo> para comparar dois objetos PeriodoCalculo.
CarregarPeriodoCalculoAbertoFilialEmpregadopublic static PeriodoCalculo CarregarPeriodoCalculoAbertoFilialEmpregado(int idEmpregado, SqlTransaction tran = null)Carrega o período de cálculo aberto da filial de um empregado.
CarregarPeriodoCalculoAbertoFilialEmpregadoCRpublic static PeriodoCalculo CarregarPeriodoCalculoAbertoFilialEmpregadoCR(int idEmpregado, SqlTransaction trans = null)Carrega o período de cálculo aberto da filial de um empregado, considerando a estrutura de Centro de Resultado.
CarregarPeriodoCalculoAbertoPorEmpresapublic static bool CarregarPeriodoCalculoAbertoPorEmpresa(int pIdEmpresa, out PeriodoCalculo pObjPeriodoCalculo)Carrega o período de cálculo aberto de uma empresa.
CarregarPeriodoCalculoAbertoPorEmpresapublic static bool CarregarPeriodoCalculoAbertoPorEmpresa(SqlTransaction trans, int pIdEmpresa, out PeriodoCalculo pObjPeriodoCalculo)Carrega o período de cálculo aberto de uma empresa dentro de uma transação.
CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadopublic static PeriodoCalculo CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregado(SqlTransaction trans, Empregado objEmpregado)Carrega o período de cálculo aberto da empresa/filial de um empregado, considerando rescisão futura.
CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadopublic static PeriodoCalculo CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregado(Empregado objEmpregado)Carrega o período de cálculo aberto da empresa/filial de um empregado, considerando rescisão futura (sem transação).
CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadoVerbaFixapublic static PeriodoCalculo CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadoVerbaFixa(SqlTransaction trans, Empregado objEmpregado)Carrega o período de cálculo aberto da empresa/filial de um empregado para verbas fixas.
CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadoVerbaFixapublic static PeriodoCalculo CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadoVerbaFixa(Empregado objEmpregado)Carrega o período de cálculo aberto da empresa/filial de um empregado para verbas fixas (sem transação).
RecuperarPeriodoCalculoRescisaoFuturapublic static bool RecuperarPeriodoCalculoRescisaoFutura(SqlTransaction trans, Empregado objEmpregado, PeriodoCalculo objPeriodoCalculoValidacao, out PeriodoCalculo objPeriodoCalculoNovo)Verifica e recupera o período de cálculo para rescisões futuras de um empregado.
RecuperarPeriodoCalculoRescisaoFuturapublic static bool RecuperarPeriodoCalculoRescisaoFutura(Empregado objEmpregado, PeriodoCalculo objPeriodoCalculoValidacao, out PeriodoCalculo objPeriodoCalculoNovo)Verifica e recupera o período de cálculo para rescisões futuras de um empregado (sem transação).
VerificaSeTodasFechadaspublic static bool VerificaSeTodasFechadas(Empresa objEmpresa, PeriodoCalculo objPeriodoCalculo)Verifica se todas as filiais de uma empresa estão com o período de cálculo fechado.
VerificaSeTodasFechadaspublic static bool VerificaSeTodasFechadas(Empresa objEmpresa, PeriodoCalculo objPeriodoCalculo, SqlTransaction trans)Verifica se todas as filiais de uma empresa estão com o período de cálculo fechado dentro de uma transação.
VerificaEmpresaFechadapublic static bool VerificaEmpresaFechada(Empresa objEmpresa, PeriodoCalculo objPeriodoCalculo)Verifica se a empresa já foi fechada para um determinado período de cálculo.
VerificaEmpresaFechadapublic static bool VerificaEmpresaFechada(Empresa objEmpresa, PeriodoCalculo objPeriodoCalculo, SqlTransaction trans)Verifica se a empresa já foi fechada para um determinado período de cálculo dentro de uma transação.
GetPeriodoPorDataAtualpublic static int GetPeriodoPorDataAtual()Recupera o ID do período de cálculo atual com base na data atual, criando-o se não existir.
GetPeriodoPorDataAtualpublic static int GetPeriodoPorDataAtual(SqlTransaction trans)Recupera o ID do período de cálculo atual com base na data atual, criando-o se não existir, dentro de uma transação.
GetMenorMaiorpublic static void GetMinMax(out DateTime paMin, out DateTime paMax)Busca a menor e a maior data de início/fim dos períodos de cálculo cadastrados.
LoadObjectpublic static PeriodoCalculo LoadObject(int ano, int mes)Recupera um objeto PeriodoCalculo com base no ano e mês.
LoadObjectpublic static PeriodoCalculo LoadObject(int ano, int mes, SqlTransaction trans)Recupera um objeto PeriodoCalculo com base no ano e mês dentro de uma transação.
RecuperarPorDatapublic static PeriodoCalculo RecuperarPorData(DateTime data)Recupera um objeto PeriodoCalculo para uma data específica, criando-o se não existir.
RecuperarPorDatapublic static PeriodoCalculo RecuperarPorData(DateTime data, SqlTransaction trans)Recupera um objeto PeriodoCalculo para uma data específica, criando-o se não existir, dentro de uma transação.
LoadDataReaderprivate static IDataReader LoadDataReader(int ano, int mes)Retorna um IDataReader com o período de cálculo para um dado ano e mês.
LoadDataReaderprivate static IDataReader LoadDataReader(int ano, int mes, SqlTransaction trans)Retorna um IDataReader com o período de cálculo para um dado ano e mês dentro de uma transação.
FecharPeriodoFiliaispublic static Dictionary<int, Dictionary<decimal, string>> FecharPeriodoFiliais(List<int> filiais, int idfPeriodoAtual, Usuario objUsuario, out List<int> filiaisFechadas, out List<int> filiaisnaoFechadas, out List<int> lstResponsavelDependente)Fecha o período de cálculo para uma lista de filiais, tratando irregularidades e atualizando dependentes.
FecharFilialprivate static void FecharFilial(SqlTransaction trans, int idfFilial, int idfPeriodoAtual, Usuario objUsuario, out List<int> lstResponsavelDependente)Fecha o período de cálculo para uma filial específica dentro de uma transação.
FecharFilialprivate static void FecharFilial(int idfFilial, int idfPeriodoAtual, Usuario objUsuario, out List<int> lstResponsavelDependente)Fecha o período de cálculo para uma filial específica (sem transação).
LancarVerbasManuaisprivate static void LancarVerbasManuais(SqlTransaction trans, int idfFilial, bool UtilizaCR)Lança verbas manuais para empregados ativos da filial no novo período de cálculo.
ListarPeriodoIntervaloprivate static IDataReader ListarPeriodoIntervalo(DateTime dataInicio, DateTime dataFim)Lista os períodos de cálculo dentro de um intervalo de datas.
CarregarPeriodoIntervalopublic static List<PeriodoCalculo> CarregarPeriodoIntervalo(DateTime dataInicio, DateTime dataFim)Carrega uma lista de objetos PeriodoCalculo dentro de um intervalo de datas.
CarregarPeriodoIntervaloConjuntopublic static List<PeriodoCalculo> CarregarPeriodoIntervaloConjunto(DateTime dataInicio, DateTime dataFim)Carrega uma lista de objetos PeriodoCalculo dentro de um intervalo de datas, buscando períodos que se sobrepõem.
RecuperaPISIrregularespublic static Dictionary<decimal, string> RecuperaPISIrregulares(int idfFilial, int idfPeriodoCalculo)Recupera empregados com PIS irregular para uma filial e período de cálculo.
RecuperaPISIrregularesTodasFiliaispublic static Dictionary<int, Dictionary<int, decimal>> RecuperaPISIrregularesTodasFiliais(List<int> pLstIdFiliais, int idfPeriodoCalculo)Recupera empregados com PIS irregular para múltiplas filiais e período de cálculo.
ListarFiliaisFechamentopublic static DataTable ListarFiliaisFechamento(int idfUsuario, int idfPeriodoCalculo, int idfEmpresa, string colunaOrdenacao, string direcaoOrdenacao, bool? semMovimentacao, bool? fechado)Lista as filiais para o fechamento de período, com filtros e paginação.
TodasFiliaisMovimentadasFechadaspublic static bool TodasFiliaisMovimentadasFechadas(int idfUsuario, int idfEmpresa, int idfPeriodoCalculo)Verifica se todas as filiais com movimentação de uma empresa estão com o período fechado.
VerificaCriaPeriodopublic static PeriodoCalculo VerificaCriaPeriodo(PeriodoCalculo objPeriodoCalculo, SqlTransaction trans)Verifica se o próximo período de cálculo existe e o cria se necessário, retornando-o.
VerificaCriaPeriodopublic static PeriodoCalculo VerificaCriaPeriodo(PeriodoCalculo objPeriodoCalculo)Verifica se o próximo período de cálculo existe e o cria se necessário, retornando-o (sem transação).
RecalculandoEmpregadoprivate static void RecalculandoEmpregado(int idEmp, int idfPeriodoCalculo, int idfFilial, int idfUsuario)Insere um empregado na tabela temporária de recálculo de variáveis.
CarregarPorMesAnopublic static PeriodoCalculo CarregarPorMesAno(int _mes, int _ano, SqlTransaction trans)Carrega um objeto PeriodoCalculo pelo mês e ano dentro de uma transação.
CarregarPorMesAnopublic static PeriodoCalculo CarregarPorMesAno(int _mes, int _ano)Carrega um objeto PeriodoCalculo pelo mês e ano (sem transação).
ValidacaoAlteracaoDataAdmissiaoEmppublic static bool ValidacaoAlteracaoDataAdmissiaoEmp(Empregado objEmpregado, DateTime periodo)Valida se a data de admissão de um empregado não interfere em um período de cálculo fechado.
RecuperarUltimoPeriodoCalculoUtilizadopublic static PeriodoCalculo RecuperarUltimoPeriodoCalculoUtilizado(Empregado objEmpregado)Recupera o último período de cálculo utilizado por um empregado (baseado em holerites).
RecuperarUltimoPeriodoCalculoCalculadopublic static bool RecuperarUltimoPeriodoCalculoCalculado(Empregado objEmpregado, out PeriodoCalculo objPeriodoCalculo)Recupera o último período de cálculo que teve holerite calculado para um empregado.
ListarPeriodoCalculoPorAnopublic static List<PeriodoCalculo> ListarPeriodoCalculoPorAno(int ano)Lista todos os períodos de cálculo para um determinado ano.
VerificarPeriodoFechadoAnoMespublic static bool VerificarPeriodoFechadoAnoMes(int Ano, int Mes, int idEmpresa, int? idFilial)Verifica se o período de cálculo para um dado ano, mês, empresa e filial está fechado.
ListarTodospublic static Dictionary<int, PeriodoCalculo> ListarTodos()Lista todos os períodos de cálculo existentes em um dicionário.
RecuperarUltimoPeriodoCalculoFechadopublic static Boolean RecuperarUltimoPeriodoCalculoFechado(int idEmpresa, out PeriodoCalculo objPeriodo)Recupera o último período de cálculo fechado para uma empresa.
SalvarHistoricoPeriodoCalculopublic static bool SalvarHistoricoPeriodoCalculo(int pIdMes, int pIdAno, int pIdEmpresa)Salva o histórico do período de cálculo, ajustando os IDs de período em TAB_Fechamento_Folha e TAB_Periodo_Calculo_Filial.
AjusteHistoricoPeriodoCalculopublic static void AjusteHistoricoPeriodoCalculo(SqlTransaction trans, int pIdMes, int pIdAno, int pIdEmpresa)Ajusta os IDs de período de cálculo em TAB_Fechamento_Folha e TAB_Periodo_Calculo_Filial após uma alteração de histórico.
LoadObjectPorMesAnopublic static PeriodoCalculo LoadObjectPorMesAno(int _mes, int _ano, SqlTransaction trans)Carrega um objeto PeriodoCalculo pelo mês e ano dentro de uma transação.
VerificaCalculoFechadoFilialEmpregadopublic static bool VerificaCalculoFechadoFilialEmpregado(int idEmpregado, PeriodoCalculo objPeriodoCalculo)Verifica se o período de cálculo de uma filial de um empregado está fechado.
VerificaExistenciaPeriodoCalculopublic static bool VerificaExistenciaPeriodoCalculo(int idPeriodoCalculo)Verifica se um período de cálculo com o ID fornecido existe.

Detalhamento de Métodos Importantes

SetParameters(List<SqlParameter> parms)

  • Lógica: Preenche a lista de parâmetros SQL com os valores da instância atual de PeriodoCalculo.
  • Atribui _idPeriodoCalculo, _descricaoPeriodoCalculo, _dataInicio, _dataFim.
  • Se a instância não for persistida (_persisted é false), define _idPeriodoCalculo como ParameterDirection.Output e _dataCadastro como DateTime.Now. O _usuarioGerador é obtido da sessão HTTP ou definido como 1.
  • Se a instância já for persistida, _idPeriodoCalculo é ParameterDirection.Input, _dataCadastro mantém seu valor e _usuarioGerador é atualizado da sessão.
  • Stored Procedures chamadas: Nenhuma diretamente.
  • Validações: Nenhuma explícita.

Compare(PeriodoCalculo x, PeriodoCalculo y)

  • Lógica: Implementa a lógica de comparação para a interface IComparer<PeriodoCalculo>.
  • Compara os _idPeriodoCalculo dos dois objetos.
  • Retorna 0 se forem iguais, -1 caso contrário. Observação: Uma implementação típica de IComparer retornaria 1 se x for maior que y, -1 se x for menor que y, e 0 se forem iguais. Esta implementação simplificada pode não ser adequada para todas as operações de ordenação.
  • Stored Procedures chamadas: Nenhuma.
  • Validações: Nenhuma.

CarregarPeriodoCalculoAbertoFilialEmpregado(int idEmpregado, SqlTransaction tran = null)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado.
  2. Executa a query SPSELECTPERIODOCALCULOFILIALPOREMPREGADO usando DataAccessLayer.ExecuteReader (com ou sem transação).
  3. Tenta preencher um novo objeto PeriodoCalculo com o resultado.
  4. Retorna o objeto PeriodoCalculo encontrado ou null se nenhum for encontrado.
  • Stored Procedures chamadas: SPSELECTPERIODOCALCULOFILIALPOREMPREGADO
  • @Idf_Empregado: ID do empregado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita, retorna null se não encontrar.

CarregarPeriodoCalculoAbertoFilialEmpregadoCR(int idEmpregado, SqlTransaction trans = null)

  • Lógica: Similar a CarregarPeriodoCalculoAbertoFilialEmpregado, mas usa a query SPSELECTPERIODOCALCULOFILIALCRPOREMPREGADO que considera a estrutura de Centro de Resultado.
  1. Cria uma lista de parâmetros para @Idf_Empregado.
  2. Executa a query SPSELECTPERIODOCALCULOFILIALCRPOREMPREGADO usando DataAccessLayer.ExecuteReader (com ou sem transação).
  3. Tenta preencher um novo objeto PeriodoCalculo com o resultado.
  4. Retorna o objeto PeriodoCalculo encontrado ou null se nenhum for encontrado.
  • Stored Procedures chamadas: SPSELECTPERIODOCALCULOFILIALCRPOREMPREGADO
  • @Idf_Empregado: ID do empregado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita, retorna null se não encontrar.

CarregarPeriodoCalculoAbertoPorEmpresa(int pIdEmpresa, out PeriodoCalculo pObjPeriodoCalculo)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empresa.
  2. Executa a query SELPERIODOCALCULOABERTOPOREMPRESA usando DataAccessLayer.ExecuteReader.
  3. Tenta preencher o objeto pObjPeriodoCalculo com o resultado.
  4. Retorna true se um período for encontrado e preenchido, false caso contrário.
  • Stored Procedures chamadas: SELPERIODOCALCULOABERTOPOREMPRESA
  • @Idf_Empresa: ID da empresa.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita, retorna false se não encontrar.

CarregarPeriodoCalculoAbertoPorEmpresa(SqlTransaction trans, int pIdEmpresa, out PeriodoCalculo pObjPeriodoCalculo)

  • Lógica: Similar a CarregarPeriodoCalculoAbertoPorEmpresa(int, out PeriodoCalculo), mas utiliza uma transação existente.
  • Stored Procedures chamadas: SELPERIODOCALCULOABERTOPOREMPRESA
  • @Idf_Empresa: ID da empresa.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita, retorna false se não encontrar.

CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregado(SqlTransaction trans, Empregado objEmpregado)

  • Lógica:
  1. Completa o objeto objEmpregado.Contrato usando a transação.
  2. Tenta carregar o período de cálculo aberto da empresa usando CarregarPeriodoCalculoAbertoPorEmpresa(trans, objEmpregado.Contrato.Empresa.IdEmpresa, out pObjPeriodoCalculo).
  3. Se nenhum período for encontrado para a empresa, busca o idf_periodo_calculo da TAB_Periodo_Calculo_Filial para a filial gestora do contrato do empregado que não esteja fechado, ordenando pelo ID do período de cálculo de forma decrescente. Carrega esse PeriodoCalculo.
  4. Se um período da empresa foi encontrado e um da filial também, compara as datas de início e usa o mais recente.
  5. Chama RecuperarPeriodoCalculoRescisaoFutura para ajustar o período se houver uma rescisão futura.
  6. Retorna o PeriodoCalculo final.
  • Stored Procedures chamadas:
  • SELPERIODOCALCULOABERTOPOREMPRESA (via CarregarPeriodoCalculoAbertoPorEmpresa)
  • Query dinâmica: SELECT TOP 1 idf_periodo_calculo FROM TAB_Periodo_Calculo_Filial PCF WHERE pcf.idf_filial = @idf_filial AND flg_fechado = 0 ORDER BY idf_periodo_calculo desc
  • @idf_filial: ID da filial.
  • SPSELECTPERIODOCALCULOFECHADOFILIALPOREMPREGADO (via RecuperarPeriodoCalculoRescisaoFutura)
  • Validações: Verifica se o período da filial é mais recente que o da empresa.
  • Exceções: Propaga exceções de métodos chamados.

CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregado(Empregado objEmpregado)

  • Lógica: Encapsula a chamada transacional para CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregado(SqlTransaction, Empregado).
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama a versão transacional do método.
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna o resultado.
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadoVerbaFixa(SqlTransaction trans, Empregado objEmpregado)

  • Lógica: Similar a CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregado, mas simplificado para verbas fixas, não considerando a lógica de “período de cálculo aberto por empresa” e focando diretamente no período da filial.
  1. Completa o objeto objEmpregado.Contrato usando a transação.
  2. Busca o idf_periodo_calculo da TAB_Periodo_Calculo_Filial para a filial gestora do contrato do empregado que não esteja fechado, ordenando pelo ID do período de cálculo de forma decrescente. Carrega esse PeriodoCalculo.
  3. Retorna o PeriodoCalculo encontrado.
  • Stored Procedures chamadas:
  • Query dinâmica: SELECT TOP 1 idf_periodo_calculo FROM TAB_Periodo_Calculo_Filial PCF WHERE pcf.idf_filial = @idf_filial AND flg_fechado = 0 ORDER BY idf_periodo_calculo desc
  • @idf_filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções de métodos chamados.

CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadoVerbaFixa(Empregado objEmpregado)

  • Lógica: Encapsula a chamada transacional para CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadoVerbaFixa(SqlTransaction, Empregado).
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama a versão transacional do método.
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna o resultado.
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

RecuperarPeriodoCalculoRescisaoFutura(SqlTransaction trans, Empregado objEmpregado, PeriodoCalculo objPeriodoCalculoValidacao, out PeriodoCalculo objPeriodoCalculoNovo)

  • Lógica:
  1. Inicializa aux como false e objPeriodoCalculoTemp com objPeriodoCalculoValidacao.
  2. Se o tipo de vínculo do empregado não for “Temporário”:
  • Tenta carregar a rescisão do empregado.
  • Se houver rescisão e a DataSaidaPrevista for posterior ao DataFim do objPeriodoCalculoValidacao:
  • Carrega o PeriodoCalculo correspondente à DataSaidaPrevista.
  • Verifica se existe um holerite de rescisão ou regular para o empregado no período futuro que ainda não foi pago ou pré-faturado.
  • Se as condições forem atendidas (período futuro é o próximo mês do período de validação), define objPeriodoCalculoTemp como o período futuro e aux como true.
  1. Se aux ainda for false, objPeriodoCalculoNovo é definido como objPeriodoCalculoValidacao.
  2. objPeriodoCalculoNovo é finalmente definido como objPeriodoCalculoTemp.
  3. Retorna aux.
  • Stored Procedures chamadas:
  • SPSELECTPORMESEANO (via PeriodoCalculo.CarregarPorMesAno)
  • SPSELECTPERIODOCALCULOFILIALPOREMPREGADO (via Holerite.CarregarHoleritePorEmpregadoTipoFolhaPeriodo)
  • Validações:
  • Verifica se o empregado tem rescisão futura.
  • Verifica se o holerite de rescisão ou regular para o período futuro ainda não foi pago.
  • Verifica se o período futuro é o mês seguinte ao período de validação.
  • Exceções: Nenhuma explícita, mas pode propagar exceções de métodos chamados.

RecuperarPeriodoCalculoRescisaoFutura(Empregado objEmpregado, PeriodoCalculo objPeriodoCalculoValidacao, out PeriodoCalculo objPeriodoCalculoNovo)

  • Lógica: Encapsula a chamada transacional para RecuperarPeriodoCalculoRescisaoFutura(SqlTransaction, Empregado, PeriodoCalculo, out PeriodoCalculo).
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama a versão transacional do método.
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna o resultado.
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

VerificaSeTodasFechadas(Empresa objEmpresa, PeriodoCalculo objPeriodoCalculo)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empresa e @Idf_Periodo_Calculo.
  2. Abre uma nova conexão SQL e inicia uma transação.
  3. Tenta obter o total de filiais da empresa com período de cálculo para o período atual (SPGETNUMFILIAISEMPRESA).
  4. Tenta obter o total de filiais fechadas para o período atual (SPGETNUMFILIAISFECHADASEMPRESA).
  5. Calcula a diferença.
  6. Comita a transação.
  7. Se a diferença for menor que 0, lança uma exceção de inconsistência.
  8. Retorna true se a diferença for 0 (todas fechadas), false caso contrário.
  • Stored Procedures chamadas:
  • SPGETNUMFILIAISEMPRESA
  • @Idf_Empresa: ID da empresa.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • SPGETNUMFILIAISFECHADASEMPRESA
  • @Idf_Empresa: ID da empresa.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • Validações:
  • Verifica se a diferença entre filiais com período e filiais fechadas é 0.
  • Lança Exception se a diferença for negativa.
  • Exceções: Exception em caso de inconsistência ou erro de banco de dados.

VerificaSeTodasFechadas(Empresa objEmpresa, PeriodoCalculo objPeriodoCalculo, SqlTransaction trans)

  • Lógica: Similar a VerificaSeTodasFechadas(Empresa, PeriodoCalculo), mas utiliza uma transação existente.
  1. Cria uma lista de parâmetros.
  2. Obtém o total de filiais e filiais fechadas usando a transação fornecida.
  3. Calcula a diferença e retorna true se for 0.
  • Stored Procedures chamadas:
  • SPGETNUMFILIAISEMPRESA
  • SPGETNUMFILIAISFECHADASEMPRESA
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

VerificaEmpresaFechada(Empresa objEmpresa, PeriodoCalculo objPeriodoCalculo)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empresa e @Idf_Periodo_Calculo.
  2. Executa a query SPVERIFICAEMPRESAFECHADA usando DataAccessLayer.ExecuteScalar.
  3. Retorna true se o resultado for maior que 0 (empresa fechada), false caso contrário.
  • Stored Procedures chamadas: SPVERIFICAEMPRESAFECHADA
  • @Idf_Empresa: ID da empresa.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

VerificaEmpresaFechada(Empresa objEmpresa, PeriodoCalculo objPeriodoCalculo, SqlTransaction trans)

  • Lógica: Similar a VerificaEmpresaFechada(Empresa, PeriodoCalculo), mas utiliza uma transação existente.
  • Stored Procedures chamadas: SPVERIFICAEMPRESAFECHADA
  • @Idf_Empresa: ID da empresa.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

GetPeriodoPorDataAtual()

  • Lógica:
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Executa a query SPGETPERIODODT para verificar se existe um período de cálculo para a data atual.
  3. Se não encontrar:
  • Cria um novo objeto PeriodoCalculo com a data de início no primeiro dia do mês atual e data de fim no último dia do mês atual.
  • Define a descrição do período.
  • Salva o novo período usando objPeriodoCalculo.Save(trans).
  • Retorna o ID do novo período.
  1. Se encontrar, retorna o ID do período existente.
  2. Comita a transação se bem-sucedido, faz rollback caso contrário.
  • Stored Procedures chamadas:
  • SPGETPERIODODT (SELECT Idf_Periodo_Calculo FROM TAB_Periodo_Calculo WHERE CONVERT(DATETIME,CONVERT(VARCHAR,GETDATE(),103),103) BETWEEN Dta_Inicio AND Dta_Fim)
  • SPINSERT (via objPeriodoCalculo.Save(trans))
  • Validações: Verifica a existência do período antes de criar.
  • Exceções: Propaga exceções de banco de dados.

GetPeriodoPorDataAtual(SqlTransaction trans)

  • Lógica: Similar a GetPeriodoPorDataAtual(), mas utiliza uma transação existente.
  1. Executa a query SPGETPERIODODT usando a transação.
  2. Se não encontrar, cria e salva um novo PeriodoCalculo usando a transação.
  3. Retorna o ID do período.
  • Stored Procedures chamadas:
  • SPGETPERIODODT
  • SPINSERT (via objPeriodoCalculo.Save(trans))
  • Validações: Verifica a existência do período antes de criar.
  • Exceções: Propaga exceções de banco de dados.

GetMinMax(out DateTime paMin, out DateTime paMax)

  • Lógica:
  1. Executa a query SPSELECTMENORMAIOR usando DataAccessLayer.ExecuteReader.
  2. Se houver um resultado, extrai as datas menor e maior e as atribui aos parâmetros out.
  3. Se não houver resultado, lança uma Exception.
  • Stored Procedures chamadas: SPSELECTMENORMAIOR (SELECT min (Dta_Inicio) as menor, max(Dta_Fim) as maior FROM TAB_Periodo_Calculo)
  • Validações: Lança Exception se nenhum período de cálculo for encontrado.
  • Exceções: Exception se não houver períodos cadastrados.

LoadObject(int ano, int mes)

  • Lógica:
  1. Chama LoadDataReader(ano, mes) para obter um IDataReader.
  2. Tenta preencher um novo objeto PeriodoCalculo com o resultado.
  3. Retorna o objeto preenchido ou lança RecordNotFoundException.
  • Stored Procedures chamadas: Nenhuma diretamente (chama LoadDataReader).
  • Validações: Lança RecordNotFoundException se o período não for encontrado.
  • Exceções: RecordNotFoundException.

LoadObject(int ano, int mes, SqlTransaction trans)

  • Lógica: Similar a LoadObject(int, int), mas utiliza uma transação existente.
  • Stored Procedures chamadas: Nenhuma diretamente (chama LoadDataReader(trans)).
  • Validações: Lança RecordNotFoundException se o período não for encontrado.
  • Exceções: RecordNotFoundException.

RecuperarPorData(DateTime data)

  • Lógica:
  1. Chama LoadDataReader(data.Year, data.Month).
  2. Tenta preencher um novo objeto PeriodoCalculo.
  3. Se não conseguir preencher (período não existe):
  • Cria um novo PeriodoCalculo com base na data fornecida.
  • Salva o novo período usando objPeriodoCalculo.Save().
  1. Retorna o objeto PeriodoCalculo.
  • Stored Procedures chamadas: Nenhuma diretamente (chama LoadDataReader e Save).
  • Validações: Cria o período se não existir.
  • Exceções: Nenhuma explícita.

RecuperarPorData(DateTime data, SqlTransaction trans)

  • Lógica: Similar a RecuperarPorData(DateTime), mas utiliza uma transação existente.
  • Stored Procedures chamadas: Nenhuma diretamente (chama LoadDataReader(trans) e Save(trans)).
  • Validações: Cria o período se não existir.
  • Exceções: Nenhuma explícita.

LoadDataReader(int ano, int mes)

  • Lógica:
  1. Cria uma lista de parâmetros para @Num_Ano e @Num_Mes.
  2. Atribui os valores.
  3. Executa a query SPSELECTPORMESEANO usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTPORMESEANO (SELECT * FROM TAB_Periodo_Calculo WHERE MONTH(Dta_Inicio) = @Num_Mes AND YEAR(Dta_Inicio) = @Num_Ano)
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

LoadDataReader(int ano, int mes, SqlTransaction trans)

  • Lógica: Similar a LoadDataReader(int, int), mas utiliza uma transação existente.
  • Stored Procedures chamadas: SPSELECTPORMESEANO
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

FecharPeriodoFiliais(List<int> filiais, int idfPeriodoAtual, Usuario objUsuario, out List<int> filiaisFechadas, out List<int> filiaisnaoFechadas, out List<int> lstResponsavelDependente)

  • Lógica: Orquestra o fechamento de períodos para múltiplas filiais.
  1. Inicializa as listas de filiaisFechadas, filiaisnaoFechadas e lstResponsavelDependente.
  2. Itera sobre cada idfFilial na lista filiais:
  • Verifica se há itens pendentes na fila de cálculo para a filial (FilaCalculo.NumeroItens). Se houver, adiciona a filial a filiaisnaoFechadas.
  • Se não houver pendências:
  • Tenta chamar FecharFilial(idfFilial, idfPeriodoAtual, objUsuario, out lstResponsavelDependente).
  • Se bem-sucedido, adiciona a filial a filiaisFechadas.
  • Se ocorrer uma exceção durante FecharFilial, adiciona a filial a filiaisnaoFechadas e registra o erro.
  1. Retorna um dicionário de resultados (atualmente vazio, mas o método FecharFilial preenche as listas out).
  • Stored Procedures chamadas: Nenhuma diretamente (chama FilaCalculo.NumeroItens e FecharFilial).
  • Validações: Verifica pendências na fila de cálculo antes de tentar fechar a filial.
  • Exceções: Captura e registra exceções de FecharFilial.

FecharFilial(SqlTransaction trans, int idfFilial, int idfPeriodoAtual, Usuario objUsuario, out List<int> lstResponsavelDependente)

  • Lógica: Realiza o fechamento do período de cálculo para uma única filial.
  1. Verifica se a empresa da filial utiliza Centro de Resultado.
  2. Carrega o PeriodoCalculo atual da filial.
  3. Chama VerificaCriaPeriodo para garantir que o próximo período de cálculo exista ou seja criado.
  4. Carrega o PeriodoCalculoFilial aberto para a filial.
  5. Seta a data de pagamento para benefícios fornecidos com quantidade zerada (BeneficioFornecimento.FecharBeneficiosZerados, BeneficioFornecido.FecharBeneficiosZerados).
  6. Atualiza dependentes para salário família (Dependente.AtualizaDependenteSalarioFamilia).
  7. Atualiza beneficiários (Beneficiario.AtualizaBeneficiario).
  8. Atualiza dependentes para IRRF (Dependente.AtualizaDependenteIRRF), preenchendo lstResponsavelDependente.
  9. Marca o oldPeriodoCalculoFilial como fechado, define DataFechamento e salva.
  10. Valida se já existe um período aberto para a filial no novo período de cálculo (PeriodoCalculoFilial.VerificarPeriodoCalculoFilial). Se sim, lança exceção.
  11. Cria e salva um novo PeriodoCalculoFilial para o próximo período, marcando-o como aberto.
  12. Registra o histórico de fechamento de folha (FechamentoFolhaHistorico).
  13. Lança verbas manuais para o novo período (LancarVerbasManuais).
  14. Fornece insumos (BeneficioControle.SalvarEnviarParaFornecimento).
  15. Exclui e insere empregados na fila de cálculo (FilaCalculo.ExcluirEmpregadosPorFilial, FilaCalculo.InserirEmpregadosAtivosPorFilial).
  16. Insere empregados na fila Benesite (FilaBenesite.InserirEmpregadosAtivosPorFilial_FechamentoFolha).
  17. Insere empregados na fila de cálculo de benefício para o mês atual e o próximo (FilaCalculoBeneficio.InserirEmpregadosAtivosPorFilial).
  18. Se a provisão estiver habilitada e o período não contabilizado, insere empregados na fila de cálculo de provisões (FilaCalculoProvisoes.InserirEmpregadosAtivos).
  19. Realiza o fechamento da filial para foto (PreFolha.FechamentoFilialFoto).
  • Stored Procedures chamadas:
  • Várias consultas e updates via métodos de outras BLLs (Filial, Empresa, PeriodoCalculoFilial, BeneficioFornecimento, BeneficioFornecido, Dependente, Beneficiario, FechamentoFolhaHistorico, FilaCalculo, BeneficioControle, FilaBenesite, FilaCalculoBeneficio, Provisao, FilaCalculoProvisoes, PreFolha).
  • UPDBENEFICIOSZERADOS (via BeneficioFornecimento.FecharBeneficiosZerados e BeneficioFornecido.FecharBeneficiosZerados)
  • SPVERBASMANUAISCR (via LancarVerbasManuais)
  • Validações:
  • Verifica se já existe um período de cálculo aberto para a filial no novo período.
  • Exceções: Lança Exception se já existir um período de cálculo aberto.

FecharFilial(int idfFilial, int idfPeriodoAtual, Usuario objUsuario, out List<int> lstResponsavelDependente)

  • Lógica: Encapsula a chamada transacional para FecharFilial(SqlTransaction, int, int, Usuario, out List<int>).
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama a versão transacional do método.
  3. Comita a transação e envia para cálculo (FilaCalculoTransactionSingleton.EnviarParaCalculo) se bem-sucedido.
  4. Em caso de erro, faz rollback da transação e remove da fila de cálculo (FilaCalculoTransactionSingleton.RemoverFilaCalculo).
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

LancarVerbasManuais(SqlTransaction trans, int idfFilial, bool UtilizaCR)

  • Lógica:
  1. Constrói a query SPVERBASMANUAISCR dinamicamente, adaptando-a se a empresa utiliza Centro de Resultado (UtilizaCR).
  2. Cria uma lista de parâmetros para @Idf_Filial e @UtilizaCR.
  3. Executa a query usando DataAccessLayer.ExecuteNonQuery com a transação.
  • Stored Procedures chamadas: SPVERBASMANUAISCR (INSERT INTO TAB_Verba_Manual …)
  • @Idf_Filial: ID da filial.
  • @UtilizaCR: Flag indicando se utiliza Centro de Resultado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarPeriodoIntervalo(DateTime dataInicio, DateTime dataFim)

  • Lógica:
  1. Cria uma lista de parâmetros para @Dta_Inicio e @Dta_Fim.
  2. Executa a query SPSELECTINTERVALO usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTINTERVALO (SELECT * FROM TAB_Periodo_Calculo WHERE ( Dta_Inicio <= @Dta_Fim AND Dta_Fim >= @Dta_Inicio ) ORDER BY Dta_Inicio)
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarPeriodoIntervalo(DateTime dataInicio, DateTime dataFim)

  • Lógica:
  1. Chama ListarPeriodoIntervalo(dataInicio, dataFim) para obter um IDataReader.
  2. Itera sobre o IDataReader, criando e preenchendo objetos PeriodoCalculo para cada registro encontrado.
  3. Adiciona os objetos preenchidos a uma lista e a retorna.
  • Stored Procedures chamadas: Nenhuma diretamente (chama ListarPeriodoIntervalo).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarPeriodoIntervaloConjunto(DateTime dataInicio, DateTime dataFim)

  • Lógica:
  1. Cria uma lista de parâmetros para @Dta_Inicio e @Dta_Fim.
  2. Constrói uma query SQL que busca períodos de cálculo que contenham o intervalo fornecido.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader, criando e preenchendo objetos PeriodoCalculo para cada registro encontrado.
  5. Adiciona os objetos preenchidos a uma lista e a retorna.
  • Stored Procedures chamadas: Query dinâmica (SELECT * FROM TAB_Periodo_Calculo WHERE Dta_Inicio >= (SELECT Dta_Inicio FROM TAB_Periodo_Calculo WHERE (@Dta_Inicio BETWEEN Dta_Inicio AND Dta_Fim)) AND Dta_Fim <= (SELECT Dta_Fim FROM TAB_Periodo_Calculo WHERE (@Dta_Fim BETWEEN Dta_Inicio AND Dta_Fim)))
  • @Dta_Inicio: Data de início do intervalo.
  • @Dta_Fim: Data de fim do intervalo.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperaPISIrregulares(int idfFilial, int idfPeriodoCalculo)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial e @Idf_Periodo_Calculo.
  2. Executa a query SPVERIFICAPIS usando DataAccessLayer.ExecuteReaderDs para obter um DataTable.
  3. Se o DataTable tiver linhas, converte cada linha em um objeto anônimo com CPF e Nome e os agrupa em um Dictionary<decimal, string>.
  4. Retorna o dicionário ou null se não houver irregularidades.
  • Stored Procedures chamadas: SPVERIFICAPIS
  • @Dta_Inicio: Data de início do período de cálculo.
  • @Dta_Fim: Data de fim do período de cálculo.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperaPISIrregularesTodasFiliais(List<int> pLstIdFiliais, int idfPeriodoCalculo)

  • Lógica:
  1. Converte a lista de IDs de filiais em uma string separada por vírgulas.
  2. Cria uma lista de parâmetros para @filiais e @Idf_Periodo_Calculo.
  3. Executa a query SPVERIFICAPISTODASFILIAIS usando DataAccessLayer.ExecuteReaderDs para obter um DataTable.
  4. Se o DataTable tiver linhas, agrupa os resultados por ROWID e cria um Dictionary<int, Dictionary<int, decimal>> onde a chave externa é o ROWID e o valor interno é um dicionário de IdFilial para Num_CPF.
  5. Retorna o dicionário ou null se não houver irregularidades.
  • Stored Procedures chamadas: SPVERIFICAPISTODASFILIAIS
  • @Dta_Inicio: Data de início do período de cálculo.
  • @Dta_Fim: Data de fim do período de cálculo.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • @filiais: Lista de IDs de filiais (string separada por vírgulas).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarFiliaisFechamento(int idfUsuario, int idfPeriodoCalculo, int idfEmpresa, string colunaOrdenacao, string direcaoOrdenacao, bool? semMovimentacao, bool? fechado)

  • Lógica:
  1. Constrói a query SPGRIDFECHAMENTO2 (que utiliza tabelas temporárias para acesso e dados de fechamento).
  2. Cria uma lista de parâmetros para @Idf_Usuario, @Idf_Periodo_Calculo, @Idf_Empresa, @SemMovimentacao, @Idf_Filial, @Fechado.
  3. Adiciona a cláusula ORDER BY à query se colunaOrdenacao não for vazia.
  4. Abre uma conexão SQL, cria um SqlCommand, prepara o comando e usa um SqlDataAdapter para preencher um DataSet.
  5. Retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: SPGRIDFECHAMENTO2 (query complexa com tabelas temporárias e joins para calcular status de fechamento de filiais).
  • @Idf_Usuario: ID do usuário.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • @Idf_Empresa: ID da empresa.
  • @SemMovimentacao: Flag para filtrar filiais com/sem movimentação.
  • @Idf_Filial: ID da filial (pode ser nulo).
  • @Fechado: Flag para filtrar filiais fechadas/abertas.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

TodasFiliaisMovimentadasFechadas(int idfUsuario, int idfEmpresa, int idfPeriodoCalculo)

  • Lógica:
  1. Abre uma conexão SQL e inicia uma transação.
  2. Chama ListarFiliaisFechamento para obter um DataTable das filiais com movimentação e status de fechamento.
  3. Itera sobre as linhas do DataTable:
  • Se alguma filial não estiver fechada (Status_Filial for false), retorna false.
  1. Se todas as filiais com movimentação estiverem fechadas, retorna true.
  • Stored Procedures chamadas: Nenhuma diretamente (chama ListarFiliaisFechamento).
  • Validações: Verifica o status de fechamento de cada filial com movimentação.
  • Exceções: Nenhuma explícita.

VerificaCriaPeriodo(PeriodoCalculo objPeriodoCalculo, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de parâmetros para @Dta_Fim_Periodo.
  2. Executa SPVERIFICASEEXISTEPROXIMOPERIODO para verificar se existe um período de cálculo com data de início posterior à DataFim do objPeriodoCalculo.
  3. Se numPeriodos for 0 (não existe próximo período):
  • Cria um novo PeriodoCalculo com a data de início sendo o dia seguinte à DataFim do objPeriodoCalculo.
  • Define a DataFim como o último dia do mês do novo período.
  • Define a DescricaoPeriodoCalculo.
  • Salva o novo período usando newPeriodoCalculo.Save(trans).
  • Retorna o novo período.
  1. Se numPeriodos for maior que 0 (próximo período existe):
  • Cria uma lista de parâmetros para @Dta_Inicio_Novo_Periodo (dia seguinte à DataFim do objPeriodoCalculo).
  • Carrega o PeriodoCalculo existente usando SetInstance e a query SPGETPROXIMOPERIODO.
  • Retorna o período existente.
  • Stored Procedures chamadas:
  • SPVERIFICASEEXISTEPROXIMOPERIODO (SELECT COUNT(*) FROM TAB_Periodo_Calculo P WHERE P.Dta_Inicio > @Dta_Fim_Periodo)
  • @Dta_Fim_Periodo: Data de fim do período atual.
  • SPINSERT (via newPeriodoCalculo.Save(trans))
  • SPGETPROXIMOPERIODO (SELECT * FROM TAB_Periodo_Calculo P WHERE P.Dta_Inicio = @Dta_Inicio_Novo_Periodo)
  • @Dta_Inicio_Novo_Periodo: Data de início do próximo período.
  • Validações: Verifica a existência do próximo período antes de criar.
  • Exceções: Nenhuma explícita.

VerificaCriaPeriodo(PeriodoCalculo objPeriodoCalculo)

  • Lógica: Encapsula a chamada transacional para VerificaCriaPeriodo(PeriodoCalculo, SqlTransaction).
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama a versão transacional do método.
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna o resultado.
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

RecalculandoEmpregado(int idEmp, int idfPeriodoCalculo, int idfFilial, int idfUsuario)

  • Lógica: Insere um registro na tabela TMP_RECALCULAR_VARIAVEL para indicar que um empregado precisa ter suas variáveis recalculadas.
  1. Cria uma lista de parâmetros para @Idf_Empregado, @Idf_Periodo_Calculo, @Idf_Filial, @Idf_Usuario, @Dta_Cadastro.
  2. Atribui os valores fornecidos e DateTime.Now para Dta_Cadastro.
  3. Executa a query INSERT usando DataAccessLayer.ExecuteNonQuery.
  4. Captura e ignora (apenas loga, se habilitado) quaisquer exceções.
  • Stored Procedures chamadas: Query dinâmica (INSERT INTO TMP_RECALCULAR_VARIAVEL …)
  • @Idf_Empregado: ID do empregado.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • @Idf_Filial: ID da filial.
  • @Idf_Usuario: ID do usuário.
  • @Dta_Cadastro: Data de cadastro.
  • Validações: Nenhuma explícita.
  • Exceções: Captura e loga exceções.

CarregarPorMesAno(int _mes, int _ano, SqlTransaction trans)

  • Lógica:
  1. Constrói uma query SQL para selecionar o Idf_Periodo_Calculo da TAB_Periodo_Calculo com base no mês e ano.
  2. Cria uma lista de parâmetros para @MES e @ANO.
  3. Executa a query usando DataAccessLayer.ExecuteScalar com a transação.
  4. Se um ID for retornado, carrega o objeto PeriodoCalculo correspondente usando LoadObject(id, trans).
  5. Se nenhum ID for retornado ou ocorrer um erro, define objPeriodoCalculo como null.
  6. Retorna o objeto PeriodoCalculo.
  • Stored Procedures chamadas: Query dinâmica (SELECT Idf_Periodo_Calculo FROM TAB_Periodo_Calculo (nolock) WHERE MONTH(Dta_Inicio) = @MES AND YEAR(Dta_Inicio) = @ANO)
  • @MES: Mês do período.
  • @ANO: Ano do período.
  • SPSELECTID (via LoadObject(id, trans))
  • Validações: Nenhuma explícita.
  • Exceções: Captura exceções e define o objeto como null.

CarregarPorMesAno(int _mes, int _ano)

  • Lógica: Encapsula a chamada transacional para CarregarPorMesAno(int, int, SqlTransaction).
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama a versão transacional do método.
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna o resultado.
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

ValidacaoAlteracaoDataAdmissiaoEmp(Empregado objEmpregado, DateTime periodo)

  • Lógica:
  1. Completa o objeto objEmpregado.Contrato.
  2. Cria uma lista de parâmetros para @Idf_Filial (da filial gestora do contrato) e @Periodo.
  3. Executa a query SPVALIDACAOALTERACAODATATADMISSAOEMP usando DataAccessLayer.ExecuteReader.
  4. Retorna true se houver um registro (indicando que a alteração da data de admissão interfere em um período fechado), false caso contrário.
  • Stored Procedures chamadas: SPVALIDACAOALTERACAODATATADMISSAOEMP (SELECT pcf.Dta_Fechamento FROM TAB_Periodo_Calculo_Filial as pcf INNER JOIN TAB_Periodo_Calculo as pc on (pc.Idf_Periodo_Calculo = pcf.Idf_Periodo_Calculo) WHERE pcf.Idf_Filial = @Idf_Filial AND pcf.Dta_Fechamento IS NULL AND (pc.Dta_Inicio >= @Periodo AND pc.Dta_Fim <= @Periodo))
  • @Idf_Filial: ID da filial.
  • @Periodo: Data do período a ser validado.
  • Validações: Verifica se a data de admissão do empregado está dentro de um período de cálculo fechado para a filial.
  • Exceções: Nenhuma explícita.

RecuperarUltimoPeriodoCalculoUtilizado(Empregado objEmpregado)

  • Lógica:
  1. Constrói uma query para selecionar o Idf_Periodo_Calculo do último holerite de um empregado.
  2. Cria um parâmetro para @Idf_Empregado.
  3. Executa a query usando DataAccessLayer.ExecuteScalar.
  4. Se um resultado for retornado, carrega o PeriodoCalculo correspondente usando PeriodoCalculo.LoadObject.
  5. Retorna o objeto PeriodoCalculo ou null.
  • Stored Procedures chamadas: Query dinâmica (SELECT top 1 Idf_Periodo_Calculo FROM TAB_Holerite WHERE Idf_Empregado = @Idf_Empregado ORDER BY Dta_Cadastro desc)
  • @Idf_Empregado: ID do empregado.
  • SPSELECTID (via PeriodoCalculo.LoadObject)
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarUltimoPeriodoCalculoCalculado(Empregado objEmpregado, out PeriodoCalculo objPeriodoCalculo)

  • Lógica:
  1. Inicializa objPeriodoCalculo como null e retorno como false.
  2. Constrói uma query para selecionar o Idf_Periodo_Calculo do último holerite calculado para um empregado.
  3. Cria um parâmetro para @Idf_Empregado.
  4. Executa a query usando DataAccessLayer.ExecuteScalar.
  5. Se um resultado for retornado, carrega o PeriodoCalculo correspondente usando PeriodoCalculo.LoadObject, define objPeriodoCalculo e retorno como true.
  6. Retorna retorno.
  • Stored Procedures chamadas: Query dinâmica (SELECT top 1 h.Idf_Periodo_Calculo FROM TAB_Holerite h(nolock) JOIN TAB_Periodo_Calculo p (nolock) on h.Idf_Periodo_Calculo = p.Idf_Periodo_Calculo WHERE Idf_Empregado = @idF_empregado ORDER by p.Dta_Inicio desc)
  • @Idf_Empregado: ID do empregado.
  • SPSELECTID (via PeriodoCalculo.LoadObject)
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarPeriodoCalculoPorAno(int ano)

  • Lógica:
  1. Constrói uma query para selecionar os idf_periodo_calculo da TAB_Periodo_Calculo para um dado ano.
  2. Cria um parâmetro para @ano.
  3. Executa a query usando DataAccessLayer.ExecuteReaderDs para obter um DataTable.
  4. Itera sobre as linhas do DataTable, carregando cada PeriodoCalculo usando PeriodoCalculo.LoadObject e adicionando-o a uma lista.
  5. Retorna a lista de PeriodoCalculo.
  • Stored Procedures chamadas: Query dinâmica (SELECT idf_periodo_calculo FROM TAB_Periodo_Calculo WHERE YEAR(Dta_Inicio) = @ano ORDER BY Dta_Inicio asc)
  • @ano: Ano do período.
  • SPSELECTID (via PeriodoCalculo.LoadObject)
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

VerificarPeriodoFechadoAnoMes(int Ano, int Mes, int idEmpresa, int? idFilial)

  • Lógica:
  1. Constrói uma query SQL para contar os períodos de cálculo que estão fechados para um dado mês, ano, empresa e opcionalmente filial.
  2. Cria uma lista de parâmetros para @Ano, @Mes, @Idf_Empresa, @Idf_Filial.
  3. Atribui os valores, tratando idFilial como DBNull.Value se nulo.
  4. Executa a query usando DataAccessLayer.ExecuteScalar.
  5. Retorna true se o resultado for maior que 0 (indicando que o período está fechado), false caso contrário.
  • Stored Procedures chamadas: Query dinâmica (SELECT COUNT(PC.Idf_Periodo_Calculo) FROM TAB_Periodo_Calculo PC LEFT JOIN TAB_Fechamento_Folha FF ON FF.Idf_Periodo_Calculo=PC.Idf_Periodo_Calculo INNER JOIN TAB_Periodo_Calculo_Filial PCF ON PCF.Idf_Periodo_Calculo=PC.Idf_Periodo_Calculo AND PCF.Flg_Fechado=1 WHERE MONTH(PC.Dta_Inicio)=@Mes AND YEAR(PC.Dta_Inicio)=@Ano AND FF.Idf_Empresa=@Idf_Empresa AND(@Idf_Filial IS NULL OR PCF.Idf_Filial=@Idf_Filial))
  • @Ano: Ano do período.
  • @Mes: Mês do período.
  • @Idf_Empresa: ID da empresa.
  • @Idf_Filial: ID da filial (opcional).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarTodos()

  • Lógica:
  1. Constrói uma query para selecionar idf_periodo_calculo, des_periodo_calculo, dta_inicio, dta_fim da TAB_PERIODO_CALCULO.
  2. Executa a query usando DataAccessLayer.ExecuteReaderDs para obter um DataTable.
  3. Itera sobre as linhas do DataTable, criando e preenchendo objetos PeriodoCalculo e adicionando-os a um Dictionary<int, PeriodoCalculo> (chave: Idf_Periodo_Calculo).
  4. Retorna o dicionário.
  • Stored Procedures chamadas: Query dinâmica (SELECT idf_periodo_calculo,des_periodo_calculo,dta_inicio,dta_fim FROM TAB_PERIODO_CALCULO (NOLOCK))
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarUltimoPeriodoCalculoFechado(int idEmpresa, out PeriodoCalculo objPeriodo)

  • Lógica:
  1. Cria um parâmetro para @Idf_Empresa.
  2. Executa a query SPSELECTULTIMOPERIODOFECHADO usando DataAccessLayer.ExecuteReader.
  3. Tenta preencher o objeto objPeriodo com o resultado.
  4. Retorna true se um período for encontrado e preenchido, false caso contrário.
  • Stored Procedures chamadas: SPSELECTULTIMOPERIODOFECHADO (SELECT TOP 1 PC.* FROM TAB_Fechamento_Folha FF JOIN TAB_Periodo_Calculo PC ON FF.Idf_Periodo_Calculo = PC.Idf_Periodo_Calculo WHERE Idf_Empresa = @Idf_Empresa ORDER BY Dta_Fechamento_Folha DESC)
  • @Idf_Empresa: ID da empresa.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

SalvarHistoricoPeriodoCalculo(int pIdMes, int pIdAno, int pIdEmpresa)

  • Lógica: Encapsula a chamada transacional para AjusteHistoricoPeriodoCalculo.
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama AjusteHistoricoPeriodoCalculo(trans, pIdMes, pIdAno, pIdEmpresa).
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna true se bem-sucedido, false caso contrário.
  • Stored Procedures chamadas: Nenhuma diretamente (chama AjusteHistoricoPeriodoCalculo).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções de AjusteHistoricoPeriodoCalculo.

AjusteHistoricoPeriodoCalculo(SqlTransaction trans, int pIdMes, int pIdAno, int pIdEmpresa)

  • Lógica:
  1. Calcula a DataNova (primeiro dia do mês/ano fornecidos).
  2. Busca o Idf_Periodo_Calculo para a DataNova (novo período aberto) e para o mês anterior (novo período fechado).
  3. Atualiza a tabela TAB_Fechamento_Folha, definindo o Idf_Periodo_Calculo para o novo período fechado para a empresa.
  4. Atualiza a tabela TAB_Periodo_Calculo_Filial, definindo o Idf_Periodo_Calculo para o novo período fechado (se Flg_Fechado = 1) ou para o novo período aberto (se Flg_Fechado = 0) para as filiais da empresa.
  • Stored Procedures chamadas: Query dinâmica (DECLARE @DataNova DATETIME … UPDATE TAB_Fechamento_Folha … UPDATE PCF …)
  • @Ano: Ano do período.
  • @Mes: Mês do período.
  • @Idf_Empresa: ID da empresa.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

LoadObjectPorMesAno(int _mes, int _ano, SqlTransaction trans)

  • Lógica:
  1. Constrói uma query para selecionar o PeriodoCalculo completo com base no mês e ano.
  2. Cria uma lista de parâmetros para @MES e @ANO.
  3. Executa a query usando DataAccessLayer.ExecuteReader com a transação.
  4. Tenta preencher um novo objeto PeriodoCalculo com o resultado.
  5. Retorna o objeto preenchido ou lança RecordNotFoundException.
  • Stored Procedures chamadas: Query dinâmica (SELECT PC.* FROM TAB_Periodo_Calculo PC (nolock) WHERE MONTH(PC.Dta_Inicio) = @MES AND YEAR(PC.Dta_Inicio) = @ANO)
  • @MES: Mês do período.
  • @ANO: Ano do período.
  • Validações: Nenhuma explícita.
  • Exceções: RecordNotFoundException se o período não for encontrado.

VerificaCalculoFechadoFilialEmpregado(int idEmpregado, PeriodoCalculo objPeriodoCalculo)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado.
  2. Executa a query SPSELECTPERIODOCALCULOFECHADOFILIALPOREMPREGADO usando DataAccessLayer.ExecuteReader.
  3. Tenta preencher um novo objeto PeriodoCalculo com o resultado.
  4. Compara o IdPeriodoCalculo do objPeriodoCalculo fornecido com o IdPeriodoCalculo do período retornado.
  5. Retorna true se forem iguais, false caso contrário.
  • Stored Procedures chamadas: SPSELECTPERIODOCALCULOFECHADOFILIALPOREMPREGADO
  • @Idf_Empregado: ID do empregado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

VerificaExistenciaPeriodoCalculo(int idPeriodoCalculo)

  • Lógica:
  1. Chama LoadDataReader(idPeriodoCalculo) para obter um IDataReader.
  2. Tenta ler a primeira linha do IDataReader.
  3. Retorna true se conseguir ler (o período existe), false caso contrário.
  • Stored Procedures chamadas: Nenhuma diretamente (chama LoadDataReader).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

Stored Procedures

NomeParâmetrosPropósito
SPINSERT@Idf_Periodo_Calculo (OUTPUT), @Des_Periodo_Calculo, @Dta_Inicio, @Dta_Fim, @Dta_Cadastro, @Idf_Usuario_GeradorInsere um novo registro na tabela TAB_Periodo_Calculo e retorna o ID gerado.
SPUPDATE@Des_Periodo_Calculo, @Dta_Inicio, @Dta_Fim, @Dta_Cadastro, @Idf_Usuario_Gerador, @Idf_Periodo_CalculoAtualiza um registro existente na tabela TAB_Periodo_Calculo.
SPDELETE@Idf_Usuario_Gerador, @Idf_Periodo_CalculoAtualiza o Idf_Usuario_Gerador e depois exclui um registro da tabela TAB_Periodo_Calculo.
SPSELECTID@Idf_Periodo_CalculoSeleciona um registro da tabela TAB_Periodo_Calculo pelo seu ID.
SELPERIODOCALCULOABERTOPOREMPRESA@Idf_EmpresaSeleciona o período de cálculo aberto para uma empresa, considerando o último fechamento de folha.
SPGETPERIODODTN/ASeleciona o Idf_Periodo_Calculo para o período que abrange a data atual.
SPSELECTPORMESEANO@Num_Mes, @Num_AnoSeleciona um registro da tabela TAB_Periodo_Calculo pelo mês e ano de início.
SPSELECTINTERVALO@Dta_Inicio, @Dta_FimSeleciona registros da tabela TAB_Periodo_Calculo que se sobrepõem a um intervalo de datas.
SPVERIFICAPIS@Idf_Periodo_Calculo, @Idf_FilialRetorna CPF e nome de empregados com PIS nulo ou vazio para uma filial e período.
SPVERIFICAPISTODASFILIAIS@Idf_Periodo_Calculo, @filiaisRetorna CPF e nome de empregados com PIS nulo ou vazio para uma lista de filiais e período.
SPGRIDFECHAMENTO@Idf_Usuario, @Idf_Empresa, @Idf_Periodo_Calculo, @Idf_Filial, @SemMovimentacao, @FechadoConsulta complexa para exibir o status de fechamento de filiais, incluindo contagem de holerites, benefícios, RPAs, pensões e admissões pendentes/pagas, e bloqueios.
SPGRIDFECHAMENTO2@Idf_Usuario, @Idf_Empresa, @Idf_Periodo_Calculo, @Idf_Filial, @SemMovimentacao, @FechadoVersão otimizada de SPGRIDFECHAMENTO utilizando tabelas temporárias e SET TRAN ISOLATION LEVEL READ UNCOMMITTED.
SPVERIFICAEMPRESAFECHADA@Idf_Empresa, @Idf_Periodo_CalculoVerifica se a empresa possui um registro em TAB_Fechamento_Folha para o período de cálculo.
SPGETNUMFILIAISFECHADASEMPRESA@Idf_Empresa, @Idf_Periodo_CalculoConta o número de filiais ativas de uma empresa que estão com o período de cálculo fechado.
SPGETNUMFILIAISEMPRESA@Idf_Empresa, @Idf_Periodo_CalculoConta o número de filiais ativas de uma empresa que possuem um PeriodoCalculoFilial para o período.
SPVERIFICASEEXISTEPROXIMOPERIODO@Dta_Fim_PeriodoVerifica se existe algum PeriodoCalculo com Dta_Inicio maior que a @Dta_Fim_Periodo fornecida.
SPGETPROXIMOPERIODO@Dta_Inicio_Novo_PeriodoSeleciona o PeriodoCalculo cuja Dta_Inicio corresponde à @Dta_Inicio_Novo_Periodo.
SPGETNUMEMPRESASCOMPERMISSAOFECHADAS@Idf_Periodo_Calculo_Anterior, @Idf_UsuarioConta o número de empresas (com permissão do usuário) que foram fechadas no período de cálculo anterior.
SPGETPERIODODATAFIM@Dta_FimSeleciona o Idf_Periodo_Calculo para o período que termina na @Dta_Fim fornecida.
SPGETNUMERODEEMPRESASCOMPERIODOCALCULO@Idf_Periodo_Calculo_Anterior, @Idf_UsuarioRetorna o número de empresas (com permissão do usuário) que tiveram alguma filial com período de cálculo no mês anterior.
SPVALIDACAOALTERACAODATATADMISSAOEMP@Idf_Filial, @PeriodoVerifica se a data de admissão de um empregado interfere em um período de cálculo fechado para a filial.
SPSELECTPERIODOCALCULOFECHADOFILIALPOREMPREGADO@Idf_EmpregadoSeleciona o PeriodoCalculo da filial de um empregado que está fechado, ordenado pela Dta_Inicio ascendente.
SPSELECTPERIODOCALCULOABERTOFILIALCRPOREMPREGADO@Idf_EmpregadoSeleciona o PeriodoCalculo da filial de um empregado que está aberto, considerando a estrutura de Centro de Resultado.
SPSELECTPERIODOCALCULOABERTOFILIALPOREMPREGADO@Idf_EmpregadoSeleciona o PeriodoCalculo da filial de um empregado que está aberto, ordenado pela Dta_Inicio ascendente.
SPSELECTULTIMOPERIODOFECHADO@Idf_EmpresaSeleciona o último PeriodoCalculo fechado para uma empresa.
SPSELECTMENORMAIORN/ARetorna a menor Dta_Inicio e a maior Dta_Fim da tabela TAB_Periodo_Calculo.
Query dinâmica em LancarVerbasManuais@Idf_Filial, @UtilizaCRInsere registros na TAB_Verba_Manual para empregados ativos com lançamentos vigentes, considerando a estrutura gerencial.
Query dinâmica em CarregarPeriodoIntervaloConjunto@Dta_Inicio, @Dta_FimSeleciona períodos de cálculo que abrangem um intervalo de datas.
Query dinâmica em RecuperarUltimoPeriodoCalculoUtilizado@Idf_EmpregadoSeleciona o Idf_Periodo_Calculo do último holerite de um empregado.
Query dinâmica em RecuperarUltimoPeriodoCalculoCalculado@Idf_EmpregadoSeleciona o Idf_Periodo_Calculo do último holerite calculado para um empregado.
Query dinâmica em ListarPeriodoCalculoPorAno@anoSeleciona idf_periodo_calculo para um dado ano.
Query dinâmica em AjusteHistoricoPeriodoCalculo@Ano, @Mes, @Idf_EmpresaAtualiza Idf_Periodo_Calculo em TAB_Fechamento_Folha e TAB_Periodo_Calculo_Filial para ajustar o histórico.
Query dinâmica em LoadObjectPorMesAno@MES, @ANOSeleciona PeriodoCalculo pelo mês e ano de início.

PeriodoCalculoFilial

Arquivo: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PeriodoCalculoFilial_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\PeriodoCalculoFilial_P2.cs

Métodos

MétodoAssinaturaPropósito
GetParametersprivate List<SqlParameter> GetParameters()Prepara uma lista de parâmetros SQL para operações de INSERT e UPDATE.
SetParametersprivate void SetParameters(List<SqlParameter> parms)Preenche uma lista de parâmetros SQL com os valores da instância atual de PeriodoCalculoFilial.
Insertprivate void Insert()Insere uma nova instância de PeriodoCalculoFilial no banco de dados.
Insertprivate void Insert(SqlTransaction trans)Insere uma nova instância de PeriodoCalculoFilial no banco de dados dentro de uma transação existente.
Updateprivate void Update()Atualiza uma instância existente de PeriodoCalculoFilial no banco de dados.
Updateprivate void Update(SqlTransaction trans)Atualiza uma instância existente de PeriodoCalculoFilial no banco de dados dentro de uma transação existente.
Savepublic void Save()Salva a instância atual de PeriodoCalculoFilial no banco de dados (insere se for nova, atualiza se já existir).
Savepublic void Save(SqlTransaction trans)Salva a instância atual de PeriodoCalculoFilial no banco de dados dentro de uma transação (insere se for nova, atualiza se já existir).
Deletepublic static void Delete(int idPeriodoCalculoFilial)Exclui um registro de PeriodoCalculoFilial do banco de dados pelo seu ID.
Deletepublic static void Delete(int idPeriodoCalculoFilial, SqlTransaction trans)Exclui um registro de PeriodoCalculoFilial do banco de dados pelo seu ID dentro de uma transação.
Deletepublic static void Delete(List<int> idPeriodoCalculoFilial)Exclui múltiplos registros de PeriodoCalculoFilial do banco de dados por uma lista de IDs.
LoadDataReaderprivate static IDataReader LoadDataReader(int idPeriodoCalculoFilial)Retorna um IDataReader com as colunas de um único registro de PeriodoCalculoFilial.
LoadDataReaderprivate static IDataReader LoadDataReader(int idPeriodoCalculoFilial, SqlTransaction trans)Retorna um IDataReader com as colunas de um único registro de PeriodoCalculoFilial dentro de uma transação.
LoadDataReaderpublic static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Retorna um IDataReader com uma consulta paginada de registros de PeriodoCalculoFilial.
LoadObjectpublic static PeriodoCalculoFilial LoadObject(int idPeriodoCalculoFilial)Retorna uma instância de PeriodoCalculoFilial preenchida a partir do banco de dados.
LoadObjectpublic static PeriodoCalculoFilial LoadObject(int idPeriodoCalculoFilial, SqlTransaction trans)Retorna uma instância de PeriodoCalculoFilial preenchida a partir do banco de dados dentro de uma transação.
CompleteObjectpublic bool CompleteObject()Completa os atributos da instância atual de PeriodoCalculoFilial a partir do banco de dados.
CompleteObjectpublic bool CompleteObject(SqlTransaction trans)Completa os atributos da instância atual de PeriodoCalculoFilial a partir do banco de dados dentro de uma transação.
SetInstanceprivate static bool SetInstance(IDataReader dr, PeriodoCalculoFilial objPeriodoCalculoFilial)Método auxiliar para preencher uma instância de PeriodoCalculoFilial a partir de um IDataReader.
ListarPeriodoAbertopublic static IDataReader ListarPeriodoAberto(int idFilial)Lista o período de cálculo aberto para uma filial.
ListarPeriodoAbertopublic static IDataReader ListarPeriodoAberto(int idFilial, SqlTransaction trans)Lista o período de cálculo aberto para uma filial dentro de uma transação.
GetIdfPeriodoAbertopublic static int GetIdfPeriodoAberto(int idFilial)Retorna o ID do período de cálculo aberto para uma filial.
GetIdfPeriodoAbertopublic static int GetIdfPeriodoAberto(int idFilial, SqlTransaction trans)Retorna o ID do período de cálculo aberto para uma filial dentro de uma transação.
CarregarPeriodoAbertopublic static bool CarregarPeriodoAberto(int idFilial, out PeriodoCalculo objPerCalculo, SqlTransaction trans)Carrega o objeto PeriodoCalculo aberto para uma filial dentro de uma transação.
CarregarPeriodoAbertopublic static bool CarregarPeriodoAberto(int idFilial, out PeriodoCalculo objPerCalculo)Carrega o objeto PeriodoCalculo aberto para uma filial.
CarregarPeriodoCalculoFilialAbertoPorFilialpublic static bool CarregarPeriodoCalculoFilialAbertoPorFilial(int pIdfFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)Carrega o objeto PeriodoCalculoFilial aberto para uma filial específica.
CarregarPeriodoCalculoFilialAbertoPorContratopublic static bool CarregarPeriodoCalculoFilialAbertoPorContrato(int pIdfContrato, int pIdfFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)Carrega o objeto PeriodoCalculoFilial aberto para um contrato e filial específicos.
CarregarPeriodoCalculoFilialAbertoPorCentroResultadopublic static bool CarregarPeriodoCalculoFilialAbertoPorCentroResultado(int pIdfCentroResultado, int pIdfFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)Carrega o objeto PeriodoCalculoFilial aberto para um centro de resultado e filial específicos.
CarregarUltimoPeriodoFechadoPorFilialpublic static bool CarregarUltimoPeriodoFechadoPorFilial(int pIdFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)Recupera o último período de cálculo fechado de uma filial.
CarregarUltimoPeriodoFechadoPorFilialpublic static bool CarregarUltimoPeriodoFechadoPorFilial(SqlTransaction trans, int pIdFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)Recupera o último período de cálculo fechado de uma filial dentro de uma transação.
RecuperarPeriodoAtualpublic static string RecuperarPeriodoAtual(int idFilial)Recupera a descrição do período de cálculo atual para uma filial.
RecuperaPeriodoFechadoFilialpublic static List<int> RecuperaPeriodoFechadoFilial(List<int> lstIdEmpregado, bool pUtilizaCentroResultado)Recupera os IDs dos períodos de cálculo fechados para uma lista de empregados, considerando a estrutura gerencial.
RecuperaDataMaximaPeriodoFechadoFilialpublic static DateTime RecuperaDataMaximaPeriodoFechadoEmpregadoFilial(List<int> lstIdEmpregado, bool pUtilizaCentroResultado)Recupera a data máxima de início do período de cálculo fechado para uma lista de empregados.
PrepareCommandprivate static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, List<SqlParameter> cmdParms)Método auxiliar para preparar comandos SQL.
RecuperarDataInicialPeriodoAtualpublic static DateTime RecuperarDataInicialPeriodoAtual(int idFilial, SqlTransaction trans)Recupera a data inicial do período de cálculo atual para uma filial dentro de uma transação.
RecuperarDataInicialPeriodoAtualpublic static DateTime RecuperarDataInicialPeriodoAtual(int idFilial)Recupera a data inicial do período de cálculo atual para uma filial.
RecuperarDataFinalPeriodoAtualpublic static DateTime RecuperarDataFinalPeriodoAtual(int idFilial)Recupera a data final do período de cálculo atual para uma filial.
RecuperarDataFinalPeriodoAtualpublic static DateTime RecuperarDataFinalPeriodoAtual(int idFilial, SqlTransaction trans)Recupera a data final do período de cálculo atual para uma filial dentro de uma transação.
GetIdfPeriodoPorDatapublic static int GetIdfPeriodoPorData(int idFilial, DateTime dtaReferencia)Retorna o ID do período de cálculo para uma data de referência e filial.
GetIdfPeriodoPorDatapublic static int GetIdfPeriodoPorData(int idFilial, SqlTransaction trans, DateTime dtaReferencia)Retorna o ID do período de cálculo para uma data de referência e filial dentro de uma transação.
ListarAnospublic static IDataReader ListarAnos()Lista todos os anos cadastrados em TAB_Periodo_Calculo.
GetByMesAnopublic static PeriodoCalculo GetByMesAno(string mesAno)Retorna um objeto PeriodoCalculo com base na descrição “mês/ano”.
CarregarPeriodoCalculoFilialAbertopublic static bool CarregarPeriodoCalculoFilialAberto(int idFilial, out PeriodoCalculoFilial objPeriodoCalculoFilial, SqlTransaction trans)Carrega o PeriodoCalculoFilial aberto para uma filial dentro de uma transação.
CarregarPeriodoCalculoFilialAbertopublic static bool CarregarPeriodoCalculoFilialAberto(int idFilial, out PeriodoCalculoFilial objPeriodoCalculoFilial)Carrega o PeriodoCalculoFilial aberto para uma filial.
CarregarPeriodoCalculoFilialAbertopublic static bool CarregarPeriodoCalculoFilialAberto(int idFilial, int idPeriodoCalculo, out PeriodoCalculoFilial objPeriodoCalculoFilial)Carrega o PeriodoCalculoFilial aberto para uma filial e um período de cálculo específicos.
ListarQuantidadeFiliaisAbertopublic static IDataReader ListarQuantidadeFiliaisAberto(int idEmpresa)Lista a quantidade de filiais abertas para um período de cálculo para um usuário.
ListarFiliaisAbertopublic static IDataReader ListarFiliaisAberto(string nomeColuna, string direcaoOrdenacao, int idEmpresa, int? idfPeriodoCalculo)Lista o nome das filiais abertas para um período de cálculo para um usuário.
ListarFiliaisAbertopublic static IDataReader ListarFiliaisAberto(string nomeColuna, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros, int idEmpresa, int? idfPeriodoCalculo, string pDesPesquisa)Lista o nome das filiais abertas para um período de cálculo para um usuário, com paginação e pesquisa.
VerificarPeriodoCalculoFilialpublic static bool VerificarPeriodoCalculoFilial(int pIdFilial, int pIdPeriodoCalculo, bool pFlagFechado)Verifica a existência de um registro de PeriodoCalculoFilial com base na filial, período de cálculo e status de fechamento.

Detalhamento de Métodos Importantes

SetParameters(List<SqlParameter> parms)

  • Lógica: Preenche a lista de parâmetros SQL com os valores da instância atual de PeriodoCalculoFilial.
  • Atribui _idPeriodoCalculoFilial, _periodoCalculo.IdPeriodoCalculo, _filial.IdFilial, _flagFechado.
  • Se _dataFechamento tiver valor, atribui-o ao parâmetro, caso contrário, DBNull.Value.
  • Se a instância não for persistida (_persisted é false), define _idPeriodoCalculoFilial como ParameterDirection.Output.
  • Se a instância já for persistida, _idPeriodoCalculoFilial é ParameterDirection.Input.
  • O _usuarioGerador é obtido da sessão HTTP ou definido como 1.
  • _dataAlteracao é definido como DateTime.Now.
  • Stored Procedures chamadas: Nenhuma diretamente.
  • Validações: Nenhuma explícita.

ListarPeriodoAberto(int idFilial)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial.
  2. Atribui o idFilial ao parâmetro.
  3. Executa a query SPGETPERIODOATUALFILIAL2 usando DataAccessLayer.ExecuteReader e retorna o IDataReader.
  • Stored Procedures chamadas: SPGETPERIODOATUALFILIAL2 (SELECT * FROM TAB_Periodo_Calculo PC INNER JOIN TAB_Periodo_Calculo_Filial PCF ON PC.Idf_Periodo_Calculo = PCF.Idf_Periodo_Calculo WHERE PCF.Idf_Filial = @Idf_Filial AND PCF.Flg_Fechado = 0)
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarPeriodoAberto(int idFilial, SqlTransaction trans)

  • Lógica: Similar a ListarPeriodoAberto(int), mas executa a consulta dentro de uma transação existente.
  • Stored Procedures chamadas: SPGETPERIODOATUALFILIAL2
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

GetIdfPeriodoAberto(int idFilial)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial.
  2. Atribui o idFilial ao parâmetro.
  3. Executa a query SPGETIDFPERIODOATUAL usando DataAccessLayer.ExecuteScalar e retorna o resultado convertido para int.
  • Stored Procedures chamadas: SPGETIDFPERIODOATUAL (SELECT PCF.Idf_Periodo_Calculo FROM TAB_Periodo_Calculo_Filial PCF WHERE PCF.Idf_Filial = @Idf_Filial AND PCF.Flg_Fechado = 0)
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

GetIdfPeriodoAberto(int idFilial, SqlTransaction trans)

  • Lógica: Similar a GetIdfPeriodoAberto(int), mas executa a consulta dentro de uma transação existente.
  • Stored Procedures chamadas: SPGETIDFPERIODOATUAL
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarPeriodoAberto(int idFilial, out PeriodoCalculo objPerCalculo, SqlTransaction trans)

  • Lógica:
  1. Tenta obter o ID do período de cálculo aberto para a filial usando GetIdfPeriodoAberto(idFilial, trans).
  2. Se conseguir o ID, carrega o objeto PeriodoCalculo correspondente usando PeriodoCalculo.LoadObject(idfPeriodo, trans).
  3. Se ocorrer qualquer exceção, define objPerCalculo como null e retorna false.
  4. Retorna true se o objeto for carregado com sucesso.
  • Stored Procedures chamadas: Nenhuma diretamente (chama GetIdfPeriodoAberto e PeriodoCalculo.LoadObject).
  • Validações: Nenhuma explícita.
  • Exceções: Captura exceções e retorna false.

CarregarPeriodoAberto(int idFilial, out PeriodoCalculo objPerCalculo)

  • Lógica: Similar a CarregarPeriodoAberto(int, out PeriodoCalculo, SqlTransaction), mas sem transação explícita.
  • Stored Procedures chamadas: Nenhuma diretamente (chama GetIdfPeriodoAberto e PeriodoCalculo.LoadObject).
  • Validações: Nenhuma explícita.
  • Exceções: Captura exceções e retorna false.

CarregarPeriodoCalculoFilialAbertoPorFilial(int pIdfFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial.
  2. Atribui o pIdfFilial ao parâmetro.
  3. Executa a query SELPERIODOCALCULOFILIALABERTOPORFILIAL usando DataAccessLayer.ExecuteReader.
  4. Tenta preencher o objeto pObjPeriodoCalculoFilial com o resultado.
  5. Se preenchido, completa o objeto PeriodoCalculo associado.
  6. Retorna true se o objeto for carregado, false caso contrário.
  • Stored Procedures chamadas: SELPERIODOCALCULOFILIALABERTOPORFILIAL (SELECT TOP 1 PCF.* FROM TAB_Periodo_Calculo_Filial PCF WITH (NOLOCK) WHERE PCF.Flg_Fechado = 0 AND PCF.Idf_Filial = @Idf_Filial)
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarPeriodoCalculoFilialAbertoPorContrato(int pIdfContrato, int pIdfFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Contrato e @Idf_Filial.
  2. Atribui os valores.
  3. Executa a query SELPERIODOCALCULOFILIALABERTOPORCONTRATO usando DataAccessLayer.ExecuteReader.
  4. Tenta preencher o objeto pObjPeriodoCalculoFilial com o resultado.
  5. Se preenchido, completa o objeto PeriodoCalculo associado.
  6. Retorna true se o objeto for carregado, false caso contrário.
  • Stored Procedures chamadas: SELPERIODOCALCULOFILIALABERTOPORCONTRATO (SELECT TOP 1 PCF.Idf_Periodo_Calculo_Filial, PCF.Idf_Periodo_Calculo, PCF.Idf_Filial, PCF.Flg_Fechado, PCF.Idf_Usuario_Gerador, PCF.Dta_Alteracao, PCF.Dta_Fechamento FROM TAB_Periodo_Calculo_Filial PCF WITH (NOLOCK) INNER JOIN Tab_Filial F WITH (NOLOCK) ON F.Idf_Filial = PCF.Idf_Filial INNER JOIN TAB_Contrato co WITH (NOLOCK) ON F.Idf_Filial = COALESCE(co.Idf_Filial_Gestora, @Idf_Filial) WHERE co.Idf_Contrato = @Idf_Contrato AND PCF.Flg_Fechado = 0)
  • @Idf_Contrato: ID do contrato.
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarPeriodoCalculoFilialAbertoPorCentroResultado(int pIdfCentroResultado, int pIdfFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Centro_Resultado e @Idf_Filial.
  2. Atribui os valores.
  3. Executa a query SELPERIODOCALCULOFILIALABERTOPORCENTRORESULTADO usando DataAccessLayer.ExecuteReader.
  4. Tenta preencher o objeto pObjPeriodoCalculoFilial com o resultado.
  5. Se preenchido, completa o objeto PeriodoCalculo associado.
  6. Retorna true se o objeto for carregado, false caso contrário.
  • Stored Procedures chamadas: SELPERIODOCALCULOFILIALABERTOPORCENTRORESULTADO (DROP TABLE IF EXISTS #Tab_Filial SELECT * INTO #Tab_Filial FROM TAB_Filial WHERE Idf_Filial = @Idf_Filial SELECT TOP 1 PCF.Idf_Periodo_Calculo_Filial, PCF.Idf_Periodo_Calculo, PCF.Idf_Filial, PCF.Flg_Fechado, PCF.Idf_Usuario_Gerador, PCF.Dta_Alteracao, PCF.Dta_Fechamento FROM TAB_Periodo_Calculo_Filial PCF WITH (NOLOCK) INNER JOIN #Tab_Filial F WITH (NOLOCK) ON F.Idf_Filial = PCF.Idf_Filial INNER JOIN TAB_Empresa emp WITH (NOLOCK) ON emp.Idf_Empresa = F.Idf_Empresa INNER JOIN TAB_Centro_Resultado cr WITH (NOLOCK) on F.Idf_Filial = cr.Idf_Filial WHERE PCF.Flg_Fechado = 0 AND cr.Idf_Centro_Resultado = @Idf_Centro_Resultado)
  • @Idf_Centro_Resultado: ID do centro de resultado.
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarUltimoPeriodoFechadoPorFilial(int pIdFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)

  • Lógica: Encapsula a chamada transacional para a versão mais completa do método.
  1. Abre uma nova conexão SQL e inicia uma transação.
  2. Chama CarregarUltimoPeriodoFechadoPorFilial(trans, pIdFilial, out pObjPeriodoCalculoFilial).
  3. Comita a transação se bem-sucedido, faz rollback caso contrário.
  4. Retorna o resultado.
  • Stored Procedures chamadas: Nenhuma diretamente (chama a versão transacional do próprio método).
  • Validações: Nenhuma explícita.
  • Exceções: Propaga exceções da versão transacional.

CarregarUltimoPeriodoFechadoPorFilial(SqlTransaction trans, int pIdFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial.
  2. Atribui o pIdFilial ao parâmetro.
  3. Executa a query SELULTIMOPERIODOFECHADOPORFILIAL usando DataAccessLayer.ExecuteReader com a transação.
  4. Tenta preencher o objeto pObjPeriodoCalculoFilial com o resultado.
  5. Se preenchido, completa o objeto PeriodoCalculo associado.
  6. Retorna true se o objeto for carregado, false caso contrário.
  • Stored Procedures chamadas: SELULTIMOPERIODOFECHADOPORFILIAL (SELECT TOP 1 PCF.* FROM TAB_Periodo_Calculo_Filial PCF WITH (NOLOCK) INNER JOIN TAB_Periodo_Calculo PC WITH (NOLOCK) ON PCF.Idf_Periodo_Calculo = PC.Idf_Periodo_Calculo WHERE PCF.Flg_Fechado = 1 AND PCF.Idf_Filial = @Idf_Filial ORDER BY PC.Dta_Inicio DESC)
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarPeriodoAtual(int idFilial)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial.
  2. Atribui o idFilial ao parâmetro.
  3. Executa a query SPGETPERIODOATUAL usando DataAccessLayer.ExecuteScalar e retorna o resultado convertido para string.
  • Stored Procedures chamadas: SPGETPERIODOATUAL (SELECT SUBSTRING(CONVERT(VARCHAR,Dta_Inicio, 103),4, LEN(CONVERT(VARCHAR,Dta_Inicio, 103))-1) AS periodoAtual FROM TAB_Periodo_Calculo PC INNER JOIN TAB_Periodo_Calculo_Filial PCF ON PC.Idf_Periodo_Calculo = PCF.Idf_Periodo_Calculo WHERE PCF.Idf_Filial = @Idf_Filial AND PCF.Flg_Fechado = 0)
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperaPeriodoFechadoFilial(List<int> lstIdEmpregado, bool pUtilizaCentroResultado)

  • Lógica:
  1. Cria um DataTable temporário na memória e o preenche com os lstIdEmpregado.
  2. Abre uma conexão SQL e cria uma tabela temporária #TempPeriodoFechadoFilial no banco de dados.
  3. Realiza um SqlBulkCopy para inserir os IDs dos empregados na tabela temporária do banco.
  4. Constrói uma query SQL dinâmica (SPBUSCAPERIODOFILIALABERTACENTRORESULTADO ou SPBUSCAPERIODOFILIALABERTACONTRATO) com base em pUtilizaCentroResultado.
  5. Executa a query, que busca os IDs dos períodos de cálculo abertos para os empregados na tabela temporária.
  6. Itera sobre o IDataReader, adicionando os IDs dos períodos de cálculo a uma lista e a retorna.
  7. Em caso de erro, fecha a conexão e relança a exceção.
  • Stored Procedures chamadas:
  • Query dinâmica: CREATE TABLE #TempPeriodoFechadoFilial (Idf_Empregado INT)
  • SPBUSCAPERIODOFILIALABERTACENTRORESULTADO ou SPBUSCAPERIODOFILIALABERTACONTRATO
  • SPBUSCAPERIODOFILIALABERTACONTRATO: SELECT Pc.Idf_Periodo_Calculo FROM TAB_Periodo_Calculo Pc INNER JOIN TAB_Periodo_Calculo_Filial PCF ON Pc.Idf_Periodo_Calculo = PCF.Idf_Periodo_Calculo INNER JOIN TAB_Filial FIL ON PCF.Idf_Filial = FIL.Idf_Filial INNER JOIN TAB_Contrato CON ON COALESCE(CON.Idf_Filial_Gestora, FIL.Idf_Filial) = FIL.Idf_Filial INNER JOIN TAB_Empregado E ON CON.Idf_Contrato = E.Idf_Contrato INNER JOIN #TempPeriodoFechadoFilial TMP ON E.Idf_Empregado = TMP.Idf_Empregado WHERE PCF.Flg_Fechado = 0 GROUP BY Pc.Idf_Periodo_Calculo
  • SPBUSCAPERIODOFILIALABERTACENTRORESULTADO: SELECT Pc.Idf_Periodo_Calculo FROM TAB_Periodo_Calculo PC INNER JOIN TAB_Periodo_Calculo_Filial PCF ON PC.Idf_Periodo_Calculo = PCF.Idf_Periodo_Calculo INNER JOIN TAB_Centro_Resultado CR ON PCF.Idf_Filial = CR.Idf_Filial INNER JOIN TAB_Empregado EMP ON CR.Idf_Centro_Resultado = EMP.Idf_Centro_Resultado INNER JOIN #TempPeriodoFechadoFilial TMP ON EMP.Idf_Empregado = TMP.Idf_Empregado WHERE PCF.Flg_Fechado = 0 GROUP BY Pc.Idf_Periodo_Calculo
  • Validações: Nenhuma explícita.
  • Exceções: SqlException em caso de erro no banco de dados.

RecuperaDataMaximaPeriodoFechadoEmpregadoFilial(List<int> lstIdEmpregado, bool pUtilizaCentroResultado)

  • Lógica: Similar a RecuperaPeriodoFechadoFilial, mas retorna a data máxima de início do período de cálculo.
  1. Cria um DataTable temporário na memória e o preenche com os lstIdEmpregado.
  2. Abre uma conexão SQL e cria uma tabela temporária #TempPeriodoFechadoFilial no banco de dados.
  3. Realiza um SqlBulkCopy para inserir os IDs dos empregados na tabela temporária do banco.
  4. Constrói uma query SQL dinâmica (SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCR ou SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCONTRATO) com base em pUtilizaCentroResultado.
  5. Executa a query, que busca a data máxima de início do período de cálculo para os empregados.
  6. Retorna a primeira data encontrada.
  7. Em caso de erro, fecha a conexão e relança a exceção.
  • Stored Procedures chamadas:
  • Query dinâmica: CREATE TABLE #TempPeriodoFechadoFilial (Idf_Empregado INT)
  • SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCR ou SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCONTRATO
  • SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCONTRATO: SELECT MAX(Pc.Dta_Inicio) FROM TAB_Periodo_Calculo Pc INNER JOIN TAB_Periodo_Calculo_Filial PCF ON Pc.Idf_Periodo_Calculo = PCF.Idf_Periodo_Calculo INNER JOIN TAB_Filial FIL ON PCF.Idf_Filial = FIL.Idf_Filial INNER JOIN TAB_Contrato CON ON COALESCE(CON.Idf_Filial_Gestora, FIL.Idf_Filial) = FIL.Idf_Filial INNER JOIN TAB_Empregado E ON CON.Idf_Contrato = E.Idf_Contrato INNER JOIN #TempPeriodoFechadoFilial TMP ON E.Idf_Empregado = TMP.Idf_Empregado WHERE PCF.Flg_Fechado = 0 GROUP BY Pc.Idf_Periodo_Calculo
  • SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCR: SELECT MAX(Pc.Dta_Inicio) FROM TAB_Periodo_Calculo PC INNER JOIN TAB_Periodo_Calculo_Filial PCF ON PC.Idf_Periodo_Calculo = PCF.Idf_Periodo_Calculo INNER JOIN TAB_Centro_Resultado CR ON PCF.Idf_Filial = CR.Idf_Filial INNER JOIN TAB_Empregado EMP ON CR.Idf_Centro_Resultado = EMP.Idf_Centro_Resultado INNER JOIN #TempPeriodoFechadoFilial TMP ON EMP.Idf_Empregado = TMP.Idf_Empregado WHERE PCF.Flg_Fechado = 0 GROUP BY Pc.Idf_Periodo_Calculo
  • Validações: Nenhuma explícita.
  • Exceções: SqlException em caso de erro no banco de dados.

PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, List<SqlParameter> cmdParms)

  • Lógica: Método auxiliar para configurar um SqlCommand.
  1. Abre a conexão se não estiver aberta.
  2. Atribui a conexão e o texto do comando.
  3. Atribui a transação se fornecida.
  4. Atribui o tipo de comando.
  5. Se houver parâmetros, adiciona-os ao comando (atualizando se já existirem).
  • Stored Procedures chamadas: Nenhuma.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarDataInicialPeriodoAtual(int idFilial, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial.
  2. Atribui o idFilial ao parâmetro.
  3. Executa a query SPGETPERIODOATUALDTINICIALFILIAL usando DataAccessLayer.ExecuteScalar com a transação e retorna o resultado convertido para DateTime.
  • Stored Procedures chamadas: SPGETPERIODOATUALDTINICIALFILIAL (SELECT PC.Dta_Inicio FROM TAB_Periodo_Calculo PC INNER JOIN TAB_Periodo_Calculo_Filial PCF ON PC.Idf_Periodo_Calculo = PCF.Idf_Periodo_Calculo WHERE PCF.Idf_Filial = @Idf_Filial AND PCF.Flg_Fechado = 0)
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarDataInicialPeriodoAtual(int idFilial)

  • Lógica: Similar a RecuperarDataInicialPeriodoAtual(int, SqlTransaction), mas sem transação explícita.
  • Stored Procedures chamadas: SPGETPERIODOATUALDTINICIALFILIAL
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarDataFinalPeriodoAtual(int idFilial)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial.
  2. Atribui o idFilial ao parâmetro.
  3. Executa a query SPGETPERIODOATUALDTFINALFILIAL usando DataAccessLayer.ExecuteScalar e retorna o resultado convertido para DateTime.
  • Stored Procedures chamadas: SPGETPERIODOATUALDTFINALFILIAL (SELECT PC.Dta_Fim FROM TAB_Periodo_Calculo PC INNER JOIN TAB_Periodo_Calculo_Filial PCF ON PC.Idf_Periodo_Calculo = PCF.Idf_Periodo_Calculo WHERE PCF.Idf_Filial = @Idf_Filial AND PCF.Flg_Fechado = 0)
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarDataFinalPeriodoAtual(int idFilial, SqlTransaction trans)

  • Lógica: Similar a RecuperarDataFinalPeriodoAtual(int), mas executa a consulta dentro de uma transação existente.
  • Stored Procedures chamadas: SPGETPERIODOATUALDTFINALFILIAL
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

GetIdfPeriodoPorData(int idFilial, DateTime dtaReferencia)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial e @dta_Referencia.
  2. Atribui os valores.
  3. Executa a query SPGETPERIODOPORDATAFILIAL usando DataAccessLayer.ExecuteScalar e retorna o resultado convertido para int.
  • Stored Procedures chamadas: SPGETPERIODOPORDATAFILIAL (SELECT pf.Idf_Periodo_Calculo FROM TAB_Periodo_Calculo_Filial pf INNER JOIN TAB_Periodo_Calculo pc ON pc.Idf_Periodo_Calculo = pf.Idf_Periodo_Calculo WHERE Idf_Filial = @Idf_Filial AND (@dta_Referencia BETWEEN pc.Dta_Inicio AND pc.Dta_Fim))
  • @Idf_Filial: ID da filial.
  • @dta_Referencia: Data de referência.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

GetIdfPeriodoPorData(int idFilial, SqlTransaction trans, DateTime dtaReferencia)

  • Lógica: Similar a GetIdfPeriodoPorData(int, DateTime), mas executa a consulta dentro de uma transação existente.
  • Stored Procedures chamadas: SPGETPERIODOPORDATAFILIAL
  • @Idf_Filial: ID da filial.
  • @dta_Referencia: Data de referência.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarAnos()

  • Lógica:
  1. Executa a query SPGETANOS usando DataAccessLayer.ExecuteReader e retorna o IDataReader.
  • Stored Procedures chamadas: SPGETANOS (Select DISTINCT Substring(Des_Periodo_Calculo, 4, 4) as Ano from TAB_Periodo_Calculo)
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

GetByMesAno(string mesAno)

  • Lógica:
  1. Cria uma lista de parâmetros para @mesAno.
  2. Atribui o mesAno ao parâmetro.
  3. Executa a query SPGETBYMESANO usando DataAccessLayer.ExecuteReader.
  4. Se houver um resultado, carrega o objeto PeriodoCalculo correspondente usando PeriodoCalculo.LoadObject.
  5. Retorna o objeto PeriodoCalculo ou null.
  • Stored Procedures chamadas: SPGETBYMESANO (Select * From TAB_Periodo_Calculo Where Des_Periodo_Calculo = @mesAno)
  • @mesAno: Descrição do mês/ano.
  • SPSELECTID (via PeriodoCalculo.LoadObject)
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarPeriodoCalculoFilialAberto(int idFilial, out PeriodoCalculoFilial objPeriodoCalculoFilial, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial.
  2. Atribui o idFilial ao parâmetro.
  3. Cria uma nova instância de PeriodoCalculoFilial.
  4. Executa a query SPGETPERIODOFILIALABERTO usando DataAccessLayer.ExecuteReader com a transação e tenta preencher o objeto objPeriodoCalculoFilial.
  5. Retorna o resultado de SetInstance.
  • Stored Procedures chamadas: SPGETPERIODOFILIALABERTO (SELECT * FROM TAB_Periodo_Calculo_Filial WHERE Flg_Fechado = 0 AND Idf_Filial = @Idf_Filial)
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarPeriodoCalculoFilialAberto(int idFilial, out PeriodoCalculoFilial objPeriodoCalculoFilial)

  • Lógica: Similar a CarregarPeriodoCalculoFilialAberto(int, out PeriodoCalculoFilial, SqlTransaction), mas sem transação explícita.
  • Stored Procedures chamadas: SPGETPERIODOFILIALABERTO
  • @Idf_Filial: ID da filial.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarPeriodoCalculoFilialAberto(int idFilial, int idPeriodoCalculo, out PeriodoCalculoFilial objPeriodoCalculoFilial)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial e @Idf_Periodo_Calculo.
  2. Atribui os valores.
  3. Constrói uma query SQL para selecionar o PeriodoCalculoFilial aberto para a filial e período específicos.
  4. Cria uma nova instância de PeriodoCalculoFilial.
  5. Executa a query e tenta preencher o objeto.
  6. Retorna o resultado de SetInstance.
  • Stored Procedures chamadas: Query dinâmica (SELECT * FROM TAB_Periodo_Calculo_Filial WHERE Flg_Fechado = 0 AND Idf_Filial = @Idf_Filial AND Idf_Periodo_Calculo = @Idf_Periodo_Calculo)
  • @Idf_Filial: ID da filial.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarQuantidadeFiliaisAberto(int idEmpresa)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empresa.
  2. Atribui o idEmpresa ao parâmetro.
  3. Executa a query SPSELECTPERIODOFILIALABERTOUSUARIOQUANT usando DataAccessLayer.ExecuteReader e retorna o IDataReader.
  • Stored Procedures chamadas: SPSELECTPERIODOFILIALABERTOUSUARIOQUANT (SELECT SUM(num) as NumFiliais, Des_Periodo_Calculo, Idf_Periodo_Calculo FROM (...) P GROUP BY Dta_Inicio, Des_Periodo_Calculo, Idf_Periodo_Calculo ORDER BY Dta_Inicio)
  • @Idf_Empresa: ID da empresa.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarFiliaisAberto(string nomeColuna, string direcaoOrdenacao, int idEmpresa, int? idfPeriodoCalculo)

  • Lógica:
  1. Cria uma lista de parâmetros para @SortExpression, @Idf_Empresa, @Idf_Periodo_Calculo.
  2. Atribui os valores, tratando idfPeriodoCalculo como DBNull.Value se nulo.
  3. Constrói uma query SQL dinâmica (SPSELECTPAG) que seleciona informações de filiais abertas, com ordenação e filtro por empresa e período.
  4. Executa a query usando DataAccessLayer.ExecuteReader e retorna o IDataReader.
  • Stored Procedures chamadas: Query dinâmica (DECLARE @iSelect VARCHAR(8000) ... EXECUTE ( @iSelectPag ))
  • @SortExpression: Coluna e direção de ordenação.
  • @Idf_Empresa: ID da empresa.
  • @Idf_Periodo_Calculo: ID do período de cálculo (opcional).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarFiliaisAberto(string nomeColuna, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros, int idEmpresa, int? idfPeriodoCalculo, string pDesPesquisa)

  • Lógica:
  1. Calcula os limites inicio e fim para a paginação.
  2. Constrói a query SPSELECT (que é uma parte da query completa).
  3. Adiciona filtros de pesquisa (pDesPesquisa) se fornecido.
  4. Constrói a query de contagem (SPSELECTCOUNT) e a query paginada (SPSELECTPAG).
  5. Executa a query de contagem para obter totalRegistros.
  6. Executa a query paginada e retorna o IDataReader.
  • Stored Procedures chamadas:
  • SPSELECT (parte da query)
  • SPSELECTCOUNT (query de contagem)
  • SPSELECTPAG (query paginada)
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

VerificarPeriodoCalculoFilial(int pIdFilial, int pIdPeriodoCalculo, bool pFlagFechado)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Filial, @Idf_Periodo_Calculo, @Flg_Fechado.
  2. Atribui os valores.
  3. Constrói uma query SQL para contar registros em TAB_Periodo_Calculo_Filial com os filtros fornecidos.
  4. Executa a query usando DataAccessLayer.ExecuteScalar.
  5. Retorna true se o resultado for maior que 0 (o registro existe), false caso contrário.
  • Stored Procedures chamadas: Query dinâmica (SELECT COUNT(*) FROM TAB_Periodo_Calculo_Filial WHERE Idf_Filial = @Idf_Filial AND Idf_Periodo_Calculo = @Idf_Periodo_Calculo AND Flg_Fechado = @Flg_Fechado)
  • @Idf_Filial: ID da filial.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • @Flg_Fechado: Flag de fechado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

Stored Procedures

NomeParâmetrosPropósito
SPINSERT@Idf_Periodo_Calculo_Filial (OUTPUT), @Idf_Periodo_Calculo, @Idf_Filial, @Flg_Fechado, @Idf_Usuario_Gerador, @Dta_Alteracao, @Dta_FechamentoInsere um novo registro na tabela TAB_Periodo_Calculo_Filial e retorna o ID gerado.
SPUPDATE@Idf_Periodo_Calculo, @Idf_Filial, @Flg_Fechado, @Idf_Usuario_Gerador, @Dta_Alteracao, @Dta_Fechamento, @Idf_Periodo_Calculo_FilialAtualiza um registro existente na tabela TAB_Periodo_Calculo_Filial.
SPDELETE@Idf_Usuario_Gerador, @Idf_Periodo_Calculo_FilialAtualiza o Idf_Usuario_Gerador e depois exclui um registro da tabela TAB_Periodo_Calculo_Filial.
SPSELECTID@Idf_Periodo_Calculo_FilialSeleciona um registro da tabela TAB_Periodo_Calculo_Filial pelo seu ID.
SELULTIMOPERIODOFECHADOPORFILIAL@Idf_FilialSeleciona o último PeriodoCalculoFilial fechado para uma filial.
SELPERIODOCALCULOFILIALABERTOPORFILIAL@Idf_FilialSeleciona o PeriodoCalculoFilial aberto para uma filial.
SELPERIODOCALCULOFILIALABERTOPORCONTRATO@Idf_Contrato, @Idf_FilialSeleciona o PeriodoCalculoFilial aberto para um contrato e filial.
SELPERIODOCALCULOFILIALABERTOPORCENTRORESULTADO@Idf_Centro_Resultado, @Idf_FilialSeleciona o PeriodoCalculoFilial aberto para um centro de resultado e filial.
SPGETPERIODOATUAL@Idf_FilialRetorna a descrição do período de cálculo atual para uma filial.
SPGETPERIODOATUALFILIAL2@Idf_FilialSeleciona o PeriodoCalculo e PeriodoCalculoFilial abertos para uma filial.
SPBUSCAPERIODOFILIALABERTACONTRATON/A (usa #TempPeriodoFechadoFilial)Busca IDs de períodos de cálculo abertos para empregados de contratos.
SPBUSCAPERIODOFILIALABERTACENTRORESULTADON/A (usa #TempPeriodoFechadoFilial)Busca IDs de períodos de cálculo abertos para empregados de centros de resultado.
SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCONTRATON/A (usa #TempPeriodoFechadoFilial)Recupera a data máxima de início do período de cálculo fechado para empregados de contratos.
SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCRN/A (usa #TempPeriodoFechadoFilial)Recupera a data máxima de início do período de cálculo fechado para empregados de centros de resultado.
SPGETIDFPERIODOATUAL@Idf_FilialRetorna o Idf_Periodo_Calculo do período aberto para uma filial.
SPGETPERIODOATUALDTINICIALFILIAL@Idf_FilialRetorna a data de início do período de cálculo atual para uma filial.
SPGETPERIODOATUALDTFINALFILIAL@Idf_FilialRetorna a data de fim do período de cálculo atual para uma filial.
SPGETPERIODOPORDATAFILIAL@Idf_Filial, @dta_ReferenciaRetorna o Idf_Periodo_Calculo para uma data de referência e filial.
SPGETANOSN/ALista os anos distintos da tabela TAB_Periodo_Calculo.
SPGETBYMESANO@mesAnoSeleciona um PeriodoCalculo pela sua descrição de mês/ano.
SPGETPERIODOFILIALABERTO@Idf_FilialSeleciona o PeriodoCalculoFilial aberto para uma filial.
SPSELECTPERIODOFILIALABERTOUSUARIOQUANT@Idf_EmpresaLista a quantidade de filiais abertas para um período de cálculo para um usuário.
SPSELECTPAG (dinâmica)@SortExpression, @Idf_Empresa, @Idf_Periodo_CalculoQuery dinâmica para listar filiais abertas com paginação.
Query dinâmica em VerificarPeriodoCalculoFilial@Idf_Filial, @Idf_Periodo_Calculo, @Flg_FechadoConta registros em TAB_Periodo_Calculo_Filial com base nos filtros.

BeneficioFornecimento

Arquivo: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Beneficios\BeneficioFornecimento_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Beneficios\BeneficioFornecimento_P2.cs

Métodos

MétodoAssinaturaPropósito
GetParametersprivate List<SqlParameter> GetParameters()Prepara uma lista de parâmetros SQL para operações de INSERT e UPDATE.
Insertprivate void Insert()Insere uma nova instância de BeneficioFornecimento no banco de dados.
Insertprivate void Insert(SqlTransaction trans)Insere uma nova instância de BeneficioFornecimento no banco de dados dentro de uma transação existente.
Updateprivate void Update()Atualiza uma instância existente de BeneficioFornecimento no banco de dados.
Updateprivate void Update(SqlTransaction trans)Atualiza uma instância existente de BeneficioFornecimento no banco de dados dentro de uma transação existente.
Savepublic void Save()Salva a instância atual de BeneficioFornecimento no banco de dados (insere se for nova, atualiza se já existir).
Savepublic void Save(SqlTransaction trans)Salva a instância atual de BeneficioFornecimento no banco de dados dentro de uma transação (insere se for nova, atualiza se já existir).
Deletepublic static void Delete(int idBeneficioFornecimento)Exclui um registro de BeneficioFornecimento do banco de dados pelo seu ID.
LoadDataReaderprivate static IDataReader LoadDataReader(int idBeneficioFornecimento)Retorna um IDataReader com as colunas de um único registro de BeneficioFornecimento.
LoadDataReaderprivate static IDataReader LoadDataReader(int idBeneficioFornecimento, SqlTransaction trans)Retorna um IDataReader com as colunas de um único registro de BeneficioFornecimento dentro de uma transação.
LoadDataReaderpublic static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Retorna um IDataReader com uma consulta paginada de registros de BeneficioFornecimento.
LoadObjectpublic static BeneficioFornecimento LoadObject(int idBeneficioFornecimento)Retorna uma instância de BeneficioFornecimento preenchida a partir do banco de dados.
LoadObjectpublic static BeneficioFornecimento LoadObject(int idBeneficioFornecimento, SqlTransaction trans)Retorna uma instância de BeneficioFornecimento preenchida a partir do banco de dados dentro de uma transação.
CompleteObjectpublic bool CompleteObject()Completa os atributos da instância atual de BeneficioFornecimento a partir do banco de dados.
CompleteObjectpublic bool CompleteObject(SqlTransaction trans)Completa os atributos da instância atual de BeneficioFornecimento a partir do banco de dados dentro de uma transação.
SetInstanceprivate static bool SetInstance(IDataReader dr, BeneficioFornecimento objBeneficioFornecimento)Método auxiliar para preencher uma instância de BeneficioFornecimento a partir de um IDataReader.
SetParametersprivate void SetParameters(List<SqlParameter> parms)Preenche uma lista de parâmetros SQL com os valores da instância atual de BeneficioFornecimento.
VerificaBeneficioFuncPeriodoCalculopublic static bool VerificaBeneficioFuncPeriodoCalculo(int idFuncionario, int idPeriodoCalculo)Verifica se um funcionário possui benefícios pendentes para um dado período de cálculo.
Existepublic static bool Existe(Empregado objEmpregado, Beneficio objBeneficio, int ano, int mes)Verifica se já existe um BeneficioFornecimento para um empregado, benefício, ano e mês específicos.
CarregarPorEmpregadoBeneficioAnoMespublic static bool CarregarPorEmpregadoBeneficioAnoMes(Empregado objEmpregado, Beneficio objBeneficio, int ano, int mes, SqlTransaction trans, out BeneficioFornecimento objBeneficioFornecimento)Carrega um BeneficioFornecimento para um empregado, benefício, ano e mês específicos dentro de uma transação.
ListarPorEmpregadoBeneficioAnoMesprivate static IDataReader ListarPorEmpregadoBeneficioAnoMes(Empregado objEmpregado, Beneficio objBeneficio, int ano, int mes, SqlTransaction trans)Retorna um IDataReader com BeneficioFornecimento para um empregado, benefício, ano e mês específicos dentro de uma transação.
Deletepublic static bool Delete(Empregado objEmpregado, Beneficio objBeneficio, int ano, int mes, SqlTransaction trans)Exclui um BeneficioFornecimento para um empregado, benefício, ano e mês específicos dentro de uma transação. (Obsoleto)
Deletepublic static bool Delete(Empregado objEmpregado, int ano, int mes, SqlTransaction trans)Exclui todos os BeneficioFornecimento de um empregado para um dado ano e mês dentro de uma transação.
ListByEmpregadopublic static IDataReader ListByEmpregado(int idEmpregado, int mes, int ano)Lista todos os BeneficioFornecimento para um empregado, mês e ano.
ListarBeneficiospublic static SqlDataReader ListarBeneficios(int idEmpresa, int? IdFilial, int? IdContrato, int? IdDepartamento, int? IdFuncao, int? IdEmpregado, int numMes, int numAno, int? tipoBeneficio, int pago, int IdUsuario, int? IdCentroResultado)Lista benefícios com diversos filtros para uma empresa. (Obsoleto)
ListarBeneficiosDTpublic static DataTable ListarBeneficiosDT(int idEmpresa, int? IdFilial, int? IdContrato, int? IdDepartamento, int? IdFuncao, int? IdEmpregado, int numMes, int numAno, int? tipoBeneficio, int pago, int IdUsuario, int? IdCentroResultado, bool UtilizaCR)Lista benefícios em um DataTable com diversos filtros para uma empresa, considerando a estrutura gerencial. (Obsoleto)
ListarEmpregadosFiltroBeneficiopublic static DataTable ListarEmpregadosFiltroBeneficio(int idEmpresa, int idFilial, int idContrato, int idDepartamento, int idFuncaoExclusiva, int idEmpregado, int numMes, int numAno, int tipoBeneficio)Lista empregados com benefícios pendentes, com diversos filtros.
DeletePorEmpregadopublic static void DeletePorEmpregado(int idEmpregado, SqlTransaction trans)Deleta todos os BeneficioFornecimento de um empregado dentro de uma transação.
RecuperarBeneficiosFornecimentopublic static List<BeneficioFornecimento> RecuperarBeneficiosFornecimento(SqlTransaction trans, DateTime dtaCalculo, int idEmpregado)Recupera uma lista de BeneficioFornecimento para um empregado em uma data de cálculo.
RecuperarBeneficiosFornecimentoDescontoBeneficiopublic static List<BeneficioFornecimento> RecuperarBeneficiosFornecimentoDescontoBeneficio(Empregado objEmpregado, TipoBeneficio objTipoBeneficio, PeriodoCalculo objPeriodoCalculo, bool mesSeguinte)Recupera BeneficioFornecimento para cálculo de desconto de benefício.
RecuperarBeneficiosFornecimentoPagospublic static List<BeneficioFornecimento> RecuperarBeneficiosFornecimentoPagos(Empregado objEmpregado, int numAno, int numMes)Recupera uma lista de BeneficioFornecimento pagos para um empregado em um dado ano e mês.
CarregarBeneFornecidoPorArquivoGeradoEmppublic static bool CarregarBeneFornecidoPorArquivoGeradoEmp(SqlTransaction trans, int idfArquivoGeradoEmpregado, out BeneficioFornecimento objBeneFornecimento)Carrega um BeneficioFornecimento pelo ID do arquivo gerado do empregado dentro de uma transação.
CarregarBeneFornecidoPorArquivoGeradoEmppublic static bool CarregarBeneFornecidoPorArquivoGeradoEmp(SqlTransaction trans, int idfArquivoGeradoEmpregado, out List<BeneficioFornecimento> lstBeneficioFornecimento)Carrega uma lista de BeneficioFornecimento pelo ID do arquivo gerado do empregado dentro de uma transação.
ListarBeneFornecidoPorArquivoGeradoEmpprivate static IDataReader ListarBeneFornecidoPorArquivoGeradoEmp(int idfArquivoGeradoEmpregado, SqlTransaction trans)Retorna um IDataReader com BeneficioFornecimento pelo ID do arquivo gerado do empregado dentro de uma transação.
LoadDadospublic static IDataReader LoadDados(int idfBeneficioFornecimento)Retorna dados diversos (departamento, contrato, tipo de agrupamento) associados a um BeneficioFornecimento.
FecharBeneficiosZeradospublic static int FecharBeneficiosZerados(int? idfEmpregado, int? idfFilial, int idfPeriodoCalculo, int? idfUsuario, SqlTransaction trans)Seta a data de pagamento para BeneficioFornecimento com quantidade zerada em um período de cálculo.
DeleteBeneficioFornecimentoEmpregadoInativopublic static void DeleteBeneficioFornecimentoEmpregadoInativo(Empregado objEmpregado, SqlTransaction trans)Deleta BeneficioFornecimento de empregados inativos.
ListarMesAnoPorBeneficioNaoPagosprivate static List<Pair> ListarMesAnoPorBeneficioNaoPagos(int idBeneficio)Retorna uma lista de pares (mês, ano) de benefícios não pagos para um dado benefício.
ListarMesAnoFornecimentoNaoPagosPorEmpregadoprivate static List<Pair> ListarMesAnoFornecimentoNaoPagosPorEmpregado(int idEmpregado, SqlTransaction trans)Retorna uma lista de pares (mês, ano) de fornecimentos não pagos para um dado empregado.
ListarEmpregadoPorBeneficioMesAnoNaoPagosprivate static List<Empregado> ListarEmpregadoPorBeneficioMesAnoNaoPagos(int idBeneficio, int mes, int ano)Retorna uma lista de empregados com benefícios não pagos para um dado benefício, mês e ano.
ListarMesAnoFornecimentoNaoPagosPorEmpregadoprivate static List<Empregado> ListarMesAnoFornecimentoNaoPagosPorEmpregado(int idEmpregado, int mes, int ano, SqlTransaction trans)Retorna uma lista de empregados com fornecimentos não pagos para um dado empregado, mês e ano dentro de uma transação.
ListarEmpregadoMesAnoPorBeneficioNaoPagospublic static List<Pair> ListarEmpregadoMesAnoPorBeneficioNaoPagos(int idBeneficio)Retorna uma lista de pares (lista de empregados, par mês/ano) para benefícios não pagos.
ListarFornecimentoNaoPagosMesAnoPorEmpregadopublic static List<Pair> ListarFornecimentoNaoPagosMesAnoPorEmpregado(int idEmpregado, SqlTransaction trans)Retorna uma lista de pares (lista de empregados, par mês/ano) para fornecimentos não pagos de um empregado.
CarregarBeneficiosPorEmpregadoMesAnopublic static DataTable CarregarBeneficiosPorEmpregadoMesAno(int pMesPeriodo, int pAnoPeriodo, int pIdEmpregado)Carrega um DataTable com os benefícios de um empregado para um dado mês e ano.
VerificaBeneficiosGeradosPorDatapublic static bool VerificaBeneficiosGeradosPorData(DateTime pDataCadastroBeneficio, int pIdEmpregado)Verifica se existem benefícios gerados para um empregado em uma data de cadastro específica.
ListarPorPreFaturaDadosEmpregadopublic static IDataReader ListarPorPreFaturaDadosEmpregado(int idPreFatura, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Lista benefícios fornecidos por pré-fatura com dados do empregado, com paginação.
ListarPorPreFaturaDadosEmpregadopublic static DataSet ListarPorPreFaturaDadosEmpregado(int idPreFatura)Lista benefícios fornecidos por pré-fatura com dados do empregado em um DataSet.
SalvarFilaPreFaturapublic static void SalvarFilaPreFatura(List<BeneficioFornecimento> lsBeneficioFornecimento, SqlTransaction trans)Atualiza BeneficioFornecimento removendo a referência de pré-fatura e os insere na fila de cálculo de pré-fatura.
Deletepublic static void Delete(int idBeneficioFornecimento, SqlTransaction trans)Exclui um BeneficioFornecimento pelo ID dentro de uma transação.
Deletepublic static void Delete(List<int> idBeneficioFornecimento)Exclui múltiplos BeneficioFornecimento por uma lista de IDs.
DeleteNaoPagosPorEmpregadospublic static bool DeleteNaoPagosPorEmpregados(SqlTransaction trans, List<int> listIdfEmpregados)Deleta BeneficioFornecimento não pagos para uma lista de empregados.
ListarAberturaBeneficiosPorEmpregadopublic static DataTable ListarAberturaBeneficiosPorEmpregado(int pIdEmpregado, PeriodoCalculo objPeriodoCalculo)Lista benefícios pagos de um empregado que podem ser abertos.
ListarBeneficiosPagospublic static List<int> ListarBeneficiosPagos(List<int> listIdfBeneficioFornecimento)Retorna uma lista de IDs de BeneficioFornecimento que já foram pagos.
UpdateViaPagamentopublic static void UpdateViaPagamento(SqlTransaction trans, int idfBeneficioFornecimento, int? idfArquivoGeradoEmpregado, DateTime? dtaPagamento)Atualiza o status de pagamento de um BeneficioFornecimento (usado na tela de pagamento).
CarregarIdFilialpublic static int CarregarIdFilial(int pIdBeneficioFornecimento)Retorna o ID da filial associada a um BeneficioFornecimento.
RecuperarBeneficioFornecimentoPorEmpregadoArquivoGeradoEmpregadopublic static BeneficioFornecimento RecuperarBeneficioFornecimentoPorEmpregadoArquivoGeradoEmpregado(int pIdEmpregado, int pIdArquivoGeradoEmpregado)Recupera um BeneficioFornecimento por empregado e ID de arquivo gerado.
Salvarpublic void Salvar(SqlTransaction trans, int pIdfArquivoGerado)Salva o BeneficioFornecimento, integra com Ponte Azul e adiciona à fila de cálculo.
ListarIdPagamentosPendentespublic static List<int> ListarIdPagamentosPendentes(int? pIdTipoBeneficio, int? pIdFormaPagamentoBeneficio, int pIdEmpresa, int? pIdFilial, int? pIdCliente, int? pIdTipoContrato, int? pIdContratoMae, int? pIdContrato, int? pIdDepartamento, int? pIdCentroResultado, int? pIdFuncaoExclusiva, int? pIdTipoVinculo, int? pIdEmpregado, int? pIdFormaPagamento, int? pIdBanco, int? pIdTipoConta, int? pNumMes, int? pNumAno, bool pPagamentoTEDPays, int? pIdSupervisor, int? pIdLotacao)Lista os IDs dos BeneficioFornecimento pendentes de pagamento com diversos filtros.
ListarInformacoesPagamentosPendentespublic static DataTable ListarInformacoesPagamentosPendentes(List<int> pLstIdBeneficioFornecimentoPendentePagamento, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros, out decimal pValorTotal)Lista informações detalhadas de BeneficioFornecimento pendentes de pagamento, com paginação e total.
ListarInformacoesPagamentosPendentesTEMPpublic static DataTable ListarInformacoesPagamentosPendentesTEMP(List<int> pLstIdBeneficioFornecimentoPendentePagamento, List<int> pLstIdBeneficioFornecidoPendentePagamento, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros, out decimal pValorTotal)Lista informações detalhadas de BeneficioFornecimento e BeneficioFornecido pendentes de pagamento, com paginação e total.
Pagarpublic static void Pagar(List<int> pLstIdBeneficioFornecimento, int pIdEmpresa, DateTime pDtaPagamento, int pIdFormaPagamento, int? pIdBanco, int? pIdConvenioBancario, bool pTEDPays, ref DataTable pDtErros, out Dictionary<int, int> pDicIdFormaPagamentoNumerosLote)Executa o pagamento de BeneficioFornecimento pendentes, incluindo validações e geração de arquivos.
ValidarPagamentoprivate static Dictionary<int, int> ValidarPagamento(int pIdEmpresa, List<int> pLstIdBeneficioFornecimento, DateTime pDtaPagamento, int pIdFormaPagamento, int? pIdBanco, int? pIdConvenioBancario, bool pTEDPays, ref DataTable pDtErros, SqlTransaction pTrans)Valida os BeneficioFornecimento para pagamento, retornando os válidos e os erros.
EfetuarPagamentoprivate static void EfetuarPagamento(List<int> pLstIdBeneficioFornecimento, int pIdEmpresa, DateTime pDtaPagamento, int pIdFormaPagamento, int? pIdBanco, int? pIdConvenioBancario, bool pTEDPays, out int pNumeroLote, SqlTransaction pTrans)Persiste o pagamento de BeneficioFornecimento, gerando arquivos e integrando com outros sistemas.
VerificaBeneficioMesSeguintepublic static bool VerificaBeneficioMesSeguinte(DateTime data, ref Empregado objEmpregado, out DataTable dtRetorno, SqlTransaction tran = null)Verifica se há benefícios futuros para um empregado após uma data de rescisão.
ListarPendentesTransferenciapublic static IDataReader ListarPendentesTransferencia(DateTime dtaTransferencia, List<int> LstEmpregadosAdicionados)Lista benefícios pendentes de transferência para empregados adicionados após uma data.
CarregarListaIdFilialBeneficioFornecimentopublic List<int> CarregarListaIdFilialBeneficioFornecimento(List<int> lstPagamentosPendentes)Carrega uma lista de IDs de filiais associadas a uma lista de BeneficioFornecimento pendentes.

Detalhamento de Métodos Importantes

GetParameters()

  • Lógica: Inicializa e retorna uma lista de SqlParameter com nomes, tipos SQL e tamanhos definidos para todas as colunas da tabela TAB_Beneficio_Fornecimento.
  • Stored Procedures chamadas: Nenhuma diretamente.
  • Validações: Nenhuma.

SetParameters(List<SqlParameter> parms)

  • Lógica: Preenche a lista de SqlParameter com os valores da instância atual de BeneficioFornecimento.
  • Atribui valores para campos obrigatórios como _idBeneficioFornecimento, _beneficio.IdBeneficio, _empregado.IdEmpregado, _numeroAno, _numeroMes, _quantidadeFornecida, _valorUnitario, _formaPagamentoBeneficio.IdFormaPagamentoBeneficio, _formaDescontoBeneficio.IdFormaDescontoBeneficio, _tetoBeneficio.IdTetoBeneficio, _valorTeto.
  • Para campos opcionais (_valorDesconto, _quantidadeBeneficio, _frequenciaBeneficio, _dataPagamento, _arquivoGeradoEmpregado, _beneficioManual, _preFatura, _beneficioRegra, _beneficioRegraTransporte, _pagamentoFolha, _quantidadeDiasFornecido, _quantidadeDiariaFornecido), verifica se o valor é nulo e atribui DBNull.Value se for.
  • Se a instância não for persistida (_persisted é false), define _idBeneficioFornecimento como ParameterDirection.Output e _dataCadastro como DateTime.Now.
  • Se a instância já for persistida, _idBeneficioFornecimento é ParameterDirection.Input.
  • Stored Procedures chamadas: Nenhuma diretamente.
  • Validações: Nenhuma explícita.

VerificaBeneficioFuncPeriodoCalculo(int idFuncionario, int idPeriodoCalculo)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado e @Idf_Periodo_Calculo.
  2. Atribui os IDs fornecidos.
  3. Executa a query SPBENEFICIOPENDENTEFUNCIONARIOPERIODOCALCULO usando DataAccessLayer.ExecuteScalar.
  4. Retorna true se o resultado for maior que 0 (há benefícios pendentes), false caso contrário.
  • Stored Procedures chamadas: SPBENEFICIOPENDENTEFUNCIONARIOPERIODOCALCULO (SELECT COUNT(*) FROM TAB_Beneficio_Fornecimento BF INNER JOIN TAB_Periodo_Calculo PC ON MONTH(PC.Dta_Inicio) = BF.Num_Mes AND YEAR(PC.Dta_Inicio) = BF.Num_Ano WHERE (Dta_Pagamento IS NULL AND Idf_Arquivo_Gerado_Empregado IS NULL AND Qtd_Fornecida > 0) AND PC.Idf_Periodo_Calculo = @Idf_Periodo_Calculo AND Idf_Empregado = @Idf_Empregado)
  • @Idf_Empregado: ID do funcionário.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • Validações: Verifica se existem benefícios com Dta_Pagamento IS NULL, Idf_Arquivo_Gerado_Empregado IS NULL e Qtd_Fornecida > 0.
  • Exceções: Nenhuma explícita.

Existe(Empregado objEmpregado, Beneficio objBeneficio, int ano, int mes)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado, @Idf_Beneficio, @Num_Ano, @Num_Mes.
  2. Atribui os valores dos objetos e parâmetros.
  3. Executa a query SPSELEMPREGADO usando DataAccessLayer.ExecuteScalar.
  4. Retorna true se o resultado for diferente de 0 (o benefício existe), false caso contrário.
  • Stored Procedures chamadas: SPSELEMPREGADO (SELECT COUNT(1) FROM TAB_Beneficio_Fornecimento WHERE Idf_Beneficio = @Idf_Beneficio AND Idf_Empregado = @Idf_Empregado AND Num_Ano = @Num_Ano AND Num_Mes = @Num_Mes AND Idf_Beneficio_Manual IS NULL AND (Idf_Arquivo_Gerado_Empregado IS NULL AND Dta_Pagamento IS NULL))
  • @Idf_Beneficio: ID do benefício.
  • @Idf_Empregado: ID do empregado.
  • @Num_Ano: Ano.
  • @Num_Mes: Mês.
  • Validações: Verifica a existência de um benefício não manual e não pago.
  • Exceções: Nenhuma explícita.

CarregarPorEmpregadoBeneficioAnoMes(Empregado objEmpregado, Beneficio objBeneficio, int ano, int mes, SqlTransaction trans, out BeneficioFornecimento objBeneficioFornecimento)

  • Lógica:
  1. Chama ListarPorEmpregadoBeneficioAnoMes(objEmpregado, objBeneficio, ano, mes, trans) para obter um IDataReader.
  2. Tenta preencher o objeto objBeneficioFornecimento com o resultado.
  3. Retorna true se o objeto for carregado, false caso contrário.
  • Stored Procedures chamadas: Nenhuma diretamente (chama ListarPorEmpregadoBeneficioAnoMes).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarPorEmpregadoBeneficioAnoMes(Empregado objEmpregado, Beneficio objBeneficio, int ano, int mes, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado, @Idf_Beneficio, @Num_Ano, @Num_Mes.
  2. Atribui os valores.
  3. Executa a query SPSELPOREMPREGADOBENEFICIOANOMES usando DataAccessLayer.ExecuteReader com a transação.
  • Stored Procedures chamadas: SPSELPOREMPREGADOBENEFICIOANOMES (SELECT * FROM TAB_Beneficio_Fornecimento WHERE Idf_Beneficio = @Idf_Beneficio AND Idf_Empregado = @Idf_Empregado AND Num_Ano = @Num_Ano AND Num_Mes = @Num_Mes AND Idf_Beneficio_Manual IS NULL AND (Idf_Arquivo_Gerado_Empregado IS NOT NULL OR Dta_Pagamento IS NOT NULL))
  • @Idf_Beneficio: ID do benefício.
  • @Idf_Empregado: ID do empregado.
  • @Num_Ano: Ano.
  • @Num_Mes: Mês.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

Delete(Empregado objEmpregado, Beneficio objBeneficio, int ano, int mes, SqlTransaction trans)

  • Lógica: (Obsoleto)
  1. Cria uma lista de parâmetros para @Idf_Empregado, @Idf_Beneficio, @Num_Ano, @Num_Mes.
  2. Atribui os valores.
  3. Executa a query SPDELETEEMPREGADO usando DataAccessLayer.ExecuteNonQuery com a transação.
  4. Retorna true se alguma linha foi afetada, false caso contrário.
  • Stored Procedures chamadas: SPDELETEEMPREGADO (DELETE FROM TAB_Beneficio_Fornecimento WHERE Idf_Beneficio = @Idf_Beneficio AND Idf_Empregado = @Idf_Empregado AND Num_Ano = @Num_Ano AND Num_Mes = @Num_Mes AND Idf_Beneficio_Manual IS NULL AND Dta_Pagamento IS NULL AND Idf_Arquivo_Gerado_Empregado IS NULL AND Idf_Beneficio_Fornecimento NOT IN (SELECT Idf_Beneficio_Fornecimento FROM TAB_Arquivo_Beneficio_Fornecimento))
  • @Idf_Beneficio: ID do benefício.
  • @Idf_Empregado: ID do empregado.
  • @Num_Ano: Ano.
  • @Num_Mes: Mês.
  • Validações: Exclui apenas benefícios não manuais, não pagos e não vinculados a arquivos de benefício.
  • Exceções: Nenhuma explícita.

Delete(Empregado objEmpregado, int ano, int mes, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado, @Num_Ano, @Num_Mes.
  2. Atribui os valores.
  3. Executa a query SPDELETEEMPREGADOFORNECIMENTOS usando DataAccessLayer.ExecuteNonQuery com a transação.
  4. Retorna true se alguma linha foi afetada, false caso contrário.
  • Stored Procedures chamadas: SPDELETEEMPREGADOFORNECIMENTOS (DELETE FROM TAB_Beneficio_Fornecimento WHERE Idf_Empregado = @Idf_Empregado AND Num_Ano = @Num_Ano AND Num_Mes = @Num_Mes AND Idf_Beneficio_Manual IS NULL AND Dta_Pagamento IS NULL AND Idf_Arquivo_Gerado_Empregado IS NULL AND Idf_Beneficio_Fornecimento NOT IN (SELECT Idf_Beneficio_Fornecimento FROM TAB_Arquivo_Beneficio_Fornecimento))
  • @Idf_Empregado: ID do empregado.
  • @Num_Ano: Ano.
  • @Num_Mes: Mês.
  • Validações: Exclui apenas benefícios não manuais, não pagos e não vinculados a arquivos de benefício.
  • Exceções: Nenhuma explícita.

ListByEmpregado(int idEmpregado, int mes, int ano)

  • Lógica:
  1. Cria uma lista de parâmetros para @IdEmpregado, @mes, @ano.
  2. Atribui os valores.
  3. Executa a query SELBYEMPREGADO usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELBYEMPREGADO (SELECT *, ISNULL(Filial.Ape_Filial, PF.Nme_Pessoa) as Nme_Fornecedor FROM TAB_Beneficio_Fornecimento BeneForne INNER JOIN TAB_Beneficio Bene on Bene.Idf_Beneficio = BeneForne.Idf_Beneficio INNER JOIN TAB_Tipo_Beneficio TipoBene on Bene.Idf_Tipo_Beneficio = TipoBene.Idf_Tipo_Beneficio INNER JOIN TAB_Fornecedor Forne on Bene.Idf_Fornecedor = Forne.Idf_Fornecedor LEFT JOIN TAB_Filial Filial on Forne.Idf_Filial = Filial.Idf_Filial LEFT JOIN TAB_Pessoa_Fisica PF on Forne.Idf_Pessoa_Fisica = PF.Idf_Pessoa_Fisica WHERE BeneForne.Idf_Empregado = @IdEmpregado AND BeneForne.Num_Ano = @ano AND BeneForne.Num_Mes = @mes ORDER BY Bene.Des_Beneficio ASC)
  • @IdEmpregado: ID do empregado.
  • @mes: Mês.
  • @ano: Ano.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarBeneficios(int idEmpresa, int? IdFilial, int? IdContrato, int? IdDepartamento, int? IdFuncao, int? IdEmpregado, int numMes, int numAno, int? tipoBeneficio, int pago, int IdUsuario, int? IdCentroResultado)

  • Lógica: (Obsoleto)
  1. Constrói a query SPSELBENEFICIOS.
  2. Cria uma lista de parâmetros para numMes, numAno, IdCentroResultado, idEmpresa.
  3. Adiciona cláusulas WHERE dinamicamente com base nos filtros pago, IdFilial, IdEmpregado, IdContrato, IdDepartamento, IdFuncao, tipoBeneficio, IdUsuario.
  4. Para IdContrato, se for um contrato mãe, também inclui os contratos filhos.
  5. Adiciona a cláusula ORDER BY.
  6. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELBENEFICIOS (query complexa com joins e subconsultas para listar benefícios).
  • @Num_Mes: Mês.
  • @Num_Ano: Ano.
  • @Idf_Centro_Resultado: ID do centro de resultado (opcional).
  • @Idf_Empresa: ID da empresa.
  • @Idf_Filial: ID da filial (opcional).
  • @idEmpregado: ID do empregado (opcional).
  • @idDepartamento: ID do departamento (opcional).
  • @Idf_Funcao: ID da função (opcional).
  • @tipoBeneficio: Tipo de benefício (opcional).
  • @Idf_Usuario: ID do usuário.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarBeneficiosDT(int idEmpresa, int? IdFilial, int? IdContrato, int? IdDepartamento, int? IdFuncao, int? IdEmpregado, int numMes, int numAno, int? tipoBeneficio, int pago, int IdUsuario, int? IdCentroResultado, bool UtilizaCR)

  • Lógica: (Obsoleto)
  1. Seleciona a query base (SPSELBENEFICIOSCR ou SPSELBENEFICIOS) com base em UtilizaCR.
  2. Cria uma lista de parâmetros para numMes, numAno, idEmpresa.
  3. Adiciona cláusulas WHERE dinamicamente com base nos filtros pago, IdFilial, IdEmpregado, IdContrato, IdDepartamento, IdCentroResultado, IdFuncao, tipoBeneficio, IdUsuario.
  4. Para IdContrato, se for um contrato mãe, também inclui os contratos filhos.
  5. Adiciona a cláusula ORDER BY e OPTION(RECOMPILE).
  6. Executa a query usando DataAccessLayer.ExecuteReaderDs e retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: SPSELBENEFICIOSCR ou SPSELBENEFICIOS (queries complexas para listar benefícios).
  • @Num_Mes: Mês.
  • @Num_Ano: Ano.
  • @Idf_Empresa: ID da empresa.
  • @Idf_Filial: ID da filial (opcional).
  • @idEmpregado: ID do empregado (opcional).
  • @Idf_Centro_Resultado: ID do centro de resultado (opcional).
  • @Idf_Funcao: ID da função (opcional).
  • @tipoBeneficio: Tipo de benefício (opcional).
  • @Idf_Usuario: ID do usuário.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarEmpregadosFiltroBeneficio(int idEmpresa, int idFilial, int idContrato, int idDepartamento, int idFuncaoExclusiva, int idEmpregado, int numMes, int numAno, int tipoBeneficio)

  • Lógica:
  1. Constrói a query base para selecionar informações de empregados e seus benefícios.
  2. Cria uma lista de parâmetros para numMes, numAno.
  3. Adiciona cláusulas WHERE dinamicamente com base nos filtros idFilial, idEmpregado, idDepartamento, idFuncaoExclusiva, tipoBeneficio, idContrato.
  4. Para idContrato, se for um contrato mãe, também inclui os contratos filhos.
  5. Executa a query usando DataAccessLayer.ExecuteReaderDs e retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: Query dinâmica (SELECT … FROM TAB_Empregado emp … WHERE Emp.Flg_Inativo = 0 AND BeneForne.Dta_Pagamento IS NULL …)
  • @Num_Mes: Mês.
  • @Num_Ano: Ano.
  • @idFilial: ID da filial (opcional).
  • @idEmpresa: ID da empresa (se idFilial não for -1).
  • @idEmpregado: ID do empregado (opcional).
  • @idDepartamento: ID do departamento (opcional).
  • @idFuncaoExclusiva: ID da função exclusiva (opcional).
  • @tipoBeneficio: Tipo de benefício (opcional).
  • Validações: Filtra por benefícios não pagos e empregados ativos.
  • Exceções: Nenhuma explícita.

DeletePorEmpregado(int idEmpregado, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado.
  2. Atribui o idEmpregado ao parâmetro.
  3. Executa a query SPDELETARPORFUNCIONARIO usando DataAccessLayer.ExecuteNonQuery com a transação.
  • Stored Procedures chamadas: SPDELETARPORFUNCIONARIO (DELETE FROM TAB_Beneficio_Fornecimento WHERE Idf_Empregado = @Idf_Empregado)
  • @Idf_Empregado: ID do empregado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarBeneficiosFornecimento(SqlTransaction trans, DateTime dtaCalculo, int idEmpregado)

  • Lógica:
  1. Cria uma lista de parâmetros para @Num_Ano, @Num_Mes, @Idf_Empregado.
  2. Atribui o ano e mês de dtaCalculo e o idEmpregado.
  3. Executa a query SPSELPOREMPREGADOANOMES usando DataAccessLayer.ExecuteReader com a transação.
  4. Itera sobre o IDataReader, preenchendo objetos BeneficioFornecimento e adicionando-os a uma lista.
  5. Retorna a lista.
  • Stored Procedures chamadas: SPSELPOREMPREGADOANOMES (select * from tab_beneficio_fornecimento where Idf_empregado = @Idf_empregado and Num_Ano = @Num_Ano and Num_Mes = @Num_Mes AND Idf_Beneficio_Manual IS NULL AND Idf_Arquivo_Gerado_Empregado IS NOT NULL)
  • @Num_Ano: Ano da data de cálculo.
  • @Num_Mes: Mês da data de cálculo.
  • @Idf_Empregado: ID do empregado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarBeneficiosFornecimentoDescontoBeneficio(Empregado objEmpregado, TipoBeneficio objTipoBeneficio, PeriodoCalculo objPeriodoCalculo, bool mesSeguinte)

  • Lógica:
  1. Cria uma lista de parâmetros para @Dta_Beneficio, @Idf_Empregado, @Idf_Tipo_Beneficio, @Mes_Seguinte.
  2. Atribui os valores dos objetos e parâmetros.
  3. Executa a query SPSELPOREMPREGADOBENEFICIOANOMESDESCONTOBENEFICIO usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader, preenchendo objetos BeneficioFornecimento e adicionando-os a uma lista.
  5. Retorna a lista.
  • Stored Procedures chamadas: SPSELPOREMPREGADOBENEFICIOANOMESDESCONTOBENEFICIO (SELECT * FROM TAB_Beneficio_Fornecimento BF INNER JOIN TAB_Beneficio B ON BF.Idf_Beneficio = B.Idf_Beneficio WHERE Idf_Empregado = @Idf_Empregado AND ( ( Num_Mes = MONTH(@Dta_Beneficio) AND Num_Ano = YEAR(@Dta_Beneficio) ) OR ( Num_Mes = MONTH(DATEADD(MONTH, 1, @Dta_Beneficio)) AND Num_Ano = YEAR(DATEADD(MONTH, 1, @Dta_Beneficio)) AND @Mes_Seguinte = 1 ) ) AND ( BF.Idf_Arquivo_Gerado_Empregado IS NOT NULL OR BF.Dta_Pagamento IS NOT NULL ) AND B.Idf_Tipo_Beneficio = @Idf_Tipo_Beneficio AND BF.Qtd_Fornecida > 0 ORDER BY Num_Ano, Num_Mes, B.Idf_Beneficio)
  • @Dta_Beneficio: Data de início do período de cálculo.
  • @Idf_Empregado: ID do empregado.
  • @Idf_Tipo_Beneficio: ID do tipo de benefício.
  • @Mes_Seguinte: Flag para incluir o mês seguinte.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarBeneficiosFornecimentoPagos(Empregado objEmpregado, int numAno, int numMes)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_empregado, @Num_Ano, @Num_Mes.
  2. Atribui os valores.
  3. Executa a query SPSELBENEFICIOFORNECIMENTOEMPREGADOANOMESPAGOS usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader, preenchendo objetos BeneficioFornecimento e adicionando-os a uma lista.
  5. Retorna a lista.
  • Stored Procedures chamadas: SPSELBENEFICIOFORNECIMENTOEMPREGADOANOMESPAGOS (SELECT * FROM TAB_Beneficio_Fornecimento WHERE Idf_empregado = @Idf_empregado AND Num_Ano = @Num_Ano AND Num_Mes = @Num_Mes AND Idf_Beneficio_Manual IS NULL AND ( Idf_Arquivo_Gerado_Empregado IS NOT NULL OR Dta_Pagamento IS NOT NULL ))
  • @Idf_empregado: ID do empregado.
  • @Num_Ano: Ano.
  • @Num_Mes: Mês.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarBeneFornecidoPorArquivoGeradoEmp(SqlTransaction trans, int idfArquivoGeradoEmpregado, out BeneficioFornecimento objBeneFornecimento)

  • Lógica:
  1. Chama ListarBeneFornecidoPorArquivoGeradoEmp(idfArquivoGeradoEmpregado, trans) para obter um IDataReader.
  2. Tenta preencher o objeto objBeneFornecimento com o resultado.
  3. Retorna true se o objeto for carregado, false caso contrário.
  • Stored Procedures chamadas: Nenhuma diretamente (chama ListarBeneFornecidoPorArquivoGeradoEmp).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarBeneFornecidoPorArquivoGeradoEmp(SqlTransaction trans, int idfArquivoGeradoEmpregado, out List<BeneficioFornecimento> lstBeneficioFornecimento)

  • Lógica:
  1. Cria uma lista de parâmetros para @IdfArquivoGeradoEmpregado.
  2. Atribui o ID.
  3. Inicializa lstBeneficioFornecimento.
  4. Executa a query SPSELECTBENEFICIOFORNECIDOCARQUIVOGER usando DataAccessLayer.ExecuteReader com a transação.
  5. Itera sobre o IDataReader, preenchendo objetos BeneficioFornecimento e adicionando-os à lista.
  6. Retorna true se a operação for bem-sucedida, false caso contrário.
  • Stored Procedures chamadas: SPSELECTBENEFICIOFORNECIDOCARQUIVOGER (SELECT * FROM TAB_Beneficio_Fornecimento WHERE Idf_Arquivo_Gerado_Empregado = @IdfArquivoGeradoEmpregado)
  • @IdfArquivoGeradoEmpregado: ID do arquivo gerado do empregado.
  • Validações: Nenhuma explícita.
  • Exceções: Captura e relança exceções.

ListarBeneFornecidoPorArquivoGeradoEmp(int idfArquivoGeradoEmpregado, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de parâmetros para @IdfArquivoGeradoEmpregado.
  2. Atribui o ID.
  3. Executa a query SPSELECTBENEFICIOFORNECIDOCARQUIVOGER usando DataAccessLayer.ExecuteReader com a transação.
  • Stored Procedures chamadas: SPSELECTBENEFICIOFORNECIDOCARQUIVOGER
  • @IdfArquivoGeradoEmpregado: ID do arquivo gerado do empregado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

LoadDados(int idfBeneficioFornecimento)

  • Lógica:
  1. Constrói a query SELDADOS para obter informações de departamento, contrato e tipo de agrupamento.
  2. Cria um parâmetro para @Idf_Beneficio_Fornecimento.
  3. Atribui o ID.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELDADOS (SELECT BF.Idf_Beneficio_Fornecimento, BF.Idf_Empregado, ED.Idf_Departamento, c.Idf_Tipo_Agrupamento, Cm.Idf_Tipo_Agrupamento AS Idf_Tipo_Agrupamento_Mae, C.Idf_Contrato, C.Idf_Contrato_Mae, '' AS Idf_Centro_Custo, Cm.Flg_Agrupar_Cidade FROM TAB_Beneficio_Fornecimento BF INNER JOIN TAB_Empregado E ON BF.Idf_Empregado = E.Idf_Empregado INNER JOIN TAB_Contrato C ON E.Idf_Contrato = C.Idf_Contrato LEFT JOIN TAB_Contrato Cm ON C.Idf_Contrato_Mae = Cm.Idf_Contrato LEFT JOIN TAB_Empregado_Departamento ED ON E.Idf_Empregado = ED.Idf_Empregado AND ED.Flg_Inativo = 0 AND ED.Dta_Fim_Vigencia IS NULL WHERE BF.Idf_Beneficio_Fornecimento = @Idf_Beneficio_Fornecimento)
  • @Idf_Beneficio_Fornecimento: ID do benefício fornecimento.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

FecharBeneficiosZerados(int? idfEmpregado, int? idfFilial, int idfPeriodoCalculo, int? idfUsuario, SqlTransaction trans)

  • Lógica:
  1. Constrói a query UPDBENEFICIOSZERADOS para atualizar Dta_Pagamento para GETDATE() em BeneficioFornecimento com Qtd_Fornecida = 0 e que ainda não foram pagos.
  2. Cria uma lista de parâmetros para idfEmpregado, idfFilial, idfPeriodoCalculo, idfUsuario.
  3. Atribui os valores, tratando nulos com DBNull.Value.
  4. Executa a query usando DataAccessLayer.ExecuteNonQuery (com ou sem transação).
  5. Retorna o número de linhas afetadas.
  • Stored Procedures chamadas: UPDBENEFICIOSZERADOS (DECLARE @Dta_Inicio DATETIME ... UPDATE BF SET BF.Dta_Pagamento = GETDATE() FROM TAB_Beneficio_Fornecimento BF ... WHERE BF.Qtd_Fornecida = 0 ...)
  • @Dta_Inicio: Data de início do período de cálculo.
  • @Idf_Empresa: ID da empresa.
  • @Idf_Empregado: ID do empregado (opcional).
  • @Idf_Filial: ID da filial (opcional).
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • @Idf_Usuario: ID do usuário (opcional).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

DeleteBeneficioFornecimentoEmpregadoInativo(Empregado objEmpregado, SqlTransaction trans)

  • Lógica:
  1. Cria um SqlCommand e configura-o com a transação e o texto da query SPDELETEBENEFICIOFUNCIONARIOINATIVO.
  2. Adiciona o parâmetro @Idf_Empregado.
  3. Executa o comando.
  • Stored Procedures chamadas: SPDELETEBENEFICIOFUNCIONARIOINATIVO (DELETE FROM TAB_Beneficio_Fornecimento WHERE Idf_Empregado = @Idf_Empregado AND Dta_Pagamento IS NULL AND Idf_Arquivo_Gerado_Empregado IS NULL AND Idf_Beneficio_Fornecimento NOT IN (SELECT Idf_Beneficio_Fornecimento FROM TAB_Arquivo_Beneficio_Fornecimento))
  • @Idf_Empregado: ID do empregado.
  • Validações: Exclui apenas benefícios não pagos e não vinculados a arquivos de benefício.
  • Exceções: Nenhuma explícita.

ListarMesAnoPorBeneficioNaoPagos(int idBeneficio)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Beneficio.
  2. Atribui o ID.
  3. Executa a query SPSELMESANONAOPAGOS usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader, adicionando pares (mês, ano) a uma lista de Pair.
  5. Retorna a lista.
  • Stored Procedures chamadas: SPSELMESANONAOPAGOS (SELECT DISTINCT Num_Mes, Num_Ano FROM TAB_Beneficio_Fornecimento BF WHERE BF.Idf_Beneficio = @Idf_Beneficio AND BF.Idf_Arquivo_Gerado_Empregado IS NULL AND BF.Dta_Pagamento IS NULL AND EXISTS (SELECT * FROM TAB_Empregado WHERE Idf_Empregado = BF.Idf_Empregado AND Flg_Inativo = 0) ORDER BY Num_Ano, Num_Mes)
  • @Idf_Beneficio: ID do benefício.
  • Validações: Filtra por benefícios não pagos e empregados ativos.
  • Exceções: Nenhuma explícita.

ListarMesAnoFornecimentoNaoPagosPorEmpregado(int idEmpregado, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado.
  2. Atribui o ID.
  3. Executa a query SPSELMESANONAOPAGOSPOREMPREGADO usando DataAccessLayer.ExecuteReader com a transação.
  4. Itera sobre o IDataReader, adicionando pares (mês, ano) a uma lista de Pair.
  5. Retorna a lista.
  • Stored Procedures chamadas: SPSELMESANONAOPAGOSPOREMPREGADO (SELECT DISTINCT Num_Mes, Num_Ano FROM TAB_Beneficio_Fornecimento WHERE Idf_Empregado = @Idf_Empregado AND Idf_Arquivo_Gerado_Empregado IS NULL AND Dta_Pagamento IS NULL ORDER BY Num_Ano, Num_Mes)
  • @Idf_Empregado: ID do empregado.
  • Validações: Filtra por fornecimentos não pagos.
  • Exceções: Nenhuma explícita.

ListarEmpregadoPorBeneficioMesAnoNaoPagos(int idBeneficio, int mes, int ano)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Beneficio, @Num_Mes, @Num_Ano.
  2. Atribui os valores.
  3. Executa a query SPSELEMPREGADOPORMESANONAOPAGOS usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader, criando objetos Empregado (apenas com o ID) e adicionando-os a uma lista.
  5. Retorna a lista.
  • Stored Procedures chamadas: SPSELEMPREGADOPORMESANONAOPAGOS (SELECT DISTINCT Idf_Empregado FROM TAB_Beneficio_Fornecimento BF WHERE BF.Idf_Beneficio = @Idf_Beneficio AND BF.Num_Mes = @Num_Mes AND BF.Num_Ano = @Num_Ano AND BF.Idf_Arquivo_Gerado_Empregado IS NULL AND BF.Dta_Pagamento IS NULL AND EXISTS (SELECT * FROM TAB_Empregado WHERE Idf_Empregado = BF.Idf_Empregado AND Flg_Inativo = 0))
  • @Idf_Beneficio: ID do benefício.
  • @Num_Mes: Mês.
  • @Num_Ano: Ano.
  • Validações: Filtra por benefícios não pagos e empregados ativos.
  • Exceções: Nenhuma explícita.

ListarMesAnoFornecimentoNaoPagosPorEmpregado(int idEmpregado, int mes, int ano, SqlTransaction trans)

  • Lógica: Similar a ListarEmpregadoPorBeneficioMesAnoNaoPagos, mas para fornecimentos e dentro de uma transação.
  • Stored Procedures chamadas: SPSELFORNECIMENTONAOPAGOSPOREMPREGADO (SELECT DISTINCT Idf_Empregado FROM TAB_Beneficio_Fornecimento WHERE Idf_Empregado = @Idf_Empregado AND Num_Mes = @mes AND Num_Ano = @ano AND Idf_Arquivo_Gerado_Empregado IS NULL AND Dta_Pagamento IS NULL)
  • @Idf_Empregado: ID do empregado.
  • @mes: Mês.
  • @ano: Ano.
  • Validações: Filtra por fornecimentos não pagos.
  • Exceções: Nenhuma explícita.

ListarEmpregadoMesAnoPorBeneficioNaoPagos(int idBeneficio)

  • Lógica:
  1. Chama ListarMesAnoPorBeneficioNaoPagos(idBeneficio) para obter uma lista de pares (mês, ano).
  2. Para cada par (mês, ano), chama ListarEmpregadoPorBeneficioMesAnoNaoPagos para obter a lista de empregados correspondente.
  3. Combina essas informações em uma lista de Pair (lista de empregados, par mês/ano).
  • Stored Procedures chamadas: Nenhuma diretamente (chama ListarMesAnoPorBeneficioNaoPagos e ListarEmpregadoPorBeneficioMesAnoNaoPagos).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarFornecimentoNaoPagosMesAnoPorEmpregado(int idEmpregado, SqlTransaction trans)

  • Lógica: Similar a ListarEmpregadoMesAnoPorBeneficioNaoPagos, mas para fornecimentos e dentro de uma transação.
  • Stored Procedures chamadas: Nenhuma diretamente (chama ListarMesAnoFornecimentoNaoPagosPorEmpregado).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarBeneficiosPorEmpregadoMesAno(int pMesPeriodo, int pAnoPeriodo, int pIdEmpregado)

  • Lógica:
  1. Cria uma lista de parâmetros para @Mes_Periodo, @Ano_Periodo, @Idf_Empregado.
  2. Atribui os valores.
  3. Executa a query SELBENEFICIOSPOREMPREGADOMESANO usando DataAccessLayer.ExecuteReaderDs e retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: SELBENEFICIOSPOREMPREGADOMESANO (SELECT TAB_Beneficio.Des_Beneficio, TAB_Beneficio_Fornecimento.Qtd_Fornecida, (TAB_Beneficio_Fornecimento.Qtd_Fornecida * TAB_Beneficio_Fornecimento.Vlr_Unitario) AS Vlr_Beneficio FROM TAB_Beneficio_Fornecimento INNER JOIN TAB_Beneficio ON TAB_Beneficio_Fornecimento.Idf_Beneficio = TAB_Beneficio.Idf_Beneficio WHERE TAB_Beneficio_Fornecimento.Idf_Empregado = @Idf_Empregado AND TAB_Beneficio_Fornecimento.Num_Mes = @Mes_Periodo AND TAB_Beneficio_Fornecimento.Num_Ano = @Ano_Periodo)
  • @Mes_Periodo: Mês do período.
  • @Ano_Periodo: Ano do período.
  • @Idf_Empregado: ID do empregado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

VerificaBeneficiosGeradosPorData(DateTime pDataCadastroBeneficio, int pIdEmpregado)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado e @Dta_Cadastro.
  2. Atribui os valores.
  3. Constrói uma query SQL para contar os BeneficioFornecimento gerados para um empregado em uma data de cadastro específica.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  5. Retorna true se houver um registro, false caso contrário.
  • Stored Procedures chamadas: Query dinâmica (SELECT count(bf.Idf_beneficio_fornecimento) FROM tab_beneficio_fornecimento bf WHERE bf.Idf_Empregado = @Idf_Empregado AND CONVERT(DATETIME,CONVERT(VARCHAR,bf.Dta_Cadastro,103),103) = CONVERT(DATETIME,CONVERT(VARCHAR,@Dta_Cadastro,103),103))
  • @Idf_Empregado: ID do empregado.
  • @Dta_Cadastro: Data de cadastro do benefício.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarPorPreFaturaDadosEmpregado(int idPreFatura, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Pre_Fatura.
  2. Calcula os limites inicio e fim para a paginação.
  3. Constrói a query SPSELECTALL com ordenação.
  4. Constrói a query de contagem (SPSELECTCOUNT) e a query paginada (SelectPag).
  5. Executa a query de contagem para obter totalRegistros.
  6. Executa a query paginada e retorna o IDataReader.
  • Stored Procedures chamadas:
  • SPSELECTALL (query para listar benefícios fornecidos por pré-fatura com dados do empregado)
  • SPSELECTCOUNT (query de contagem)
  • SelectPag (query paginada)
  • @Idf_Pre_Fatura: ID da pré-fatura.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarPorPreFaturaDadosEmpregado(int idPreFatura)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Pre_Fatura.
  2. Atribui o ID.
  3. Constrói a query SQL para selecionar benefícios fornecidos por pré-fatura com dados do empregado.
  4. Executa a query usando DataAccessLayer.ExecuteReaderDs e retorna o DataSet.
  • Stored Procedures chamadas: Query dinâmica (SELECT Idf_Beneficio_Fornecimento, TAB_Pessoa_Fisica.Nme_Pessoa, TAB_Beneficio.Des_Beneficio, TAB_Beneficio_Fornecimento.Num_Mes, TAB_Beneficio_Fornecimento.Num_Ano, TAB_Beneficio_Fornecimento.Qtd_Fornecida, TAB_Beneficio_Fornecimento.Vlr_Unitario FROM TAB_Beneficio_Fornecimento INNER JOIN TAB_Empregado ON TAB_Beneficio_Fornecimento.Idf_Empregado = TAB_Empregado.Idf_Empregado INNER JOIN TAB_Pessoa_Fisica ON TAB_Empregado.Idf_Pessoa_Fisica = TAB_Pessoa_Fisica.Idf_Pessoa_Fisica INNER JOIN TAB_Beneficio ON TAB_Beneficio_Fornecimento.Idf_Beneficio = TAB_Beneficio.Idf_Beneficio WHERE TAB_Beneficio_Fornecimento.Idf_Pre_Fatura = @Idf_Pre_Fatura)
  • @Idf_Pre_Fatura: ID da pré-fatura.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

SalvarFilaPreFatura(List<BeneficioFornecimento> lsBeneficioFornecimento, SqlTransaction trans)

  • Lógica:
  1. Constrói queries SQL para atualizar Idf_Pre_Fatura para NULL e inserir os BeneficioFornecimento na tabela TAB_Fila_Pre_Fatura_Beneficio.
  2. Concatena os IDs dos lsBeneficioFornecimento em uma string.
  3. Executa as queries construídas usando DataAccessLayer.ExecuteNonQuery com a transação.
  4. Em caso de erro, lança uma nova Exception encapsulando a original.
  • Stored Procedures chamadas: Queries dinâmicas (UPDATE TAB_Beneficio_Fornecimento SET Idf_Pre_Fatura = NULL WHERE Idf_Beneficio_Fornecimento IN (…)eINSERT INTO TAB_Fila_Pre_Fatura_Beneficio (Idf_Beneficio_Fornecimento, Num_Prioridade, Flg_Em_Calculo) SELECT Idf_Beneficio_Fornecimento, 0, 0 FROM TAB_Beneficio_Fornecimento WHERE Idf_Beneficio_Fornecimento IN (…)`)
  • Validações: Nenhuma explícita.
  • Exceções: Exception em caso de erro no banco de dados.

Delete(int idBeneficioFornecimento, SqlTransaction trans)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Beneficio_Fornecimento.
  2. Atribui o ID.
  3. Executa a query SPDELETE usando DataAccessLayer.ExecuteNonQuery com a transação.
  • Stored Procedures chamadas: SPDELETE (DELETE FROM TAB_Beneficio_Fornecimento WHERE Idf_Beneficio_Fornecimento = @Idf_Beneficio_Fornecimento AND Dta_Pagamento IS NULL AND Idf_Arquivo_Gerado_Empregado IS NULL AND Idf_Beneficio_Fornecimento NOT IN (SELECT Idf_Beneficio_Fornecimento FROM TAB_Arquivo_Beneficio_Fornecimento))
  • @Idf_Beneficio_Fornecimento: ID do benefício fornecimento.
  • Validações: Exclui apenas benefícios não pagos e não vinculados a arquivos de benefício.
  • Exceções: Nenhuma explícita.

Delete(List<int> idBeneficioFornecimento)

  • Lógica:
  1. Se a lista de IDs estiver vazia, retorna.
  2. Constrói uma query SQL dinâmica para deletar múltiplos BeneficioFornecimento.
  3. Itera sobre a lista de IDs, adicionando cada ID como um parâmetro nomeado.
  4. Adiciona as condições para excluir apenas benefícios não pagos e não vinculados a arquivos de benefício.
  5. Executa a query usando DataAccessLayer.ExecuteNonQuery.
  • Stored Procedures chamadas: Query dinâmica (DELETE FROM TAB_Beneficio_Fornecimento WHERE Idf_Beneficio_Fornecimento IN (...) AND Dta_Pagamento IS NULL AND Idf_Arquivo_Gerado_Empregado IS NULL AND Idf_Beneficio_Fornecimento NOT IN (SELECT Idf_Beneficio_Fornecimento FROM TAB_Arquivo_Beneficio_Fornecimento))
  • @parmX: Cada ID da lista de benefícios fornecimentos.
  • Validações: Exclui apenas benefícios não pagos e não vinculados a arquivos de benefício.
  • Exceções: Nenhuma explícita.

DeleteNaoPagosPorEmpregados(SqlTransaction trans, List<int> listIdfEmpregados)

  • Lógica:
  1. Constrói a query DELNAOPAGOSPOREMPREGADOS dinamicamente, concatenando os IDs dos empregados.
  2. Executa a query usando DataAccessLayer.ExecuteNonQuery (com ou sem transação).
  3. Retorna true.
  • Stored Procedures chamadas: DELNAOPAGOSPOREMPREGADOS (DELETE TAB_Beneficio_Fornecimento WHERE Dta_Pagamento IS NULL AND Idf_Arquivo_Gerado_Empregado IS NULL AND Idf_Empregado IN ( {0} ))
  • {0}: Lista de IDs de empregados.
  • Validações: Exclui apenas benefícios não pagos.
  • Exceções: Nenhuma explícita.

ListarAberturaBeneficiosPorEmpregado(int pIdEmpregado, PeriodoCalculo objPeriodoCalculo)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado, @Idf_Periodo_Calculo, @Dta_Periodo_Cauculo.
  2. Atribui os valores.
  3. Constrói uma query SQL para listar benefícios pagos de um empregado que podem ser abertos, filtrando por tipo de folha e período.
  4. Executa a query usando DataAccessLayer.ExecuteReaderDs e retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: Query dinâmica (SELECT th.Idf_Periodo_Calculo, tb.Idf_Beneficio, tbf.Idf_Beneficio_Fornecimento, tb.Des_Beneficio, tbf.Dta_Pagamento, tfp.Des_Forma_Pagamento, tbf.Qtd_Fornecida * tbf.Vlr_Unitario as Vlr_Valor, tc.Idf_Cheque_Status FROM TAB_Beneficio_Fornecimento tbf ... WHERE TBF.Idf_Empregado = @Idf_Empregado and tbf.Num_Ano = YEAR(@Dta_Periodo_Cauculo) and tbf.Num_Mes = MONTH(@Dta_Periodo_Cauculo) and tbf.Idf_Arquivo_Gerado_Empregado is not null and th.Idf_Tipo_Folha in ({0},{1},{2},{3}) and th.Idf_Periodo_Calculo = @Idf_Periodo_Calculo and th.Idf_Arquivo_Gerado_Empregado is null;)
  • @Idf_Empregado: ID do empregado.
  • @Idf_Periodo_Calculo: ID do período de cálculo.
  • @Dta_Periodo_Cauculo: Data de fim do período de cálculo.
  • {0},{1},{2},{3}: IDs dos tipos de folha (Folha Regular, Rescisão, Folha Regular Estagiário, Rescisão Estagiário).
  • Validações: Filtra por benefícios com arquivo gerado e sem holerite gerado.
  • Exceções: Nenhuma explícita.

ListarBeneficiosPagos(List<int> listIdfBeneficioFornecimento)

  • Lógica:
  1. Constrói a query SELBENEFICIOSPAGOS dinamicamente, concatenando os IDs dos BeneficioFornecimento.
  2. Executa a query usando DataAccessLayer.ExecuteReader.
  3. Itera sobre o IDataReader, adicionando os IDs dos benefícios pagos a uma lista.
  4. Retorna a lista.
  • Stored Procedures chamadas: SELBENEFICIOSPAGOS (SELECT B.Idf_Beneficio_Fornecimento FROM TAB_Beneficio_Fornecimento B WHERE (B.Dta_Pagamento IS NOT NULL OR B.Idf_Arquivo_Gerado_Empregado IS NOT NULL) AND B.Idf_Beneficio_Fornecimento IN ( {0} ))
  • {0}: Lista de IDs de benefícios fornecimentos.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

UpdateViaPagamento(SqlTransaction trans, int idfBeneficioFornecimento, int? idfArquivoGeradoEmpregado, DateTime? dtaPagamento)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Beneficio_Fornecimento, @Idf_Arquivo_Gerado_Empregado, @Dta_Pagamento.
  2. Atribui os valores, tratando nulos com DBNull.Value.
  3. Executa a query UPDBENEFICIOFORNECIMENTOPAGAMENTO usando DataAccessLayer.ExecuteNonQuery com a transação.
  • Stored Procedures chamadas: UPDBENEFICIOFORNECIMENTOPAGAMENTO (UPDATE TAB_Beneficio_Fornecimento SET Idf_Arquivo_Gerado_Empregado = @Idf_Arquivo_Gerado_Empregado, Dta_Pagamento = @Dta_Pagamento WHERE Idf_Beneficio_Fornecimento = @Idf_Beneficio_Fornecimento)
  • @Idf_Beneficio_Fornecimento: ID do benefício fornecimento.
  • @Idf_Arquivo_Gerado_Empregado: ID do arquivo gerado do empregado (opcional).
  • @Dta_Pagamento: Data de pagamento (opcional).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarIdFilial(int pIdBeneficioFornecimento)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Beneficio_Fornecimento.
  2. Atribui o ID.
  3. Executa a query SPSELECTIDFILIAL usando DataAccessLayer.ExecuteScalar e retorna o resultado convertido para int.
  • Stored Procedures chamadas: SPSELECTIDFILIAL (SELECT F.Idf_Filial FROM TAB_Beneficio_Fornecimento BF JOIN TAB_Empregado E ON E.Idf_Empregado = BF.Idf_Empregado JOIN TAB_Contrato C ON C.Idf_Contrato = E.Idf_Contrato LEFT JOIN TAB_Centro_Resultado CR ON E.Idf_Centro_Resultado = CR.Idf_Centro_Resultado JOIN TAB_Filial F ON F.Idf_Filial = COALESCE(CR.Idf_Filial, C.Idf_Filial_Gestora) Where BF.Idf_Beneficio_Fornecimento = @Idf_Beneficio_Fornecimento)
  • @Idf_Beneficio_Fornecimento: ID do benefício fornecimento.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

RecuperarBeneficioFornecimentoPorEmpregadoArquivoGeradoEmpregado(int pIdEmpregado, int pIdArquivoGeradoEmpregado)

  • Lógica:
  1. Cria uma lista de parâmetros para @Idf_Empregado e @Idf_Arquivo_Gerado_Empregado.
  2. Atribui os IDs.
  3. Executa a query SPRECUPERARBENEFICIOFORNECIMENTOPOREMPREGADOARQUIVOGERADOEMPREGADO usando DataAccessLayer.ExecuteReader.
  4. Tenta preencher um novo objeto BeneficioFornecimento com o resultado.
  5. Retorna o objeto preenchido ou null.
  • Stored Procedures chamadas: SPRECUPERARBENEFICIOFORNECIMENTOPOREMPREGADOARQUIVOGERADOEMPREGADO (SELECT * FROM TAB_Beneficio_Fornecimento WHERE Idf_Empregado = @Idf_Empregado AND Idf_Arquivo_Gerado_Empregado = @Idf_Arquivo_Gerado_Empregado)
  • @Idf_Empregado: ID do empregado.
  • @Idf_Arquivo_Gerado_Empregado: ID do arquivo gerado do empregado.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

Salvar(SqlTransaction trans, int pIdfArquivoGerado)

  • Lógica:
  1. Salva a instância atual de BeneficioFornecimento usando this.Save(trans).
  2. Se Empregado não for nulo:
  • Adiciona uma integração com a Ponte Azul (IntegracaoPonteAzul.AdicionarIntegracaoPonteAzul).
  • Adiciona o empregado à fila de cálculo (FilaCalculo.AdicionarEmpregadoFila).
  1. Se Empregado for nulo, lança uma Exception.
  • Stored Procedures chamadas:
  • SPINSERT ou SPUPDATE (via this.Save(trans))
  • IntegracaoPonteAzul.AdicionarIntegracaoPonteAzul (chama SPs internas)
  • FilaCalculo.AdicionarEmpregadoFila (chama SPs internas)
  • Validações: Verifica se o objeto Empregado é nulo.
  • Exceções: Exception se o empregado não puder ser carregado.

ListarIdPagamentosPendentes(int? pIdTipoBeneficio, int? pIdFormaPagamentoBeneficio, int pIdEmpresa, int? pIdFilial, int? pIdCliente, int? pIdTipoContrato, int? pIdContratoMae, int? pIdContrato, int? pIdDepartamento, int? pIdCentroResultado, int? pIdFuncaoExclusiva, int? pIdTipoVinculo, int? pIdEmpregado, int? pIdFormaPagamento, int? pIdBanco, int? pIdTipoConta, int? pNumMes, int? pNumAno, bool pPagamentoTEDPays, int? pIdSupervisor, int? pIdLotacao)

  • Lógica:
  1. Inicializa lstIdBeneficioFornecimentoPendentePagamento.
  2. Se pIdCentroResultado tiver valor, lista os IDs dos centros de resultado analíticos ativos e os concatena em parametroListaIdCentroResultado.
  3. Cria uma lista de parâmetros para todos os filtros fornecidos, tratando nulos com DBNull.Value.
  4. O ID do usuário é obtido da sessão HTTP.
  5. Executa a query SPSELIDBENEFICIOFORNECIMENTOPENDENTEPAGAMENTO usando DataAccessLayer.ExecuteReaderDs.
  6. Se o DataTable resultante tiver linhas, extrai os IDs dos benefícios fornecimentos e os adiciona à lista.
  7. Retorna a lista de IDs.
  • Stored Procedures chamadas: SPSELIDBENEFICIOFORNECIMENTOPENDENTEPAGAMENTO (query complexa com tabelas temporárias e joins para listar IDs de benefícios pendentes).
  • @Idf_Tipo_Beneficio: ID do tipo de benefício (opcional).
  • @Idf_Forma_Pagamento_Beneficio: ID da forma de pagamento do benefício (opcional).
  • @Idf_Empresa: ID da empresa.
  • @Idf_Filial: ID da filial (opcional).
  • @Idf_Cliente: ID do cliente (opcional).
  • @Idf_Tipo_Contrato: ID do tipo de contrato (opcional).
  • @Idf_Contrato_Mae: ID do contrato mãe (opcional).
  • @Idf_Contrato: ID do contrato (opcional).
  • @Idf_Departamento: ID do departamento (opcional).
  • @Lst_Idf_Centro_Resultado: Lista de IDs de centros de resultado (string separada por vírgulas, opcional).
  • @Idf_Funcao_Exclusiva: ID da função exclusiva (opcional).
  • @Idf_Tipo_Vinculo: ID do tipo de vínculo (opcional).
  • @Idf_Empregado: ID do empregado (opcional).
  • @Idf_Forma_Pagamento: ID da forma de pagamento (opcional).
  • @Idf_Banco: ID do banco (opcional).
  • @Idf_Tipo_Conta: ID do tipo de conta (opcional).
  • @Num_Mes: Mês (opcional).
  • @Num_Ano: Ano (opcional).
  • @Idf_Usuario: ID do usuário.
  • @Flg_Pagamento_TEDPays: Flag para pagamento TEDPays.
  • @Idf_Supervisor: ID do supervisor (opcional).
  • @Idf_Lotacao: ID da lotação (opcional).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarInformacoesPagamentosPendentes(List<int> pLstIdBeneficioFornecimentoPendentePagamento, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros, out decimal pValorTotal)

  • Lógica:
  1. Constrói a cláusula WHERE com base na lista de pLstIdBeneficioFornecimentoPendentePagamento. Se a lista estiver vazia, define WHERE 1 = 2 para não retornar resultados.
  2. Calcula os limites inicio e fim para a paginação.
  3. Constrói a query paginada (queryPaginada), a query de contagem (queryCount) e a query de valor total (queryValorTotal) usando SPSELBENEFICIOFORNECIMENTOPENDENTEPAGAMENTO como base.
  4. Executa queryCount para obter pTotalRegistros.
  5. Executa queryValorTotal para obter pValorTotal.
  6. Executa queryPaginada e retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: SPSELBENEFICIOFORNECIMENTOPENDENTEPAGAMENTO (query para listar informações de benefícios pendentes).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarInformacoesPagamentosPendentesTEMP(List<int> pLstIdBeneficioFornecimentoPendentePagamento, List<int> pLstIdBeneficioFornecidoPendentePagamento, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros, out decimal pValorTotal)

  • Lógica:
  1. Constrói as cláusulas WHERE para pLstIdBeneficioFornecimentoPendentePagamento e pLstIdBeneficioFornecidoPendentePagamento.
  2. Calcula os limites inicio e fim para a paginação.
  3. Constrói a query paginada (queryPaginada), a query de contagem (queryCount) e a query de valor total (queryValorTotal) usando SPSELBENEFICIOFORNECIMENTOPENDENTEPAGAMENTOTEMP como base.
  4. Se a coluna de ordenação for Num_Matricula, usa uma lógica de ordenação especial para números e strings.
  5. Executa queryCount para obter pTotalRegistros.
  6. Executa queryValorTotal para obter pValorTotal.
  7. Executa queryPaginada e retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: SPSELBENEFICIOFORNECIMENTOPENDENTEPAGAMENTOTEMP (query complexa para listar informações de benefícios fornecimento e fornecidos pendentes).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

Pagar(List<int> pLstIdBeneficioFornecimento, int pIdEmpresa, DateTime pDtaPagamento, int pIdFormaPagamento, int? pIdBanco, int? pIdConvenioBancario, bool pTEDPays, ref DataTable pDtErros, out Dictionary<int, int> pDicIdFormaPagamentoNumerosLote)

  • Lógica:
  1. Inicializa pDtErros e pDicIdFormaPagamentoNumerosLote.
  2. Se a forma de pagamento for Dinheiro, define pIdConvenioBancario como null.
  3. Abre uma nova conexão SQL e inicia uma transação.
  4. Carrega parâmetros de configuração da empresa (RealizarPagamentoApenasTodosItensInformadosLoteForemValidos).
  5. Chama ValidarPagamento para validar os benefícios e obter os válidos, preenchendo pDtErros.
  6. Se parametroFlagRealizarPagamentoApenasTodosItensInformadosLoteForemValidos for true e houver erros, limpa a lista de benefícios válidos.
  7. Se houver benefícios válidos:
  • Agrupa os benefícios por forma de pagamento.
  • Para cada grupo de forma de pagamento, chama EfetuarPagamento para processar o pagamento.
  • Adiciona o número do lote gerado a pDicIdFormaPagamentoNumerosLote.
  1. Comita a transação e envia para cálculo (FilaCalculoTransactionSingleton.EnviarParaCalculo).
  2. Em caso de erro, faz rollback da transação e remove da fila de cálculo (FilaCalculoTransactionSingleton.RemoverFilaCalculo).
  • Stored Procedures chamadas:
  • ParametroEspecifico.RecuperarParametroEspecifico (para parâmetros de configuração)
  • TAB_SP_VALIDA_PGTO_BENEFICIO (via ValidarPagamento)
  • ConvenioBancario.LoadObject
  • ConvenioBancario.RecuperarProximaSequencia
  • EmpresaSementePagamento.CarregarSequencial
  • ArquivoGerado.Save
  • ArquivoGeradoLote.Save
  • ArquivoGeradoEmpregado.Save
  • BeneficioFornecimento.Save
  • Cheque.VincularPagamentoFormularioCheque
  • IntegracaoPonteAzul.AdicionarIntegracaoPonteAzul
  • FilaCalculo.AdicionarEmpregadoFilaCalculoPorArquivoGerado
  • LogFilaCalculo.SalvarLog
  • Validações:
  • Validação de pagamento (via ValidarPagamento).
  • Validação de pagamentos simultâneos.
  • Regras de geração de número de sequência por convênio ou empresa.
  • Regras de valor máximo de cheque.
  • Exceções: Propaga exceções de métodos chamados.

ValidarPagamento(int pIdEmpresa, List<int> pLstIdBeneficioFornecimento, DateTime pDtaPagamento, int pIdFormaPagamento, int? pIdBanco, int? pIdConvenioBancario, bool pTEDPays, ref DataTable pDtErros, SqlTransaction pTrans)

  • Lógica:
  1. Constrói uma string listaIdBeneficioFornecimento a partir da lista de IDs.
  2. Cria uma lista de parâmetros para o stored procedure TAB_SP_VALIDA_PGTO_BENEFICIO.
  3. Atribui os valores dos filtros, tratando nulos com DBNull.Value.
  4. Executa o stored procedure usando DataAccessLayer.ExecuteReaderDs com a transação.
  5. Processa o DataSet retornado:
  • A primeira tabela (ds.Tables[0]) contém os IDs de benefícios válidos e suas formas de pagamento, que são adicionados a dicIdBeneficioFormaPagamentoValidos.
  • A segunda tabela (ds.Tables[1]) contém os erros de validação, que são preenchidos em pDtErros.
  1. Retorna dicIdBeneficioFormaPagamentoValidos.
  • Stored Procedures chamadas: TAB_SP_VALIDA_PGTO_BENEFICIO
  • @Idf_Empresa: ID da empresa.
  • @Lst_Id_Beneficio_Fornecimento: Lista de IDs de benefícios fornecimentos (string separada por vírgulas).
  • @Dta_Pagamento: Data de pagamento.
  • @Idf_Forma_Pagamento: ID da forma de pagamento.
  • @Idf_Banco: ID do banco (opcional).
  • @Idf_Convenio_Bancario: ID do convênio bancário (opcional).
  • @Idf_Tipo_Operacao: ID do tipo de operação (não usado no código, mas presente na SP).
  • @Flg_Pagamento_TEDPays: Flag para pagamento TEDPays.
  • Validações: As validações são realizadas dentro do stored procedure TAB_SP_VALIDA_PGTO_BENEFICIO.
  • Exceções: Nenhuma explícita.

EfetuarPagamento(List<int> pLstIdBeneficioFornecimento, int pIdEmpresa, DateTime pDtaPagamento, int pIdFormaPagamento, int? pIdBanco, int? pIdConvenioBancario, bool pTEDPays, out int pNumeroLote, SqlTransaction pTrans)

  • Lógica:
  1. Inicializa pNumeroLote e outras variáveis de controle.
  2. Carrega parâmetros de configuração (leitura de arquivo de retorno, número de sequência por convênio, valor máximo de cheque).
  3. Constrói uma string listaIdBeneficio a partir da lista de IDs.
  4. Cria parâmetros para a query SPSELINFORMACOESPARAPAGAMENTO.
  5. Executa a query para obter um DataTable com informações detalhadas dos benefícios a serem pagos.
  6. Itera sobre cada linha do DataTable:
  • Carrega o BeneficioFornecimento correspondente.
  • Validação: Ignora pagamentos que já possuem ArquivoGeradoEmpregado (pagamentos simultâneos).
  • Se for o primeiro pagamento do lote:
  • Cria e salva um ArquivoGerado (com data de geração, pagamento, empresa, forma de pagamento, status, banco, convênio, número de sequência).
  • Cria e salva um ArquivoGeradoLote.
  • Define pNumeroLote.
  • Define flagPrimeiroPagamentoLote como false.
  • Cria e salva um ArquivoGeradoEmpregado para o benefício atual.
  • Atualiza o BeneficioFornecimento com o ArquivoGeradoEmpregado e, se aplicável (não TEDPays e não requer leitura de retorno), define DataPagamento e DataRetorno no ArquivoGerado.
  • Se a forma de pagamento for Cheque, chama Cheque.VincularPagamentoFormularioCheque.
  1. Adiciona integrações com Ponte Azul e SuperCalc (FilaCalculo.AdicionarEmpregadoFilaCalculoPorArquivoGerado).
  • Stored Procedures chamadas:
  • ParametroEspecifico.RecuperarParametroEspecifico (para parâmetros de configuração)
  • SPSELINFORMACOESPARAPAGAMENTO (SELECT bf.Idf_Beneficio_Fornecimento, bf.Idf_Empregado, ISNULL(bf.Qtd_Fornecida, 0) * ISNULL(bf.Vlr_Unitario, 0) AS Vlr_Beneficio, f.Idf_Filial, Conta_Empregado.Idf_Banco, Conta_Empregado.Num_Agencia_Bancaria, Conta_Empregado.Num_Conta, Conta_Empregado.Num_DV_Conta, Conta_Empregado.Idf_Tipo_Conta FROM TAB_Beneficio_Fornecimento bf ... WHERE bf.Idf_Arquivo_Gerado_Empregado IS NULL AND bf.Dta_Pagamento IS NULL AND bf.Idf_Beneficio_Fornecimento IN (...) ORDER BY pf.Nme_Pessoa ASC)
  • BeneficioFornecimento.LoadObject
  • ArquivoGerado.Save
  • ArquivoGeradoLote.Save
  • ArquivoGeradoEmpregado.Save
  • BeneficioFornecimento.Save
  • Cheque.VincularPagamentoFormularioCheque
  • IntegracaoPonteAzul.AdicionarIntegracaoPonteAzul
  • FilaCalculo.AdicionarEmpregadoFilaCalculoPorArquivoGerado
  • Validações:
  • Verifica se o benefício já foi pago.
  • Validações implícitas nos métodos Save e VincularPagamentoFormularioCheque.
  • Exceções: Nenhuma explícita.

VerificaBeneficioMesSeguinte(DateTime data, ref Empregado objEmpregado, out DataTable dtRetorno, SqlTransaction tran = null)

  • Lógica:
  1. Constrói a query SELVERIFICABENEFICIOSPOSTERIORRESCISAO para buscar benefícios fornecimento e fornecidos que são posteriores à data fornecida e ainda não foram pagos.
  2. Cria parâmetros para @Idf_Empregado, @Mes, @Ano.
  3. Executa a query usando DataAccessLayer.ExecuteReaderDs (com ou sem transação).
  4. Se o DataTable resultante tiver linhas, atribui-o a dtRetorno e retorna true.
  5. Caso contrário, define dtRetorno como null e retorna false.
  • Stored Procedures chamadas: SELVERIFICABENEFICIOSPOSTERIORRESCISAO (query complexa com UNION ALL para verificar benefícios futuros não pagos).
  • @Idf_Empregado: ID do empregado.
  • @Mes: Mês da data.
  • @Ano: Ano da data.
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

ListarPendentesTransferencia(DateTime dtaTransferencia, List<int> LstEmpregadosAdicionados)

  • Lógica:
  1. Constrói a query SQL para listar benefícios fornecimento e fornecidos que estão pendentes de transferência (não pagos e com data de fornecimento posterior à dtaTransferencia).
  2. Cria parâmetros para @dta_transferencia e @Lst_Idf_Empregado (lista de IDs de empregados como string).
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: Query dinâmica (SELECT … FROM TAB_Beneficio_Fornecido bf … UNION ALL SELECT … FROM TAB_Beneficio_Fornecimento bf … WHERE bf.idf_empregado IN (SELECT CAST(Texto AS INT) FROM plataforma.TAB_SF_Split(@Lst_Idf_Empregado, ’,’)) AND DATEFROMPARTS(bf.Ano_Beneficio_Fornecido, bf.Mes_Beneficio_Fornecido, 1) > @dta_transferencia AND bf.Dta_Pagamento is null AND bf.idf_arquivo_gerado_empregado is null ORDER BY Num_Matricula, Num_Ano, Num_Mes, Des_Beneficio)
  • @dta_transferencia: Data de transferência.
  • @Lst_Idf_Empregado: Lista de IDs de empregados (string separada por vírgulas).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

CarregarListaIdFilialBeneficioFornecimento(List<int> lstPagamentosPendentes)

  • Lógica:
  1. Cria uma lista de parâmetros para @Lst_Id (lista de IDs de pagamentos pendentes como string).
  2. Constrói uma query SQL para selecionar os IDs distintos das filiais associadas aos benefícios fornecimento na lista.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader, adicionando os IDs das filiais a uma lista.
  5. Retorna a lista de IDs de filiais.
  • Stored Procedures chamadas: Query dinâmica (SELECT DISTINCT f.Idf_Filial FROM TAB_Beneficio_Fornecimento bf JOIN TAB_Empregado e ON e.Idf_Empregado = bf.Idf_Empregado JOIN TAB_Contrato c ON c.Idf_Contrato = e.Idf_Contrato LEFT JOIN TAB_Centro_Resultado cr ON cr.Idf_Centro_Resultado = e.Idf_Centro_Resultado JOIN TAB_Filial f ON f.Idf_Filial = ISNULL(cr.Idf_Filial, c.Idf_Filial_Gestora) WHERE bf.Idf_Beneficio_Fornecimento IN (SELECT CAST( Texto AS INT) FROM plataforma.TAB_SF_Split(@Lst_Id,',')))
  • @Lst_Id: Lista de IDs de benefícios fornecimentos (string separada por vírgulas).
  • Validações: Nenhuma explícita.
  • Exceções: Nenhuma explícita.

Stored Procedures

NomeParâmetrosPropósito
SPINSERT@Idf_Beneficio_Fornecimento (OUTPUT), @Idf_Beneficio, @Idf_Empregado, @Num_Ano, @Num_Mes, @Qtd_Fornecida, @Vlr_Unitario, @Vlr_Desconto, @Dta_Cadastro, @Qtd_Beneficio, @Idf_Frequencia_Beneficio, @Dta_Pagamento, @Idf_Arquivo_Gerado_Empregado, @Idf_Beneficio_Manual, @Idf_Forma_Pagamento_Beneficio, @Idf_Forma_Desconto_Beneficio, @Idf_Teto_Beneficio, @Vlr_Teto, @Idf_Pre_Fatura, @Idf_Beneficio_Regra, @Idf_Beneficio_Regra_Transporte, @Idf_Pagamento_Folha, @Qtd_Dias_Fornecido, @Qtd_Diaria_FornecidoInsere um novo registro na tabela TAB_Beneficio_Fornecimento e retorna o ID gerado.
SPUPDATE@Idf_Beneficio, @Idf_Empregado, @Num_Ano, @Num_Mes, @Qtd_Fornecida, @Vlr_Unitario, @Vlr_Desconto, @Dta_Cadastro, @Qtd_Beneficio, @Idf_Frequencia_Beneficio, @Dta_Pagamento, @Idf_Arquivo_Gerado_Empregado, @Idf_Beneficio_Manual, @Idf_Forma_Pagamento_Beneficio, @Idf_Forma_Desconto_Beneficio, @Idf_Teto_Beneficio, @Vlr_Teto, @Idf_Pre_Fatura, @Idf_Beneficio_Regra, @Idf_Beneficio_Regra_Transporte, @Idf_Pagamento_Folha, @Qtd_Dias_Fornecido, @Qtd_Diaria_Fornecido, @Idf_Beneficio_FornecimentoAtualiza um registro existente na tabela TAB_Beneficio_Fornecimento.
SPSELECTID@Idf_Beneficio_FornecimentoSeleciona um registro da tabela TAB_Beneficio_Fornecimento pelo seu ID.
SPDELETE@Idf_Beneficio_FornecimentoExclui um registro da tabela TAB_Beneficio_Fornecimento se não estiver pago ou vinculado a arquivos.
SPSELMESANONAOPAGOSPOREMPREGADO@Idf_EmpregadoSeleciona meses e anos distintos de BeneficioFornecimento não pagos para um empregado.
SPSELFORNECIMENTONAOPAGOSPOREMPREGADO@Idf_Empregado, @mes, @anoSeleciona IDs de empregados com fornecimentos não pagos para um mês e ano.
SPSELEMPREGADO`@Idf_Benef

📌 Status: Aguardando desenvolvimento 👤 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