WebFoPag ~121 min

🛠️ Documentação Técnica: Cadastrar Setor SST

[!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.

Documentação Base — C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.WebFoPag\CadastrarSetorSST.aspx

👁️ 1. Visão Geral

A tela “Cadastrar Setor SST” permite o cadastro e gerenciamento de setores SST (Saúde e Segurança do Trabalho) para uma empresa. Ela possibilita vincular setores a contratos mãe, contratos filhos e centros de resultado, além de definir a situação (ativo/inativo) e pesquisar setores já cadastrados. O sistema se adapta ao tipo de estrutura gerencial da empresa, exibindo campos de Contrato Mãe/Filho ou Centro de Resultado conforme a configuração.

🗂️ 2. Tipos/Modalidades

A tela possui duas modalidades principais de comportamento, baseadas no TipoEstruturaGerencial da empresa:

  • Estrutura Gerencial por Centro de Resultado:
  • O campo “Contrato Mãe” e “Contrato Filho” são ocultados e desabilitados.
  • O campo “Centro de Resultado” é exibido e habilitado.
  • A coluna “Contrato” na grid de setores cadastrados é ocultada.
  • Estrutura Gerencial por Contrato (padrão):
  • O campo “Contrato Mãe” e “Contrato Filho” são exibidos e habilitados.
  • O campo “Centro de Resultado” é ocultado e desabilitado.
  • A coluna “Centro de Resultado” na grid de setores cadastrados é ocultada.

🖥️ 3. Interface — Campos e Controles

NomeTipoObrigatórioRegra
lblTituloLabel⚪ NãoTítulo da tela: “Cadastrar Setor SST”
vsValidacaoEmployerValidationSummary⚪ NãoExibe mensagens de erro de validação do grupo “CadastroSetorSST”
txtContratoMaeEmployer:LocalizarContrato🔴 Sim (condicional)Campo para localizar o contrato mãe. Obrigatório se a estrutura gerencial não for por Centro de Resultado. TipoDeContrato=“ContratoMae”.
txtContratoFilhoEmployer:LocalizarContrato⚪ Não (condicional)Campo para localizar o contrato filho. TipoDeContrato=“ContratoFilho”.
txtCentroResultadoEmployer:LocalizarCentroResultado⚪ Não (condicional)Campo para localizar o centro de resultado. Obrigatório se a estrutura gerencial for por Centro de Resultado. TipoCentroResultado=“Ambos”.
txtDescricaoSetorSSTEmployer:ControlAlfaNumerico🔴 SimDescrição do setor SST.
lsSituacaoEmployer:ListaSugestoes🔴 SimSituação do setor SST (Ativo/Inativo).
btnSalvarButton⚪ NãoSalva o setor SST. ValidationGroup=“CadastroSetorSST”.
btnLimparButton⚪ NãoLimpa os campos do formulário.
btnVoltarButton⚪ NãoRedireciona para a página de Menu Mais Opções.
lblPesquisaLabel⚪ NãoRótulo para o campo de pesquisa: “Pesquise por Contrato/CR, nome, código, setor.”
txtPesquisaEmployer:ControlAlfaNumerico⚪ NãoCampo de texto para pesquisa de setores SST.
btnPesquisarEmployer:Button⚪ NãoAciona a pesquisa de setores SST.
gdvSetorSSTEmployer:EmployerGrid⚪ NãoGrid para exibir os setores SST cadastrados. Colunas: Contrato, Centro de Resultado, Código Setor SST, Descrição, Situação, Data Cadastro, Ações (Editar, Excluir).
gdvSetorSST.btnEditarImageButton⚪ NãoBotão de edição para cada linha da grid. Visível se SST_Vinculado for falso.
gdvSetorSST.btnExcluirImageButton⚪ NãoBotão de exclusão para cada linha da grid. Visível se SST_Vinculado for falso.

📑 4. Abas e Seções

A tela é dividida nas seguintes seções visuais:

  • Título: <h1>Cadastrar Setor SST</h1>
  • Painel de Validação: pnlValidacao (contém vsValidacao)
  • Painel de Cadastro/Edição de Setor SST: upSetorSST (contém os campos de Contrato Mãe, Contrato Filho, Centro de Resultado, Setor SST e Situação)
  • divContratoMae: Contém lblContatoMae e txtContratoMae. Visibilidade controlada dinamicamente.
  • divContratoFilho: Contém lblContratoFilho e txtContratoFilho. Visibilidade controlada dinamicamente.
  • divCentroResultado: Contém lblCentroResultado e txtCentroResultado. Visibilidade controlada dinamicamente.
  • Botões de Ação (acima da grid): panel_botoes_secao (contém btnSalvar, btnLimpar, btnVoltar)
  • Seção de Pesquisa: upnPesquisa
  • Subtítulo: <h2>Setores Cadastrados</h2>
  • Campos de Pesquisa: lblPesquisa, txtPesquisa, btnPesquisar
  • Grid de Setores Cadastrados: gdvSetorSST

🛡️ 5. Regras de Negócio

5.1. Validações de Campos

  • txtContratoMae:
  • Campo Obrigatório: “Campo Contrato Mãe é Obrigatório.” (Summary)
  • Campo Inválido: “Campo Inválido.” (Formato), “Campo Contrato Mãe é Inválido.” (Summary)
  • txtDescricaoSetorSST:
  • Campo Obrigatório: “Campo descrição Setor SST é obrigatório.” (Summary)
  • lsSituacao:
  • Campo Obrigatório: “Campo Situação é obrigatório.” (Summary)
  • Campo Inválido: “Campo Situação deve conter uma das sugetões.” (Summary)
  • Setor SST Existente:
  • Se a descrição do setor SST já estiver cadastrada para a mesma estrutura (Empresa/Centro de Resultado ou Contrato), exibe a mensagem: “Setor já cadastrado para o {estrutura} selecionado.” (Validacoes() no CadastrarSetorSST.aspx.cs)
  • Alteração de Contrato Vinculado:
  • Ao tentar salvar um setor SST existente, se o contrato filho for alterado e houver empregados vinculados a esse setor, exibe a mensagem: “Contrato vinculado ao Setor SST não pode ser alterado pois está referenciado por algum empregado.” (Salvar() no CadastrarSetorSST.aspx.cs)
  • Edição de Setor SST Vinculado:
  • Ao tentar editar um setor SST que possui histórico no registro de empregados, exibe a mensagem: “Não é possível realizar alteração no Setor SST que possui histórico no registro de empregados. Favor verificar.” (ValidarPreeencherCampos() no CadastrarSetorSST.aspx.cs)

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

  • Permissão de Salvar: O botão btnSalvar é desabilitado se o usuário não possuir a permissão CadastrarSetorSST.Salvar (CarregarPermissoes() no CadastrarSetorSST.aspx.cs).
  • Adaptação por Tipo de Estrutura Gerencial (ConfigurarPorTipoEstruturaGerencial() no CadastrarSetorSST.aspx.cs):
  • Se Empresa.TipoEstruturaGerencial for CentroResultado:
  • UtilizaCentroResultado é true.
  • Coluna “Contrato” (gdvSetorSST.Columns[0]) na grid é ocultada.
  • divContratoMae e txtContratoMae são ocultados e txtContratoMae.Obrigatorio é false.
  • divContratoFilho e txtContratoFilho são ocultados e txtContratoFilho.Obrigatorio é false.
  • divCentroResultado e txtCentroResultado são exibidos e txtCentroResultado.Obrigatorio é false.
  • Se Contrato.CarregarContratoCentroResultado retornar um contrato, txtContratoFilho.IdContratoSelecionado é preenchido.
  • Caso contrário (estrutura gerencial não for por Centro de Resultado):
  • UtilizaCentroResultado é false.
  • Coluna “Centro de Resultado” (gdvSetorSST.Columns[1]) na grid é ocultada.
  • divContratoMae e txtContratoMae são exibidos e txtContratoMae.Obrigatorio é true.
  • divCentroResultado e txtCentroResultado são ocultados e txtCentroResultado.Obrigatorio é false.
  • Visibilidade dos botões Editar e Excluir na Grid: Os botões btnEditar e btnExcluir em cada linha da grid são visíveis apenas se o campo SST_Vinculado da linha for false (gdvSetorSST no CadastrarSetorSST.aspx).

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

  • Exclusão de Setor SST Vinculado:
  • Um setor SST não pode ser excluído se estiver referenciado por algum empregado (EmpregadoSetorSST.ExisteSetorSSTVinculadoEmpregado). Se houver vínculo, exibe a mensagem “Setor SST não pode ser excluído pois está referenciado por algum empregado.” (Excluir() no CadastrarSetorSST.aspx.cs).
  • Se não houver vínculo, o setor SST é excluído (SetorSST.Delete).

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

  • Salvar (Salvar() no CadastrarSetorSST.aspx.cs):
  • Se IdSetorSST tiver valor (edição):
  • Carrega o objeto SetorSST existente.
  • Verifica se o contrato filho foi alterado e se há empregados vinculados ao setor (EmpregadoSetorSST().ExisteSetorSSTVinculadoEmpregado). Se sim, impede a alteração e retorna false.
  • Se IdSetorSST não tiver valor (novo cadastro):
  • Cria um novo objeto SetorSST.
  • Se txtContratoFilho.IdContratoSelecionado tiver valor, adiciona-o à lista de contratos a serem salvos.
  • Caso contrário, lista os contratos filhos a partir do contrato mãe (objContrato.ListarIdContratoFilhoPorContratoMae).
  • Itera sobre a lista de contratos (seja um único contrato filho ou múltiplos do contrato mãe):
  • Associa Empresa (com CodigoEmpresa).
  • Associa ContratoMae (se txtContratoMae.IdContratoSelecionado tiver valor).
  • Associa ContratoFilho (com o idContrato da iteração).
  • Associa CentroResultado (se txtCentroResultado.IdCentroResultadoSelecionado tiver valor).
  • Define DescricaoSetorSST com o texto de txtDescricaoSetorSST.
  • Define FlagInativo com base no valor de lsSituacao (decimal.One.ToString() para inativo, decimal.Zero.ToString() para ativo).
  • Chama objSetorSST.Salvar(objSetorSST).
  • Cria um novo objeto SetorSST para a próxima iteração (se houver múltiplos contratos filhos).
  • Em caso de sucesso, retorna true. Em caso de exceção, exibe mensagem de erro e retorna false.

5.5. Outras Regras Específicas da Tela

  • Inicialização (Inicializar() no CadastrarSetorSST.aspx.cs):
  • Carrega as permissões do usuário (CarregarPermissoes()).
  • Configura os campos de UserControl (ConfiguraCampos()).
  • Adapta a tela ao tipo de estrutura gerencial da empresa (ConfigurarPorTipoEstruturaGerencial()).
  • Preenche os campos (se estiver em modo de edição) e carrega a lista de situação (PreencherCampos()).
  • Carrega a grid de setores SST (CarregarGrid()).
  • Limpar Campos (LimparCampos() no CadastrarSetorSST.aspx.cs):
  • Limpa as propriedades IdSetorSST (da sessão), IdContratoSelecionado, IdEmpresa, IdFilial dos controles txtContratoMae, txtContratoFilho, txtCentroResultado.
  • Limpa o texto de txtDescricaoSetorSST.
  • O IdContratoSelecionado de txtContratoFilho é mantido se UtilizaCentroResultado for true.
  • Preencher Campos (PreencherCampos() no CadastrarSetorSST.aspx.cs):
  • Carrega a lsSituacao com as opções “Ativo” (0) e “Inativo” (1).
  • Define o valor inicial de lsSituacao como “Ativo” (0).
  • Se IdSetorSST for maior que 0 (modo de edição):
  • Carrega o objeto SetorSST pelo IdSetorSST.
  • Preenche txtContratoMae.IdContratoSelecionado, txtContratoFilho.IdContratoSelecionado, txtCentroResultado.IdCentroResultadoSelecionado, txtDescricaoSetorSST.Text e lsSituacao.ValorBooleano com os dados do objeto.
  • Atualiza o UpdatePanel upnGeral.
  • Alteração de Contrato Mãe (txtContratoMae_ValorAlterado() no CadastrarSetorSST.aspx.cs):
  • Define txtContratoFilho.IdContratoMae com o valor selecionado em txtContratoMae.
  • Limpa os campos de txtContratoFilho.
  • Alteração de Contrato Filho (txtContratoFilho_ValorAlterado() no CadastrarSetorSST.aspx.cs):
  • Se txtContratoFilho.IdContratoSelecionado tiver valor:
  • Carrega o objeto Contrato correspondente (Contrato.LoadObject).
  • Se o contrato tiver FilialGestora, preenche txtContratoMae.IdContratoSelecionado (se houver contrato mãe) e txtContratoFilho.IdFilial.
  • Define o foco para txtDescricaoSetorSST.
  • Alteração de Centro de Resultado (txtCentroResultado_ValorAlterado() no CadastrarSetorSST.aspx.cs):
  • Se txtCentroResultado.IdCentroResultadoSelecionado tiver valor:
  • Carrega o objeto CentroResultado correspondente (CentroResultado.LoadObject).
  • Se o centro de resultado tiver Filial, preenche txtCentroResultado.IdFilial.
  • Define o foco para txtDescricaoSetorSST.

🔄 6. Fluxos Principais

6.1. Inicialização da Tela (Page_Load)

  1. Page_Load (executado apenas no primeiro carregamento da página, !IsPostBack)
  2. Inicializar():
  • CarregarPermissoes():
  • Carrega as permissões do usuário logado para a categoria CadastrarSetorSST (Usuario.CarregarPermissoes).
  • Se o usuário não tiver a permissão CadastrarSetorSST.Visualizar, redireciona para a página de acesso negado (Response.Redirect(Configuracao.UrlAcessoNegado)).
  • Se o usuário não tiver a permissão CadastrarSetorSST.Salvar, o botão btnSalvar é desabilitado.
  • ConfiguraCampos():
  • Define IdEmpresa e IdUsuario para os UserControls txtContratoMae, txtContratoFilho e txtCentroResultado com base no IdEmpresaLogada() e CodigoUsuarioLogado.
  • ConfigurarPorTipoEstruturaGerencial():
  • Carrega o objeto Empresa logada (Empresa.LoadObject).
  • Verifica o TipoEstruturaGerencial da empresa.
  • Se for CentroResultado:
  • Define UtilizaCentroResultado = true.
  • Oculta a coluna “Contrato” na gdvSetorSST.
  • Oculta e desabilita txtContratoMae e txtContratoFilho.
  • Exibe e habilita txtCentroResultado.
  • Tenta carregar um contrato associado ao centro de resultado (Contrato.CarregarContratoCentroResultado) e preenche txtContratoFilho.IdContratoSelecionado se encontrado.
  • Caso contrário:
  • Define UtilizaCentroResultado = false.
  • Oculta a coluna “Centro de Resultado” na gdvSetorSST.
  • Exibe e habilita txtContratoMae.
  • Oculta e desabilita txtCentroResultado.
  • PreencherCampos():
  • Carrega a lsSituacao com as opções “Ativo” e “Inativo”.
  • Define o valor padrão de lsSituacao como “Ativo”.
  • Se IdSetorSST (da sessão) tiver valor (modo de edição):
  • Carrega o objeto SetorSST (SetorSST.LoadObject).
  • Preenche os campos txtContratoMae.IdContratoSelecionado, txtContratoFilho.IdContratoSelecionado, txtCentroResultado.IdCentroResultadoSelecionado, txtDescricaoSetorSST.Text e lsSituacao.ValorBooleano com os dados do setor.
  • Atualiza o UpdatePanel upnGeral.
  • CarregarGrid():
  • Carrega a gdvSetorSST com os dados retornados por SetorSST.ListarSetorSST, aplicando filtros de pesquisa, ordenação e paginação.

6.2. Salvar Setor SST (btnSalvar_Click)

  1. btnSalvar_Click
  2. Util.ValidaPermissaoUsuario(): Verifica se o usuário tem a permissão CadastrarSetorSST.Salvar. Se não, exibe mensagem de aviso e interrompe o fluxo.
  3. Validacoes():
  • Verifica se a descrição do setor SST já existe para a estrutura selecionada (SetorSST.ExisteSetor). Se sim, exibe mensagem de aviso e retorna false.
  • Se todas as validações passarem, retorna true.
  1. Se Validacoes() retornar true:
  • Salvar():
  • Se IdSetorSST tiver valor (edição):
  • Carrega o SetorSST existente (SetorSST.LoadObject).
  • Verifica se o IdContratoSelecionado de txtContratoFilho foi alterado e se o setor possui vínculo com empregados (EmpregadoSetorSST().ExisteSetorSSTVinculadoEmpregado). Se sim, exibe mensagem de erro e retorna false.
  • Se IdSetorSST não tiver valor (novo cadastro), cria um novo SetorSST.
  • Determina a lista de idContrato para salvar: se txtContratoFilho.IdContratoSelecionado tiver valor, usa-o; caso contrário, lista os contratos filhos do contrato mãe (Contrato.ListarIdContratoFilhoPorContratoMae).
  • Itera sobre cada idContrato na lista:
  • Popula as propriedades do objeto objSetorSST (Empresa, ContratoMae, ContratoFilho, CentroResultado, DescricaoSetorSST, FlagInativo).
  • Chama objSetorSST.Salvar(objSetorSST) para persistir os dados.
  • Para múltiplos contratos filhos, reinicializa objSetorSST para o próximo.
  • Retorna true em caso de sucesso, false em caso de exceção.
  1. Se Salvar() retornar true:
  • Exibe mensagem de sucesso (MensagemAviso._100001).
  • CarregarGrid(): Recarrega a grid para refletir as alterações.
  • LimparCampos(): Limpa os campos do formulário.
  1. Em caso de exceção durante o btnSalvar_Click ou se Salvar() retornar false, exibe mensagem de erro.

6.3. Limpar Campos (btnLimpar_Click)

  1. btnLimpar_Click
  2. LimparCampos():
  • Define IdSetorSST = null (limpa a sessão).
  • Limpa IdContratoSelecionado, IdEmpresa, IdFilial dos controles txtContratoMae, txtContratoFilho e txtCentroResultado.
  • Limpa o texto de txtDescricaoSetorSST.

6.4. Voltar (btnVoltar_Click)

  1. btnVoltar_Click
  2. Redireciona o navegador para ~/MenuMaisOpcoes.aspx?ID=A.

6.5. Pesquisar Setores SST (btnPesquisar_OnClick)

  1. btnPesquisar_OnClick
  2. CarregarGrid(): Recarrega a gdvSetorSST aplicando o texto de pesquisa de txtPesquisa.

6.6. Ações na Grid (gdvSetorSST_RowCommand)

  1. gdvSetorSST_RowCommand
  2. Verifica se o CommandName é “Editar” ou “Excluir”.
  3. Extrai rowIndex e dataKeyValue (que é o Idf_Setor_SST) da linha clicada.
  4. Armazena dataKeyValue na propriedade IdSetorSST (sessão).
  5. Case “Editar”:
  • ValidarPreeencherCampos(dataKeyValue):
  • Verifica se o setor SST possui vínculo com empregados (EmpregadoSetorSST().ExisteSetorSSTVinculadoEmpregado). Se sim, exibe mensagem de erro e retorna.
  • Se não houver vínculo, chama PreencherCampos() para carregar os dados do setor no formulário.
  1. Case “Excluir”:
  • Excluir(dataKeyValue):
  • Verifica se o setor SST possui vínculo com empregados (EmpregadoSetorSST().ExisteSetorSSTVinculadoEmpregado). Se sim, exibe mensagem de erro e retorna.
  • Se não houver vínculo, chama SetorSST.Delete(dataKeyValue) para excluir o setor.
  • Exibe mensagem de sucesso (MensagemAviso._100002) ou erro.
  • Limpa os campos (LimparCampos()) e recarrega a grid (CarregarGrid()).

6.7. Recarregar Grid (gdvSetorSST_CarregarGrid)

  1. gdvSetorSST_CarregarGrid (evento disparado pelo controle EmployerGrid para paginação/ordenação)
  2. CarregarGrid(): Recarrega a grid com os parâmetros atuais.

6.8. Eventos de Alteração de Valor nos UserControls

  • txtContratoMae_ValorAlterado:
  • Define txtContratoFilho.IdContratoMae com o IdContratoSelecionado de txtContratoMae.
  • Limpa os campos de txtContratoFilho.
  • txtContratoFilho_ValorAlterado:
  • Se txtContratoFilho.IdContratoSelecionado tiver valor:
  • Carrega o objeto Contrato (Contrato.LoadObject).
  • Se o contrato tiver FilialGestora, preenche txtContratoMae.IdContratoSelecionado (se houver contrato mãe) e txtContratoFilho.IdFilial.
  • Define o foco para txtDescricaoSetorSST.
  • txtCentroResultado_ValorAlterado:
  • Se txtCentroResultado.IdCentroResultadoSelecionado tiver valor:
  • Carrega o objeto CentroResultado (CentroResultado.LoadObject).
  • Se o centro de resultado tiver Filial, preenche txtCentroResultado.IdFilial.
  • Define o foco para txtDescricaoSetorSST.

🔌 7. Integrações e Dependências

7.1. Classes BLL e Service utilizadas

  • Employer.Plataforma.BLL.CentroResultado

  • Arquivos: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroResultado_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroResultado_P2.cs

  • Métodos chamados:

  • LoadObject(int idCentroResultado): Carrega um objeto CentroResultado pelo seu ID. Utilizado para obter detalhes do centro de resultado selecionado, como a filial associada.

  • Employer.Plataforma.BLL.Contrato

  • Arquivos: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P2.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P3.cs

  • Métodos chamados:

  • CarregarContratoCentroResultado(int idEmpresa, out Contrato objContrato): Carrega um contrato que é um centro de resultado para a empresa especificada. Usado para preencher o contrato filho quando a estrutura gerencial da empresa é por centro de resultado.

  • LoadObject(int idContrato): Carrega um objeto Contrato pelo seu ID. Utilizado para obter detalhes do contrato filho selecionado, como seu contrato mãe e filial gestora.

  • ListarIdContratoFilhoPorContratoMae(int idEmpresa, int idContratoMae, int idUsuario): Retorna uma lista de IDs de contratos filhos associados a um contrato mãe específico, considerando a empresa e o usuário. Usado no processo de salvar quando um contrato mãe é selecionado, mas não um contrato filho específico.

  • Employer.Plataforma.BLL.Empresa

  • Arquivos: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P2.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P3.cs

  • Métodos chamados:

  • LoadObject(int idEmpresa): Carrega um objeto Empresa pelo seu ID. Utilizado para determinar o TipoEstruturaGerencial da empresa logada e adaptar a interface da tela.

  • Employer.Plataforma.BLL.SetorSST

  • Arquivos: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\SetorSST_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\SetorSST_P2.cs

  • Métodos chamados:

  • Delete(int idSetorSST): Exclui um setor SST do banco de dados com base no seu ID.

  • ListarSetorSST(int idEmpresa, string pesquisa, string colunaOrdenada, string direcaoOrdenacao, int pageSize, int pageIndex, out int total): Retorna uma lista paginada e ordenada de setores SST para uma empresa, com opção de filtro por texto de pesquisa.

  • LoadObject(int idSetorSST): Carrega um objeto SetorSST pelo seu ID. Usado para preencher os campos da tela em modo de edição e para obter dados para validações.

  • ExisteSetor(int idEmpresa, int? idCentroResultado, int? idContratoMae, int? idContratoFilho, int? idSetorSST, string descricaoSetorSST): Verifica a existência de um setor SST com a mesma descrição para a combinação de empresa, centro de resultado, contrato mãe e contrato filho. Usado para evitar duplicidade no cadastro.

  • Employer.Plataforma.Web.Code.UIHelper

  • Arquivo: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.Code\UIHelper.cs

  • Métodos chamados:

  • CarregarGridView(GridView grid, object dataSource, int totalRecords): Método utilitário para vincular uma fonte de dados a um GridView e configurar a paginação.

  • Employer.Plataforma.BLL.Usuario

  • Arquivos: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P2.cs

  • Métodos chamados:

  • CarregarPermissoes(Usuario usuario, Enum.CategoriaPermissao categoriaPermissao): Carrega as permissões de um usuário para uma categoria de permissão específica. Usado para controle de acesso e funcionalidades da tela.

  • Employer.Plataforma.BLL.Util

  • Arquivo: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Util.cs

  • Métodos chamados:

  • ValidaPermissaoUsuario(List<int> permissoes, int permissao): Verifica se uma permissão específica está contida na lista de permissões do usuário. Usado para validar a permissão de salvar.

  • Employer.Plataforma.BLL.EmpregadoSetorSST

  • Arquivos: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoSetorSST_P1.cs, C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoSetorSST_P2.cs

  • Métodos chamados:

  • ExisteSetorSSTVinculadoEmpregado(int idSetorSST, int idEmpresa): Verifica se um setor SST está atualmente vinculado a algum empregado na empresa. Usado para impedir exclusão ou alteração de contrato de setores com vínculos.

7.2. Stored Procedures chamadas

  • SP_SETOR_SST_DELETE
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\SetorSST_P1.cs
  • Parâmetros SQL: @Idf_Setor_SST
  • Propósito: Exclui um registro da tabela TAB_Setor_SST com base no identificador do setor SST.
  • SP_SETOR_SST_LISTAR
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\SetorSST_P1.cs
  • Parâmetros SQL: @Idf_Empresa, @Des_Pesquisa, @Nom_Coluna_Ordenacao, @Des_Direcao_Ordenacao, @Num_Pagina, @Num_Linhas_Pagina, @Num_Total_Registros
  • Propósito: Retorna uma lista paginada e ordenada de setores SST para uma empresa, permitindo filtragem por descrição.
  • SP_SETOR_SST_LOAD
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\SetorSST_P1.cs
  • Parâmetros SQL: @Idf_Setor_SST
  • Propósito: Carrega os dados de um setor SST específico da tabela TAB_Setor_SST com base no seu identificador.
  • SP_SETOR_SST_EXISTE
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\SetorSST_P1.cs
  • Parâmetros SQL: @Idf_Empresa, @Idf_Centro_Resultado, @Idf_Contrato_Mae, @Idf_Contrato_Filho, @Idf_Setor_SST, @Des_Setor_SST
  • Propósito: Verifica a existência de um setor SST com a mesma descrição para a combinação de empresa, centro de resultado, contrato mãe e contrato filho.
  • SP_SETOR_SST_SALVAR
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\SetorSST_P1.cs
  • Parâmetros SQL: @Idf_Setor_SST, @Idf_Empresa, @Idf_Contrato_Mae, @Idf_Contrato_Filho, @Idf_Centro_Resultado, @Des_Setor_SST, @Flg_Inativo
  • Propósito: Insere um novo registro ou atualiza um existente na tabela TAB_Setor_SST.
  • SP_EMPREGADO_SETOR_SST_EXISTE_VINCULO
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\EmpregadoSetorSST_P1.cs
  • Parâmetros SQL: @Idf_Setor_SST, @Idf_Empresa
  • Propósito: Verifica se existe algum empregado vinculado a um setor SST específico para uma dada empresa.
  • SP_CONTRATO_CARREGAR_CONTRATO_CENTRO_RESULTADO
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P1.cs
  • Parâmetros SQL: @Idf_Empresa
  • Propósito: Carrega o contrato que atua como centro de resultado para a empresa especificada.
  • SP_CONTRATO_LOAD
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P1.cs
  • Parâmetros SQL: @Idf_Contrato
  • Propósito: Carrega os dados de um contrato específico da tabela TAB_Contrato.
  • SP_CONTRATO_LISTAR_ID_CONTRATO_FILHO_POR_CONTRATO_MAE
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P1.cs
  • Parâmetros SQL: @Idf_Empresa, @Idf_Contrato_Mae, @Idf_Usuario
  • Propósito: Lista os identificadores dos contratos filhos associados a um contrato mãe, considerando a empresa e o usuário.
  • SP_EMPRESA_LOAD
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P1.cs
  • Parâmetros SQL: @Idf_Empresa
  • Propósito: Carrega os dados de uma empresa específica da tabela TAB_Empresa.
  • SP_USUARIO_CARREGAR_PERMISSOES
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P1.cs
  • Parâmetros SQL: @Idf_Usuario, @Idf_Categoria_Permissao
  • Propósito: Carrega as permissões de um usuário para uma categoria de permissão específica.
  • SP_CENTRO_RESULTADO_LOAD
  • Arquivo BLL onde aparece: C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroResultado_P1.cs
  • Parâmetros SQL: @Idf_Centro_Resultado
  • Propósito: Carrega os dados de um centro de resultado específico da tabela TAB_Centro_Resultado.

7.3. UserControls incluídos (.ascx)

  • Employer:LocalizarContrato
  • Caminho: ~/UserControls/LocalizarContrato.ascx (assumido, padrão da plataforma)
  • IDs: txtContratoMae, txtContratoFilho
  • Propriedades expostas: Width, Obrigatorio, ValidationGroup, MensagemErroFormato, MensagemErroFormatoSummary, MensagemErroObrigatorio, MensagemErroObrigatorioSummary, TipoDeContrato, IdEmpresa, IdUsuario, IdContratoSelecionado, IdFilial, IdContratoMae.
  • Eventos: ValorAlterado (mapeado para txtContratoMae_ValorAlterado, txtContratoFilho_ValorAlterado)
  • Métodos públicos chamados pela tela pai: LimparCampos()
  • Employer:LocalizarCentroResultado
  • Caminho: ~/UserControls/LocalizarCentroResultado.ascx (assumido, padrão da plataforma)
  • ID: txtCentroResultado
  • Propriedades expostas: ValidationGroup, TipoCentroResultado, MensagemErroObrigatorioSummary, MensagemErroFormatoSummary, IdEmpresa, IdUsuario, IdCentroResultadoSelecionado, IdFilial.
  • Eventos: ValorAlterado (mapeado para txtCentroResultado_ValorAlterado)
  • Employer:ControlAlfaNumerico
  • Caminho: ~/UserControls/ControlAlfaNumerico.ascx (assumido, padrão da plataforma)
  • IDs: txtDescricaoSetorSST, txtPesquisa
  • Propriedades expostas: Width, Obrigatorio, ValidationGroup, MensagemErroObrigatorioSummary, Tamanho, CssClass.
  • Employer:ListaSugestoes
  • Caminho: ~/UserControls/ListaSugestoes.ascx (assumido, padrão da plataforma)
  • ID: lsSituacao
  • Propriedades expostas: Obrigatorio, MensagemErroObrigatorioSummary, MensagemErroInvalidoSummary, ValidationGroup, Valor, ValorBooleano.
  • Métodos públicos chamados pela tela pai: CarregarListaSugestoes(Dictionary<string, string> dataSource)
  • Employer:EmployerGrid
  • Caminho: ~/UserControls/EmployerGrid.ascx (assumido, padrão da plataforma)
  • ID: gdvSetorSST
  • Propriedades expostas: AutoGenerateColumns, CellSpacing, CssClass, AlternatingRowStyle-CssClass, SkinID, HeaderStyle-CssClass, AllowPaging, AllowSorting, DataKeyNames, EmptyDataText, MockDirecaoOrdenacao, MockColunaOrdenada, PageSize, MockPageIndex.
  • Eventos: RowCommand (mapeado para gdvSetorSST_RowCommand), CarregarGrid (mapeado para gdvSetorSST_CarregarGrid)

7.4. WebServices, APIs externas, filas

Não foram identificadas chamadas diretas a WebServices, APIs externas ou filas RabbitMQ no código-fonte analisado para esta tela.

8. Mensagens ao Usuário

  • “Setor SST não pode ser excluído pois está referenciado por algum empregado.” (TipoMensagem.Erro - Excluir() no CadastrarSetorSST.aspx.cs)
  • “Erro ao excluir Setor SST” (TipoMensagem.Erro - Excluir() no CadastrarSetorSST.aspx.cs)
  • “Setor já cadastrado para o {estrutura} selecionado.” (TipoMensagem.Aviso - Validacoes() no CadastrarSetorSST.aspx.cs)
  • “Contrato vinculado ao Setor SST não pode ser alterado pois está referenciado por algum empregado.” (TipoMensagem.Erro - Salvar() no CadastrarSetorSST.aspx.cs)
  • “Não é possível realizar alteração no Setor SST que possui histórico no registro de empregados. Favor verificar.” (TipoMensagem.Erro - ValidarPreeencherCampos() no CadastrarSetorSST.aspx.cs)
  • “Usuário não tem permissão para executar essa operação!” (TipoMensagem.Aviso - btnSalvar_Click no CadastrarSetorSST.aspx.cs)
  • MensagemAviso._100002: Mensagem de sucesso após a exclusão de um setor SST.
  • MensagemAviso._100001: Mensagem de sucesso após o salvamento (cadastro ou edição) de um setor SST.

9. Permissões e Perfis

  • Enum.Permissoes.CadastrarSetorSST.Visualizar:
  • Controla o acesso à tela. Se o usuário não possuir esta permissão, ele é redirecionado para a página de acesso negado (Configuracao.UrlAcessoNegado). (CarregarPermissoes() no CadastrarSetorSST.aspx.cs)
  • Enum.Permissoes.CadastrarSetorSST.Salvar:
  • Controla a habilitação do botão “Salvar” (btnSalvar.Enabled = false se a permissão estiver ausente). (CarregarPermissoes() no CadastrarSetorSST.aspx.cs)
  • É verificada explicitamente antes da execução da lógica de salvar, exibindo uma mensagem de aviso se o usuário não tiver a permissão. (btnSalvar_Click no CadastrarSetorSST.aspx.cs)

10. Aprofundamento — Detalhes Internos de Métodos

Com certeza! Vou consolidar e detalhar a documentação dos métodos internos para as classes CentroResultado, Contrato e Empresa com base em todo o código que você me forneceu.


Employer.Plataforma.BLL.CentroResultado

Arquivos:

  • C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroResultado_P1.cs
  • C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CentroResultado_P2.cs

Métodos

MétodoAssinaturaPropósito
GetParametersprivate List<SqlParameter> GetParameters()Prepara uma lista de parâmetros SQL para operações de insert e update.
SetParametersprivate void SetParameters(List<SqlParameter> parms)Preenche uma lista de parâmetros SQL com os valores da instância atual de CentroResultado.
Insertprivate void Insert()Insere uma nova instância de CentroResultado no banco de dados.
Insertprivate void Insert(SqlTransaction trans)Insere uma nova instância de CentroResultado no banco de dados dentro de uma transação.
Updateprivate void Update()Atualiza uma instância existente de CentroResultado no banco de dados.
Updateprivate void Update(SqlTransaction trans)Atualiza uma instância existente de CentroResultado no banco de dados dentro de uma transação.
Savepublic void Save()Salva uma instância de CentroResultado (insere se for nova, atualiza se já existir).
Savepublic void Save(SqlTransaction trans)Salva uma instância de CentroResultado dentro de uma transação.
Deletepublic static void Delete(int idCentroResultado)Exclui um CentroResultado pelo seu ID.
Deletepublic static void Delete(int idCentroResultado, SqlTransaction trans)Exclui um CentroResultado pelo seu ID dentro de uma transação.
Deletepublic static void Delete(List<int> idCentroResultado)Exclui uma lista de CentroResultado por seus IDs.
LoadDataReaderprivate static IDataReader LoadDataReader(int idCentroResultado)Retorna um IDataReader com as colunas de um registro de CentroResultado pelo ID.
LoadDataReaderprivate static IDataReader LoadDataReader(int idCentroResultado, SqlTransaction trans)Retorna um IDataReader com as colunas de um registro de CentroResultado pelo ID dentro de uma transação.
LoadDataReaderpublic static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Retorna um IDataReader com uma consulta paginada de CentroResultado.
LoadObjectpublic static CentroResultado LoadObject(int idCentroResultado)Retorna uma instância de CentroResultado a partir do banco de dados pelo ID.
LoadObjectpublic static CentroResultado LoadObject(int idCentroResultado, SqlTransaction trans)Retorna uma instância de CentroResultado a partir do banco de dados pelo ID dentro de uma transação.
CompleteObjectpublic bool CompleteObject()Completa a instância atual de CentroResultado com dados do banco de dados.
CompleteObjectpublic bool CompleteObject(SqlTransaction trans)Completa a instância atual de CentroResultado com dados do banco de dados dentro de uma transação.
SetInstanceprivate static bool SetInstance(IDataReader dr, CentroResultado objCentroResultado)Método auxiliar utilizado pelos métodos LoadObject e CompleteObject para percorrer um IDataReader e vincular as colunas com os atributos da classe.
ListarCRsCadastradosDSpublic static DataSet ListarCRsCadastradosDS(Empresa objEmpresa)Lista os Centros de Resultado cadastrados para uma empresa em um DataSet.
ListarCRsCadastradosPaginadopublic static DataTable ListarCRsCadastradosPaginado(int idEmpresa, int pagina, int tamPagina, string ordem, string direcaoOrdem, out int numRegistros)Lista os Centros de Resultado cadastrados para uma empresa de forma paginada em um DataTable.
CodigoReduzidoJaUsadopublic static Boolean CodigoReduzidoJaUsado(String codigoReduzido, Empresa objEmpresa, CentroResultado objCentroResultado)Verifica se um código reduzido já está em uso para um Centro de Resultado em uma empresa.
DefinirResponsavelpublic void DefinirResponsavel(PessoaFisica objPessoaFisica, SqlTransaction objTransaction)Define o responsável atual para o Centro de Resultado.
ExcluirCentroResultadopublic static void ExcluirCentroResultado(int idEmpresa, int? idFilial, CentroResultado objCentroResultado, int idUsuarioLogado)Exclui um Centro de Resultado e seus vínculos.
InativarSupervisorCRpublic static void InativarSupervisorCR(int idEmpresa, int? idFilial, CentroResultado objCentroResultado, ResponsavelCentroResultado objResponsavel, int idUsuarioLogado, SqlTransaction objTransaction)Inativa o supervisor de CR e remove o vínculo de empregados.
QuantidadeNiveisEmpresapublic static int QuantidadeNiveisEmpresa(Empresa objEmpresa)Retorna a quantidade de níveis de CR existentes na empresa.
QuantidadeNiveisEmpresapublic static int QuantidadeNiveisEmpresa(SqlTransaction objTransaction, Empresa objEmpresa)Retorna a quantidade de níveis de CR existentes na empresa dentro de uma transação.
ListarRelatorioCentroResultadopublic static DataTable ListarRelatorioCentroResultado(Empresa objEmpresa, int situacao, CentroResultado objCrSuperior)Lista Centros de Resultado para relatório, com filtros de situação e CR superior.
SetInstance2private static bool SetInstance2(IDataReader dr, CentroResultado objCentroResultado)Método auxiliar para preencher uma instância de CentroResultado a partir de um IDataReader (similar ao SetInstance).
CarregarPorCentroResultadoSuperiorpublic static List<CentroResultado> CarregarPorCentroResultadoSuperior(SqlTransaction objTransaction, CentroResultado objCentroResultadoSuperior)Carrega todos os Centros de Resultado filhos diretamente conectados a um CR superior (não recursivo).
AtualizarEstruturapublic static void AtualizarEstrutura(SqlTransaction objTransaction, CentroResultado objCentroResultadoSuperior, String estruturaAntiga)Atualiza a estrutura dos Centros de Resultado filhos de um CR superior.
VerificarFilhospublic static Boolean VerificarFilhos(CentroResultado objCentroResultado, SqlTransaction pTrans = null)Verifica se um Centro de Resultado possui filhos.
RecuperarCRFilhospublic static DataTable RecuperarCRFilhos(int codEmpresa, int codUsuario, int? idCentroResultado)Retorna os CRs filhos que o usuário tem permissão.
RecuperarCRAnaliticospublic static List<int> RecuperarCRAnaliticos(int idEmpresa, int idUsuario, int? idCentroResultado)Retorna os IDs dos CRs analíticos a partir de um CR sintético.
RecuperarHistoricopublic static DataSet RecuperarHistorico(int Idf_Empregado, String colunaOrdenada, String tipoOrdenacao, int tamanhoPagina, int paginaCorrente, out int total)Recupera o histórico de CR de um funcionário de forma paginada.
CarregarCentroResultadoPorDescEstCentResulpublic static DataTable CarregarCentroResultadoPorDescEstCentResul(String Des_Estrutura_Centro_Resultado, int idempresa)Carrega Centros de Resultado por descrição da estrutura e ID da empresa.
ListarIDCentroResultadoAnaliticoAtivospublic static List<int> ListarIDCentroResultadoAnaliticoAtivos(int? pIdEmpresa, int? pIdCentroResultadoBase)Carrega IDs de CRs analíticos ativos de uma empresa, opcionalmente a partir de um CR base.
ListarIDCentroResultadoAnaliticopublic static List<int> ListarIDCentroResultadoAnalitico(int? pIdEmpresa, int? pIdCentroResultadoBase, bool? flgInativo = null)Carrega IDs de CRs analíticos de uma empresa, opcionalmente a partir de um CR base e filtrando por inatividade.
ListarIDCentroResultadoAnaliticoAtivosRelatorioFolhaPagamentopublic static List<int> ListarIDCentroResultadoAnaliticoAtivosRelatorioFolhaPagamento(int? pIdEmpresa, int? pIdCentroResultadoBase)Carrega IDs de CRs analíticos ativos para relatório de folha de pagamento.
ListarIDCentroResultadoAnaliticoRelatorioFolhaPagamentopublic static List<int> ListarIDCentroResultadoAnaliticoRelatorioFolhaPagamento(int? pIdEmpresa, int? pIdCentroResultadoBase, bool? flgInativo = null)Carrega IDs de CRs analíticos para relatório de folha de pagamento, com filtro de inatividade.
ConsultaCentroResultadoPorListIdfpublic static DataTable ConsultaCentroResultadoPorListIdf(string IdfCentroResultado, string Pesquisa, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Consulta Centros de Resultado por uma lista de IDs, com pesquisa, ordenação e paginação.
RecuperarCentroResultadoAnaliticopublic static string RecuperarCentroResultadoAnalitico(int? pIdCentroResultado, int pIdEmpresa, bool? flgInativo = false)Retorna uma string formatada com a lista de IDs de CRs analíticos para uso em queries.
CarregarIdPorEstruturapublic static bool CarregarIdPorEstrutura(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, out int? idCentroResultado)Carrega o ID de um Centro de Resultado pela estrutura e empresa/filial.
CarregarPorEstruturapublic static bool CarregarPorEstrutura(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, out CentroResultado objCentroResultado, SqlTransaction pTrans = null, int? pIdUsuario = null)Carrega um objeto CentroResultado pela estrutura, empresa/filial e usuário.
CarregarPorEstrutura[Obsolete] public static bool CarregarPorEstrutura(int pIdEmpresa, string pEstruturaCentroResultado, out CentroResultado objCentroResultado)(Obsoleto) Carrega um objeto CentroResultado pela estrutura e empresa (não filtra por filial).
CarregarPorEstruturapublic static bool CarregarPorEstrutura(SqlTransaction pTrans, int pIdEmpresa, string pEstruturaCentroResultado, out CentroResultado objCentroResultado)Carrega um objeto CentroResultado pela estrutura e empresa dentro de uma transação.
CarregarPorEstruturapublic static bool CarregarPorEstrutura(SqlTransaction pTrans, int pIdEmpresa, int? pIdFilial, string pEstruturaCentroResultado, out CentroResultado objCentroResultado, int? pIdUsuario = null)Carrega um objeto CentroResultado pela estrutura, empresa/filial e usuário dentro de uma transação.
CarregarPorEstruturaV2public static bool CarregarPorEstruturaV2(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, out CentroResultado objCentroResultado, SqlTransaction pTrans = null)Carrega um objeto CentroResultado pela estrutura, empresa/filial (versão 2).
CarregarPorEstruturaV2public static bool CarregarPorEstruturaV2(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, string pNomeCentroResultado, out CentroResultado objCentroResultado)Carrega um objeto CentroResultado pela estrutura, nome, empresa/filial (versão 2).
CarregarPorEstruturaV2public static CentroResultado CarregarPorEstruturaV2(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, string pNomeCentroResultado)Carrega e retorna um objeto CentroResultado pela estrutura, nome, empresa/filial (versão 2).
CarregarPorEmpresapublic static List<CentroResultado> CarregarPorEmpresa(int pIdEmpresa)Carrega uma lista de CentroResultado para uma empresa específica.
ListarParaImportacaopublic static DataTable ListarParaImportacao(int? top, params object[] filtros)Lista Centros de Resultado para importação dinâmica.
ListarAutocompletepublic static IDataReader ListarAutocomplete(int count, string prefixText, bool ConsiderarCentroResultadoInativo, int? TipoCentroResultado, int? IdGrupoEconomico, int? IdEmpresa, int? IdFilial, int? IdCentroResultadoSuperior, int? IdCentroResultadoAtual, int? IdUsuario)Retorna um IDataReader para autocomplete de Centros de Resultado com diversos filtros.
ListarAutocompleteListapublic static IDataReader ListarAutocompleteLista(int count, string prefixText, bool ConsiderarCentroResultadoInativo, int? TipoCentroResultado, int? IdGrupoEconomico, int? IdEmpresa, int? IdFilial, int? IdCentroResultadoSuperior, int? IdCentroResultadoAtual, int? IdUsuario)Retorna um IDataReader para autocomplete de Centros de Resultado com filtros (similar ao anterior, mas com construção de query diferente).
ListarPaginadoComponenteConfListapublic static DataTable ListarPaginadoComponenteConfLista(int pagina, int tamPagina, string ordem, string direcaoOrdem, out int numRegistros, string prefixText, bool ConsiderarCentroResultadoInativo, int? TipoCentroResultado, int? IdGrupoEconomico, int? IdEmpresa, int? IdFilial, int? IdCentroResultadoSuperior, int? IdCentroResultadoAtual, int? IdUsuario, List<int?> lsIdCentroResultado = null)Lista Centros de Resultado paginados para componente de configuração de lista.
CarregarComponentePorCodigopublic static IDataReader CarregarComponentePorCodigo(int idCr)Carrega um IDataReader para componente de Centro de Resultado pelo código.
CentroCustoBuscaComponentePaginadopublic static DataTable CentroCustoBuscaComponentePaginado(int inicio, int fim, string SortExpression, string SortDirection, out int iTotalRegistro, string BuscaTexto)Busca Centros de Custo paginados para componente.
CentroCustoListarAutocompletepublic static DataTable CentroCustoListarAutocomplete(string prefixText, int count)Lista Centros de Custo para autocomplete.
ListarCentroResultadoAtivopublic static List<CentroResultado> ListarCentroResultadoAtivo(SqlTransaction pTrans, int pIdEmpresa, int? pIdFilial, string pEstruturaCentroResultado, bool flgPermiteLancamento, int? idUsuario = null)Retorna uma lista de Centros de Resultado ativos com filtros.
ValidarDadosArquivoImportacaopublic static void ValidarDadosArquivoImportacao(LoteImportacao objLote, SqlTransaction trans)Valida os dados de um arquivo de importação de Centros de Resultado.
ValidarDadosArquivoImportacaoErrosNosDadosprivate static LoteImportacao.CriticasValidacaoDados.CriticaLinha ValidarDadosArquivoImportacaoErrosNosDados(BLL.LoteImportacao objLote, SqlTransaction trans, LoteImportacao.DadosArquivo.LinhaValores linha, List<ProcessoArquivoColuna> lsColunas, Dictionary<int, Dictionary<int, string>> dicListasDinamicas)Valida erros nos dados de uma linha do arquivo de importação.
ValidarDadosArquivoImportacaoErrosNegocioprivate static void ValidarDadosArquivoImportacaoErrosNegocio(BLL.LoteImportacao objLote, SqlTransaction trans, List<ProcessoArquivoColuna> lsColunas, Dictionary<int, Dictionary<int, string>> dicListasDinamicas)Valida erros de negócio em um arquivo de importação.
ValidaCentroResultadoDeMesmaEstruturaprivate static void ValidaCentroResultadoDeMesmaEstrutura(int idEmpresa, string estrutura, Filial objFilial, CentroResultado objCentroResultadoSuperior, CriticaLinha criticaLinha)Valida se já existe um Centro de Resultado com a mesma estrutura.
LancarDadosArquivoImportacaopublic static void LancarDadosArquivoImportacao(BLL.LoteImportacao objLote, SqlTransaction trans, List<Guid> lsLinhasLancar, int idUsuarioLogado)Lança os dados de um arquivo de importação no banco de dados.
ExcluirLoteImportacaointernal static void ExcluirLoteImportacao(LoteImportacao objLote, SqlTransaction trans)Exclui um lote de importação de Centros de Resultado.
ListarIdsCentroResultadoImportadosprivate static List<int> ListarIdsCentroResultadoImportados(LoteImportacao objLote)Lista os IDs dos Centros de Resultado importados em um lote.
ExcluirLinhaLoteCentroResultadoprivate static void ExcluirLinhaLoteCentroResultado(LoteImportacao objLote, SqlTransaction trans)Exclui as linhas de um lote de importação de Centros de Resultado.
BuscaCentroResultadoPorCodigoEstruturapublic static bool BuscaCentroResultadoPorCodigoEstrutura(string pDesEstruturaCR, int pIdEmpresa, out CentroResultado ojbCentroResultado)Busca um Centro de Resultado por código de estrutura e empresa.
VerificarExistenciaPorEstruturaCentroResultadopublic static int VerificarExistenciaPorEstruturaCentroResultado(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, SqlTransaction pTrans = null)Verifica a existência de um Centro de Resultado por estrutura, empresa e filial.
ValidaCentroResultadopublic static bool ValidaCentroResultado(int idEmpresa, string descCentroResultado, out int? idCentroResultado)Valida um Centro de Resultado por descrição e empresa.

Detalhamento de Métodos Importantes

GetParameters()

  • Lógica: Este método privado é responsável por inicializar e retornar uma lista de objetos SqlParameter. Cada parâmetro é configurado com seu nome (prefixado com ”@”), tipo de dado SQL e tamanho máximo. Ele prepara a estrutura para que os valores dos atributos da instância de CentroResultado possam ser associados posteriormente.
  • Stored Procedures chamadas: Nenhuma diretamente. Prepara parâmetros para queries SQL textuais definidas como constantes na classe (SPINSERT, SPUPDATE, SPDELETE, SPSELECTID).
  • Validações: Nenhuma.
  • Regras de negócio: Nenhuma.

SetParameters(List parms)

  • Lógica: Este método privado recebe uma lista de SqlParameter (gerada por GetParameters) e preenche os valores de cada parâmetro com os atributos da instância atual de CentroResultado.
  • O IdCentroResultado é definido como Output se a instância não for persistida (novo registro), caso contrário, é Input.
  • Campos opcionais (_filial, _centroResultadoSuperior, _flagPermiteLancamento, _dataFimVigencia, _descricaoCodigoReduzido) são definidos como DBNull.Value se forem nulos.
  • _dataCadastro é definido como DateTime.Now se a instância não for persistida.
  • _usuarioGerador é preenchido com o IdUsuario da sessão HTTP atual ou com 1 se a sessão for nula (usuário padrão).
  • Stored Procedures chamadas: Nenhuma diretamente. Preenche parâmetros para queries SQL textuais.
  • Validações: Nenhuma.
  • Regras de negócio:
  • Atribuição de DateTime.Now para _dataCadastro em novos registros.
  • Obtenção do IdUsuario da sessão para _usuarioGerador.

Insert()

  • Lógica: Este método privado insere os dados da instância atual de CentroResultado no banco de dados.
  1. Chama GetParameters() para obter a lista de parâmetros.
  2. Chama SetParameters(parms) para preencher os parâmetros com os valores da instância.
  3. Abre uma conexão SQL e inicia uma transação.
  4. Executa a query SPINSERT (um comando SQL textual de INSERT) usando DataAccessLayer.ExecuteNonQueryCmd.
  5. Recupera o IdCentroResultado gerado pelo banco de dados (usando SCOPE_IDENTITY()) e o atribui à propriedade _idCentroResultado.
  6. Limpa os parâmetros do comando.
  7. Define _persisted como true e _modified como false.
  8. Comita a transação.
  9. Em caso de exceção, a transação é revertida e a exceção é relançada.
  • Stored Procedures chamadas: SPINSERT (SQL textual: INSERT INTO TAB_Centro_Resultado (...) VALUES (...)).
  • Validações: Nenhuma explícita, mas a integridade do banco de dados pode causar exceções.
  • Exceções: Lança exceções em caso de falha na operação de banco de dados.

Insert(SqlTransaction trans)

  • Lógica: Similar ao Insert() sem transação, mas utiliza uma transação SQL existente.
  1. Chama GetParameters() e SetParameters(parms).
  2. Executa a query SPINSERT usando DataAccessLayer.ExecuteNonQueryCmd com a transação fornecida.
  3. Recupera o IdCentroResultado gerado e o atribui à propriedade _idCentroResultado.
  4. Limpa os parâmetros do comando.
  5. Define _persisted como true e _modified como false.
  • Stored Procedures chamadas: SPINSERT (SQL textual: INSERT INTO TAB_Centro_Resultado (...) VALUES (...)).
  • Validações: Nenhuma explícita.

Update()

  • Lógica: Este método privado atualiza os dados da instância atual de CentroResultado no banco de dados, mas apenas se a instância tiver sido modificada (_modified for true).
  1. Verifica se _modified é true.
  2. Chama GetParameters() e SetParameters(parms).
  3. Executa a query SPUPDATE (um comando SQL textual de UPDATE) usando DataAccessLayer.ExecuteNonQuery.
  4. Define _modified como false.
  • Stored Procedures chamadas: SPUPDATE (SQL textual: UPDATE TAB_Centro_Resultado SET ... WHERE Idf_Centro_Resultado = @Idf_Centro_Resultado).
  • Validações: Nenhuma explícita.

Update(SqlTransaction trans)

  • Lógica: Similar ao Update() sem transação, mas utiliza uma transação SQL existente.
  1. Verifica se _modified é true.
  2. Chama GetParameters() e SetParameters(parms).
  3. Executa a query SPUPDATE usando DataAccessLayer.ExecuteNonQuery com a transação fornecida.
  4. Define _modified como false.
  • Stored Procedures chamadas: SPUPDATE (SQL textual: UPDATE TAB_Centro_Resultado SET ... WHERE Idf_Centro_Resultado = @Idf_Centro_Resultado).
  • Validações: Nenhuma explícita.

Save()

  • Lógica: Este método público é o ponto de entrada para persistir uma instância de CentroResultado.
  1. Se a instância não for persistida (_persisted é false), chama Insert().
  2. Caso contrário (a instância já existe no banco), chama Update().
  • Stored Procedures chamadas: Nenhuma diretamente. Chama Insert() ou Update().
  • Validações: Nenhuma explícita.

Save(SqlTransaction trans)

  • Lógica: Similar ao Save() sem transação, mas utiliza uma transação SQL existente.
  1. Se a instância não for persistida (_persisted é false), chama Insert(trans).
  2. Caso contrário, chama Update(trans).
  • Stored Procedures chamadas: Nenhuma diretamente. Chama Insert(trans) ou Update(trans).
  • Validações: Nenhuma explícita.

Delete(int idCentroResultado)

  • Lógica: Este método estático público exclui um registro de CentroResultado do banco de dados.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Centro_Resultado com o valor fornecido e @Idf_Usuario_Gerador com o CodigoUsuario da sessão.
  3. Executa a query SPDELETE (um comando SQL textual de DELETE) usando DataAccessLayer.ExecuteNonQuery.
  • Stored Procedures chamadas: SPDELETE (SQL textual: UPDATE TAB_Centro_Resultado SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Centro_Resultado = @Idf_Centro_Resultado ; DELETE FROM TAB_Centro_Resultado WHERE Idf_Centro_Resultado = @Idf_Centro_Resultado).
  • Parâmetros SQL:
  • @Idf_Centro_Resultado: int, ID do Centro de Resultado a ser excluído.
  • @Idf_Usuario_Gerador: int, ID do usuário que está realizando a exclusão.
  • Validações: Nenhuma explícita.

Delete(int idCentroResultado, SqlTransaction trans)

  • Lógica: Similar ao Delete(int idCentroResultado) sem transação, mas utiliza uma transação SQL existente.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Centro_Resultado e @Idf_Usuario_Gerador.
  3. Executa a query SPDELETE usando DataAccessLayer.ExecuteNonQuery com a transação fornecida.
  • Stored Procedures chamadas: SPDELETE (SQL textual: UPDATE TAB_Centro_Resultado SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Centro_Resultado = @Idf_Centro_Resultado ; DELETE FROM TAB_Centro_Resultado WHERE Idf_Centro_Resultado = @Idf_Centro_Resultado).
  • Parâmetros SQL:
  • @Idf_Centro_Resultado: int, ID do Centro de Resultado a ser excluído.
  • @Idf_Usuario_Gerador: int, ID do usuário que está realizando a exclusão.
  • Validações: Nenhuma explícita.

Delete(List idCentroResultado)

  • Lógica: Este método estático público exclui uma lista de registros de CentroResultado do banco de dados.
  1. Constrói dinamicamente duas queries SQL: uma para atualizar o Idf_Usuario_Gerador e outra para deletar os registros, ambas usando a cláusula IN com parâmetros gerados dinamicamente (@parm0, @parm1, etc.).
  2. Adiciona os IDs da lista como parâmetros.
  3. Adiciona o Idf_Usuario_Gerador da sessão.
  4. Executa a query combinada usando DataAccessLayer.ExecuteNonQuery.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL:
  • @parmX: int, IDs dos Centros de Resultado a serem excluídos.
  • @Idf_Usuario_Gerador: int, ID do usuário que está realizando a exclusão.
  • Validações: Nenhuma explícita.

LoadDataReader(int idCentroResultado)

  • Lógica: Este método privado estático retorna um IDataReader contendo os dados de um CentroResultado específico.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Centro_Resultado com o ID fornecido.
  3. Executa a query SPSELECTID (um comando SQL textual de SELECT) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTID (SQL textual: SELECT * FROM TAB_Centro_Resultado WHERE Idf_Centro_Resultado = @Idf_Centro_Resultado).
  • Parâmetros SQL:
  • @Idf_Centro_Resultado: int, ID do Centro de Resultado a ser carregado.
  • Validações: Nenhuma explícita.

LoadDataReader(int idCentroResultado, SqlTransaction trans)

  • Lógica: Similar ao LoadDataReader(int idCentroResultado) sem transação, mas utiliza uma transação SQL existente.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Centro_Resultado com o ID fornecido.
  3. Executa a query SPSELECTID usando DataAccessLayer.ExecuteReader com a transação fornecida.
  • Stored Procedures chamadas: SPSELECTID (SQL textual: SELECT * FROM TAB_Centro_Resultado WHERE Idf_Centro_Resultado = @Idf_Centro_Resultado).
  • Parâmetros SQL:
  • @Idf_Centro_Resultado: int, ID do Centro de Resultado a ser carregado.
  • Validações: Nenhuma explícita.

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

  • Lógica: Este método estático público retorna um IDataReader para uma consulta paginada de CentroResultado.
  1. Calcula os valores de inicio e fim para a paginação.
  2. Constrói duas queries SQL textuais: SPSELECTPAG (para a página atual, usando ROW_NUMBER() OVER (ORDER BY ...) para ordenação e paginação) e SPSELECTCOUNT (para contar o total de registros).
  3. Executa SPSELECTCOUNT usando DataAccessLayer.ExecuteScalar para obter o totalRegistros.
  4. Executa SPSELECTPAG usando DataAccessLayer.ExecuteReader para obter os dados da página atual.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL: Nenhum parâmetro explícito, mas a query é construída com base nos argumentos do método.
  • Validações: Nenhuma explícita.

LoadObject(int idCentroResultado)

  • Lógica: Este método estático público carrega e retorna uma instância de CentroResultado a partir do banco de dados.
  1. Chama LoadDataReader(idCentroResultado) para obter um IDataReader.
  2. Cria uma nova instância de CentroResultado.
  3. Chama SetInstance(dr, objCentroResultado) para preencher a instância com os dados do IDataReader.
  4. Se SetInstance retornar true (registro encontrado), retorna a instância.
  5. Caso contrário, lança uma RecordNotFoundException.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoadDataReader e SetInstance.
  • Validações: Verifica se o registro foi encontrado no banco de dados.
  • Exceções: Lança RecordNotFoundException se o Centro de Resultado não for encontrado.

LoadObject(int idCentroResultado, SqlTransaction trans)

  • Lógica: Similar ao LoadObject(int idCentroResultado) sem transação, mas utiliza uma transação SQL existente.
  1. Chama LoadDataReader(idCentroResultado, trans).
  2. Cria uma nova instância de CentroResultado.
  3. Chama SetInstance(dr, objCentroResultado).
  4. Se SetInstance retornar true, retorna a instância.
  5. Caso contrário, lança uma RecordNotFoundException.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoadDataReader e SetInstance.
  • Validações: Verifica se o registro foi encontrado no banco de dados.
  • Exceções: Lança RecordNotFoundException se o Centro de Resultado não for encontrado.

CompleteObject()

  • Lógica: Este método público completa a instância atual de CentroResultado com dados do banco de dados, usando o IdCentroResultado da própria instância.
  1. Chama LoadDataReader(this._idCentroResultado).
  2. Chama SetInstance(dr, this) para preencher a própria instância.
  3. Retorna o resultado de SetInstance.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoadDataReader e SetInstance.
  • Validações: Nenhuma explícita.

CompleteObject(SqlTransaction trans)

  • Lógica: Similar ao CompleteObject() sem transação, mas utiliza uma transação SQL existente.
  1. Chama LoadDataReader(this._idCentroResultado, trans).
  2. Chama SetInstance(dr, this).
  3. Retorna o resultado de SetInstance.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoadDataReader e SetInstance.
  • Validações: Nenhuma explícita.

SetInstance(IDataReader dr, CentroResultado objCentroResultado)

  • Lógica: Este método privado estático é crucial para mapear os dados de um IDataReader para as propriedades de um objeto CentroResultado.
  1. Tenta ler a próxima linha do IDataReader (dr.Read()).
  2. Se houver uma linha:
  • Atribui os valores das colunas do IDataReader às propriedades correspondentes de objCentroResultado, realizando conversões de tipo.
  • Para campos que podem ser nulos no banco de dados (ex: Idf_Filial, Idf_Centro_Resultado_Superior, Flg_Permite_Lancamento, Dta_Fim_Vigencia, Des_Codigo_Reduzido, Dta_Cadastro, Idf_Usuario_Gerador), verifica DBNull.Value antes de converter.
  • Instancia objetos Empresa, Filial, CentroResultado (para o superior) e Usuario (para o gerador) com base nos IDs lidos.
  • Define _persisted como true e _modified como false.
  • Retorna true.
  1. Se não houver mais linhas, retorna false.
  2. Em caso de exceção durante a leitura ou conversão, a exceção é relançada.
  3. O IDataReader é descartado no bloco finally.
  • Stored Procedures chamadas: Nenhuma diretamente. Mapeia resultados de queries SQL.
  • Validações: Verifica DBNull.Value para campos opcionais.
  • Exceções: Pode relançar exceções de conversão de tipo ou de acesso a dados.

ListarCRsCadastradosDS(Empresa objEmpresa)

  • Lógica: Retorna um DataSet contendo uma lista de Centros de Resultado cadastrados para a empresa fornecida.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Empresa com o ID da empresa.
  3. Executa a query SplistarCRCADASTRADOS (SQL textual) usando DataAccessLayer.ExecuteReaderDs.
  • Stored Procedures chamadas: SplistarCRCADASTRADOS (SQL textual: uma CTE recursiva para listar CRs e seus superiores, juntamente com a filial, para uma empresa específica).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

ListarCRsCadastradosPaginado(int idEmpresa, int pagina, int tamPagina, string ordem, string direcaoOrdem, out int numRegistros)

  • Lógica: Retorna um DataTable com Centros de Resultado cadastrados para uma empresa, com suporte a paginação e ordenação.
  1. Cria uma lista de SqlParameter para @Idf_Empresa, @PageNumber e @RowspPage.
  2. Define uma CTE recursiva (arvore_cr) para construir a hierarquia de Centros de Resultado.
  3. Constrói uma query sCount para contar o total de registros e executa-a usando DataAccessLayer.ExecuteScalar para preencher numRegistros.
  4. Constrói a query principal sQuery que seleciona os dados da CTE, junta com TAB_Centro_Resultado e TAB_Filial, aplica ordenação e paginação usando OFFSET e FETCH NEXT.
  5. Executa sQuery usando DataAccessLayer.ExecuteReaderDs e retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente com CTEs.
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @PageNumber: int, número da página.
  • @RowspPage: int, número de linhas por página.
  • Validações: Nenhuma explícita.

CodigoReduzidoJaUsado(String codigoReduzido, Empresa objEmpresa, CentroResultado objCentroResultado)

  • Lógica: Verifica se um codigoReduzido já está em uso por outro CentroResultado na mesma Empresa.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Centro_Resultado (nulo se objCentroResultado for nulo, caso contrário, o ID do CR).
  3. Adiciona @Des_Codigo_Reduzido e @Idf_Empresa.
  4. Executa a query SPCODIGOREDUZIDOJAUSADO (SQL textual) usando DataAccessLayer.ExecuteReader.
  5. Retorna true se o leitor puder ler uma linha (indicando que o código reduzido já está em uso), false caso contrário.
  • Stored Procedures chamadas: SPCODIGOREDUZIDOJAUSADO (SQL textual: SELECT 1 FROM TAB_Centro_Resultado WHERE (@Idf_Centro_Resultado IS NULL OR Idf_Centro_Resultado <> @Idf_Centro_Resultado) AND Des_Codigo_Reduzido = @Des_Codigo_Reduzido AND Idf_Empresa = @Idf_Empresa).
  • Parâmetros SQL:
  • @Idf_Centro_Resultado: int?, ID do Centro de Resultado atual (para exclusão do próprio registro na verificação).
  • @Des_Codigo_Reduzido: varchar(50), código reduzido a ser verificado.
  • @Idf_Empresa: int, ID da empresa.
  • Regras de negócio: Garante a unicidade do código reduzido dentro da mesma empresa, excluindo o próprio registro em caso de edição.

DefinirResponsavel(PessoaFisica objPessoaFisica, SqlTransaction objTransaction)

  • Lógica: Define a PessoaFisica como responsável atual pelo CentroResultado.
  1. Carrega o responsável atual do CR usando ResponsavelCentroResultado.CarregarResponsavelAtualCr.
  2. Se já houver um responsável e for a mesma PessoaFisica, o método retorna sem fazer nada.
  3. Inativa os responsáveis vigentes para o CR usando ResponsavelCentroResultado.InativarResponsaveisCr.
  4. Cria um novo objeto ResponsavelCentroResultado, preenche suas propriedades (CentroResultado, PessoaFisica, DataInicioVigencia, FlagInativo).
  5. Salva o novo responsável usando objResponsavel.Save(objTransaction).
  • Stored Procedures chamadas: Nenhuma diretamente. Chama métodos da classe ResponsavelCentroResultado.
  • Validações: Verifica se o novo responsável é o mesmo que o atual para evitar operações desnecessárias.
  • Regras de negócio:
  • Um CR só pode ter um responsável ativo por vez.
  • A data de início de vigência do novo responsável é DateTime.Now.
  • O FlagInativo do novo responsável é false.

ExcluirCentroResultado(int idEmpresa, int? idFilial, CentroResultado objCentroResultado, int idUsuarioLogado)

  • Lógica: Exclui um Centro de Resultado e seus dados relacionados em uma transação.
  1. Abre uma conexão SQL e inicia uma transação.
  2. Tenta:
  • Completa o objeto objCentroResultado com dados do banco de dados (objCentroResultado.CompleteObject(objTransaction)).
  • Exclui o histórico de responsáveis do CR (ResponsavelCentroResultado.ExcluirHistoricoCentroResultado).
  • Exclui o próprio CR usando a query SPEXCLUIRCR.
  • Recupera a quantidade de níveis de CR da empresa (QuantidadeNiveisEmpresa).
  • Remove apelidos de nível acima do nível máximo do CR (ApelidoNivelCentroResultado.RemoverApelidosAcimaNivel).
  • Verifica um parâmetro de sistema (UtilizaResponsavelCRSupervisorEmpregado). Se for “1”:
  • Carrega o responsável atual do CR.
  • Chama InativarSupervisorCR para inativar o supervisor e remover vínculos de empregados.
  • Comita a transação.
  1. Em caso de exceção, a transação é revertida e a exceção é relançada.
  • Stored Procedures chamadas:
  • SPEXCLUIRCR (SQL textual: DELETE FROM TAB_Centro_Resultado WHERE Idf_Centro_Resultado = @Idf_Centro_Resultado).
  • SPQUANTIDADENIVEISEMPRESA (SQL textual: uma CTE recursiva para calcular o nível máximo de CRs).
  • Parâmetros SQL:
  • @Idf_Centro_Resultado: int, ID do Centro de Resultado a ser excluído.
  • @Idf_Empresa: int, ID da empresa (para QuantidadeNiveisEmpresa).
  • Validações: Nenhuma explícita, mas as chamadas a outros métodos podem conter validações internas.
  • Regras de negócio:
  • Exclusão em cascata de dados relacionados (histórico de responsáveis, apelidos de nível).
  • Lógica condicional para inativar supervisor e remover vínculos de empregados baseada em um parâmetro de sistema.
  • Exceções: Lança exceções em caso de falha na operação de banco de dados ou em métodos chamados.

InativarSupervisorCR(int idEmpresa, int? idFilial, CentroResultado objCentroResultado, ResponsavelCentroResultado objResponsavel, int idUsuarioLogado, SqlTransaction objTransaction)

  • Lógica: Inativa o supervisor de CR e remove o vínculo de empregados.
  1. Se objResponsavel não for nulo, chama Supervisor.VerificaInativaSupervisorCR para inativar o supervisor.
  2. Chama Empregado.RemoveEmpregadoSupervisorCR para remover o registro de empregado supervisor dos empregados do CR.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama métodos das classes Supervisor e Empregado.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Lógica de inativação e remoção de vínculos relacionada a supervisores e empregados.

QuantidadeNiveisEmpresa(Empresa objEmpresa)

  • Lógica: Retorna a quantidade máxima de níveis de Centros de Resultado existentes para uma empresa.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Empresa com o ID da empresa.
  3. Executa a query SPQUANTIDADENIVEISEMPRESA (SQL textual) usando DataAccessLayer.ExecuteScalar.
  4. Tenta converter o resultado para int. Se falhar, retorna 0.
  • Stored Procedures chamadas: SPQUANTIDADENIVEISEMPRESA (SQL textual: uma CTE recursiva que calcula o nível de cada CR e retorna o nível máximo).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

QuantidadeNiveisEmpresa(SqlTransaction objTransaction, Empresa objEmpresa)

  • Lógica: Similar ao QuantidadeNiveisEmpresa(Empresa objEmpresa) sem transação, mas utiliza uma transação SQL existente.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Empresa com o ID da empresa.
  3. Executa a query SPQUANTIDADENIVEISEMPRESA usando DataAccessLayer.ExecuteScalar com a transação fornecida.
  4. Tenta converter o resultado para int. Se falhar, retorna 0.
  • Stored Procedures chamadas: SPQUANTIDADENIVEISEMPRESA (SQL textual: uma CTE recursiva que calcula o nível de cada CR e retorna o nível máximo).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

ListarRelatorioCentroResultado(Empresa objEmpresa, int situacao, CentroResultado objCrSuperior)

  • Lógica: Retorna um DataTable com dados de Centros de Resultado para um relatório, permitindo filtrar por empresa, situação e Centro de Resultado superior.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Empresa, @Flg_Inativo (nullable) e @Idf_Cr_Superior (nullable).
  3. Preenche @Flg_Inativo com false (ativos), true (inativos) ou DBNull.Value (todos) com base no parâmetro situacao.
  4. Preenche @Idf_Cr_Superior com o ID do CR superior ou DBNull.Value se objCrSuperior for nulo.
  5. Executa a query SPRELATORIOCENTRORESULTADO (SQL textual) usando DataAccessLayer.ExecuteReaderDs.
  • Stored Procedures chamadas: SPRELATORIOCENTRORESULTADO (SQL textual: uma CTE recursiva para construir a árvore de CRs, juntando com responsáveis, filiais e matriz, e aplicando filtros de empresa, situação e vigência).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Flg_Inativo: bit?, flag para filtrar por CRs inativos (0 = ativos, 1 = inativos, NULL = todos).
  • @Idf_Cr_Superior: int?, ID do Centro de Resultado superior para filtrar a árvore.
  • Validações: Nenhuma explícita.

SetInstance2(IDataReader dr, CentroResultado objCentroResultado)

  • Lógica: Este método é idêntico ao SetInstance em CentroResultado_P1.cs. Ele mapeia os dados de um IDataReader para as propriedades de um objeto CentroResultado.
  1. Tenta ler a próxima linha do IDataReader (dr.Read()).
  2. Se houver uma linha, atribui os valores das colunas às propriedades de objCentroResultado, tratando DBNull.Value para campos opcionais e instanciando objetos relacionados (Empresa, Filial, CentroResultado superior, Usuario).
  3. Define _persisted como true e _modified como false.
  4. Retorna true se uma linha foi lida e mapeada, false caso contrário.
  5. Em caso de exceção, a exceção é relançada.
  • Stored Procedures chamadas: Nenhuma diretamente. Mapeia resultados de queries SQL.
  • Validações: Verifica DBNull.Value para campos opcionais.
  • Exceções: Pode relançar exceções de conversão de tipo ou de acesso a dados.

CarregarPorCentroResultadoSuperior(SqlTransaction objTransaction, CentroResultado objCentroResultadoSuperior)

  • Lógica: Carrega uma lista de Centros de Resultado que são filhos diretos de um objCentroResultadoSuperior fornecido. Não é recursivo.
  1. Cria uma lista vazia de CentroResultado.
  2. Cria uma lista de SqlParameter e adiciona @Idf_Centro_Resultado_Superior com o ID do CR superior.
  3. Executa a query SPCARREGARPORCRSUPERIOR (SQL textual) usando DataAccessLayer.ExecuteReader com a transação fornecida.
  4. Itera sobre o IDataReader:
  • Para cada linha, cria uma nova instância de CentroResultado.
  • Chama SetInstance2 para preencher a instância.
  • Se SetInstance2 retornar true, adiciona a instância à lista.
  1. Retorna a lista de Centros de Resultado filhos.
  • Stored Procedures chamadas: SPCARREGARPORCRSUPERIOR (SQL textual: SELECT * FROM TAB_Centro_Resultado WHERE Idf_Centro_Resultado_Superior = @Idf_Centro_Resultado_Superior).
  • Parâmetros SQL:
  • @Idf_Centro_Resultado_Superior: int, ID do Centro de Resultado superior.
  • Validações: Nenhuma explícita.

AtualizarEstrutura(SqlTransaction objTransaction, CentroResultado objCentroResultadoSuperior, String estruturaAntiga)

  • Lógica: Atualiza recursivamente a descrição da estrutura dos Centros de Resultado filhos de um objCentroResultadoSuperior.
  1. Chama CarregarPorCentroResultadoSuperior para obter uma lista dos filhos diretos do CR superior.
  2. Itera sobre cada objCentroResultado na lista de filhos:
  • Armazena a DescricaoEstruturaCentroResultado atual do filho (filhoEstruturaAntiga).
  • Constrói a nova DescricaoEstruturaCentroResultado do filho, concatenando a estrutura do superior com a parte restante da estrutura antiga do filho.
  • Salva o objCentroResultado atualizado usando objCentroResultado.Save(objTransaction).
  • Chama recursivamente AtualizarEstrutura para o filho atual, passando sua estrutura antiga como estruturaAntiga.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama CarregarPorCentroResultadoSuperior e Save.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Mantém a consistência da DescricaoEstruturaCentroResultado em uma hierarquia de CRs.

VerificarFilhos(CentroResultado objCentroResultado, SqlTransaction pTrans = null)

  • Lógica: Verifica se um CentroResultado possui Centros de Resultado filhos.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Centro_Resultado_Superior com o ID do CR a ser verificado.
  3. Executa a query SPVERIFICAFILHOS (SQL textual) usando DataAccessLayer.ExecuteReader (com ou sem transação).
  4. Retorna true se o leitor puder ler uma linha (indicando a existência de filhos), false caso contrário.
  • Stored Procedures chamadas: SPVERIFICAFILHOS (SQL textual: SELECT 1 FROM TAB_Centro_Resultado WHERE Idf_Centro_Resultado_Superior = @Idf_Centro_Resultado_Superior).
  • Parâmetros SQL:
  • @Idf_Centro_Resultado_Superior: int, ID do Centro de Resultado a ser verificado.
  • Validações: Nenhuma explícita.

RecuperarCRFilhos(int codEmpresa, int codUsuario, int? idCentroResultado)

  • Lógica: Retorna um DataTable contendo os Centros de Resultado filhos que o usuário tem permissão para acessar, a partir de um CR superior opcional.
  1. Cria um DataTable vazio.
  2. Cria uma lista de SqlParameter para @Idf_Cr_Atual, @Idf_Cr_Superior, @Idf_Empresa e @Idf_Usuario.
  3. Preenche os parâmetros com os valores fornecidos, tratando idCentroResultado como nullable.
  4. Executa a query SPRECUPERARCRFILHOS (SQL textual) usando DataAccessLayer.ExecuteReader e carrega o resultado no DataTable.
  • Stored Procedures chamadas: SPRECUPERARCRFILHOS (SQL textual: uma CTE recursiva para construir a árvore de CRs, filtrando por CR superior, CR atual, empresa, permissão de lançamento, inatividade, vigência e acesso do usuário via TAB_SF_Usuario_Acesso).
  • Parâmetros SQL:
  • @Idf_Cr_Atual: int?, ID do Centro de Resultado atual (para exclusão na árvore).
  • @Idf_Cr_Superior: int?, ID do Centro de Resultado superior.
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • Validações: Nenhuma explícita.
  • Regras de negócio:
  • Filtra por CRs que permitem lançamento (Flg_Permite_Lancamento = 1).
  • Filtra por CRs ativos (Flg_Inativo = 0) e dentro da vigência.
  • Aplica filtro de acesso do usuário (TAB_SF_Usuario_Acesso).

RecuperarCRAnaliticos(int idEmpresa, int idUsuario, int? idCentroResultado)

  • Lógica: Retorna uma lista de IDs de Centros de Resultado analíticos a partir de um Centro de Resultado sintético (base).
  1. Se idCentroResultado tiver valor:
  • Cria uma lista vazia de int.
  • Cria uma lista de SqlParameter para @Idf_Centro_Resultado_Sintetico, @Idf_Empresa e @Idf_Usuario.
  • Preenche os parâmetros.
  • Executa a query SPRECUPERARCRANALITICOS (SQL textual) usando DataAccessLayer.ExecuteReaderDs.
  • Itera sobre as linhas do DataTable resultante e adiciona os IDs à lista.
  • Retorna a lista.
  1. Se idCentroResultado for nulo, retorna null.
  • Stored Procedures chamadas: SPRECUPERARCRANALITICOS (SQL textual: uma CTE recursiva para encontrar CRs analíticos a partir de um CR sintético, filtrando por permissão de lançamento, inatividade, vigência e empresa).
  • Parâmetros SQL:
  • @Idf_Centro_Resultado_Sintetico: int, ID do Centro de Resultado sintético.
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário (não usado diretamente na SP, mas passado como parâmetro).
  • Validações: Nenhuma explícita.
  • Regras de negócio:
  • Filtra por CRs que permitem lançamento (Flg_Permite_Lancamento = 1).
  • Filtra por CRs ativos (Flg_Inativo = 0) e dentro da vigência.

RecuperarHistorico(int Idf_Empregado, String colunaOrdenada, String tipoOrdenacao, int tamanhoPagina, int paginaCorrente, out int total)

  • Lógica: Recupera o histórico de Centros de Resultado de um empregado de forma paginada.
  1. Calcula os valores de inicio e fim para a paginação.
  2. Cria uma lista de SqlParameter e adiciona @Idf_Empregado.
  3. Constrói a query principal (query) que seleciona o histórico de CRs do empregado, adiciona ROW_NUMBER() para ordenação e paginação.
  4. Constrói uma query contador para contar o total de registros e executa-a usando DataAccessLayer.ExecuteScalar para preencher total.
  5. Ajusta a query principal para aplicar a paginação (WHERE RowId BETWEEN inicio AND fim).
  6. Executa a query paginada usando DataAccessLayer.ExecuteReaderDs e retorna o DataSet.
  • Stored Procedures chamadas: SPRECUPERARHISTORICO (SQL textual: SELECT Des_Estrutura_Centro_Resultado + ' - ' + Des_Centro_Resultado AS Centro_Resultado, EC.Dta_Inicio_Vigencia, EC.Dta_Fim_Vigencia FROM TAB_Empregado_Contrato EC JOIN TAB_Centro_Resultado CR ON EC.Idf_Centro_Resultado = CR.Idf_Centro_Resultado WHERE EC.Idf_Empregado = @Idf_Empregado).
  • Parâmetros SQL:
  • @Idf_Empregado: int, ID do empregado.
  • Validações: Nenhuma explícita.

CarregarCentroResultadoPorDescEstCentResul(String Des_Estrutura_Centro_Resultado, int idempresa)

  • Lógica: Carrega um DataTable com Centros de Resultado que correspondem a uma descrição de estrutura e ID de empresa.
  1. Cria uma lista de SqlParameter para @Des_Estrutura_Centro_Resultado e @Idf_Empresa.
  2. Executa a query SPCARREGACRPORDESCRICAOESTRUTURA (SQL textual) usando DataAccessLayer.ExecuteReaderDs.
  3. Se o DataTable resultante tiver linhas, retorna-o; caso contrário, retorna null.
  • Stored Procedures chamadas: SPCARREGACRPORDESCRICAOESTRUTURA (SQL textual: SELECT * FROM TAB_Centro_Resultado WHERE Idf_Empresa = @Idf_Empresa AND Des_Estrutura_Centro_Resultado = @Des_Estrutura_Centro_Resultado).
  • Parâmetros SQL:
  • @Des_Estrutura_Centro_Resultado: varchar, descrição da estrutura do Centro de Resultado.
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

ListarIDCentroResultadoAnaliticoAtivos(int? pIdEmpresa, int? pIdCentroResultadoBase)

  • Lógica: Chama ListarIDCentroResultadoAnalitico com flgInativo = false para obter apenas os IDs de Centros de Resultado analíticos ativos.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarIDCentroResultadoAnalitico.
  • Validações: Nenhuma explícita.

ListarIDCentroResultadoAnalitico(int? pIdEmpresa, int? pIdCentroResultadoBase, bool? flgInativo = null)

  • Lógica: Carrega uma lista de IDs de Centros de Resultado analíticos para uma empresa, opcionalmente a partir de um CR base e filtrando por inatividade.
  1. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Centro_Resultado_Base e @Flg_Inativo.
  2. Preenche os parâmetros, tratando valores nulos.
  3. Executa a query SPSELIDCENTRORESULTADOANALITICOATIVO (SQL textual) usando DataAccessLayer.ExecuteReaderDs.
  4. Itera sobre as linhas do DataTable resultante e adiciona os IDs à lista.
  5. Retorna a lista de IDs.
  • Stored Procedures chamadas: SPSELIDCENTRORESULTADOANALITICOATIVO (SQL textual: uma CTE recursiva para encontrar CRs analíticos, filtrando por empresa, CR base, permissão de lançamento, inatividade e vigência, considerando o período de cálculo da filial).
  • Parâmetros SQL:
  • @Idf_Empresa: int?, ID da empresa.
  • @Idf_Centro_Resultado_Base: int?, ID do Centro de Resultado base (sintético).
  • @Flg_Inativo: bit?, flag para filtrar por inatividade (0 = ativos, 1 = inativos, NULL = todos).
  • Validações: Nenhuma explícita.
  • Regras de negócio:
  • Filtra por CRs que permitem lançamento (Flg_Permite_Lancamento = 1).
  • Considera o Flg_Inativo e a vigência do CR em relação ao período de cálculo da filial.

ListarIDCentroResultadoAnaliticoAtivosRelatorioFolhaPagamento(int? pIdEmpresa, int? pIdCentroResultadoBase)

  • Lógica: Chama ListarIDCentroResultadoAnaliticoRelatorioFolhaPagamento com flgInativo = false para obter apenas os IDs de Centros de Resultado analíticos ativos para relatório de folha de pagamento.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarIDCentroResultadoAnaliticoRelatorioFolhaPagamento.
  • Validações: Nenhuma explícita.

ListarIDCentroResultadoAnaliticoRelatorioFolhaPagamento(int? pIdEmpresa, int? pIdCentroResultadoBase, bool? flgInativo = null)

  • Lógica: Carrega uma lista de IDs de Centros de Resultado analíticos para uma empresa, opcionalmente a partir de um CR base e filtrando por inatividade, especificamente para relatórios de folha de pagamento.
  1. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Centro_Resultado_Base e @Flg_Inativo.
  2. Preenche os parâmetros, tratando valores nulos.
  3. Executa a query SPSELIDCENTRORESULTADOANALITICOATIVORELATORIOFOLHAPAGAMENTO (SQL textual) usando DataAccessLayer.ExecuteReaderDs.
  4. Itera sobre as linhas do DataTable resultante e adiciona os IDs à lista.
  5. Retorna a lista de IDs.
  • Stored Procedures chamadas: SPSELIDCENTRORESULTADOANALITICOATIVORELATORIOFOLHAPAGAMENTO (SQL textual: idêntica à SPSELIDCENTRORESULTADOANALITICOATIVO, mas com nome sugerindo uso específico para folha de pagamento. Utiliza CTE recursiva para encontrar CRs analíticos, filtrando por empresa, CR base, permissão de lançamento, inatividade e vigência, considerando o período de cálculo da filial).
  • Parâmetros SQL:
  • @Idf_Empresa: int?, ID da empresa.
  • @Idf_Centro_Resultado_Base: int?, ID do Centro de Resultado base (sintético).
  • @Flg_Inativo: bit?, flag para filtrar por inatividade (0 = ativos, 1 = inativos, NULL = todos).
  • Validações: Nenhuma explícita.
  • Regras de negócio:
  • Filtra por CRs que permitem lançamento (Flg_Permite_Lancamento = 1).
  • Considera o Flg_Inativo e a vigência do CR em relação ao período de cálculo da filial.

ConsultaCentroResultadoPorListIdf(string IdfCentroResultado, string Pesquisa, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)

  • Lógica: Consulta Centros de Resultado por uma lista de IDs (passada como string separada por vírgulas), com pesquisa textual, ordenação e paginação.
  1. Inicializa totalRegistros como 0.
  2. Calcula inicio e fim para a paginação.
  3. Cria uma lista de SqlParameter para @IdfCentroResultado, @Pesquisa, @colunaOrdenacao, @inicio e @fim.
  4. Constrói duas queries SQL textuais: SPSELECTCOUNT (para contar o total de registros) e SPSELECTPAG (para a página atual, usando ROW_NUMBER() para ordenação e paginação). Ambas as queries utilizam a constante SPCONSULTACENTRORESULTADOPORLISTIDF como base.
  5. Executa SPSELECTCOUNT para obter totalRegistros.
  6. Executa SPSELECTPAG usando DataAccessLayer.ExecuteReaderDs e retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: SPCONSULTACENTRORESULTADOPORLISTIDF (SQL textual: SELECT Idf_Centro_Resultado, Des_Estrutura_Centro_Resultado, Des_Centro_Resultado FROM TAB_Centro_Resultado WHERE Idf_Centro_Resultado IN (SELECT VALOR FROM plataforma.TAB_SF_SplitNumerico(@IdfCentroResultado)) AND (@Pesquisa IS NULL OR Des_Centro_Resultado LIKE '%' + @Pesquisa + '%' OR Des_Estrutura_Centro_Resultado = @Pesquisa)).
  • Parâmetros SQL:
  • @IdfCentroResultado: varchar(2000), string de IDs de Centros de Resultado separados por vírgula.
  • @Pesquisa: varchar(2000), texto para pesquisa na descrição ou estrutura do CR.
  • @colunaOrdenacao: varchar(100), nome da coluna para ordenação.
  • @inicio: int, linha inicial para paginação.
  • @fim: int, linha final para paginação.
  • Validações: Nenhuma explícita.

RecuperarCentroResultadoAnalitico(int? pIdCentroResultado, int pIdEmpresa, bool? flgInativo = false)

  • Lógica: Retorna uma string formatada com os IDs dos Centros de Resultado analíticos, para ser usada como parâmetro em outras queries.
  1. Inicializa uma lista vazia de int e uma string parametroListaIdCentroResultado vazia.
  2. Se pIdCentroResultado tiver valor:
  • Chama CentroResultado.ListarIDCentroResultadoAnalitico para obter a lista de IDs de CRs analíticos.
  • Converte a lista de IDs em uma string separada por vírgulas.
  1. Retorna a string formatada.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama CentroResultado.ListarIDCentroResultadoAnalitico.
  • Validações: Nenhuma explícita.

CarregarIdPorEstrutura(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, out int? idCentroResultado)

  • Lógica: Carrega o ID de um Centro de Resultado com base na empresa, filial (opcional) e descrição da estrutura.
  1. Define uma query SQL textual para selecionar o TOP 1 Idf_Centro_Resultado.
  2. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Filial e @Des_Estrutura_Centro_Resultado.
  3. Preenche os parâmetros, tratando pIdfFilial como nullable.
  4. Executa a query usando DataAccessLayer.ExecuteScalar e converte o resultado para int? usando ToIntOrDefault().
  5. Define idCentroResultado com o valor obtido.
  6. Retorna true se idCentroResultado tiver valor, false caso contrário.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Filial: int?, ID da filial (opcional).
  • @Des_Estrutura_Centro_Resultado: varchar(100), descrição da estrutura do Centro de Resultado.
  • Validações: Nenhuma explícita.

CarregarPorEstrutura(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, out CentroResultado objCentroResultado, SqlTransaction pTrans = null, int? pIdUsuario = null)

  • Lógica: Carrega um objeto CentroResultado pela estrutura, empresa/filial e usuário.
  1. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Filial, @Des_Estrutura_Centro_Resultado e @Idf_Usuario.
  2. Preenche os parâmetros, tratando valores nulos.
  3. Executa a query SELCENTRORESULTADOPOREMPRESAESTRUTURA (SQL textual) usando DataAccessLayer.ExecuteReader (com ou sem transação).
  4. Cria uma nova instância de CentroResultado.
  5. Chama SetInstance(dr, objCentroResultado) para preencher a instância.
  6. Se SetInstance retornar true, retorna true; caso contrário, define objCentroResultado como null e retorna false.
  • Stored Procedures chamadas: SELCENTRORESULTADOPOREMPRESAESTRUTURA (SQL textual: SELECT * FROM TAB_Centro_Resultado cr WHERE cr.Idf_Empresa = @Idf_Empresa AND (@Idf_Filial IS NULL OR cr.Idf_Filial = @Idf_Filial) AND cr.Des_Estrutura_Centro_Resultado LIKE LTRIM(RTRIM(@Des_Estrutura_Centro_Resultado)) AND (@Idf_Usuario IS NULL OR cr.Idf_Centro_Resultado IN (SELECT UA.Idf_Centro_Resultado FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa) UA))).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Filial: int?, ID da filial (opcional).
  • @Des_Estrutura_Centro_Resultado: varchar(100), descrição da estrutura do Centro de Resultado.
  • @Idf_Usuario: int?, ID do usuário (opcional, para filtro de acesso).
  • Validações: Nenhuma explícita.

CarregarPorEstrutura(int pIdEmpresa, string pEstruturaCentroResultado, out CentroResultado objCentroResultado)

  • Lógica: (Obsoleto) Carrega um objeto CentroResultado pela estrutura e empresa, sem filtrar por filial.
  1. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Filial (sempre DBNull.Value) e @Des_Estrutura_Centro_Resultado.
  2. Executa a query SELCENTRORESULTADOPOREMPRESAESTRUTURA (SQL textual) usando DataAccessLayer.ExecuteReader.
  3. Cria uma nova instância de CentroResultado.
  4. Chama SetInstance(dr, objCentroResultado) para preencher a instância.
  5. Se SetInstance retornar true, retorna true; caso contrário, define objCentroResultado como null e retorna false.
  • Stored Procedures chamadas: SELCENTRORESULTADOPOREMPRESAESTRUTURA (SQL textual).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Filial: int?, sempre DBNull.Value.
  • @Des_Estrutura_Centro_Resultado: varchar(100), descrição da estrutura do Centro de Resultado.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Este método é marcado como obsoleto devido à possibilidade de existirem múltiplos CRs com a mesma descrição e código em filiais diferentes, o que pode levar a resultados incorretos.

CarregarPorEstrutura(SqlTransaction pTrans, int pIdEmpresa, string pEstruturaCentroResultado, out CentroResultado objCentroResultado)

  • Lógica: Chama CarregarPorEstrutura com pIdFilial = null para carregar um objeto CentroResultado pela empresa e descrição da estrutura dentro de uma transação.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama CarregarPorEstrutura.
  • Validações: Nenhuma explícita.

CarregarPorEstrutura(SqlTransaction pTrans, int pIdEmpresa, int? pIdFilial, string pEstruturaCentroResultado, out CentroResultado objCentroResultado, int? pIdUsuario = null)

  • Lógica: Carrega um objeto CentroResultado com base na empresa, filial (opcional), descrição da estrutura (trimada) e usuário (opcional) dentro de uma transação.
  1. Se pEstruturaCentroResultado for nulo ou vazio, define objCentroResultado como null e retorna false.
  2. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Filial, @Des_Estrutura_Centro_Resultado e @Idf_Usuario.
  3. Preenche os parâmetros, tratando valores nulos e trimando pEstruturaCentroResultado.
  4. Executa a query SELCENTRORESULTADOPOREMPRESAESTRUTURA (SQL textual) usando DataAccessLayer.ExecuteReader com a transação fornecida.
  5. Cria uma nova instância de CentroResultado.
  6. Chama SetInstance(dr, objCentroResultado) para preencher a instância.
  7. Se SetInstance retornar true, retorna true; caso contrário, define objCentroResultado como null e retorna false.
  • Stored Procedures chamadas: SELCENTRORESULTADOPOREMPRESAESTRUTURA (SQL textual).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Filial: int?, ID da filial (opcional).
  • @Des_Estrutura_Centro_Resultado: varchar(100), descrição da estrutura do Centro de Resultado (trimada).
  • @Idf_Usuario: int?, ID do usuário (opcional, para filtro de acesso).
  • Validações: Verifica se pEstruturaCentroResultado é nulo ou vazio.

CarregarPorEstruturaV2(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, out CentroResultado objCentroResultado, SqlTransaction pTrans = null)

  • Lógica: Carrega um objeto CentroResultado pela estrutura, empresa/filial (versão 2).
  1. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Filial e @Des_Estrutura_Centro_Resultado.
  2. Preenche os parâmetros, tratando pIdfFilial como nullable.
  3. Executa a query SELCENTRORESULTADOPOREMPRESAESTRUTURAV2 (SQL textual) usando DataAccessLayer.ExecuteReader (com ou sem transação).
  4. Cria uma nova instância de CentroResultado.
  5. Chama SetInstance(dr, objCentroResultado) para preencher a instância.
  6. Se SetInstance retornar true, retorna true; caso contrário, define objCentroResultado como null e retorna false.
  • Stored Procedures chamadas: SELCENTRORESULTADOPOREMPRESAESTRUTURAV2 (SQL textual: uma UNION de duas selects, uma para CRs sem filial e outra para CRs com a filial especificada, ambas filtrando por empresa e descrição da estrutura).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Filial: int?, ID da filial (opcional).
  • @Des_Estrutura_Centro_Resultado: varchar(100), descrição da estrutura do Centro de Resultado.
  • Validações: Nenhuma explícita.

CarregarPorEstruturaV2(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, string pNomeCentroResultado, out CentroResultado objCentroResultado)

  • Lógica: Carrega um objeto CentroResultado pela estrutura, nome, empresa/filial (versão 2).
  1. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Filial, @Des_Estrutura_Centro_Resultado e @Des_Centro_Resultado.
  2. Preenche os parâmetros, tratando valores nulos.
  3. Constrói a query sQuery (SQL textual) que é uma UNION de duas selects, similar à SELCENTRORESULTADOPOREMPRESAESTRUTURAV2, mas adicionando o filtro por Des_Centro_Resultado.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  5. Cria uma nova instância de CentroResultado.
  6. Chama SetInstance(dr, objCentroResultado) para preencher a instância.
  7. Se SetInstance retornar true, retorna true; caso contrário, define objCentroResultado como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Filial: int?, ID da filial (opcional).
  • @Des_Estrutura_Centro_Resultado: varchar(100), descrição da estrutura do Centro de Resultado.
  • @Des_Centro_Resultado: varchar(100)?, nome do Centro de Resultado (opcional).
  • Validações: Nenhuma explícita.

CarregarPorEstruturaV2(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, string pNomeCentroResultado)

  • Lógica: Carrega e retorna um objeto CentroResultado pela estrutura, nome, empresa/filial (versão 2).
  1. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Filial, @Des_Estrutura_Centro_Resultado e @Des_Centro_Resultado.
  2. Preenche os parâmetros, tratando valores nulos.
  3. Constrói a query sQuery (SQL textual) que é uma UNION de duas selects, similar à SELCENTRORESULTADOPOREMPRESAESTRUTURAV2, mas adicionando o filtro por Des_Centro_Resultado.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  5. Cria uma nova instância de CentroResultado.
  6. Chama SetInstance(dr, objCentroResultado) para preencher a instância.
  7. Se SetInstance retornar true, retorna a instância; caso contrário, define objCentroResultado como null e retorna null.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Filial: int?, ID da filial (opcional).
  • @Des_Estrutura_Centro_Resultado: varchar(100), descrição da estrutura do Centro de Resultado.
  • @Des_Centro_Resultado: varchar(100)?, nome do Centro de Resultado (opcional).
  • Validações: Nenhuma explícita.

CarregarPorEmpresa(int pIdEmpresa)

  • Lógica: Carrega uma lista de todos os Centros de Resultado para uma empresa específica.
  1. Define uma query SQL textual para selecionar todos os campos de TAB_Centro_Resultado filtrando por Idf_Empresa.
  2. Cria uma lista vazia de CentroResultado.
  3. Cria uma lista de SqlParameter e adiciona @Idf_Empresa.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  5. Itera sobre o IDataReader:
  • Para cada linha, cria uma nova instância de CentroResultado.
  • Preenche as propriedades da instância manualmente a partir do IDataReader, tratando DBNull.Value para campos opcionais e instanciando objetos relacionados (Empresa, Filial, CentroResultado superior, Usuario).
  • Adiciona a instância à lista.
  1. Retorna a lista de Centros de Resultado.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

ListarParaImportacao(int? top, params object[] filtros)

  • Lógica: Lista Centros de Resultado para fins de importação dinâmica.
  1. Obtém o idEmpresa da sessão HTTP.
  2. Constrói uma query SQL textual complexa com uma CTE recursiva (arvore_cr) para obter a hierarquia de CRs.
  3. A query seleciona diversos campos do CR, incluindo a descrição formatada (Descricao), estrutura, nome, código reduzido, etc.
  4. Opcionalmente, aplica um TOP na seleção se o parâmetro top for fornecido.
  5. Cria uma lista de SqlParameter para @top e @Idf_Empresa.
  6. Executa a query usando DataAccessLayer.ExecuteReaderDs e retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente com CTEs.
  • Parâmetros SQL:
  • @top: int?, número máximo de registros a retornar (opcional).
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Projetado especificamente para importação, não para uso geral.

ListarAutocomplete(int count, string prefixText, bool ConsiderarCentroResultadoInativo, int? TipoCentroResultado, int? IdGrupoEconomico, int? IdEmpresa, int? IdFilial, int? IdCentroResultadoSuperior, int? IdCentroResultadoAtual, int? IdUsuario)

  • Lógica: Retorna um IDataReader para preencher um controle de autocomplete de Centros de Resultado, com diversos filtros.
  1. Constrói uma query SQL textual complexa com uma CTE recursiva (arvore_cr) para obter a hierarquia de CRs.
  2. A query seleciona o TOP (@count) de CRs, incluindo ID, descrição da estrutura, nome, código reduzido, CR superior, estrutura completa e vigência, além do apelido da filial.
  3. Aplica vários filtros na cláusula WHERE:
  • Flg_Inativo: considera CRs inativos se ConsiderarCentroResultadoInativo for true.
  • TipoCr: filtra por CRs que permitem lançamento (analíticos) ou não (sintéticos).
  • IdGrupoEconomico, IdEmpresa, IdFilial: filtros de hierarquia.
  • IdCentroResultadoSuperior, IdCentroResultadoAtual: filtros para excluir o próprio CR ou limitar a busca a filhos de um superior.
  • Pesquisa: busca por Estrutura, Des_Centro_Resultado ou Des_Codigo_Reduzido.
  • Idf_Usuario: filtra por CRs que o usuário tem acesso (TAB_SF_Usuario_Acesso).
  1. Ordena os resultados por Estrutura.
  2. Cria uma lista de SqlParameter e preenche-a com todos os argumentos do método.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente com CTEs.
  • Parâmetros SQL:
  • @count: int, número máximo de resultados.
  • @Pesquisa: varchar(500), texto para pesquisa.
  • @Flg_Inativo: bit, flag para considerar inativos.
  • @TipoCr: int, tipo de CR (0=todos, 1=permite lançamento, 2=não permite lançamento).
  • @Idf_Grupo_Economico: int?, ID do grupo econômico.
  • @Idf_Empresa: int?, ID da empresa.
  • @Idf_Filial: int?, ID da filial.
  • @Idf_Cr_Superior: int?, ID do CR superior.
  • @Idf_Cr_Atual: int?, ID do CR atual.
  • @Idf_Usuario: int?, ID do usuário.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Lógica complexa de filtragem para autocomplete, incluindo hierarquia, status, tipo e permissões de usuário.

ListarAutocompleteLista(int count, string prefixText, bool ConsiderarCentroResultadoInativo, int? TipoCentroResultado, int? IdGrupoEconomico, int? IdEmpresa, int? IdFilial, int? IdCentroResultadoSuperior, int? IdCentroResultadoAtual, int? IdUsuario)

  • Lógica: Similar a ListarAutocomplete, mas constrói a query de forma diferente, concatenando filtros em uma string sFiltros.
  1. Constrói uma string sFiltros adicionando condições AND baseadas nos parâmetros de entrada.
  2. Constrói a query SQL principal que seleciona o TOP (@count) de CRs, juntando com TAB_Empresa e TAB_Filial.
  3. Aplica os filtros da string sFiltros e a pesquisa textual.
  4. Ordena os resultados por Des_Estrutura_Centro_Resultado, Des_Centro_Resultado e Des_Codigo_Reduzido.
  5. Cria uma lista de SqlParameter e preenche-a com todos os argumentos do método.
  6. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL: (Mesmos de ListarAutocomplete)
  • Validações: Nenhuma explícita.
  • Regras de negócio: Lógica de filtragem para autocomplete.

ListarPaginadoComponenteConfLista(int pagina, int tamPagina, string ordem, string direcaoOrdem, out int numRegistros, string prefixText, bool ConsiderarCentroResultadoInativo, int? TipoCentroResultado, int? IdGrupoEconomico, int? IdEmpresa, int? IdFilial, int? IdCentroResultadoSuperior, int? IdCentroResultadoAtual, int? IdUsuario, List<int?> lsIdCentroResultado = null)

  • Lógica: Lista Centros de Resultado paginados para um componente de configuração de lista, com diversos filtros.
  1. Constrói uma string sFiltros adicionando condições AND baseadas nos parâmetros de entrada, incluindo um filtro para uma lista de IDs de CRs (lsIdCentroResultado).
  2. Cria uma lista de SqlParameter e preenche-a com todos os argumentos do método, incluindo parâmetros de paginação (@PageNumber, @RowspPage).
  3. Constrói a query SQL principal (sQuery) que seleciona os CRs, juntando com TAB_Empresa e TAB_Filial, e aplicando os filtros.
  4. Constrói uma query sCount para contar o total de registros e executa-a usando DataAccessLayer.ExecuteScalar para preencher numRegistros.
  5. Constrói a query de paginação (paginacao) adicionando ORDER BY, OFFSET e FETCH NEXT à sQuery.
  6. Executa a query de paginação usando DataAccessLayer.ExecuteReaderDs e retorna a primeira tabela do DataSet.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL: (Mesmos de ListarAutocomplete, mais @PageNumber, @RowspPage e a lista de IDs de CRs).
  • Validações: Nenhuma explícita.
  • Regras de negócio: Lógica de filtragem e paginação para componentes de lista.

CarregarComponentePorCodigo(int idCr)

  • Lógica: Carrega um IDataReader para um componente de Centro de Resultado pelo seu ID.
  1. Constrói uma query SQL textual com uma CTE recursiva (arvore_cr) para obter a hierarquia de CRs.
  2. A query seleciona ID, descrição da estrutura, nome, código reduzido, CR superior e apelido da filial, filtrando pelo idCr fornecido.
  3. Cria uma lista de SqlParameter e adiciona @Idf_Centro_Resultado.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente com CTEs.
  • Parâmetros SQL:
  • @Idf_Centro_Resultado: int, ID do Centro de Resultado.
  • Validações: Nenhuma explícita.

CentroCustoBuscaComponentePaginado(int inicio, int fim, string SortExpression, string SortDirection, out int iTotalRegistro, string BuscaTexto)

  • Lógica: Busca Centros de Custo paginados para um componente, filtrando por código reduzido.
  1. Constrói uma query TemplateBusca que seleciona Des_Codigo_Reduzido de TAB_Centro_Resultado, filtra por inativos e texto de busca, e agrupa por Des_Codigo_Reduzido. Adiciona ROW_NUMBER() para paginação.
  2. Constrói SPSELECTCOUNT e SPSELECTPAG com base em TemplateBusca.
  3. Cria uma lista de SqlParameter e adiciona @BuscaTexto.
  4. Executa SPSELECTCOUNT para obter iTotalRegistro.
  5. Executa SPSELECTPAG e retorna o DataTable.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL:
  • @BuscaTexto: varchar(500), texto para busca no código reduzido.
  • Validações: Nenhuma explícita.

CentroCustoListarAutocomplete(string prefixText, int count)

  • Lógica: Lista Centros de Custo para autocomplete, filtrando por código reduzido.
  1. Constrói uma query SQL textual que seleciona o TOP (@top) de Des_Codigo_Reduzido de TAB_Centro_Resultado, filtra por inativos e texto de busca, e agrupa/ordena por Des_Codigo_Reduzido.
  2. Cria uma lista de SqlParameter e adiciona @BuscaTexto e @top.
  3. Executa a query usando DataAccessLayer.ExecuteReaderDs e retorna o DataTable.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @BuscaTexto: varchar(500), texto para busca no código reduzido.
  • @top: int, número máximo de resultados.
  • Validações: Nenhuma explícita.

ListarCentroResultadoAtivo(SqlTransaction pTrans, int pIdEmpresa, int? pIdFilial, string pEstruturaCentroResultado, bool flgPermiteLancamento, int? idUsuario = null)

  • Lógica: Retorna uma lista de Centros de Resultado ativos com base na empresa, filial (opcional), descrição da estrutura (trimada), flag de permite lançamento e usuário (opcional).
  1. Se pEstruturaCentroResultado for nulo ou vazio, retorna uma lista vazia.
  2. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Filial, @Des_Estrutura_Centro_Resultado, @Flg_Permite_Lancamento e @Idf_Usuario.
  3. Preenche os parâmetros, tratando valores nulos e trimando pEstruturaCentroResultado.
  4. Executa a query SplistarCENTRORESULTADOSATIVOS (SQL textual) usando DataAccessLayer.ExecuteReader com a transação fornecida.
  5. Itera sobre o IDataReader e adiciona novas instâncias de CentroResultado (apenas com o ID) à lista.
  6. Retorna a lista de Centros de Resultado.
  • Stored Procedures chamadas: SplistarCENTRORESULTADOSATIVOS (SQL textual: SELECT cr.Idf_Centro_Resultado FROM TAB_Centro_Resultado cr WHERE cr.Idf_Empresa = @Idf_Empresa AND (@Idf_Filial IS NULL OR cr.Idf_Filial = @Idf_Filial) AND cr.Des_Estrutura_Centro_Resultado LIKE LTRIM(RTRIM(@Des_Estrutura_Centro_Resultado)) AND cr.Flg_Permite_Lancamento = @Flg_Permite_Lancamento AND cr.Flg_Inativo = 0 AND GETDATE() BETWEEN cr.Dta_Inicio_Vigencia AND ISNULL(cr.Dta_Fim_Vigencia, GETDATE()) AND (@Idf_Usuario IS NULL OR cr.Idf_Centro_Resultado IN (SELECT UA.Idf_Centro_Resultado FROM TAB_SF_Usuario_Acesso(@Idf_Usuario, @Idf_Empresa) UA))).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Filial: int?, ID da filial (opcional).
  • @Des_Estrutura_Centro_Resultado: varchar(100), descrição da estrutura do Centro de Resultado (trimada).
  • @Flg_Permite_Lancamento: bit, flag que indica se o CR permite lançamento.
  • @Idf_Usuario: int?, ID do usuário (opcional, para filtro de acesso).
  • Validações: Verifica se pEstruturaCentroResultado é nulo ou vazio.
  • Regras de negócio: Filtra por CRs ativos, dentro da vigência e com permissão de lançamento.

ValidarDadosArquivoImportacao(LoteImportacao objLote, SqlTransaction trans)

  • Lógica: Orquestra a validação dos dados de um arquivo de importação de Centros de Resultado.
  1. Lista as colunas do processo de arquivo (BLL.ProcessoArquivoColuna.Listar).
  2. Retorna as listas dinâmicas associadas às colunas (BLL.ProcessoArquivoColuna.RetornaListas).
  3. Itera sobre cada linha dos valores do lote de importação (objLote.DescricaoDadosArquivo.Valores):
  • Chama ValidarDadosArquivoImportacaoErrosNosDados para validar erros nos dados da linha.
  • Se houver críticas, adiciona-as a objLote.DescricaoCriticasValidacaoDados.
  1. Chama ValidarDadosArquivoImportacaoErrosNegocio para validar erros de negócio.
  2. Define objLote.DataValidacao como DateTime.Now.
  3. Salva o lote de importação (objLote.Save(trans)).
  • Stored Procedures chamadas: Nenhuma diretamente. Chama métodos de ProcessoArquivoColuna e LoteImportacao.
  • Validações: Delega a validação para ValidarDadosArquivoImportacaoErrosNosDados e ValidarDadosArquivoImportacaoErrosNegocio.
  • Regras de negócio: Fluxo de validação de importação.

ValidarDadosArquivoImportacaoErrosNosDados(BLL.LoteImportacao objLote, SqlTransaction trans, LoteImportacao.DadosArquivo.LinhaValores linha, List lsColunas, Dictionary<int, Dictionary<int, string>> dicListasDinamicas)

  • Lógica: Valida erros nos dados de uma linha específica do arquivo de importação de Centros de Resultado.
  1. Cria um objeto CriticaLinha.
  2. Chama LoteImportacao.ValidarObrigatorios para verificar campos obrigatórios. Se houver erros, retorna a crítica.
  3. Tenta:
  • Chama LoteImportacao.ValidarTipos para validar os tipos de dados.
  • Recupera os valores dos campos da planilha (Nome CR, Nível Superior, Estrutura, Código Reduzido, Vigência Início/Fim, Responsável, Permite Lançamento, Filial).
  • Validação FILIAL: Se pFilial não for vazio, tenta carregar a filial por apelido (Filial.CarregarPorApelido). Se não encontrar, adiciona erro.
  • Validação VIGÊNCIA FIM: Se pDtaFimVigencia tiver valor e for menor que pDtaInicioVigencia, adiciona erro.
  • Validação RESPONSÁVEL: Se pResponsavel não for vazio, tenta converter para CPF e recuperar a PessoaFisica (PessoaFisica.RecuperarPorCPF). Se não encontrar ou o formato for inválido, adiciona erro.
  • Validação PERMITE LANÇAMENTO / FILIAL: Se pFlgPermiteLancamento for “1” (permite lançamento) e objFilial for nulo, adiciona erro (exige filial para CRs que permitem lançamento).
  1. Em caso de exceção, adiciona um erro genérico “Erro não tratado ao validar a linha.”.
  2. Se houver erros na crítica, retorna a crítica; caso contrário, retorna null.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama métodos de Filial e PessoaFisica.
  • Validações:
  • Campos obrigatórios (delegado a LoteImportacao.ValidarObrigatorios).
  • Tipos de dados (delegado a LoteImportacao.ValidarTipos).
  • Existência da Filial.
  • Vigência Fim não pode ser menor que Vigência Início.
  • Formato e existência do Responsável (CPF).
  • Exigência de Filial para CRs que permitem lançamento.
  • Exceções: Captura exceções genéricas e adiciona uma crítica.

ValidarDadosArquivoImportacaoErrosNegocio(BLL.LoteImportacao objLote, SqlTransaction trans, List lsColunas, Dictionary<int, Dictionary<int, string>> dicListasDinamicas)

  • Lógica: Valida erros de negócio em cada linha do arquivo de importação de Centros de Resultado.
  1. Itera sobre cada linha dos valores do lote de importação.
  2. Cria um objeto CriticaLinha.
  3. Recupera os valores dos campos da planilha (Nível Superior, Nome CR, Filial, Estrutura, Permite Lançamento).
  4. Tenta carregar a Filial por apelido.
  5. Se a linha não tiver críticas de dados (já validadas anteriormente):
  • Validação NÍVEL SUPERIOR: Se pNivelSuperior não for vazio e o CR permitir lançamento (ou não exigir filial):
  • Tenta carregar o CentroResultadoSuperior por estrutura e filial (CentroResultado.CarregarPorEstruturaV2).
  • Se o superior não for encontrado (ou tiver ID 0) E não houver outro CR com a mesma estrutura na planilha, adiciona erro.
  • Chama ValidaCentroResultadoDeMesmaEstrutura para verificar duplicidade de estrutura.
  1. Se a linha JÁ TIVER críticas de dados:
  • Repete a lógica de validação de Nível Superior e ValidaCentroResultadoDeMesmaEstrutura (parece ser um fallback ou revalidação).
  1. Validação Estrutura Duplicada na Planilha: Verifica se a combinação de ESTRUTURA e FILIAL está duplicada na própria planilha de importação.
  2. Se houver erros na criticaLinha, adiciona-a a objLote.DescricaoCriticasValidacaoDados.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama Filial.CarregarPorApelido e CentroResultado.CarregarPorEstruturaV2.
  • Validações:
  • Existência e pertinência do Nível Superior (considerando a filial).
  • Duplicidade de estrutura de Centro de Resultado já existente no banco de dados.
  • Duplicidade de estrutura na própria planilha de importação.

ValidaCentroResultadoDeMesmaEstrutura(int idEmpresa, string estrutura, Filial objFilial, CentroResultado objCentroResultadoSuperior, CriticaLinha criticaLinha)

  • Lógica: Verifica se já existe um Centro de Resultado registrado com a mesma estrutura.
  1. Inicializa objCRRegistrado como null.
  2. Constrói a estruturaValidacao: se houver um objCentroResultadoSuperior, concatena sua estrutura com a estrutura fornecida; caso contrário, usa apenas a estrutura fornecida.
  3. Se estruturaValidacao não for nula ou vazia, tenta carregar um CentroResultado por essa estrutura e filial (CentroResultado.CarregarPorEstruturaV2).
  4. Se objCRRegistrado for encontrado e tiver um IdCentroResultado maior que 0, adiciona um erro à criticaLinha indicando que a estrutura já existe.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama CentroResultado.CarregarPorEstruturaV2.
  • Validações: Verifica a unicidade da estrutura do Centro de Resultado no banco de dados.

LancarDadosArquivoImportacao(BLL.LoteImportacao objLote, SqlTransaction trans, List lsLinhasLancar, int idUsuarioLogado)

  • Lógica: Lança os dados validados de um arquivo de importação de Centros de Resultado no banco de dados. O processo ocorre em duas fases: primeiro, a criação dos CRs, e depois, a associação dos CRs superiores.
  1. Filtra as linhas do lote de importação que devem ser lançadas (lsLinhasLancar).
  2. Primeira Fase (Criação dos CRs):
  • Itera sobre as linhas filtradas:
  • Recupera os valores dos campos da planilha.
  • Cria uma nova instância de CentroResultado.
  • Preenche as propriedades do objCentroResultado com os dados da linha (Nome, Filial, Estrutura, Código Reduzido, Vigência, Permite Lançamento, Empresa).
  • Se pFilial não for vazio, tenta carregar a filial e associá-la.
  • Define CentroResultadoSuperior como null inicialmente.
  • Salva o objCentroResultado (objCentroResultado.Save(trans)).
  • Se pResponsavel não for vazio, tenta definir o responsável para o CR recém-criado (ResponsavelCentroResultado.DefinirResponsavelCR).
  • Marca a linha como importada no lote (objLote.ImportouLinha).
  1. Segunda Fase (Associação dos CRs Superiores):
  • Itera novamente sobre as linhas filtradas:
  • Recupera o idCentroResultado do CR que foi salvo na primeira fase.
  • Carrega o objCentroResultado pelo ID.
  • Se pFilial não for vazio, tenta carregar a filial.
  • Se pNivelSuperior não for vazio e o CentroResultadoSuperior puder ser carregado por estrutura e filial (CentroResultado.CarregarPorEstruturaV2):
  • Associa o objCentroResultadoSuperior ao objCentroResultado.
  • Atualiza a DescricaoEstruturaCentroResultado do filho.
  • Caso contrário, define CentroResultadoSuperior como null e usa a pEstrutura original.
  • Salva o objCentroResultado atualizado (objCentroResultado.Save(trans)).
  • Stored Procedures chamadas: Nenhuma diretamente. Chama Filial.CarregarPorApelido, CentroResultado.Save, ResponsavelCentroResultado.DefinirResponsavelCR, CentroResultado.LoadObject, CentroResultado.CarregarPorEstruturaV2.
  • Validações: Nenhuma explícita, assume que os dados já foram validados.
  • Regras de negócio:
  • Processo em duas etapas para lidar com dependências de hierarquia.
  • Criação de ResponsavelCentroResultado se o campo RESPONSÁVEL for preenchido.

ExcluirLoteImportacao(LoteImportacao objLote, SqlTransaction trans)

  • Lógica: Delega a exclusão de um lote de importação de Centros de Resultado para ExcluirLinhaLoteCentroResultado.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ExcluirLinhaLoteCentroResultado.
  • Validações: Nenhuma explícita.

ListarIdsCentroResultadoImportados(LoteImportacao objLote)

  • Lógica: Lista os IDs dos Centros de Resultado que foram importados e marcados para exclusão no lote.
  1. Itera sobre as linhas do lote que foram marcadas como excluídas (objLote.ListarValoresExcluidos()).
  2. Para cada linha, recupera o IdRegistro associado (que é o ID do Centro de Resultado).
  3. Tenta converter o IdRegistro para int e adiciona-o à lista.
  4. Retorna a lista de IDs.
  • Stored Procedures chamadas: Nenhuma diretamente.
  • Validações: Nenhuma explícita.

ExcluirLinhaLoteCentroResultado(LoteImportacao objLote, SqlTransaction trans)

  • Lógica: Exclui os Centros de Resultado associados a um lote de importação.
  1. Obtém a lista de IDs de CRs importados a serem excluídos (ListarIdsCentroResultadoImportados).
  2. Primeira Fase (Remover Vínculos Superiores):
  • Itera sobre os IDs de CRs a serem excluídos:
  • Carrega o objCRUpdate pelo ID.
  • Se o CR tiver um CentroResultadoSuperior que também está na lista de exclusão, define CentroResultadoSuperior como null e salva o objCRUpdate. Isso evita problemas de integridade referencial.
  1. Segunda Fase (Exclusão dos CRs):
  • Itera sobre os IDs de CRs a serem excluídos:
  • Carrega o objCR pelo ID.
  • Validação: Verifica se o CR possui filhos (CentroResultado.VerificarFilhos) ou empregados vinculados (objCR.PossuiEmpregados). Se sim, lança uma ImportacaoArquivoException.
  • Se não houver vínculos:
  • Carrega o responsável atual do CR (ResponsavelCentroResultado.CarregarResponsavelAtualCr).
  • Se houver responsável, exclui-o (ResponsavelCentroResultado.Delete).
  • Exclui o próprio CR (CentroResultado.Delete).
  • Stored Procedures chamadas: Nenhuma diretamente. Chama CentroResultado.LoadObject, CentroResultado.Save, CentroResultado.VerificarFilhos, ResponsavelCentroResultado.CarregarResponsavelAtualCr, ResponsavelCentroResultado.Delete, CentroResultado.Delete.
  • Validações:
  • Impede a exclusão de CRs que possuem filhos.
  • Impede a exclusão de CRs que possuem empregados vinculados.
  • Regras de negócio:
  • Exclusão em duas fases para gerenciar dependências.
  • Exclusão em cascata de responsáveis.
  • Exceções: Lança ImportacaoArquivoException se houver vínculos que impedem a exclusão.

BuscaCentroResultadoPorCodigoEstrutura(string pDesEstruturaCR, int pIdEmpresa, out CentroResultado ojbCentroResultado)

  • Lógica: Busca um Centro de Resultado por código de estrutura e ID da empresa.
  1. Define uma query SQL textual (SELECTCRPORDESESTRUTURA) que seleciona todos os campos de TAB_VW_Centro_Resultado (uma view) filtrando por empresa, descrição da estrutura e inatividade.
  2. Cria uma lista de SqlParameter para @Des_Codigo_Reduzido e @Idf_Empresa.
  3. Preenche os parâmetros.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  5. Cria uma nova instância de CentroResultado.
  6. Chama SetInstance(dr, ojbCentroResultado) para preencher a instância.
  7. Se SetInstance retornar true, retorna true; caso contrário, define ojbCentroResultado como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @Des_Codigo_Reduzido: varchar(50), descrição da estrutura do Centro de Resultado.
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

VerificarExistenciaPorEstruturaCentroResultado(int pIdEmpresa, int? pIdfFilial, string pEstruturaCentroResultado, SqlTransaction pTrans = null)

  • Lógica: Verifica a existência de um Centro de Resultado por estrutura, empresa e filial, considerando a vigência em relação ao período de cálculo.
  1. Define uma query SQL textual complexa que conta os registros de TAB_Centro_Resultado.
  2. A query utiliza CROSS APPLY para obter informações do período de cálculo da filial.
  3. Filtra por empresa, vigência (comparando Dta_Fim_Vigencia com PC.Dta_Fim), filial (opcional) e descrição da estrutura.
  4. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Filial e @Des_Estrutura_Centro_Resultado.
  5. Preenche os parâmetros.
  6. Executa a query usando DataAccessLayer.ExecuteScalar (com ou sem transação) e converte o resultado para int? usando ToIntOrDefault(), retornando 0 se for nulo.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Filial: int?, ID da filial (opcional).
  • @Des_Estrutura_Centro_Resultado: varchar(100), descrição da estrutura do Centro de Resultado.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Considera a vigência do CR em relação ao período de cálculo da filial.

ValidaCentroResultado(int idEmpresa, string descCentroResultado, out int? idCentroResultado)

  • Lógica: Valida um Centro de Resultado por sua descrição formatada e ID da empresa.
  1. Define uma query SQL textual que seleciona o Idf_Centro_Resultado de TAB_Centro_Resultado e TAB_Filial.
  2. Filtra por empresa, inatividade e uma descrição formatada do CR (concatenando estrutura, nome e apelido da filial) que corresponde ao descCentroResultado.
  3. Cria uma lista de SqlParameter para @Idf_Empresa e @Des_Centro_Resultado.
  4. Preenche os parâmetros.
  5. Executa a query usando DataAccessLayer.ExecuteScalar e converte o resultado para int?.
  6. Define idCentroResultado com o valor obtido.
  7. Retorna true se idCentroResultado tiver valor, false caso contrário.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Des_Centro_Resultado: varchar, descrição do Centro de Resultado a ser validado.
  • Validações: Verifica a existência de um CR ativo com a descrição fornecida.

Stored Procedures

NomeParâmetrosPropósito
SPINSERT@Idf_Centro_Resultado (OUTPUT), @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_GeradorInsere um novo registro na tabela TAB_Centro_Resultado.
SPUPDATE@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_ResultadoAtualiza um registro existente na tabela TAB_Centro_Resultado.
SPDELETE@Idf_Centro_Resultado, @Idf_Usuario_GeradorAtualiza o Idf_Usuario_Gerador e exclui um registro da tabela TAB_Centro_Resultado.
SPSELECTID@Idf_Centro_ResultadoSeleciona todos os campos de um registro da tabela TAB_Centro_Resultado pelo seu ID.
SplistarCRCADASTRADOS@Idf_EmpresaLista Centros de Resultado cadastrados para uma empresa, incluindo sua hierarquia e apelido da filial.
SPCODIGOREDUZIDOJAUSADO@Idf_Centro_Resultado, @Des_Codigo_Reduzido, @Idf_EmpresaVerifica se um código reduzido já está em uso por outro Centro de Resultado na mesma empresa.
SPVERIFICARULTIMONIVEL@Idf_Centro_ResultadoVerifica se um Centro de Resultado é o último nível na hierarquia (não possui filhos).
SPVERIFICAREXISTEMLANCAMENTOS@Idf_Centro_ResultadoVerifica se um Centro de Resultado possui lançamentos de empregados.
SPEXCLUIRCR@Idf_Centro_ResultadoExclui um registro da tabela TAB_Centro_Resultado.
SPQUANTIDADENIVEISEMPRESA@Idf_EmpresaRetorna a quantidade máxima de níveis de Centros de Resultado existentes para uma empresa.
SPRELATORIOCENTRORESULTADO@Idf_Empresa, @Flg_Inativo, @Idf_Cr_SuperiorLista Centros de Resultado para relatório, com filtros de empresa, situação e CR superior, incluindo dados de responsável e filial.
SPCARREGARPORCRSUPERIOR@Idf_Centro_Resultado_SuperiorCarrega todos os Centros de Resultado filhos diretamente conectados a um CR superior.
SPVERIFICAFILHOS@Idf_Centro_Resultado_SuperiorVerifica se um Centro de Resultado possui filhos.
SPRECUPERARCRFILHOS@Idf_Cr_Atual, @Idf_Cr_Superior, @Idf_Empresa, @Idf_UsuarioRetorna os Centros de Resultado filhos que o usuário tem permissão para acessar.
SPRECUPERARCRANALITICOS@Idf_Centro_Resultado_Sintetico, @Idf_Empresa, @Idf_UsuarioRetorna os IDs dos Centros de Resultado analíticos a partir de um CR sintético.
SPRECUPERARHISTORICO@Idf_EmpregadoRecupera o histórico de Centros de Resultado de um empregado.
SPCARREGACRPORDESCRICAOESTRUTURA@Des_Estrutura_Centro_Resultado, @Idf_EmpresaCarrega Centros de Resultado por descrição da estrutura e ID da empresa.
SPSELIDCENTRORESULTADOANALITICOATIVO@Idf_Empresa, @Idf_Centro_Resultado_Base, @Flg_InativoCarrega IDs de CRs analíticos ativos de uma empresa, opcionalmente a partir de um CR base, considerando o período de cálculo da filial.
SPSELIDCENTRORESULTADOANALITICOATIVORELATORIOFOLHAPAGAMENTO@Idf_Empresa, @Idf_Centro_Resultado_Base, @Flg_InativoCarrega IDs de CRs analíticos ativos para relatório de folha de pagamento, similar à SPSELIDCENTRORESULTADOANALITICOATIVO.
SPCONSULTACENTRORESULTADOPORLISTIDF@IdfCentroResultado, @PesquisaConsulta Centros de Resultado por uma lista de IDs e texto de pesquisa.
SELCENTRORESULTADOPOREMPRESAESTRUTURA@Idf_Empresa, @Idf_Filial, @Des_Estrutura_Centro_Resultado, @Idf_UsuarioSeleciona Centros de Resultado por empresa, filial, descrição da estrutura e acesso do usuário.
SELCENTRORESULTADOPOREMPRESAESTRUTURAV2@Idf_Empresa, @Idf_Filial, @Des_Estrutura_Centro_ResultadoSeleciona Centros de Resultado por empresa, filial e descrição da estrutura (versão 2, tratando filiais nulas/não nulas).
SplistarCENTRORESULTADOSATIVOS@Idf_Empresa, @Idf_Filial, @Des_Estrutura_Centro_Resultado, @Flg_Permite_Lancamento, @Idf_UsuarioLista IDs de Centros de Resultado ativos com filtros de empresa, filial, estrutura, permissão de lançamento e acesso do usuário.
SELECTCRPORDESESTRUTURA@Des_Codigo_Reduzido, @Idf_EmpresaBusca um Centro de Resultado por código de estrutura e empresa (utiliza TAB_VW_Centro_Resultado).
plataforma.TAB_SF_SplitNumerico@IdfCentroResultadoFunção de tabela para dividir uma string de números separados por vírgula em uma tabela.
TAB_SF_Usuario_Acesso@Idf_Usuario, @Idf_EmpresaFunção de tabela para obter os Centros de Resultado aos quais um usuário tem acesso em uma empresa.

Employer.Plataforma.BLL.Contrato

Arquivos:

  • C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P1.cs
  • C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P2.cs
  • C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Contrato_P3.cs

Métodos

MétodoAssinaturaPropósito
GetParametersprivate List<SqlParameter> GetParameters()Prepara uma lista de parâmetros SQL para operações de insert e update.
SetParametersprivate void SetParameters(List<SqlParameter> parms)Preenche uma lista de parâmetros SQL com os valores da instância atual de Contrato.
Insertprivate void Insert()Insere uma nova instância de Contrato no banco de dados.
Insertprivate void Insert(SqlTransaction trans)Insere uma nova instância de Contrato no banco de dados dentro de uma transação.
Updateprivate void Update()Atualiza uma instância existente de Contrato no banco de dados.
Updateprivate void Update(SqlTransaction trans)Atualiza uma instância existente de Contrato no banco de dados dentro de uma transação.
Savepublic void Save()Salva uma instância de Contrato (insere se for nova, atualiza se já existir).
Savepublic void Save(SqlTransaction trans)Salva uma instância de Contrato dentro de uma transação.
Deletepublic static void Delete(int idContrato)Exclui um Contrato pelo seu ID.
Deletepublic static void Delete(int idContrato, SqlTransaction trans)Exclui um Contrato pelo seu ID dentro de uma transação.
Deletepublic static void Delete(List<int> idContrato)Exclui uma lista de Contrato por seus IDs.
LoadDataReaderprivate static IDataReader LoadDataReader(int idContrato)Retorna um IDataReader com as colunas de um registro de Contrato pelo ID.
LoadDataReaderprivate static IDataReader LoadDataReader(int idContrato, SqlTransaction trans)Retorna um IDataReader com as colunas de um registro de Contrato pelo ID dentro de uma transação.
LoadDataReaderpublic static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Retorna um IDataReader com uma consulta paginada de Contrato.
LoadObjectpublic static Contrato LoadObject(int idContrato)Retorna uma instância de Contrato a partir do banco de dados pelo ID.
LoadObjectpublic static Contrato LoadObject(int idContrato, SqlTransaction trans)Retorna uma instância de Contrato a partir do banco de dados pelo ID dentro de uma transação.
CompleteObjectpublic bool CompleteObject()Completa a instância atual de Contrato com dados do banco de dados.
CompleteObjectpublic bool CompleteObject(SqlTransaction trans)Completa a instância atual de Contrato com dados do banco de dados dentro de uma transação.
RetornaCodigoContratopublic string RetornaCodigoContrato()Retorna o código formatado do contrato (ex: Tipo.Mae.Filho).
RetornaCodigoContratopublic string RetornaCodigoContrato(SqlTransaction trans)Retorna o código formatado do contrato dentro de uma transação.
SetInstanceprivate static bool SetInstance(IDataReader dr, Contrato objContrato)Método auxiliar utilizado pelos métodos LoadObject e CompleteObject para percorrer um IDataReader e vincular as colunas com os atributos da classe.
ListarAutoCompletepublic static string[] ListarAutoComplete(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, int? pIdFilial, int? pIdTipoContrato, int? pCodigoContratoFilho, int? pCodigoContratoMae, string pApelido, bool? pFlgContratoMae, int? pIdContratoMae, bool pFiltrarPorUsuarioLogado)Retorna um array de strings para autocomplete de contratos, com diversos filtros.
ListarAutoCompletepublic static string[] ListarAutoComplete(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, int? pIdFilial, string CodContrato, string pApelido, bool? pFlgContratoMae, int? pIdContratoMae, bool pFiltrarPorUsuarioLogado)Retorna um array de strings para autocomplete de contratos, com filtros por código de contrato e apelido.
ListarContratoAutoCompleteMaepublic static string[] ListarContratoAutoCompleteMae(int pNumeroRegistros, int pIdUsuario, int pIdEmpresa, string pApelido, int pCodigoContrato, int pTipoContrato)Retorna um array de strings para autocomplete de contratos mãe.
ListarContratoAutoCompleteFilhopublic static string[] ListarContratoAutoCompleteFilho(int pNumeroRegistros, int pIdUsuario, int pIdEmpresa, string pApelido, int pCodigoContratoMae, int pCodigoContratoFilho, int pTipoContrato)Retorna um array de strings para autocomplete de contratos filho.
ListarAutoCompleteDicionariopublic static Dictionary<int, String> ListarAutoCompleteDicionario(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, int? pIdFilial, int? pIdTipoContrato, int? pCodigoContratoFilho, int? pCodigoContratoMae, string pApelido, bool? pFlgContratoMae, int? pIdContratoMae, bool pFiltrarPorUsuarioLogado)Retorna um dicionário para autocomplete de contratos, com diversos filtros.
ListarAutoCompleteParaContaPagarpublic static Dictionary<int, String> ListarAutoCompleteParaContaPagar(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, string pApelido, bool bolPesquisarContratoMae)Retorna um dicionário para autocomplete de contratos para contas a pagar.
ListarAutoCompleteParaContaPagarpublic static Dictionary<int, String> ListarAutoCompleteParaContaPagar(int pNumeroRegistros, int pIdEmpresa, string pApelido)Retorna um dicionário para autocomplete de contratos para contas a pagar (versão simplificada).
ListarAtivosPermitidosprivate static IDataReader ListarAtivosPermitidos(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)Lista contratos ativos permitidos para o usuário, com filtros.
ListarAtivosPermitidosComponenteprivate static IDataReader ListarAtivosPermitidosComponente(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)Lista contratos mãe ativos permitidos para o usuário, com filtros para componente.
ListarContratosPermitidosprivate static IDataReader ListarContratosPermitidos(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)Lista contratos (mãe/filho) ativos permitidos para o usuário, com filtros.
ListarContratosPermitidosprivate static IDataReader ListarContratosPermitidos(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idContratoMae, int? codContratoFilho, string apelidoParcial)Lista contratos (mãe/filho) ativos permitidos para o usuário, com filtros.
ListarArrayAtivosParaAutoCompletepublic static string[] ListarArrayAtivosParaAutoComplete(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)Retorna um array de strings de contratos ativos para autocomplete.
ListarArrayMaesAtivosParaAutoCompletepublic static string[] ListarArrayMaesAtivosParaAutoComplete(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)Retorna um array de strings de contratos mãe ativos para autocomplete.
ListarContratoMaePorCodNomeParcialpublic static Dictionary<int, string> ListarContratoMaePorCodNomeParcial(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, string apelidoParcial)Retorna um dicionário de contratos mãe por código e nome parcial.
ListarArrayFilhosAtivosParaAutoComplete[Obsolete] public static string[] ListarArrayFilhosAtivosParaAutoComplete(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)(Obsoleto) Retorna um array de strings de contratos filho ativos para autocomplete.
ListarContratosFilhosAutoCompletepublic static string[] ListarContratosFilhosAutoComplete(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)Lista contratos filhos para autocomplete.
ListarContratoFilhoPorContratoMae_CodNomeParcialpublic static Dictionary<int, string> ListarContratoFilhoPorContratoMae_CodNomeParcial(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idContratoMae, int? codContratoFilho, string apelidoParcial)Retorna um dicionário de contratos filho por contrato mãe, código e nome parcial.
ListarMaePorTipoECodigoprivate static IDataReader ListarMaePorTipoECodigo(int idTipo, int codContrato)Lista contratos mãe por tipo e código.
ListarMaePorEmpresaTipoprivate static IDataReader ListarMaePorEmpresaTipo(int idEmpresa, int idTipo)Lista contratos mãe por empresa e tipo.
ListarMaePorEmpresaTipoprivate static IDataReader ListarMaePorEmpresaTipo(int idEmpresa, int idTipo, SqlTransaction trans)Lista contratos mãe por empresa e tipo dentro de uma transação.
ListarPorFilialNaoPrestadoraprivate static IDataReader ListarPorFilialNaoPrestadora(int idFilial)Lista contratos de filiais não prestadoras.
ListarPorFilialPrestadoraprivate static IDataReader ListarPorFilialPrestadora(int idFilial)Lista contratos de filiais prestadoras.
ListarContratoFilhopublic static DataTable ListarContratoFilho(int? idContrato, string Pesquisa, String colunaOrdenada, String tipoOrdenacao, int tamanhoPagina, int paginaCorrente, out int total)Lista contratos filho de forma paginada.
SeperaTipoValorAutoCompleteprivate static void SeperaTipoValorAutoComplete(ref string Valor, ref string Tipo, ref string Codigo, bool CodigoComponto)Método auxiliar para separar tipo, código e valor de uma string de autocomplete.
ListarAutoCompleteSemRestricao[Obsolete] public static Dictionary<int, string> ListarAutoCompleteSemRestricao(string Valor, int Idf_Empresa, int count, int Idf_Usuario)(Obsoleto) Lista contratos para autocomplete sem restrição de acesso.
ListarAutoCompleteSemRestricaoPaginacaopublic static Dictionary<int, string> ListarAutoCompleteSemRestricaoPaginacao(string Valor, int Idf_Empresa, int Idf_Usuario, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Lista contratos para autocomplete sem restrição de acesso, com paginação.
ListarAutoCompletePorClientepublic static Dictionary<int, string> ListarAutoCompletePorCliente(int idCliente, string Valor, int Idf_Empresa, int count)Lista contratos para autocomplete por cliente.
ListarPorClienteModalpublic static IDataReader ListarPorClienteModal(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, int idCliente, out int totalRegistros, int Idf_Empresa)Lista contratos para modal de cliente, com paginação.
ListarContratoUsuarioEmpresaPorCodNomeParcialpublic static IDataReader ListarContratoUsuarioEmpresaPorCodNomeParcial(int idUsuario, int idEmpresa, string valor, int numeroRegistros, int? tipoContrato)Lista contratos por usuário, empresa, código/nome parcial.
ListarContratoUsuarioEmpresaFilialPorCodNomeParcialpublic static IDataReader ListarContratoUsuarioEmpresaFilialPorCodNomeParcial(int idUsuario, int idEmpresa, int idFilial, string valor, int numeroRegistros)Lista contratos por usuário, empresa, filial, código/nome parcial.
ListarPorCodigoprivate static IDataReader ListarPorCodigo(int idUsuario, int idEmpresa, int idTipoContrato, int codigoContratoMae, int codigoContrato)Lista contratos por código e tipo, considerando permissões.
ListarPorIDprivate static IDataReader ListarPorID(int idEmpresa, int idTipoContrato, int idContratoMae, int idContrato)Lista contratos por ID e tipo.
ListarPorIdTipoECodMaepublic static IDataReader ListarPorIdTipoECodMae(int idTipo, int codMae)Lista contratos por tipo e código do contrato mãe.
ListarPorApelidoParcialpublic static IDataReader ListarPorApelidoParcial(string apelidoContrato)Lista contratos por apelido parcial.
ListarPorIdTipoCodMaeCodFilhopublic static IDataReader ListarPorIdTipoCodMaeCodFilho(int idTipoContrato, int codContratoMae, int codContratoFilho)Lista contratos por tipo, código mãe e código filho.
ListarPorIdTipoCodMaeCodFilhoEmpresapublic static IDataReader ListarPorIdTipoCodMaeCodFilhoEmpresa(int idTipoContrato, int codContratoMae, int codContratoFilho, int idEmpresa)Lista contratos por tipo, código mãe, código filho e empresa.
ListarPorCodNomeParcialpublic static IDataReader ListarPorCodNomeParcial(string nomeColuna, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros, string codNomeContrato, int idEmpresa)Lista contratos paginados por código/nome parcial e empresa.
ListarPaginacaopublic static DataTable ListarPaginacao(int? idTipoContrato, bool buscarContratoFilho, bool buscarContratoMae, string text, string nomeColuna, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, int idEmpresaLogada, out int totalRegistros)Lista contratos paginados com filtros de tipo, busca por filho/mãe e texto.
ListarPaginacaopublic static IDataReader ListarPaginacao(string colunaOrdenacao, string direcaoOrdenacao, string expressao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Lista contratos paginados com expressão SQL customizada.
ListarCodNomeParcial2public static IDataReader ListarCodNomeParcial2(int idTipoContrato, int codContrato, int codContratoFilho, string apelido)Lista contratos por tipo, código, código filho e apelido.
ListarCodNomeParcialpublic static IDataReader ListarCodNomeParcial(int? idTipoContrato, int? codContrato, int idEmpresa, string apelido)Lista contratos por tipo, código, empresa e apelido.
ListarCodNomeParcialpublic static IDataReader ListarCodNomeParcial(int? idTipoContrato, int? codContrato, int idEmpresa, string apelido, int numeroRegistros)Lista contratos por tipo, código, empresa, apelido e número de registros.
ListarFilhosPorIdTipoCodMaeCodFilhopublic static IDataReader ListarPorIdTipoCodMaeCodFilho(int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoContrato)Lista contratos filhos por tipo, código mãe, código filho e apelido.
ListarAFaturarPorContratospublic static IDataReader ListarAFaturarPorContratos(string colunaOrdenacao, string direcaoOrdenacao, int? idTipoContrato, decimal? DocCliente, int? idContrato, int? idEmpresa)Lista contratos a serem faturados por tipo, documento do cliente e contrato.
ListarAFaturarPorCentroCustopublic static IDataReader ListarAFaturarPorCentroCusto(string colunaOrdenacao, string direcaoOrdenacao, int? idContrato)Lista contratos a serem faturados por centro de custo.
Listarpublic static IDataReader Listar()Retorna todos os registros de contrato.
ListarIdContratoFilhoPorContratoMaepublic List<int> ListarIdContratoFilhoPorContratoMae(int pIdEmrpesa, int pIdContratoMae, int pIdUsuario)Lista os IDs dos contratos filhos de um contrato mãe, considerando permissões do usuário.
RecuperaPorEmpresapublic static int RecuperaPorEmpresa(int Idf_Empresa)Recupera o ID do contrato de uma empresa.
CarregarAutoCompletepublic static bool CarregarAutoComplete(int pIdEmpresa, int pIdUsuario, int pIdTipoContrato, int? pCodigoContratoMae, int pCodigoContratoFilho, string pApelido, bool pFiltrarPorUsuarioLogado, out Contrato pObjContrato)Carrega um objeto contrato a partir dos parâmetros de autocomplete.
CarregarAutoCompletepublic static bool CarregarAutoComplete(int pIdEmpresa, int pIdUsuario, int pIdTipoContrato, int? pCodigoContratoMae, int pCodigoContratoFilho, bool pFiltrarPorUsuarioLogado, out Contrato pObjContrato)Carrega um objeto contrato a partir dos parâmetros de autocomplete (versão sem apelido).
CarregarMaePorTipoECodigopublic static bool CarregarMaePorTipoECodigo(int idTipo, int codContrato, out Contrato objContrato)Carrega um contrato mãe por tipo e código.
CarregarPorIdTipoCodMaeCodFilho[Obsolete] public static bool CarregarPorIdTipoCodMaeCodFilho(int idTipoContrato, int codContratoMae, int codContratoFilho, out Contrato objContratoFilho)(Obsoleto) Carrega um contrato filho por tipo, código mãe e código filho.
CarregarPorIdTipoCodMaeCodFilhopublic static bool CarregarPorIdTipoCodMaeCodFilho(int idTipoContrato, int codContratoMae, int codContratoFilho, int idEmpresa, out Contrato objContratoFilho)Carrega um contrato filho por tipo, código mãe, código filho e empresa.
CarregarMaePorEmpresaTipopublic static bool CarregarMaePorEmpresaTipo(int idEmpresa, int idTipo, out Contrato objContrato)Preenche um contrato mãe por empresa e tipo.
CarregarMaePorEmpresaTipopublic static bool CarregarMaePorEmpresaTipo(int idEmpresa, int idTipo, out Contrato objContrato, SqlTransaction trans)Preenche um contrato mãe por empresa e tipo dentro de uma transação.
CarregarPorFilialNaoPrestadorapublic static bool CarregarPorFilialNaoPrestadora(int idFilial, out Contrato objContrato)Carrega um contrato de filial não prestadora.
CarregarContratoFilialNaoPrestadorapublic static bool CarregarContratoFilialNaoPrestadora(int idFilial, out Contrato objContrato)Carrega um contrato de filial não prestadora.
CarregarPorFilialPrestadorapublic static bool CarregarPorFilialPrestadora(int idFilial, out Contrato objContrato)Carrega um contrato de filial prestadora.
CarregarPorCodigopublic static bool CarregarPorCodigo(int pIdUsuario, int pIdEmpresa, string pCodigoContrato, out Contrato objContrato)Carrega um contrato por código e empresa, considerando permissões do usuário.
CarregarPorCodigopublic static bool CarregarPorCodigo(SqlTransaction pTrans, int pIdUsuario, int pIdEmpresa, string pCodigoContrato, out Contrato objContrato)Carrega um contrato por código e empresa, considerando permissões do usuário, dentro de uma transação.
CarregarPorCodigopublic static bool CarregarPorCodigo(int idUsuario, int idEmpresa, int idTipoContrato, int codigoContratoMae, int codigoContrato, out Contrato objContrato)Carrega um contrato por código, tipo, código mãe e empresa, considerando permissões.
CarregarPorCodigo[Obsolete] public static bool CarregarPorCodigo(int idEmpresa, int idTipoContrato, int codigoContratoMae, int codigoContrato, out Contrato objContrato)(Obsoleto) Carrega um contrato por código, tipo, código mãe e empresa (sem usuário).
CarregarPorIDpublic static bool CarregarPorID(int idEmpresa, int idTipoContrato, int idContratoMae, int idContrato, out Contrato objContrato)Carrega um contrato por ID, tipo, ID mãe e empresa.
CarregarPorUsuarioEmpresapublic static bool CarregarPorUsuarioEmpresa(int idEmpresa, int idUsuarioLogado, int idTipoContrato, int codigoContratoMae, int codigoContrato, string apelido, out Contrato objContrato)Carrega um contrato por usuário, empresa, tipo, códigos e apelido.
CarregarPorUsuarioEmpresaFilialpublic static bool CarregarPorUsuarioEmpresaFilial(int idEmpresa, int idFilial, int idUsuarioLogado, int idTipoContrato, int codigoContratoMae, int codigoContrato, string apelido, out Contrato objContrato)Carrega um contrato por usuário, empresa, filial, tipo, códigos e apelido.
ListarPorUsuarioEmpresaprivate static IDataReader ListarPorUsuarioEmpresa(int idFilial, int idEmpresa, int idUsuario, int idTipoContrato, int codigoContratoMae, int codigoContrato, string apelido)Lista contratos por filial, empresa, usuário, tipo, códigos e apelido.
ListarPorUsuarioEmpresaprivate static IDataReader ListarPorUsuarioEmpresa(int idEmpresa, int idUsuario, int idTipoContrato, int codigoContratoMae, int? codigoContrato, string apelido)Lista contratos por empresa, usuário, tipo, códigos e apelido.
ListarPorUsuarioEmpresapublic static List<int> ListarPorUsuarioEmpresa(int idUsuario, int idEmpresa)Lista os IDs dos contratos aos quais um usuário tem acesso em uma empresa.
CarregarPorApelidopublic static bool CarregarPorApelido(string apelido, out Contrato objContrato)Carrega um contrato por apelido.
CarregarPorApelido[Obsolete] public static bool CarregarPorApelido(string apelido, int idFilial, out Contrato objContrato)(Obsoleto) Carrega um contrato por apelido e filial (ignora tipo de contrato).
CarregarPorApelidopublic static bool CarregarPorApelido(int idfTipoContrato, string apelido, int idFilial, out Contrato objContrato)Carrega um contrato por tipo, apelido e filial.
CarregarPorEmpresa_CodigoContratopublic static bool CarregarPorEmpresa_CodigoContrato(int idEmpresa, int idTipoContrato, int codContrato, int? codContratoMae, out Contrato objContrato)Carrega um contrato por empresa, tipo, código e código mãe.
CarregarPorTipoContratoCodigopublic static Contrato CarregarPorTipoContratoCodigo(int idEmpresa, int idTipoContrato, int codContrato)Carrega um contrato por empresa, tipo e código.
CarregarPorTipoContratoCodigo[Obsolete] public static Contrato CarregarPorTipoContratoCodigo(int idTipoContrato, int codContrato)(Obsoleto) Carrega um contrato por tipo e código (sem empresa).
CarregarContratosFilhopublic static DataTable CarregarContratosFilho(int pIdContratoMae, Enumeradores.TipoCliente pTipoCliente, string pColunaOrdenacao, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int totalRegistros)Carrega contratos filho de forma paginada, filtrando por tipo de cliente.
CarregarContratosFilhopublic static DataTable CarregarContratosFilho(int idContratoMae)Carrega todos os contratos filho de um contrato mãe.
CarregarContratosFilhopublic static DataTable CarregarContratosFilho(int idContratoMae, SqlTransaction trans)Carrega todos os contratos filho de um contrato mãe dentro de uma transação.
CarregarContratosFilhoListpublic static List<int> CarregarContratosFilhoList(int idEmpresa, int idUsuario, int idContratoMae, SqlTransaction trans)Carrega uma lista de IDs de contratos filho de um contrato mãe, considerando permissões.
CarregarContratosFilhoListpublic static List<int> CarregarContratosFilhoList(int idContratoMae)Carrega uma lista de IDs de contratos filho de um contrato mãe.
CarregarContratosFilhoListpublic static List<int> CarregarContratosFilhoList(int idContratoMae, SqlTransaction trans)Carrega uma lista de IDs de contratos filho de um contrato mãe dentro de uma transação.
CarregarContratosFilhopublic static DataTable CarregarContratosFilho(int idContratoMae, string orderby)Carrega contratos filho de um contrato mãe com ordenação.
RecuperarIdFilialGestoraPorIdContratopublic static Int32? RecuperarIdFilialGestoraPorIdContrato(Int32 IdContrato)Recupera o ID da filial gestora de um contrato.
CarregarPorFilialpublic static List<int> CarregarPorFilial(int IdFilial)Carrega uma lista de IDs de contratos de uma filial.
CarregarContratosFilhoPorFilialpublic static List<int> CarregarContratosFilhoPorFilial(int IdFilial)Carrega uma lista de IDs de contratos filho de uma filial.
CarregarContratoFilhoPorEmpresapublic static bool CarregarContratoFilhoPorEmpresa(Empresa objEmpresa, TipoContrato objTipoContrato, out Contrato objContrato, Empresa objEmpresaPrestadora, SqlTransaction trans)Carrega um contrato filho por empresa, tipo de contrato e empresa prestadora.
RecuperarContratoPorTextoAutoCompletepublic static bool RecuperarContratoPorTextoAutoComplete(string strTxtContrato, out Contrato objContrato)Recupera um contrato a partir do texto de um autocomplete.
RecuperarContratoPorTextoAutoCompletepublic static bool RecuperarContratoPorTextoAutoComplete(string strTxtContrato, int codEmpresa, out Contrato objContrato)Recupera um contrato a partir do texto de um autocomplete e código da empresa.
RetornarCodigoContratopublic static int RetornarCodigoContrato(int idFilial)Retorna o código de um contrato quando a empresa não é prestadora de serviço.
LoadArraypublic static string[] LoadArray(string text)Carrega um array de strings de contratos por texto.
LoadIdfByCodigopublic static int? LoadIdfByCodigo(string codigoContrato)Carrega o ID de um contrato pelo código.
LoadCodigoByIdfpublic static string LoadCodigoByIdf(int idf)Carrega o código de um contrato pelo ID.
LoadDataReaderByTextprivate static IDataReader LoadDataReaderByText(string text, string codigo)Carrega um IDataReader por texto ou código.
GetCompletionListpublic static string[] GetCompletionList(int idTipoContrato, int codContrato, int codContratoFilho, string prefixText)Retorna uma lista de conclusão para autocomplete de contratos.
Savepublic void Save(List<ContratoVerbaFatura> lstContratoVerba, List<ContratoTributo> lstContratoTributo)Salva o contrato, suas verbas de fatura e tributos.
Savepublic void Save(List<ContratoVerbaFatura> lstContratoVerba, List<ContratoTributo> lstContratoTributo, List<ContratoBeneficio> lstContratoBeneficio, List<Resposta> lstRespostaCheckList)Salva o contrato, suas verbas de fatura, tributos, benefícios e respostas de checklist.
ApelidoJaExistepublic static bool ApelidoJaExiste(string apelido, int codContratoMae)Verifica se um apelido de contrato filho já existe para um contrato mãe.
GerarCodigoContratopublic static int GerarCodigoContrato(int idCliente, int idTipoContrato)Gera um novo código de contrato.
GerarCodigoContratopublic static int GerarCodigoContrato(SqlTransaction trans, int idContratoMae)Gera um novo código de contrato filho para um contrato mãe dentro de uma transação.
GerarCodigoContratopublic static int GerarCodigoContrato(Contrato contratoMae, Empresa empresa)Gera um novo código de contrato filho para um contrato mãe e empresa.
GerarCodigoContratopublic static int GerarCodigoContrato(SqlTransaction trans, Cliente cliente, TipoContrato tipocontrato, Empresa empresa)Gera um novo código de contrato mãe para um cliente, tipo de contrato e empresa dentro de uma transação.
GerarCodigoContratopublic static int GerarCodigoContrato(Cliente cliente, TipoContrato tipocontrato, Empresa empresa)Gera um novo código de contrato mãe para um cliente, tipo de contrato e empresa.
GerarContratoFilhopublic void GerarContratoFilho()Gera contratos filhos a partir do contrato mãe.
CopiarFuncoesExclusivasParaContratoFilhopublic static void CopiarFuncoesExclusivasParaContratoFilho(Int32 IdfUsuario, Int32 IdfContrato)Copia funções exclusivas do contrato mãe para o contrato filho.
CopiarFuncoesExclusivasParaContratoFilhopublic static void CopiarFuncoesExclusivasParaContratoFilho(Int32 IdfUsuario, Int32 IdfContrato, Int32 IdfContratoMae, SqlTransaction trans = null)Copia funções exclusivas do contrato mãe para o contrato filho dentro de uma transação.
UpdateContratoMaeprivate void UpdateContratoMae()Atualiza um contrato mãe.
UpdateContratoMaeprivate void UpdateContratoMae(SqlTransaction trans)Atualiza um contrato mãe dentro de uma transação.
UpdateContratoFilhoprivate void UpdateContratoFilho(SqlTransaction trans)Atualiza os contratos filhos de um contrato mãe.
CarregarContratosFilhopublic static IDataReader CarregarContratosFilho(string colunaOrdenacao, string direcaoOrdenacao, int idfContratoMae, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Carrega contratos filhos de forma paginada.
ListaPesquisaMasterpublic static DataTable ListaPesquisaMaster(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros, int idfEmpresa, int idfUsuario, string pesquisa)Lista contratos para pesquisa master, com paginação e filtros.
AtualizarContratosFilhopublic void AtualizarContratosFilho(bool bolDataInicioAlterado = false, bool bolDataTerminoAlterado = false)Atualiza todos os contratos filhos de acordo com o contrato mãe.
AtualizarContratosFilhopublic void AtualizarContratosFilho(SqlTransaction trans)Atualiza todos os contratos filhos de acordo com o contrato mãe dentro de uma transação.
VerificarContatoContratopublic static bool VerificarContatoContrato(int idfContrato)Verifica se um contrato possui contato de nota fiscal eletrônica.
VerificarSeContratoTemDepartamentopublic static bool VerificarSeContratoTemDepartamento(int Idf_Contrato)Verifica se um contrato possui departamentos.
CarregarContratoCentroResultadopublic static bool CarregarContratoCentroResultado(int idEmpresa, out Contrato objContrato)Carrega o contrato filho da empresa que utiliza centro de resultado.
CarregarContratoCentroResultadopublic static bool CarregarContratoCentroResultado(SqlTransaction pTrans, int idEmpresa, out Contrato objContrato)Carrega o contrato filho da empresa que utiliza centro de resultado dentro de uma transação.
RecuperarContratosFilhospublic static DataTable RecuperarContratosFilhos(int codEmpresa, int codUsuario, int? codContrato)Retorna todos os contratos filhos que o usuário tem permissão.
RetornarIdTipoCodContratoMaeCodContratoApelidoContratoFormatadopublic static string RetornarIdTipoCodContratoMaeCodContratoApelidoContratoFormatado(int idContrato)Retorna o código e apelido formatados de um contrato.
RecuperarTotalContratosAtivospublic static int RecuperarTotalContratosAtivos(int idEmpresa)Recupera o total de contratos ativos de uma empresa.
VerificarSeContratoTemEmpregadopublic static bool VerificarSeContratoTemEmpregado(int idContrato)Verifica se um contrato possui empregados admitidos.
CarregarUltimoContratoFilhopublic static Contrato CarregarUltimoContratoFilho(int idContratoMae)Carrega o último contrato filho de um contrato mãe.
LoadDataReaderContratoFilhoprivate static IDataReader LoadDataReaderContratoFilho(int idContratoMae)Retorna um IDataReader com o último contrato filho de um contrato mãe.
ExisteContratoFilhoVigentepublic static bool ExisteContratoFilhoVigente(int idCliente, int idFilial, int idEmpresa, int? idContrato)Verifica se existe contrato filho vigente para um cliente, filial e empresa.
HistoricoFiliaisGestoraspublic static DataTable HistoricoFiliaisGestoras(int idEmpresa, int? idContrato, String colunaOrdenada, String tipoOrdenacao, int tamanhoPagina, int paginaCorrente, out int total)Retorna o histórico de filiais gestoras de um contrato, paginado.
ListarContratosPorFilialContratopublic static DataTable ListarContratosPorFilialContrato(Dictionary<int, bool> dic, string nomeColuna, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Lista contratos por filial e contrato, paginado.
ListarContratosPorFilialContratopublic static Dictionary<int, bool> ListarContratosPorFilialContrato(int? pIdFilial, int? pIdContrato)Lista contratos por filial e contrato em um dicionário.
ExisteEmpregadoAtivoContratoFilhopublic static bool ExisteEmpregadoAtivoContratoFilho(int IdContrato)Verifica se existem contratos filhos ativos com empregados ativos para um contrato mãe.
ExisteEmpregadoAtivoContratoFilhopublic static bool ExisteEmpregadoAtivoContratoFilho(int IdContrato, SqlTransaction trans)Verifica se existem contratos filhos ativos com empregados ativos para um contrato mãe dentro de uma transação.
SalvarContratoFilhopublic static bool SalvarContratoFilho(Contrato objContrato, Dictionary<int, bool[]> dicDeptos, AlteracaoMaster objAlteracaoMaster, int idfUsuario)Salva um contrato filho, seus departamentos e alterações master.
Salvarpublic static bool Salvar(Contrato objContrato, AlteracaoMaster objAlteracaoMaster, int idfUsuarioGerador, Dictionary<int, bool[]> dicDeptos = null)Salva um contrato (mãe), seus departamentos e alterações master.
SalvarCargaHorariaPadraoprivate static void SalvarCargaHorariaPadrao(Contrato objContrato, SqlTransaction trans)Salva a carga horária padrão de um contrato.
CarregarListaContratosPorIdfpublic static DataTable CarregarListaContratosPorIdf(string IdfContrato, string Pesquisa, string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)Carrega uma lista de contratos por IDs, com pesquisa, ordenação e paginação.
RecuperarApelidoContratopublic static string RecuperarApelidoContrato(int Idf_Contrato)Recupera o apelido de um contrato.
CarregarContratoPorCNPJFilialpublic static bool CarregarContratoPorCNPJFilial(Filial objFilial, TipoContrato objTipoContrato, out Contrato objContrato, Empresa objEmpresaPrestadora, SqlTransaction trans)Carrega um contrato por CNPJ da filial, tipo de contrato e empresa prestadora.
BuscarDadosContratosMaepublic static DataTable BuscarDadosContratosMae(int pagina, int tamPagina, string ordem, string direcaoOrdem, out int numRegistros, List<int?> lsIdContratoMae)Busca dados de contratos mãe, paginado.
BuscaComponentepublic static DataTable BuscaComponente(int inicio, int fim, string SortExpression, string string SortDirection, out int iTotalRegistro, string BuscaTexto, int? TipoDeContrato, bool ConsiderarContratoInativo, int? IdGrupoEconomico, int? IdEmpresa, int? IdUsuario, int? IdFilial, int? IdCliente, bool? ContratoComFilialGestora, int? IdContratoMae, int? IdTipocontrato, List<int> ListaItensIgnorar, bool comPaginacao, Enumeradores.TipoVinculo? tipoVinculo, List<int?> lsIdContrato)Busca contratos para componente, com diversos filtros e paginação.
BuscaComponenteSelecionadospublic static DataTable BuscaComponenteSelecionados(int inicio, int fim, string SortExpression, string SortDirection, out int iTotalRegistro, string BuscaTexto, List<int> ListaItensIgnorar, bool comPaginacao)Busca contratos selecionados para componente, com paginação.
ListarAutocompletepublic static DataTable ListarAutocomplete(string prefixText, int count, int TipoDeContrato, bool ConsiderarContratoInativo, int? IdGrupoEconomico, int? IdEmpresa, int? IdUsuario, int? IdFilial, int? IdCliente, bool? ContratoComFilialGestora, int? IdContratoMae, int? IdTipocontrato, Enumeradores.TipoVinculo? tipoVinculo)Lista contratos para autocomplete de componente, com diversos filtros.
ConsultaRelatorioContratosFilhoWFATpublic static DataTable ConsultaRelatorioContratosFilhoWFAT(int IdContrato)Consulta contratos filho para relatório WFAT.
VerificarCheckListFaturamentopublic static bool VerificarCheckListFaturamento(int idfContrato, out string strMensagemValidacao)Verifica o checklist de faturamento de um contrato.
EsocialBuscarParametroCSpublic static string EsocialBuscarParametroCS(int tipoLayout, string id)Busca parâmetro de Centro de Serviço para eSocial.
EsocialBuscarParametroCSporContratopublic static string EsocialBuscarParametroCSporContrato(int idContrato)Busca parâmetro de Centro de Serviço para eSocial por contrato.
VerificaContratopublic bool VerificaContrato(string pContrato)Verifica a existência de um contrato por código formatado.
VerificaCadastraSSTpublic static void VerificaCadastraSST(Contrato objContrato)Verifica e cadastra um Setor SST para o contrato.
VerificaCadastraSSTWEBFOPAGpublic static void VerificaCadastraSSTWEBFOPAG(Contrato objContrato, int idContratoFilho)Verifica e cadastra um Setor SST para o contrato (específico para WebFoPag).

Detalhamento de Métodos Importantes

GetParameters()

  • Lógica: Este método privado é responsável por inicializar e retornar uma lista de objetos SqlParameter. Cada parâmetro é configurado com seu nome (prefixado com ”@”), tipo de dado SQL e tamanho máximo, cobrindo todos os atributos da classe Contrato. Ele prepara a estrutura para que os valores dos atributos da instância de Contrato possam ser associados posteriormente.
  • Stored Procedures chamadas: Nenhuma diretamente. Prepara parâmetros para queries SQL textuais definidas como constantes na classe (SPINSERT, SPUPDATE, SPDELETE, SPSELECTID).
  • Validações: Nenhuma.
  • Regras de negócio: Nenhuma.

SetParameters(List parms)

  • Lógica: Este método privado recebe uma lista de SqlParameter (gerada por GetParameters) e preenche os valores de cada parâmetro com os atributos da instância atual de Contrato.
  • O IdContrato é definido como Output se a instância não for persistida (novo registro), caso contrário, é Input.
  • Campos opcionais (como _contratoMae, _proposta, _tipoContrato, _dataTermino, _tipoVencimento, _diaVencimentoMensal, _diaSemana, _quantidadeDiasPrazo, _tipoCobranca, _contaEmpresa, _endereco, _pessoaFisica, _filialGestora, _iSSFaturamento, _tipoAgrupamento, _flagTributosTaxa, _flagAgruparCidade, _flagEnviaSMSConfirmacaoCredito, _flagEnviaEmailConfirmacaoCredito, _numeroApoliceSeguro, _nomeSeguradora, _motivoContratacaoTemporario, _flagUtilizaUnidadedeTrabalho) são definidos como DBNull.Value se forem nulos.
  • _dataCadastro é definido como DateTime.Now se a instância não for persistida.
  • _usuarioGerador é preenchido com o IdUsuario da sessão HTTP atual ou com 1 se a sessão for nula (usuário padrão).
  • Stored Procedures chamadas: Nenhuma diretamente. Preenche parâmetros para queries SQL textuais.
  • Validações: Nenhuma.
  • Regras de negócio:
  • Atribuição de DateTime.Now para _dataCadastro em novos registros.
  • Obtenção do IdUsuario da sessão para _usuarioGerador.

Insert()

  • Lógica: Este método privado insere os dados da instância atual de Contrato no banco de dados.
  1. Chama GetParameters() para obter a lista de parâmetros.
  2. Chama SetParameters(parms) para preencher os parâmetros com os valores da instância.
  3. Abre uma conexão SQL e inicia uma transação.
  4. Executa a query SPINSERT (um comando SQL textual de INSERT) usando DataAccessLayer.ExecuteNonQueryCmd.
  5. Recupera o IdContrato gerado pelo banco de dados (usando SCOPE_IDENTITY()) e o atribui à propriedade _idContrato.
  6. Limpa os parâmetros do comando.
  7. Define _persisted como true e _modified como false.
  8. Comita a transação.
  9. Em caso de exceção, a transação é revertida e a exceção é relançada.
  • Stored Procedures chamadas: SPINSERT (SQL textual: INSERT INTO TAB_Contrato (...) VALUES (...)).
  • Validações: Nenhuma explícita, mas a integridade do banco de dados pode causar exceções.
  • Exceções: Lança exceções em caso de falha na operação de banco de dados.

Insert(SqlTransaction trans)

  • Lógica: Similar ao Insert() sem transação, mas utiliza uma transação SQL existente.
  1. Chama GetParameters() e SetParameters(parms).
  2. Executa a query SPINSERT usando DataAccessLayer.ExecuteNonQueryCmd com a transação fornecida.
  3. Recupera o IdContrato gerado e o atribui à propriedade _idContrato.
  4. Limpa os parâmetros do comando.
  5. Define _persisted como true e _modified como false.
  • Stored Procedures chamadas: SPINSERT (SQL textual: INSERT INTO TAB_Contrato (...) VALUES (...)).
  • Validações: Nenhuma explícita.

Update()

  • Lógica: Este método privado atualiza os dados da instância atual de Contrato no banco de dados, mas apenas se a instância tiver sido modificada (_modified for true).
  1. Verifica se _modified é true.
  2. Chama GetParameters() e SetParameters(parms).
  3. Executa a query SPUPDATE (um comando SQL textual de UPDATE) usando DataAccessLayer.ExecuteNonQuery.
  4. Define _modified como false.
  • Stored Procedures chamadas: SPUPDATE (SQL textual: UPDATE TAB_Contrato SET ... WHERE Idf_Contrato = @Idf_Contrato).
  • Validações: Nenhuma explícita.

Update(SqlTransaction trans)

  • Lógica: Similar ao Update() sem transação, mas utiliza uma transação SQL existente.
  1. Verifica se _modified é true.
  2. Chama GetParameters() e SetParameters(parms).
  3. Executa a query SPUPDATE usando DataAccessLayer.ExecuteNonQuery com a transação fornecida.
  4. Define _modified como false.
  • Stored Procedures chamadas: SPUPDATE (SQL textual: UPDATE TAB_Contrato SET ... WHERE Idf_Contrato = @Idf_Contrato).
  • Validações: Nenhuma explícita.

Save()

  • Lógica: Este método público é o ponto de entrada para persistir uma instância de Contrato.
  1. Se a instância não for persistida (_persisted é false), chama Insert().
  2. Caso contrário (a instância já existe no banco), chama Update().
  • Stored Procedures chamadas: Nenhuma diretamente. Chama Insert() ou Update().
  • Validações: Nenhuma explícita.

Save(SqlTransaction trans)

  • Lógica: Similar ao Save() sem transação, mas utiliza uma transação SQL existente.
  1. Se a instância não for persistida (_persisted é false), chama Insert(trans).
  2. Caso contrário, chama Update(trans).
  • Stored Procedures chamadas: Nenhuma diretamente. Chama Insert(trans) ou Update(trans).
  • Validações: Nenhuma explícita.

Delete(int idContrato)

  • Lógica: Este método estático público exclui um registro de Contrato do banco de dados.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Contrato com o valor fornecido e @Idf_Usuario_Gerador com o CodigoUsuario da sessão.
  3. Executa a query SPDELETE (um comando SQL textual de DELETE) usando DataAccessLayer.ExecuteNonQuery.
  • Stored Procedures chamadas: SPDELETE (SQL textual: UPDATE TAB_Contrato SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Contrato = @Idf_Contrato ; DELETE FROM TAB_Contrato WHERE Idf_Contrato = @Idf_Contrato).
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do Contrato a ser excluído.
  • @Idf_Usuario_Gerador: int, ID do usuário que está realizando a exclusão.
  • Validações: Nenhuma explícita.

Delete(int idContrato, SqlTransaction trans)

  • Lógica: Similar ao Delete(int idContrato) sem transação, mas utiliza uma transação SQL existente.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Contrato e @Idf_Usuario_Gerador.
  3. Executa a query SPDELETE usando DataAccessLayer.ExecuteNonQuery com a transação fornecida.
  • Stored Procedures chamadas: SPDELETE (SQL textual: UPDATE TAB_Contrato SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Contrato = @Idf_Contrato ; DELETE FROM TAB_Contrato WHERE Idf_Contrato = @Idf_Contrato).
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do Contrato a ser excluído.
  • @Idf_Usuario_Gerador: int, ID do usuário que está realizando a exclusão.
  • Validações: Nenhuma explícita.

Delete(List idContrato)

  • Lógica: Este método estático público exclui uma lista de registros de Contrato do banco de dados.
  1. Constrói dinamicamente duas queries SQL: uma para atualizar o Idf_Usuario_Gerador e outra para deletar os registros, ambas usando a cláusula IN com parâmetros gerados dinamicamente (@parm0, @parm1, etc.).
  2. Adiciona os IDs da lista como parâmetros.
  3. Adiciona o Idf_Usuario_Gerador da sessão.
  4. Executa a query combinada usando DataAccessLayer.ExecuteNonQuery.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL:
  • @parmX: int, IDs dos Contratos a serem excluídos.
  • @Idf_Usuario_Gerador: int, ID do usuário que está realizando a exclusão.
  • Validações: Nenhuma explícita.

LoadDataReader(int idContrato)

  • Lógica: Este método privado estático retorna um IDataReader contendo os dados de um Contrato específico.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Contrato com o ID fornecido.
  3. Executa a query SPSELECTID (um comando SQL textual de SELECT) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTID (SQL textual: SELECT * FROM TAB_Contrato WHERE Idf_Contrato = @Idf_Contrato).
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do Contrato a ser carregado.
  • Validações: Nenhuma explícita.

LoadDataReader(int idContrato, SqlTransaction trans)

  • Lógica: Similar ao LoadDataReader(int idContrato) sem transação, mas utiliza uma transação SQL existente.
  1. Cria uma lista de SqlParameter.
  2. Adiciona @Idf_Contrato com o ID fornecido.
  3. Executa a query SPSELECTID usando DataAccessLayer.ExecuteReader com a transação fornecida.
  • Stored Procedures chamadas: SPSELECTID (SQL textual: SELECT * FROM TAB_Contrato WHERE Idf_Contrato = @Idf_Contrato).
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do Contrato a ser carregado.
  • Validações: Nenhuma explícita.

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

  • Lógica: Este método estático público retorna um IDataReader para uma consulta paginada de Contrato.
  1. Calcula os valores de inicio e fim para a paginação.
  2. Constrói duas queries SQL textuais: SPSELECTPAG (para a página atual, usando ROW_NUMBER() OVER (ORDER BY ...) para ordenação e paginação) e SPSELECTCOUNT (para contar o total de registros).
  3. Executa SPSELECTCOUNT usando DataAccessLayer.ExecuteScalar para obter o totalRegistros.
  4. Executa SPSELECTPAG usando DataAccessLayer.ExecuteReader para obter os dados da página atual.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL: Nenhum parâmetro explícito, mas a query é construída com base nos argumentos do método.
  • Validações: Nenhuma explícita.

LoadObject(int idContrato)

  • Lógica: Este método estático público carrega e retorna uma instância de Contrato a partir do banco de dados.
  1. Chama LoadDataReader(idContrato) para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato) para preencher a instância com os dados do IDataReader.
  4. Se SetInstance retornar true (registro encontrado), retorna a instância.
  5. Caso contrário, lança uma RecordNotFoundException.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoadDataReader e SetInstance.
  • Validações: Verifica se o registro foi encontrado no banco de dados.
  • Exceções: Lança RecordNotFoundException se o Contrato não for encontrado.

LoadObject(int idContrato, SqlTransaction trans)

  • Lógica: Similar ao LoadObject(int idContrato) sem transação, mas utiliza uma transação SQL existente.
  1. Chama LoadDataReader(idContrato, trans).
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato).
  4. Se SetInstance retornar true, retorna a instância.
  5. Caso contrário, lança uma RecordNotFoundException.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoadDataReader e SetInstance.
  • Validações: Verifica se o registro foi encontrado no banco de dados.
  • Exceções: Lança RecordNotFoundException se o Contrato não for encontrado.

CompleteObject()

  • Lógica: Este método público completa a instância atual de Contrato com dados do banco de dados, usando o IdContrato da própria instância.
  1. Chama LoadDataReader(this._idContrato).
  2. Chama SetInstance(dr, this) para preencher a própria instância.
  3. Retorna o resultado de SetInstance.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoadDataReader e SetInstance.
  • Validações: Nenhuma explícita.

CompleteObject(SqlTransaction trans)

  • Lógica: Similar ao CompleteObject() sem transação, mas utiliza uma transação SQL existente.
  1. Chama LoadDataReader(this._idContrato, trans).
  2. Chama SetInstance(dr, this).
  3. Retorna o resultado de SetInstance.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama LoadDataReader e SetInstance.
  • Validações: Nenhuma explícita.

RetornaCodigoContrato()

  • Lógica: Retorna o código formatado do contrato.
  1. Se o contrato tiver um ContratoMae:
  • Completa o objeto ContratoMae.
  • Retorna a string formatada como “TipoContrato.IdTipoContrato.ContratoMae.CodigoContrato.CodigoContrato”.
  1. Caso contrário (é um contrato mãe):
  • Retorna a string formatada como “TipoContrato.IdTipoContrato.CodigoContrato”.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama CompleteObject() em TipoContrato e ContratoMae.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Formatação específica do código do contrato.

RetornaCodigoContrato(SqlTransaction trans)

  • Lógica: Similar a RetornaCodigoContrato(), mas utiliza uma transação SQL existente para completar o ContratoMae.
  1. Se o contrato tiver um ContratoMae:
  • Completa o objeto ContratoMae usando a transação.
  • Retorna a string formatada.
  1. Caso contrário:
  • Retorna a string formatada.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama CompleteObject(trans) em TipoContrato e ContratoMae.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Formatação específica do código do contrato.

SetInstance(IDataReader dr, Contrato objContrato)

  • Lógica: Este método privado estático é crucial para mapear os dados de um IDataReader para as propriedades de um objeto Contrato.
  1. Tenta ler a próxima linha do IDataReader (dr.Read()).
  2. Se houver uma linha:
  • Atribui os valores das colunas do IDataReader às propriedades correspondentes de objContrato, realizando conversões de tipo.
  • Para campos que podem ser nulos no banco de dados, verifica DBNull.Value antes de converter.
  • Instancia objetos Contrato (para o contrato mãe), Proposta, Empresa, Cliente, TipoContrato, TipoVencimento, DiaSemana, TipoCobranca, ContaEmpresa, Endereco, PessoaFisica, Filial, ISSFaturamento, TipoAgrupamento, Usuario e MotivoContratacaoTemporario com base nos IDs lidos.
  • Define _persisted como true e _modified como false.
  • Retorna true.
  1. Se não houver mais linhas, retorna false.
  2. Em caso de exceção durante a leitura ou conversão, a exceção é relançada.
  3. O IDataReader é descartado no bloco finally.
  • Stored Procedures chamadas: Nenhuma diretamente. Mapeia resultados de queries SQL.
  • Validações: Verifica DBNull.Value para campos opcionais.
  • Exceções: Pode relançar exceções de conversão de tipo ou de acesso a dados.

ListarAutoComplete(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, int? pIdFilial, int? pIdTipoContrato, int? pCodigoContratoFilho, int? pCodigoContratoMae, string pApelido, bool? pFlgContratoMae, int? pIdContratoMae, bool pFiltrarPorUsuarioLogado)

  • Lógica: Retorna um array de strings formatadas de contratos para um controle de autocomplete.
  1. Cria uma lista de SqlParameter e preenche com todos os parâmetros de entrada, tratando valores nulos.
  2. Executa a query SplistarAUTOCOMPLETE (SQL textual) usando DataAccessLayer.ExecuteReader.
  3. Itera sobre o IDataReader:
  • Para cada linha, formata a descrição do contrato (incluindo tipo, código mãe, código filho e apelido) e adiciona à lista de strings.
  1. Retorna a lista como um array.
  • Stored Procedures chamadas: SplistarAUTOCOMPLETE (SQL textual: seleciona contratos com filtros de inatividade, empresa, filial, contrato mãe, permissão de usuário (TAB_SF_Usuario_Acesso), tipo de contrato, código de contrato filho, código de contrato mãe e apelido parcial).
  • Parâmetros SQL:
  • @Num_Registro: int, número máximo de registros.
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Filial: int?, ID da filial.
  • @Idf_Tipo_Contrato: int?, ID do tipo de contrato.
  • @Cod_Contrato_Filho: int?, código do contrato filho.
  • @Cod_Contrato_Mae: int?, código do contrato mãe.
  • @Ape_Contrato: varchar, apelido parcial do contrato.
  • @Flg_Contrato_Mae: bit?, flag para filtrar por contrato mãe (1=mãe, 0=filho, NULL=ambos).
  • @Idf_Contrato_Mae: int?, ID do contrato mãe.
  • @Flg_Filtrar_Por_Usuario_Logado: bit, flag para aplicar filtro de permissão por usuário.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Lógica de filtragem complexa para autocomplete, incluindo hierarquia, status e permissões de usuário.

ListarAutoComplete(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, int? pIdFilial, string CodContrato, string pApelido, bool? pFlgContratoMae, int? pIdContratoMae, bool pFiltrarPorUsuarioLogado)

  • Lógica: Similar ao método anterior, mas aceita o CodContrato como string e utiliza a query SplistarAUTOCOMPLETE3.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Executa a query SplistarAUTOCOMPLETE3 (SQL textual) usando DataAccessLayer.ExecuteReader.
  3. Itera sobre o IDataReader e formata a descrição do contrato.
  4. Retorna a lista como um array.
  • Stored Procedures chamadas: SplistarAUTOCOMPLETE3 (SQL textual: similar à SplistarAUTOCOMPLETE, mas com uma lógica de filtro de código de contrato mais flexível que permite buscar por código formatado “Tipo.Mae.Filho”).
  • Parâmetros SQL: (Similar ao método anterior, mas @Cod_Contrato é varchar).
  • Validações: Nenhuma explícita.
  • Regras de negócio: Lógica de filtragem complexa para autocomplete.

ListarContratoAutoCompleteMae(int pNumeroRegistros, int pIdUsuario, int pIdEmpresa, string pApelido, int pCodigoContrato, int pTipoContrato)

  • Lógica: Retorna um array de strings formatadas de contratos mãe para autocomplete.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Executa a query SPSELECT (SQL textual) que filtra por contratos mãe, apelido, empresa, inatividade, tipo de contrato, código de contrato e permissão de usuário.
  3. Itera sobre o IDataReader e formata a descrição do contrato.
  4. Retorna a lista como um array.
  • Stored Procedures chamadas: SPSELECT (SQL textual: seleciona contratos mãe com filtros de apelido, empresa, inatividade, tipo de contrato, código de contrato e acesso do usuário (TAB_SF_Usuario_Acesso)).
  • Parâmetros SQL:
  • @Num_Registro: int, número máximo de registros.
  • @Idf_Empresa: int, ID da empresa.
  • @Ape_Contrato: varchar, apelido parcial do contrato.
  • @Idf_Tipo_Contrato: int?, ID do tipo de contrato.
  • @Cod_Contrato: int?, código do contrato.
  • @Idf_Usuario: int, ID do usuário.
  • Validações: Nenhuma explícita.

ListarContratoAutoCompleteFilho(int pNumeroRegistros, int pIdUsuario, int pIdEmpresa, string pApelido, int pCodigoContratoMae, int pCodigoContratoFilho, int pTipoContrato)

  • Lógica: Retorna um array de strings formatadas de contratos filho para autocomplete.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Executa a query SPSELECT (SQL textual) que filtra por contratos filho, apelido, empresa, inatividade, tipo de contrato, código do contrato mãe, código do contrato filho e permissão de usuário.
  3. Itera sobre o IDataReader e formata a descrição do contrato.
  4. Retorna a lista como um array.
  • Stored Procedures chamadas: SPSELECT (SQL textual: seleciona contratos filho com filtros de apelido, empresa, inatividade, tipo de contrato, código do contrato mãe, código do contrato filho e acesso do usuário (TAB_SF_Usuario_Acesso)).
  • Parâmetros SQL:
  • @Num_Registro: int, número máximo de registros.
  • @Idf_Empresa: int, ID da empresa.
  • @Ape_Contrato: varchar, apelido parcial do contrato.
  • @Idf_Tipo_Contrato: int?, ID do tipo de contrato.
  • @Cod_Contrato_Mae: int?, código do contrato mãe.
  • @Cod_Contrato_Filho: int?, código do contrato filho.
  • @Idf_Usuario: int, ID do usuário.
  • Validações: Nenhuma explícita.

ListarAutoCompleteDicionario(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, int? pIdFilial, int? pIdTipoContrato, int? pCodigoContratoFilho, int? pCodigoContratoMae, string pApelido, bool? pFlgContratoMae, int? pIdContratoMae, bool pFiltrarPorUsuarioLogado)

  • Lógica: Retorna um dicionário (ID do contrato, descrição formatada) para um controle de autocomplete.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Executa a query SplistarAUTOCOMPLETE2 (SQL textual) usando DataAccessLayer.ExecuteReader.
  3. Itera sobre o IDataReader e adiciona o ID do contrato e a DescricaoContrato formatada ao dicionário.
  4. Retorna o dicionário.
  • Stored Procedures chamadas: SplistarAUTOCOMPLETE2 (SQL textual: seleciona contratos com filtros de inatividade, empresa, filial, contrato mãe, permissão de usuário (TAB_SF_Usuario_Acesso), tipo de contrato e apelido parcial, retornando a descrição formatada).
  • Parâmetros SQL: (Mesmos de ListarAutoComplete).
  • Validações: Nenhuma explícita.
  • Exceções: Captura e relança exceções.

ListarAutoCompleteParaContaPagar(int pNumeroRegistros, int pIdEmpresa, int pIdUsuario, string pApelido, bool bolPesquisarContratoMae)

  • Lógica: Retorna um dicionário (ID do contrato, descrição formatada) para autocomplete de contratos para contas a pagar.
  1. Chama SeperaTipoValorAutoComplete para extrair tipo e código do apelido.
  2. Se todos os campos de pesquisa estiverem vazios, retorna um dicionário vazio.
  3. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada, incluindo um flag para pesquisar contrato mãe.
  4. Constrói uma query SQL textual complexa com CTEs (BUSCACONTRATO) que combina a busca por contratos filho (com tipo 8) e contratos gerais (com ou sem contrato mãe, dependendo do flag bolPesquisarContratoMae), aplicando filtros de inatividade, empresa, permissão de usuário, tipo e código.
  5. Executa a query usando DataAccessLayer.ExecuteReader.
  6. Itera sobre o IDataReader e adiciona o ID do contrato e a DescricaoContrato formatada ao dicionário.
  7. Retorna o dicionário.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente com CTEs e a função TAB_SF_Usuario_Acesso.
  • Parâmetros SQL:
  • @Num_Registro: int, número máximo de registros.
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • @Flg_Pesquisar_Contrato_Mae: int, flag (1=pesquisar mãe, 0=não pesquisar mãe).
  • @Ape_Contrato: varchar(250)?, apelido parcial.
  • @Tipo: varchar(200)?, tipo de contrato.
  • @idf_tipo: int?, ID do tipo de contrato.
  • @cod_Contrato_Mae: int?, código do contrato mãe.
  • @cod_Contrato: int?, código do contrato.
  • Validações: Verifica se os campos de pesquisa estão vazios.
  • Regras de negócio: Lógica de busca específica para contas a pagar, incluindo contratos do tipo 8 e permissões de usuário.

ListarAutoCompleteParaContaPagar(int pNumeroRegistros, int pIdEmpresa, string pApelido)

  • Lógica: Similar ao método anterior, mas sem o parâmetro pIdUsuario e bolPesquisarContratoMae. A lógica de construção da query é mais complexa, utilizando SPSELECT1, SPSELECT2 e SELECT_FIM para montar a consulta.
  1. Chama SeperaTipoValorAutoComplete para extrair tipo e código do apelido.
  2. Se todos os campos de pesquisa estiverem vazios, retorna um dicionário vazio.
  3. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  4. Constrói as queries SPSELECT1, SPSELECT2 e SELECT_FIM dinamicamente, adicionando cláusulas WHERE com base nos parâmetros.
  5. Executa a query combinada usando DataAccessLayer.ExecuteReader.
  6. Itera sobre o IDataReader e adiciona o ID do contrato e a DescricaoContrato formatada ao dicionário.
  7. Retorna o dicionário.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL:
  • @Num_Registro: int, número máximo de registros.
  • @Idf_Empresa: int, ID da empresa.
  • @Ape_Contrato: varchar(250)?, apelido parcial.
  • @Tipo: varchar(200)?, tipo de contrato.
  • @idf_tipo: int?, ID do tipo de contrato.
  • @cod_Contrato_Mae: int?, código do contrato mãe.
  • @cod_Contrato: int?, código do contrato.
  • Validações: Verifica se os campos de pesquisa estão vazios.

ListarAtivosPermitidos(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)

  • Lógica: Retorna um IDataReader com contratos ativos que o usuário tem permissão para acessar.
  1. Constrói uma query SQL textual (SELECTATIVOSAUTOCOMPLETE) dinamicamente, adicionando cláusulas WHERE com base nos parâmetros de entrada.
  2. Cria uma lista de SqlParameter e preenche com os parâmetros.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELECTATIVOSAUTOCOMPLETE (SQL textual: seleciona contratos ativos, filtrando por empresa, permissão de usuário (TAB_SF_Usuario_Acesso), tipo de contrato, código de contrato mãe/filho e apelido parcial).
  • Parâmetros SQL:
  • @Qtd_Registros: int, quantidade de registros.
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Tipo_Contrato: int?, ID do tipo de contrato.
  • @Cod_Contrato_Mae: int?, código do contrato mãe.
  • @Cod_Contrato_Filho: int?, código do contrato filho.
  • @Ape_Contrato: varchar(250), apelido parcial.
  • Validações: Nenhuma explícita.

ListarAtivosPermitidosComponente(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)

  • Lógica: Similar a ListarAtivosPermitidos, mas com uma lógica de filtro ligeiramente diferente, focada em contratos mãe para componentes.
  1. Constrói uma query SQL textual (SELECTATIVOSAUTOCOMPLETE) dinamicamente, adicionando cláusulas WHERE com base nos parâmetros de entrada.
  2. Cria uma lista de SqlParameter e preenche com os parâmetros.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELECTATIVOSAUTOCOMPLETE (SQL textual: seleciona contratos ativos, filtrando por empresa, permissão de usuário (TAB_SF_Usuario_Acesso), tipo de contrato, código de contrato mãe/filho e apelido parcial).
  • Parâmetros SQL: (Mesmos de ListarAtivosPermitidos).
  • Validações: Nenhuma explícita.

ListarContratosPermitidos(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)

  • Lógica: Retorna um IDataReader com contratos (mãe/filho) ativos que o usuário tem permissão para acessar.
  1. Constrói uma query SQL textual (SELECTCONTRATOSAUTOCOMPLETE) dinamicamente, adicionando cláusulas WHERE com base nos parâmetros de entrada.
  2. Cria uma lista de SqlParameter e preenche com os parâmetros.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELECTCONTRATOSAUTOCOMPLETE (SQL textual: seleciona contratos ativos, filtrando por inatividade, código de contrato, tipo de contrato, apelido parcial, código de contrato mãe e permissão de usuário (TAB_SF_Usuario_Acesso)).
  • Parâmetros SQL:
  • @Qtd_Registros: int, quantidade de registros.
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Tipo_Contrato: int?, ID do tipo de contrato.
  • @Cod_Contrato_Mae: int?, código do contrato mãe.
  • @Cod_Contrato: int?, código do contrato.
  • @Ape_Contrato: varchar(250), apelido parcial.
  • Validações: Nenhuma explícita.

ListarContratosPermitidos(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idContratoMae, int? codContratoFilho, string apelidoParcial)

  • Lógica: Similar ao método anterior, mas com parâmetros ligeiramente diferentes.
  1. Constrói uma query SQL textual (SELECTCONTRATOSATIVOS) dinamicamente, adicionando cláusulas WHERE com base nos parâmetros de entrada.
  2. Cria uma lista de SqlParameter e preenche com os parâmetros.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELECTCONTRATOSATIVOS (SQL textual: seleciona contratos ativos, filtrando por inatividade, código de contrato, ID de contrato mãe, apelido parcial e permissão de usuário (TAB_SF_Usuario_Acesso)).
  • Parâmetros SQL:
  • @Qtd_Registros: int, quantidade de registros.
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Contrato_Mae: int?, ID do contrato mãe.
  • @Cod_Contrato: int?, código do contrato.
  • @Ape_Contrato: varchar(250), apelido parcial.
  • Validações: Nenhuma explícita.

ListarArrayAtivosParaAutoComplete(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)

  • Lógica: Retorna um array de strings formatadas de contratos ativos para autocomplete.
  1. Chama ListarAtivosPermitidos para obter um IDataReader.
  2. Itera sobre o IDataReader e formata a descrição do contrato (com ou sem código mãe) e adiciona à lista de strings.
  3. Retorna a lista como um array.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarAtivosPermitidos.
  • Validações: Nenhuma explícita.

ListarArrayMaesAtivosParaAutoComplete(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)

  • Lógica: Retorna um array de strings formatadas de contratos mãe ativos para autocomplete.
  1. Chama ListarAtivosPermitidosComponente para obter um IDataReader.
  2. Itera sobre o IDataReader e formata a descrição do contrato (apenas com tipo, código e apelido) e adiciona à lista de strings.
  3. Retorna a lista como um array.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarAtivosPermitidosComponente.
  • Validações: Nenhuma explícita.

ListarContratoMaePorCodNomeParcial(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, string apelidoParcial)

  • Lógica: Retorna um dicionário (ID do contrato, descrição formatada) de contratos mãe por código e nome parcial.
  1. Chama ListarAtivosPermitidosComponente (passando null para codContratoFilho) para obter um IDataReader.
  2. Itera sobre o IDataReader e adiciona o ID do contrato e a descrição formatada ao dicionário.
  3. Retorna o dicionário.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarAtivosPermitidosComponente.
  • Validações: Nenhuma explícita.

ListarArrayFilhosAtivosParaAutoComplete(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)

  • Lógica: (Obsoleto) Retorna um array de strings formatadas de contratos filho ativos para autocomplete.
  1. Chama ListarAtivosPermitidos para obter um IDataReader.
  2. Itera sobre o IDataReader e, se o contrato tiver um código mãe, formata a descrição e adiciona à lista.
  3. Retorna a lista como um array.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarAtivosPermitidos.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Este método é marcado como obsoleto, sugerindo o uso de ListarContratosFilhosAutoComplete.

ListarContratosFilhosAutoComplete(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoParcial)

  • Lógica: Lista contratos filhos para autocomplete.
  1. Chama ListarContratosPermitidos para obter um IDataReader.
  2. Itera sobre o IDataReader e, se o contrato tiver um código mãe, formata a descrição e adiciona à lista.
  3. Retorna a lista como um array.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarContratosPermitidos.
  • Validações: Nenhuma explícita.

ListarContratoFilhoPorContratoMae_CodNomeParcial(int quantidadeRegistros, int idEmpresa, int idUsuario, int? idContratoMae, int? codContratoFilho, string apelidoParcial)

  • Lógica: Retorna um dicionário (ID do contrato, descrição formatada) de contratos filho por contrato mãe, código e nome parcial.
  1. Chama ListarContratosPermitidos para obter um IDataReader.
  2. Itera sobre o IDataReader e, se o contrato tiver um código mãe, adiciona o ID e a descrição formatada ao dicionário.
  3. Retorna o dicionário.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarContratosPermitidos.
  • Validações: Nenhuma explícita.

ListarMaePorTipoECodigo(int idTipo, int codContrato)

  • Lógica: Retorna um IDataReader com contratos mãe que correspondem ao tipo e código fornecidos.
  1. Cria uma lista de SqlParameter para @Cod_Contrato e @Idf_Tipo_Contrato.
  2. Preenche os parâmetros.
  3. Executa a query SELECTMAEPORTIPOECODIGO (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELECTMAEPORTIPOECODIGO (SQL textual: seleciona contratos mãe por código e tipo de contrato).
  • Parâmetros SQL:
  • @Cod_Contrato: int, código do contrato.
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • Validações: Nenhuma explícita.

ListarMaePorEmpresaTipo(int idEmpresa, int idTipo)

  • Lógica: Retorna um IDataReader com contratos mãe que correspondem à empresa e tipo fornecidos.
  1. Cria uma lista de SqlParameter para @Idf_Empresa e @Idf_Tipo_Contrato.
  2. Preenche os parâmetros.
  3. Executa a query SPSELMAEEMPRESATIPO (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELMAEEMPRESATIPO (SQL textual: seleciona contratos mãe por empresa e tipo de contrato).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • Validações: Nenhuma explícita.

ListarMaePorEmpresaTipo(int idEmpresa, int idTipo, SqlTransaction trans)

  • Lógica: Similar ao método anterior, mas utiliza uma transação SQL existente.
  1. Cria uma lista de SqlParameter para @Idf_Empresa e @Idf_Tipo_Contrato.
  2. Preenche os parâmetros.
  3. Executa a query SPSELMAEEMPRESATIPO usando DataAccessLayer.ExecuteReader com a transação fornecida.
  • Stored Procedures chamadas: SPSELMAEEMPRESATIPO (SQL textual).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • Validações: Nenhuma explícita.

ListarPorFilialNaoPrestadora(int idFilial)

  • Lógica: Retorna um IDataReader com contratos de filiais não prestadoras.
  1. Cria uma lista de SqlParameter para @Idf_Filial.
  2. Preenche o parâmetro.
  3. Executa a query SPSELFILIALNAOPREST (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELFILIALNAOPREST (SQL textual: seleciona contratos filho de clientes cuja filial é a filial gestora do contrato e não é prestadora).
  • Parâmetros SQL:
  • @Idf_Filial: int, ID da filial.
  • Validações: Nenhuma explícita.

ListarPorFilialPrestadora(int idFilial)

  • Lógica: Retorna um IDataReader com contratos de filiais prestadoras.
  1. Cria uma lista de SqlParameter para @Idf_Filial.
  2. Preenche o parâmetro.
  3. Executa a query SPSELFILIALPREST (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELFILIALPREST (SQL textual: seleciona contratos filho de clientes cuja filial é a filial gestora do contrato e é prestadora).
  • Parâmetros SQL:
  • @Idf_Filial: int, ID da filial.
  • Validações: Nenhuma explícita.

ListarContratoFilho(int? idContrato, string Pesquisa, String colunaOrdenada, String tipoOrdenacao, int tamanhoPagina, int paginaCorrente, out int total)

  • Lógica: Lista contratos filho de forma paginada, com pesquisa e ordenação.
  1. Calcula inicio para a paginação.
  2. Cria uma lista de SqlParameter para @Idf_Contrato, @Pesquisa, @Inicio e @PageSize.
  3. Constrói uma query SQL textual que utiliza SplistarCONTRATOFILHO como subquery, adiciona ROW_NUMBER() para ordenação e paginação, e conta o total de registros.
  4. Executa a query usando DataAccessLayer.ExecuteReaderDs.
  5. Extrai o total de registros da primeira tabela e retorna a segunda tabela (com os dados paginados).
  • Stored Procedures chamadas: SplistarCONTRATOFILHO (SQL textual: seleciona contratos filho de um contrato mãe, com informações de CNPJ/CEI, apelido da filial, situação e datas de vigência, aplicando filtro de pesquisa).
  • Parâmetros SQL:
  • @Idf_Contrato: int?, ID do contrato mãe.
  • @Pesquisa: varchar(150)?, texto para pesquisa.
  • @Inicio: int, linha inicial para paginação.
  • @PageSize: int, tamanho da página.
  • Validações: Nenhuma explícita.

SeperaTipoValorAutoComplete(ref string Valor, ref string Tipo, ref string Codigo, bool CodigoComponto)

  • Lógica: Método auxiliar para parsear uma string de autocomplete de contrato, separando o código (composto por tipo, código mãe e código filho), o tipo e o valor restante.
  1. Remove espaços em branco do Valor.
  2. Tenta dividir o Valor pelo caractere ’-’ para separar o código do restante.
  3. Se CodigoComponto for true, usa uma expressão regular (^([0-9]+\\.[0-9]+\\.[0-9]+)(.*)) para extrair um código no formato “X.Y.Z” e o restante do valor.
  4. Tenta separar o tipo do valor usando uma expressão regular (([^\\(\\)]+)) para encontrar texto entre parênteses.
  • Stored Procedures chamadas: Nenhuma.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Lógica de parsing para strings de autocomplete.

ListarAutoCompleteSemRestricao(string Valor, int Idf_Empresa, int count, int Idf_Usuario)

  • Lógica: (Obsoleto) Retorna um dicionário (ID do contrato, descrição formatada) de contratos sem restrição de acesso, para autocomplete.
  1. Chama SeperaTipoValorAutoComplete para extrair tipo e código do Valor.
  2. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  3. Constrói uma query SQL textual complexa com CTE (ConsultaSemRestricao) que seleciona contratos, calcula ROW_NUMBER() para ordenação, e aplica filtros de empresa, tipo, código e valor.
  4. Executa a query usando DataAccessLayer.ExecuteReaderDs.
  5. Itera sobre as linhas do DataTable e adiciona o ID do contrato e a descrição formatada ao dicionário.
  6. Retorna o dicionário.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente com CTEs e a função TAB_SF_Usuario_Acesso.
  • Parâmetros SQL:
  • @Count: int, número máximo de registros.
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • @Valor: varchar(200)?, texto para pesquisa.
  • @Tipo: varchar(200)?, tipo de contrato.
  • @idf_tipo: int?, ID do tipo de contrato.
  • @cod_Contrato_Mae: int?, código do contrato mãe.
  • @cod_Contrato: int?, código do contrato.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Este método é marcado como obsoleto, sugerindo o uso de ListarAutoCompleteSemRestricaoPaginacao.

ListarAutoCompleteSemRestricaoPaginacao(string Valor, int Idf_Empresa, int Idf_Usuario, int paginaCorrente, int tamanhoPagina, out int totalRegistros)

  • Lógica: Retorna um dicionário (ID do contrato, descrição formatada) de contratos sem restrição de acesso, com paginação.
  1. Inicializa totalRegistros como 0.
  2. Calcula inicio e fim para a paginação.
  3. Chama SeperaTipoValorAutoComplete para extrair tipo e código do Valor.
  4. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada, incluindo os de paginação.
  5. Constrói uma query SQL textual complexa com CTE (ConsultaSemRestricao) que seleciona contratos, calcula ROW_NUMBER() para ordenação e paginação, e aplica filtros de empresa, tipo, código e valor.
  6. Executa a query usando DataAccessLayer.ExecuteReaderDs.
  7. Extrai totalRegistros da primeira linha do DataTable.
  8. Itera sobre as linhas do DataTable e adiciona o ID do contrato e a descrição formatada ao dicionário.
  9. Retorna o dicionário.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente com CTEs e a função TAB_SF_Usuario_Acesso.
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • @Valor: varchar(200)?, texto para pesquisa.
  • @Tipo: varchar(200)?, tipo de contrato.
  • @idf_tipo: int?, ID do tipo de contrato.
  • @cod_Contrato_Mae: int?, código do contrato mãe.
  • @cod_Contrato: int?, código do contrato.
  • @inicio: int, linha inicial para paginação.
  • @fim: int, linha final para paginação.
  • Validações: Nenhuma explícita.

ListarAutoCompletePorCliente(int idCliente, string Valor, int Idf_Empresa, int count)

  • Lógica: Retorna um dicionário (ID do contrato, descrição formatada) de contratos para autocomplete, filtrando por cliente.
  1. Chama SeperaTipoValorAutoComplete para extrair tipo do Valor.
  2. Constrói uma query SQL textual (SPSELECTPORCLIENTE) que seleciona contratos, juntando com TAB_Tipo_Contrato e TAB_Contrato (para contrato mãe), filtrando por cliente, apelido, filial gestora não nula, empresa e contrato mãe não nulo.
  3. Opcionalmente, adiciona filtro por tipo de contrato.
  4. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  5. Executa a query usando DataAccessLayer.ExecuteReader.
  6. Itera sobre o IDataReader e adiciona o ID do contrato e a descrição formatada ao dicionário.
  7. Retorna o dicionário.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @idf_cliente: int, ID do cliente.
  • @Valor: varchar(200), texto para pesquisa no apelido.
  • @Count: int, número máximo de registros.
  • @Idf_Empresa: int, ID da empresa.
  • @Tipo: varchar(200)?, tipo de contrato (opcional).
  • Validações: Nenhuma explícita.

ListarPorClienteModal(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, int idCliente, out int totalRegistros, int Idf_Empresa)

  • Lógica: Lista contratos para um modal de cliente, com paginação e ordenação.
  1. Calcula inicio e fim para a paginação.
  2. Constrói uma query SQL textual (SPSELECTPAG) que seleciona contratos, incluindo uma descrição formatada (DescContratoModal), e aplica filtros por cliente, contrato mãe não nulo, filial gestora não nula e empresa.
  3. Constrói SPSELECTCOUNT para contar o total de registros.
  4. Executa SPSELECTCOUNT para obter totalRegistros.
  5. Executa SPSELECTPAG e retorna o IDataReader.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL: Nenhum parâmetro explícito, mas a query é construída com base nos argumentos do método.
  • Validações: Nenhuma explícita.

ListarContratoUsuarioEmpresaPorCodNomeParcial(int idUsuario, int idEmpresa, string valor, int numeroRegistros, int? tipoContrato)

  • Lógica: Lista contratos por usuário, empresa e código/nome parcial.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Executa a query SPSELECTCODNOME2 (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTCODNOME2 (SQL textual: seleciona contratos, juntando com contrato mãe, filial e tipo de contrato, filtrando por permissão de usuário, texto de pesquisa no código/apelido, empresa e tipo de contrato).
  • Parâmetros SQL:
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Empresa: int, ID da empresa.
  • @Valor: varchar(70), texto para pesquisa.
  • @Numero_Registros: int, número máximo de registros.
  • @Tipo_Contrato: int?, tipo de contrato.
  • Validações: Nenhuma explícita.

ListarContratoUsuarioEmpresaFilialPorCodNomeParcial(int idUsuario, int idEmpresa, int idFilial, string valor, int numeroRegistros)

  • Lógica: Lista contratos por usuário, empresa, filial e código/nome parcial.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Constrói a query SPSELECTCODNOME4 (SQL textual) dinamicamente, adicionando filtros por empresa e filial se forem fornecidos.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTCODNOME4 (SQL textual: seleciona contratos, juntando com contrato mãe, filial e tipo de contrato, filtrando por permissão de usuário, texto de pesquisa no código/apelido, e opcionalmente por empresa e filial).
  • Parâmetros SQL:
  • @Idf_Usuario: int, ID do usuário.
  • @Valor: varchar(70), texto para pesquisa.
  • @Numero_Registros: int, número máximo de registros.
  • @Idf_Empresa: int, ID da empresa (opcional).
  • @Idf_Filial: int, ID da filial (opcional).
  • Validações: Nenhuma explícita.

ListarPorCodigo(int idUsuario, int idEmpresa, int idTipoContrato, int codigoContratoMae, int codigoContrato)

  • Lógica: Retorna um IDataReader com contratos que correspondem aos códigos e tipo fornecidos, considerando permissões do usuário.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Executa a query SPSELECTCONTRATOCODIGO (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTCONTRATOCODIGO (SQL textual: seleciona contratos, juntando com contrato mãe, filial e tipo de contrato, filtrando por código mãe, código filho, tipo de contrato, empresa e permissão de usuário (TAB_SF_Usuario_Acesso)).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • @Cod_Contrato_Mae: int, código do contrato mãe.
  • @Cod_Contrato: int, código do contrato.
  • @Idf_Usuario: int, ID do usuário.
  • Validações: Nenhuma explícita.

ListarPorID(int idEmpresa, int idTipoContrato, int idContratoMae, int idContrato)

  • Lógica: Retorna um IDataReader com contratos que correspondem aos IDs e tipo fornecidos.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Executa a query SPSELECTCONTRATOID (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTCONTRATOID (SQL textual: seleciona contratos, juntando com contrato mãe e tipo de contrato, filtrando por ID de contrato mãe, ID de contrato, tipo de contrato e empresa).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • @Idf_Contrato_Mae: int, ID do contrato mãe.
  • @Idf_Contrato: int, ID do contrato.
  • Validações: Nenhuma explícita.

ListarPorIdTipoECodMae(int idTipo, int codMae)

  • Lógica: Retorna um IDataReader com contratos que correspondem ao tipo e código do contrato mãe.
  1. Cria uma lista de SqlParameter para @Idf_Tipo_Contrato e @Cod_Contrato_Mae.
  2. Preenche os parâmetros.
  3. Executa a query LISTARPORTIPOECODMAE (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: LISTARPORTIPOECODMAE (SQL textual: seleciona contratos, juntando com contrato mãe, filtrando por inatividade, código do contrato mãe e tipo de contrato).
  • Parâmetros SQL:
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • @Cod_Contrato_Mae: int, código do contrato mãe.
  • Validações: Nenhuma explícita.

ListarPorApelidoParcial(string apelidoContrato)

  • Lógica: Retorna um IDataReader com contratos que correspondem a um apelido parcial.
  1. Cria uma lista de SqlParameter para @Ape_Contrato.
  2. Preenche o parâmetro.
  3. Executa a query LISTARPORAPELIDOPARCIAL (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: LISTARPORAPELIDOPARCIAL (SQL textual: seleciona contratos, juntando com contrato mãe, filtrando por inatividade e apelido parcial).
  • Parâmetros SQL:
  • @Ape_Contrato: varchar(250), apelido parcial do contrato.
  • Validações: Nenhuma explícita.

ListarPorIdTipoCodMaeCodFilho(int idTipoContrato, int codContratoMae, int codContratoFilho)

  • Lógica: Retorna um IDataReader com contratos que correspondem ao tipo, código do contrato mãe e código do contrato filho.
  1. Cria uma lista de SqlParameter para @Idf_Tipo_Contrato, @Cod_Contrato e @Cod_ContratoFilho.
  2. Preenche os parâmetros.
  3. Executa a query SELECTBYTIPOCODCODFILHO (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELECTBYTIPOCODCODFILHO (SQL textual: seleciona contratos, juntando com contrato mãe, filtrando por inatividade, tipo de contrato, código do contrato e código do contrato filho).
  • Parâmetros SQL:
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • @Cod_Contrato: int, código do contrato (mãe).
  • @Cod_ContratoFilho: int, código do contrato filho.
  • Validações: Nenhuma explícita.

ListarPorIdTipoCodMaeCodFilhoEmpresa(int idTipoContrato, int codContratoMae, int codContratoFilho, int idEmpresa)

  • Lógica: Retorna um IDataReader com contratos que correspondem ao tipo, código do contrato mãe, código do contrato filho e empresa.
  1. Cria uma lista de SqlParameter para @Idf_Tipo_Contrato, @Cod_Contrato, @Cod_ContratoFilho e @Idf_Empresa.
  2. Preenche os parâmetros.
  3. Executa a query SELECTBYTIPOCODCODFILHOEMPRESA (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELECTBYTIPOCODCODFILHOEMPRESA (SQL textual: seleciona contratos, juntando com contrato mãe, filtrando por inatividade, tipo de contrato, empresa, código do contrato e código do contrato filho).
  • Parâmetros SQL:
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • @Cod_Contrato: int, código do contrato (mãe).
  • @Cod_ContratoFilho: int, código do contrato filho.
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

ListarPorCodNomeParcial(string nomeColuna, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros, string codNomeContrato, int idEmpresa)

  • Lógica: Lista contratos paginados por código/nome parcial e empresa.
  1. Cria uma lista de SqlParameter para @SortExpression, @Raz_Social, @Cod_Contrato e @Idf_Empresa.
  2. Preenche os parâmetros, tratando codNomeContrato como texto ou número.
  3. Calcula inicio e fim para a paginação.
  4. Constrói uma query SQL textual (SPSELECTPAG) que seleciona contratos, juntando com cliente e filial, filtrando por empresa e, opcionalmente, por razão social ou código do contrato.
  5. Constrói SPSELECTCOUNT para contar o total de registros.
  6. Executa SPSELECTCOUNT para obter totalRegistros.
  7. Executa SPSELECTPAG e retorna o IDataReader.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @SortExpression: varchar(50), expressão de ordenação.
  • @Raz_Social: varchar(60)?, razão social para pesquisa.
  • @Cod_Contrato: int?, código do contrato para pesquisa.
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

ListarPaginacao(int? idTipoContrato, bool buscarContratoFilho, bool buscarContratoMae, string text, string nomeColuna, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, int idEmpresaLogada, out int totalRegistros)

  • Lógica: Lista contratos paginados com filtros de tipo, busca por filho/mãe e texto.
  1. Inicializa totalRegistros como 0.
  2. Calcula FirstRec e LastRec para a paginação.
  3. Ajusta nomeColuna para incluir a direção de ordenação.
  4. Constrói uma query SQL textual (iSelect) que seleciona contratos, juntando com tipo de contrato, contrato mãe, cliente, pessoa física e filial, aplicando filtros de empresa, tipo de contrato, busca por contrato filho/mãe e pesquisa textual em vários campos (código formatado, apelido, CPF, RG, nome da pessoa, CNPJ/CEI, razão social, apelido da filial, descrição do tipo de contrato).
  5. Constrói iSelectCount e iSelectPag com base em iSelect.
  6. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  7. Executa iSelectCount para obter totalRegistros.
  8. Executa iSelectPag e retorna o DataTable.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @idTipoContrato: int?, ID do tipo de contrato.
  • @text: varchar(100), texto para pesquisa.
  • @buscarContratoFilho: bit, flag para buscar contratos filho.
  • @buscarContratoMae: bit, flag para buscar contratos mãe.
  • @Idf_Empresa: int, ID da empresa logada.
  • Validações: Nenhuma explícita.

ListarPaginacao(string colunaOrdenacao, string direcaoOrdenacao, string expressao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)

  • Lógica: Lista contratos paginados com uma expressão SQL customizada.
  1. Cria uma lista de SqlParameter para @CurrentPage, @PageSize, @SortExpression e @WhereExpression.
  2. Preenche os parâmetros com os valores fornecidos.
  3. Executa a query SplistarCONTRATOPAGINACAO (SQL textual) usando DataAccessLayer.ExecuteReader.
  4. Lê a primeira linha do IDataReader para obter totalRegistros.
  5. Avança para o próximo conjunto de resultados e retorna o IDataReader.
  • Stored Procedures chamadas: SplistarCONTRATOPAGINACAO (SQL textual: uma SP dinâmica que constrói queries de contagem e paginação com base em uma expressão WHERE fornecida).
  • Parâmetros SQL:
  • @CurrentPage: int, página atual.
  • @PageSize: int, tamanho da página.
  • @SortExpression: varchar(150), expressão de ordenação.
  • @WhereExpression: varchar(8000), expressão WHERE customizada.
  • Validações: Nenhuma explícita.

ListarCodNomeParcial2(int idTipoContrato, int codContrato, int codContratoFilho, string apelido)

  • Lógica: Lista contratos por tipo, código, código filho e apelido.
  1. Cria uma lista de SqlParameter para @Idf_Tipo_Contrato, @Cod_Contrato, @Cod_ContratoFilho e @Ape_Contrato.
  2. Preenche os parâmetros, tratando apelido como nullable.
  3. Executa a query SPSELECTCODNOME3 (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTCODNOME3 (SQL textual: seleciona contratos, juntando com contrato mãe, filtrando por inatividade, tipo de contrato, código do contrato (mãe/filho) e apelido parcial).
  • Parâmetros SQL:
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • @Cod_Contrato: int, código do contrato (mãe).
  • @Cod_ContratoFilho: int, código do contrato filho.
  • @Ape_Contrato: varchar(250)?, apelido parcial.
  • Validações: Nenhuma explícita.

ListarCodNomeParcial(int? idTipoContrato, int? codContrato, int idEmpresa, string apelido)

  • Lógica: Lista contratos por tipo, código, empresa e apelido.
  1. Cria uma lista de SqlParameter para @Idf_Tipo_Contrato, @Cod_Contrato, @Ape_Contrato e @Idf_Empresa.
  2. Preenche os parâmetros, tratando valores nulos.
  3. Executa a query SPSELECTCODNOME (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTCODNOME (SQL textual: seleciona contratos mãe por inatividade, código, apelido e tipo de contrato, ordenando por apelido).
  • Parâmetros SQL:
  • @Idf_Tipo_Contrato: int?, ID do tipo de contrato.
  • @Cod_Contrato: varchar(100)?, código do contrato.
  • @Ape_Contrato: varchar(250)?, apelido.
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

ListarCodNomeParcial(int? idTipoContrato, int? codContrato, int idEmpresa, string apelido, int numeroRegistros)

  • Lógica: Lista contratos por tipo, código, empresa, apelido e número de registros.
  1. Cria uma lista de SqlParameter para @Idf_Tipo_Contrato, @Cod_Contrato, @Ape_Contrato, @Idf_Empresa e @Numero_Registros.
  2. Constrói a query SPSELECTCODNOMENUMREG (SQL textual) dinamicamente, adicionando filtros por tipo de contrato e empresa.
  3. Preenche os parâmetros.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTCODNOMENUMREG (SQL textual: seleciona TOP (@Numero_Registros) de contratos mãe por inatividade, código e apelido).
  • Parâmetros SQL:
  • @Idf_Tipo_Contrato: int?, ID do tipo de contrato.
  • @Cod_Contrato: varchar(100)?, código do contrato.
  • @Ape_Contrato: varchar(250)?, apelido.
  • @Idf_Empresa: int, ID da empresa.
  • @Numero_Registros: int, número máximo de registros.
  • Validações: Nenhuma explícita.

ListarFilhosPorIdTipoCodMaeCodFilho(int? idTipoContrato, int? codContratoMae, int? codContratoFilho, string apelidoContrato)

  • Lógica: Lista contratos filhos para autocomplete.
  1. Cria uma lista de SqlParameter.
  2. Constrói a query SELECTCONTRATOFILHO (SQL textual) dinamicamente, adicionando filtros por tipo de contrato, código do contrato mãe, código do contrato filho e apelido.
  3. Preenche os parâmetros.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELECTCONTRATOFILHO (SQL textual: seleciona contratos filho, juntando com contrato mãe, e retorna o número do contrato formatado e o apelido).
  • Parâmetros SQL:
  • @Idf_Tipo_Contrato: int?, ID do tipo de contrato.
  • @Cod_Contrato_Mae: int?, código do contrato mãe.
  • @Cod_Contrato_Filho: int?, código do contrato filho.
  • @Apelido_Contrato_Filho: int?, apelido do contrato filho.
  • Validações: Nenhuma explícita.

ListarAFaturarPorContratos(string colunaOrdenacao, string direcaoOrdenacao, int? idTipoContrato, decimal? DocCliente, int? idContrato, int? idEmpresa)

  • Lógica: Lista contratos a serem faturados, com filtros de tipo de contrato, documento do cliente e ID do contrato.
  1. Cria uma lista de SqlParameter.
  2. Constrói a query SELECTGRIDFATURARPORCONTRATO (SQL textual) dinamicamente, adicionando filtros por tipo de contrato, documento do cliente e ID do contrato.
  3. Preenche os parâmetros.
  4. Adiciona ordenação à query.
  5. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELECTGRIDFATURARPORCONTRATO (SQL textual: seleciona pré-faturas distintas, juntando com contratos, clientes, pessoas físicas, filiais e tipos de contrato, filtrando por pré-faturas sem itens de fatura, sem departamento e não faturadas).
  • Parâmetros SQL:
  • @Idf_Tipo_Contrato: int?, ID do tipo de contrato.
  • @Doc_Cliente: decimal?, documento do cliente (CPF/CNPJ).
  • @idContrato: int?, ID do contrato.
  • @idEmpresa: int?, ID da empresa.
  • Validações: Nenhuma explícita.

ListarAFaturarPorCentroCusto(string colunaOrdenacao, string direcaoOrdenacao, int? idContrato)

  • Lógica: Lista contratos a serem faturados por centro de custo.
  1. Cria uma lista de SqlParameter.
  2. Constrói a query SELECTGRIDFATURARPORCENTROCUSTO (SQL textual) dinamicamente, adicionando filtro por ID do contrato.
  3. Preenche os parâmetros.
  4. Adiciona ordenação à query.
  5. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SELECTGRIDFATURARPORCENTROCUSTO (SQL textual: seleciona pré-faturas distintas, juntando com departamentos, contratos e faturas, filtrando por faturas não geradas).
  • Parâmetros SQL:
  • @Idf_Contrato: int?, ID do contrato.
  • Validações: Nenhuma explícita.

Listar()

  • Lógica: Retorna um IDataReader com todos os registros da tabela TAB_Contrato.
  1. Executa a query SPSELECTCONTRATOTODOS (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTCONTRATOTODOS (SQL textual: seleciona ID, tipo, código, apelido, ID mãe e filial gestora de todos os contratos).
  • Validações: Nenhuma explícita.

ListarIdContratoFilhoPorContratoMae(int pIdEmrpesa, int pIdContratoMae, int pIdUsuario)

  • Lógica: Lista os IDs dos contratos filhos de um contrato mãe, considerando permissões do usuário.
  1. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Contrato e @Idf_Usuario.
  2. Preenche os parâmetros.
  3. Constrói uma query SQL textual que seleciona Idf_Contrato de TAB_Contrato, filtrando por inatividade, empresa, contrato mãe e permissão de usuário (TAB_SF_Usuario_Acesso).
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  5. Itera sobre o IDataReader e adiciona os IDs à lista.
  6. Retorna a lista de IDs.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual e a função TAB_SF_Usuario_Acesso.
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Contrato: int, ID do contrato mãe.
  • @Idf_Usuario: int, ID do usuário.
  • Validações: Nenhuma explícita.

RecuperaPorEmpresa(int Idf_Empresa)

  • Lógica: Recupera o ID do contrato de uma empresa.
  1. Cria uma lista de SqlParameter para @Idf_Empresa e preenche com o ID da empresa.
  2. Executa a query SPCARREGARPOREMPRESA (SQL textual) usando DataAccessLayer.ExecuteScalar.
  • Stored Procedures chamadas: SPCARREGARPOREMPRESA (SQL textual: seleciona o TOP 1 Idf_Contrato de TAB_Contrato filtrando por empresa).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

CarregarAutoComplete(int pIdEmpresa, int pIdUsuario, int pIdTipoContrato, int? pCodigoContratoMae, int pCodigoContratoFilho, string pApelido, bool pFiltrarPorUsuarioLogado, out Contrato pObjContrato)

  • Lógica: Carrega um objeto Contrato a partir dos parâmetros de autocomplete.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Executa a query SPCARREGARAUTOCOMPLETE (SQL textual) usando DataAccessLayer.ExecuteReader.
  3. Cria uma nova instância de Contrato.
  4. Chama SetInstance(iDr, pObjContrato) para preencher a instância.
  5. Se SetInstance retornar true, retorna true; caso contrário, define pObjContrato como null e retorna false.
  • Stored Procedures chamadas: SPCARREGARAUTOCOMPLETE (SQL textual: seleciona todos os campos de TAB_Contrato, juntando com contrato mãe e tipo de contrato, aplicando filtros de empresa, permissão de usuário, tipo de contrato, código de contrato filho, código de contrato mãe e apelido).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • @Cod_Contrato_Mae: int?, código do contrato mãe.
  • @Cod_Contrato_Filho: int, código do contrato filho.
  • @Ape_Contrato: varchar(250), apelido do contrato.
  • @Flg_Filtrar_Por_Usuario_Logado: bit, flag para filtrar por usuário logado.
  • Validações: Nenhuma explícita.

CarregarAutoComplete(int pIdEmpresa, int pIdUsuario, int pIdTipoContrato, int? pCodigoContratoMae, int pCodigoContratoFilho, bool pFiltrarPorUsuarioLogado, out Contrato pObjContrato)

  • Lógica: Similar ao método anterior, mas sem o parâmetro pApelido e utilizando a query SPCARREGARAUTOCOMPLETE2.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Executa a query SPCARREGARAUTOCOMPLETE2 (SQL textual) usando DataAccessLayer.ExecuteReader.
  3. Cria uma nova instância de Contrato.
  4. Chama SetInstance(iDr, pObjContrato) para preencher a instância.
  5. Se SetInstance retornar true, retorna true; caso contrário, define pObjContrato como null e retorna false.
  • Stored Procedures chamadas: SPCARREGARAUTOCOMPLETE2 (SQL textual: seleciona todos os campos de TAB_Contrato, juntando com contrato mãe e tipo de contrato, aplicando filtros de inatividade, empresa, permissão de usuário, tipo de contrato, código de contrato filho e código de contrato mãe).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • @Cod_Contrato_Mae: int?, código do contrato mãe.
  • @Cod_Contrato_Filho: int, código do contrato filho.
  • @Flg_Filtrar_Por_Usuario_Logado: bit, flag para filtrar por usuário logado.
  • Validações: Nenhuma explícita.

CarregarMaePorTipoECodigo(int idTipo, int codContrato, out Contrato objContrato)

  • Lógica: Carrega um contrato mãe por tipo e código.
  1. Chama ListarMaePorTipoECodigo para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(idr, objContrato) para preencher a instância.
  4. Retorna o resultado de SetInstance.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarMaePorTipoECodigo.
  • Validações: Nenhuma explícita.

CarregarPorIdTipoCodMaeCodFilho(int idTipoContrato, int codContratoMae, int codContratoFilho, out Contrato objContratoFilho)

  • Lógica: (Obsoleto) Carrega um contrato filho por tipo, código mãe e código filho.
  1. Chama ListarPorIdTipoCodMaeCodFilho para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContratoFilho) para preencher a instância.
  4. Se SetInstance retornar true, retorna true; caso contrário, define objContratoFilho como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorIdTipoCodMaeCodFilho.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Este método é marcado como obsoleto, sugerindo o uso da versão que inclui IdEmpresa.

CarregarPorIdTipoCodMaeCodFilho(int idTipoContrato, int codContratoMae, int codContratoFilho, int idEmpresa, out Contrato objContratoFilho)

  • Lógica: Carrega um contrato filho por tipo, código mãe, código filho e empresa.
  1. Chama ListarPorIdTipoCodMaeCodFilhoEmpresa para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContratoFilho) para preencher a instância.
  4. Se SetInstance retornar true, retorna true; caso contrário, define objContratoFilho como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorIdTipoCodMaeCodFilhoEmpresa.
  • Validações: Nenhuma explícita.

CarregarMaePorEmpresaTipo(int idEmpresa, int idTipo, out Contrato objContrato)

  • Lógica: Preenche um contrato mãe por empresa e tipo.
  1. Chama ListarMaePorEmpresaTipo para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato) para preencher a instância.
  4. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarMaePorEmpresaTipo.
  • Validações: Nenhuma explícita.

CarregarMaePorEmpresaTipo(int idEmpresa, int idTipo, out Contrato objContrato, SqlTransaction trans)

  • Lógica: Similar ao método anterior, mas utiliza uma transação SQL existente.
  1. Chama ListarMaePorEmpresaTipo (com transação) para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato) para preencher a instância.
  4. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarMaePorEmpresaTipo.
  • Validações: Nenhuma explícita.

CarregarPorFilialNaoPrestadora(int idFilial, out Contrato objContrato)

  • Lógica: Carrega um contrato de filial não prestadora.
  1. Chama ListarPorFilialNaoPrestadora para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato) para preencher a instância.
  4. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorFilialNaoPrestadora.
  • Validações: Nenhuma explícita.

CarregarContratoFilialNaoPrestadora(int idFilial, out Contrato objContrato)

  • Lógica: Carrega um contrato de filial não prestadora.
  1. Chama ListarPorFilialNaoPrestadora para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato) para preencher a instância.
  4. Fecha o IDataReader.
  5. Se SetInstance retornou false, define objContrato como null.
  6. Retorna o resultado de SetInstance.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorFilialNaoPrestadora.
  • Validações: Nenhuma explícita.

CarregarPorFilialPrestadora(int idFilial, out Contrato objContrato)

  • Lógica: Carrega um contrato de filial prestadora.
  1. Chama ListarPorFilialPrestadora para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato) para preencher a instância.
  4. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorFilialPrestadora.
  • Validações: Nenhuma explícita.

CarregarPorCodigo(int pIdUsuario, int pIdEmpresa, string pCodigoContrato, out Contrato objContrato)

  • Lógica: Carrega um contrato por código e empresa, considerando permissões do usuário.
  1. Inicializa objContrato como null.
  2. Cria uma lista de SqlParameter para @Idf_Usuario, @Idf_Empresa e @Codigo_Contrato.
  3. Preenche os parâmetros, trimando pCodigoContrato.
  4. Executa a query SELCONTRATOPORUSUARIOEMPRESACODIGO (SQL textual) usando DataAccessLayer.ExecuteReader.
  5. Cria uma nova instância de Contrato.
  6. Chama SetInstance(dr, objContrato) para preencher a instância.
  7. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: SELCONTRATOPORUSUARIOEMPRESACODIGO (SQL textual: seleciona contratos, juntando com V_COD_CONTRATO, filtrando por empresa, código do contrato e permissão de usuário (TAB_SF_Usuario_Acesso)).
  • Parâmetros SQL:
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Empresa: int, ID da empresa.
  • @Codigo_Contrato: varchar, código do contrato (trimado).
  • Validações: Nenhuma explícita.

CarregarPorCodigo(SqlTransaction pTrans, int pIdUsuario, int pIdEmpresa, string pCodigoContrato, out Contrato objContrato)

  • Lógica: Similar ao método anterior, mas utiliza uma transação SQL existente.
  1. Inicializa objContrato como null.
  2. Cria uma lista de SqlParameter para @Idf_Usuario, @Idf_Empresa e @Codigo_Contrato.
  3. Preenche os parâmetros, trimando pCodigoContrato.
  4. Executa a query SELCONTRATOPORUSUARIOEMPRESACODIGO (SQL textual) usando DataAccessLayer.ExecuteReader com a transação fornecida.
  5. Cria uma nova instância de Contrato.
  6. Chama SetInstance(dr, objContrato) para preencher a instância.
  7. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: SELCONTRATOPORUSUARIOEMPRESACODIGO (SQL textual).
  • Parâmetros SQL:
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Empresa: int, ID da empresa.
  • @Codigo_Contrato: varchar, código do contrato (trimado).
  • Validações: Nenhuma explícita.

CarregarPorCodigo(int idUsuario, int idEmpresa, int idTipoContrato, int codigoContratoMae, int codigoContrato, out Contrato objContrato)

  • Lógica: Carrega um contrato por código, tipo, código mãe e empresa, considerando permissões.
  1. Chama ListarPorCodigo para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato) para preencher a instância.
  4. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorCodigo.
  • Validações: Nenhuma explícita.

CarregarPorCodigo(int idEmpresa, int idTipoContrato, int codigoContratoMae, int codigoContrato, out Contrato objContrato)

  • Lógica: (Obsoleto) Carrega um contrato por código, tipo, código mãe e empresa (sem considerar permissões de usuário).
  1. Define objContrato como null e retorna false. Este método é marcado como obsoleto e não implementa a lógica de carregamento.
  • Stored Procedures chamadas: Nenhuma.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Este método é obsoleto e não deve ser usado.

CarregarPorID(int idEmpresa, int idTipoContrato, int idContratoMae, int idContrato, out Contrato objContrato)

  • Lógica: Carrega um contrato por ID, tipo, ID mãe e empresa.
  1. Chama ListarPorID para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato) para preencher a instância.
  4. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorID.
  • Validações: Nenhuma explícita.

CarregarPorUsuarioEmpresa(int idEmpresa, int idUsuarioLogado, int idTipoContrato, int codigoContratoMae, int codigoContrato, string apelido, out Contrato objContrato)

  • Lógica: Carrega um contrato por usuário, empresa, tipo, códigos e apelido.
  1. Chama ListarPorUsuarioEmpresa para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato) para preencher a instância.
  4. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorUsuarioEmpresa.
  • Validações: Nenhuma explícita.

CarregarPorUsuarioEmpresaFilial(int idEmpresa, int idFilial, int idUsuarioLogado, int idTipoContrato, int codigoContratoMae, int codigoContrato, string apelido, out Contrato objContrato)

  • Lógica: Carrega um contrato por usuário, empresa, filial, tipo, códigos e apelido.
  1. Chama ListarPorUsuarioEmpresa (versão com idFilial) para obter um IDataReader.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance(dr, objContrato) para preencher a instância.
  4. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Chama ListarPorUsuarioEmpresa.
  • Validações: Nenhuma explícita.

ListarPorUsuarioEmpresa(int idFilial, int idEmpresa, int idUsuario, int idTipoContrato, int codigoContratoMae, int codigoContrato, string apelido)

  • Lógica: Retorna um IDataReader com contratos por filial, empresa, usuário, tipo, códigos e apelido.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Constrói a query SPSELECTCONTRATOUSUARIOEMPRESAFILIAL (SQL textual) dinamicamente, adicionando filtros por empresa e filial se forem fornecidos.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTCONTRATOUSUARIOEMPRESAFILIAL (SQL textual: seleciona contratos, juntando com contrato mãe, filial e tipo de contrato, filtrando por permissão de usuário, código de contrato, tipo de contrato, código de contrato mãe e apelido, e opcionalmente por empresa e filial).
  • Parâmetros SQL:
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • @Cod_Contrato_Mae: int, código do contrato mãe.
  • @Cod_Contrato: int, código do contrato.
  • @Idf_Usuario: int, ID do usuário.
  • @Ape_Contrato: varchar(250), apelido.
  • @Idf_Empresa: int, ID da empresa (opcional).
  • @Idf_Filial: int, ID da filial (opcional).
  • Validações: Nenhuma explícita.

ListarPorUsuarioEmpresa(int idEmpresa, int idUsuario, int idTipoContrato, int codigoContratoMae, int? codigoContrato, string apelido)

  • Lógica: Retorna um IDataReader com contratos por empresa, usuário, tipo, códigos e apelido.
  1. Cria uma lista de SqlParameter e preenche com os parâmetros de entrada.
  2. Executa a query SPSELECTCONTRATOUSUARIOEMPRESA (SQL textual) usando DataAccessLayer.ExecuteReader.
  • Stored Procedures chamadas: SPSELECTCONTRATOUSUARIOEMPRESA (SQL textual: seleciona contratos, juntando com contrato mãe, filial e tipo de contrato, filtrando por inatividade, código de contrato, tipo de contrato, empresa e permissão de usuário, e opcionalmente por código de contrato mãe).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • @Cod_Contrato_Mae: int, código do contrato mãe.
  • @Cod_Contrato: int?, código do contrato.
  • @Idf_Usuario: int, ID do usuário.
  • @Ape_Contrato: varchar(250), apelido.
  • Validações: Nenhuma explícita.

ListarPorUsuarioEmpresa(int idUsuario, int idEmpresa)

  • Lógica: Lista os IDs dos contratos aos quais um usuário tem acesso em uma empresa.
  1. Cria uma lista vazia de int.
  2. Cria uma lista de SqlParameter para @Idf_Usuario e @Idf_Empresa.
  3. Preenche os parâmetros.
  4. Executa a query SplistarPORUSUARIOEMPRESA (SQL textual) usando DataAccessLayer.ExecuteReader.
  5. Itera sobre o IDataReader e adiciona os IDs à lista.
  6. Retorna a lista de IDs.
  • Stored Procedures chamadas: SplistarPORUSUARIOEMPRESA (SQL textual: seleciona IDs de contrato, juntando com filial, empresa, grupo econômico, filtrando por empresa e permissão de usuário).
  • Parâmetros SQL:
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Empresa: int, ID da empresa.
  • Validações: Nenhuma explícita.

CarregarPorApelido(string apelido, out Contrato objContrato)

  • Lógica: Carrega um contrato por apelido.
  1. Cria uma lista de SqlParameter para @Ape_Contrato.
  2. Preenche o parâmetro.
  3. Executa uma query SQL textual (SELECT TOP 1 * FROM TAB_Contrato WHERE Ape_Contrato = @Ape_Contrato AND Flg_Inativo = 0) usando DataAccessLayer.ExecuteReader.
  4. Cria uma nova instância de Contrato.
  5. Chama SetInstance(dr, objContrato) para preencher a instância.
  6. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @Ape_Contrato: varchar(250), apelido.
  • Validações: Nenhuma explícita.

CarregarPorApelido(string apelido, int idFilial, out Contrato objContrato)

  • Lógica: (Obsoleto) Carrega um contrato por apelido e filial.
  1. Constrói uma query SQL textual (SELECT TOP 1 * FROM TAB_Contrato WHERE Ape_Contrato = @Ape_Contrato AND Idf_Filial_Gestora = @idFilial AND Flg_Inativo = 0).
  2. Cria uma lista de SqlParameter para @Ape_Contrato e @idFilial.
  3. Preenche os parâmetros.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  5. Cria uma nova instância de Contrato.
  6. Chama SetInstance(dr, objContrato) para preencher a instância.
  7. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @Ape_Contrato: varchar(250), apelido.
  • @idFilial: varchar(50), ID da filial.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Este método é obsoleto, pois pode não retornar o contrato correto se houver múltiplos contratos com o mesmo apelido em diferentes tipos de contrato.

CarregarPorApelido(int idfTipoContrato, string apelido, int idFilial, out Contrato objContrato)

  • Lógica: Carrega um contrato por tipo, apelido e filial.
  1. Constrói uma query SQL textual (SELECT * FROM TAB_Contrato WHERE Ape_Contrato = @Ape_Contrato AND Idf_Tipo_Contrato = @Idf_Tipo_Contrato AND Idf_Filial_Gestora = @Idf_Filial AND Flg_Inativo = 0).
  2. Cria uma lista de SqlParameter para @Ape_Contrato, @Idf_Filial e @Idf_Tipo_Contrato.
  3. Preenche os parâmetros.
  4. Executa a query usando DataAccessLayer.ExecuteReader.
  5. Cria uma nova instância de Contrato.
  6. Chama SetInstance(dr, objContrato) para preencher a instância.
  7. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @Ape_Contrato: varchar(250), apelido.
  • @Idf_Filial: int, ID da filial.
  • @Idf_Tipo_Contrato: int, ID do tipo de contrato.
  • Validações: Nenhuma explícita.

CarregarPorEmpresa_CodigoContrato(int idEmpresa, int idTipoContrato, int codContrato, int? codContratoMae, out Contrato objContrato)

  • Lógica: Carrega um contrato por empresa, tipo, código e código mãe.
  1. Constrói uma query SQL textual dinamicamente, juntando TAB_Contrato com TAB_Contrato (para contrato mãe), e aplicando filtros de inatividade, tipo de contrato, empresa, código do contrato e, opcionalmente, código do contrato mãe.
  2. Executa a query usando DataAccessLayer.ExecuteReader.
  3. Cria uma nova instância de Contrato.
  4. Chama SetInstance(dr, objContrato) para preencher a instância.
  5. Se SetInstance retornar true, retorna true; caso contrário, define objContrato como null e retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL: Nenhum parâmetro explícito, mas a query é construída com base nos argumentos do método.
  • Validações: Nenhuma explícita.

CarregarPorTipoContratoCodigo(int idEmpresa, int idTipoContrato, int codContrato)

  • Lógica: Carrega um contrato por empresa, tipo e código.
  1. Constrói uma query SQL textual dinamicamente, selecionando todos os campos de TAB_Contrato, e aplicando filtros de tipo de contrato, empresa, código do contrato, contrato mãe nulo e inatividade.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance para preencher a instância com os dados do IDataReader retornado pela execução da query.
  4. Retorna a instância de Contrato.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL: Nenhum parâmetro explícito, mas a query é construída com base nos argumentos do método.
  • Validações: Nenhuma explícita.

CarregarPorTipoContratoCodigo(int idTipoContrato, int codContrato)

  • Lógica: (Obsoleto) Carrega um contrato por tipo e código (sem considerar a empresa).
  1. Constrói uma query SQL textual dinamicamente, selecionando todos os campos de TAB_Contrato, e aplicando filtros de tipo de contrato, código do contrato, contrato mãe nulo e inatividade.
  2. Cria uma nova instância de Contrato.
  3. Chama SetInstance para preencher a instância com os dados do IDataReader retornado pela execução da query.
  4. Retorna a instância de Contrato.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual construído dinamicamente.
  • Parâmetros SQL: Nenhum parâmetro explícito, mas a query é construída com base nos argumentos do método.
  • Validações: Nenhuma explícita.
  • Regras de negócio: Este método é obsoleto, sugerindo o uso da versão que inclui idEmpresa.

CarregarContratosFilho(int pIdContratoMae, Enumeradores.TipoCliente pTipoCliente, string pColunaOrdenacao, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int totalRegistros)

  • Lógica: Carrega contratos filho de forma paginada, filtrando por tipo de cliente.
  1. Inicializa totalRegistros como 0.
  2. Calcula inicio e fim para a paginação.
  3. Cria uma lista de SqlParameter para @Idf_Contrato e preenche com o ID do contrato mãe.
  4. Seleciona a query SQL (SPSELECTFILHOPORCONTRATOMAEPESSOAFISICA ou SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA) com base no pTipoCliente.
  5. Constrói SPSELECTCOUNT e SPSELECTPAG com base na query selecionada, adicionando ROW_NUMBER() para ordenação e paginação.
  6. Executa SPSELECTCOUNT para obter totalRegistros.
  7. Executa SPSELECTPAG e retorna o DataTable.
  • Stored Procedures chamadas:
  • SPSELECTFILHOPORCONTRATOMAEPESSOAFISICA (SQL textual: seleciona contratos filho de pessoa física, juntando com cliente e pessoa física, filtrando por contrato mãe).
  • SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual: seleciona contratos filho de pessoa jurídica, juntando com cliente e filial, filtrando por contrato mãe).
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do contrato mãe.
  • Validações: Nenhuma explícita.

CarregarContratosFilho(int idContratoMae)

  • Lógica: Carrega todos os contratos filho de um contrato mãe.
  1. Cria uma lista de SqlParameter para @Idf_Contrato e preenche com o ID do contrato mãe.
  2. Executa a query SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual) usando DataAccessLayer.ExecuteReaderDs.
  • Stored Procedures chamadas: SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual).
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do contrato mãe.
  • Validações: Nenhuma explícita.

CarregarContratosFilho(int idContratoMae, SqlTransaction trans)

  • Lógica: Similar ao método anterior, mas utiliza uma transação SQL existente.
  1. Cria uma lista de SqlParameter para @Idf_Contrato e preenche com o ID do contrato mãe.
  2. Executa a query SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual) usando DataAccessLayer.ExecuteReaderDs com a transação fornecida.
  • Stored Procedures chamadas: SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual).
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do contrato mãe.
  • Validações: Nenhuma explícita.

CarregarContratosFilhoList(int idEmpresa, int idUsuario, int idContratoMae, SqlTransaction trans)

  • Lógica: Carrega uma lista de IDs de contratos filho de um contrato mãe, considerando permissões do usuário.
  1. Cria uma lista de SqlParameter para @Idf_Empresa, @Idf_Usuario e @Idf_Contrato_Mae.
  2. Preenche os parâmetros.
  3. Cria uma lista vazia de int.
  4. Executa a query SELECTFILHOSPORCONTRATOMAEATIVOSPERMITIDOS (SQL textual) usando DataAccessLayer.ExecuteReader com a transação fornecida.
  5. Itera sobre o IDataReader e adiciona os IDs à lista.
  6. Retorna a lista de IDs.
  • Stored Procedures chamadas: SELECTFILHOSPORCONTRATOMAEATIVOSPERMITIDOS (SQL textual: seleciona contratos filho, juntando com contrato mãe, filial e tipo de contrato, filtrando por inatividade, ID de contrato mãe e permissão de usuário (TAB_SF_Usuario_Acesso)).
  • Parâmetros SQL:
  • @Idf_Empresa: int, ID da empresa.
  • @Idf_Usuario: int, ID do usuário.
  • @Idf_Contrato_Mae: int, ID do contrato mãe.
  • Validações: Nenhuma explícita.

CarregarContratosFilhoList(int idContratoMae)

  • Lógica: Carrega uma lista de IDs de contratos filho de um contrato mãe.
  1. Cria uma lista de SqlParameter para @Idf_Contrato e preenche com o ID do contrato mãe.
  2. Cria uma lista vazia de int.
  3. Executa a query SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual) usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader e adiciona os IDs à lista.
  5. Se a lista tiver elementos, retorna-a; caso contrário, retorna null.
  • Stored Procedures chamadas: SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual).
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do contrato mãe.
  • Validações: Nenhuma explícita.

CarregarContratosFilhoList(int idContratoMae, SqlTransaction trans)

  • Lógica: Similar ao método anterior, mas utiliza uma transação SQL existente.
  1. Cria uma lista de SqlParameter para @Idf_Contrato e preenche com o ID do contrato mãe.
  2. Cria uma lista vazia de int.
  3. Executa a query SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual) usando DataAccessLayer.ExecuteReader com a transação fornecida.
  4. Itera sobre o IDataReader e adiciona os IDs à lista.
  5. Se a lista tiver elementos, retorna-a; caso contrário, retorna null.
  • Stored Procedures chamadas: SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual).
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do contrato mãe.
  • Validações: Nenhuma explícita.

CarregarContratosFilho(int idContratoMae, string orderby)

  • Lógica: Carrega contratos filho de um contrato mãe com ordenação.
  1. Cria uma lista de SqlParameter para @Idf_Contrato e preenche com o ID do contrato mãe.
  2. Constrói a query SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual) e adiciona a cláusula ORDER BY.
  3. Executa a query usando DataAccessLayer.ExecuteReaderDs.
  • Stored Procedures chamadas: SPSELECTFILHOPORCONTRATOMAEPESSOAJURIDICA (SQL textual).
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do contrato mãe.
  • Validações: Nenhuma explícita.

RecuperarIdFilialGestoraPorIdContrato(Int32 IdContrato)

  • Lógica: Recupera o ID da filial gestora de um contrato.
  1. Define uma query SQL textual (SELECT Idf_Filial_Gestora FROM TAB_Contrato WHERE Idf_Contrato = @Idf_Contrato ).
  2. Cria uma lista de SqlParameter para @Idf_Contrato e preenche com o ID do contrato.
  3. Executa a query usando DataAccessLayer.ExecuteReader.
  4. Se houver uma linha e o valor não for DBNull.Value, retorna o ID da filial gestora.
  5. Caso contrário, retorna null.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @Idf_Contrato: int, ID do contrato.
  • Validações: Nenhuma explícita.

CarregarPorFilial(int IdFilial)

  • Lógica: Carrega uma lista de IDs de contratos de uma filial.
  1. Cria uma lista vazia de int.
  2. Cria uma lista de SqlParameter para @Idf_Filial e preenche com o ID da filial.
  3. Executa a query SplistarCONTRATOPORFILIAL (SQL textual) usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader e adiciona os IDs à lista.
  5. Retorna a lista de IDs.
  • Stored Procedures chamadas: SplistarCONTRATOPORFILIAL (SQL textual: seleciona contratos, juntando com cliente e filial, filtrando por filial e clientes ativos).
  • Parâmetros SQL:
  • @Idf_Filial: int, ID da filial.
  • Validações: Nenhuma explícita.

CarregarContratosFilhoPorFilial(int IdFilial)

  • Lógica: Carrega uma lista de IDs de contratos filho de uma filial.
  1. Cria uma lista vazia de int.
  2. Cria uma lista de SqlParameter para @Idf_Filial e preenche com o ID da filial.
  3. Executa a query SplistarCONTRATOSFILHOSPORFILIAL (SQL textual) usando DataAccessLayer.ExecuteReader.
  4. Itera sobre o IDataReader e adiciona os IDs à lista.
  5. Retorna a lista de IDs.
  • Stored Procedures chamadas: SplistarCONTRATOSFILHOSPORFILIAL (SQL textual: seleciona contratos, filtrando por filial gestora, inatividade e contrato mãe não nulo).
  • Parâmetros SQL:
  • @Idf_Filial: int, ID da filial.
  • Validações: Nenhuma explícita.

CarregarContratoFilhoPorEmpresa(Empresa objEmpresa, TipoContrato objTipoContrato, out Contrato objContrato, Empresa objEmpresaPrestadora, SqlTransaction trans)

  • Lógica: Carrega um contrato filho por empresa, tipo de contrato e empresa prestadora.
  1. Constrói uma query SQL textual que seleciona contratos, juntando com filial e cliente, filtrando por CNPJ da filial, contrato mãe não nulo, tipo de contrato, empresa prestadora e data de término maior ou igual à data atual.
  2. Cria uma lista de SqlParameter para @NUM_CNPJ, @IDF_TIPO_CONTRATO e @IDF_EMPRESA_PRESTADORA.
  3. Preenche os parâmetros.
  4. Executa a query usando DataAccessLayer.ExecuteReader com a transação fornecida.
  5. Cria uma nova instância de Contrato.
  6. Chama SetInstance(dr, objContrato) para preencher a instância.
  7. Se SetInstance retornar true, retorna true; caso contrário, retorna false.
  • Stored Procedures chamadas: Nenhuma diretamente. Utiliza SQL textual.
  • Parâmetros SQL:
  • @NUM_CNPJ: decimal(14), CNPJ da empresa.
  • @IDF_TIPO_CONTRATO: int, ID do tipo de contrato.
  • @IDF_EMPRESA_PRESTADORA: int, ID da empresa prestadora.
  • Validações: Nenhuma explícita.

RecuperarContratoPorTextoAutoComplete(string strTxtContrato, out Contrato objContrato)

  • Lógica: Recupera um contrato a partir do texto de um autocomplete.
  1. Divide a string

📌 Status: Concluído 👤 Responsável: Equipe de QA

Digite para pesquisar...

Scroll para zoom · Esc para fechar

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