🛠️ 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
| Nome | Tipo | Obrigatório | Regra |
|---|---|---|---|
| vsValidacaoPesquisar | EmployerValidationSummary | ⚪ Não | Exibe erros de validação para o grupo “Pesquisar” |
| vsValidacaoPagar | EmployerValidationSummary | ⚪ Não | Exibe erros de validação para o grupo “Pagar” |
| lblTipoBeneficio | Label | ⚪ Não | Rótulo para lsTipoBeneficio |
| lsTipoBeneficio | ListaSugestoes | ⚪ Não | Campo 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.” |
| divBeneficio | Div | ⚪ Não | Contêiner para o campo de Regra de Benefício. Visibilidade controlada. |
| lblBeneficio | Label | ⚪ Não | Rótulo para txtBeneficio |
| txtBeneficio | LocalizarBeneficio | ⚪ Não | Campo de busca para a regra de benefício. Mensagem de erro: “Campo Inválido.” |
| lblFormaPagamentoBeneficio | Label | ⚪ Não | Rótulo para lsFormaPagamentoBeneficio |
| lsFormaPagamentoBeneficio | ListaSugestoes | ⚪ Não | Campo 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.” |
| lblFilial | Label | ⚪ Não | Rótulo para txtFilial |
| txtFilial | LocalizarFilial | ⚪ Não | Campo de busca para a filial. Mensagem de erro: “Campo Filial é obrigatório.” e “Campo Filial preenchido com valor em um formato inválido.” |
| divCliente | Div | ⚪ Não | Contêiner para o campo de Cliente. Visibilidade controlada. |
| lblCliente | Label | ⚪ Não | Rótulo para txtCliente |
| txtCliente | LocalizarCliente | ⚪ Não | Campo de busca para o cliente. Mensagem de erro: “Campo Cliente é obrigatório.” e “Campo Cliente preenchido com valor em um formato inválido.” |
| divTipoContrato | Div | ⚪ Não | Contêiner para o campo de Tipo de Contrato. Visibilidade controlada. |
| lblTipoContrato | Label | ⚪ Não | Rótulo para lsTipoContrato |
| lsTipoContrato | ListaSugestoes | ⚪ Não | Campo 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.” |
| divContratoMae | Div | ⚪ Não | Contêiner para o campo de Contrato Mãe. Visibilidade controlada. |
| lblContratoMae | Label | ⚪ Não | Rótulo para txtContratoMae |
| txtContratoMae | LocalizarContrato | ⚪ Não | Campo de busca para o contrato mãe. Mensagem de erro: “Campo Inválido.” e “Campo Obrigatório.” |
| divContrato | Div | ⚪ Não | Contêiner para o campo de Contrato Filho. Visibilidade controlada. |
| lblContrato | Label | ⚪ Não | Rótulo para txtContrato |
| txtContrato | LocalizarContrato | ⚪ Não | Campo de busca para o contrato filho. Mensagem de erro: “Campo Contrato é obrigatório.” e “Campo Contrato preenchido com valor em um formato inválido.” |
| divDepartamento | Div | ⚪ Não | Contêiner para o campo de Departamento. Visibilidade controlada. |
| lblDepartamento | Label | ⚪ Não | Rótulo para txtDepartamento |
| txtDepartamento | LocalizarDepartamento | ⚪ Não | Campo de busca para o departamento. Mensagem de erro: “Campo Departamento é obrigatório.” e “Campo Departamento preenchido com valor em um formato inválido.” |
| divCentroResultado | Div | ⚪ Não | Contêiner para o campo de Centro de Resultado. Visibilidade controlada. |
| lblCentroResultado | Label | ⚪ Não | Rótulo para txtCentroResultado |
| txtCentroResultado | LocalizarCentroResultado | ⚪ Não | Campo 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.” |
| lblFuncao | Label | ⚪ Não | Rótulo para txtFuncao |
| txtFuncao | LocalizarFuncao | ⚪ Não | Campo 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.” |
| divSupervisor | Div | ⚪ Não | Contêiner para o campo de Supervisor. Visibilidade controlada. |
| lblSupervisor | Label | ⚪ Não | Rótulo para txtSupervisorGeral |
| txtSupervisorGeral | LocalizarSupervisor | ⚪ Não | Campo de busca para o supervisor. Mensagem de erro: “Campo Supervisor é Obrigatório.” e “Campo Filial deve conter uma das sugestões.” |
| divLotacao | Div | ⚪ Não | Contêiner para o campo de Lotação. Visibilidade controlada. |
| lblLotacao | Label | ⚪ Não | Rótulo para txtLotacao |
| txtLotacao | LocalizarLotacao | ⚪ Não | Campo de busca para a lotação. |
| lblTipoVinculo | Label | ⚪ Não | Rótulo para lsTipoVinculo |
| lsTipoVinculo | ListaSugestoes | ⚪ Não | Campo 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.” |
| lblEmpregado | Label | ⚪ Não | Rótulo para txtEmpregado |
| txtEmpregado | LocalizarEmpregado | ⚪ Não | Campo de busca para o empregado. Mensagem de erro: “Campo empregado é obrigatório.” e “Campo Empregado Preenchido com valor em um formato inválido.” |
| lblFormaPagamento | Label | ⚪ Não | Rótulo para lsFormaPagamento |
| lsFormaPagamento | ListaSugestoes | ⚪ Não | Campo 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.” |
| plhPagamentoTedPays | PlaceHolder | ⚪ Não | Contêiner para os campos de Pagamento TEDPays. Visibilidade controlada. |
| lblPagamentoTedPays | Label | ⚪ Não | Rótulo para lsPagamentoTedPays |
| lsPagamentoTedPays | ListaSugestoes | 🔴 Sim | Campo de seleção para Pagamento TEDPays. Mensagem de erro: “Campo Pagamento TEDPays é Obrigatório.” e “Campo Pagamento TEDPays deve conter uma das sugestões.” |
| lblBanco | Label | ⚪ Não | Rótulo para txtBanco |
| txtBanco | LocalizarBanco | ⚪ Não | Campo 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.” |
| lblTipoConta | Label | ⚪ Não | Rótulo para lsTipoConta |
| lsTipoConta | ListaSugestoes | ⚪ Não | Campo 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.” |
| lblPeriodo | Label | ⚪ Não | Rótulo para lsPeriodoMes |
| lblPeriodoMes | Label | ⚪ Não | Rótulo secundário para lsPeriodoMes |
| lsPeriodoMes | ListaSugestoes | ⚪ Não | Campo 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.” |
| lblPeriodoAno | Label | ⚪ Não | Rótulo secundário para txtPeriodoAno |
| txtPeriodoAno | ControlAlfaNumerico | ⚪ Não | Campo 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.” |
| btnPesquisar | Button | ⚪ Não | Botão para pesquisar pagamentos pendentes. |
| divGvwPendenciaPagamento | Div | ⚪ Não | Contêiner para a grid de pagamentos pendentes. |
| ddlSelecaoGridPendenciaPagamento | DropDownList | ⚪ Não | Dropdown para ações em massa na grid (Marcar/Desmarcar). |
| gvwPendenciaPagamento | EmployerGrid | ⚪ Não | Grid 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). |
| ckbSelecionarPagamento | ControlCheckBox | ⚪ Não | Checkbox para selecionar pagamentos na grid. |
| btnAbrirPagamento | ImageButton | ⚪ Não | Botão de aviso para abrir pagamento com erro na grid. |
| btnExcluirSelecionados | Button | ⚪ Não | Botão para excluir pagamentos selecionados na grid. |
| lblValorTotalConfirmacao | Label | ⚪ Não | Rótulo para txtValorTotalConfirmacao |
| txtValorTotalConfirmacao | ValorNumericoTextBox | 🔴 Sim | Campo 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.” |
| lblDataPagamentoConfirmacao | Label | ⚪ Não | Rótulo para txtDataPagamentoConfirmacao |
| txtDataPagamentoConfirmacao | DataTextBox | 🔴 Sim | Campo 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.” |
| lblFormaPagamentoConfirmacao | Label | ⚪ Não | Rótulo para lsFormaPagamentoConfirmacao |
| lsFormaPagamentoConfirmacao | ListaSugestoes | 🔴 Sim | Campo 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.” |
| lblBancoConfirmacao | Label | ⚪ Não | Rótulo para txtBancoConfirmacao |
| txtBancoConfirmacao | LocalizarBanco | ⚪ Não | Campo 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.” |
| lblConvenioBancarioConfirmacao | Label | ⚪ Não | Rótulo para txtConvenioBancarioConfirmacao |
| txtConvenioBancarioConfirmacao | LocalizarConvenioBancario | ⚪ Não | Campo 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.” |
| btnAlterarConvenioBancario | Button | ⚪ Não | Botão para alterar o convênio bancário (requer senha master). |
| btnPagar | Button | ⚪ Não | Botão para efetuar o pagamento. |
| btnImprimirCheque | Button | ⚪ Não | Botão para redirecionar para a tela de impressão de cheque. |
| btnRelatorioConfereciaBeneficio | Button | ⚪ Não | Botão para redirecionar para o relatório de conferência de benefício. |
| btnRelatorioValorLiquidoFolha | Button | ⚪ Não | Botão para redirecionar para o relatório de valor líquido da folha. |
| btnLimpar | Button | ⚪ Não | Botão para limpar os campos da tela. |
| btnVoltar | Button | ⚪ Não | Botão para voltar para a tela anterior. |
| ucModalConfirmacao | EmployerModalConfirmacao | ⚪ Não | Modal de confirmação genérica. |
| divGvwErros | Div | ⚪ Não | Contêiner para a grid de erros. Visibilidade controlada. |
| lblTituloGvwErros | Label | ⚪ Não | Título para a grid de erros. |
| gvwErros | EmployerGrid | ⚪ Não | Grid de erros durante o pagamento. Colunas: Matrícula, Empregado, Valor, Ocorrência. |
| modalConfirmacaoSenha | ConfirmacaoSenha | ⚪ Não | Modal para confirmação de senha (e.g., para alterar convênio bancário). |
| modalConfirmacaoSenhaTedPays | ConfirmacaoSenha | ⚪ Não | Modal para confirmação de senha específica para TEDPays. |
| pnlModalConfirmacaoAberturaPagamento | Panel | ⚪ Não | Painel da modal de confirmação de abertura de pagamento. |
| btnFecharModalConfirmacaoAberturaPagamento | ImageButton | ⚪ Não | Botão para fechar a modal de confirmação de abertura de pagamento. |
| lblEmpregadoModalConfirmacaoAberturaPagamento | Label | ⚪ Não | Rótulo para txtEmpregadoModalConfirmacaoAberturaPagamento |
| txtEmpregadoModalConfirmacaoAberturaPagamento | LocalizarEmpregado | 🔴 Sim | Campo 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.” |
| lblPeriodoModalConfirmacaoAberturaPagamento | Label | ⚪ Não | Rótulo para lsPeriodoMesModalConfirmacaoAberturaPagamento |
| lblPeriodoMesModalConfirmacaoAberturaPagamento | Label | ⚪ Não | Rótulo secundário para lsPeriodoMesModalConfirmacaoAberturaPagamento |
| lsPeriodoMesModalConfirmacaoAberturaPagamento | ListaSugestoes | 🔴 Sim | Campo 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.” |
| lblPeriodoAnoModalConfirmacaoAberturaPagamento | Label | ⚪ Não | Rótulo secundário para txtPeriodoAnoModalConfirmacaoAberturaPagamento |
| txtPeriodoAnoModalConfirmacaoAberturaPagamento | ControlAlfaNumerico | 🔴 Sim | Campo 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.” |
| lblValorPagamentoModalConfirmacaoAberturaPagamento | Label | ⚪ Não | Rótulo para txtValorPagamentoModalConfirmacaoAberturaPagamento |
| txtValorPagamentoModalConfirmacaoAberturaPagamento | ValorNumericoTextBox | 🔴 Sim | Campo 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.” |
| gvwErrosModalConfirmacaoAberturaPagamento | EmployerGrid | ⚪ Não | Grid de erros na modal de confirmação de abertura de pagamento. Colunas: Código, Descrição. |
| btnConfirmarModalConfirmacaoAberturaPagamento | Button | ⚪ Não | Botão para confirmar a abertura do pagamento na modal. |
| btnCancelarModalConfirmacaoAberturaPagamento | Button | ⚪ Não | Botão para cancelar a abertura do pagamento na modal. |
| hfIdPagamentoPendente | HiddenField | ⚪ Não | Armazena o ID do pagamento pendente. |
| hfIdPagamentoPendenteBeneficioFornecido | HiddenField | ⚪ Não | Armazena o ID do pagamento pendente de benefício fornecido. |
| hfModalConfirmacaoAberturaPagamento | HiddenField | ⚪ Não | Campo auxiliar para o ModalPopupExtender. |
| mpeModalConfirmacaoAberturaPagamento | ModalPopupExtender | ⚪ Não | Extender 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
truese o usuário não tiver a permissãoPermitirConfigurarComoEfetuarPagamentoBeneficio. - 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:
falsesePermiteEfetuarPagamentoTodasFiliaisfortrue, caso contráriotrue. - 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:
falseselsFormaPagamentoBeneficio.ValorIntfor “Espécie”, caso contráriotruese o usuário não tiver a permissãoPermitirConfigurarComoEfetuarPagamentoBeneficio. - 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
plhPagamentoTedPaysestiver 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:
falseselsFormaPagamentoBeneficio.ValorIntfor “Espécie” ou selsPagamentoTedPaysfor “Sim”, caso contráriotruese o usuário não tiver a permissãoPermitirConfigurarComoEfetuarPagamentoBeneficio. - 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.ValorIntfor “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:
trueselsFormaPagamentoConfirmacao.ValorIntfor “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:
trueselsFormaPagamentoConfirmacao.ValorIntfor “Banco” ou “Cheque”. - Desabilitado por padrão, habilitado se o usuário tiver permissão
PermitirConfigurarComoEfetuarPagamentoBeneficioou seFlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBancofortrue. - 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
txtDataPagamentoConfirmacaocai 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
txtDataPagamentoConfirmacaofor anterior àDataIniciodoPeriodoCalculoaberto, 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
pagamentoTEDPaysfortrueetxtBancoConfirmacao.IdBancoSelecionadonão tiver valor, lança umaExceptioncom 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 noTipoEstruturaGerencialdaEmpresalogada. - Se
UtilizaCentroResultadofortrue(Centro de Resultado): divCliente,divTipoContrato,divContratoMae,divContrato,divDepartamentosão ocultados (display: none).divCentroResultado,divLotacaosão exibidos (display: block).- Se
UtilizaCentroResultadoforfalse(Contrato e Departamento): divCliente,divTipoContrato,divContratoMae,divContrato,divDepartamentosão exibidos (display: block).divCentroResultado,divLotacaosão ocultados (display: none).- txtFilial.Obrigatorio: Definido como
truepor padrão, mas sePermiteEfetuarPagamentoTodasFiliaisfortrue, torna-sefalse. - txtFuncao.Enabled: Habilitado se
txtContrato.IdContratoSelecionadotiver valor. SeUtilizaCentroResultadofortrue, é sempre habilitado. - txtDepartamento.Enabled: Habilitado se
txtContrato.IdContratoSelecionadotiver valor. - plhPagamentoTedPays.Visible: Visível se
UtilizaPagamentosViaTEDPaysfortrueElsFormaPagamento.ValorIntfor “Banco”. - txtBanco.Enabled:
- Desabilitado por padrão.
- Habilitado se
lsFormaPagamento.ValorInttiver valor e não for “Dinheiro”. - Se
lsFormaPagamento.ValorIntfor “Banco” eUtilizaPagamentosViaTEDPaysfortrueelsPagamentoTedPaysfor “Sim”,txtBanco.Obrigatoriotorna-sefalseetxtBanco.Enabledpermanecetrue. - lsTipoConta.Enabled: Habilitado se
lsFormaPagamento.ValorIntfor “Banco”. Caso contrário, desabilitado e seu valor é limpo. - lsFormaPagamentoBeneficio.Obrigatorio: Se o usuário não tiver a permissão
PermitirConfigurarComoEfetuarPagamentoBeneficio, torna-setrue. - lsFormaPagamento.Obrigatorio: Se o usuário não tiver a permissão
PermitirConfigurarComoEfetuarPagamentoBeneficio, torna-setrue. - lsFormaPagamentoConfirmacao.Enabled: Desabilitado se o usuário não tiver a permissão
PermitirConfigurarComoEfetuarPagamentoBeneficio. - txtBancoConfirmacao.Enabled:
- Desabilitado por padrão.
- Habilitado se
lsFormaPagamentoConfirmacao.ValorIntfor “Banco” ou “Cheque” E o usuário tiver a permissãoPermitirConfigurarComoEfetuarPagamentoBeneficio. - Se
lsFormaPagamentoConfirmacao.ValorIntfor “Banco” eUtilizaPagamentosViaTEDPaysfortrueelsPagamentoTedPaysfor “Sim”,txtBancoConfirmacao.Enabledéfalsee seu texto é limpo. - txtConvenioBancarioConfirmacao.Enabled:
- Desabilitado por padrão.
- Habilitado se
lsFormaPagamentoConfirmacao.ValorIntfor “Banco” ou “Cheque” E (PermiteEfetuarPagamentoTodasFiliaisfortrueOUFlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBancofortrue). - ddlSelecaoGridPendenciaPagamento.Visible: Visível se
gvwPendenciaPagamentotiver linhas. - btnExcluirSelecionados.Visible: Visível se
gvwPendenciaPagamentotiver linhas. - txtFilial.Enabled: Habilitado se não houver pagamentos pendentes na grid OU se
PermiteEfetuarPagamentoTodasFiliaisfortrue. - lsFormaPagamentoBeneficio.Enabled: Habilitado se
PermitirConfigurarComoEfetuarPagamentofortrueOU se não houver pagamentos pendentes na grid. - lsFormaPagamento.Enabled: Habilitado se
PermitirConfigurarComoEfetuarPagamentofortrueOU se não houver pagamentos pendentes na grid. - txtBanco.Enabled: Habilitado se
lsFormaPagamento.ValorInttiver valor e não for “Dinheiro” E (PermitirConfigurarComoEfetuarPagamentofortrueOU 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_EmpregadoforDBNull.ValueOUErro_Tedpaysnão forDBNull.Value. - btnAbrirPagamento.Visible (na grid): Visível se
Idf_Arquivo_Gerado_Empregadonão forDBNull.ValueEErro_TedpaysforDBNull.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
trueselsPagamentoTedPaysfor “Sim” elsFormaPagamentoConfirmacaonão for “Dinheiro”. Caso contrário,false. - txtConvenioBancarioConfirmacao.ConsiderarTedPays: Definido como
trueselsPagamentoTedPaysfor “Sim” elsFormaPagamentoConfirmacaonã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.IdBancoSelecionadoquandotxtBanco.ValorAlteradoé disparado. - txtConvenioBancarioConfirmacao.IdBanco: É preenchido com o valor de
txtBancoConfirmacao.IdBancoSelecionadoquandotxtBancoConfirmacao.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
LstPagamentosPendenteseLstPagamentosPendentes2. - Atualiza a grid de pagamentos pendentes (
gvwPendenciaPagamento). - Habilita o campo
txtFilialse 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
LstPagamentosPendenteseLstPagamentosPendentes2. - Atualiza a grid de pagamentos pendentes.
- Abrir Pagamento (AbrirPagamento):
- Define
ArquivoGeradoEmpregadoeDataPagamentodoBeneficioFornecimentocomonull. - 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ãoSenhaMasterpara 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()ePreencherCamposPorParametrosRecebidos(). - 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
IdFilialPadraoUsuariotiver valor e nenhum parâmetro de filial for fornecido,txtFilialé preenchido comIdFilialPadraoUsuario. - 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
SenhaMastere, se sim, adiciona-a à lista de permissões. - Redireciona para
UrlAcessoNegadose o usuário não tiverVisualizarPagamentoBeneficio. - Desabilita
btnPagarse o usuário não tiverPagarBeneficio. - Desabilita
btnConfirmarModalConfirmacaoAberturaPagamentose o usuário não tiverAbrirPagamentoBeneficio. - Define
PermitirConfigurarComoEfetuarPagamentocom base na permissãoPermitirConfigurarComoEfetuarPagamentoBeneficio. Se não tiver, definelsFormaPagamentoBeneficio.ObrigatorioelsFormaPagamento.ObrigatoriocomotrueelsFormaPagamentoConfirmacao.Enabledcomofalse. - Configuração por Tipo de Estrutura Gerencial (ConfigurarPorTipoEstruturaGerencial):
- Carrega o objeto
Empresalogada (Empresa.LoadObject). - Define
UtilizaCentroResultadocom base emobjEmpresa.TipoEstruturaGerencial. - Ajusta a visibilidade dos painéis de filtro (
divCliente,divTipoContrato,divContratoMae,divContrato,divDepartamento,divCentroResultado,divLotacao). - Se
UtilizaCentroResultadofortrue, tenta carregar o contrato padrão por centro de resultado (Contrato.CarregarContratoCentroResultado) e preenchetxtContrato.IdContratoSelecionadoetxtFuncao.IdContrato. - Configuração de Obrigatoriedade da Forma de Pagamento do Empregado (ConfigurarObrigatoriedadeFormaPagamentoEmpregadoPorFormaPagamentoBeneficio):
- Se
lsFormaPagamentoBeneficio.ValorIntfor “Espécie”,lsFormaPagamento.ObrigatorioetxtBanco.Obrigatoriosão definidos comofalse. - Caso contrário,
lsFormaPagamento.ObrigatorioetxtBanco.Obrigatoriosã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”,txtConvenioBancarioConfirmacaoetxtBancoConfirmacaosão limpos e tornam-se não obrigatórios. - “Crédito”:
lsFormaPagamentoConfirmacao.ValorInté definido como o valor delsFormaPagamento.ValorInt. - “InformacaoFornecedor”:
lsFormaPagamentoConfirmacao.ValorInté definido como “Dinheiro”. - Padrão:
lsFormaPagamentoConfirmacao.ValorInté definido como o valor delsFormaPagamento.ValorInt. - Configuração de Banco por Forma de Pagamento (ConfigurarBancoPorFormaPagamento):
- Se
lsFormaPagamento.ValorIntfor “Cheque” e o usuário não tiverPermitirConfigurarComoEfetuarPagamento: lblBanco.Textmuda para “Banco Cheque”.txtBanco.Obrigatorioétrue(a menos quelsFormaPagamentoBeneficio.ValorIntseja “Espécie”).txtBanco.Enabledétrue.- Mensagens de erro de
txtBancosão atualizadas para “Banco do Cheque”. - Se
lsFormaPagamento.ValorIntfor “Banco”: lblBanco.Texté “Banco Conta Empregado”.txtBanco.Obrigatorioétrue(a menos quelsFormaPagamentoBeneficio.ValorIntseja “Espécie” e o usuário não tenhaPermitirConfigurarComoEfetuarPagamento).txtBanco.Enabledétrue.- Mensagens de erro de
txtBancosão atualizadas para “Banco da Conta do Empregado”. - Se
UtilizaPagamentosViaTEDPaysfortrueelsPagamentoTedPaysfor “Sim”,txtBanco.Obrigatoriotorna-sefalse. - Caso contrário,
txtBancoé limpo, desabilitado e não obrigatório. - Configuração de Tipo de Conta por Forma de Pagamento (ConfigurarTipoContaPorFormaPagamento):
- Se
lsFormaPagamento.ValorIntfor “Banco”: lsTipoConta.Enabledétrue.- Se
UtilizaPagamentosViaTEDPaysfortrueelsPagamentoTedPaysfor “Sim”,lsTipoContaé carregado comTipoConta.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.ValorIntfor “Banco”: - Se
UtilizaPagamentosViaTEDPaysfortrueelsPagamentoTedPaysfor “Sim”: txtBancoé desabilitado e limpo.txtConvenioBancarioConfirmacao.IdBancoé definido como “EmployerPagamentos”.- Caso contrário:
txtBanco.Enabledétrue.txtBancoConfirmacao.ConsiderarBancoConvenioEmpresaétrue.txtBancoConfirmacao.Enabledétruese o usuário tiverPermitirConfigurarComoEfetuarPagamento.txtBancoConfirmacao.Obrigatorioétrue.txtBancoConfirmacao.PermiteChequeénull.txtConvenioBancarioConfirmacao.Obrigatorioétrue.txtConvenioBancarioConfirmacao.EnabledétruesePermiteEfetuarPagamentoTodasFiliaisouFlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBancofortrue.- Se
lsFormaPagamentoConfirmacao.ValorIntfor “Cheque”: txtBancoConfirmacao.ConsiderarBancoConvenioEmpresaéfalse.txtBancoConfirmacao.Enabledétruese o usuário tiverPermitirConfigurarComoEfetuarPagamento.txtBancoConfirmacao.Obrigatorioétrue.txtBancoConfirmacao.PermiteChequeétrue.txtConvenioBancarioConfirmacao.IdConvenioBancarioSelecionadoénull.txtConvenioBancarioConfirmacao.EnabledétruesePermiteEfetuarPagamentoTodasFiliaisouFlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBancofortrue.txtConvenioBancarioConfirmacao.Obrigatorioétrue.- Caso contrário,
txtBancoConfirmacaoetxtConvenioBancarioConfirmacaosão limpos, desabilitados e não obrigatórios. - Configuração de Sugestão de Período por Filial (ConfigurarSugestaoPeriodoPorFilial):
- Se
txtFilial.IdFilialSelecionadativer valor, tenta carregar o período de cálculo aberto para a filial (PeriodoCalculoFilial.CarregarPeriodoAberto). - Se encontrado, preenche
lsPeriodoMes.ValorIntcom o mês etxtPeriodoAno.Textcom o ano do período. - Carregamento de Convênio Bancário por Filial e Banco (CarregarConvenioBancarioPorFilialBancoConfirmacao):
- Se
txtBancoConfirmacao.IdBancoSelecionadotiver valor: - Define
FlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBancocomofalse. - 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 eFlagFilialComMaisDeUmConvenioHabilitadoParaMesmoBancoé definido comotrue, 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
pagamentoTEDPayscom base emUtilizaPagamentosViaTEDPayselsPagamentoTedPays. - Validação: Lança
ExceptionsepagamentoTEDPaysfortrueetxtBancoConfirmacao.IdBancoSelecionadonão tiver valor (“Não é permitido pagamento TEDPays sem informar o banco.”). - Chama
BeneficioFornecimento.PagareBeneficioFornecido.Pagarpara processar os pagamentos, atualizandodtErrosAuxiliarepDicIdFormaPagamentoNumerosLote. - Chama
SolicitacaoAssincronapara iniciar a atividade assíncrona. - Integração EPAYS: Se
IntegracaoComEPAYSfortruee houver lotes gerados: - Recupera
UsuarioAPIEPAYSeSenhaAPIEPAYSdeParametroEspecifico. - Cria um objeto
EPaysRabbitMQe envia uma mensagemIntegrarPagamentoEPaysDtopara a filaQUEUE_EPAYS_PAGAMENTOpara cada lote. - Grava um registro em
IntegracaoEpaysHistorico. - Se os parâmetros de acesso à API EPAYS não forem encontrados, exibe um aviso.
- Atualiza
DtErroscomdtErrosAuxiliar. - 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
truese 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
ParametroExecucaoCollectioncom informações da empresa e usuário logado. - Adiciona os números dos lotes de pagamento à coleção de parâmetros.
- Chama
ProcessoAssincrono.IniciarAtividadepara 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ãoSenhaMaster, 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
LstPagamentosPendenteseLstPagamentosPendentes2à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
LstPagamentosPendentesSelecionadoscom 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ãoSenhaMaster. - Exibe a modal.
- Confirmação de Senha para Alterar Convênio Bancário (modalConfirmacaoSenha_OnConfirmar):
- Se o
CommandNamefor “AlterarConvenioBancario”, habilitatxtConvenioBancarioConfirmacaoe define o foco. - Fecha a modal.
- Confirmação de Senha para TEDPays (modalConfirmacaoSenhaTedPays_OnConfirmar):
- Se o
CommandNamefor “TedPays”, chamaEfetuarPagamento(). - 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
txtDataPagamentoConfirmacaoe 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.ListarCodigosRetornoPagamentoPorBeneficioouArquivoGeradoStatus.ListarCodigosRetornoPagamentoPorBeneficioFornecido). - Carregamento da Grid de Pagamentos Pendentes (gvwPendenciaPagamento_OnRowDataBound):
- Marca ou desmarca o checkbox
ckbSelecionarPagamentocom base na presença do ID do pagamento emLstPagamentosPendentesSelecionados.
🔄 6. Fluxos Principais
6.1. Inicialização da Tela
- Page_Load:
- Associa os eventos
ConfirmareCancelardaucModalConfirmacaoaos seus respectivos handlers. - Se não for um postback, chama
Inicializar().
- 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
DataCortePagamentoChequee a permissãoSenhaMasterpara 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.
- ConfigurarPermissoesTela():
- Carrega as permissões do usuário para a categoria
PagamentoeSenhaMaster. - 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.
- ConfigurarPorTipoEstruturaGerencial():
- Carrega o objeto
Empresalogada. - Define a propriedade
UtilizaCentroResultadocom base noTipoEstruturaGerencialda empresa. - Ajusta a visibilidade dos painéis de filtro (
divCliente,divTipoContrato,divContratoMae,divContrato,divDepartamento,divCentroResultado,divLotacao). - Se
UtilizaCentroResultadofortrue, tenta carregar o contrato padrão por centro de resultado (Contrato.CarregarContratoCentroResultado) e configuratxtContratoetxtFuncao.
- CarregarParametros():
- Carrega parâmetros específicos do sistema (
PermiteEfetuarPagamentoTodasFiliais,IntegracaoComEPAYS,UtilizaPagamentosViaTEDPays) usandoParametroEspecifico.RecuperarParametroEspecifico.
- PreencherCamposPorParametrosRecebidos():
- Popula os campos de filtro com valores recebidos via
ViewState(parâmetros da URL). - Se
IdFilialPadraoUsuarioestiver disponível e nenhum parâmetro de filial for fornecido, preenchetxtFilial.
6.2. Pesquisar Pagamentos Pendentes
- btnPesquisar_OnClick:
- Chama
PesquisarPendenciaPagamento(). - Chama
CarregarGridViewPendenciaPagamento().
- PesquisarPendenciaPagamento():
- Limpa a lista de erros (
DtErros) e a lista de pagamentos selecionados (LstPagamentosPendentesSelecionados). - Determina se o pagamento será TEDPays.
- Chama
BeneficioFornecimento.ListarIdPagamentosPendentes()eBeneficioFornecido.ListarIdPagamentosPendentes()para obter os IDs dos pagamentos pendentes com base nos filtros da tela, populandoLstPagamentosPendenteseLstPagamentosPendentes2.
- CarregarGridViewPendenciaPagamento():
- Chama
UIHelper.CarregarGridView()para preenchergvwPendenciaPagamentocom os dados retornados porBeneficioFornecimento.ListarInformacoesPagamentosPendentesTEMP(). - Atualiza a visibilidade do
ddlSelecaoGridPendenciaPagamentoebtnExcluirSelecionadoscom base na quantidade de registros. - Ajusta a habilitação de
txtFilial,lsFormaPagamentoBeneficio,lsFormaPagamento,txtBancocom base na existência de pagamentos pendentes e permissões. - Atualiza
txtValorTotalConfirmacaocom o valor total dos pagamentos.
6.3. Seleção de Pagamentos na Grid
- 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”.
- ckbSelecionarPagamento_CheckedChanged:
- Adiciona ou remove o ID do pagamento da linha clicada na lista
LstPagamentosPendentesSelecionados.
6.4. Abertura de Pagamento com Erro
- btnAbrirPagamento_OnClick:
- Recupera o
Idf_Beneficio_FornecimentoouIdf_Beneficio_Fornecidoda linha da grid. - Chama
CarregarInformacoesModalAberturaPagamento()para popular a modal. - Exibe a modal
mpeModalConfirmacaoAberturaPagamento.
- CarregarInformacoesModalAberturaPagamento():
- Carrega o objeto
BeneficioFornecimentoouBeneficioFornecidocorrespondente. - Preenche os campos da modal (
txtEmpregadoModalConfirmacaoAberturaPagamento,txtValorPagamentoModalConfirmacaoAberturaPagamento,lsPeriodoMesModalConfirmacaoAberturaPagamento,txtPeriodoAnoModalConfirmacaoAberturaPagamento). - Chama
CarregarGridViewErrosModalConfirmacaoAberturaPagamento()para exibir os erros do pagamento.
- 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.
- AbrirPagamento():
- Carrega o objeto
BeneficioFornecimento. - Define
ArquivoGeradoEmpregadoeDataPagamentocomonull. - Salva o objeto, reabrindo o pagamento.
6.5. Efetivar Pagamento
- 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().
- EfetuarPagamento():
- Chama
Pagar()(da própria tela) para processar os pagamentos. - Se
Pagar()retornartrue: - 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()retornarfalse, exibe mensagem de erro.
- 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()eBeneficioFornecido.Pagar()para efetivar os pagamentos, atualizando as listas de erros e lotes. - Chama
SolicitacaoAssincrona()para iniciar a geração de relatórios. - Se
IntegracaoComEPAYSestiver 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
truese pagamentos foram realizados,falsecaso contrário.
- 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
- btnLimpar_OnClick:
- Redireciona para a própria página (
PagamentoBeneficio.aspx), recarregando-a e limpando todos os campos.
6.7. Voltar
- 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 objetoBeneficioFornecidopelo 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 objetoBeneficioFornecimentopelo 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 objetoBeneficioFornecimento.- 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 objetoCentroResultadopelo 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 objetoContratopelo 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 objetoConvenioBancariopelo 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 objetoEmpregadopelo 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 objetoEmpresapelo 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 listalstExcecao.- 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 umEmployerGridcom dados de umDataTable.- 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_Statuspelo 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_Geradore exclui um registro da tabelaTAB_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_Geradore exclui um registro da tabelaTAB_Beneficio_Fornecido. - SPSELECTID (TAB_Beneficio_Fornecido_P1.cs)
- Parâmetros:
@Idf_Beneficio_Fornecido - Propósito: Seleciona um registro da tabela
TAB_Beneficio_Fornecidopelo 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_Fornecimentopelo seu ID. - SPDELETE (TAB_Beneficio_Fornecimento_P2.cs)
- Parâmetros:
@Idf_Beneficio_Fornecimento - Propósito: Exclui um registro da tabela
TAB_Beneficio_FornecimentoseDta_PagamentoeIdf_Arquivo_Gerado_EmpregadoforemNULLe não estiver emTAB_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_Resultadopelo 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_Geradore exclui um registro da tabelaTAB_Centro_Resultado. - SPSELECTID (TAB_Contrato_P1.cs)
- Parâmetros:
@Idf_Contrato - Propósito: Seleciona um registro da tabela
TAB_Contratopelo 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_Geradore exclui um registro da tabelaTAB_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_Bancariopelo 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_Empregadopelo 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_Geradore exclui um registro da tabelaTAB_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_Empresapelo 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_Geradore exclui um registro da tabelaTAB_Empresa. - SPSELECTID (TAB_Feriado_P1.cs)
- Parâmetros:
@Idf_Feriado - Propósito: Seleciona um registro da tabela
TAB_Feriadopelo 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_Geradore exclui um registro da tabelaTAB_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_Filialpelo 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_Geradore exclui um registro da tabelaTAB_Filial. - SPSELECTID (TAB_Integracao_Epays_Historico_P1.cs)
- Parâmetros:
@Idf_Integracao_Epays_Historico - Propósito: Seleciona um registro da tabela
TAB_Integracao_Epays_Historicopelo 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_Mespelo 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_Especificopelo 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_Geradore exclui um registro da tabelaTAB_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_Calculopelo 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_Geradore exclui um registro da tabelaTAB_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_Filialpelo 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_Geradore exclui um registro da tabelaTAB_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_Beneficiopelo 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_Contapelo 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_Contratopelo 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_Vinculopelo 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_Usuariopelo 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_Geradore exclui um registro da tabelaTAB_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(paralsFormaPagamentoBeneficio,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
txtBancoquando forma de pagamento é cheque) - “Campo Banco do Cheque preenchido com valor em um formato inválido.” (Erro de validação - summary para
txtBancoquando 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,txtBancoConfirmacaoetxtConvenioBancarioConfirmacaopodem 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étodo | Assinatura | Propósito |
|---|---|---|
GetParameters | private List<SqlParameter> GetParameters() | Prepara uma lista de parâmetros SQL para operações de INSERT e UPDATE. |
SetParameters | private void SetParameters(List<SqlParameter> parms) | Preenche uma lista de parâmetros SQL com os valores da instância atual de ParametroEspecifico. |
Insert | private void Insert() | Insere uma nova instância de ParametroEspecifico no banco de dados. |
Insert | private void Insert(SqlTransaction trans) | Insere uma nova instância de ParametroEspecifico no banco de dados dentro de uma transação existente. |
Update | private void Update() | Atualiza uma instância existente de ParametroEspecifico no banco de dados. |
Update | private void Update(SqlTransaction trans) | Atualiza uma instância existente de ParametroEspecifico no banco de dados dentro de uma transação existente. |
Save | public void Save() | Salva a instância atual de ParametroEspecifico no banco de dados (insere se for nova, atualiza se já existir). |
Save | public 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). |
Delete | public static void Delete(int idParametroEspecifico) | Exclui um registro de ParametroEspecifico do banco de dados pelo seu ID. |
Delete | public static void Delete(int idParametroEspecifico, SqlTransaction trans) | Exclui um registro de ParametroEspecifico do banco de dados pelo seu ID dentro de uma transação. |
Delete | public static void Delete(List<int> idParametroEspecifico) | Exclui múltiplos registros de ParametroEspecifico do banco de dados por uma lista de IDs. |
LoadDataReader | private static IDataReader LoadDataReader(int idParametroEspecifico) | Retorna um IDataReader com as colunas de um único registro de ParametroEspecifico. |
LoadDataReader | private static IDataReader LoadDataReader(int idParametroEspecifico, SqlTransaction trans) | Retorna um IDataReader com as colunas de um único registro de ParametroEspecifico dentro de uma transação. |
LoadDataReader | public 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. |
LoadObject | public static ParametroEspecifico LoadObject(int idParametroEspecifico) | Retorna uma instância de ParametroEspecifico preenchida a partir do banco de dados. |
LoadObject | public 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. |
CompleteObject | public bool CompleteObject() | Completa os atributos da instância atual de ParametroEspecifico a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa os atributos da instância atual de ParametroEspecifico a partir do banco de dados dentro de uma transação. |
SetInstance | private static bool SetInstance(IDataReader dr, ParametroEspecifico objParametroEspecifico) | Método auxiliar para preencher uma instância de ParametroEspecifico a partir de um IDataReader. |
SetInstance | private 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. |
ListarNaturezasPermitidasINSS15e16 | public static List<int> ListarNaturezasPermitidasINSS15e16() | Lista os IDs das naturezas permitidas para INSS 15 e 16. |
RecuperarParametroEspecifico | public 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. |
RecuperarParametroEspecifico | public 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. |
RecuperarParametroEspecifico | public 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. |
RecuperarParametroEspecifico | public 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. |
RecuperarParametroEspecificoEmpresa | public 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. |
RecuperarParametroEspecificoEmpresa | public 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. |
RecuperarParametroEspecificoEmpregado | public 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). |
RecuperarSomenteParametroEspecificoEmpresa | public 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. |
RecuperarSomenteParametroEspecificoEmpresa | public 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. |
ExisteParametroEspecificoCadastrado | public 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. |
Salvar | public 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. CadaSqlParameteré 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 porGetParameters()) e preenche os valores de cada parâmetro com os dados da instância atual deParametroEspecifico. - Atribui
_idParametroEspecifico,_parametro.IdParametro,_tipoValor.IdTipoValor. - Para
_valorParametro,_empresa,_filial,_contrato,_sindicato,_centroResultadoe_descricaoVerbasInformacao, verifica se o valor é nulo ou vazio e atribuiDBNull.Valuese for, caso contrário, atribui o valor da propriedade. - Atribui
_flagInativoe_flagValidado. - Se a instância não for persistida (
_persistedéfalse), define_idParametroEspecificocomoParameterDirection.Output(para receber o ID gerado pelo banco) e define_dataCadastrocomoDateTime.Now. - Se a instância já for persistida, define
_idParametroEspecificocomoParameterDirection.Input. - Define
_dataCadastroe_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:
- Chama
GetParameters()para obter uma lista de parâmetros SQL vazia. - Chama
SetParameters(parms)para preencher a lista de parâmetros com os dados da instância. - Abre uma nova conexão SQL e inicia uma transação.
- Executa a query
SPINSERT(um comando INSERT) usandoDataAccessLayer.ExecuteNonQueryCmd. - Recupera o
IdParametroEspecificogerado pelo banco (usandoSCOPE_IDENTITY()) e atribui à propriedade_idParametroEspecifico. - Limpa os parâmetros do comando.
- Define
_persistedcomotruee_modifiedcomofalse. - Comita a transação.
- 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.
- Chama
GetParameters()eSetParameters(parms). - Executa a query
SPINSERTusandoDataAccessLayer.ExecuteNonQueryCmdcom a transação fornecida. - Recupera o
IdParametroEspecificogerado e atualiza a instância. - Define
_persistedcomotruee_modifiedcomofalse.
- Stored Procedures chamadas:
SPINSERT(mesmos parâmetros deInsert()). - 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:
- Verifica se a instância foi modificada (
_modifiedétrue). - Se modificada, chama
GetParameters()eSetParameters(parms). - Executa a query
SPUPDATE(um comando UPDATE) usandoDataAccessLayer.ExecuteNonQuery. - Define
_modifiedcomofalse.
- 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.
- Verifica se a instância foi modificada (
_modifiedétrue). - Se modificada, chama
GetParameters()eSetParameters(parms). - Executa a query
SPUPDATEusandoDataAccessLayer.ExecuteNonQuerycom a transação fornecida. - Define
_modifiedcomofalse.
- Stored Procedures chamadas:
SPUPDATE(mesmos parâmetros deUpdate()). - 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.
- Verifica se a instância já foi persistida (
_persisted). - Se não foi persistida, chama
this.Insert(). - Se já foi persistida, chama
this.Update().
- Stored Procedures chamadas: Depende se é uma inserção ou atualização (chama
Insert()ouUpdate()). - Validações: Nenhuma explícita.
- Exceções: Propaga exceções de
Insert()ouUpdate().
Save(SqlTransaction trans)
- Lógica: Similar a
Save(), mas utiliza uma transação SQL já existente.
- Verifica se a instância já foi persistida (
_persisted). - Se não foi persistida, chama
this.Insert(trans). - Se já foi persistida, chama
this.Update(trans).
- Stored Procedures chamadas: Depende se é uma inserção ou atualização (chama
Insert(trans)ouUpdate(trans)). - Validações: Nenhuma explícita.
- Exceções: Propaga exceções de
Insert(trans)ouUpdate(trans).
Delete(int idParametroEspecifico)
- Lógica:
- Cria uma lista de
SqlParameterpara o ID do parâmetro específico e o ID do usuário gerador. - Atribui os valores aos parâmetros (o ID do usuário é obtido da sessão HTTP).
- Executa a query
SPDELETE(um comando UPDATE para registrar o usuário que “excluiu” e depois um DELETE físico) usandoDataAccessLayer.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.
- Cria uma lista de
SqlParametere atribui os valores. - Executa a query
SPDELETEusandoDataAccessLayer.ExecuteNonQuerycom a transação fornecida.
- Stored Procedures chamadas:
SPDELETE(mesmos parâmetros deDelete(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:
- Constrói uma query SQL dinâmica para realizar um UPDATE e um DELETE em massa.
- Itera sobre a lista de IDs fornecida, adicionando cada ID como um parâmetro nomeado à query e à lista de
SqlParameter. - Adiciona o ID do usuário gerador (da sessão HTTP) como o último parâmetro.
- 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 (...)eDELETE 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:
- Cria uma lista de
SqlParameterpara o ID do parâmetro específico. - Atribui o ID fornecido ao parâmetro.
- Executa a query
SPSELECTID(um comando SELECT) usandoDataAccessLayer.ExecuteReadere retorna oIDataReader.
- 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.
- Cria uma lista de
SqlParametere atribui o ID. - Executa a query
SPSELECTIDusandoDataAccessLayer.ExecuteReadercom a transação fornecida.
- Stored Procedures chamadas:
SPSELECTID(mesmos parâmetros deLoadDataReader(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:
- Calcula os limites
inicioefimpara a paginação. - Constrói duas queries SQL dinâmicas:
SPSELECTPAGpara a seleção paginada eSPSELECTCOUNTpara contar o total de registros. - Executa
SPSELECTCOUNTusandoDataAccessLayer.ExecuteScalarpara obter ototalRegistros. - Executa
SPSELECTPAGusandoDataAccessLayer.ExecuteReadere retorna oIDataReader.
- Stored Procedures chamadas: Queries dinâmicas construídas com:
SELECT ROW_NUMBER() OVER (ORDER BY [colunaOrdenacao] [direcaoOrdenacao]) AS RowID, ... FROM TAB_Parametro_Especifico ParSELECT 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:
- Chama
LoadDataReader(idParametroEspecifico)para obter umIDataReader. - Cria uma nova instância de
ParametroEspecifico. - Chama
SetInstance(dr, objParametroEspecifico)para preencher a instância. - Se
SetInstanceretornartrue, a instância preenchida é retornada. - Se
SetInstanceretornarfalse(nenhum registro encontrado), lança umaRecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente (chama
LoadDataReader). - Validações: Verifica se o registro foi encontrado.
- Exceções:
RecordNotFoundExceptionse 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.
- Chama
LoadDataReader(idParametroEspecifico, trans). - Cria uma nova instância de
ParametroEspecifico. - Chama
SetInstance(dr, objParametroEspecifico). - 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:
RecordNotFoundExceptionse o registro não for encontrado.
CompleteObject()
- Lógica:
- Chama
LoadDataReader(this._idParametroEspecifico)para obter umIDataReaderusando o ID da própria instância. - Chama
SetInstance(dr, this)para preencher a própria instância com os dados do reader. - Retorna o resultado de
SetInstance.
- Stored Procedures chamadas: Nenhuma diretamente (chama
LoadDataReader). - Validações: Nenhuma explícita.
- Exceções: Propaga exceções de
LoadDataReaderouSetInstance.
CompleteObject(SqlTransaction trans)
- Lógica: Similar a
CompleteObject(), mas utiliza uma transação SQL já existente.
- Chama
LoadDataReader(this._idParametroEspecifico, trans). - Chama
SetInstance(dr, this). - 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)ouSetInstance.
SetInstance(IDataReader dr, ParametroEspecifico objParametroEspecifico)
- Lógica: Este método privado estático lê uma linha do
IDataReadere mapeia os valores das colunas para as propriedades do objetoParametroEspecificofornecido. - 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.Valuepara 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
_persistedcomotruee_modifiedcomofalse. - Retorna
truese a instância foi preenchida,falsecaso contrário. - Garante que o
IDataReaderseja disposto no blocofinally. - 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âmetrodisposeadicional que controla se oIDataReaderdeve ser disposto no blocofinally. Isso é útil quando oIDataReaderprecisa 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:
- Executa a query
SELNATUREZASPERMITIDASINSS15E16usandoDataAccessLayer.ExecuteReader. - Lê a primeira linha do resultado.
- Extrai a string
Des_Verbas_Informacao. - Divide a string por vírgulas e converte cada parte para
int, retornando umaList<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_Informacaocontém números inteiros separados por vírgulas. - Exceções: Pode lançar
FormatExceptionse a conversão paraintfalhar.
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.
- Abre uma nova conexão SQL e inicia uma transação.
- Chama
RecuperarParametroEspecifico(enumNomeParametro, objEmpresa, objFilial, objContrato, objCentroResultado, trans). - Comita a transação se bem-sucedido, faz rollback caso contrário.
- 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
nullpara o parâmetroobjSindicatopara 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 comSindicato.
- Abre uma nova conexão SQL e inicia uma transação.
- Chama
RecuperarParametroEspecifico(enumNomeParametro, objEmpresa, objFilial, objContrato, objSindicato, objCentroResultado, trans). - Comita a transação se bem-sucedido, faz rollback caso contrário.
- 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:
- Cria uma lista de
SqlParameter. - Adiciona o
Idf_Parametro(convertendoenumNomeParametroparaint). - Para
objEmpresa,objFilial,objContrato,objSindicatoeobjCentroResultado, verifica se são nulos e adicionaDBNull.Valueou oIdcorrespondente. - Executa a função de tabela
TAB_SF_Parametro_EspecificousandoDataAccessLayer.ExecuteReadercom a transação fornecida. - Se houver um resultado, extrai o
Vlr_Parametroe o retorna. - 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.
- Abre uma nova conexão SQL e inicia uma transação.
- Chama
RecuperarParametroEspecificoEmpresa(enumNomeParametro, objEmpresa, trans). - Comita a transação se bem-sucedido, faz rollback caso contrário.
- 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:
- Cria uma lista de
SqlParameterpara oIdf_ParametroeIdf_Empresa. - Se
objEmpresafor nulo, adicionaDBNull.ValueparaIdf_Empresa. - Constrói uma query SQL que busca o
Vlr_ParametrodaTAB_Parametro_Especificofiltrando porIdf_ParametroeIdf_Empresa. Prioriza o parâmetro específico da empresa. - Executa a query usando
DataAccessLayer.ExecuteReadercom a transação. - Se encontrar um resultado, retorna o
Vlr_Parametro. - 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:
- Completa os objetos
objEmpregadoeobjEmpregado.Contrato. - Cria uma lista de
SqlParameterparaIdf_ParametroeIdf_Empresa(do contrato do empregado). - Adiciona parâmetros para
Idf_Filial(da filial gestora do contrato),Idf_Contrato(do contrato do empregado), tratando nulos. - Constrói uma query SQL complexa (copiada de uma função de banco de dados
fun_tab_paramentro_especifico) que busca oVlr_Parametrocom uma hierarquia de prioridade: primeiro por contrato, depois por filial, depois por empresa. - Executa a query usando
DataAccessLayer.ExecuteReader. - Se encontrar um resultado, retorna o
Vlr_Parametro. - 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.
- Abre uma nova conexão SQL e inicia uma transação.
- Chama
RecuperarSomenteParametroEspecificoEmpresa(enumNomeParametro, objEmpresa, trans). - Comita a transação se bem-sucedido, faz rollback caso contrário.
- 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:
- Cria uma lista de
SqlParameterpara oIdf_ParametroeIdf_Empresa. - Se
objEmpresafor nulo, adicionaDBNull.ValueparaIdf_Empresa. - Constrói uma query SQL que busca o
Vlr_ParametrodaTAB_Parametro_Especificofiltrando porIdf_ParametroeIdf_Empresa. Diferente deRecuperarParametroEspecificoEmpresa, este método não tenta buscar o parâmetro global se não encontrar na empresa. - Executa a query usando
DataAccessLayer.ExecuteReadercom a transação. - Se encontrar um resultado, retorna o
Vlr_Parametro. - 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:
- Cria uma lista de
SqlParameterpara todos os IDs de filtro. - Atribui os valores aos parâmetros, tratando
nullcomDBNull.Value. - Executa a query
SPEXISTEPARAMETROESPECIFICOCADASTRADOusandoDataAccessLayer.ExecuteScalar. - 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:
- Abre uma nova conexão SQL e inicia uma transação.
- Tenta salvar
objParametroEspecifico:
- Se
objParametroEspecifico.Parametronão estiver completo, ele é salvo primeiro. - Em seguida,
objParametroEspecificoé salvo (chamandoInsert(trans)ouUpdate(trans)).
- Se
objParametroEspecificofor nulo, apenasobjParametroé salvo. - Se
objAlteracaoMasternão for nulo, ele também é salvo. - Comita a transação se todas as operações forem bem-sucedidas.
- Em caso de erro, faz rollback da transação e retorna
false.
- Stored Procedures chamadas: Depende das operações de
Savedos objetosParametroEspecifico,ParametroeAlteracaoMaster. - Validações: Nenhuma explícita além das internas dos métodos
Savechamados. - Exceções: Captura e faz rollback de exceções, retornando
false.
Stored Procedures
| Nome | Parâmetros | Propó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_Informacao | Insere 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_Especifico | Atualiza um registro existente na tabela TAB_Parametro_Especifico. |
SPDELETE | @Idf_Usuario_Gerador, @Idf_Parametro_Especifico | Atualiza o Idf_Usuario_Gerador e depois exclui um registro da tabela TAB_Parametro_Especifico. |
SPSELECTID | @Idf_Parametro_Especifico | Seleciona um registro da tabela TAB_Parametro_Especifico pelo seu ID. |
SELNATUREZASPERMITIDASINSS15E16 | N/A | Seleciona 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_Sindicato | Verifica 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_Resultado | Funçã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étodo | Assinatura | Propósito |
|---|---|---|
GetParameters | private List<SqlParameter> GetParameters() | Prepara uma lista de parâmetros SQL para operações de INSERT e UPDATE. |
Insert | private void Insert() | Insere uma nova instância de PeriodoCalculo no banco de dados. |
Insert | private void Insert(SqlTransaction trans) | Insere uma nova instância de PeriodoCalculo no banco de dados dentro de uma transação existente. |
Update | private void Update() | Atualiza uma instância existente de PeriodoCalculo no banco de dados. |
Update | private void Update(SqlTransaction trans) | Atualiza uma instância existente de PeriodoCalculo no banco de dados dentro de uma transação existente. |
Save | public void Save() | Salva a instância atual de PeriodoCalculo no banco de dados (insere se for nova, atualiza se já existir). |
Save | public 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). |
Delete | public static void Delete(int idPeriodoCalculo) | Exclui um registro de PeriodoCalculo do banco de dados pelo seu ID. |
Delete | public static void Delete(int idPeriodoCalculo, SqlTransaction trans) | Exclui um registro de PeriodoCalculo do banco de dados pelo seu ID dentro de uma transação. |
Delete | public static void Delete(List<int> idPeriodoCalculo) | Exclui múltiplos registros de PeriodoCalculo do banco de dados por uma lista de IDs. |
LoadDataReader | private static IDataReader LoadDataReader(int idPeriodoCalculo) | Retorna um IDataReader com as colunas de um único registro de PeriodoCalculo. |
LoadDataReader | private static IDataReader LoadDataReader(int idPeriodoCalculo, SqlTransaction trans) | Retorna um IDataReader com as colunas de um único registro de PeriodoCalculo dentro de uma transação. |
LoadDataReader | public 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. |
LoadObject | public static PeriodoCalculo LoadObject(int idPeriodoCalculo) | Retorna uma instância de PeriodoCalculo preenchida a partir do banco de dados. |
LoadObject | public 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. |
CompleteObject | public bool CompleteObject() | Completa os atributos da instância atual de PeriodoCalculo a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa os atributos da instância atual de PeriodoCalculo a partir do banco de dados dentro de uma transação. |
SetInstance | private static bool SetInstance(IDataReader dr, PeriodoCalculo objPeriodoCalculo) | Método auxiliar para preencher uma instância de PeriodoCalculo a partir de um IDataReader. |
SetParameters | private void SetParameters(List<SqlParameter> parms) | Preenche uma lista de parâmetros SQL com os valores da instância atual de PeriodoCalculo. |
Compare | public int Compare(PeriodoCalculo x, PeriodoCalculo y) | Implementa a interface IComparer<PeriodoCalculo> para comparar dois objetos PeriodoCalculo. |
CarregarPeriodoCalculoAbertoFilialEmpregado | public static PeriodoCalculo CarregarPeriodoCalculoAbertoFilialEmpregado(int idEmpregado, SqlTransaction tran = null) | Carrega o período de cálculo aberto da filial de um empregado. |
CarregarPeriodoCalculoAbertoFilialEmpregadoCR | public 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. |
CarregarPeriodoCalculoAbertoPorEmpresa | public static bool CarregarPeriodoCalculoAbertoPorEmpresa(int pIdEmpresa, out PeriodoCalculo pObjPeriodoCalculo) | Carrega o período de cálculo aberto de uma empresa. |
CarregarPeriodoCalculoAbertoPorEmpresa | public 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. |
CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregado | public 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. |
CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregado | public 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). |
CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadoVerbaFixa | public static PeriodoCalculo CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadoVerbaFixa(SqlTransaction trans, Empregado objEmpregado) | Carrega o período de cálculo aberto da empresa/filial de um empregado para verbas fixas. |
CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregadoVerbaFixa | public 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). |
RecuperarPeriodoCalculoRescisaoFutura | public 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. |
RecuperarPeriodoCalculoRescisaoFutura | public 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). |
VerificaSeTodasFechadas | public 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. |
VerificaSeTodasFechadas | public 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. |
VerificaEmpresaFechada | public static bool VerificaEmpresaFechada(Empresa objEmpresa, PeriodoCalculo objPeriodoCalculo) | Verifica se a empresa já foi fechada para um determinado período de cálculo. |
VerificaEmpresaFechada | public 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. |
GetPeriodoPorDataAtual | public static int GetPeriodoPorDataAtual() | Recupera o ID do período de cálculo atual com base na data atual, criando-o se não existir. |
GetPeriodoPorDataAtual | public 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. |
GetMenorMaior | public 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. |
LoadObject | public static PeriodoCalculo LoadObject(int ano, int mes) | Recupera um objeto PeriodoCalculo com base no ano e mês. |
LoadObject | public 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. |
RecuperarPorData | public static PeriodoCalculo RecuperarPorData(DateTime data) | Recupera um objeto PeriodoCalculo para uma data específica, criando-o se não existir. |
RecuperarPorData | public 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. |
LoadDataReader | private static IDataReader LoadDataReader(int ano, int mes) | Retorna um IDataReader com o período de cálculo para um dado ano e mês. |
LoadDataReader | private 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. |
FecharPeriodoFiliais | public 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. |
FecharFilial | private 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. |
FecharFilial | private 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). |
LancarVerbasManuais | private 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. |
ListarPeriodoIntervalo | private static IDataReader ListarPeriodoIntervalo(DateTime dataInicio, DateTime dataFim) | Lista os períodos de cálculo dentro de um intervalo de datas. |
CarregarPeriodoIntervalo | public static List<PeriodoCalculo> CarregarPeriodoIntervalo(DateTime dataInicio, DateTime dataFim) | Carrega uma lista de objetos PeriodoCalculo dentro de um intervalo de datas. |
CarregarPeriodoIntervaloConjunto | public 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. |
RecuperaPISIrregulares | public static Dictionary<decimal, string> RecuperaPISIrregulares(int idfFilial, int idfPeriodoCalculo) | Recupera empregados com PIS irregular para uma filial e período de cálculo. |
RecuperaPISIrregularesTodasFiliais | public 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. |
ListarFiliaisFechamento | public 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. |
TodasFiliaisMovimentadasFechadas | public 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. |
VerificaCriaPeriodo | public 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. |
VerificaCriaPeriodo | public 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). |
RecalculandoEmpregado | private static void RecalculandoEmpregado(int idEmp, int idfPeriodoCalculo, int idfFilial, int idfUsuario) | Insere um empregado na tabela temporária de recálculo de variáveis. |
CarregarPorMesAno | public static PeriodoCalculo CarregarPorMesAno(int _mes, int _ano, SqlTransaction trans) | Carrega um objeto PeriodoCalculo pelo mês e ano dentro de uma transação. |
CarregarPorMesAno | public static PeriodoCalculo CarregarPorMesAno(int _mes, int _ano) | Carrega um objeto PeriodoCalculo pelo mês e ano (sem transação). |
ValidacaoAlteracaoDataAdmissiaoEmp | public 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. |
RecuperarUltimoPeriodoCalculoUtilizado | public static PeriodoCalculo RecuperarUltimoPeriodoCalculoUtilizado(Empregado objEmpregado) | Recupera o último período de cálculo utilizado por um empregado (baseado em holerites). |
RecuperarUltimoPeriodoCalculoCalculado | public static bool RecuperarUltimoPeriodoCalculoCalculado(Empregado objEmpregado, out PeriodoCalculo objPeriodoCalculo) | Recupera o último período de cálculo que teve holerite calculado para um empregado. |
ListarPeriodoCalculoPorAno | public static List<PeriodoCalculo> ListarPeriodoCalculoPorAno(int ano) | Lista todos os períodos de cálculo para um determinado ano. |
VerificarPeriodoFechadoAnoMes | public 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. |
ListarTodos | public static Dictionary<int, PeriodoCalculo> ListarTodos() | Lista todos os períodos de cálculo existentes em um dicionário. |
RecuperarUltimoPeriodoCalculoFechado | public static Boolean RecuperarUltimoPeriodoCalculoFechado(int idEmpresa, out PeriodoCalculo objPeriodo) | Recupera o último período de cálculo fechado para uma empresa. |
SalvarHistoricoPeriodoCalculo | public 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. |
AjusteHistoricoPeriodoCalculo | public 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. |
LoadObjectPorMesAno | public static PeriodoCalculo LoadObjectPorMesAno(int _mes, int _ano, SqlTransaction trans) | Carrega um objeto PeriodoCalculo pelo mês e ano dentro de uma transação. |
VerificaCalculoFechadoFilialEmpregado | public static bool VerificaCalculoFechadoFilialEmpregado(int idEmpregado, PeriodoCalculo objPeriodoCalculo) | Verifica se o período de cálculo de uma filial de um empregado está fechado. |
VerificaExistenciaPeriodoCalculo | public 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_idPeriodoCalculocomoParameterDirection.Outpute_dataCadastrocomoDateTime.Now. O_usuarioGeradoré obtido da sessão HTTP ou definido como 1. - Se a instância já for persistida,
_idPeriodoCalculoéParameterDirection.Input,_dataCadastromanté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
_idPeriodoCalculodos dois objetos. - Retorna 0 se forem iguais, -1 caso contrário. Observação: Uma implementação típica de
IComparerretornaria 1 sexfor maior quey, -1 sexfor menor quey, 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:
- Cria uma lista de parâmetros para
@Idf_Empregado. - Executa a query
SPSELECTPERIODOCALCULOFILIALPOREMPREGADOusandoDataAccessLayer.ExecuteReader(com ou sem transação). - Tenta preencher um novo objeto
PeriodoCalculocom o resultado. - Retorna o objeto
PeriodoCalculoencontrado ounullse nenhum for encontrado.
- Stored Procedures chamadas:
SPSELECTPERIODOCALCULOFILIALPOREMPREGADO @Idf_Empregado: ID do empregado.- Validações: Nenhuma explícita.
- Exceções: Nenhuma explícita, retorna
nullse não encontrar.
CarregarPeriodoCalculoAbertoFilialEmpregadoCR(int idEmpregado, SqlTransaction trans = null)
- Lógica: Similar a
CarregarPeriodoCalculoAbertoFilialEmpregado, mas usa a querySPSELECTPERIODOCALCULOFILIALCRPOREMPREGADOque considera a estrutura de Centro de Resultado.
- Cria uma lista de parâmetros para
@Idf_Empregado. - Executa a query
SPSELECTPERIODOCALCULOFILIALCRPOREMPREGADOusandoDataAccessLayer.ExecuteReader(com ou sem transação). - Tenta preencher um novo objeto
PeriodoCalculocom o resultado. - Retorna o objeto
PeriodoCalculoencontrado ounullse nenhum for encontrado.
- Stored Procedures chamadas:
SPSELECTPERIODOCALCULOFILIALCRPOREMPREGADO @Idf_Empregado: ID do empregado.- Validações: Nenhuma explícita.
- Exceções: Nenhuma explícita, retorna
nullse não encontrar.
CarregarPeriodoCalculoAbertoPorEmpresa(int pIdEmpresa, out PeriodoCalculo pObjPeriodoCalculo)
- Lógica:
- Cria uma lista de parâmetros para
@Idf_Empresa. - Executa a query
SELPERIODOCALCULOABERTOPOREMPRESAusandoDataAccessLayer.ExecuteReader. - Tenta preencher o objeto
pObjPeriodoCalculocom o resultado. - Retorna
truese um período for encontrado e preenchido,falsecaso contrário.
- Stored Procedures chamadas:
SELPERIODOCALCULOABERTOPOREMPRESA @Idf_Empresa: ID da empresa.- Validações: Nenhuma explícita.
- Exceções: Nenhuma explícita, retorna
falsese 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
falsese não encontrar.
CarregarPeriodoCalculoAbertoPorEmpresaFilialEmpregado(SqlTransaction trans, Empregado objEmpregado)
- Lógica:
- Completa o objeto
objEmpregado.Contratousando a transação. - Tenta carregar o período de cálculo aberto da empresa usando
CarregarPeriodoCalculoAbertoPorEmpresa(trans, objEmpregado.Contrato.Empresa.IdEmpresa, out pObjPeriodoCalculo). - Se nenhum período for encontrado para a empresa, busca o
idf_periodo_calculodaTAB_Periodo_Calculo_Filialpara 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 essePeriodoCalculo. - 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.
- Chama
RecuperarPeriodoCalculoRescisaoFuturapara ajustar o período se houver uma rescisão futura. - Retorna o
PeriodoCalculofinal.
- Stored Procedures chamadas:
SELPERIODOCALCULOABERTOPOREMPRESA(viaCarregarPeriodoCalculoAbertoPorEmpresa)- 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(viaRecuperarPeriodoCalculoRescisaoFutura)- 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).
- Abre uma nova conexão SQL e inicia uma transação.
- Chama a versão transacional do método.
- Comita a transação se bem-sucedido, faz rollback caso contrário.
- 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.
- Completa o objeto
objEmpregado.Contratousando a transação. - Busca o
idf_periodo_calculodaTAB_Periodo_Calculo_Filialpara 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 essePeriodoCalculo. - Retorna o
PeriodoCalculoencontrado.
- 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).
- Abre uma nova conexão SQL e inicia uma transação.
- Chama a versão transacional do método.
- Comita a transação se bem-sucedido, faz rollback caso contrário.
- 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:
- Inicializa
auxcomofalseeobjPeriodoCalculoTempcomobjPeriodoCalculoValidacao. - 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
DataSaidaPrevistafor posterior aoDataFimdoobjPeriodoCalculoValidacao: - Carrega o
PeriodoCalculocorrespondente à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
objPeriodoCalculoTempcomo o período futuro eauxcomotrue.
- Se
auxainda forfalse,objPeriodoCalculoNovoé definido comoobjPeriodoCalculoValidacao. objPeriodoCalculoNovoé finalmente definido comoobjPeriodoCalculoTemp.- Retorna
aux.
- Stored Procedures chamadas:
SPSELECTPORMESEANO(viaPeriodoCalculo.CarregarPorMesAno)SPSELECTPERIODOCALCULOFILIALPOREMPREGADO(viaHolerite.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).
- Abre uma nova conexão SQL e inicia uma transação.
- Chama a versão transacional do método.
- Comita a transação se bem-sucedido, faz rollback caso contrário.
- 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:
- Cria uma lista de parâmetros para
@Idf_Empresae@Idf_Periodo_Calculo. - Abre uma nova conexão SQL e inicia uma transação.
- Tenta obter o total de filiais da empresa com período de cálculo para o período atual (
SPGETNUMFILIAISEMPRESA). - Tenta obter o total de filiais fechadas para o período atual (
SPGETNUMFILIAISFECHADASEMPRESA). - Calcula a diferença.
- Comita a transação.
- Se a diferença for menor que 0, lança uma exceção de inconsistência.
- Retorna
truese a diferença for 0 (todas fechadas),falsecaso 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
Exceptionse a diferença for negativa. - Exceções:
Exceptionem 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.
- Cria uma lista de parâmetros.
- Obtém o total de filiais e filiais fechadas usando a transação fornecida.
- Calcula a diferença e retorna
truese for 0.
- Stored Procedures chamadas:
SPGETNUMFILIAISEMPRESASPGETNUMFILIAISFECHADASEMPRESA- Validações: Nenhuma explícita.
- Exceções: Nenhuma explícita.
VerificaEmpresaFechada(Empresa objEmpresa, PeriodoCalculo objPeriodoCalculo)
- Lógica:
- Cria uma lista de parâmetros para
@Idf_Empresae@Idf_Periodo_Calculo. - Executa a query
SPVERIFICAEMPRESAFECHADAusandoDataAccessLayer.ExecuteScalar. - Retorna
truese o resultado for maior que 0 (empresa fechada),falsecaso 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:
- Abre uma nova conexão SQL e inicia uma transação.
- Executa a query
SPGETPERIODODTpara verificar se existe um período de cálculo para a data atual. - Se não encontrar:
- Cria um novo objeto
PeriodoCalculocom 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.
- Se encontrar, retorna o ID do período existente.
- 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(viaobjPeriodoCalculo.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.
- Executa a query
SPGETPERIODODTusando a transação. - Se não encontrar, cria e salva um novo
PeriodoCalculousando a transação. - Retorna o ID do período.
- Stored Procedures chamadas:
SPGETPERIODODTSPINSERT(viaobjPeriodoCalculo.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:
- Executa a query
SPSELECTMENORMAIORusandoDataAccessLayer.ExecuteReader. - Se houver um resultado, extrai as datas
menoremaiore as atribui aos parâmetrosout. - 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
Exceptionse nenhum período de cálculo for encontrado. - Exceções:
Exceptionse não houver períodos cadastrados.
LoadObject(int ano, int mes)
- Lógica:
- Chama
LoadDataReader(ano, mes)para obter umIDataReader. - Tenta preencher um novo objeto
PeriodoCalculocom o resultado. - Retorna o objeto preenchido ou lança
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente (chama
LoadDataReader). - Validações: Lança
RecordNotFoundExceptionse 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
RecordNotFoundExceptionse o período não for encontrado. - Exceções:
RecordNotFoundException.
RecuperarPorData(DateTime data)
- Lógica:
- Chama
LoadDataReader(data.Year, data.Month). - Tenta preencher um novo objeto
PeriodoCalculo. - Se não conseguir preencher (período não existe):
- Cria um novo
PeriodoCalculocom base nadatafornecida. - Salva o novo período usando
objPeriodoCalculo.Save().
- Retorna o objeto
PeriodoCalculo.
- Stored Procedures chamadas: Nenhuma diretamente (chama
LoadDataReadereSave). - 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)eSave(trans)). - Validações: Cria o período se não existir.
- Exceções: Nenhuma explícita.
LoadDataReader(int ano, int mes)
- Lógica:
- Cria uma lista de parâmetros para
@Num_Anoe@Num_Mes. - Atribui os valores.
- Executa a query
SPSELECTPORMESEANOusandoDataAccessLayer.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.
- Inicializa as listas de
filiaisFechadas,filiaisnaoFechadaselstResponsavelDependente. - Itera sobre cada
idfFilialna listafiliais:
- Verifica se há itens pendentes na fila de cálculo para a filial (
FilaCalculo.NumeroItens). Se houver, adiciona a filial afiliaisnaoFechadas. - 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 afiliaisnaoFechadase registra o erro.
- Retorna um dicionário de resultados (atualmente vazio, mas o método
FecharFilialpreenche as listasout).
- Stored Procedures chamadas: Nenhuma diretamente (chama
FilaCalculo.NumeroItenseFecharFilial). - 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.
- Verifica se a empresa da filial utiliza Centro de Resultado.
- Carrega o
PeriodoCalculoatual da filial. - Chama
VerificaCriaPeriodopara garantir que o próximo período de cálculo exista ou seja criado. - Carrega o
PeriodoCalculoFilialaberto para a filial. - Seta a data de pagamento para benefícios fornecidos com quantidade zerada (
BeneficioFornecimento.FecharBeneficiosZerados,BeneficioFornecido.FecharBeneficiosZerados). - Atualiza dependentes para salário família (
Dependente.AtualizaDependenteSalarioFamilia). - Atualiza beneficiários (
Beneficiario.AtualizaBeneficiario). - Atualiza dependentes para IRRF (
Dependente.AtualizaDependenteIRRF), preenchendolstResponsavelDependente. - Marca o
oldPeriodoCalculoFilialcomo fechado, defineDataFechamentoe salva. - 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. - Cria e salva um novo
PeriodoCalculoFilialpara o próximo período, marcando-o como aberto. - Registra o histórico de fechamento de folha (
FechamentoFolhaHistorico). - Lança verbas manuais para o novo período (
LancarVerbasManuais). - Fornece insumos (
BeneficioControle.SalvarEnviarParaFornecimento). - Exclui e insere empregados na fila de cálculo (
FilaCalculo.ExcluirEmpregadosPorFilial,FilaCalculo.InserirEmpregadosAtivosPorFilial). - Insere empregados na fila Benesite (
FilaBenesite.InserirEmpregadosAtivosPorFilial_FechamentoFolha). - Insere empregados na fila de cálculo de benefício para o mês atual e o próximo (
FilaCalculoBeneficio.InserirEmpregadosAtivosPorFilial). - 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). - 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(viaBeneficioFornecimento.FecharBeneficiosZeradoseBeneficioFornecido.FecharBeneficiosZerados)SPVERBASMANUAISCR(viaLancarVerbasManuais)- Validações:
- Verifica se já existe um período de cálculo aberto para a filial no novo período.
- Exceções: Lança
Exceptionse 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>).
- Abre uma nova conexão SQL e inicia uma transação.
- Chama a versão transacional do método.
- Comita a transação e envia para cálculo (
FilaCalculoTransactionSingleton.EnviarParaCalculo) se bem-sucedido. - 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:
- Constrói a query
SPVERBASMANUAISCRdinamicamente, adaptando-a se a empresa utiliza Centro de Resultado (UtilizaCR). - Cria uma lista de parâmetros para
@Idf_Filiale@UtilizaCR. - Executa a query usando
DataAccessLayer.ExecuteNonQuerycom 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:
- Cria uma lista de parâmetros para
@Dta_Inicioe@Dta_Fim. - Executa a query
SPSELECTINTERVALOusandoDataAccessLayer.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:
- Chama
ListarPeriodoIntervalo(dataInicio, dataFim)para obter umIDataReader. - Itera sobre o
IDataReader, criando e preenchendo objetosPeriodoCalculopara cada registro encontrado. - 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:
- Cria uma lista de parâmetros para
@Dta_Inicioe@Dta_Fim. - Constrói uma query SQL que busca períodos de cálculo que contenham o intervalo fornecido.
- Executa a query usando
DataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, criando e preenchendo objetosPeriodoCalculopara cada registro encontrado. - 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:
- Cria uma lista de parâmetros para
@Idf_Filiale@Idf_Periodo_Calculo. - Executa a query
SPVERIFICAPISusandoDataAccessLayer.ExecuteReaderDspara obter umDataTable. - Se o
DataTabletiver linhas, converte cada linha em um objeto anônimo comCPFeNomee os agrupa em umDictionary<decimal, string>. - Retorna o dicionário ou
nullse 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:
- Converte a lista de IDs de filiais em uma string separada por vírgulas.
- Cria uma lista de parâmetros para
@filiaise@Idf_Periodo_Calculo. - Executa a query
SPVERIFICAPISTODASFILIAISusandoDataAccessLayer.ExecuteReaderDspara obter umDataTable. - Se o
DataTabletiver linhas, agrupa os resultados porROWIDe cria umDictionary<int, Dictionary<int, decimal>>onde a chave externa é oROWIDe o valor interno é um dicionário deIdFilialparaNum_CPF. - Retorna o dicionário ou
nullse 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:
- Constrói a query
SPGRIDFECHAMENTO2(que utiliza tabelas temporárias para acesso e dados de fechamento). - Cria uma lista de parâmetros para
@Idf_Usuario,@Idf_Periodo_Calculo,@Idf_Empresa,@SemMovimentacao,@Idf_Filial,@Fechado. - Adiciona a cláusula
ORDER BYà query secolunaOrdenacaonão for vazia. - Abre uma conexão SQL, cria um
SqlCommand, prepara o comando e usa umSqlDataAdapterpara preencher umDataSet. - 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:
- Abre uma conexão SQL e inicia uma transação.
- Chama
ListarFiliaisFechamentopara obter umDataTabledas filiais com movimentação e status de fechamento. - Itera sobre as linhas do
DataTable:
- Se alguma filial não estiver fechada (
Status_Filialforfalse), retornafalse.
- 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:
- Cria uma lista de parâmetros para
@Dta_Fim_Periodo. - Executa
SPVERIFICASEEXISTEPROXIMOPERIODOpara verificar se existe um período de cálculo com data de início posterior àDataFimdoobjPeriodoCalculo. - Se
numPeriodosfor 0 (não existe próximo período):
- Cria um novo
PeriodoCalculocom a data de início sendo o dia seguinte àDataFimdoobjPeriodoCalculo. - Define a
DataFimcomo 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.
- Se
numPeriodosfor maior que 0 (próximo período existe):
- Cria uma lista de parâmetros para
@Dta_Inicio_Novo_Periodo(dia seguinte àDataFimdoobjPeriodoCalculo). - Carrega o
PeriodoCalculoexistente usandoSetInstancee a querySPGETPROXIMOPERIODO. - 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(vianewPeriodoCalculo.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).
- Abre uma nova conexão SQL e inicia uma transação.
- Chama a versão transacional do método.
- Comita a transação se bem-sucedido, faz rollback caso contrário.
- 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_VARIAVELpara indicar que um empregado precisa ter suas variáveis recalculadas.
- Cria uma lista de parâmetros para
@Idf_Empregado,@Idf_Periodo_Calculo,@Idf_Filial,@Idf_Usuario,@Dta_Cadastro. - Atribui os valores fornecidos e
DateTime.NowparaDta_Cadastro. - Executa a query INSERT usando
DataAccessLayer.ExecuteNonQuery. - 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:
- Constrói uma query SQL para selecionar o
Idf_Periodo_CalculodaTAB_Periodo_Calculocom base no mês e ano. - Cria uma lista de parâmetros para
@MESe@ANO. - Executa a query usando
DataAccessLayer.ExecuteScalarcom a transação. - Se um ID for retornado, carrega o objeto
PeriodoCalculocorrespondente usandoLoadObject(id, trans). - Se nenhum ID for retornado ou ocorrer um erro, define
objPeriodoCalculocomonull. - 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(viaLoadObject(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).
- Abre uma nova conexão SQL e inicia uma transação.
- Chama a versão transacional do método.
- Comita a transação se bem-sucedido, faz rollback caso contrário.
- 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:
- Completa o objeto
objEmpregado.Contrato. - Cria uma lista de parâmetros para
@Idf_Filial(da filial gestora do contrato) e@Periodo. - Executa a query
SPVALIDACAOALTERACAODATATADMISSAOEMPusandoDataAccessLayer.ExecuteReader. - Retorna
truese houver um registro (indicando que a alteração da data de admissão interfere em um período fechado),falsecaso 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:
- Constrói uma query para selecionar o
Idf_Periodo_Calculodo último holerite de um empregado. - Cria um parâmetro para
@Idf_Empregado. - Executa a query usando
DataAccessLayer.ExecuteScalar. - Se um resultado for retornado, carrega o
PeriodoCalculocorrespondente usandoPeriodoCalculo.LoadObject. - Retorna o objeto
PeriodoCalculoounull.
- 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(viaPeriodoCalculo.LoadObject)- Validações: Nenhuma explícita.
- Exceções: Nenhuma explícita.
RecuperarUltimoPeriodoCalculoCalculado(Empregado objEmpregado, out PeriodoCalculo objPeriodoCalculo)
- Lógica:
- Inicializa
objPeriodoCalculocomonulleretornocomofalse. - Constrói uma query para selecionar o
Idf_Periodo_Calculodo último holerite calculado para um empregado. - Cria um parâmetro para
@Idf_Empregado. - Executa a query usando
DataAccessLayer.ExecuteScalar. - Se um resultado for retornado, carrega o
PeriodoCalculocorrespondente usandoPeriodoCalculo.LoadObject, defineobjPeriodoCalculoeretornocomotrue. - 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(viaPeriodoCalculo.LoadObject)- Validações: Nenhuma explícita.
- Exceções: Nenhuma explícita.
ListarPeriodoCalculoPorAno(int ano)
- Lógica:
- Constrói uma query para selecionar os
idf_periodo_calculodaTAB_Periodo_Calculopara um dado ano. - Cria um parâmetro para
@ano. - Executa a query usando
DataAccessLayer.ExecuteReaderDspara obter umDataTable. - Itera sobre as linhas do
DataTable, carregando cadaPeriodoCalculousandoPeriodoCalculo.LoadObjecte adicionando-o a uma lista. - 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(viaPeriodoCalculo.LoadObject)- Validações: Nenhuma explícita.
- Exceções: Nenhuma explícita.
VerificarPeriodoFechadoAnoMes(int Ano, int Mes, int idEmpresa, int? idFilial)
- Lógica:
- 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.
- Cria uma lista de parâmetros para
@Ano,@Mes,@Idf_Empresa,@Idf_Filial. - Atribui os valores, tratando
idFilialcomoDBNull.Valuese nulo. - Executa a query usando
DataAccessLayer.ExecuteScalar. - Retorna
truese o resultado for maior que 0 (indicando que o período está fechado),falsecaso 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:
- Constrói uma query para selecionar
idf_periodo_calculo,des_periodo_calculo,dta_inicio,dta_fimdaTAB_PERIODO_CALCULO. - Executa a query usando
DataAccessLayer.ExecuteReaderDspara obter umDataTable. - Itera sobre as linhas do
DataTable, criando e preenchendo objetosPeriodoCalculoe adicionando-os a umDictionary<int, PeriodoCalculo>(chave:Idf_Periodo_Calculo). - 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:
- Cria um parâmetro para
@Idf_Empresa. - Executa a query
SPSELECTULTIMOPERIODOFECHADOusandoDataAccessLayer.ExecuteReader. - Tenta preencher o objeto
objPeriodocom o resultado. - Retorna
truese um período for encontrado e preenchido,falsecaso 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.
- Abre uma nova conexão SQL e inicia uma transação.
- Chama
AjusteHistoricoPeriodoCalculo(trans, pIdMes, pIdAno, pIdEmpresa). - Comita a transação se bem-sucedido, faz rollback caso contrário.
- Retorna
truese bem-sucedido,falsecaso 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:
- Calcula a
DataNova(primeiro dia do mês/ano fornecidos). - Busca o
Idf_Periodo_Calculopara aDataNova(novo período aberto) e para o mês anterior (novo período fechado). - Atualiza a tabela
TAB_Fechamento_Folha, definindo oIdf_Periodo_Calculopara o novo período fechado para a empresa. - Atualiza a tabela
TAB_Periodo_Calculo_Filial, definindo oIdf_Periodo_Calculopara o novo período fechado (seFlg_Fechado = 1) ou para o novo período aberto (seFlg_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:
- Constrói uma query para selecionar o
PeriodoCalculocompleto com base no mês e ano. - Cria uma lista de parâmetros para
@MESe@ANO. - Executa a query usando
DataAccessLayer.ExecuteReadercom a transação. - Tenta preencher um novo objeto
PeriodoCalculocom o resultado. - 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:
RecordNotFoundExceptionse o período não for encontrado.
VerificaCalculoFechadoFilialEmpregado(int idEmpregado, PeriodoCalculo objPeriodoCalculo)
- Lógica:
- Cria uma lista de parâmetros para
@Idf_Empregado. - Executa a query
SPSELECTPERIODOCALCULOFECHADOFILIALPOREMPREGADOusandoDataAccessLayer.ExecuteReader. - Tenta preencher um novo objeto
PeriodoCalculocom o resultado. - Compara o
IdPeriodoCalculodoobjPeriodoCalculofornecido com oIdPeriodoCalculodo período retornado. - Retorna
truese forem iguais,falsecaso 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:
- Chama
LoadDataReader(idPeriodoCalculo)para obter umIDataReader. - Tenta ler a primeira linha do
IDataReader. - Retorna
truese conseguir ler (o período existe),falsecaso contrário.
- Stored Procedures chamadas: Nenhuma diretamente (chama
LoadDataReader). - Validações: Nenhuma explícita.
- Exceções: Nenhuma explícita.
Stored Procedures
| Nome | Parâmetros | Propósito |
|---|---|---|
SPINSERT | @Idf_Periodo_Calculo (OUTPUT), @Des_Periodo_Calculo, @Dta_Inicio, @Dta_Fim, @Dta_Cadastro, @Idf_Usuario_Gerador | Insere 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_Calculo | Atualiza um registro existente na tabela TAB_Periodo_Calculo. |
SPDELETE | @Idf_Usuario_Gerador, @Idf_Periodo_Calculo | Atualiza o Idf_Usuario_Gerador e depois exclui um registro da tabela TAB_Periodo_Calculo. |
SPSELECTID | @Idf_Periodo_Calculo | Seleciona um registro da tabela TAB_Periodo_Calculo pelo seu ID. |
SELPERIODOCALCULOABERTOPOREMPRESA | @Idf_Empresa | Seleciona o período de cálculo aberto para uma empresa, considerando o último fechamento de folha. |
SPGETPERIODODT | N/A | Seleciona o Idf_Periodo_Calculo para o período que abrange a data atual. |
SPSELECTPORMESEANO | @Num_Mes, @Num_Ano | Seleciona um registro da tabela TAB_Periodo_Calculo pelo mês e ano de início. |
SPSELECTINTERVALO | @Dta_Inicio, @Dta_Fim | Seleciona registros da tabela TAB_Periodo_Calculo que se sobrepõem a um intervalo de datas. |
SPVERIFICAPIS | @Idf_Periodo_Calculo, @Idf_Filial | Retorna CPF e nome de empregados com PIS nulo ou vazio para uma filial e período. |
SPVERIFICAPISTODASFILIAIS | @Idf_Periodo_Calculo, @filiais | Retorna 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, @Fechado | Consulta 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, @Fechado | Versão otimizada de SPGRIDFECHAMENTO utilizando tabelas temporárias e SET TRAN ISOLATION LEVEL READ UNCOMMITTED. |
SPVERIFICAEMPRESAFECHADA | @Idf_Empresa, @Idf_Periodo_Calculo | Verifica se a empresa possui um registro em TAB_Fechamento_Folha para o período de cálculo. |
SPGETNUMFILIAISFECHADASEMPRESA | @Idf_Empresa, @Idf_Periodo_Calculo | Conta 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_Calculo | Conta o número de filiais ativas de uma empresa que possuem um PeriodoCalculoFilial para o período. |
SPVERIFICASEEXISTEPROXIMOPERIODO | @Dta_Fim_Periodo | Verifica se existe algum PeriodoCalculo com Dta_Inicio maior que a @Dta_Fim_Periodo fornecida. |
SPGETPROXIMOPERIODO | @Dta_Inicio_Novo_Periodo | Seleciona o PeriodoCalculo cuja Dta_Inicio corresponde à @Dta_Inicio_Novo_Periodo. |
SPGETNUMEMPRESASCOMPERMISSAOFECHADAS | @Idf_Periodo_Calculo_Anterior, @Idf_Usuario | Conta o número de empresas (com permissão do usuário) que foram fechadas no período de cálculo anterior. |
SPGETPERIODODATAFIM | @Dta_Fim | Seleciona o Idf_Periodo_Calculo para o período que termina na @Dta_Fim fornecida. |
SPGETNUMERODEEMPRESASCOMPERIODOCALCULO | @Idf_Periodo_Calculo_Anterior, @Idf_Usuario | Retorna 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, @Periodo | Verifica se a data de admissão de um empregado interfere em um período de cálculo fechado para a filial. |
SPSELECTPERIODOCALCULOFECHADOFILIALPOREMPREGADO | @Idf_Empregado | Seleciona o PeriodoCalculo da filial de um empregado que está fechado, ordenado pela Dta_Inicio ascendente. |
SPSELECTPERIODOCALCULOABERTOFILIALCRPOREMPREGADO | @Idf_Empregado | Seleciona o PeriodoCalculo da filial de um empregado que está aberto, considerando a estrutura de Centro de Resultado. |
SPSELECTPERIODOCALCULOABERTOFILIALPOREMPREGADO | @Idf_Empregado | Seleciona o PeriodoCalculo da filial de um empregado que está aberto, ordenado pela Dta_Inicio ascendente. |
SPSELECTULTIMOPERIODOFECHADO | @Idf_Empresa | Seleciona o último PeriodoCalculo fechado para uma empresa. |
SPSELECTMENORMAIOR | N/A | Retorna a menor Dta_Inicio e a maior Dta_Fim da tabela TAB_Periodo_Calculo. |
Query dinâmica em LancarVerbasManuais | @Idf_Filial, @UtilizaCR | Insere registros na TAB_Verba_Manual para empregados ativos com lançamentos vigentes, considerando a estrutura gerencial. |
Query dinâmica em CarregarPeriodoIntervaloConjunto | @Dta_Inicio, @Dta_Fim | Seleciona períodos de cálculo que abrangem um intervalo de datas. |
Query dinâmica em RecuperarUltimoPeriodoCalculoUtilizado | @Idf_Empregado | Seleciona o Idf_Periodo_Calculo do último holerite de um empregado. |
Query dinâmica em RecuperarUltimoPeriodoCalculoCalculado | @Idf_Empregado | Seleciona o Idf_Periodo_Calculo do último holerite calculado para um empregado. |
Query dinâmica em ListarPeriodoCalculoPorAno | @ano | Seleciona idf_periodo_calculo para um dado ano. |
Query dinâmica em AjusteHistoricoPeriodoCalculo | @Ano, @Mes, @Idf_Empresa | Atualiza Idf_Periodo_Calculo em TAB_Fechamento_Folha e TAB_Periodo_Calculo_Filial para ajustar o histórico. |
Query dinâmica em LoadObjectPorMesAno | @MES, @ANO | Seleciona 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étodo | Assinatura | Propósito |
|---|---|---|
GetParameters | private List<SqlParameter> GetParameters() | Prepara uma lista de parâmetros SQL para operações de INSERT e UPDATE. |
SetParameters | private void SetParameters(List<SqlParameter> parms) | Preenche uma lista de parâmetros SQL com os valores da instância atual de PeriodoCalculoFilial. |
Insert | private void Insert() | Insere uma nova instância de PeriodoCalculoFilial no banco de dados. |
Insert | private void Insert(SqlTransaction trans) | Insere uma nova instância de PeriodoCalculoFilial no banco de dados dentro de uma transação existente. |
Update | private void Update() | Atualiza uma instância existente de PeriodoCalculoFilial no banco de dados. |
Update | private void Update(SqlTransaction trans) | Atualiza uma instância existente de PeriodoCalculoFilial no banco de dados dentro de uma transação existente. |
Save | public void Save() | Salva a instância atual de PeriodoCalculoFilial no banco de dados (insere se for nova, atualiza se já existir). |
Save | public 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). |
Delete | public static void Delete(int idPeriodoCalculoFilial) | Exclui um registro de PeriodoCalculoFilial do banco de dados pelo seu ID. |
Delete | public static void Delete(int idPeriodoCalculoFilial, SqlTransaction trans) | Exclui um registro de PeriodoCalculoFilial do banco de dados pelo seu ID dentro de uma transação. |
Delete | public static void Delete(List<int> idPeriodoCalculoFilial) | Exclui múltiplos registros de PeriodoCalculoFilial do banco de dados por uma lista de IDs. |
LoadDataReader | private static IDataReader LoadDataReader(int idPeriodoCalculoFilial) | Retorna um IDataReader com as colunas de um único registro de PeriodoCalculoFilial. |
LoadDataReader | private static IDataReader LoadDataReader(int idPeriodoCalculoFilial, SqlTransaction trans) | Retorna um IDataReader com as colunas de um único registro de PeriodoCalculoFilial dentro de uma transação. |
LoadDataReader | public 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. |
LoadObject | public static PeriodoCalculoFilial LoadObject(int idPeriodoCalculoFilial) | Retorna uma instância de PeriodoCalculoFilial preenchida a partir do banco de dados. |
LoadObject | public 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. |
CompleteObject | public bool CompleteObject() | Completa os atributos da instância atual de PeriodoCalculoFilial a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa os atributos da instância atual de PeriodoCalculoFilial a partir do banco de dados dentro de uma transação. |
SetInstance | private static bool SetInstance(IDataReader dr, PeriodoCalculoFilial objPeriodoCalculoFilial) | Método auxiliar para preencher uma instância de PeriodoCalculoFilial a partir de um IDataReader. |
ListarPeriodoAberto | public static IDataReader ListarPeriodoAberto(int idFilial) | Lista o período de cálculo aberto para uma filial. |
ListarPeriodoAberto | public static IDataReader ListarPeriodoAberto(int idFilial, SqlTransaction trans) | Lista o período de cálculo aberto para uma filial dentro de uma transação. |
GetIdfPeriodoAberto | public static int GetIdfPeriodoAberto(int idFilial) | Retorna o ID do período de cálculo aberto para uma filial. |
GetIdfPeriodoAberto | public 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. |
CarregarPeriodoAberto | public static bool CarregarPeriodoAberto(int idFilial, out PeriodoCalculo objPerCalculo, SqlTransaction trans) | Carrega o objeto PeriodoCalculo aberto para uma filial dentro de uma transação. |
CarregarPeriodoAberto | public static bool CarregarPeriodoAberto(int idFilial, out PeriodoCalculo objPerCalculo) | Carrega o objeto PeriodoCalculo aberto para uma filial. |
CarregarPeriodoCalculoFilialAbertoPorFilial | public static bool CarregarPeriodoCalculoFilialAbertoPorFilial(int pIdfFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial) | Carrega o objeto PeriodoCalculoFilial aberto para uma filial específica. |
CarregarPeriodoCalculoFilialAbertoPorContrato | public static bool CarregarPeriodoCalculoFilialAbertoPorContrato(int pIdfContrato, int pIdfFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial) | Carrega o objeto PeriodoCalculoFilial aberto para um contrato e filial específicos. |
CarregarPeriodoCalculoFilialAbertoPorCentroResultado | public static bool CarregarPeriodoCalculoFilialAbertoPorCentroResultado(int pIdfCentroResultado, int pIdfFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial) | Carrega o objeto PeriodoCalculoFilial aberto para um centro de resultado e filial específicos. |
CarregarUltimoPeriodoFechadoPorFilial | public static bool CarregarUltimoPeriodoFechadoPorFilial(int pIdFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial) | Recupera o último período de cálculo fechado de uma filial. |
CarregarUltimoPeriodoFechadoPorFilial | public 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. |
RecuperarPeriodoAtual | public static string RecuperarPeriodoAtual(int idFilial) | Recupera a descrição do período de cálculo atual para uma filial. |
RecuperaPeriodoFechadoFilial | public 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. |
RecuperaDataMaximaPeriodoFechadoFilial | public 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. |
PrepareCommand | private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, List<SqlParameter> cmdParms) | Método auxiliar para preparar comandos SQL. |
RecuperarDataInicialPeriodoAtual | public 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. |
RecuperarDataInicialPeriodoAtual | public static DateTime RecuperarDataInicialPeriodoAtual(int idFilial) | Recupera a data inicial do período de cálculo atual para uma filial. |
RecuperarDataFinalPeriodoAtual | public static DateTime RecuperarDataFinalPeriodoAtual(int idFilial) | Recupera a data final do período de cálculo atual para uma filial. |
RecuperarDataFinalPeriodoAtual | public 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. |
GetIdfPeriodoPorData | public static int GetIdfPeriodoPorData(int idFilial, DateTime dtaReferencia) | Retorna o ID do período de cálculo para uma data de referência e filial. |
GetIdfPeriodoPorData | public 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. |
ListarAnos | public static IDataReader ListarAnos() | Lista todos os anos cadastrados em TAB_Periodo_Calculo. |
GetByMesAno | public static PeriodoCalculo GetByMesAno(string mesAno) | Retorna um objeto PeriodoCalculo com base na descrição “mês/ano”. |
CarregarPeriodoCalculoFilialAberto | public static bool CarregarPeriodoCalculoFilialAberto(int idFilial, out PeriodoCalculoFilial objPeriodoCalculoFilial, SqlTransaction trans) | Carrega o PeriodoCalculoFilial aberto para uma filial dentro de uma transação. |
CarregarPeriodoCalculoFilialAberto | public static bool CarregarPeriodoCalculoFilialAberto(int idFilial, out PeriodoCalculoFilial objPeriodoCalculoFilial) | Carrega o PeriodoCalculoFilial aberto para uma filial. |
CarregarPeriodoCalculoFilialAberto | public 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. |
ListarQuantidadeFiliaisAberto | public static IDataReader ListarQuantidadeFiliaisAberto(int idEmpresa) | Lista a quantidade de filiais abertas para um período de cálculo para um usuário. |
ListarFiliaisAberto | public 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. |
ListarFiliaisAberto | public 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. |
VerificarPeriodoCalculoFilial | public 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
_dataFechamentotiver valor, atribui-o ao parâmetro, caso contrário,DBNull.Value. - Se a instância não for persistida (
_persistedéfalse), define_idPeriodoCalculoFilialcomoParameterDirection.Output. - Se a instância já for persistida,
_idPeriodoCalculoFilialéParameterDirection.Input. - O
_usuarioGeradoré obtido da sessão HTTP ou definido como 1. _dataAlteracaoé definido comoDateTime.Now.- Stored Procedures chamadas: Nenhuma diretamente.
- Validações: Nenhuma explícita.
ListarPeriodoAberto(int idFilial)
- Lógica:
- Cria uma lista de parâmetros para
@Idf_Filial. - Atribui o
idFilialao parâmetro. - Executa a query
SPGETPERIODOATUALFILIAL2usandoDataAccessLayer.ExecuteReadere retorna oIDataReader.
- 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:
- Cria uma lista de parâmetros para
@Idf_Filial. - Atribui o
idFilialao parâmetro. - Executa a query
SPGETIDFPERIODOATUALusandoDataAccessLayer.ExecuteScalare retorna o resultado convertido paraint.
- 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:
- Tenta obter o ID do período de cálculo aberto para a filial usando
GetIdfPeriodoAberto(idFilial, trans). - Se conseguir o ID, carrega o objeto
PeriodoCalculocorrespondente usandoPeriodoCalculo.LoadObject(idfPeriodo, trans). - Se ocorrer qualquer exceção, define
objPerCalculocomonulle retornafalse. - Retorna
truese o objeto for carregado com sucesso.
- Stored Procedures chamadas: Nenhuma diretamente (chama
GetIdfPeriodoAbertoePeriodoCalculo.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
GetIdfPeriodoAbertoePeriodoCalculo.LoadObject). - Validações: Nenhuma explícita.
- Exceções: Captura exceções e retorna
false.
CarregarPeriodoCalculoFilialAbertoPorFilial(int pIdfFilial, out PeriodoCalculoFilial pObjPeriodoCalculoFilial)
- Lógica:
- Cria uma lista de parâmetros para
@Idf_Filial. - Atribui o
pIdfFilialao parâmetro. - Executa a query
SELPERIODOCALCULOFILIALABERTOPORFILIALusandoDataAccessLayer.ExecuteReader. - Tenta preencher o objeto
pObjPeriodoCalculoFilialcom o resultado. - Se preenchido, completa o objeto
PeriodoCalculoassociado. - Retorna
truese o objeto for carregado,falsecaso 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:
- Cria uma lista de parâmetros para
@Idf_Contratoe@Idf_Filial. - Atribui os valores.
- Executa a query
SELPERIODOCALCULOFILIALABERTOPORCONTRATOusandoDataAccessLayer.ExecuteReader. - Tenta preencher o objeto
pObjPeriodoCalculoFilialcom o resultado. - Se preenchido, completa o objeto
PeriodoCalculoassociado. - Retorna
truese o objeto for carregado,falsecaso 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:
- Cria uma lista de parâmetros para
@Idf_Centro_Resultadoe@Idf_Filial. - Atribui os valores.
- Executa a query
SELPERIODOCALCULOFILIALABERTOPORCENTRORESULTADOusandoDataAccessLayer.ExecuteReader. - Tenta preencher o objeto
pObjPeriodoCalculoFilialcom o resultado. - Se preenchido, completa o objeto
PeriodoCalculoassociado. - Retorna
truese o objeto for carregado,falsecaso 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.
- Abre uma nova conexão SQL e inicia uma transação.
- Chama
CarregarUltimoPeriodoFechadoPorFilial(trans, pIdFilial, out pObjPeriodoCalculoFilial). - Comita a transação se bem-sucedido, faz rollback caso contrário.
- 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:
- Cria uma lista de parâmetros para
@Idf_Filial. - Atribui o
pIdFilialao parâmetro. - Executa a query
SELULTIMOPERIODOFECHADOPORFILIALusandoDataAccessLayer.ExecuteReadercom a transação. - Tenta preencher o objeto
pObjPeriodoCalculoFilialcom o resultado. - Se preenchido, completa o objeto
PeriodoCalculoassociado. - Retorna
truese o objeto for carregado,falsecaso 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:
- Cria uma lista de parâmetros para
@Idf_Filial. - Atribui o
idFilialao parâmetro. - Executa a query
SPGETPERIODOATUALusandoDataAccessLayer.ExecuteScalare retorna o resultado convertido parastring.
- 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:
- Cria um
DataTabletemporário na memória e o preenche com oslstIdEmpregado. - Abre uma conexão SQL e cria uma tabela temporária
#TempPeriodoFechadoFilialno banco de dados. - Realiza um
SqlBulkCopypara inserir os IDs dos empregados na tabela temporária do banco. - Constrói uma query SQL dinâmica (
SPBUSCAPERIODOFILIALABERTACENTRORESULTADOouSPBUSCAPERIODOFILIALABERTACONTRATO) com base empUtilizaCentroResultado. - Executa a query, que busca os IDs dos períodos de cálculo abertos para os empregados na tabela temporária.
- Itera sobre o
IDataReader, adicionando os IDs dos períodos de cálculo a uma lista e a retorna. - 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) SPBUSCAPERIODOFILIALABERTACENTRORESULTADOouSPBUSCAPERIODOFILIALABERTACONTRATOSPBUSCAPERIODOFILIALABERTACONTRATO: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_CalculoSPBUSCAPERIODOFILIALABERTACENTRORESULTADO: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:
SqlExceptionem 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.
- Cria um
DataTabletemporário na memória e o preenche com oslstIdEmpregado. - Abre uma conexão SQL e cria uma tabela temporária
#TempPeriodoFechadoFilialno banco de dados. - Realiza um
SqlBulkCopypara inserir os IDs dos empregados na tabela temporária do banco. - Constrói uma query SQL dinâmica (
SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCRouSPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCONTRATO) com base empUtilizaCentroResultado. - Executa a query, que busca a data máxima de início do período de cálculo para os empregados.
- Retorna a primeira data encontrada.
- 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) SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCRouSPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCONTRATOSPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCONTRATO: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_CalculoSPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCR: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:
SqlExceptionem 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.
- Abre a conexão se não estiver aberta.
- Atribui a conexão e o texto do comando.
- Atribui a transação se fornecida.
- Atribui o tipo de comando.
- 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:
- Cria uma lista de parâmetros para
@Idf_Filial. - Atribui o
idFilialao parâmetro. - Executa a query
SPGETPERIODOATUALDTINICIALFILIALusandoDataAccessLayer.ExecuteScalarcom a transação e retorna o resultado convertido paraDateTime.
- 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:
- Cria uma lista de parâmetros para
@Idf_Filial. - Atribui o
idFilialao parâmetro. - Executa a query
SPGETPERIODOATUALDTFINALFILIALusandoDataAccessLayer.ExecuteScalare retorna o resultado convertido paraDateTime.
- 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:
- Cria uma lista de parâmetros para
@Idf_Filiale@dta_Referencia. - Atribui os valores.
- Executa a query
SPGETPERIODOPORDATAFILIALusandoDataAccessLayer.ExecuteScalare retorna o resultado convertido paraint.
- 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:
- Executa a query
SPGETANOSusandoDataAccessLayer.ExecuteReadere retorna oIDataReader.
- 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:
- Cria uma lista de parâmetros para
@mesAno. - Atribui o
mesAnoao parâmetro. - Executa a query
SPGETBYMESANOusandoDataAccessLayer.ExecuteReader. - Se houver um resultado, carrega o objeto
PeriodoCalculocorrespondente usandoPeriodoCalculo.LoadObject. - Retorna o objeto
PeriodoCalculoounull.
- Stored Procedures chamadas:
SPGETBYMESANO(Select * From TAB_Periodo_Calculo Where Des_Periodo_Calculo = @mesAno) @mesAno: Descrição do mês/ano.SPSELECTID(viaPeriodoCalculo.LoadObject)- Validações: Nenhuma explícita.
- Exceções: Nenhuma explícita.
CarregarPeriodoCalculoFilialAberto(int idFilial, out PeriodoCalculoFilial objPeriodoCalculoFilial, SqlTransaction trans)
- Lógica:
- Cria uma lista de parâmetros para
@Idf_Filial. - Atribui o
idFilialao parâmetro. - Cria uma nova instância de
PeriodoCalculoFilial. - Executa a query
SPGETPERIODOFILIALABERTOusandoDataAccessLayer.ExecuteReadercom a transação e tenta preencher o objetoobjPeriodoCalculoFilial. - 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:
- Cria uma lista de parâmetros para
@Idf_Filiale@Idf_Periodo_Calculo. - Atribui os valores.
- Constrói uma query SQL para selecionar o
PeriodoCalculoFilialaberto para a filial e período específicos. - Cria uma nova instância de
PeriodoCalculoFilial. - Executa a query e tenta preencher o objeto.
- 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:
- Cria uma lista de parâmetros para
@Idf_Empresa. - Atribui o
idEmpresaao parâmetro. - Executa a query
SPSELECTPERIODOFILIALABERTOUSUARIOQUANTusandoDataAccessLayer.ExecuteReadere retorna oIDataReader.
- 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:
- Cria uma lista de parâmetros para
@SortExpression,@Idf_Empresa,@Idf_Periodo_Calculo. - Atribui os valores, tratando
idfPeriodoCalculocomoDBNull.Valuese nulo. - 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. - Executa a query usando
DataAccessLayer.ExecuteReadere retorna oIDataReader.
- 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:
- Calcula os limites
inicioefimpara a paginação. - Constrói a query
SPSELECT(que é uma parte da query completa). - Adiciona filtros de pesquisa (
pDesPesquisa) se fornecido. - Constrói a query de contagem (
SPSELECTCOUNT) e a query paginada (SPSELECTPAG). - Executa a query de contagem para obter
totalRegistros. - 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:
- Cria uma lista de parâmetros para
@Idf_Filial,@Idf_Periodo_Calculo,@Flg_Fechado. - Atribui os valores.
- Constrói uma query SQL para contar registros em
TAB_Periodo_Calculo_Filialcom os filtros fornecidos. - Executa a query usando
DataAccessLayer.ExecuteScalar. - Retorna
truese o resultado for maior que 0 (o registro existe),falsecaso 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
| Nome | Parâmetros | Propósito |
|---|---|---|
SPINSERT | @Idf_Periodo_Calculo_Filial (OUTPUT), @Idf_Periodo_Calculo, @Idf_Filial, @Flg_Fechado, @Idf_Usuario_Gerador, @Dta_Alteracao, @Dta_Fechamento | Insere 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_Filial | Atualiza um registro existente na tabela TAB_Periodo_Calculo_Filial. |
SPDELETE | @Idf_Usuario_Gerador, @Idf_Periodo_Calculo_Filial | Atualiza o Idf_Usuario_Gerador e depois exclui um registro da tabela TAB_Periodo_Calculo_Filial. |
SPSELECTID | @Idf_Periodo_Calculo_Filial | Seleciona um registro da tabela TAB_Periodo_Calculo_Filial pelo seu ID. |
SELULTIMOPERIODOFECHADOPORFILIAL | @Idf_Filial | Seleciona o último PeriodoCalculoFilial fechado para uma filial. |
SELPERIODOCALCULOFILIALABERTOPORFILIAL | @Idf_Filial | Seleciona o PeriodoCalculoFilial aberto para uma filial. |
SELPERIODOCALCULOFILIALABERTOPORCONTRATO | @Idf_Contrato, @Idf_Filial | Seleciona o PeriodoCalculoFilial aberto para um contrato e filial. |
SELPERIODOCALCULOFILIALABERTOPORCENTRORESULTADO | @Idf_Centro_Resultado, @Idf_Filial | Seleciona o PeriodoCalculoFilial aberto para um centro de resultado e filial. |
SPGETPERIODOATUAL | @Idf_Filial | Retorna a descrição do período de cálculo atual para uma filial. |
SPGETPERIODOATUALFILIAL2 | @Idf_Filial | Seleciona o PeriodoCalculo e PeriodoCalculoFilial abertos para uma filial. |
SPBUSCAPERIODOFILIALABERTACONTRATO | N/A (usa #TempPeriodoFechadoFilial) | Busca IDs de períodos de cálculo abertos para empregados de contratos. |
SPBUSCAPERIODOFILIALABERTACENTRORESULTADO | N/A (usa #TempPeriodoFechadoFilial) | Busca IDs de períodos de cálculo abertos para empregados de centros de resultado. |
SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCONTRATO | N/A (usa #TempPeriodoFechadoFilial) | Recupera a data máxima de início do período de cálculo fechado para empregados de contratos. |
SPRECUPERADATAMAXIMALISTAEMPREGADOPERIODOCALCULOFILIALCR | N/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_Filial | Retorna o Idf_Periodo_Calculo do período aberto para uma filial. |
SPGETPERIODOATUALDTINICIALFILIAL | @Idf_Filial | Retorna a data de início do período de cálculo atual para uma filial. |
SPGETPERIODOATUALDTFINALFILIAL | @Idf_Filial | Retorna a data de fim do período de cálculo atual para uma filial. |
SPGETPERIODOPORDATAFILIAL | @Idf_Filial, @dta_Referencia | Retorna o Idf_Periodo_Calculo para uma data de referência e filial. |
SPGETANOS | N/A | Lista os anos distintos da tabela TAB_Periodo_Calculo. |
SPGETBYMESANO | @mesAno | Seleciona um PeriodoCalculo pela sua descrição de mês/ano. |
SPGETPERIODOFILIALABERTO | @Idf_Filial | Seleciona o PeriodoCalculoFilial aberto para uma filial. |
SPSELECTPERIODOFILIALABERTOUSUARIOQUANT | @Idf_Empresa | Lista a quantidade de filiais abertas para um período de cálculo para um usuário. |
SPSELECTPAG (dinâmica) | @SortExpression, @Idf_Empresa, @Idf_Periodo_Calculo | Query dinâmica para listar filiais abertas com paginação. |
Query dinâmica em VerificarPeriodoCalculoFilial | @Idf_Filial, @Idf_Periodo_Calculo, @Flg_Fechado | Conta 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étodo | Assinatura | Propósito |
|---|---|---|
GetParameters | private List<SqlParameter> GetParameters() | Prepara uma lista de parâmetros SQL para operações de INSERT e UPDATE. |
Insert | private void Insert() | Insere uma nova instância de BeneficioFornecimento no banco de dados. |
Insert | private void Insert(SqlTransaction trans) | Insere uma nova instância de BeneficioFornecimento no banco de dados dentro de uma transação existente. |
Update | private void Update() | Atualiza uma instância existente de BeneficioFornecimento no banco de dados. |
Update | private void Update(SqlTransaction trans) | Atualiza uma instância existente de BeneficioFornecimento no banco de dados dentro de uma transação existente. |
Save | public void Save() | Salva a instância atual de BeneficioFornecimento no banco de dados (insere se for nova, atualiza se já existir). |
Save | public 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). |
Delete | public static void Delete(int idBeneficioFornecimento) | Exclui um registro de BeneficioFornecimento do banco de dados pelo seu ID. |
LoadDataReader | private static IDataReader LoadDataReader(int idBeneficioFornecimento) | Retorna um IDataReader com as colunas de um único registro de BeneficioFornecimento. |
LoadDataReader | private static IDataReader LoadDataReader(int idBeneficioFornecimento, SqlTransaction trans) | Retorna um IDataReader com as colunas de um único registro de BeneficioFornecimento dentro de uma transação. |
LoadDataReader | public 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. |
LoadObject | public static BeneficioFornecimento LoadObject(int idBeneficioFornecimento) | Retorna uma instância de BeneficioFornecimento preenchida a partir do banco de dados. |
LoadObject | public 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. |
CompleteObject | public bool CompleteObject() | Completa os atributos da instância atual de BeneficioFornecimento a partir do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa os atributos da instância atual de BeneficioFornecimento a partir do banco de dados dentro de uma transação. |
SetInstance | private static bool SetInstance(IDataReader dr, BeneficioFornecimento objBeneficioFornecimento) | Método auxiliar para preencher uma instância de BeneficioFornecimento a partir de um IDataReader. |
SetParameters | private void SetParameters(List<SqlParameter> parms) | Preenche uma lista de parâmetros SQL com os valores da instância atual de BeneficioFornecimento. |
VerificaBeneficioFuncPeriodoCalculo | public static bool VerificaBeneficioFuncPeriodoCalculo(int idFuncionario, int idPeriodoCalculo) | Verifica se um funcionário possui benefícios pendentes para um dado período de cálculo. |
Existe | public 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. |
CarregarPorEmpregadoBeneficioAnoMes | public 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. |
ListarPorEmpregadoBeneficioAnoMes | private 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. |
Delete | public 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) |
Delete | public 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. |
ListByEmpregado | public static IDataReader ListByEmpregado(int idEmpregado, int mes, int ano) | Lista todos os BeneficioFornecimento para um empregado, mês e ano. |
ListarBeneficios | public 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) |
ListarBeneficiosDT | public 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) |
ListarEmpregadosFiltroBeneficio | public 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. |
DeletePorEmpregado | public static void DeletePorEmpregado(int idEmpregado, SqlTransaction trans) | Deleta todos os BeneficioFornecimento de um empregado dentro de uma transação. |
RecuperarBeneficiosFornecimento | public static List<BeneficioFornecimento> RecuperarBeneficiosFornecimento(SqlTransaction trans, DateTime dtaCalculo, int idEmpregado) | Recupera uma lista de BeneficioFornecimento para um empregado em uma data de cálculo. |
RecuperarBeneficiosFornecimentoDescontoBeneficio | public static List<BeneficioFornecimento> RecuperarBeneficiosFornecimentoDescontoBeneficio(Empregado objEmpregado, TipoBeneficio objTipoBeneficio, PeriodoCalculo objPeriodoCalculo, bool mesSeguinte) | Recupera BeneficioFornecimento para cálculo de desconto de benefício. |
RecuperarBeneficiosFornecimentoPagos | public 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. |
CarregarBeneFornecidoPorArquivoGeradoEmp | public 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. |
CarregarBeneFornecidoPorArquivoGeradoEmp | public 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. |
ListarBeneFornecidoPorArquivoGeradoEmp | private static IDataReader ListarBeneFornecidoPorArquivoGeradoEmp(int idfArquivoGeradoEmpregado, SqlTransaction trans) | Retorna um IDataReader com BeneficioFornecimento pelo ID do arquivo gerado do empregado dentro de uma transação. |
LoadDados | public static IDataReader LoadDados(int idfBeneficioFornecimento) | Retorna dados diversos (departamento, contrato, tipo de agrupamento) associados a um BeneficioFornecimento. |
FecharBeneficiosZerados | public 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. |
DeleteBeneficioFornecimentoEmpregadoInativo | public static void DeleteBeneficioFornecimentoEmpregadoInativo(Empregado objEmpregado, SqlTransaction trans) | Deleta BeneficioFornecimento de empregados inativos. |
ListarMesAnoPorBeneficioNaoPagos | private 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. |
ListarMesAnoFornecimentoNaoPagosPorEmpregado | private 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. |
ListarEmpregadoPorBeneficioMesAnoNaoPagos | private 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. |
ListarMesAnoFornecimentoNaoPagosPorEmpregado | private 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. |
ListarEmpregadoMesAnoPorBeneficioNaoPagos | public static List<Pair> ListarEmpregadoMesAnoPorBeneficioNaoPagos(int idBeneficio) | Retorna uma lista de pares (lista de empregados, par mês/ano) para benefícios não pagos. |
ListarFornecimentoNaoPagosMesAnoPorEmpregado | public 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. |
CarregarBeneficiosPorEmpregadoMesAno | public 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. |
VerificaBeneficiosGeradosPorData | public static bool VerificaBeneficiosGeradosPorData(DateTime pDataCadastroBeneficio, int pIdEmpregado) | Verifica se existem benefícios gerados para um empregado em uma data de cadastro específica. |
ListarPorPreFaturaDadosEmpregado | public 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. |
ListarPorPreFaturaDadosEmpregado | public static DataSet ListarPorPreFaturaDadosEmpregado(int idPreFatura) | Lista benefícios fornecidos por pré-fatura com dados do empregado em um DataSet. |
SalvarFilaPreFatura | public 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. |
Delete | public static void Delete(int idBeneficioFornecimento, SqlTransaction trans) | Exclui um BeneficioFornecimento pelo ID dentro de uma transação. |
Delete | public static void Delete(List<int> idBeneficioFornecimento) | Exclui múltiplos BeneficioFornecimento por uma lista de IDs. |
DeleteNaoPagosPorEmpregados | public static bool DeleteNaoPagosPorEmpregados(SqlTransaction trans, List<int> listIdfEmpregados) | Deleta BeneficioFornecimento não pagos para uma lista de empregados. |
ListarAberturaBeneficiosPorEmpregado | public static DataTable ListarAberturaBeneficiosPorEmpregado(int pIdEmpregado, PeriodoCalculo objPeriodoCalculo) | Lista benefícios pagos de um empregado que podem ser abertos. |
ListarBeneficiosPagos | public static List<int> ListarBeneficiosPagos(List<int> listIdfBeneficioFornecimento) | Retorna uma lista de IDs de BeneficioFornecimento que já foram pagos. |
UpdateViaPagamento | public static void UpdateViaPagamento(SqlTransaction trans, int idfBeneficioFornecimento, int? idfArquivoGeradoEmpregado, DateTime? dtaPagamento) | Atualiza o status de pagamento de um BeneficioFornecimento (usado na tela de pagamento). |
CarregarIdFilial | public static int CarregarIdFilial(int pIdBeneficioFornecimento) | Retorna o ID da filial associada a um BeneficioFornecimento. |
RecuperarBeneficioFornecimentoPorEmpregadoArquivoGeradoEmpregado | public static BeneficioFornecimento RecuperarBeneficioFornecimentoPorEmpregadoArquivoGeradoEmpregado(int pIdEmpregado, int pIdArquivoGeradoEmpregado) | Recupera um BeneficioFornecimento por empregado e ID de arquivo gerado. |
Salvar | public void Salvar(SqlTransaction trans, int pIdfArquivoGerado) | Salva o BeneficioFornecimento, integra com Ponte Azul e adiciona à fila de cálculo. |
ListarIdPagamentosPendentes | public 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. |
ListarInformacoesPagamentosPendentes | public 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. |
ListarInformacoesPagamentosPendentesTEMP | public 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. |
Pagar | public 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. |
ValidarPagamento | private 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. |
EfetuarPagamento | private 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. |
VerificaBeneficioMesSeguinte | public 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. |
ListarPendentesTransferencia | public static IDataReader ListarPendentesTransferencia(DateTime dtaTransferencia, List<int> LstEmpregadosAdicionados) | Lista benefícios pendentes de transferência para empregados adicionados após uma data. |
CarregarListaIdFilialBeneficioFornecimento | public 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
SqlParametercom nomes, tipos SQL e tamanhos definidos para todas as colunas da tabelaTAB_Beneficio_Fornecimento. - Stored Procedures chamadas: Nenhuma diretamente.
- Validações: Nenhuma.
SetParameters(List<SqlParameter> parms)
- Lógica: Preenche a lista de
SqlParametercom os valores da instância atual deBeneficioFornecimento. - 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 atribuiDBNull.Valuese for. - Se a instância não for persistida (
_persistedéfalse), define_idBeneficioFornecimentocomoParameterDirection.Outpute_dataCadastrocomoDateTime.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:
- Cria uma lista de parâmetros para
@Idf_Empregadoe@Idf_Periodo_Calculo. - Atribui os IDs fornecidos.
- Executa a query
SPBENEFICIOPENDENTEFUNCIONARIOPERIODOCALCULOusandoDataAccessLayer.ExecuteScalar. - Retorna
truese o resultado for maior que 0 (há benefícios pendentes),falsecaso 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 NULLeQtd_Fornecida > 0. - Exceções: Nenhuma explícita.
Existe(Empregado objEmpregado, Beneficio objBeneficio, int ano, int mes)
- Lógica:
- Cria uma lista de parâmetros para
@Idf_Empregado,@Idf_Beneficio,@Num_Ano,@Num_Mes. - Atribui os valores dos objetos e parâmetros.
- Executa a query
SPSELEMPREGADOusandoDataAccessLayer.ExecuteScalar. - Retorna
truese o resultado for diferente de 0 (o benefício existe),falsecaso 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:
- Chama
ListarPorEmpregadoBeneficioAnoMes(objEmpregado, objBeneficio, ano, mes, trans)para obter umIDataReader. - Tenta preencher o objeto
objBeneficioFornecimentocom o resultado. - Retorna
truese o objeto for carregado,falsecaso 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:
- Cria uma lista de parâmetros para
@Idf_Empregado,@Idf_Beneficio,@Num_Ano,@Num_Mes. - Atribui os valores.
- Executa a query
SPSELPOREMPREGADOBENEFICIOANOMESusandoDataAccessLayer.ExecuteReadercom 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)
- Cria uma lista de parâmetros para
@Idf_Empregado,@Idf_Beneficio,@Num_Ano,@Num_Mes. - Atribui os valores.
- Executa a query
SPDELETEEMPREGADOusandoDataAccessLayer.ExecuteNonQuerycom a transação. - Retorna
truese alguma linha foi afetada,falsecaso 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:
- Cria uma lista de parâmetros para
@Idf_Empregado,@Num_Ano,@Num_Mes. - Atribui os valores.
- Executa a query
SPDELETEEMPREGADOFORNECIMENTOSusandoDataAccessLayer.ExecuteNonQuerycom a transação. - Retorna
truese alguma linha foi afetada,falsecaso 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:
- Cria uma lista de parâmetros para
@IdEmpregado,@mes,@ano. - Atribui os valores.
- Executa a query
SELBYEMPREGADOusandoDataAccessLayer.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)
- Constrói a query
SPSELBENEFICIOS. - Cria uma lista de parâmetros para
numMes,numAno,IdCentroResultado,idEmpresa. - Adiciona cláusulas
WHEREdinamicamente com base nos filtrospago,IdFilial,IdEmpregado,IdContrato,IdDepartamento,IdFuncao,tipoBeneficio,IdUsuario. - Para
IdContrato, se for um contrato mãe, também inclui os contratos filhos. - Adiciona a cláusula
ORDER BY. - 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)
- Seleciona a query base (
SPSELBENEFICIOSCRouSPSELBENEFICIOS) com base emUtilizaCR. - Cria uma lista de parâmetros para
numMes,numAno,idEmpresa. - Adiciona cláusulas
WHEREdinamicamente com base nos filtrospago,IdFilial,IdEmpregado,IdContrato,IdDepartamento,IdCentroResultado,IdFuncao,tipoBeneficio,IdUsuario. - Para
IdContrato, se for um contrato mãe, também inclui os contratos filhos. - Adiciona a cláusula
ORDER BYeOPTION(RECOMPILE). - Executa a query usando
DataAccessLayer.ExecuteReaderDse retorna a primeira tabela doDataSet.
- Stored Procedures chamadas:
SPSELBENEFICIOSCRouSPSELBENEFICIOS(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:
- Constrói a query base para selecionar informações de empregados e seus benefícios.
- Cria uma lista de parâmetros para
numMes,numAno. - Adiciona cláusulas
WHEREdinamicamente com base nos filtrosidFilial,idEmpregado,idDepartamento,idFuncaoExclusiva,tipoBeneficio,idContrato. - Para
idContrato, se for um contrato mãe, também inclui os contratos filhos. - Executa a query usando
DataAccessLayer.ExecuteReaderDse retorna a primeira tabela doDataSet.
- 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 (seidFilialnã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:
- Cria uma lista de parâmetros para
@Idf_Empregado. - Atribui o
idEmpregadoao parâmetro. - Executa a query
SPDELETARPORFUNCIONARIOusandoDataAccessLayer.ExecuteNonQuerycom 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:
- Cria uma lista de parâmetros para
@Num_Ano,@Num_Mes,@Idf_Empregado. - Atribui o ano e mês de
dtaCalculoe oidEmpregado. - Executa a query
SPSELPOREMPREGADOANOMESusandoDataAccessLayer.ExecuteReadercom a transação. - Itera sobre o
IDataReader, preenchendo objetosBeneficioFornecimentoe adicionando-os a uma lista. - 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:
- Cria uma lista de parâmetros para
@Dta_Beneficio,@Idf_Empregado,@Idf_Tipo_Beneficio,@Mes_Seguinte. - Atribui os valores dos objetos e parâmetros.
- Executa a query
SPSELPOREMPREGADOBENEFICIOANOMESDESCONTOBENEFICIOusandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, preenchendo objetosBeneficioFornecimentoe adicionando-os a uma lista. - 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:
- Cria uma lista de parâmetros para
@Idf_empregado,@Num_Ano,@Num_Mes. - Atribui os valores.
- Executa a query
SPSELBENEFICIOFORNECIMENTOEMPREGADOANOMESPAGOSusandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, preenchendo objetosBeneficioFornecimentoe adicionando-os a uma lista. - 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:
- Chama
ListarBeneFornecidoPorArquivoGeradoEmp(idfArquivoGeradoEmpregado, trans)para obter umIDataReader. - Tenta preencher o objeto
objBeneFornecimentocom o resultado. - Retorna
truese o objeto for carregado,falsecaso 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:
- Cria uma lista de parâmetros para
@IdfArquivoGeradoEmpregado. - Atribui o ID.
- Inicializa
lstBeneficioFornecimento. - Executa a query
SPSELECTBENEFICIOFORNECIDOCARQUIVOGERusandoDataAccessLayer.ExecuteReadercom a transação. - Itera sobre o
IDataReader, preenchendo objetosBeneficioFornecimentoe adicionando-os à lista. - Retorna
truese a operação for bem-sucedida,falsecaso 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:
- Cria uma lista de parâmetros para
@IdfArquivoGeradoEmpregado. - Atribui o ID.
- Executa a query
SPSELECTBENEFICIOFORNECIDOCARQUIVOGERusandoDataAccessLayer.ExecuteReadercom 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:
- Constrói a query
SELDADOSpara obter informações de departamento, contrato e tipo de agrupamento. - Cria um parâmetro para
@Idf_Beneficio_Fornecimento. - Atribui o ID.
- 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:
- Constrói a query
UPDBENEFICIOSZERADOSpara atualizarDta_PagamentoparaGETDATE()emBeneficioFornecimentocomQtd_Fornecida = 0e que ainda não foram pagos. - Cria uma lista de parâmetros para
idfEmpregado,idfFilial,idfPeriodoCalculo,idfUsuario. - Atribui os valores, tratando nulos com
DBNull.Value. - Executa a query usando
DataAccessLayer.ExecuteNonQuery(com ou sem transação). - 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:
- Cria um
SqlCommande configura-o com a transação e o texto da querySPDELETEBENEFICIOFUNCIONARIOINATIVO. - Adiciona o parâmetro
@Idf_Empregado. - 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:
- Cria uma lista de parâmetros para
@Idf_Beneficio. - Atribui o ID.
- Executa a query
SPSELMESANONAOPAGOSusandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, adicionando pares (mês, ano) a uma lista dePair. - 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:
- Cria uma lista de parâmetros para
@Idf_Empregado. - Atribui o ID.
- Executa a query
SPSELMESANONAOPAGOSPOREMPREGADOusandoDataAccessLayer.ExecuteReadercom a transação. - Itera sobre o
IDataReader, adicionando pares (mês, ano) a uma lista dePair. - 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:
- Cria uma lista de parâmetros para
@Idf_Beneficio,@Num_Mes,@Num_Ano. - Atribui os valores.
- Executa a query
SPSELEMPREGADOPORMESANONAOPAGOSusandoDataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, criando objetosEmpregado(apenas com o ID) e adicionando-os a uma lista. - 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:
- Chama
ListarMesAnoPorBeneficioNaoPagos(idBeneficio)para obter uma lista de pares (mês, ano). - Para cada par (mês, ano), chama
ListarEmpregadoPorBeneficioMesAnoNaoPagospara obter a lista de empregados correspondente. - Combina essas informações em uma lista de
Pair(lista de empregados, par mês/ano).
- Stored Procedures chamadas: Nenhuma diretamente (chama
ListarMesAnoPorBeneficioNaoPagoseListarEmpregadoPorBeneficioMesAnoNaoPagos). - 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:
- Cria uma lista de parâmetros para
@Mes_Periodo,@Ano_Periodo,@Idf_Empregado. - Atribui os valores.
- Executa a query
SELBENEFICIOSPOREMPREGADOMESANOusandoDataAccessLayer.ExecuteReaderDse retorna a primeira tabela doDataSet.
- 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:
- Cria uma lista de parâmetros para
@Idf_Empregadoe@Dta_Cadastro. - Atribui os valores.
- Constrói uma query SQL para contar os
BeneficioFornecimentogerados para um empregado em uma data de cadastro específica. - Executa a query usando
DataAccessLayer.ExecuteReader. - Retorna
truese houver um registro,falsecaso 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:
- Cria uma lista de parâmetros para
@Idf_Pre_Fatura. - Calcula os limites
inicioefimpara a paginação. - Constrói a query
SPSELECTALLcom ordenação. - Constrói a query de contagem (
SPSELECTCOUNT) e a query paginada (SelectPag). - Executa a query de contagem para obter
totalRegistros. - 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:
- Cria uma lista de parâmetros para
@Idf_Pre_Fatura. - Atribui o ID.
- Constrói a query SQL para selecionar benefícios fornecidos por pré-fatura com dados do empregado.
- Executa a query usando
DataAccessLayer.ExecuteReaderDse retorna oDataSet.
- 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:
- Constrói queries SQL para atualizar
Idf_Pre_FaturaparaNULLe inserir osBeneficioFornecimentona tabelaTAB_Fila_Pre_Fatura_Beneficio. - Concatena os IDs dos
lsBeneficioFornecimentoem uma string. - Executa as queries construídas usando
DataAccessLayer.ExecuteNonQuerycom a transação. - Em caso de erro, lança uma nova
Exceptionencapsulando 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:
Exceptionem caso de erro no banco de dados.
Delete(int idBeneficioFornecimento, SqlTransaction trans)
- Lógica:
- Cria uma lista de parâmetros para
@Idf_Beneficio_Fornecimento. - Atribui o ID.
- Executa a query
SPDELETEusandoDataAccessLayer.ExecuteNonQuerycom 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:
- Se a lista de IDs estiver vazia, retorna.
- Constrói uma query SQL dinâmica para deletar múltiplos
BeneficioFornecimento. - Itera sobre a lista de IDs, adicionando cada ID como um parâmetro nomeado.
- Adiciona as condições para excluir apenas benefícios não pagos e não vinculados a arquivos de benefício.
- 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:
- Constrói a query
DELNAOPAGOSPOREMPREGADOSdinamicamente, concatenando os IDs dos empregados. - Executa a query usando
DataAccessLayer.ExecuteNonQuery(com ou sem transação). - 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:
- Cria uma lista de parâmetros para
@Idf_Empregado,@Idf_Periodo_Calculo,@Dta_Periodo_Cauculo. - Atribui os valores.
- 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.
- Executa a query usando
DataAccessLayer.ExecuteReaderDse retorna a primeira tabela doDataSet.
- 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:
- Constrói a query
SELBENEFICIOSPAGOSdinamicamente, concatenando os IDs dosBeneficioFornecimento. - Executa a query usando
DataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, adicionando os IDs dos benefícios pagos a uma lista. - 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:
- Cria uma lista de parâmetros para
@Idf_Beneficio_Fornecimento,@Idf_Arquivo_Gerado_Empregado,@Dta_Pagamento. - Atribui os valores, tratando nulos com
DBNull.Value. - Executa a query
UPDBENEFICIOFORNECIMENTOPAGAMENTOusandoDataAccessLayer.ExecuteNonQuerycom 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:
- Cria uma lista de parâmetros para
@Idf_Beneficio_Fornecimento. - Atribui o ID.
- Executa a query
SPSELECTIDFILIALusandoDataAccessLayer.ExecuteScalare retorna o resultado convertido paraint.
- 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:
- Cria uma lista de parâmetros para
@Idf_Empregadoe@Idf_Arquivo_Gerado_Empregado. - Atribui os IDs.
- Executa a query
SPRECUPERARBENEFICIOFORNECIMENTOPOREMPREGADOARQUIVOGERADOEMPREGADOusandoDataAccessLayer.ExecuteReader. - Tenta preencher um novo objeto
BeneficioFornecimentocom o resultado. - 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:
- Salva a instância atual de
BeneficioFornecimentousandothis.Save(trans). - Se
Empregadonão for nulo:
- Adiciona uma integração com a Ponte Azul (
IntegracaoPonteAzul.AdicionarIntegracaoPonteAzul). - Adiciona o empregado à fila de cálculo (
FilaCalculo.AdicionarEmpregadoFila).
- Se
Empregadofor nulo, lança umaException.
- Stored Procedures chamadas:
SPINSERTouSPUPDATE(viathis.Save(trans))IntegracaoPonteAzul.AdicionarIntegracaoPonteAzul(chama SPs internas)FilaCalculo.AdicionarEmpregadoFila(chama SPs internas)- Validações: Verifica se o objeto
Empregadoé nulo. - Exceções:
Exceptionse 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:
- Inicializa
lstIdBeneficioFornecimentoPendentePagamento. - Se
pIdCentroResultadotiver valor, lista os IDs dos centros de resultado analíticos ativos e os concatena emparametroListaIdCentroResultado. - Cria uma lista de parâmetros para todos os filtros fornecidos, tratando nulos com
DBNull.Value. - O ID do usuário é obtido da sessão HTTP.
- Executa a query
SPSELIDBENEFICIOFORNECIMENTOPENDENTEPAGAMENTOusandoDataAccessLayer.ExecuteReaderDs. - Se o
DataTableresultante tiver linhas, extrai os IDs dos benefícios fornecimentos e os adiciona à lista. - 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:
- Constrói a cláusula
WHEREcom base na lista depLstIdBeneficioFornecimentoPendentePagamento. Se a lista estiver vazia, defineWHERE 1 = 2para não retornar resultados. - Calcula os limites
inicioefimpara a paginação. - Constrói a query paginada (
queryPaginada), a query de contagem (queryCount) e a query de valor total (queryValorTotal) usandoSPSELBENEFICIOFORNECIMENTOPENDENTEPAGAMENTOcomo base. - Executa
queryCountpara obterpTotalRegistros. - Executa
queryValorTotalpara obterpValorTotal. - Executa
queryPaginadae retorna a primeira tabela doDataSet.
- 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:
- Constrói as cláusulas
WHEREparapLstIdBeneficioFornecimentoPendentePagamentoepLstIdBeneficioFornecidoPendentePagamento. - Calcula os limites
inicioefimpara a paginação. - Constrói a query paginada (
queryPaginada), a query de contagem (queryCount) e a query de valor total (queryValorTotal) usandoSPSELBENEFICIOFORNECIMENTOPENDENTEPAGAMENTOTEMPcomo base. - Se a coluna de ordenação for
Num_Matricula, usa uma lógica de ordenação especial para números e strings. - Executa
queryCountpara obterpTotalRegistros. - Executa
queryValorTotalpara obterpValorTotal. - Executa
queryPaginadae retorna a primeira tabela doDataSet.
- 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:
- Inicializa
pDtErrosepDicIdFormaPagamentoNumerosLote. - Se a forma de pagamento for Dinheiro, define
pIdConvenioBancariocomonull. - Abre uma nova conexão SQL e inicia uma transação.
- Carrega parâmetros de configuração da empresa (
RealizarPagamentoApenasTodosItensInformadosLoteForemValidos). - Chama
ValidarPagamentopara validar os benefícios e obter os válidos, preenchendopDtErros. - Se
parametroFlagRealizarPagamentoApenasTodosItensInformadosLoteForemValidosfortruee houver erros, limpa a lista de benefícios válidos. - Se houver benefícios válidos:
- Agrupa os benefícios por forma de pagamento.
- Para cada grupo de forma de pagamento, chama
EfetuarPagamentopara processar o pagamento. - Adiciona o número do lote gerado a
pDicIdFormaPagamentoNumerosLote.
- Comita a transação e envia para cálculo (
FilaCalculoTransactionSingleton.EnviarParaCalculo). - 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(viaValidarPagamento)ConvenioBancario.LoadObjectConvenioBancario.RecuperarProximaSequenciaEmpresaSementePagamento.CarregarSequencialArquivoGerado.SaveArquivoGeradoLote.SaveArquivoGeradoEmpregado.SaveBeneficioFornecimento.SaveCheque.VincularPagamentoFormularioChequeIntegracaoPonteAzul.AdicionarIntegracaoPonteAzulFilaCalculo.AdicionarEmpregadoFilaCalculoPorArquivoGeradoLogFilaCalculo.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:
- Constrói uma string
listaIdBeneficioFornecimentoa partir da lista de IDs. - Cria uma lista de parâmetros para o stored procedure
TAB_SP_VALIDA_PGTO_BENEFICIO. - Atribui os valores dos filtros, tratando nulos com
DBNull.Value. - Executa o stored procedure usando
DataAccessLayer.ExecuteReaderDscom a transação. - Processa o
DataSetretornado:
- A primeira tabela (
ds.Tables[0]) contém os IDs de benefícios válidos e suas formas de pagamento, que são adicionados adicIdBeneficioFormaPagamentoValidos. - A segunda tabela (
ds.Tables[1]) contém os erros de validação, que são preenchidos empDtErros.
- 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:
- Inicializa
pNumeroLotee outras variáveis de controle. - Carrega parâmetros de configuração (leitura de arquivo de retorno, número de sequência por convênio, valor máximo de cheque).
- Constrói uma string
listaIdBeneficioa partir da lista de IDs. - Cria parâmetros para a query
SPSELINFORMACOESPARAPAGAMENTO. - Executa a query para obter um
DataTablecom informações detalhadas dos benefícios a serem pagos. - Itera sobre cada linha do
DataTable:
- Carrega o
BeneficioFornecimentocorrespondente. - 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
flagPrimeiroPagamentoLotecomofalse. - Cria e salva um
ArquivoGeradoEmpregadopara o benefício atual. - Atualiza o
BeneficioFornecimentocom oArquivoGeradoEmpregadoe, se aplicável (não TEDPays e não requer leitura de retorno), defineDataPagamentoeDataRetornonoArquivoGerado. - Se a forma de pagamento for Cheque, chama
Cheque.VincularPagamentoFormularioCheque.
- 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.LoadObjectArquivoGerado.SaveArquivoGeradoLote.SaveArquivoGeradoEmpregado.SaveBeneficioFornecimento.SaveCheque.VincularPagamentoFormularioChequeIntegracaoPonteAzul.AdicionarIntegracaoPonteAzulFilaCalculo.AdicionarEmpregadoFilaCalculoPorArquivoGerado- Validações:
- Verifica se o benefício já foi pago.
- Validações implícitas nos métodos
SaveeVincularPagamentoFormularioCheque. - Exceções: Nenhuma explícita.
VerificaBeneficioMesSeguinte(DateTime data, ref Empregado objEmpregado, out DataTable dtRetorno, SqlTransaction tran = null)
- Lógica:
- Constrói a query
SELVERIFICABENEFICIOSPOSTERIORRESCISAOpara buscar benefícios fornecimento e fornecidos que são posteriores à data fornecida e ainda não foram pagos. - Cria parâmetros para
@Idf_Empregado,@Mes,@Ano. - Executa a query usando
DataAccessLayer.ExecuteReaderDs(com ou sem transação). - Se o
DataTableresultante tiver linhas, atribui-o adtRetornoe retornatrue. - Caso contrário, define
dtRetornocomonulle retornafalse.
- 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:
- 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). - Cria parâmetros para
@dta_transferenciae@Lst_Idf_Empregado(lista de IDs de empregados como string). - 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:
- Cria uma lista de parâmetros para
@Lst_Id(lista de IDs de pagamentos pendentes como string). - Constrói uma query SQL para selecionar os IDs distintos das filiais associadas aos benefícios fornecimento na lista.
- Executa a query usando
DataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, adicionando os IDs das filiais a uma lista. - 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
| Nome | Parâmetros | Propó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_Fornecido | Insere 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_Fornecimento | Atualiza um registro existente na tabela TAB_Beneficio_Fornecimento. |
SPSELECTID | @Idf_Beneficio_Fornecimento | Seleciona um registro da tabela TAB_Beneficio_Fornecimento pelo seu ID. |
SPDELETE | @Idf_Beneficio_Fornecimento | Exclui um registro da tabela TAB_Beneficio_Fornecimento se não estiver pago ou vinculado a arquivos. |
SPSELMESANONAOPAGOSPOREMPREGADO | @Idf_Empregado | Seleciona meses e anos distintos de BeneficioFornecimento não pagos para um empregado. |
SPSELFORNECIMENTONAOPAGOSPOREMPREGADO | @Idf_Empregado, @mes, @ano | Seleciona 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