🛠️ Documentação Técnica: Cadastrar Serviços de Campo
[!NOTE] Documentação Gerada Automaticamente As informações técnicas, regras de negócio e fluxos abaixo devem ser preenchidos após a análise do código-fonte.
A análise dos arquivos foi concluída. A classe NomeCentroServico não teve um arquivo de definição encontrado, o que é esperado, pois ela é usada apenas para chamar o método ToLower() em uma string, não sendo uma BLL ou entidade de domínio.
Aqui está a documentação base da tela ServicoCampoCadastro.aspx:
Documentação Base — C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.WebFoPag\ServicoCampoCadastro.aspx
1. Visão Geral
A tela “Cadastro de Serviços de Campo” permite o registro e gerenciamento de serviços de campo, que podem ser de dois tipos: “Atividade” ou “Ocorrência”. Ela suporta a criação de serviços de campo superiores (macros) e seus respectivos serviços de campo filhos (micros). A tela também gerencia a permissão de avaliação, tipo de avaliação, percentual de avaliação, número de ordem, utilização de BAG, utilização de área cultivada, solicitação de observação, desconto de bônus, divisão de bônus, recebimento de hora in itinere e necessidade de aprovação. Além disso, a tela exibe uma listagem paginada e pesquisável dos serviços de campo já cadastrados, com opções de edição e exclusão.
2. Tipos/Modalidades
A tela possui as seguintes variações de comportamento:
- Modo de Operação (Cadastro/Edição): A tela pode ser utilizada para cadastrar um novo serviço de campo ou editar um serviço de campo existente, dependendo se o
IdServicoCampoestá preenchido. - Tipo de Serviço (Atividade/Ocorrência): O campo “Tipo Serviço” define se o serviço de campo é uma “Atividade” ou uma “Ocorrência”, impactando a visibilidade e habilitação de outros campos como “Solicitar Observação”, “Descontar Bônus” e “Divisão Bônus”.
- Permite Avaliação (Sim/Não): O campo “Permite Avaliação” controla a visibilidade e obrigatoriedade dos campos “Tipo Avaliação”, “Número Ordem Cálculo Avaliação” e “Percentual Avaliação”.
- Serviço de Campo Superior (Macro/Micro): A lógica de alguns campos, como “Número Ordem Cálculo Avaliação”, “Percentual Avaliação”, “Utiliza BAG” e “Utiliza Área Cultivada”, muda se o serviço de campo é um serviço superior (macro) ou um serviço filho (micro).
- Módulo Safra Misto: A tela adapta sua interface e mensagens de erro com base no parâmetro
UtilizaModuloSafraMisto. Se este módulo estiver habilitado, os campos “Tipo Avaliação” e “Utiliza BAG” são ocultados, e a descrição do “Tipo Serviço” muda de “Serviço” para “Atividade” na grid. - Habilita Campo Necessita Aprovação: A visibilidade do campo “Necessita Aprovação?” é controlada pelo parâmetro
HabilitaCampoNecessitaAprovacao.
3. Interface — Campos e Controles
| Nome | Tipo | Obrigatório | Regra |
|---|---|---|---|
| hTitulo | h1 | Não | Título da tela, formatado como “Cadastro de [Nome do Serviço de Campo]“. |
| lblCultura | Label | Não | Rótulo para o campo lsCultura. |
| lsCultura | ListaSugestoes | Sim | Campo de seleção para a cultura do campo. Mensagem de erro: “Campo Cultura inválido.” / “Campo Cultura é obrigatório.” |
| lblServicoCampo | Label | Não | Rótulo para o campo txtServicoCampo. |
| txtServicoCampo | ControlAlfaNumerico | Sim | Nome do serviço de campo. Mensagem de erro: “Campo Serviço Campo inválido.” / “Campo Serviço Campo é obrigatório.” |
| lblServicoCampoSuperior | Label | Não | Rótulo para o campo txtServicoCampoSuperior. |
| txtServicoCampoSuperior | LocalizarServicoCampo | Não | Campo de seleção para o serviço de campo superior. Configurado como “Sintetico”. Mensagem de erro: “Campo Serviço Campo Superior inválido.” / “Campo Serviço Campo Superior é obrigatório.” |
| lblCodigoServicoCampo | Label | Não | Rótulo para o campo txtCodigoServicoCampo. |
| txtCodigoServicoCampo | ControlAlfaNumerico | Sim | Código do serviço de campo. Mensagem de erro: “Campo Código Serviço Campo inválido.” / “Campo Código Serviço Campo é obrigatório.” |
| lblTipoServico | Label | Não | Rótulo para o campo lsTipoServico. |
| lsTipoServico | ListaSugestoes | Sim | Tipo do serviço (Atividade/Ocorrência). Mensagem de erro: “Campo Tipo Serviço inválido.” / “Campo Tipo Serviço é obrigatório.” |
| lblPermiteAvalicao | Label | Não | Rótulo para o campo lsPermiteAvaliacao. |
| lsPermiteAvaliacao | ListaSugestoes | Sim | Indica se o serviço permite avaliação (Sim/Não). |
| lblTipoAvaliacao | Label | Não | Rótulo para o campo lsTipoAvaliacao. Visível apenas se UtilizaModuloSafraMisto for falso. |
| lsTipoAvaliacao | ListaSugestoes | Não | Tipo de avaliação. Habilitado e obrigatório se lsPermiteAvaliacao for “Sim”. Mensagem de erro: “Campo Tipo Avaliação inválido.” / “Campo Tipo Avaliação é obrigatório.” |
| lblOrdem | Label | Não | Rótulo para o campo txtNumeroOrdem. |
| txtNumeroOrdem | ValorNumericoTextBox | Não | Número de ordem de cálculo da avaliação. Habilitado se lsPermiteAvaliacao for “Sim” e txtServicoCampoSuperior tiver um valor selecionado. Valor mínimo: 1, Valor máximo: 100. Mensagem de erro: “Campo Número Ordem Cálculo Avaliação inválido.” / “Campo Número Ordem Cálculo Avaliação é obrigatório.” |
| lblUtilizaAreaCultivada | Label | Não | Rótulo para o campo lsUtilizaAreaCultivada. |
| lsUtilizaAreaCultivada | ListaSugestoes | Sim | Indica se o serviço utiliza área cultivada (Sim/Não). Habilitado se lsTipoServico for “Atividade” e não houver serviço superior. |
| lblPercentualAvaliacao | Label | Não | Rótulo para o campo txtPercentualAvaliacao. |
| txtPercentualAvaliacao | ValorNumericoTextBox | Não | Percentual de avaliação. Habilitado se lsPermiteAvaliacao for “Sim” e txtServicoCampoSuperior tiver um valor selecionado. Valor mínimo: 0.01, Valor máximo: 100.00. |
| lblUtilizaBag | Label | Não | Rótulo para o campo lsUtilizaBag. Visível apenas se UtilizaModuloSafraMisto for falso. |
| lsUtilizaBag | ListaSugestoes | Não | Indica se o serviço utiliza BAG (Sim/Não). Habilitado se lsTipoServico for “Atividade” e não houver serviço superior. |
| lblSituacao | Label | Não | Rótulo para o campo lsSituacao. |
| lsSituacao | ListaSugestoes | Sim | Situação do serviço (Ativo/Inativo). Mensagem de erro: “Campo Situação inválido.” / “Campo Situação é obrigatório.” |
| lblSolicitarObservacao | Label | Não | Rótulo para o campo lsSolicitarObservacao. |
| lsSolicitarObservacao | ListaSugestoes | Sim | Indica se o serviço solicita observação (Sim/Não). Habilitado se lsTipoServico for “Ocorrência”. |
| lblDescontarBonus | Label | Não | Rótulo para o campo lsDescontarBonus. |
| lsDescontarBonus | ListaSugestoes | Sim | Indica se o serviço desconta bônus (Sim/Não). Habilitado se lsTipoServico for “Ocorrência”. |
| lblDivisaoBonus | Label | Não | Rótulo para o campo lsDivisaoBonus. Visível apenas se o NomeCentroServico for “syngenta”. |
| lsDivisaoBonus | ListaSugestoes | Sim | Indica se há divisão de bônus (Sim/Não). Habilitado se lsTipoServico for “Ocorrência”. |
| Label1 | Label | Não | Rótulo para o campo lsRecebeHoraInItinere. |
| lsRecebeHoraInItinere | ListaSugestoes | Sim | Indica se o serviço recebe hora in itinere (Sim/Não). Visível se o parâmetro ServicoCampoRealizadoIndividual for “1”. |
| lblNecessitaAprovacao | Label | Não | Rótulo para o campo lsNecessitaAprovacao. Visível se HabilitaCampoNecessitaAprovacao for verdadeiro. |
| lsNecessitaAprovacao | ListaSugestoes | Sim | Indica se o serviço necessita de aprovação (Sim/Não). Habilitado se lsPermiteAvaliacao for “Não”. |
| btnSalvar | Button | Não | Botão para salvar o serviço de campo. |
| btnLimpar | Button | Não | Botão para limpar os campos da tela. |
| btnVoltar | Button | Não | Botão para voltar à tela anterior. |
| hSubTitulo | h2 | Não | Subtítulo da seção da grid, formatado como “[Nome do Serviço de Campo] Cadastrados”. |
| lblPesquisar | Label | Não | Rótulo para o campo txtPesquisar. |
| txtPesquisar | ControlAlfaNumerico | Não | Campo de texto para pesquisa na grid. |
| btnPesquisar | Button | Não | Botão para acionar a pesquisa na grid. |
| gvwServicoCampo | EmployerGrid | Não | Grid que exibe os serviços de campo cadastrados. Colunas: Cultura, Serviço Campo, Serviço Campo Superior, Tipo Serviço, Permite Avaliação?, Tipo Avaliação, Ordem Avaliação, Percentual Avaliação, BAG, Situação, Ações (Editar, Excluir). |
4. Abas e Seções
A tela possui as seguintes seções principais:
- Dados Cadastrais: Contém os campos de entrada para as informações do serviço de campo.
- Valores (aba
abaValores): Esta aba é visível apenas se o parâmetroServicoCampoRealizadoIndividualestiver configurado como “1”. O clique no botãobtlValoresredireciona para a telaServicoCampoValoresCadastro.aspx. - Serviços de Campo Cadastrados: Uma seção que exibe uma grid com os serviços de campo já registrados, juntamente com campos de pesquisa e botões de ação.
5. Regras de Negócio
5.1. Validações de Campos
- Cultura: Obrigatório. (lsCultura)
- Serviço Campo: Obrigatório. (txtServicoCampo)
- Código Serviço Campo: Obrigatório. (txtCodigoServicoCampo)
- Tipo Serviço: Obrigatório. (lsTipoServico)
- Permite Avaliação?: Obrigatório. (lsPermiteAvaliacao)
- Situação: Obrigatório. (lsSituacao)
- Solicitar Observação: Obrigatório se o Tipo Serviço for “Ocorrência”. (lsSolicitarObservacao)
- Descontar Bônus: Obrigatório se o Tipo Serviço for “Ocorrência”. (lsDescontarBonus)
- Divisão Bônus: Obrigatório se o Tipo Serviço for “Ocorrência”. (lsDivisaoBonus)
- Recebe Hora In Itinere: Obrigatório. (lsRecebeHoraInItinere)
- Necessita Aprovação?: Obrigatório. (lsNecessitaAprovacao)
- Tipo Avaliação: Obrigatório se “Permite Avaliação?” for “Sim” e o
UtilizaModuloSafraMistofor falso. (ServicoCampoCadastro.aspx.cs - ValidarSalvar) - Percentual Avaliação: Obrigatório se “Permite Avaliação?” for “Sim” e houver um “Serviço Campo Superior” selecionado. (ServicoCampoCadastro.aspx.cs - ValidarSalvar)
- Nome do Serviço de Campo Duplicado: Não é permitido cadastrar um serviço de campo com o mesmo nome para a mesma empresa e cultura. (ServicoCampo.ValidarNomeServicoCampoJaCadastrado)
- Código do Serviço de Campo Duplicado: Não é permitido cadastrar um serviço de campo com o mesmo código para a mesma empresa e cultura. (ServicoCampo.ValidarCodigoServicoCampoJaCadastrado)
- Número de Ordem Duplicado: Não é permitido cadastrar um serviço de campo com o mesmo número de ordem dentro do mesmo serviço superior. Esta validação ocorre apenas se houver um “Serviço Campo Superior” selecionado e “Permite Avaliação?” for “Sim”. (ServicoCampo.ValidarNumeroOrdemServicoCampoJaCadastrado)
- Soma dos Percentuais de Avaliação: A soma dos percentuais de avaliação de serviços de campo filhos de um mesmo serviço superior não pode exceder 100%. Esta validação ocorre apenas se houver um “Serviço Campo Superior” selecionado, “Permite Avaliação?” for “Sim” e “Percentual Avaliação” tiver um valor. Se a cultura selecionada for “Todas”, a validação é feita para cada cultura ativa. (ServicoCampo.ValidarPercentualTotalServicoCampoSuperior)
- Exclusão - Vínculo com Sindicato: Não é possível excluir um serviço de campo se ele estiver vinculado a um sindicato. (ServicoCampo.ValidarServicoCampoJaVinculadoSindicato)
- Exclusão - Vínculo com Serviço Realizado: Não é possível excluir um serviço de campo se ele já foi realizado. (ServicoCampo.ValidarServicoCampoJaRealizado)
- Exclusão - Vínculo com Ocorrência Lançada: Não é possível excluir um serviço de campo se ele já possui ocorrências lançadas. (ServicoCampo.ValidarServicoCampoOcorrenciaJaLancado)
- Exclusão - Vínculo com Avaliação Realizada: Não é possível excluir um serviço de campo se ele já foi avaliado. (ServicoCampo.ValidarServicoCampoJaAvaliado)
- Exclusão - Vínculo com Outro Serviço de Campo: Não é possível excluir um serviço de campo se ele estiver vinculado a outro serviço de campo (como superior). (ServicoCampo.ValidarServicoCampoJaVinculadoOutroServicoCampo)
- Exclusão - Vínculo com Serviço Campo Individual Desconsiderado: Não é possível excluir um serviço de campo se ele possui um serviço de campo individual desconsiderado. (ServicoCampoIndividualDesconsiderado.PossuiServicoCampoIndividualDesconsiderado)
5.2. Regras de Habilitação/Desabilitação e Visibilidade
- Aba “Valores”: Visível apenas se o parâmetro
ServicoCampoRealizadoIndividualfor “1”. (ServicoCampoCadastro.aspx.cs - ConfigurarCampos) - Campo “Necessita Aprovação?”: Visível se o parâmetro
HabilitaCampoNecessitaAprovacaofor verdadeiro. (ServicoCampoCadastro.aspx.cs - ConfigurarCampos) - Campos “Tipo Avaliação” e “Utiliza BAG”: Ocultos se
UtilizaModuloSafraMistofor verdadeiro. (ServicoCampoCadastro.aspx.cs - ConfigurarCampos) - Colunas “BAG” e “Tipo Avaliação” na Grid: Ocultas se
UtilizaModuloSafraMistofor verdadeiro. (ServicoCampoCadastro.aspx.cs - ConfigurarCampos) - Campo “Tipo Avaliação”: Habilitado e obrigatório se “Permite Avaliação?” for “Sim” e
UtilizaModuloSafraMistofor falso. Desabilitado e não obrigatório caso contrário. (ServicoCampoCadastro.aspx.cs - ConfigurarCamposPorPermiteAvaliacao) - Campos “Percentual Avaliação” e “Número Ordem Cálculo Avaliação”: Habilitados e obrigatórios se “Permite Avaliação?” for “Sim” e
txtServicoCampoSuperiortiver um valor selecionado. Desabilitados e não obrigatórios caso contrário. (ServicoCampoCadastro.aspx.cs - ConfigurarCamposPorPermiteAvaliacao) - Campo “Utiliza BAG”:
- Se o “Tipo Serviço” não for “Atividade”, o campo é desabilitado e seu valor é nulo.
- Se o “Tipo Serviço” for “Atividade” e não houver “Serviço Campo Superior”, o campo é habilitado e obrigatório.
- Se o “Tipo Serviço” for “Atividade” e houver um “Serviço Campo Superior”, o campo é desabilitado e seu valor é preenchido com a informação do serviço macro (
FlagUtilizaBagdo serviço superior). (ServicoCampoCadastro.aspx.cs - ConfiguracaoCampoUtilizaBag) - Campo “Utiliza Área Cultivada”: Habilitado e obrigatório se o “Tipo Serviço” for “Atividade” e não houver “Serviço Campo Superior”. (ServicoCampoCadastro.aspx.cs - ConfiguracaoCampoUtilizaAreaCultivada)
- Campos “Solicitar Observação”, “Descontar Bônus”, “Divisão Bônus”: Habilitados se o “Tipo Serviço” for “Ocorrência”. (ServicoCampoCadastro.aspx.cs - lsTipoServico_ValueChanged)
- Campo “Divisão Bônus”: Visível se o
NomeCentroServicofor “syngenta`. (ServicoCampoCadastro.aspx.cs - ConfigurarCampos) - Campo “Necessita Aprovação?”: Se “Permite Avaliação?” for “Sim”, o campo é preenchido com “Sim” e desabilitado. Caso contrário, é habilitado. (ServicoCampoCadastro.aspx.cs - ConfigurarCampoNecessitaAvaliacao)
- Botão “Salvar”: Desabilitado se o usuário não tiver a permissão
ServicoCampo.SalvarServicoCampo. (ServicoCampoCadastro.aspx.cs - ConfigurarPermissoesTela) - Botão “Excluir” na Grid: Desabilitado se o usuário não tiver a permissão
ServicoCampo.ExcluirServicoCampo. (ServicoCampoCadastro.aspx.cs - gvwServicoCampo_RowDataBound) - Campo Cultura: Desabilitado quando a tela está em modo de edição (IdServicoCampo.HasValue). (ServicoCampoCadastro.aspx.cs - PreencherCampos)
5.3. Regras de Inativação e Exclusão
- A exclusão de um serviço de campo é precedida por diversas validações de vínculo (sindicato, realizado, ocorrência, avaliação, outro serviço de campo, serviço individual desconsiderado). Se qualquer uma dessas validações falhar, a exclusão é impedida e uma mensagem de erro é exibida. (ServicoCampoCadastro.aspx.cs - ValidarExcluir)
- Ao excluir, o
Idf_Usuario_Geradoré atualizado antes da exclusão lógica do registro na tabelaTAB_Servico_Campo. (ServicoCampo_P1.cs - Delete)
5.4. Regras de Salvar e Fluxo de Configuração
- Ao salvar um serviço de campo, se
lsCultura.ValorIntfor 0 (Todas), o serviço é cadastrado para todas as culturas ativas (ondeFlagInativoé falso eIdCulturaCampo> 0). Caso contrário, é cadastrado apenas para a cultura selecionada. (ServicoCampoCadastro.aspx.cs - Salvar) - Se o serviço de campo for um serviço superior (macro) e tiver serviços micros associados, ao salvar, as propriedades
FlagUtilizaBageFlagUtilizaAreaCultivadados serviços micros são atualizadas com os valores do serviço macro. (ServicoCampo_P2.cs - AtualizaServicosCamposMicro, Save) - O
Idf_Usuario_GeradoreDta_Cadastro(para inserção) ouDta_Alteracao(para atualização) são preenchidos automaticamente com o usuário logado e a data/hora atual. (ServicoCampo_P1.cs - SetParameters) - A lógica de salvar envolve transações de banco de dados para garantir a integridade dos dados. Em caso de erro, a transação é revertida. (ServicoCampo_P1.cs - Insert, Update, Save)
- Ao salvar, se o
IdServicoCamponão tiver valor, um novo objetoServicoCampoé instanciado. Caso contrário, o objeto existente é carregado. (ServicoCampoCadastro.aspx.cs - Salvar)
5.5. Outras Regras Específicas da Tela
- Nomenclatura de Campos e Grid: Os rótulos de alguns campos e os cabeçalhos de colunas da grid são configurados dinamicamente com base em recursos de texto e no
NomeCentroServico(ex: “syngenta”). (ServicoCampoCadastro.aspx.cs - ConfigurarLabel) - Valor Padrão para “Utiliza Área Cultivada” (Módulo Safra Misto): Se o “Módulo Safra Misto” estiver habilitado e o serviço for macro (
!txtServicoCampoSuperior.IdServicoCampoSelecionado.HasValue) e do tipo “Atividade” (lsTipoServico.ValorInt == 1), o valor padrão de “Utiliza Área Cultivada” é definido como “Não” para culturas comIdCulturaCampo1, 2, 3 e “Sim” para as demais. Se for um serviço micro, o valor é herdado do serviço superior. (ServicoCampoCadastro.aspx.cs - ConfiguraValorDefaultCampoAreaMedidaModuloMisto) - Redirecionamento para “Valores”: O clique na aba “Valores” redireciona o usuário para a tela
ServicoCampoValoresCadastro.aspx. (ServicoCampoCadastro.aspx.cs - btlValores_Click) - Mensagens de Erro Personalizadas: As mensagens de erro são definidas dinamicamente com base no
UtilizaModuloSafraMistoe no tipo de validação, buscando os textos em arquivos de recursos específicos (MensagemErroModuloSafraMistoouMensagemErroModuloSafra). (ServicoCampoCadastro.aspx.cs - DefinirMensagemErroModuloSafra) - Redirecionamento de Sessão Inválida: Se houver inconsistência no Centro de Serviço, Empresa ou Usuário logados (verificado no
OnLoaddaBasePageWebFoPag), o usuário é redirecionado paraDefault.aspx. (BasePageWebFoPag.cs - OnLoad) - Proteção contra ViewState MAC Failed: A
BasePageWebFoPaginclui tratamento paraHttpExceptioncom “Validation of viewstate MAC failed”, redirecionando para uma página de erro configurada. (BasePageWebFoPag.cs - OnError) - Registro Automático de JS/CSS: A
BasePageWebFoPagtenta registrar automaticamente arquivos.jse.csscorrespondentes à página atual, se existirem. (BasePageWebFoPag.cs - RegistrarJsAutomatico, RegistrarCssAutomatico)
6. Fluxos Principais
6.1. Inicialização da Tela
Page_Load:
- Verifica se é um
PostBack. Se não for, chamaInicializar().
Inicializar():
ConfigurarPermissoesTela(): Carrega as permissões do usuário logado para a categoriaServicoCampoe desabilita o botão “Salvar” se a permissãoSalvarServicoCamponão estiver presente. Redireciona paraUrlAcessoNegadose a permissãoVisualizarServicoCamponão estiver presente.ConfigurarPropriedadesPorParametroSessaoComponenteCadastro(): Verifica se há umIdServicoCampopassado viaViewState(parâmetro de redirecionamento de componente) e o atribui à propriedadeIdServicoCampoda tela.CarregarParametros(): Carrega os valores dos parâmetrosServicoCampoRealizadoIndividual,HabilitaCampoNecessitaAprovacaoeUtilizaModuloSafraMistodo BLLParametroeParametroEspecifico.txtServicoCampoSuperior.IdEmpresa = BasePageWebFoPag.IdEmpresaLogada(): Define a empresa para o componente de localização de serviço de campo superior.ConfigurarLabel(): Ajusta os textos dos rótulos e cabeçalhos da grid com base em recursos e noNomeCentroServico.ConfigurarCampos(): Define a visibilidade de abas e campos com base nos parâmetros carregados (ex:abaValores,divNecessitaAprovacao,divTipoAvaliacao,divUtilizaBag).CarregarListasSugestoes(): Preenche osListaSugestoescom dados deCulturaCampo,TipoServicoCampo,FlageTipoAvaliacaoCampo.CarregaGridServicos(): Carrega a grid de serviços de campo.PreencherCampos(): SeIdServicoCampoestiver preenchido, carrega os dados do serviço de campo para edição. Caso contrário, chamaLimparCampos().
6.2. Salvar Serviço de Campo
btnSalvar_Click:
- Verifica a permissão
ServicoCampo.SalvarServicoCampo. Se o usuário não tiver, exibe mensagem de aviso. - Chama
ValidarSalvar(). Se a validação for bem-sucedida, chamaSalvar(). - Se
Salvar()for bem-sucedido, chamaLimparCampos(),CarregaGridServicos()e exibe mensagem de sucesso.
ValidarSalvar():
- Executa todas as validações de campos e regras de negócio descritas na seção 5.1.
- Retorna
truese todas as validações passarem,falsecaso contrário, exibindo a mensagem de erro apropriada.
Salvar():
- Cria ou carrega um objeto
ServicoCampo. - Popula as propriedades do
objServicoCampocom os valores dos campos da tela. - Se
lsCultura.ValorIntfor 0 (Todas), itera sobre todas as culturas ativas e salva umServicoCampopara cada uma. - Se houver
ServicoCampoSuperiore serviços micros, atualizaFlagUtilizaBageFlagUtilizaAreaCultivadados micros. - Chama
objServicoCampo.Save(), que internamente gerencia a inserção ou atualização no banco de dados, incluindo o tratamento de transações. - Em caso de exceção, exibe mensagem de erro.
6.3. Excluir Serviço de Campo
gvwServicoCampo_RowCommand(paraCommandName == "Excluir"):
- Obtém o
IdServicoCampodoCommandArgument. - Chama
Excluir(IdfServicoCampo). - Se a exclusão for bem-sucedida, chama
LimparCampos(),CarregaGridServicos()e exibe mensagem de sucesso.
Excluir(int IdfServicoCampo):
- Chama
ValidarExcluir(IdfServicoCampo). Se a validação falhar, retornafalse. - Chama
ServicoCampo.Delete(IdfServicoCampo). - Em caso de exceção, exibe mensagem de erro.
ValidarExcluir(int pIdServicoCampo):
- Executa todas as validações de exclusão descritas na seção 5.1 (vínculos com sindicato, realizado, ocorrência, avaliação, outro serviço de campo, serviço individual desconsiderado).
- Retorna
truese todas as validações passarem,falsecaso contrário, exibindo a mensagem de erro apropriada.
6.4. Limpar Campos
btnLimpar_Click:
- Redireciona para a própria tela
ServicoCampoCadastro.aspx, efetivamente limpando todos os campos.
LimparCampos():
- Define
IdServicoCampocomo nulo. - Limpa o texto ou valor de todos os campos de entrada e
ListaSugestoes. - Chama
ConfigurarCamposPorPermiteAvaliacao()eConfiguracaoCampoUtilizaAreaCultivada()para redefinir o estado inicial dos campos.
6.5. Pesquisar na Grid
btnPesquisar_Click:
- Chama
CarregaGridServicos().
gvwServicoCampo_CarregarGrid:
- Chama
CarregaGridServicos().
CarregaGridServicos():
- Obtém os parâmetros de pesquisa (
CodigoEmpresa,txtPesquisar.Text, ordenação e paginação da grid). - Chama
ServicoCampo.Listar()para obter os dados paginados. - Chama
UIHelper.CarregarGridView()para preencher a grid.
6.6. Navegação para Aba Valores
btlValores_Click:
- Redireciona para a tela
ServicoCampoValoresCadastro.aspx.
7. Integrações e Dependências
7.1. Classes BLL e Service utilizadas
- Employer.Plataforma.Web.WebFoPag.Code.BasePageWebFoPag (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.WebFoPag\Code\BasePageWebFoPag.cs)
- Propriedades Relevantes:
IdEmpresaLogada: Retorna o ID da empresa logada na sessão.CodigoUsuarioLogado: Retorna o código do usuário logado na sessão.CodigoEmpresa: Retorna o código da empresa selecionada pelo usuário.NomeCentroServico: Retorna o nome do centro de serviço selecionado pelo usuário.Cultura: Propriedade que acessa a cultura definida na MasterPage.UtilizarLotacaoTomador: Indica se a empresa utiliza lotação e tomador, recuperando o valor do parâmetroHabilitarLotacao.UtilizaRateio: Indica se a empresa utiliza rateio, recuperando o valor do parâmetroCentroServicoUtilizaRateio.NomeNivelGenerico: Recupera o nome do parâmetroNivelGenericodoParametroEspecifico.NumeroCNPJ: Retorna o CNPJ da empresa logada, carregando o objetoEmpresase necessário.EsocialHabilitado: Retorna um objetoEmpregadorDTOindicando se o eSocial está habilitado para a empresa, buscando o parâmetroeSocialSimplificadoe chamando um serviço externo.- Métodos Chamados:
IdEmpresaLogada(): Utilizado para obter o ID da empresa logada.ExibirMensagem(string mensagem, TipoMensagem tipo): Exibe mensagens ao usuário através da MasterPage.ExibirMensagem(string mensagem, TipoMensagem tipo, int tempoOcultar): Exibe mensagens ao usuário com tempo de ocultação.GetLabelTextResource(string Label): Recupera textos de recursos de acordo com a cultura e o centro de serviço.RecuperarMensagemErroSql(SqlException ex, out string mensagem): Recupera mensagens de erro SQL.IdUsuario(): Retorna o ID do usuário logado via AJAX.IdEmpresa(): Retorna o ID da empresa logada via AJAX.RecuperarNomeUsuarioLogado(): Recupera o nome completo do usuário logado.RecuperarLogoRelatorioEmpresaLogada(): Retorna o caminho da logo da empresa para relatórios.AtualizarStatusPeriodoFilial(): Atualiza o status do período da filial na MasterPage.IdUsuarioLogado(): Retorna o ID do usuário logado (estático).IdEmpresaLogada(): Retorna o ID da empresa logada (estático).RedirecionarRecalculoPeriodoAquisitivo(Empregado objEmpregado, string url, bool aux): Recalcula períodos aquisitivos e redireciona.PrevenirDuploClick(WebControl control, Page page): Previne duplo clique em controles.CarregarListaEnum<t>(): Carrega um dicionário com base em um enum.FormatarHora(object pMinutos, bool retirarPontos): Formata minutos para HH:mm.ConverterMinutos(string pHora): Converte HH:mm para minutos.CalcularDuracaoIntervalo(string horaInicio, string horaFim, bool retirarPontos): Calcula duração de intervalo.FormatarDiaSemana(object diaSemana): Formata o dia da semana.ConcatParamEmployerPrintDesktop(string pFileName): Concatena parâmetros para impressão.Base64Encode(string key): Codifica string em Base64.Base64Decode(string key): Decodifica string de Base64.eSocialGambiarraIEGE(Dictionary<TipoLayout, string> identificadores): Lógica específica para eSocial IEGE.MostrarModalEsocial(Dictionary<TipoLayout, string> identificadores): Exibe modal do eSocial.MostrarModalEsocialImportacao(): Exibe modal de importação do eSocial.MostrarModalEsocialConfiguracao(): Exibe modal de configuração do eSocial.MostrarModalEsocialEventos(): Exibe modal de eventos do eSocial.MostrarModalEsocialRelatorios(): Exibe modal de relatórios do eSocial.RetornarNrInscricaoCompleto(string nrInscricaoEmpregador, TipoInscricaoEmpregador tpInsc): Formata número de inscrição do eSocial.
- Employer.Plataforma.BLL.CulturaCampo (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CulturaCampo_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\CulturaCampo_P2.cs)
- Propriedades Relevantes:
IdCulturaCampo: Identificador da cultura do campo.DescricaoCulturaCampo: Descrição da cultura do campo.FlagInativo: Indica se a cultura está inativa.- Métodos Chamados:
Listar(): Retorna uma lista de todas as culturas de campo.ListarAtivos(): Retorna umIDataReadercom as culturas de campo ativas.Save(): Salva (insere ou atualiza) uma instância deCulturaCampo.Delete(int idCulturaCampo): Exclui uma cultura de campo pelo ID.LoadObject(int idCulturaCampo): Carrega uma instância deCulturaCampopelo ID.CompleteObject(): Completa os dados da instância atual deCulturaCampo.
- Employer.Plataforma.BLL.Parametro (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Parametro_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Parametro_P2.cs)
- Propriedades Relevantes:
IdParametro: Identificador do parâmetro.ValorParametro: Valor do parâmetro.- Métodos Chamados:
RecuperaValorParametro(Enumeradores.NomeParametro idParametro): Recupera o valor de um parâmetro pelo seu enumerador.RecuperaValorParametro(Enumeradores.NomeParametro pIdParametro, int pIdEmpresa, int? pIdFilial, int? pIdContrato, int? pIdSindicato, int? pIdCentroResultado, SqlTransaction trans = null): Recupera o valor de um parâmetro específico por empresa, filial, contrato, sindicato e centro de resultado.ListarParametros(List<Enumeradores.NomeParametro> idsParametros): Retorna um dicionário de parâmetros.Save(): Salva (insere ou atualiza) uma instância deParametro.
- Employer.Plataforma.BLL.ParametroEspecifico (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ParametroEspecifico_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ParametroEspecifico_P2.cs)
- Propriedades Relevantes:
IdParametroEspecifico: Identificador do parâmetro específico.Parametro: ObjetoParametroassociado.ValorParametro: Valor do parâmetro específico.Empresa: ObjetoEmpresaassociado.Filial: ObjetoFilialassociado.Contrato: ObjetoContratoassociado.Sindicato: ObjetoSindicatoassociado.CentroResultado: ObjetoCentroResultadoassociado.- Métodos Chamados:
RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, CentroResultado objCentroResultado): Recupera o valor de um parâmetro específico.RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, Sindicato objSindicato, CentroResultado objCentroResultado, SqlTransaction trans): Recupera o valor de um parâmetro específico com transação.ExisteParametroEspecificoCadastrado(...): Verifica se um parâmetro específico já está cadastrado.Save(): Salva (insere ou atualiza) uma instância deParametroEspecifico.
- Employer.Plataforma.BLL.ServicoCampo (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ServicoCampo_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ServicoCampo_P2.cs)
- Propriedades Relevantes:
IdServicoCampo: Identificador do serviço de campo.Empresa: ObjetoEmpresaassociado.ServicoCampoSuperior: ObjetoServicoCampopai.NomeServicoCampo: Nome do serviço de campo.CodigoServicoCampo: Código do serviço de campo.FlagPermiteAvaliacao: Indica se permite avaliação.TipoAvaliacaoCampo: ObjetoTipoAvaliacaoCampoassociado.PercentualAvaliacao: Percentual de avaliação.FlagInativo: Indica se o serviço está inativo.NumeroOrdem: Número de ordem.CulturaCampo: ObjetoCulturaCampoassociado.TipoServicoCampo: ObjetoTipoServicoCampoassociado.FlagUtilizaBag: Indica se utiliza BAG.FlagSolicitaObservacao: Indica se solicita observação.FlagUtilizaAreaCultivada: Indica se utiliza área cultivada.FlagDescontarBonus: Indica se desconta bônus.FlagDivisaoBonus: Indica se há divisão de bônus.FlagPagaHoraInItinere: Indica se paga hora in itinere.FlagNecessitaAprovacao: Indica se necessita aprovação.- Métodos Chamados:
Listar(int pIdEmpresa, string pDescricao, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros): Lista serviços de campo paginados e filtrados.LoadObject(int idServicoCampo): Carrega uma instância deServicoCampopelo ID.ValidarNomeServicoCampoJaCadastrado(...): Verifica se o nome do serviço de campo já está cadastrado.ValidarCodigoServicoCampoJaCadastrado(...): Verifica se o código do serviço de campo já está cadastrado.ValidarNumeroOrdemServicoCampoJaCadastrado(...): Verifica se o número de ordem já está cadastrado para o serviço superior.ValidarPercentualTotalServicoCampoSuperior(...): Verifica se a soma dos percentuais de avaliação excede 100%.ValidarServicoCampoJaVinculadoSindicato(...): Verifica se o serviço de campo está vinculado a um sindicato.ValidarServicoCampoJaAvaliado(...): Verifica se o serviço de campo já foi avaliado.ValidarServicoCampoJaRealizado(...): Verifica se o serviço de campo já foi realizado.ValidarServicoCampoOcorrenciaJaLancado(...): Verifica se o serviço de campo já possui ocorrências lançadas.ValidarServicoCampoJaVinculadoOutroServicoCampo(...): Verifica se o serviço de campo está vinculado a outro serviço de campo.Delete(int idServicoCampo): Exclui um serviço de campo.Save(): Salva (insere ou atualiza) uma instância deServicoCampo.ListarPorServicoCampoSuperior(int IdfServicoCampoSuperior): Lista serviços de campo por serviço superior.ListarServicoCamposMicros(int IdfServicoCampo): Lista serviços de campo micros.
- Employer.Plataforma.BLL.ServicoCampoIndividualDesconsiderado (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ServicoCampoIndividualDesconsiderado.cs)
- Métodos Chamados:
PossuiServicoCampoIndividualDesconsiderado(int? idContratoCooperante, int? idContratoCooperanteSetor, int? idServicoCampo, int? idServicoCampoValor): Verifica se existe um serviço de campo individual desconsiderado para os parâmetros fornecidos.
- Employer.Plataforma.BLL.TipoAvaliacaoCampo (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoAvaliacaoCampo_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoAvaliacaoCampo_P2.cs)
- Propriedades Relevantes:
IdTipoAvaliacaoCampo: Identificador do tipo de avaliação de campo.DescricaoTipoAvaliacaoCampo: Descrição do tipo de avaliação de campo.FlagInativo: Indica se o tipo de avaliação está inativo.- Métodos Chamados:
ListarAtivos(): Retorna umIDataReadercom os tipos de avaliação de campo ativos.Listar(): Retorna uma lista de todos os tipos de avaliação de campo.Save(): Salva (insere ou atualiza) uma instância deTipoAvaliacaoCampo.Delete(int idTipoAvaliacaoCampo): Exclui um tipo de avaliação de campo pelo ID.LoadObject(int idTipoAvaliacaoCampo): Carrega uma instância deTipoAvaliacaoCampopelo ID.CompleteObject(): Completa os dados da instância atual deTipoAvaliacaoCampo.
- Employer.Plataforma.Web.Code.UIHelper (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.Web.Code\UIHelper.cs)
- Métodos Chamados:
CarregarGridView(EmployerGrid gv, DataTable dataSource, int itemCount): Carrega umEmployerGridcom umDataTable.ConfiguraNomenclaturaCampo(Control control, string nomeCampo, bool bMensagensErro): Configura o texto de rótulos e mensagens de erro para controles.ConfiguraNomenclaturaGrid(EmployerGrid grid, string nomePesquisa, string nomeCampo): Configura o cabeçalho de colunas de umEmployerGrid.LimparSession(HttpSessionState session, StateBag viewState, Type EnumType): Limpa variáveis de sessão temporárias e as move para o ViewState.CarregarListaSugestao(...): Métodos sobrecarregados para carregar o componenteListaSugestoes.RecuperarMensagemErroSql(...): Recupera mensagens de erro SQL.RetornarMensagem(ResourceManager resource, string idMsg): Retorna mensagens de recursos.AjustarString(string entrada): Ajusta strings (trim, remove espaços duplos, capitaliza primeira letra, trata preposições e siglas, números romanos).SetImagemOrdenacao(...): Adiciona imagem de ordenação a colunas de GridView.GetIndiceColunaOrdenar(...): Retorna o índice da coluna de ordenação.RedimensionaFormataTextoString(...): Redimensiona e formata strings.RemoveCaracteresEspeciais(string str): Remove caracteres especiais de uma string.RemoverAcentos(string texto): Remove acentos de uma string.ValidateFocus(WebControl controle): Adiciona script para focar no primeiro campo inválido.PrevenirDuploClick(WebControl control, Page page, String validationGroup = null): Previne duplo clique em botões, com validação de grupo opcional.LoadListaSugestoes(...): Métodos sobrecarregados para carregar e manter o estado deListaSugestoes.ValidaChavesSession(): Valida chaves de sessão.TrataErroReportViewer(HttpContext ctx): Trata erros de sessão expirada no ReportViewer.
- Employer.Plataforma.BLL.Usuario (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Usuario_P2.cs)
- Propriedades Relevantes:
IdUsuario: Identificador do usuário.NumeroCPF: CPF do usuário.NumeroCPFFormatado: CPF formatado.- Métodos Chamados:
CarregarPermissoes(Usuario objUsuario, CategoriaPermissao categoriaPermissao): Carrega as permissões de um usuário para uma categoria específica.LoadObject(int usuario): Carrega uma instância deUsuariopelo ID.CompleteObject(): Completa os dados da instância atual deUsuario.
- Employer.Plataforma.BLL.Util (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Util.cs)
- Métodos Chamados:
ValidaPermissaoUsuario(List<int> lstPermissoes, int idPermissao): Verifica se o usuário possui uma permissão específica.CamelCase(string texto): Converte uma string para o formato CamelCase, tratando preposições e siglas.ProximoDiaUtil(...): Métodos sobrecarregados para calcular o próximo dia útil.Weekend(DateTime Date): Verifica se uma data é fim de semana.MesAnoCompetencia(DateTime dtaCompetencia, string connectionString): Retorna o mês/ano de competência formatado.QuantidadeDiasUteisNaoUteisMes(DateTime dtaCompetencia, bool flgUteis, string connectionString): Retorna a quantidade de dias úteis ou não úteis no mês.AliquotasInss(DateTime dta, string connectionString): Retorna as alíquotas de INSS.FaixaInss(DateTime dta, string connectionString): Retorna as faixas de INSS.MapearPropriedadesObjeto(...): Mapeia propriedades entre objetos.SalarioMinimoNacional(string connectionString): Retorna o salário mínimo nacional.RecuperarCentroResultadoAnalitico(...): Recupera centros de resultado analíticos.DataTablePivot(...): Pivoteia uma DataTable.ValorPorExtenso(...): Converte valores numéricos para extenso.
- Employer.Plataforma.BLL.Empresa (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P2.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\Empresa_P3.cs)
- Propriedades Relevantes:
IdEmpresa: Identificador da empresa.GrupoEconomico: ObjetoGrupoEconomicoassociado.NumeroCNPJ: CNPJ da empresa.NumeroCPF: CPF da empresa.RazaoSocial: Razão social da empresa.FlagInativo: Indica se a empresa está inativa.CodigoEmpresa: Código da empresa.TipoEstruturaGerencial: Tipo de estrutura gerencial.CNPJ: CNPJ formatado.DescricaoCompleta: Descrição completa da empresa (CNPJ/CEI - Razão Social).EntidadeFilantropica: Indica se é entidade filantrópica.- Métodos Chamados:
LoadObject(int idEmpresa): Carrega uma instância deEmpresapelo ID.Save(): Salva (insere ou atualiza) uma instância deEmpresa.Delete(int idEmpresa): Exclui uma empresa.RecuperarProximaMatricula(SqlTransaction trans, out int pNumeroMatricula): Recupera o próximo número de matrícula disponível.RecuperarProximaFichaRegistro(SqlTransaction trans, out int pNumeroFichaRegistro): Recupera o próximo número de ficha de registro disponível.AtualizarFichaSemente(SqlTransaction trans, Int64 NumSementeFicha): Atualiza a semente da ficha de registro.SelecionaInformacoesFilialEmpresa(int idEmpresa, int? idFilial, int? idBanco): Seleciona informações de filial e empresa.VerificaEmpresaPrestadora(int idEmpresa): Verifica se a empresa é prestadora.CarregarProdutorRuralEmpresaPeriodo(...): Carrega informações de produtor rural.SalvarFlagProdutorRural(...): Salva a flag de produtor rural.CompleteAuditoria(): Completa dados para auditoria.AtualizarSemente(SqlTransaction trans, int numSementeReferencia): Atualiza a semente de matrícula.UpdateEmpregados(int? pIdFilial, SqlTransaction trans): Atualiza empregados da filial alterada.
- Employer.Plataforma.BLL.TipoServicoCampo (
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoServicoCampo_P1.cs,C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\TipoServicoCampo_P2.cs)
- Propriedades Relevantes:
IdTipoServicoCampo: Identificador do tipo de serviço de campo.DescricaoTipoServicoCampo: Descrição do tipo de serviço de campo.FlagInativo: Indica se o tipo de serviço está inativo.- Métodos Chamados:
ListarAtivos(): Retorna umIDataReadercom os tipos de serviço de campo ativos.Listar(): Retorna uma lista de todos os tipos de serviço de campo.Save(): Salva (insere ou atualiza) uma instância deTipoServicoCampo.Delete(int idTipoServicoCampo): Exclui um tipo de serviço de campo pelo ID.LoadObject(int idTipoServicoCampo): Carrega uma instância deTipoServicoCampopelo ID.CompleteObject(): Completa os dados da instância atual deTipoServicoCampo.
7.2. Stored Procedures chamadas
- SPRECUPERARLOGORELATORIOEMPRESALOGADA (Employer.Plataforma.Web.WebFoPag.Code.BasePageWebFoPag.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Recupera o identificador da imagem da logo da empresa para relatórios.
- INSERT INTO plataforma.TAB_Cultura_Campo (CulturaCampo_P1.cs)
- Parâmetros:
@Idf_Cultura_Campo,@Des_Cultura_Campo,@Dta_Cadastro,@Flg_Inativo - Propósito: Insere um novo registro na tabela
plataforma.TAB_Cultura_Campo.
- UPDATE plataforma.TAB_Cultura_Campo (CulturaCampo_P1.cs)
- Parâmetros:
@Des_Cultura_Campo,@Dta_Cadastro,@Flg_Inativo,@Idf_Cultura_Campo - Propósito: Atualiza um registro existente na tabela
plataforma.TAB_Cultura_Campo.
- DELETE FROM plataforma.TAB_Cultura_Campo (CulturaCampo_P1.cs)
- Parâmetros:
@Idf_Cultura_Campo - Propósito: Exclui um registro da tabela
plataforma.TAB_Cultura_Campo.
- SELECT * FROM plataforma.TAB_Cultura_Campo (CulturaCampo_P1.cs)
- Parâmetros: Nenhum
- Propósito: Seleciona todos os registros da tabela
plataforma.TAB_Cultura_Campo.
- SELECT * FROM plataforma.TAB_Cultura_Campo WHERE Idf_Cultura_Campo = @Idf_Cultura_Campo (CulturaCampo_P1.cs)
- Parâmetros:
@Idf_Cultura_Campo - Propósito: Seleciona um registro da tabela
plataforma.TAB_Cultura_Campopelo seu identificador.
- SQL inline para paginação de CulturaCampo (CulturaCampo_P1.cs)
- Parâmetros:
@colunaOrdenacao,@direcaoOrdenacao,@paginaCorrente,@tamanhoPagina - Propósito: Retorna uma consulta paginada de culturas de campo.
- SELECT COUNT(*) FROM (…) AS temp (CulturaCampo_P1.cs)
- Parâmetros: Nenhum
- Propósito: Conta o total de registros para a paginação de culturas de campo.
- SELECT * FROM plataforma.TAB_Cultura_Campo WHERE Flg_Inativo = 0 (CulturaCampo_P2.cs)
- Parâmetros: Nenhum
- Propósito: Lista todas as culturas de campo que estão ativas.
- INSERT INTO TAB_Parametro (Parametro_P1.cs)
- Parâmetros:
@Idf_Parametro,@Vlr_Parametro - Propósito: Insere um novo registro na tabela
TAB_Parametro.
- UPDATE TAB_Parametro (Parametro_P1.cs)
- Parâmetros:
@Vlr_Parametro,@Idf_Parametro - Propósito: Atualiza um registro existente na tabela
TAB_Parametro.
- DELETE FROM TAB_Parametro (Parametro_P1.cs)
- Parâmetros:
@Idf_Parametro - Propósito: Exclui um registro da tabela
TAB_Parametro.
- SELECT * FROM TAB_Parametro WHERE Idf_Parametro = @Idf_Parametro (Parametro_P1.cs)
- Parâmetros:
@Idf_Parametro - Propósito: Seleciona um registro da tabela
TAB_Parametropelo seu identificador.
- SQL inline para paginação de Parametro (Parametro_P1.cs)
- Parâmetros:
@colunaOrdenacao,@direcaoOrdenacao,@paginaCorrente,@tamanhoPagina - Propósito: Retorna uma consulta paginada de parâmetros.
- SELECT COUNT(*) FROM (…) AS temp (Parametro_P1.cs)
- Parâmetros: Nenhum
- Propósito: Conta o total de registros para a paginação de parâmetros.
- SPSELECTPAG (Parametro_P2.cs)
- Parâmetros:
@CurrentPage,@PageSize,@SortExpression,@WhereExpression - Propósito: Consulta paginada de parâmetros.
- SPSELECTPENDENTE (Parametro_P2.cs)
- Parâmetros: Nenhum
- Propósito: Conta o número de parâmetros pendentes.
- SELVALORPARAMETROPORID (Parametro_P2.cs)
- Parâmetros:
@Idf_Parametro - Propósito: Recupera o valor de um parâmetro, priorizando
TAB_Parametrosobreplataforma.TAB_Parametro_Plataforma.
- SELVALORPARAMETROPLATAFORMAPORID (Parametro_P2.cs)
- Parâmetros:
@Idf_Parametro - Propósito: Recupera o valor de um parâmetro da tabela
plataforma.TAB_Parametro_Plataforma.
- TAB_SF_Parametro_Especifico (Parametro_P2.cs)
- Parâmetros:
@pIdParametro,@pIdEmpresa,@pIdFilial,@pIdContrato,@pIdSindicato,@pIdCentroResultado - Propósito: Função de tabela que retorna o valor de um parâmetro específico com base em diversos filtros.
- TAB_SF_Parametros_Especificos (Parametro_P2.cs)
- Parâmetros:
@ListaIdParametros,@pIdEmpresa,@pIdFilial,@pIdContrato,@pIdSindicato,@pIdCentroResultado - Propósito: Função de tabela que retorna múltiplos parâmetros específicos.
- INSERT INTO TAB_Parametro_Especifico (ParametroEspecifico_P1.cs)
- Parâmetros:
@Idf_Parametro_Especifico(OUTPUT),@Idf_Parametro,@Idf_Tipo_Valor,@Vlr_Parametro,@Flg_Inativo,@Dta_Cadastro,@Idf_Usuario_Gerador,@Flg_Validado,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Sindicato,@Idf_Centro_Resultado,@Des_Verbas_Informacao - Propósito: Insere um novo registro na tabela
TAB_Parametro_Especifico.
- UPDATE TAB_Parametro_Especifico (ParametroEspecifico_P1.cs)
- Parâmetros:
@Idf_Parametro,@Idf_Tipo_Valor,@Vlr_Parametro,@Flg_Inativo,@Dta_Cadastro,@Idf_Usuario_Gerador,@Flg_Validado,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Sindicato,@Idf_Centro_Resultado,@Des_Verbas_Informacao,@Idf_Parametro_Especifico - Propósito: Atualiza um registro existente na tabela
TAB_Parametro_Especifico.
- UPDATE TAB_Parametro_Especifico SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Parametro_Especifico = @Idf_Parametro_Especifico ; DELETE FROM TAB_Parametro_Especifico (ParametroEspecifico_P1.cs)
- Parâmetros:
@Idf_Usuario_Gerador,@Idf_Parametro_Especifico - Propósito: Atualiza o usuário gerador e exclui um registro da tabela
TAB_Parametro_Especifico.
- SELECT * FROM TAB_Parametro_Especifico WHERE Idf_Parametro_Especifico = @Idf_Parametro_Especifico (ParametroEspecifico_P1.cs)
- Parâmetros:
@Idf_Parametro_Especifico - Propósito: Seleciona um registro da tabela
TAB_Parametro_Especificopelo seu identificador.
- SQL inline para paginação de ParametroEspecifico (ParametroEspecifico_P1.cs)
- Parâmetros:
@colunaOrdenacao,@direcaoOrdenacao,@paginaCorrente,@tamanhoPagina - Propósito: Retorna uma consulta paginada de parâmetros específicos.
- SELECT COUNT(*) FROM (…) AS temp (ParametroEspecifico_P1.cs)
- Parâmetros: Nenhum
- Propósito: Conta o total de registros para a paginação de parâmetros específicos.
- SELNATUREZASPERMITIDASINSS15E16 (ParametroEspecifico_P2.cs)
- Parâmetros: Nenhum
- Propósito: Seleciona as descrições de verbas de informação para naturezas permitidas INSS 15 e 16.
- SPEXISTEPARAMETROESPECIFICOCADASTRADO (ParametroEspecifico_P2.cs)
- Parâmetros:
@Idf_Parametro,@Idf_Parametro_Especifico,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Centro_Resultado,@Idf_Sindicato - Propósito: Verifica se já existe um parâmetro específico cadastrado com os valores fornecidos.
- SPSELPARAMENTROESPECIFICO (ParametroEspecifico_P2.cs)
- Parâmetros:
@Idf_Parametro,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Sindicato,@Idf_Centro_Resultado - Propósito: Seleciona um parâmetro específico com base em diversos filtros.
- SQL inline para RecuperarParametroEspecificoEmpresa (ParametroEspecifico_P2.cs)
- Parâmetros:
@Idf_Parametro,@Idf_Empresa - Propósito: Recupera um parâmetro específico considerando somente a empresa.
- SQL inline para RecuperarParametroEspecificoEmpregado (ParametroEspecifico_P2.cs)
- Parâmetros:
@Idf_Parametro,@Idf_Empresa,@Idf_Filial,@Idf_Contrato - Propósito: Recupera um parâmetro específico considerando empregado (empresa, filial, contrato).
- INSERT INTO TAB_Servico_Campo (ServicoCampo_P1.cs)
- Parâmetros:
@Idf_Servico_Campo(OUTPUT),@Idf_Empresa,@Idf_Servico_Campo_Superior,@Nme_Servico_Campo,@Cod_Servico_Campo,@Flg_Permite_Avaliacao,@Idf_Tipo_Avaliacao_Campo,@Prc_Avaliacao,@Flg_Inativo,@Dta_Cadastro,@Idf_Usuario_Gerador,@Num_Ordem,@Idf_Cultura_Campo,@Idf_Tipo_Servico_Campo,@Flg_Utiliza_Bag,@Flg_SolicitaObservacao,@Flg_Utiliza_Area_Cultivada,@Flg_Descontar_Bonus,@Flg_Divisao_Bonus,@Flg_Paga_Hora_In_Itinere,@Flg_Necessita_Aprovacao - Propósito: Insere um novo registro na tabela
TAB_Servico_Campo.
- UPDATE TAB_Servico_Campo (ServicoCampo_P1.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Servico_Campo_Superior,@Nme_Servico_Campo,@Cod_Servico_Campo,@Flg_Permite_Avaliacao,@Idf_Tipo_Avaliacao_Campo,@Prc_Avaliacao,@Flg_Inativo,@Dta_Cadastro,@Idf_Usuario_Gerador,@Num_Ordem,@Idf_Cultura_Campo,@Idf_Tipo_Servico_Campo,@Flg_Utiliza_Bag,@Flg_SolicitaObservacao,@Flg_Utiliza_Area_Cultivada,@Flg_Descontar_Bonus,@Flg_Divisao_Bonus,@Flg_Paga_Hora_In_Itinere,@Flg_Necessita_Aprovacao,@Idf_Servico_Campo - Propósito: Atualiza um registro existente na tabela
TAB_Servico_Campo.
- UPDATE TAB_Servico_Campo SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Servico_Campo = @Idf_Servico_Campo ; DELETE FROM TAB_Servico_Campo (ServicoCampo_P1.cs)
- Parâmetros:
@Idf_Usuario_Gerador,@Idf_Servico_Campo - Propósito: Atualiza o usuário gerador e exclui um registro da tabela
TAB_Servico_Campo.
- SELECT * FROM TAB_Servico_Campo (ServicoCampo_P1.cs)
- Parâmetros: Nenhum
- Propósito: Seleciona todos os registros da tabela
TAB_Servico_Campo.
- SELECT * FROM TAB_Servico_Campo WHERE Idf_Servico_Campo = @Idf_Servico_Campo (ServicoCampo_P1.cs)
- Parâmetros:
@Idf_Servico_Campo - Propósito: Seleciona um registro da tabela
TAB_Servico_Campopelo seu identificador.
- SQL inline para paginação de ServicoCampo (ServicoCampo_P1.cs)
- Parâmetros:
@colunaOrdenacao,@direcaoOrdenacao,@paginaCorrente,@tamanhoPagina - Propósito: Retorna uma consulta paginada de serviços de campo.
- SELECT COUNT(*) FROM (…) AS temp (ServicoCampo_P1.cs)
- Parâmetros: Nenhum
- Propósito: Conta o total de registros para a paginação de serviços de campo.
- SELSERVICOCAMPOPOREMPRESA (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Empresa,@Descricao - Propósito: Seleciona serviços de campo por empresa e descrição, incluindo informações de cultura, tipo de serviço e avaliação.
- SPVALIDARNOMESERVICOCAMPOJACADASTRADO (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo,@Idf_Empresa,@Idf_Cultura_Campo,@Nme_Servico_Campo - Propósito: Valida se o nome do serviço de campo já está cadastrado para a empresa e cultura.
- SPVALIDARCODIGOSERVICOCAMPOJACADASTRADO (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo,@Idf_Empresa,@Idf_Cultura_Campo,@Cod_Servico_Campo - Propósito: Valida se o código do serviço de campo já está cadastrado para a empresa e cultura.
- SPVALIDARNUMEROORDEMSERVICOCAMPOJACADASTRADO (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Servico_Campo,@Idf_Servico_Campo_Superior,@Num_Ordem - Propósito: Valida se o número de ordem já está cadastrado para outro serviço dentro do mesmo serviço superior.
- SPCARREGARPERCENTUALAVALIACAOSERVICOSUPERIOR (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo,@Idf_Empresa,@Idf_Servico_Campo_Superior,@Idf_Cultura_Campo - Propósito: Calcula a soma dos percentuais de avaliação dos serviços de campo filhos de um serviço superior.
- SPVALIDARSERVICOCAMPOJAVINCULADOSINDICATO (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo - Propósito: Valida se o serviço de campo está vinculado a um sindicato.
- SPVALIDARSERVICOCAMPOJAAVALIADO (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo - Propósito: Valida se o serviço de campo já foi avaliado.
- SPVALIDARSERVICOCAMPOJAREALIZADO (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo - Propósito: Valida se o serviço de campo já foi realizado.
- SPVALIDARSERVICOCAMPOOCORRENCIAJALANCADO (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo - Propósito: Valida se o serviço de campo já possui ocorrências lançadas.
- SPVALIDARSERVICOCAMPOJAVINCULADOOUTROSERVICOCAMPO (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo - Propósito: Valida se o serviço de campo está vinculado a outro serviço de campo (como superior).
- SQL inline para ListarParaImportacao (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Lista serviços de campo para importação dinâmica.
- SQL inline para BuscarServicoCampoPorCodigoEmpresa (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Empresa,@Cod_Servico_Campo,@CulturaCampo - Propósito: Busca um serviço de campo pelo código, cultura e empresa.
- SQL inline para ListarPorEmpresa (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Retorna os serviços de campo de uma empresa, opcionalmente filtrando por ativos/inativos.
- SQL inline para ListarPorServicoCampoSuperior (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo - Propósito: Lista serviços de campo que possuem o mesmo nome de um serviço superior.
- SQL inline para ListarServicoCampos (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo - Propósito: Lista serviços de campo que são filhos de um serviço superior.
- SQL inline para ListarServicoCamposMicros (ServicoCampo_P2.cs)
- Parâmetros:
@Idf_Servico_Campo - Propósito: Lista serviços de campo que são filhos de um serviço superior.
- SQL inline para BuscaComponentePaginado (ServicoCampo_P2.cs)
- Parâmetros:
@BuscaTexto,@Idf_Empresa,@Flg_Permite_Avaliacao,@Idf_Tipo_Avaliacao_Campo,@Idf_Servico_Campo_Superior,@Idf_Cultura_Campo,@Idf_Tipo_Servico_Campo - Propósito: Busca serviços de campo paginados para um componente.
- SQL inline para ListarAutocomplete (ServicoCampo_P2.cs)
- Parâmetros:
@TOP,@BuscaTexto,@Idf_Empresa,@Flg_Permite_Avaliacao,@Idf_Tipo_Avaliacao_Campo,@Idf_Servico_Campo_Superior,@Idf_Cultura_Campo,@Idf_Tipo_Servico_Campo - Propósito: Lista serviços de campo para autocomplete.
- SELECT COUNT(Idf_Servico_Campo_Individual_Desconsiderado) FROM TAB_Servico_Campo_Individual_Desconsiderado (ServicoCampoIndividualDesconsiderado.cs)
- Parâmetros: Nenhum (WHERE clause é construída dinamicamente)
- Propósito: Conta o número de serviços de campo individuais desconsiderados com base em filtros.
- INSERT INTO plataforma.TAB_Tipo_Avaliacao_Campo (TipoAvaliacaoCampo_P1.cs)
- Parâmetros:
@Idf_Tipo_Avaliacao_Campo,@Des_Tipo_Avaliacao_Campo,@Dta_Cadastro,@Flg_Inativo - Propósito: Insere um novo registro na tabela
plataforma.TAB_Tipo_Avaliacao_Campo.
- UPDATE plataforma.TAB_Tipo_Avaliacao_Campo (TipoAvaliacaoCampo_P1.cs)
- Parâmetros:
@Des_Tipo_Avaliacao_Campo,@Dta_Cadastro,@Flg_Inativo,@Idf_Tipo_Avaliacao_Campo - Propósito: Atualiza um registro existente na tabela
plataforma.TAB_Tipo_Avaliacao_Campo.
- DELETE FROM plataforma.TAB_Tipo_Avaliacao_Campo (TipoAvaliacaoCampo_P1.cs)
- Parâmetros:
@Idf_Tipo_Avaliacao_Campo - Propósito: Exclui um registro da tabela
plataforma.TAB_Tipo_Avaliacao_Campo.
- SELECT * FROM plataforma.TAB_Tipo_Avaliacao_Campo (TipoAvaliacaoCampo_P1.cs)
- Parâmetros: Nenhum
- Propósito: Seleciona todos os registros da tabela
plataforma.TAB_Tipo_Avaliacao_Campo.
- SELECT * FROM plataforma.TAB_Tipo_Avaliacao_Campo WHERE Idf_Tipo_Avaliacao_Campo = @Idf_Tipo_Avaliacao_Campo (TipoAvaliacaoCampo_P1.cs)
- Parâmetros:
@Idf_Tipo_Avaliacao_Campo - Propósito: Seleciona um registro da tabela
plataforma.TAB_Tipo_Avaliacao_Campopelo seu identificador.
- SQL inline para paginação de TipoAvaliacaoCampo (TipoAvaliacaoCampo_P1.cs)
- Parâmetros:
@colunaOrdenacao,@direcaoOrdenacao,@paginaCorrente,@tamanhoPagina - Propósito: Retorna uma consulta paginada de tipos de avaliação de campo.
- SELECT COUNT(*) FROM (…) AS temp (TipoAvaliacaoCampo_P1.cs)
- Parâmetros: Nenhum
- Propósito: Conta o total de registros para a paginação de tipos de avaliação de campo.
- SELECT * FROM plataforma.TAB_Tipo_Avaliacao_Campo WHERE Flg_Inativo = 0 (TipoAvaliacaoCampo_P2.cs)
- Parâmetros: Nenhum
- Propósito: Lista todos os tipos de avaliação de campo que estão ativos.
- SPSELPERMISSOES (Usuario_P2.cs)
- Parâmetros:
@IdF_Usuario,@Pesquisa,@CurrentPage,@PageSize,@SortExpression - Propósito: Consulta permissões do usuário em diferentes níveis (grupo econômico, empresa, filial, contrato, centro de resultado), incluindo exceções, com paginação e pesquisa.
- SPSELPERMISSOESVISUALIZACAOESOCIAL (Usuario_P2.cs)
- Parâmetros:
@IdF_Usuario - Propósito: Consulta permissões de visualização do eSocial para o usuário.
- SPSELECTPAG (Usuario_P2.cs)
- Parâmetros:
@CurrentPage,@PageSize,@SortExpression,@WhereExpression - Propósito: Consulta paginada de usuários, incluindo informações da pessoa física associada.
- SPSELECTUSU (Usuario_P2.cs)
- Parâmetros:
@Nome,@Status - Propósito: Seleciona usuários por nome da pessoa física e status de inatividade.
- CARREGARCPF (Usuario_P2.cs)
- Parâmetros:
@N_CPF,@Status - Propósito: Seleciona usuários por CPF e status de inatividade.
- SELRELATORIOUSUARIOSPORPERFIL (Usuario_P2.cs)
- Parâmetros:
@Idf_Perfil - Propósito: Gera um relatório de usuários por perfil, incluindo nome, CPF formatado, e-mail e celular.
- SPSELECTCPF (Usuario_P2.cs)
- Parâmetros:
@Num_CPF - Propósito: Seleciona um usuário pelo número do CPF.
- SPSELECTCPFS (Usuario_P2.cs)
- Parâmetros: Nenhum
- Propósito: Seleciona todos os CPFs distintos de usuários.
- SPSELPERFIL (Usuario_P2.cs)
- Parâmetros:
@Idf_Usuario,@Dta_Periodo - Propósito: Seleciona os perfis de um usuário, indicando se o perfil é principal e o período de permissão.
- SPSELPERFILSISTEMA (Usuario_P2.cs)
- Parâmetros:
@Idf_Usuario,@Dta_Periodo,@Idf_Sistema - Propósito: Seleciona os perfis de um usuário para um sistema específico, com período de permissão e indicação de perfil principal.
- SPSELECTPERMISSOESUSUARIO (Usuario_P2.cs)
- Parâmetros:
@idf_usuario,@Idf_Categoria_Permissao - Propósito: Seleciona as permissões de um usuário para uma categoria de permissão específica.
- SPSELECTCODNOME (Usuario_P2.cs)
- Parâmetros:
@Nme_Pessoa,@Num_CPF - Propósito: Seleciona usuários por nome da pessoa física ou CPF.
- SPSELECTPORNOME (Usuario_P2.cs)
- Parâmetros:
@Nme_Pessoa - Propósito: Seleciona usuários por nome da pessoa física.
- SPCARREGARUSUARIOSFILAATUALIZACAOPONTO (Usuario_P2.cs)
- Parâmetros:
@Num_Tentativas - Propósito: Carrega usuários para a fila de integração de ponto, com filtros de tentativas e inatividade.
- SPVERIFICARFILIAISPONTO (Usuario_P2.cs)
- Parâmetros:
@Num_CPF - Propósito: Verifica as filiais de ponto que um usuário tem acesso, considerando diferentes níveis de permissão.
- SELECTUSUARIOCONTAPAGAR (Usuario_P2.cs)
- Parâmetros:
@Idf_Usuario - Propósito: Seleciona informações de usuário para contas a pagar, incluindo CPF formatado e nome.
- SPRECUPERARFILIAISQUEUSUARIOTEMACESSO (Usuario_P2.cs)
- Parâmetros:
@Idf_Usuario,@Idf_Empresa - Propósito: Recupera as filiais que um usuário tem acesso para uma empresa específica.
- SPSELPERFILSISTEMASENHAMASTER (Usuario_P2.cs)
- Parâmetros:
@Idf_Usuario,@Dta_Periodo,@Idf_Sistema - Propósito: Seleciona perfis de sistema com senha master para o usuário.
- SPSELECTAGRUPAMENTOUSUARIO (Usuario_P2.cs)
- Parâmetros:
@Num_CPF(lista de CPFs) - Propósito: Seleciona agrupamento de usuário por CPF, incluindo informações de perfil, grupo econômico, empresa, filial, contrato e centro de resultado.
- TAB_SF_ProximoDiaUtil (Util.cs)
- Parâmetros:
@Data,@Incremento,@Idf_Estado,@Idf_Cidade - Propósito: Função de tabela que calcula o próximo dia útil.
- TAB_SF_ProximoDiaUtilEspecifico (Util.cs)
- Parâmetros:
@Data,@Incremento,@Idf_Estado,@Idf_Cidade,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Centro_Resultado - Propósito: Função de tabela que calcula o próximo dia útil específico com base em diversos filtros.
- TAB_SF_ProximoDiaUtilEspecificoFDS (Util.cs)
- Parâmetros:
@Data,@Incremento,@Idf_Estado,@Idf_Cidade,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Centro_Resultado,@ContemplaFDS - Propósito: Função de tabela que calcula o próximo dia útil específico, com opção de contemplar fins de semana.
- SQL inline para Weekend (Util.cs)
- Parâmetros:
@PayDay - Propósito: Retorna o dia da semana de uma data.
- SQL inline para ProximoDiaUtilPorEmpregados (Util.cs)
- Parâmetros:
@Lst_Num_Matricula - Propósito: Seleciona informações de cidade e estado de empregados.
- TAB_SF_Split (Util.cs)
- Parâmetros:
@Lst_Num_Matricula,, - Propósito: Função de tabela que divide uma string em uma tabela de valores.
- SELMESANOCOMPETENCIA (Util.cs)
- Parâmetros:
@Dta - Propósito: Retorna o mês e ano de competência formatados.
- SELDIASUTEIS (Util.cs)
- Parâmetros:
@Dta,@DiasUteis - Propósito: Conta a quantidade de dias úteis ou não úteis em um mês.
- SELALIQUOTASINSS (Util.cs)
- Parâmetros:
@Dta - Propósito: Seleciona as alíquotas de INSS vigentes para uma data.
- SELSALMINNACIONAL (Util.cs)
- Parâmetros: Nenhum
- Propósito: Seleciona o valor do salário mínimo nacional vigente.
- INSERT INTO TAB_Empresa (Empresa_P1.cs)
- Parâmetros:
@Idf_Grupo_Economico,@Num_CNPJ,@Num_CPF,@Raz_Social,@Dta_Fundacao,@Idf_Porte_Empresa,@Idf_Simples,@Vlr_Isencao_Filantropica,@Qtd_Socios,@Idf_Pessoa_Fisica,@Flg_Inativo,@Dta_Cadastro,@Dta_Alteracao,@Num_Semente,@Num_Semente_Ficha,@Cod_Empresa,@Idf_Usuario_Gerador,@Flg_Audita_Fatura,@Flg_Horario_Limite_Faturamento,@Num_Hora_Limite_Faturamento,@Num_Minuto_Limite_Faturamento,@Idf_Tipo_Estrutura_Gerencial,@Dta_Inativacao,@Sig_Empresa,@Idf_Situacao_Cadastral_Fisica,@Idf_Situacao_Cadastral_Juridica,@Idf_Tipo_Acordo_Internacional,@Idf_Tipo_Indicativo_Construtora,@Idf_Tipo_Registro_Eletronico_Empregados,@Idf_Processo_Administrativo_Judicial,@Idf_Tipo_Clafissicacao_Tributaria,@Idf_Tipo_Cooperativa,@Num_SIAFI,@Idf_Classificacao_Economica,@Idf_Indicador_Contribuicao_Substituida,@Vlr_Contribuicao_Mes,@Vlr_Contribuicao_13,@Idf_Empresa(OUTPUT) - Propósito: Insere um novo registro na tabela
TAB_Empresa.
- UPDATE TAB_Empresa (Empresa_P1.cs)
- Parâmetros:
@Idf_Grupo_Economico,@Num_CNPJ,@Num_CPF,@Raz_Social,@Dta_Fundacao,@Idf_Porte_Empresa,@Idf_Simples,@Vlr_Isencao_Filantropica,@Qtd_Socios,@Idf_Pessoa_Fisica,@Flg_Inativo,@Dta_Cadastro,@Dta_Alteracao,@Num_Semente,@Num_Semente_Ficha,@Cod_Empresa,@Idf_Usuario_Gerador,@Flg_Audita_Fatura,@Flg_Horario_Limite_Faturamento,@Num_Hora_Limite_Faturamento,@Num_Minuto_Limite_Faturamento,@Idf_Tipo_Estrutura_Gerencial,@Dta_Inativacao,@Sig_Empresa,@Idf_Situacao_Cadastral_Fisica,@Idf_Situacao_Cadastral_Juridica,@Idf_Tipo_Acordo_Internacional,@Idf_Tipo_Indicativo_Construtora,@Idf_Tipo_Registro_Eletronico_Empregados,@Idf_Processo_Administrativo_Judicial,@Idf_Tipo_Clafissicacao_Tributaria,@Idf_Tipo_Cooperativa,@Num_SIAFI,@Idf_Classificacao_Economica,@Idf_Indicador_Contribuicao_Substituida,@Vlr_Contribuicao_Mes,@Vlr_Contribuicao_13,@Idf_Empresa - Propósito: Atualiza um registro existente na tabela
TAB_Empresa.
- UPDATE TAB_Empresa SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Empresa = @Idf_Empresa ; DELETE FROM TAB_Empresa (Empresa_P1.cs)
- Parâmetros:
@Idf_Usuario_Gerador,@Idf_Empresa - Propósito: Atualiza o usuário gerador e exclui um registro da tabela
TAB_Empresa.
- SELECT * FROM TAB_Empresa WHERE Idf_Empresa = @Idf_Empresa (Empresa_P1.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Seleciona um registro da tabela
TAB_Empresapelo seu identificador.
- SQL inline para paginação de Empresa (Empresa_P1.cs)
- Parâmetros:
@colunaOrdenacao,@direcaoOrdenacao,@paginaCorrente,@tamanhoPagina - Propósito: Retorna uma consulta paginada de empresas.
- SELECT COUNT(*) FROM (…) AS temp (Empresa_P1.cs)
- Parâmetros: Nenhum
- Propósito: Conta o total de registros para a paginação de empresas.
- SPSELECTNOMEPARCIALCOUNT (Empresa_P2.cs)
- Parâmetros:
@Count,@Idf_Grupo_Economico,@Valor - Propósito: Seleciona empresas por grupo econômico e nome/CNPJ/CPF parcial, limitado por
TOP.
- SPSELECTNOME (Empresa_P2.cs)
- Parâmetros:
@Raz_Social - Propósito: Seleciona empresas por razão social parcial.
- SPSELECTCNPJ (Empresa_P2.cs)
- Parâmetros:
@Num_CNPJ - Propósito: Seleciona empresas por CNPJ.
- SPSELECTCPF (Empresa_P2.cs)
- Parâmetros:
@Num_CPF - Propósito: Seleciona empresas por CPF.
- SPSELECTPORIDEMPRESA (Empresa_P2.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Seleciona empresa por ID.
- SPSELECTNOMEEXATO (Empresa_P2.cs)
- Parâmetros:
@Raz_Social - Propósito: Seleciona empresa por razão social exata.
- SELECTPORNOMECNPJ (Empresa_P2.cs)
- Parâmetros:
@Raz_Social,@Num_CNPJ - Propósito: Seleciona empresas por razão social ou CNPJ.
- SPSELECTPORCEI (Empresa_P2.cs)
- Parâmetros:
@Num_CEI - Propósito: Seleciona empresas por CEI da filial.
- SPSELECTPORCNPJCEI (Empresa_P2.cs)
- Parâmetros:
@CNPJCEI - Propósito: Seleciona empresas por CNPJ, CEI ou CPF.
- SELECTPORNOMECNPJCEI (Empresa_P2.cs)
- Parâmetros:
@Raz_Social,@Num_CNPJ,@Num_CEI - Propósito: Seleciona empresas por razão social, CNPJ ou CEI.
- SELECTEMPRESAPORMOVIMENTACAO (Empresa_P2.cs)
- Parâmetros:
@numCNPJ,@dtaInicial,@dtaFinal - Propósito: Seleciona informações da empresa para movimentação de empregados (admissão/demissão).
- SPSELECTFILIALCOMCNPJ (Empresa_P2.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Conta o número de filiais com CNPJ para uma empresa.
- SPSELECTFILIALRAISSEMEMPREGADO (Empresa_P2.cs)
- Parâmetros:
{0}(lista de Idf_Filial),@Idf_Empresa,@Idf_Filial - Propósito: Seleciona filiais para RAIS sem empregados.
- SPSELECTFILIALRAIS (Empresa_P2.cs)
- Parâmetros:
@ano_base,@Idf_Filial - Propósito: Seleciona informações detalhadas da filial para RAIS.
- LISTARPORUSUGRUEMPPARCIAL (Empresa_P2.cs)
- Parâmetros:
@Idf_Grupo_Economico,@Raz_Social,@Idf_Usuario - Propósito: Lista empresas por grupo econômico e razão social parcial, considerando acesso do usuário.
- LISTARPORUSUGRUEMPEXATO (Empresa_P2.cs)
- Parâmetros:
@Idf_Grupo_Economico,@Raz_Social,@Idf_Usuario - Propósito: Lista empresas por grupo econômico e razão social exata, considerando acesso do usuário.
- LISTARPORUSUEMPEXATO (Empresa_P2.cs)
- Parâmetros:
@Raz_Social,@Idf_Usuario - Propósito: Lista empresas por razão social exata, considerando acesso do usuário.
- SplistarPorUsuEmpExato (Empresa_P2.cs)
- Parâmetros:
@Raz_Social,@Idf_Usuario - Propósito: Lista empresas ativas por razão social exata, considerando acesso do usuário.
- SPSELECTAUTOCOMPLETE (Empresa_P2.cs)
- Parâmetros:
@Count,@Raz_Social,@Idf_Usuario - Propósito: Seleciona empresas para autocomplete por razão social, considerando acesso do usuário.
- SELBYGECTEXT (Empresa_P2.cs)
- Parâmetros:
@Idf_Grupo_Economico,@Num_CNPJ,@text - Propósito: Seleciona empresas por grupo econômico e CNPJ ou texto.
- SELBYGECTEXT2 (Empresa_P2.cs)
- Parâmetros:
@Idf_Grupo_Economico,@Num_CNPJ,@text - Propósito: Seleciona empresas por grupo econômico e CNPJ ou texto exato.
- SPVERIFICABLOQUEIOEMPRESA (Empresa_P2.cs)
- Parâmetros:
@Idf_Empresa,@Idf_Usuario - Propósito: Verifica se a empresa possui bloqueio de folha por outro usuário.
- SELPORGRUPOECONOMICO (Empresa_P2.cs)
- Parâmetros:
@Idf_Grupo_Economico - Propósito: Seleciona empresas ativas por grupo econômico.
- SPCONSULTAINTEGRACAOFINANCEIRO (Empresa_P2.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Verifica se a empresa possui integração financeira.
- SPSELECTEMPRESASPORUSUARIO (Empresa_P2.cs)
- Parâmetros:
@Idf_Usuario - Propósito: Seleciona empresas que o usuário tem acesso.
- SELVERIFICACODIGOJACADASTRADO (Empresa_P2.cs)
- Parâmetros:
@Cod_Empresa,@Num_CNPJ,@Idf_Grupo_Economico - Propósito: Verifica se o código da empresa já está cadastrado.
- SELVERIFICASIGLAJACADASTRADA (Empresa_P2.cs)
- Parâmetros:
@Idf_Empresa,@Sig_Empresa - Propósito: Verifica se a sigla da empresa já está cadastrada.
- SplistarAtiva (Empresa_P2.cs)
- Parâmetros: Nenhum
- Propósito: Lista empresas ativas.
- SplistarEmpresasFiltro (Empresa_P2.cs)
- Parâmetros:
@Idf_Usuario - Propósito: Lista empresas filtradas por acesso do usuário.
- SplistarContribuicaoSubstituida (Empresa_P2.cs)
- Parâmetros: Nenhum
- Propósito: Lista indicadores de contribuição substituída.
- SQL inline para RecuperarPorIntegracaoFinanceira (Empresa_P3.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Recupera empresa por integração financeira.
- SQL inline para RecuperarEmpresaMatriz (Empresa_P3.cs)
- Parâmetros:
@Idf_Arquivo_Gerado - Propósito: Recupera a empresa matriz a partir de um arquivo gerado.
- SQL inline para RecuperarCodigo (Empresa_P3.cs)
- Parâmetros: Nenhum
- Propósito: Recupera o próximo código de empresa disponível.
- SELUPDMATRICULA (Empresa_P3.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Atualiza a semente de matrícula e retorna a próxima matrícula disponível.
- SELUPDFICHA (Empresa_P3.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Atualiza a semente da ficha de registro e retorna a próxima ficha disponível.
- ATUALIZASEMENTEFICHA (Empresa_P3.cs)
- Parâmetros:
@Num_Semente_Ficha,@Idf_Empresa - Propósito: Atualiza o número da semente da ficha de registro para uma empresa.
- SELINFOFILIALEMPRESA (Empresa_P3.cs)
- Parâmetros:
@idfEmpresa,@idfFilial,@idfBanco - Propósito: Seleciona informações detalhadas de filial e empresa, incluindo dados bancários e de endereço.
- SQL inline para VerificaEmpresaPrestadora (Empresa_P3.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Verifica se a empresa é uma filial matriz prestadora.
- SQL inline para CarregarProdutorRuralEmpresaPeriodo (Empresa_P3.cs)
- Parâmetros:
@Idf_Empresa,@Num_Mes,@Num_Ano - Propósito: Carrega informações de produtor rural para uma empresa e período.
- SQL inline para CompleteAuditoria (Empresa_P3.cs)
- Parâmetros:
@Idf_Empresa - Propósito: Seleciona a razão social de uma empresa para fins de auditoria.
- ATUALIZASEMENTE (Empresa_P3.cs)
- Parâmetros:
@Num_Semente_Referencia,@Idf_Empresa - Propósito: Atualiza o número da semente de matrícula se o valor de referência for maior.
- INSERT INTO plataforma.TAB_Tipo_Servico_Campo (TipoServicoCampo_P1.cs)
- Parâmetros:
@Idf_Tipo_Servico_Campo,@Des_Tipo_Servico_Campo,@Dta_Cadastro,@Flg_Inativo - Propósito: Insere um novo registro na tabela
plataforma.TAB_Tipo_Servico_Campo.
- UPDATE plataforma.TAB_Tipo_Servico_Campo (TipoServicoCampo_P1.cs)
- Parâmetros:
@Des_Tipo_Servico_Campo,@Dta_Cadastro,@Flg_Inativo,@Idf_Tipo_Servico_Campo - Propósito: Atualiza um registro existente na tabela
plataforma.TAB_Tipo_Servico_Campo.
- DELETE FROM plataforma.TAB_Tipo_Servico_Campo (TipoServicoCampo_P1.cs)
- Parâmetros:
@Idf_Tipo_Servico_Campo - Propósito: Exclui um registro da tabela
plataforma.TAB_Tipo_Servico_Campo.
- SELECT * FROM plataforma.TAB_Tipo_Servico_Campo (TipoServicoCampo_P1.cs)
- Parâmetros: Nenhum
- Propósito: Seleciona todos os registros da tabela
plataforma.TAB_Tipo_Servico_Campo.
- SELECT * FROM plataforma.TAB_Tipo_Servico_Campo WHERE Idf_Tipo_Servico_Campo = @Idf_Tipo_Servico_Campo (TipoServicoCampo_P1.cs)
- Parâmetros:
@Idf_Tipo_Servico_Campo - Propósito: Seleciona um registro da tabela
plataforma.TAB_Tipo_Servico_Campopelo seu identificador.
- SQL inline para paginação de TipoServicoCampo (TipoServicoCampo_P1.cs)
- Parâmetros:
@colunaOrdenacao,@direcaoOrdenacao,@paginaCorrente,@tamanhoPagina - Propósito: Retorna uma consulta paginada de tipos de serviço de campo.
- SELECT COUNT(*) FROM (…) AS temp (TipoServicoCampo_P1.cs)
- Parâmetros: Nenhum
- Propósito: Conta o total de registros para a paginação de tipos de serviço de campo.
- SELECT * FROM plataforma.TAB_Tipo_Servico_Campo WHERE Flg_Inativo = 0 (TipoServicoCampo_P2.cs)
- Parâmetros: Nenhum
- Propósito: Lista todos os tipos de serviço de campo que estão ativos.
7.3. UserControls incluídos (.ascx)
- Employer:ListaSugestoes (ID:
lsCultura,lsTipoServico,lsPermiteAvaliacao,lsTipoAvaliacao,lsUtilizaAreaCultivada,lsUtilizaBag,lsSituacao,lsSolicitarObservacao,lsDescontarBonus,lsDivisaoBonus,lsRecebeHoraInItinere,lsNecessitaAprovacao)
- Propriedades expostas/utilizadas:
Obrigatorio,ValidationGroup,MensagemErroInvalidoSummary,MensagemErroFormatoSummary,MensagemErroObrigatorioSummary,Valor,ValorInt,ValorBooleano,Enabled,Dicionario. - Eventos:
OnValueChanged(paralsCultura,lsTipoServico,lsPermiteAvaliacao). - Propósito: Componente genérico para seleção de itens de uma lista, com suporte a validação e preenchimento dinâmico.
- Employer:ControlAlfaNumerico (ID:
txtServicoCampo,txtCodigoServicoCampo,txtPesquisar)
- Propriedades expostas/utilizadas:
Obrigatorio,ValidationGroup,Width,MensagemErroInvalidoSummary,MensagemErroFormatoSummary,MensagemErroObrigatorioSummary,Text,CssClassTextBox. - Propósito: Componente para entrada de texto alfanumérico, com suporte a validação.
- Employer:LocalizarServicoCampo (ID:
txtServicoCampoSuperior)
- Propriedades expostas/utilizadas:
Obrigatorio,ServicoCampoAnaliticoSintetico,ValidationGroup,MensagemErroInvalidoSummary,MensagemErroFormatoSummary,MensagemErroObrigatorioSummary,IdEmpresa,IdCulturaCampo,IdServicoCampoSelecionado,Titulo. - Eventos:
OnValorAlterado. - Propósito: Componente para localizar e selecionar um serviço de campo superior, com filtros e validação.
- Employer:ValorNumericoTextBox (ID:
txtNumeroOrdem,txtPercentualAvaliacao)
- Propriedades expostas/utilizadas:
Obrigatorio,Enabled,Width,CasasDecimais,ValorMinimo,ValorMaximo,ValidationGroup,MensagemErroInvalidoSummary,MensagemErroFormatoSummary,MensagemErroObrigatorioSummary,ValorInteiro,ValorDecimal. - Propósito: Componente para entrada de valores numéricos, com validação de formato, casas decimais, valor mínimo e máximo.
- Employer:EmployerValidationSummary (ID:
vsValidacao)
- Propriedades expostas/utilizadas:
DisplayMode,CssClass,HeaderText,ValidationGroup. - Propósito: Exibe um resumo de todas as mensagens de validação da página.
- Employer:Button (ID:
btnSalvar,btnLimpar,btnVoltar,btnPesquisar)
- Propriedades expostas/utilizadas:
Text,OnClick,ValidationGroup,CausesValidation,CssClass. - Propósito: Botões de ação na tela.
- Employer:EmployerGrid (ID:
gvwServicoCampo)
- Propriedades expostas/utilizadas:
AutoGenerateColumns,DataKeyNames,ShowHeader,AllowPaging,AllowSorting,EmptyDataText,MockColunaOrdenada,MockDirecaoOrdenacao,PageSize,MockItemCount. - Eventos:
OnRowCommand,OnRowDataBound,OnCarregarGrid. - Propósito: Grid para exibir dados paginados e ordenáveis, com colunas configuráveis e botões de ação por linha.
7.4. WebServices, APIs externas, filas
- eSocial API: A classe
BasePageWebFoPaginterage com uma API externa do eSocial para verificar o status de habilitação do empregador e exibir modais relacionados.
- Endpoint:
/api/cliente/verificarempregador/{0}/{1}/ - Método: GET
- Parâmetros: Tipo de Inscrição do Empregador, Número de Inscrição do Empregador.
- Propósito: Verifica se o empregador está cadastrado no eSocial.
- Endpoint:
{0}esocial.html?layouts={1}&ids={2}&nrInsc={3}&tpInsc={4} - Propósito: Exibe modal do eSocial para layouts e IDs específicos.
- Endpoint:
{0}implantacao.html?nrInsc={1}&tpInsc={2} - Propósito: Exibe modal de implantação do eSocial.
- Endpoint:
{0}config.html?nrInsc={1}&tpInsc={2} - Propósito: Exibe modal de configuração do eSocial.
- Endpoint:
{0}eventos.html?layouts={1}&ids={2}&nrInsc={3}&tpInsc={4} - Propósito: Exibe modal de eventos do eSocial.
- Endpoint:
{0}relatorios.html - Propósito: Exibe modal de relatórios do eSocial.
- Fila de Cálculo (FilaCalculoTransactionSingleton): A classe
Empresa(emEmpresa_P2.cs) interage com uma fila de cálculo para enviar empregados para recálculo quando há alterações na empresa. - Auditoria (AuditoriaEventMapTransaction): A classe
Empresa(emEmpresa_P2.cs) integra eventos de auditoria.
8. Mensagens ao Usuário
- “Usuário não tem permissão para executar essa operação!” (TipoMensagem.Aviso)
- “O campo Tipo Avaliação é obrigatório.” (TipoMensagem.Erro)
- “O campo Percentual Avaliação é obrigatório.” (TipoMensagem.Erro)
Resources.MensagemAviso._100001: Mensagem de sucesso ao salvar.Resources.MensagemAviso._100002: Mensagem de sucesso ao excluir.Resources.MensagemErroModuloSafraMisto._1: “Já existe um serviço de campo cadastrado com este nome para a cultura selecionada.” (seUtilizaModuloSafraMistofor verdadeiro)Resources.MensagemErroModuloSafra._1: “Já existe um serviço de campo cadastrado com este nome para a cultura selecionada.” (seUtilizaModuloSafraMistofor falso)Resources.MensagemErroModuloSafraMisto._2: “Já existe um serviço de campo cadastrado com este código para a cultura selecionada.”Resources.MensagemErroModuloSafra._2: “Já existe um serviço de campo cadastrado com este código para a cultura selecionada.”Resources.MensagemErroModuloSafraMisto._3: “Já existe um serviço de campo cadastrado com este número de ordem para o serviço superior selecionado.”Resources.MensagemErroModuloSafra._3: “Já existe um serviço de campo cadastrado com este número de ordem para o serviço superior selecionado.”Resources.MensagemErroModuloSafraMisto._4: “A soma dos percentuais de avaliação dos serviços de campo filhos não pode ser superior a 100%.”Resources.MensagemErroModuloSafra._4: “A soma dos percentuais de avaliação dos serviços de campo filhos não pode ser superior a 100%.”Resources.MensagemErroModuloSafraMisto._5: “Não é possível excluir o serviço de campo, pois ele está vinculado a um sindicato.”Resources.MensagemErroModuloSafra._5: “Não é possível excluir o serviço de campo, pois ele está vinculado a um sindicato.”Resources.MensagemErroModuloSafraMisto._6: “Não é possível excluir o serviço de campo, pois ele já foi realizado.”Resources.MensagemErroModuloSafra._6: “Não é possível excluir o serviço de campo, pois ele já foi realizado.”Resources.MensagemErroModuloSafraMisto._7: “Não é possível excluir o serviço de campo, pois ele já possui ocorrências lançadas.”Resources.MensagemErroModuloSafra._7: “Não é possível excluir o serviço de campo, pois ele já possui ocorrências lançadas.”Resources.MensagemErroModuloSafraMisto._8: “Não é possível excluir o serviço de campo, pois ele já foi avaliado.”Resources.MensagemErroModuloSafra._8: “Não é possível excluir o serviço de campo, pois ele já foi avaliado.”Resources.MensagemErroModuloSafraMisto._9: “Não é possível excluir o serviço de campo, pois ele está vinculado a outro serviço de campo.”Resources.MensagemErroModuloSafra._9: “Não é possível excluir o serviço de campo, pois ele está vinculado a outro serviço de campo.”Resources.MensagemErroModuloSafraMisto._10: “Não é possível excluir o serviço de campo, pois ele possui um serviço de campo individual desconsiderado.”Resources.MensagemErroModuloSafra._10: “Não é possível excluir o serviço de campo, pois ele possui um serviço de campo individual desconsiderado.”Resources.MensagemErroModuloSafraMisto._11: “Erro ao excluir o serviço de campo.”Resources.MensagemErroModuloSafra._11: “Erro ao excluir o serviço de campo.”Resources.MensagemErroModuloSafraMisto._12: “Erro ao salvar o serviço de campo.”Resources.MensagemErroModuloSafra._12: “Erro ao salvar o serviço de campo.”- “Inconsistência no Centro de Serviço, Empresa ou Usuário logados.” (Mensagem de erro de redirecionamento na
BasePageWebFoPag) - “Erro ao autenticar” (Mensagem de erro ao exibir modal do eSocial na
BasePageWebFoPag) - “Endereço da Filial não encontrado!” (Erro ao calcular próximo dia útil na
Util)
9. Permissões e Perfis
- Employer.Plataforma.BLL.Enumeradores.Permissoes.ServicoCampo.VisualizarServicoCampo: Controla o acesso à tela. Se o usuário não tiver essa permissão, é redirecionado para a página de acesso negado. (ServicoCampoCadastro.aspx.cs - ConfigurarPermissoesTela)
- Employer.Plataforma.BLL.Enumeradores.Permissoes.ServicoCampo.SalvarServicoCampo: Controla a habilitação do botão “Salvar”. Se o usuário não tiver essa permissão, o botão é desabilitado e uma mensagem de aviso é exibida ao tentar salvar. (ServicoCampoCadastro.aspx.cs - ConfigurarPermissoesTela, btnSalvar_Click)
- Employer.Plataforma.BLL.Enumeradores.Permissoes.ServicoCampo.ExcluirServicoCampo: Controla a habilitação do botão “Excluir” na grid. (ServicoCampoCadastro.aspx.cs - gvwServicoCampo_RowDataBound)
10. Aprofundamento — Detalhes Internos de Métodos
Employer.Plataforma.BLL.ServicoCampo
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ServicoCampo_P1.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ServicoCampo_P2.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
ServicoCampo() | public ServicoCampo() | Construtor padrão da classe. |
ServicoCampo(int idServicoCampo) | public ServicoCampo(int idServicoCampo) | Construtor que inicializa a instância com um ID de serviço de campo. |
Save() | public void Save() | Salva (insere ou atualiza) a instância de ServicoCampo no banco de dados. Se for uma atualização de um serviço superior, atualiza os serviços micro associados. |
Save(SqlTransaction trans) | public void Save(SqlTransaction trans) | Salva (insere ou atualiza) a instância de ServicoCampo no banco de dados, dentro de uma transação. Se for uma atualização de um serviço superior, atualiza os serviços micro associados. |
Delete(int idServicoCampo) | public static void Delete(int idServicoCampo) | Exclui um registro de ServicoCampo pelo ID. |
Delete(int idServicoCampo, SqlTransaction trans) | public static void Delete(int idServicoCampo, SqlTransaction trans) | Exclui um registro de ServicoCampo pelo ID, dentro de uma transação. |
Delete(List<int> idServicoCampo) | public static void Delete(List<int> idServicoCampo) | Exclui múltiplos registros de ServicoCampo por uma lista de IDs. |
LoadObject(int idServicoCampo) | public static ServicoCampo LoadObject(int idServicoCampo) | Carrega e retorna uma instância de ServicoCampo pelo ID. |
LoadObject(int idServicoCampo, SqlTransaction trans) | public static ServicoCampo LoadObject(int idServicoCampo, SqlTransaction trans) | Carrega e retorna uma instância de ServicoCampo pelo ID, dentro de uma transação. |
CompleteObject() | public bool CompleteObject() | Completa os atributos da instância atual de ServicoCampo a partir do banco de dados. |
CompleteObject(SqlTransaction trans) | public bool CompleteObject(SqlTransaction trans) | Completa os atributos da instância atual de ServicoCampo a partir do banco de dados, dentro de uma transação. |
Listar() | public static List<ServicoCampo> Listar() | Retorna uma lista de todas as instâncias de ServicoCampo do banco de dados. |
ListarParaImportacao(int? top, params object[] filtros) | public static DataTable ListarParaImportacao(int? top, params object[] filtros) | Lista serviços de campo para importação dinâmica. |
BuscarServicoCampoPorCodigoEmpresa(string Codigo, string vCulturaCampo, int IdEmpresa, SqlTransaction tran = null) | public static ServicoCampo BuscarServicoCampoPorCodigoEmpresa(string Codigo, string vCulturaCampo, int IdEmpresa, SqlTransaction tran = null) | Busca um serviço de campo pelo código, cultura e empresa. |
Listar(int pIdEmpresa, string pDescricao, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros) | public static SqlDataReader Listar(int pIdEmpresa, string pDescricao, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros) | Lista serviços de campo paginados e filtrados por empresa e descrição. |
ListarPorEmpresa(int IdfEmpresa, bool? Ativas = true) | public static List<ServicoCampo> ListarPorEmpresa(int IdfEmpresa, bool? Ativas = true) | Retorna os serviços de campo de uma empresa, opcionalmente filtrando por status de inatividade. |
ListarPorServicoCampoSuperior(int IdfServicoCampoSuperior) | public static List<ServicoCampo> ListarPorServicoCampoSuperior(int IdfServicoCampoSuperior) | Lista serviços de campo que são filhos de um serviço superior. |
ListarServicoCampos(int IdfServicoCampo) | public static IDataReader ListarServicoCampos(int IdfServicoCampo) | Lista serviços de campo que são filhos de um serviço superior, retornando um IDataReader. |
ListarServicoCamposMicros(int IdfServicoCampo) | public static List<ServicoCampo> ListarServicoCamposMicros(int IdfServicoCampo) | Lista serviços de campo que são filhos de um serviço superior, retornando uma lista de objetos ServicoCampo. |
ValidarNomeServicoCampoJaCadastrado(int? pIdServicoCampo, int pIdEmpresa, int? pIdCulturaCampo, string pNomeServicoCampo) | public static bool ValidarNomeServicoCampoJaCadastrado(int? pIdServicoCampo, int pIdEmpresa, int? pIdCulturaCampo, string pNomeServicoCampo) | Valida se o nome do serviço já foi cadastrado para a empresa e cultura. |
ValidarCodigoServicoCampoJaCadastrado(int? pIdServicoCampo, int pIdEmpresa, int? pIdCulturaCampo, string pCodigoServicoCampo) | public static bool ValidarCodigoServicoCampoJaCadastrado(int? pIdServicoCampo, int pIdEmpresa, int? pIdCulturaCampo, string pCodigoServicoCampo) | Valida se o código do serviço já foi cadastrado para a empresa e cultura. |
ValidarNumeroOrdemServicoCampoJaCadastrado(int idfEmpresa, int? pIdServicoCampo, int? pIdServicoCampoSuperior, int? pNumeroOrdem) | public static bool ValidarNumeroOrdemServicoCampoJaCadastrado(int idfEmpresa, int? pIdServicoCampo, int? pIdServicoCampoSuperior, int? pNumeroOrdem) | Valida se o número de ordem já foi cadastrado para outro serviço dentro do mesmo serviço superior. |
ValidarPercentualTotalServicoCampoSuperior(int? pIdServicoCampo, int pIdEmpresa, int pIdServicoCampoSuperior, decimal pPercentualAvaliacao, int pIdCulturaCampo) | public static bool ValidarPercentualTotalServicoCampoSuperior(int? pIdServicoCampo, int pIdEmpresa, int pIdServicoCampoSuperior, decimal pPercentualAvaliacao, int pIdCulturaCampo) | Valida se a soma dos percentuais de avaliação excede 100% para os serviços de um mesmo serviço superior. |
ValidarServicoCampoJaVinculadoSindicato(int pIdServicoCampo) | public static bool ValidarServicoCampoJaVinculadoSindicato(int pIdServicoCampo) | Valida se o serviço de campo está vinculado a um sindicato. |
ValidarServicoCampoJaAvaliado(int pIdServicoCampo) | public static bool ValidarServicoCampoJaAvaliado(int pIdServicoCampo) | Valida se o serviço de campo já foi avaliado. |
ValidarServicoCampoJaRealizado(int pIdServicoCampo) | public static bool ValidarServicoCampoJaRealizado(int pIdServicoCampo) | Valida se o serviço de campo já foi realizado. |
ValidarServicoCampoOcorrenciaJaLancado(int pIdServicoCampo) | public static bool ValidarServicoCampoOcorrenciaJaLancado(int pIdServicoCampo) | Valida se o serviço de campo já tem alguma ocorrência lançada. |
ValidarServicoCampoJaVinculadoOutroServicoCampo(int pIdServicoCampo) | public static bool ValidarServicoCampoJaVinculadoOutroServicoCampo(int pIdServicoCampo) | Valida se o serviço de campo está vinculado a algum outro serviço de campo (como superior). |
BuscaComponentePaginado(int pInicio, int pFim, string pSortExpression, string pSortDirection, out int pTotalRegistro, string pBuscaTexto, int? pIdEmpresa, bool? pFlagPermiteAvalicao, int? pIdTipoAvaliacaoCampo, int? pIdServicoCampoSuperior, enumServicoCampoAnaliticoSintetico pEnumTipoServicoCampo, bool pFlagConsideraServicoCampoInativo, int? pIdCulturaCampo, int? pIdTipoServicoCampo, bool pFlagSomenteUtilizaBag) | public static DataTable BuscaComponentePaginado(...) | Busca serviços de campo paginados para um componente, com diversos filtros. |
ListarAutocomplete(string pPrefixText, int pCount, int? pIdEmpresa, bool? pFlagPermiteAvalicao, int? pIdTipoAvaliacaoCampo, int? pIdServicoCampoSuperior, enumServicoCampoAnaliticoSintetico pEnumTipoServicoCampo, bool? pFlagConsideraServicoCampoInativo, int? pIdCulturaCampo, int? pIdTipoServicoCampo, bool? pFlagSomenteUtilizaBag) | public static DataTable ListarAutocomplete(...) | Lista serviços de campo para autocomplete, com diversos filtros e limite de resultados. |
AtualizaServicosCamposMicro(SqlTransaction trans) | void AtualizaServicosCamposMicro(SqlTransaction trans) | Atualiza os flags FlagUtilizaBag e FlagUtilizaAreaCultivada dos serviços de campo micro (filhos) de um serviço superior. |
Detalhamento de Métodos Importantes
GetParameters() (Privado)
- Lógica:
- Cria uma nova lista de
SqlParameter. - Adiciona vinte e um parâmetros à lista, representando todas as colunas da tabela
TAB_Servico_Campo:
@Idf_Servico_Campo(TipoInt, Tamanho4)@Idf_Empresa(TipoInt, Tamanho4)@Idf_Servico_Campo_Superior(TipoInt, Tamanho4)@Nme_Servico_Campo(TipoVarChar, Tamanho100)@Cod_Servico_Campo(TipoVarChar, Tamanho10)@Flg_Permite_Avaliacao(TipoBit, Tamanho1)@Idf_Tipo_Avaliacao_Campo(TipoInt, Tamanho4)@Prc_Avaliacao(TipoFloat, Tamanho8)@Flg_Inativo(TipoBit, Tamanho1)@Dta_Cadastro(TipoDateTime, Tamanho8)@Idf_Usuario_Gerador(TipoInt, Tamanho4)@Num_Ordem(TipoInt, Tamanho4)@Idf_Cultura_Campo(TipoInt, Tamanho4)@Idf_Tipo_Servico_Campo(TipoInt, Tamanho4)@Flg_Utiliza_Bag(TipoBit, Tamanho1)@Flg_SolicitaObservacao(TipoBit, Tamanho1)@Flg_Utiliza_Area_Cultivada(TipoBit, Tamanho1)@Flg_Descontar_Bonus(TipoBit, Tamanho1)@Flg_Divisao_Bonus(TipoBit, Tamanho1)@Flg_Paga_Hora_In_Itinere(TipoBit, Tamanho1)@Flg_Necessita_Aprovacao(TipoBit, Tamanho1)
- Retorna a lista de parâmetros.
- Stored Procedures chamadas: Nenhuma.
- Validações: Nenhuma.
- Regras de negócio: Nenhuma.
SetParameters(List<SqlParameter> parms) (Privado)
- Lógica:
- Atribui os valores das propriedades da instância aos parâmetros correspondentes na lista
parms. - Para objetos relacionados (
_servicoCampoSuperior,_tipoAvaliacaoCampo): Se o objeto for nulo, atribuiDBNull.Valueao ID correspondente. Caso contrário, atribui oIddo objeto. - Para campos opcionais (
_codigoServicoCampo,_percentualAvaliacao,_numeroOrdem,_flagUtilizaBag,_flagSolicitaObservacao,_flagUtilizaAreaCultivada,_flagDescontarBonus,_flagDivisaoBonus,_flagPagaHoraInItinere,_flagNecessitaAprovacao): Se o valor for nulo ou vazio, atribuiDBNull.Value. - Lógica de inserção/atualização:
- Se a instância não for persistida (
!_persisted): - Define o parâmetro
@Idf_Servico_CampocomoParameterDirection.Outputpara receber o ID gerado pelo banco. - Define
_dataCadastrocomo a data e hora atuais (DateTime.Now). - Caso contrário (instância já persistida):
- Define o parâmetro
@Idf_Servico_CampocomoParameterDirection.Input.
- Atribui
_dataCadastroao parâmetro@Dta_Cadastro. - Define
_usuarioGeradorcom base noCodigoUsuarioda sessão HTTP atual. Se a sessão for nula, usa umUsuariocom ID1. - Atribui o
IdUsuariode_usuarioGeradorao parâmetro@Idf_Usuario_Gerador.
- Stored Procedures chamadas: Nenhuma.
- Validações: Verifica a nulidade de strings e objetos relacionados para atribuir
DBNull.Value. - Regras de negócio: Gerencia a atribuição de valores para inserção/atualização, incluindo a geração de
Idf_Servico_CampoeDta_Cadastroem novas inserções, e o registro doUsuarioGerador.
Insert() (Privado)
- Lógica:
- Chama
GetParameters()para obter uma lista de parâmetros SQL. - Chama
SetParameters(parms)para preencher os parâmetros com os valores da instância atual. - Abre uma nova conexão SQL (
SqlConnection) usandoDataAccessLayer.CONN_STRING. - Inicia uma transação SQL (
SqlTransaction). - Dentro de um bloco
try-catch:
- Executa o comando SQL
SPINSERT(insert inline) usandoDataAccessLayer.ExecuteNonQueryCmdcom a transação e os parâmetros. - Recupera o
Idf_Servico_Campogerado pelo banco de dados (usandoSCOPE_IDENTITY()) do parâmetro de saída e atribui a_idServicoCampo. - Limpa os parâmetros do comando.
- Define
_persistedcomotruee_modifiedcomofalse. - Confirma a transação (
trans.Commit()).
- Em caso de exceção, a transação é revertida (
trans.Rollback()) e a exceção é relançada.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
INSERT INTO TAB_Servico_Campo (...) VALUES (...);SET @Idf_Servico_Campo = SCOPE_IDENTITY(); - Validações: Nenhuma explícita.
- Regras de negócio: Gerencia a persistência de novos registros de
ServicoCampo, incluindo a recuperação do ID gerado.
Insert(SqlTransaction trans) (Privado)
- Lógica:
- Similar a
Insert(), mas recebe uma transação existente. - Chama
GetParameters()eSetParameters(parms). - Executa o comando SQL
SPINSERTusandoDataAccessLayer.ExecuteNonQueryCmdcom a transação fornecida e os parâmetros. - Recupera o
Idf_Servico_Campogerado pelo banco de dados do parâmetro de saída e atribui a_idServicoCampo. - Limpa os parâmetros do comando.
- Define
_persistedcomotruee_modifiedcomofalse.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
INSERT INTO TAB_Servico_Campo (...) VALUES (...);SET @Idf_Servico_Campo = SCOPE_IDENTITY(); - Validações: Nenhuma explícita.
- Regras de negócio: Permite a inserção de
ServicoCampocomo parte de uma transação maior.
Update() (Privado)
- Lógica:
- Verifica se a instância foi modificada (
_modifiedétrue). - Se modificada:
- Chama
GetParameters()eSetParameters(parms). - Executa o comando SQL
SPUPDATE(update inline) usandoDataAccessLayer.ExecuteNonQuerycom os parâmetros. - Define
_modifiedcomofalse.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
UPDATE TAB_Servico_Campo SET ... WHERE Idf_Servico_Campo = @Idf_Servico_Campo - Validações: Nenhuma explícita.
- Regras de negócio: Gerencia a atualização de registros de
ServicoCampo.
Update(SqlTransaction trans) (Privado)
- Lógica:
- Similar a
Update(), mas recebe uma transação existente. - Verifica se a instância foi modificada (
_modifiedétrue). - Se modificada:
- Chama
GetParameters()eSetParameters(parms). - Executa o comando SQL
SPUPDATEusandoDataAccessLayer.ExecuteNonQuerycom a transação fornecida e os parâmetros. - Define
_modifiedcomofalse.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
UPDATE TAB_Servico_Campo SET ... WHERE Idf_Servico_Campo = @Idf_Servico_Campo - Validações: Nenhuma explícita.
- Regras de negócio: Permite a atualização de
ServicoCampocomo parte de uma transação maior.
Save() (Público)
- Lógica:
- Se a instância não for persistida (
!_persisted), chamathis.Insert(). - Se a instância já for persistida:
- Abre uma nova conexão SQL (
SqlConnection) e inicia uma transação. - Dentro de um bloco
try-catch: - Chama
this.Update(trans)para atualizar o serviço de campo. - Chama
AtualizaServicosCamposMicro(trans)para atualizar os serviços de campo micro associados. - Confirma a transação (
trans.Commit()). - Em caso de exceção, a transação é revertida (
trans.Rollback()) e a exceção é relançada.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert(),Update(trans)eAtualizaServicosCamposMicro(trans). - Validações: Nenhuma explícita.
- Regras de negócio: Orquestra a operação de salvar, decidindo entre inserção e atualização. Em caso de atualização de um serviço superior, propaga certas propriedades para os serviços micro.
Save(SqlTransaction trans) (Público)
- Lógica:
- Se a instância não for persistida (
!_persisted), chamathis.Insert(trans). - Se a instância já for persistida:
- Chama
this.Update(trans)para atualizar o serviço de campo. - Chama
AtualizaServicosCamposMicro(trans)para atualizar os serviços de campo micro associados.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
Insert(trans),Update(trans)eAtualizaServicosCamposMicro(trans). - Validações: Nenhuma explícita.
- Regras de negócio: Orquestra a operação de salvar dentro de uma transação, decidindo entre inserção e atualização. Em caso de atualização de um serviço superior, propaga certas propriedades para os serviços micro.
Delete(int idServicoCampo) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameter. - Adiciona os parâmetros
@Idf_Servico_Campoe@Idf_Usuario_Gerador. - Atribui o
idServicoCampoe oCodigoUsuarioda sessão atual aos parâmetros. - Executa o comando SQL
SPDELETE(delete inline) usandoDataAccessLayer.ExecuteNonQuerycom os parâmetros.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
UPDATE TAB_Servico_Campo SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Servico_Campo = @Idf_Servico_Campo ; DELETE FROM TAB_Servico_Campo WHERE Idf_Servico_Campo = @Idf_Servico_Campo - Validações: Nenhuma explícita.
- Regras de negócio: Exclui um registro de
ServicoCampo, mas antes atualiza oIdf_Usuario_Geradordo registro.
Delete(int idServicoCampo, SqlTransaction trans) (Público e Estático)
- Lógica:
- Similar a
Delete(int idServicoCampo), mas recebe uma transação existente. - Cria uma lista de
SqlParameter. - Adiciona os parâmetros
@Idf_Servico_Campoe@Idf_Usuario_Gerador. - Atribui o
idServicoCampoe oCodigoUsuarioda sessão atual aos parâmetros. - Executa o comando SQL
SPDELETEusandoDataAccessLayer.ExecuteNonQuerycom a transação fornecida e os parâmetros.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
UPDATE TAB_Servico_Campo SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Servico_Campo = @Idf_Servico_Campo ; DELETE FROM TAB_Servico_Campo WHERE Idf_Servico_Campo = @Idf_Servico_Campo - Validações: Nenhuma explícita.
- Regras de negócio: Exclui um registro de
ServicoCampodentro de uma transação, atualizando oIdf_Usuario_Geradorantes.
Delete(List<int> idServicoCampo) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameter. - Constrói dinamicamente duas strings SQL: uma para
UPDATE(paraIdf_Usuario_Gerador) e outra paraDELETE, ambas com cláusulasIN. - Itera sobre a lista
idServicoCampo:
- Para cada ID, cria um novo parâmetro com um nome único (ex:
@parm0,@parm1). - Adiciona o nome do parâmetro às strings SQL e o parâmetro à lista de
SqlParameter.
- Adiciona um parâmetro
@Idf_Usuario_Geradorà lista e atribui oCodigoUsuarioda sessão atual. - Concatena as strings SQL de
UPDATEeDELETE. - Executa o comando SQL construído usando
DataAccessLayer.ExecuteNonQuerycom os parâmetros.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline dinamicamente construído.
- Validações: Nenhuma explícita.
- Regras de negócio: Permite a exclusão em massa de registros de
ServicoCampo, atualizando oIdf_Usuario_Geradorantes da exclusão.
LoadDataReader(int idServicoCampo) (Privado e Estático)
- Lógica:
- Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Servico_Campoe atribui oidServicoCampo. - Executa o comando SQL
SPSELECTID(select inline) usandoDataAccessLayer.ExecuteReadercom os parâmetros e retorna umIDataReader.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT * FROM TAB_Servico_Campo WHERE Idf_Servico_Campo = @Idf_Servico_Campo - Validações: Nenhuma explícita.
- Regras de negócio: Recupera um único registro de
ServicoCampopara leitura.
LoadDataReader(int idServicoCampo, SqlTransaction trans) (Privado e Estático)
- Lógica:
- Similar a
LoadDataReader(int idServicoCampo), mas recebe uma transação existente. - Cria uma lista de
SqlParameter. - Adiciona o parâmetro
@Idf_Servico_Campoe atribui oidServicoCampo. - Executa o comando SQL
SPSELECTIDusandoDataAccessLayer.ExecuteReadercom a transação fornecida e os parâmetros, e retorna umIDataReader.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT * FROM TAB_Servico_Campo WHERE Idf_Servico_Campo = @Idf_Servico_Campo - Validações: Nenhuma explícita.
- Regras de negócio: Recupera um único registro de
ServicoCampopara leitura dentro de uma transação.
LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) (Público e Estático)
- Lógica:
- Calcula os valores de
inicioefimpara a paginação. - Constrói dinamicamente duas strings SQL:
SPSELECTPAG: Consulta paginada que seleciona as colunas deTAB_Servico_Campoe adiciona umRowIDpara paginação, ordenando pelacolunaOrdenacaoedirecaoOrdenacao.SPSELECTCOUNT: Consulta para contar o total de registros, baseada emSPSELECTPAG.
- Executa
SPSELECTCOUNTusandoDataAccessLayer.ExecuteScalarpara obter ototalRegistros. - Executa
SPSELECTPAG(filtrando porRowId) usandoDataAccessLayer.ExecuteReadere retorna umIDataReader.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline dinamicamente construído.
- Validações: Nenhuma explícita.
- Regras de negócio: Fornece funcionalidade de paginação e ordenação para a listagem de
ServicoCampo.
LoadObject(int idServicoCampo) (Público e Estático)
- Lógica:
- Chama
LoadDataReader(idServicoCampo)para obter umIDataReader. - Cria uma nova instância de
ServicoCampo. - Chama
SetInstance(dr, objServicoCampo)para preencher a instância com os dados doIDataReader. - Se
SetInstanceretornartrue(registro encontrado), retorna a instância preenchida. - Se
SetInstanceretornarfalse(registro não encontrado), lança umaRecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader, que utiliza SQL inline. - Validações: Lança
RecordNotFoundExceptionse o registro não for encontrado. - Regras de negócio: Carrega um objeto
ServicoCampocompleto pelo ID.
LoadObject(int idServicoCampo, SqlTransaction trans) (Público e Estático)
- Lógica:
- Similar a
LoadObject(int idServicoCampo), mas recebe uma transação existente. - Chama
LoadDataReader(idServicoCampo, trans)para obter umIDataReader. - Cria uma nova instância de
ServicoCampo. - Chama
SetInstance(dr, objServicoCampo)para preencher a instância. - Se
SetInstanceretornartrue, retorna a instância. - Caso contrário, lança uma
RecordNotFoundException.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader, que utiliza SQL inline. - Validações: Lança
RecordNotFoundExceptionse o registro não for encontrado. - Regras de negócio: Carrega um objeto
ServicoCampocompleto pelo ID dentro de uma transação.
CompleteObject() (Público)
- Lógica:
- Chama
LoadDataReader(this._idServicoCampo)para obter umIDataReaderusando o ID da instância atual. - Chama
SetInstance(dr, this)para preencher os atributos da própria instância com os dados doIDataReader. - Retorna o resultado de
SetInstance.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader, que utiliza SQL inline. - Validações: Nenhuma explícita.
- Regras de negócio: Preenche os atributos de uma instância existente de
ServicoCampo.
CompleteObject(SqlTransaction trans) (Público)
- Lógica:
- Similar a
CompleteObject(), mas recebe uma transação existente. - Chama
LoadDataReader(this._idServicoCampo, trans)para obter umIDataReader. - Chama
SetInstance(dr, this)para preencher os atributos da própria instância. - Retorna o resultado de
SetInstance.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
LoadDataReader, que utiliza SQL inline. - Validações: Nenhuma explícita.
- Regras de negócio: Preenche os atributos de uma instância existente de
ServicoCampodentro de uma transação.
SetInstance(IDataReader dr, ServicoCampo objServicoCampo, bool bDispose = true) (Privado e Estático)
- Lógica:
- Dentro de um bloco
try-finally:
- Tenta ler a próxima linha do
IDataReader(dr.Read()). - Se houver uma linha para ler:
- Atribui o valor da coluna
Idf_Servico_CampoaobjServicoCampo._idServicoCampo. - Cria novas instâncias de
Empresa,ServicoCampo(para superior),TipoAvaliacaoCampo,Usuario,CulturaCampo,TipoServicoCampocom base nos IDs das colunas correspondentes. - Atribui os valores das colunas
Nme_Servico_Campo,Cod_Servico_Campo,Flg_Permite_Avaliacao,Prc_Avaliacao,Flg_Inativo,Dta_Cadastro,Num_Ordem,Flg_Utiliza_Bag,Flg_SolicitaObservacao,Flg_Utiliza_Area_Cultivada,Flg_Descontar_Bonus,Flg_Divisao_Bonus,Flg_Paga_Hora_In_Itinere,Flg_Necessita_Aprovacaoaos atributos da instância. - Para campos opcionais, verifica
DBNull.Valueantes de atribuir. - Define
objServicoCampo._persistedcomotrueeobjServicoCampo._modifiedcomofalse. - Retorna
true. - Se não houver mais linhas para ler, retorna
false.
- No bloco
finally:
- Se
bDisposefortrue(padrão), descarta oIDataReader(dr.Dispose()).
- Stored Procedures chamadas: Nenhuma.
- Validações: Verifica
DBNull.Valuepara campos opcionais. - Regras de negócio: Mapeia os dados de um
IDataReaderpara uma instância deServicoCampo, incluindo a criação de objetos relacionados.
Listar() (Público e Estático)
- Lógica:
- Cria uma nova lista de
ServicoCampo(ls). - Executa o comando SQL
SPSELECT(select inline) usandoDataAccessLayer.ExecuteReadere obtém umIDataReader. - Itera sobre o
IDataReaderusando um loopwhile:
- Cria uma nova instância de
ServicoCampo(obj). - Chama
SetInstance(dr, obj, false)para preencher a instância (ofalseindica para não descartar oIDataReaderapós cada instância). - Se
SetInstanceretornartrue(registro preenchido), adicionaobjà listals. - Cria uma nova instância de
ServicoCampopara a próxima iteração.
- Retorna a lista
ls.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT * FROM TAB_Servico_Campo - Validações: Nenhuma explícita.
- Regras de negócio: Retorna todos os registros de
ServicoCampo.
ListarParaImportacao(int? top, params object[] filtros) (Público e Estático)
- Lógica:
- Recupera o
idEmpresada sessão HTTP atual. - Cria uma lista de
SqlParameter, adicionando@Idf_Empresa. - Define uma string SQL
SPSELECTPAGque seleciona todos os serviços de campo ativos (Flg_Inativo = 0) para a empresa especificada. - Executa a consulta SQL usando
DataAccessLayer.ExecuteReaderDse retorna a primeira tabela doDataSet.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
select * from TAB_Servico_Campo sc where sc.Idf_Empresa = @Idf_Empresa and sc.Flg_Inativo = 0 - Validações: Nenhuma explícita.
- Regras de negócio: Fornece uma listagem simplificada de serviços de campo para fins de importação.
BuscarServicoCampoPorCodigoEmpresa(string Codigo, string vCulturaCampo, int IdEmpresa, SqlTransaction tran = null) (Público e Estático)
- Lógica:
- Define uma string SQL
sQueryque busca um serviço de campo peloCod_Servico_Campo,Idf_Empresa,Flg_Inativo = 0e opcionalmente porDes_Cultura_Campo. - Cria uma lista de
SqlParameterpara@Idf_Empresa,@Cod_Servico_Campoe@CulturaCampo. - Atribui os valores dos parâmetros, tratando
vCulturaCampocomoDBNull.Valuese for nulo ou vazio. - Executa a consulta SQL usando
DataAccessLayer.ExecuteReader(com ou sem transação). - Cria uma nova instância de
ServicoCampo. - Se
SetInstance(dr, objTurma)retornartrue(registro encontrado), retorna a instância preenchida. - Caso contrário, retorna
null.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
select * from TAB_Servico_Campo sc
LEFT JOIN plataforma.tab_cultura_campo cc on cc.Idf_Cultura_Campo = sc.Idf_Cultura_Campo
where sc.Idf_Empresa = @Idf_Empresa and sc.Flg_Inativo = 0 and sc.Cod_Servico_Campo = @Cod_Servico_Campo
AND (@CulturaCampo IS NULL OR cc.Des_Cultura_Campo = @CulturaCampo)
- Validações: Nenhuma explícita.
- Regras de negócio: Busca um serviço de campo específico com base em seu código, empresa e, opcionalmente, cultura.
Listar(int pIdEmpresa, string pDescricao, string pNomeColuna, string pDirecaoOrdenacao, int pPaginaCorrente, int pTamanhoPagina, out int pTotalRegistros) (Público e Estático)
- Lógica:
- Calcula os valores de
inicioefimpara a paginação. - Cria uma lista de
SqlParameterpara@Idf_Empresae@Descricao. - Define uma string SQL
queryPaginadaque utilizaROW_NUMBER()para paginação estring.Formatpara injetar a ordenação e a consulta base (SELSERVICOCAMPOPOREMPRESA). - Define uma string SQL
queryCountpara contar o total de registros, também usandoSELSERVICOCAMPOPOREMPRESA. - Executa
queryCountusandoDataAccessLayer.ExecuteScalarpara obterpTotalRegistros. - Executa
queryPaginadausandoDataAccessLayer.ExecuteReadere retorna oSqlDataReader.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline dinamicamente construído, que incorpora
SELSERVICOCAMPOPOREMPRESA. - Validações: Nenhuma explícita.
- Regras de negócio: Fornece uma listagem paginada, ordenada e filtrada de serviços de campo para uma empresa.
ListarPorEmpresa(int IdfEmpresa, bool? Ativas = true) (Público e Estático)
- Lógica:
- Define uma string SQL
SQLque seleciona todos os serviços de campo para aIdfEmpresa. - Se
Ativastiver um valor, adiciona uma cláusulaAND Flg_Inativo = 0(seAtivasfortrue) ouAND Flg_Inativo = 1(seAtivasforfalse). - Cria uma lista de
SqlParameterpara@Idf_Empresa. - Executa a consulta SQL usando
DataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, preenchendo e adicionando instâncias deServicoCampoa uma lista. - Retorna a lista de serviços de campo.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline dinamicamente construído.
- Validações: Nenhuma explícita.
- Regras de negócio: Lista serviços de campo de uma empresa, com opção de filtrar por status de inatividade.
ListarPorServicoCampoSuperior(int IdfServicoCampoSuperior) (Público e Estático)
- Lógica:
- Define uma string SQL
SQLque seleciona serviços de campo onde oNme_Servico_Campoé igual aoNme_Servico_Campodo serviço superior especificado porIdfServicoCampoSuperior. Nota: Esta lógica parece incorreta, pois compara o nome do serviço com o nome do serviço superior, em vez de usarIdf_Servico_Campo_Superior. - Cria uma lista de
SqlParameterpara@Idf_Servico_Campo. - Executa a consulta SQL usando
DataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, preenchendo e adicionando instâncias deServicoCampoa uma lista. - Retorna a lista de serviços de campo.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT *
FROM TAB_Servico_Campo
WHERE Nme_Servico_Campo = (SELECT Nme_Servico_Campo
FROM TAB_Servico_Campo
WHERE Idf_Servico_Campo = @Idf_Servico_Campo)
- Validações: Nenhuma explícita.
- Regras de negócio: Pretende listar serviços de campo que são filhos de um serviço superior, mas a lógica SQL pode estar equivocada.
ListarServicoCampos(int IdfServicoCampo) (Público e Estático)
- Lógica:
- Define uma string SQL
SQLque selecionaIdf_Servico_Campo,Nme_Servico_Campoe todas as outras colunas daTAB_Servico_CampoondeIdf_Servico_Campo_Superioré igual aIdfServicoCampo. - Cria uma lista de
SqlParameterpara@Idf_Servico_Campo. - Executa a consulta SQL usando
DataAccessLayer.ExecuteReadere retorna oIDataReader.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT sc.Idf_Servico_Campo, sc.Nme_Servico_Campo, *
FROM TAB_Servico_Campo sc
WHERE Idf_Servico_Campo_Superior = @Idf_Servico_Campo
- Validações: Nenhuma explícita.
- Regras de negócio: Lista serviços de campo que são filhos diretos de um serviço superior.
ListarServicoCamposMicros(int IdfServicoCampo) (Público e Estático)
- Lógica:
- Define uma string SQL
SQLque seleciona todos os serviços de campo ondeIdf_Servico_Campo_Superioré igual aIdfServicoCampo. - Cria uma lista de
SqlParameterpara@Idf_Servico_Campo. - Executa a consulta SQL usando
DataAccessLayer.ExecuteReader. - Itera sobre o
IDataReader, preenchendo e adicionando instâncias deServicoCampoa uma lista. - Retorna a lista de serviços de campo.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT *
FROM TAB_Servico_Campo
WHERE Idf_Servico_Campo_Superior = @Idf_Servico_Campo
- Validações: Nenhuma explícita.
- Regras de negócio: Lista serviços de campo que são filhos diretos de um serviço superior.
ValidarNomeServicoCampoJaCadastrado(int? pIdServicoCampo, int pIdEmpresa, int? pIdCulturaCampo, string pNomeServicoCampo) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameterpara@Idf_Servico_Campo,@Idf_Empresa,@Idf_Cultura_Campoe@Nme_Servico_Campo. - Atribui os valores dos parâmetros, tratando
pIdServicoCampoepIdCulturaCampocomoDBNull.Valuese forem nulos. - Executa o comando SQL
SPVALIDARNOMESERVICOCAMPOJACADASTRADO(select inline) usandoDataAccessLayer.ExecuteScalar. - Converte o resultado para
inte verifica se é maior que0. - Retorna
truese um serviço com o mesmo nome (case insensitive) já estiver cadastrado para a mesma empresa e cultura (excluindo o próprio serviço sepIdServicoCampofor fornecido),falsecaso contrário.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT ISNULL(COUNT(Idf_Servico_Campo),0) AS qtde
FROM TAB_Servico_Campo
WHERE (@Idf_Servico_Campo IS NULL OR @Idf_Servico_Campo != Idf_Servico_Campo )
AND Idf_Empresa = @Idf_Empresa
AND (@Idf_Cultura_Campo IS NULL OR Idf_Cultura_Campo = @Idf_Cultura_Campo)
AND Upper(Nme_Servico_Campo) = upper(@Nme_Servico_Campo)
- Validações: Verifica a existência de nome de serviço de campo duplicado.
- Regras de negócio: Garante a unicidade do nome do serviço de campo por empresa e cultura.
ValidarCodigoServicoCampoJaCadastrado(int? pIdServicoCampo, int pIdEmpresa, int? pIdCulturaCampo, string pCodigoServicoCampo) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameterpara@Idf_Servico_Campo,@Idf_Empresa,@Idf_Cultura_Campoe@Cod_Servico_Campo. - Atribui os valores dos parâmetros, tratando
pIdServicoCampoepIdCulturaCampocomoDBNull.Valuese forem nulos. - Executa o comando SQL
SPVALIDARCODIGOSERVICOCAMPOJACADASTRADO(select inline) usandoDataAccessLayer.ExecuteScalar. - Converte o resultado para
inte verifica se é maior que0. - Retorna
truese um serviço com o mesmo código (case insensitive) já estiver cadastrado para a mesma empresa e cultura (excluindo o próprio serviço sepIdServicoCampofor fornecido),falsecaso contrário.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT ISNULL(COUNT(Idf_Servico_Campo),0) AS qtde
FROM TAB_Servico_Campo
WHERE (@Idf_Servico_Campo IS NULL OR @Idf_Servico_Campo != Idf_Servico_Campo )
AND Idf_Empresa = @Idf_Empresa
AND (@Idf_Cultura_Campo IS NULL OR Idf_Cultura_Campo = @Idf_Cultura_Campo)
AND Upper(Cod_Servico_Campo) = upper(@Cod_Servico_Campo)
- Validações: Verifica a existência de código de serviço de campo duplicado.
- Regras de negócio: Garante a unicidade do código do serviço de campo por empresa e cultura.
ValidarNumeroOrdemServicoCampoJaCadastrado(int idfEmpresa, int? pIdServicoCampo, int? pIdServicoCampoSuperior, int? pNumeroOrdem) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameterpara@Idf_Empresa,@Idf_Servico_Campo,@Idf_Servico_Campo_Superiore@Num_Ordem. - Atribui os valores dos parâmetros, tratando os opcionais como
DBNull.Valuese forem nulos. - Executa o comando SQL
SPVALIDARNUMEROORDEMSERVICOCAMPOJACADASTRADO(select inline) usandoDataAccessLayer.ExecuteScalar. - Converte o resultado para
inte verifica se é maior que0. - Retorna
truese um serviço com o mesmo número de ordem já estiver cadastrado para o mesmo serviço superior (excluindo o próprio serviço sepIdServicoCampofor fornecido),falsecaso contrário.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT ISNULL(COUNT(Idf_Servico_Campo),0) AS qtde
FROM TAB_Servico_Campo
WHERE 1 = 1
AND Idf_Empresa = @Idf_Empresa
AND (@Idf_Servico_Campo IS NULL OR @Idf_Servico_Campo != Idf_Servico_Campo )
AND ((@Idf_Servico_Campo_Superior IS NULL AND Idf_Servico_Campo_Superior IS NULL)
OR Idf_Servico_Campo_Superior = @Idf_Servico_Campo_Superior)
AND ((@Num_Ordem IS NULL AND Num_Ordem IS NULL)
OR Num_Ordem = @Num_Ordem)
- Validações: Verifica a existência de número de ordem duplicado para serviços de campo analíticos.
- Regras de negócio: Garante a unicidade do número de ordem dentro de um serviço de campo superior.
ValidarPercentualTotalServicoCampoSuperior(int? pIdServicoCampo, int pIdEmpresa, int pIdServicoCampoSuperior, decimal pPercentualAvaliacao, int pIdCulturaCampo) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameterpara@Idf_Servico_Campo,@Idf_Empresa,@Idf_Servico_Campo_Superiore@Idf_Cultura_Campo. - Atribui os valores dos parâmetros, tratando
pIdServicoCampocomoDBNull.Valuese for nulo. - Executa o comando SQL
SPCARREGARPERCENTUALAVALIACAOSERVICOSUPERIOR(select inline) usandoDataAccessLayer.ExecuteScalar. - Tenta converter o resultado para
decimal(percentualCadastrado). - Retorna
truese a soma depercentualCadastradoepPercentualAvaliacaofor maior que100,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT ISNULL(SUM(ISNULL(Prc_Avaliacao,0)), 0) AS Prc_Avaliacao
FROM TAB_Servico_Campo sc
WHERE (@Idf_Servico_Campo IS NULL OR @Idf_Servico_Campo != Idf_Servico_Campo )
AND Idf_Empresa = @Idf_Empresa
AND Idf_Servico_Campo_Superior = @Idf_Servico_Campo_Superior
AND Idf_Cultura_Campo = @Idf_Cultura_Campo
- Validações: Verifica se o percentual total de avaliação dos serviços de campo analíticos de um mesmo serviço superior excede 100%.
- Regras de negócio: Impede que a soma dos percentuais de avaliação de serviços analíticos ultrapasse 100%.
ValidarServicoCampoJaVinculadoSindicato(int pIdServicoCampo) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameterpara@Idf_Servico_Campo. - Atribui o
pIdServicoCampo. - Executa o comando SQL
SPVALIDARSERVICOCAMPOJAVINCULADOSINDICATO(select inline) usandoDataAccessLayer.ExecuteScalar. - Converte o resultado para
inte verifica se é maior que0. - Retorna
truese o serviço de campo estiver vinculado a um sindicato,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT ISNULL(COUNT(Idf_Servico_Campo), 0) qtde
FROM TAB_Servico_Campo_Sindicato
WHERE Idf_Servico_Campo = @Idf_Servico_Campo
- Validações: Verifica se o serviço de campo está vinculado a um sindicato.
- Regras de negócio: Impede a exclusão de serviços de campo vinculados a sindicatos.
ValidarServicoCampoJaAvaliado(int pIdServicoCampo) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameterpara@Idf_Servico_Campo. - Atribui o
pIdServicoCampo. - Executa o comando SQL
SPVALIDARSERVICOCAMPOJAAVALIADO(select inline) usandoDataAccessLayer.ExecuteScalar. - Converte o resultado para
inte verifica se é maior que0. - Retorna
truese o serviço de campo já foi avaliado,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT ISNULL(COUNT(Idf_Servico_Campo), 0) qtde
FROM TAB_Avaliacao_Servico_Campo
WHERE Idf_Servico_Campo = @Idf_Servico_Campo
- Validações: Verifica se o serviço de campo já foi avaliado.
- Regras de negócio: Impede a exclusão de serviços de campo que já foram avaliados.
ValidarServicoCampoJaRealizado(int pIdServicoCampo) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameterpara@Idf_Servico_Campo. - Atribui o
pIdServicoCampo. - Executa o comando SQL
SPVALIDARSERVICOCAMPOJAREALIZADO(select inline) usandoDataAccessLayer.ExecuteScalar. - Converte o resultado para
inte verifica se é maior que0. - Retorna
truese o serviço de campo já foi realizado,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT ISNULL(COUNT(Idf_Servico_Campo), 0) qtde
FROM TAB_Servico_Campo_Realizado
WHERE Idf_Servico_Campo = @Idf_Servico_Campo
- Validações: Verifica se o serviço de campo já foi realizado.
- Regras de negócio: Impede a exclusão de serviços de campo que já foram realizados.
ValidarServicoCampoOcorrenciaJaLancado(int pIdServicoCampo) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameterpara@Idf_Servico_Campo. - Atribui o
pIdServicoCampo. - Executa o comando SQL
SPVALIDARSERVICOCAMPOOCORRENCIAJALANCADO(select inline) usandoDataAccessLayer.ExecuteScalar. - Converte o resultado para
inte verifica se é maior que0. - Retorna
truese o serviço de campo já tem alguma ocorrência lançada,falsecaso contrário.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT ISNULL(COUNT(Idf_Servico_Campo), 0) qtde
FROM TAB_Servico_Campo_Ocorrencia
WHERE Idf_Servico_Campo = @Idf_Servico_Campo
- Validações: Verifica se o serviço de campo já tem ocorrências lançadas.
- Regras de negócio: Impede a exclusão de serviços de campo com ocorrências lançadas.
ValidarServicoCampoJaVinculadoOutroServicoCampo(int pIdServicoCampo) (Público e Estático)
- Lógica:
- Cria uma lista de
SqlParameterpara@Idf_Servico_Campo. - Atribui o
pIdServicoCampo. - Executa o comando SQL
SPVALIDARSERVICOCAMPOJAVINCULADOOUTROSERVICOCAMPO(select inline) usandoDataAccessLayer.ExecuteScalar. - Converte o resultado para
inte verifica se é maior que0. - Retorna
truese o serviço de campo estiver vinculado a outro serviço de campo (como superior),falsecaso contrário.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline:
SELECT ISNULL(COUNT(Idf_Servico_Campo), 0) qtde
FROM TAB_Servico_Campo sc
WHERE sc.Idf_Servico_Campo_Superior = @Idf_Servico_Campo
- Validações: Verifica se o serviço de campo é um serviço superior para outros serviços.
- Regras de negócio: Impede a exclusão de serviços de campo que são superiores a outros serviços.
BuscaComponentePaginado(int pInicio, int pFim, string pSortExpression, string pSortDirection, out int pTotalRegistro, string pBuscaTexto, int? pIdEmpresa, bool? pFlagPermiteAvalicao, int? pIdTipoAvaliacaoCampo, int? pIdServicoCampoSuperior, enumServicoCampoAnaliticoSintetico pEnumTipoServicoCampo, bool pFlagConsideraServicoCampoInativo, int? pIdCulturaCampo, int? pIdTipoServicoCampo, bool pFlagSomenteUtilizaBag) (Público e Estático)
- Lógica:
- Constrói dinamicamente uma string
sFiltroscom base nos parâmetros de entrada (empresa, permite avaliação, tipo avaliação, serviço superior, tipo de serviço, inativo, utiliza BAG, cultura, tipo serviço). - Constrói uma string
TemplateBuscaque incluiROW_NUMBER()para paginação, filtros de busca porCod_Servico_CampoouNme_Servico_Campo, e os filtros dinâmicossFiltros. Exclui serviços comCod_Servico_Campo = 'PTES'. - Constrói
SPSELECTCOUNTeSPSELECTPAGusandoTemplateBusca. - Cria uma lista de
SqlParameterpara os parâmetros de busca e filtros. - Atribui os valores dos parâmetros, tratando os opcionais como
DBNull.Valuese forem nulos. - Executa
SPSELECTCOUNTusandoDataAccessLayer.ExecuteScalarpara obterpTotalRegistro. - Executa
SPSELECTPAGusandoDataAccessLayer.ExecuteReaderDse retorna a primeira tabela doDataSet.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline dinamicamente construído.
- Validações: Nenhuma explícita.
- Regras de negócio: Fornece uma busca paginada e filtrada de serviços de campo para uso em componentes, com diversas opções de filtragem.
ListarAutocomplete(string pPrefixText, int pCount, int? pIdEmpresa, bool? pFlagPermiteAvalicao, int? pIdTipoAvaliacaoCampo, int? pIdServicoCampoSuperior, enumServicoCampoAnaliticoSintetico pEnumTipoServicoCampo, bool? pFlagConsideraServicoCampoInativo, int? pIdCulturaCampo, int? pIdTipoServicoCampo, bool? pFlagSomenteUtilizaBag) (Público e Estático)
- Lógica:
- Constrói dinamicamente uma string
sFiltroscom base nos parâmetros de entrada (empresa, permite avaliação, utiliza BAG, tipo avaliação, serviço superior, tipo de serviço, inativo, cultura, tipo serviço). - Constrói uma string
sQueryque incluiTOP(@TOP)para limitar os resultados, filtros de busca porCod_Servico_CampoouNme_Servico_Campo, e os filtros dinâmicossFiltros. Exclui serviços comCod_Servico_Campo = 'PTES'. Ordena porCod_Servico_CampoeNme_Servico_Campo. - Cria uma lista de
SqlParameterpara os parâmetros de busca e filtros. - Atribui os valores dos parâmetros, tratando os opcionais como
DBNull.Valuese forem nulos. - Executa a consulta SQL usando
DataAccessLayer.ExecuteReaderDse retorna a primeira tabela doDataSet.
- Stored Procedures chamadas: Nenhuma. Utiliza SQL inline dinamicamente construído.
- Validações: Nenhuma explícita.
- Regras de negócio: Fornece uma listagem de serviços de campo para funcionalidade de autocomplete, com diversos filtros e limite de resultados.
AtualizaServicosCamposMicro(SqlTransaction trans) (Privado)
- Lógica:
- Condicional: Se o serviço de campo atual tiver um
ServicoCampoSuperior(ou seja, é um serviço micro), o método retorna imediatamente. - Chama
ListarServicoCamposMicros(this.IdServicoCampo)para obter uma lista de todos os serviços de campo micro (filhos) associados a este serviço superior. - Condicional: Se a lista de serviços micro for nula ou vazia, o método retorna.
- Itera sobre cada
item(serviço micro) na listalstServicosMicros:
- Atualiza o
FlagUtilizaBagdo serviço micro com oFlagUtilizaBagdo serviço superior atual. - Atualiza o
FlagUtilizaAreaCultivadado serviço micro com oFlagUtilizaAreaCultivadado serviço superior atual. - Chama
item.Save(trans)para persistir as alterações no serviço micro dentro da transação fornecida.
- Stored Procedures chamadas: Nenhuma diretamente. Chama
ListarServicoCamposMicros(que usa SQL inline) eitem.Save(trans)(que chamaUpdate(trans)e usa SQL inline). - Validações: Nenhuma explícita.
- Regras de negócio: Propaga os valores de
FlagUtilizaBageFlagUtilizaAreaCultivadade um serviço de campo superior para seus serviços de campo micro associados.
Stored Procedures
| Nome | Parâmetros | Propósito |
|---|---|---|
INSERT INTO TAB_Servico_Campo | @Idf_Empresa, @Idf_Servico_Campo_Superior, @Nme_Servico_Campo, @Cod_Servico_Campo, @Flg_Permite_Avaliacao, @Idf_Tipo_Avaliacao_Campo, @Prc_Avaliacao, @Flg_Inativo, @Dta_Cadastro, @Idf_Usuario_Gerador, @Num_Ordem, @Idf_Cultura_Campo, @Idf_Tipo_Servico_Campo, @Flg_Utiliza_Bag, @Flg_SolicitaObservacao, @Flg_Utiliza_Area_Cultivada, @Flg_Descontar_Bonus, @Flg_Divisao_Bonus, @Flg_Paga_Hora_In_Itinere, @Flg_Necessita_Aprovacao, @Idf_Servico_Campo (OUTPUT) | Insere um novo registro na tabela TAB_Servico_Campo e retorna o ID gerado. |
UPDATE TAB_Servico_Campo | @Idf_Empresa, @Idf_Servico_Campo_Superior, @Nme_Servico_Campo, @Cod_Servico_Campo, @Flg_Permite_Avaliacao, @Idf_Tipo_Avaliacao_Campo, @Prc_Avaliacao, @Flg_Inativo, @Dta_Cadastro, @Idf_Usuario_Gerador, @Num_Ordem, @Idf_Cultura_Campo, @Idf_Tipo_Servico_Campo, @Flg_Utiliza_Bag, @Flg_SolicitaObservacao, @Flg_Utiliza_Area_Cultivada, @Flg_Descontar_Bonus, @Flg_Divisao_Bonus, @Flg_Paga_Hora_In_Itinere, @Flg_Necessita_Aprovacao, @Idf_Servico_Campo | Atualiza um registro existente na tabela TAB_Servico_Campo com base no Idf_Servico_Campo. |
UPDATE TAB_Servico_Campo SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador ; DELETE FROM TAB_Servico_Campo | @Idf_Usuario_Gerador, @Idf_Servico_Campo | Atualiza o usuário gerador e exclui um registro da tabela TAB_Servico_Campo. |
SELECT * FROM TAB_Servico_Campo | Nenhum | Seleciona todos os registros da tabela TAB_Servico_Campo. |
SELECT * FROM TAB_Servico_Campo WHERE Idf_Servico_Campo = @Idf_Servico_Campo | @Idf_Servico_Campo | Seleciona um registro específico da tabela TAB_Servico_Campo com base no Idf_Servico_Campo. |
SELECT ROW_NUMBER() OVER (ORDER BY ...) (paginação) | Nenhum (parâmetros de ordenação e paginação são concatenados na string) | Consulta paginada para TAB_Servico_Campo, incluindo ordenação. |
SELECT COUNT(*) FROM (...) (contagem para paginação) | Nenhum | Conta o total de registros para a consulta paginada. |
SELSERVICOCAMPOPOREMPRESA (SQL inline) | @Idf_Empresa, @Descricao | Seleciona serviços de campo por empresa, com filtros de descrição e joins para cultura, tipo de serviço e tipo de avaliação. |
select * from TAB_Servico_Campo sc where sc.Idf_Empresa = @Idf_Empresa and sc.Flg_Inativo = 0 | @Idf_Empresa | Seleciona serviços de campo ativos para uma empresa. |
select * from TAB_Servico_Campo sc LEFT JOIN plataforma.tab_cultura_campo cc on cc.Idf_Cultura_Campo = sc.Idf_Cultura_Campo where sc.Idf_Empresa = @Idf_Empresa and sc.Flg_Inativo = 0 and sc.Cod_Servico_Campo = @Cod_Servico_Campo AND (@CulturaCampo IS NULL OR cc.Des_Cultura_Campo = @CulturaCampo) | @Idf_Empresa, @Cod_Servico_Campo, @CulturaCampo | Busca um serviço de campo pelo código, empresa e cultura. |
SELECT * FROM TAB_Servico_Campo WHERE Idf_Empresa = @Idf_Empresa [AND Flg_Inativo = 0/1] | @Idf_Empresa | Seleciona serviços de campo por empresa, opcionalmente filtrando por status de inatividade. |
SELECT * FROM TAB_Servico_Campo WHERE Nme_Servico_Campo = (SELECT Nme_Servico_Campo FROM TAB_Servico_Campo WHERE Idf_Servico_Campo = @Idf_Servico_Campo) | @Idf_Servico_Campo | Lista serviços de campo com o mesmo nome de um serviço superior (lógica potencialmente incorreta). |
SELECT sc.Idf_Servico_Campo, sc.Nme_Servico_Campo, * FROM TAB_Servico_Campo sc WHERE Idf_Servico_Campo_Superior = @Idf_Servico_Campo | @Idf_Servico_Campo | Lista serviços de campo que são filhos diretos de um serviço superior. |
SELECT * FROM TAB_Servico_Campo WHERE Idf_Servico_Campo_Superior = @Idf_Servico_Campo | @Idf_Servico_Campo | Lista serviços de campo que são filhos diretos de um serviço superior. |
SPVALIDARNOMESERVICOCAMPOJACADASTRADO (SQL inline) | @Idf_Servico_Campo, @Idf_Empresa, @Idf_Cultura_Campo, @Nme_Servico_Campo | Verifica a existência de nome de serviço de campo duplicado por empresa e cultura. |
SPVALIDARCODIGOSERVICOCAMPOJACADASTRADO (SQL inline) | @Idf_Servico_Campo, @Idf_Empresa, @Idf_Cultura_Campo, @Cod_Servico_Campo | Verifica a existência de código de serviço de campo duplicado por empresa e cultura. |
SPVALIDARNUMEROORDEMSERVICOCAMPOJACADASTRADO (SQL inline) | @Idf_Empresa, @Idf_Servico_Campo, @Idf_Servico_Campo_Superior, @Num_Ordem | Verifica a existência de número de ordem duplicado para serviços de campo analíticos. |
SPCARREGARPERCENTUALAVALIACAOSERVICOSUPERIOR (SQL inline) | @Idf_Servico_Campo, @Idf_Empresa, @Idf_Servico_Campo_Superior, @Idf_Cultura_Campo | Calcula a soma dos percentuais de avaliação de serviços de campo analíticos de um serviço superior. |
SPVALIDARSERVICOCAMPOJAVINCULADOSINDICATO (SQL inline) | @Idf_Servico_Campo | Verifica se o serviço de campo está vinculado a um sindicato. |
SPVALIDARSERVICOCAMPOJAAVALIADO (SQL inline) | @Idf_Servico_Campo | Verifica se o serviço de campo já foi avaliado. |
SPVALIDARSERVICOCAMPOJAREALIZADO (SQL inline) | @Idf_Servico_Campo | Verifica se o serviço de campo já foi realizado. |
SPVALIDARSERVICOCAMPOOCORRENCIAJALANCADO (SQL inline) | @Idf_Servico_Campo | Verifica se o serviço de campo já tem ocorrências lançadas. |
SPVALIDARSERVICOCAMPOJAVINCULADOOUTROSERVICOCAMPO (SQL inline) | @Idf_Servico_Campo | Verifica se o serviço de campo é um serviço superior para outros serviços. |
SELECT ROW_NUMBER() OVER (ORDER BY ...) FROM TAB_Servico_Campo sc WHERE 1 = 1 and Cod_Servico_Campo <> 'PTES' AND (sc.Cod_Servico_Campo like '%' + @BuscaTexto + '%' OR sc.Nme_Servico_Campo like '%' + @BuscaTexto + '%') [filtros] (SQL inline dinâmico para componente) | @BuscaTexto, @Idf_Empresa, @Flg_Permite_Avaliacao, @Idf_Tipo_Avaliacao_Campo, @Idf_Servico_Campo_Superior, @Idf_Cultura_Campo, @Idf_Tipo_Servico_Campo | Busca paginada e filtrada de serviços de campo para componentes. |
SELECT TOP(@TOP) sc.* FROM TAB_Servico_Campo sc WHERE 1 = 1 and Cod_Servico_Campo <> 'PTES' AND (sc.Cod_Servico_Campo like '%' + @BuscaTexto + '%' OR sc.Nme_Servico_Campo like '%' + @BuscaTexto + '%') [filtros] ORDER BY Cod_Servico_Campo asc, Nme_Servico_Campo asc (SQL inline dinâmico para autocomplete) | @TOP, @BuscaTexto, @Idf_Empresa, @Flg_Permite_Avaliacao, @Idf_Tipo_Avaliacao_Campo, @Idf_Servico_Campo_Superior, @Idf_Cultura_Campo, @Idf_Tipo_Servico_Campo | Lista serviços de campo para autocomplete com filtros e limite. |
10. Aprofundamento — Detalhes Internos de Métodos
Employer.Plataforma.BLL.ParametroEspecifico
Arquivos:
C:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ParametroEspecifico_P1.csC:\Webfopag\Etec.WebFopag\Employer.Plataforma.BLL\ParametroEspecifico_P2.cs
Métodos
| Método | Assinatura | Propósito |
|---|---|---|
ParametroEspecifico | public ParametroEspecifico() | Construtor padrão da classe. |
ParametroEspecifico | public ParametroEspecifico(int idParametroEspecifico) | Construtor que inicializa a instância com um ID de parâmetro específico existente. |
GetParameters | private List<SqlParameter> GetParameters() | Prepara uma lista de parâmetros SQL para operações de insert e update. |
SetParameters | private void SetParameters(List<SqlParameter> parms) | Preenche uma lista de parâmetros SQL com os valores da instância atual de ParametroEspecifico. |
Insert | private void Insert() | Insere uma nova instância de ParametroEspecifico no banco de dados, gerenciando sua própria transação. |
Insert | private void Insert(SqlTransaction trans) | Insere uma nova instância de ParametroEspecifico no banco de dados, utilizando uma transação existente. |
Update | private void void Update() | Atualiza uma instância existente de ParametroEspecifico no banco de dados. |
Update | private void Update(SqlTransaction trans) | Atualiza uma instância existente de ParametroEspecifico no banco de dados, utilizando uma transação existente. |
Save | public void Save() | Salva (insere ou atualiza) a instância de ParametroEspecifico no banco de dados. |
Save | public void Save(SqlTransaction trans) | Salva (insere ou atualiza) a instância de ParametroEspecifico no banco de dados, utilizando uma transação existente. |
Delete | public static void Delete(int idParametroEspecifico) | Exclui um registro de ParametroEspecifico pelo ID. |
Delete | public static void Delete(int idParametroEspecifico, SqlTransaction trans) | Exclui um registro de ParametroEspecifico pelo ID, utilizando uma transação existente. |
Delete | public static void Delete(List<int> idParametroEspecifico) | Exclui múltiplos registros de ParametroEspecifico por uma lista de IDs. |
LoadDataReader | private static IDataReader LoadDataReader(int idParametroEspecifico) | Retorna um IDataReader com os dados de um ParametroEspecifico específico. |
LoadDataReader | private static IDataReader LoadDataReader(int idParametroEspecifico, SqlTransaction trans) | Retorna um IDataReader com os dados de um ParametroEspecifico específico, utilizando uma transação existente. |
LoadDataReader | public static IDataReader LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros) | Retorna um IDataReader com uma consulta paginada de ParametroEspecifico. |
LoadObject | public static ParametroEspecifico LoadObject(int idParametroEspecifico) | Retorna uma instância de ParametroEspecifico carregada do banco de dados pelo ID. |
LoadObject | public static ParametroEspecifico LoadObject(int idParametroEspecifico, SqlTransaction trans) | Retorna uma instância de ParametroEspecifico carregada do banco de dados pelo ID, utilizando uma transação existente. |
CompleteObject | public bool CompleteObject() | Completa os atributos da instância atual de ParametroEspecifico com dados do banco de dados. |
CompleteObject | public bool CompleteObject(SqlTransaction trans) | Completa os atributos da instância atual de ParametroEspecifico com dados do banco de dados, utilizando uma transação existente. |
SetInstance | private static bool SetInstance(IDataReader dr, ParametroEspecifico objParametroEspecifico) | Método auxiliar para preencher uma instância de ParametroEspecifico a partir de um IDataReader. |
ListarNaturezasPermitidasINSS15e16 | public static List<int> ListarNaturezasPermitidasINSS15e16() | Retorna uma lista de IDs de naturezas permitidas para INSS 15 e 16, lendo de um parâmetro específico. |
RecuperarParametroEspecifico | public static string RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, CentroResultado objCentroResultado) | Recupera o valor de um parâmetro específico, considerando a hierarquia Empresa, Filial, Contrato e Centro de Resultado. |
RecuperarParametroEspecifico | public static string RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, CentroResultado objCentroResultado, SqlTransaction trans) | Recupera o valor de um parâmetro específico, considerando a hierarquia Empresa, Filial, Contrato e Centro de Resultado, dentro de uma transação. |
RecuperarParametroEspecifico | public static string RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, Sindicato objSindicato, CentroResultado objCentroResultado) | Recupera o valor de um parâmetro específico, considerando a hierarquia Empresa, Filial, Contrato, Sindicato e Centro de Resultado. |
RecuperarParametroEspecifico | public static string RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, Sindicato objSindicato, CentroResultado objCentroResultado, SqlTransaction trans) | Recupera o valor de um parâmetro específico, considerando a hierarquia Empresa, Filial, Contrato, Sindicato e Centro de Resultado, dentro de uma transação. |
RecuperarParametroEspecificoEmpresa | public static string RecuperarParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa) | Recupera o valor de um parâmetro específico para uma empresa, priorizando o parâmetro específico da empresa e, se não encontrado, o parâmetro geral. |
RecuperarParametroEspecificoEmpresa | public static string RecuperarParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, SqlTransaction trans) | Recupera o valor de um parâmetro específico para uma empresa, priorizando o parâmetro específico da empresa e, se não encontrado, o parâmetro geral, dentro de uma transação. |
RecuperarParametroEspecificoEmpregado | public static string RecuperarParametroEspecificoEmpregado(Enumeradores.NomeParametro enumNomeParametro, Empregado objEmpregado) | Recupera o valor de um parâmetro específico para um empregado, considerando a hierarquia Empresa, Filial e Contrato do empregado. |
RecuperarSomenteParametroEspecificoEmpresa | public static string RecuperarSomenteParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa) | Recupera o valor de um parâmetro específico para uma empresa, considerando somente o parâmetro específico da empresa. |
RecuperarSomenteParametroEspecificoEmpresa | public static string RecuperarSomenteParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, SqlTransaction trans) | Recupera o valor de um parâmetro específico para uma empresa, considerando somente o parâmetro específico da empresa, dentro de uma transação. |
ExisteParametroEspecificoCadastrado | public static bool ExisteParametroEspecificoCadastrado(int idParametro, int? idParametroEspecifico, int? idEmpresa, int? idFilial, int? idContrato, int? idCentroResultado, int? idSindicato) | Verifica se já existe um parâmetro específico cadastrado com os valores fornecidos, considerando a hierarquia. |
Salvar | public static bool Salvar(ParametroEspecifico objParametroEspecifico, Parametro objParametro, AlteracaoMaster objAlteracaoMaster) | Salva um objeto ParametroEspecifico e, opcionalmente, um Parametro e um AlteracaoMaster no banco de dados, gerenciando transações. |
Detalhamento de Métodos Importantes
GetParameters()
- Lógica:
- Cria uma nova lista de
SqlParameter. - Adiciona quatorze parâmetros à lista, definindo seus nomes, tipos SQL e tamanhos:
- Cria uma nova lista de
@Idf_Parametro_Especifico(Int, 4 bytes)@Idf_Parametro(Int, 4 bytes)@Idf_Tipo_Valor(Int, 4 bytes)@Vlr_Parametro(VarChar, 200 bytes)@Flg_Inativo(Bit, 1 byte)@Dta_Cadastro(DateTime, 8 bytes)@Idf_Usuario_Gerador(Int, 4 bytes)@Flg_Validado(Bit, 1 byte)@Idf_Empresa(Int, 4 bytes)@Idf_Filial(Int, 4 bytes)@Idf_Contrato(Int, 4 bytes)@Idf_Sindicato(Int, 4 bytes)@Idf_Centro_Resultado(Int, 4 bytes)@Des_Verbas_Informacao(VarChar, 200 bytes)
- Retorna a lista de parâmetros.
- Propósito: Centralizar a criação dos parâmetros SQL para evitar repetição e garantir consistência.
SetParameters(List parms)
- Lógica:
- Atribui o valor de
_idParametroEspecificoao primeiro parâmetro (@Idf_Parametro_Especifico). - Atribui
_parametro.IdParametroe_tipoValor.IdTipoValoraos seus respectivos parâmetros. - Se
_valorParametronão for nulo ou vazio, atribui seu valor; caso contrário, atribuiDBNull.Value. - Atribui
_flagInativoe_flagValidadoaos seus respectivos parâmetros. - Para
_empresa,_filial,_contrato,_sindicato,_centroResultado:
- Atribui o valor de
- Se o objeto não for nulo, atribui seu ID ao parâmetro correspondente; caso contrário, atribui
DBNull.Value.
- Se
_descricaoVerbasInformacaonão for nulo ou vazio, atribui seu valor; caso contrário, atribuiDBNull.Value. - Se a instância não for persistida (
!_persisted):
- Define a direção do parâmetro
@Idf_Parametro_EspecificocomoOutput(para receber o ID gerado). - Define
_dataCadastrocomo a data e hora atuais (DateTime.Now).
- Caso contrário (se já persistida):
- Define a direção do parâmetro
@Idf_Parametro_EspecificocomoInput.
- Atribui
_dataCadastroao seu parâmetro. - Define
_usuarioGeradorcom base noCodigoUsuarioda sessão HTTP atual (se disponível, caso contrário, usaUsuario(1)). - Atribui
_usuarioGerador.IdUsuarioao seu parâmetro.
- Propósito: Preencher os valores dos parâmetros SQL com os dados da instância atual de
ParametroEspecificoantes de executar uma query. - Regras de negócio:
IdParametroEspecificoé um campo auto-numerado, seu parâmetro é configurado comoOutputna inserção.DataCadastroé preenchido automaticamente na inserção.UsuarioGeradoré preenchido com o usuário logado.
Insert()
- Lógica:
- Chama
GetParameters()eSetParameters(parms). - Abre uma nova conexão SQL e inicia uma transação.
- Dentro de um bloco
try:
- Chama
- Executa a query
SPINSERT(INSERT INTOTAB_Parametro_Especifico) usandoDataAccessLayer.ExecuteNonQueryCmd(). - Recupera o
Idf_Parametro_Especificogerado pelo banco de dados (usandoSCOPE_IDENTITY()) do parâmetro de saída. - Limpa os parâmetros do comando.
- Define
_persistedcomotruee_modifiedcomofalse. - Confirma a transação.
- Dentro de um bloco
catch, reverte a transação e relança a exceção.
- Stored Procedures chamadas:
SPINSERT:INSERT INTO TAB_Parametro_Especifico (Idf_Parametro, Idf_Tipo_Valor, Vlr_Parametro, Flg_Inativo, Dta_Cadastro, Idf_Usuario_Gerador, Flg_Validado, Idf_Empresa, Idf_Filial, Idf_Contrato, Idf_Sindicato, Idf_Centro_Resultado, Des_Verbas_Informacao) VALUES (@Idf_Parametro, @Idf_Tipo_Valor, @Vlr_Parametro, @Flg_Inativo, @Dta_Cadastro, @Idf_Usuario_Gerador, @Flg_Validado, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Sindicato, @Idf_Centro_Resultado, @Des_Verbas_Informacao);SET @Idf_Parametro_Especifico = SCOPE_IDENTITY();
- Parâmetros:
@Idf_Parametro,@Idf_Tipo_Valor,@Vlr_Parametro,@Flg_Inativo,@Dta_Cadastro,@Idf_Usuario_Gerador,@Flg_Validado,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Sindicato,@Idf_Centro_Resultado,@Des_Verbas_Informacao,@Idf_Parametro_Especifico(Output) - Propósito: Inserir um novo registro na tabela
TAB_Parametro_Especificoe retornar o ID gerado.
Update()
- Lógica:
- Verifica se a instância foi modificada (
_modified). - Se foi modificada:
- Verifica se a instância foi modificada (
- Chama
GetParameters()eSetParameters(parms). - Executa a query
SPUPDATE(UPDATETAB_Parametro_Especifico) usandoDataAccessLayer.ExecuteNonQuery(). - Define
_modifiedcomofalse. - Stored Procedures chamadas:
SPUPDATE:UPDATE TAB_Parametro_Especifico SET Idf_Parametro = @Idf_Parametro, Idf_Tipo_Valor = @Idf_Tipo_Valor, Vlr_Parametro = @Vlr_Parametro, Flg_Inativo = @Flg_Inativo, Dta_Cadastro = @Dta_Cadastro, Idf_Usuario_Gerador = @Idf_Usuario_Gerador, Flg_Validado = @Flg_Validado, Idf_Empresa = @Idf_Empresa, Idf_Filial = @Idf_Filial, Idf_Contrato = @Idf_Contrato, Idf_Sindicato = @Idf_Sindicato, Idf_Centro_Resultado = @Idf_Centro_Resultado, Des_Verbas_Informacao = @Des_Verbas_Informacao WHERE Idf_Parametro_Especifico = @Idf_Parametro_Especifico
- Parâmetros:
@Idf_Parametro,@Idf_Tipo_Valor,@Vlr_Parametro,@Flg_Inativo,@Dta_Cadastro,@Idf_Usuario_Gerador,@Flg_Validado,@Idf_Empresa,@Idf_Filial,@Idf_Contrato,@Idf_Sindicato,@Idf_Centro_Resultado,@Des_Verbas_Informacao,@Idf_Parametro_Especifico - Propósito: Atualizar um registro existente na tabela
TAB_Parametro_Especifico.
Save()
- Lógica:
- Se a instância não for persistida (
!_persisted):
- Se a instância não for persistida (
- Chama
this.Insert().
- Caso contrário (se já persistida):
- Chama
this.Update(). - Propósito: Abstrair a lógica de inserção ou atualização, decidindo qual operação executar com base no estado da instância.
Delete(int idParametroEspecifico)
- Lógica:
- Cria uma lista de
SqlParameter. - Adiciona
@Idf_Parametro_Especificoe@Idf_Usuario_Gerador(obtido da sessão do usuário logado). - Executa a query
SPDELETE(UPDATE paraIdf_Usuario_Geradore DELETE FROMTAB_Parametro_Especifico) usandoDataAccessLayer.ExecuteNonQuery().
- Cria uma lista de
- Stored Procedures chamadas:
SPDELETE:UPDATE TAB_Parametro_Especifico SET Idf_Usuario_Gerador = @Idf_Usuario_Gerador WHERE Idf_Parametro_Especifico = @Idf_Parametro_Especifico ; DELETE FROM TAB_Parametro_Especifico WHERE Idf_Parametro_Especifico = @Idf_Parametro_Especifico
- Parâmetros:
@Idf_Parametro_Especifico(int),@Idf_Usuario_Gerador(int) - Propósito: Atualizar o usuário gerador e, em seguida, excluir o registro da tabela
TAB_Parametro_Especifico. - Regras de negócio:
- Antes de excluir fisicamente o registro, o
Idf_Usuario_Geradoré atualizado, o que pode indicar uma auditoria ou “exclusão lógica” antes da exclusão física.
- Antes de excluir fisicamente o registro, o
Delete(List idParametroEspecifico)
- Lógica:
- Cria uma lista de
SqlParameter. - Constrói dinamicamente duas queries SQL: uma para
UPDATEdoIdf_Usuario_Geradore outra paraDELETEcom uma cláusulaWHERE IN. - Itera sobre a lista
idParametroEspecifico:
- Cria uma lista de
- Para cada ID, cria um nome de parâmetro único (ex:
@parm0,@parm1). - Adiciona o nome do parâmetro às strings das queries.
- Adiciona um
SqlParametercorrespondente à lista de parâmetros com o valor do ID.
- Adiciona o parâmetro
@Idf_Usuario_Gerador(obtido da sessão do usuário logado) à lista de parâmetros. - Concatena as duas queries (
UPDATE+DELETE). - Executa a query SQL construída usando
DataAccessLayer.ExecuteNonQuery().
- Stored Procedures chamadas:
- Query SQL dinâmica:
update TAB_Parametro_Especifico set Idf_Usuario_Gerador = @Idf_Usuario_Gerador where Idf_Parametro_Especifico in (@parm0, @parm1, ...) ;
delete from TAB_Parametro_Especifico where Idf_Parametro_Especifico in (@parm0, @parm1, ...)
- Parâmetros:
@parm0,@parm1, etc. (int),@Idf_Usuario_Gerador(int) - Propósito: Atualizar o usuário gerador e, em seguida, excluir múltiplos registros da tabela
TAB_Parametro_Especificopor uma lista de IDs.
LoadDataReader(int idParametroEspecifico)
- Lógica:
- Cria uma lista de
SqlParameter. - Adiciona um parâmetro
@Idf_Parametro_Especificocom o valoridParametroEspecifico. - Executa a query
SPSELECTID(SELECT * FROMTAB_Parametro_EspecificoWHEREIdf_Parametro_Especifico=@Idf_Parametro_Especifico) usandoDataAccessLayer.ExecuteReader(). - Retorna o
IDataReader.
- Cria uma lista de
- Stored Procedures chamadas:
SPSELECTID:SELECT * FROM TAB_Parametro_Especifico WHERE Idf_Parametro_Especifico = @Idf_Parametro_Especifico
- Parâmetros:
@Idf_Parametro_Especifico(int) - Propósito: Selecionar um registro específico da tabela
TAB_Parametro_Especifico.
LoadDataReader(string colunaOrdenacao, string direcaoOrdenacao, int paginaCorrente, int tamanhoPagina, out int totalRegistros)
- Lógica:
- Calcula
inicioefimpara a paginação. - Constrói uma query SQL
SPSELECTPAGpara selecionar os dados da tabelaTAB_Parametro_Especificocom uma colunaRowIDpara ordenação e paginação. - Constrói uma query SQL
SPSELECTCOUNTpara contar o total de registros. - Atualiza
SPSELECTPAGpara filtrar os registros peloRowIdentreinicioefim. - Executa
SPSELECTCOUNTusandoDataAccessLayer.ExecuteScalar()para obter ototalRegistros. - Executa
SPSELECTPAGusandoDataAccessLayer.ExecuteReader(). - Retorna o
IDataReader.
- Calcula
- Stored Procedures chamadas:
- Query SQL dinâmica para paginação e contagem:
SELECT ROW_NUMBER() OVER (ORDER BY [colunaOrdenacao] [direcaoOrdenacao]) AS RowID, Par.Idf_Parametro_Especifico, Par.Idf_Parametro, Par.Idf_Tipo_Valor, Par.Vlr_Parametro, Par.Flg_Inativo, Par.Dta_Cadastro, Par.Idf_Usuario_Gerador, Par.Flg_Validado, Par.Idf_Empresa, Par.Idf_Filial, Par.Idf_Contrato, Par.Idf_Sindicato, Par.Idf_Centro_Resultado, Par.Des_Verbas_Informacao FROM TAB_Parametro_Especifico Par
SELECT COUNT(*) FROM (SELECT ROW_NUMBER() OVER (ORDER BY [colunaOrdenacao] [direcaoOrdenacao]) AS RowID, Par.Idf_Parametro_Especifico, Par.Idf_Parametro, Par.Idf_Tipo_Valor, Par.Vlr_Parametro, Par.Flg_Inativo, Par.Dta_Cadastro, Par.Idf_Usuario_Gerador, Par.Flg_Validado, Par.Idf_Empresa, Par.Idf_Filial, Par.Idf_Contrato, Par.Idf_Sindicato, Par.Idf_Centro_Resultado, Par.Des_Verbas_Informacao FROM TAB_Parametro_Especifico Par) AS temp
SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY [colunaOrdenacao] [direcaoOrdenacao]) AS RowID, Par.Idf_Parametro_Especifico, Par.Idf_Parametro, Par.Idf_Tipo_Valor, Par.Vlr_Parametro, Par.Flg_Inativo, Par.Dta_Cadastro, Par.Idf_Usuario_Gerador, Par.Flg_Validado, Par.Idf_Empresa, Par.Idf_Filial, Par.Idf_Contrato, Par.Idf_Sindicato, Par.Idf_Centro_Resultado, Par.Des_Verbas_Informacao FROM TAB_Parametro_Especifico Par) AS temp WHERE RowId BETWEEN [inicio] AND [fim]
- Parâmetros: Nenhum parâmetro SQL explícito, mas a query é construída com base nos parâmetros de entrada do método.
- Propósito: Fornecer uma consulta paginada e ordenada dos registros de
ParametroEspecifico.
LoadObject(int idParametroEspecifico)
- Lógica:
- Usa um
IDataReaderobtido deLoadDataReader(idParametroEspecifico). - Cria uma nova instância de
ParametroEspecifico. - Chama
SetInstance(dr, objParametroEspecifico)para preencher a instância. - Se
SetInstanceretornartrue, retorna a instância preenchida. - Caso contrário, lança uma
RecordNotFoundException.
- Usa um
- Exceções Lançadas:
RecordNotFoundException: Se nenhum registro for encontrado para oidParametroEspecificofornecido.
CompleteObject()
- Lógica:
- Usa um
IDataReaderobtido deLoadDataReader(this._idParametroEspecifico). - Chama
SetInstance(dr, this)para preencher a instância atual. - Retorna o resultado de
SetInstance.
- Usa um
- Propósito: Preencher os atributos da própria instância com dados do banco de dados.
SetInstance(IDataReader dr, ParametroEspecifico objParametroEspecifico)
- Lógica:
- Dentro de um bloco
try:
- Dentro de um bloco
- Se
dr.Read()retornartrue(há um registro para ler): - Atribui os valores das colunas do
IDataReaderaos atributos correspondentes deobjParametroEspecifico, tratandoDBNull.Valuee instanciando objetos relacionados (Parametro,TipoValor,Usuario,Empresa,Filial,Contrato,Sindicato,CentroResultado). - Define
_persistedcomotruee_modifiedcomofalse. - Retorna
true. - Caso contrário, retorna
false.
- Dentro de um bloco
catch, relança a exceção. - Dentro de um bloco
finally, descarta oIDataReader(dr.Dispose()).
- Propósito: Mapear os dados de um
IDataReaderpara as propriedades de um objetoParametroEspecifico, incluindo a criação de objetos de domínio relacionados.
ListarNaturezasPermitidasINSS15e16()
- Lógica:
- Inicializa
naturezasStrcomo string vazia. - Usa um
IDataReaderobtido deDataAccessLayer.ExecuteReader(CommandType.Text, SELNATUREZASPERMITIDASINSS15E16, null). - Se o
readerpuder ler um registro:
- Inicializa
- Atribui o valor da coluna “Des_Verbas_Informacao” a
naturezasStr.
- Divide
naturezasStrpor vírgulas e converte cada parte para inteiro, retornando umaList<int>.
- Stored Procedures chamadas:
SELNATUREZASPERMITIDASINSS15E16:
SELECT Des_Verbas_Informacao
FROM TAB_Parametro_Especifico PES
WHERE 1 = 1
AND PES.Idf_Parametro = 1516
AND PES.Vlr_Parametro = 1
- Parâmetros: Nenhum.
- Propósito: Recuperar a descrição das verbas de informação para parâmetros específicos relacionados ao INSS 15 e 16.
- Regras de negócio:
- O parâmetro
Idf_Parametro = 1516eVlr_Parametro = 1são chaves para identificar as naturezas permitidas. - A descrição das verbas é esperada como uma string separada por vírgulas de IDs.
- O parâmetro
RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, CentroResultado objCentroResultado)
- Lógica:
- Inicializa
retornocomo string vazia. - Abre uma nova conexão SQL e inicia uma transação.
- Dentro de um bloco
try:
- Inicializa
- Chama a sobrecarga
RecuperarParametroEspecifico(..., SqlTransaction trans)para realizar a busca dentro da transação. - Confirma a transação.
- Dentro de um bloco
catch, reverte a transação. - Retorna
retorno.
- Propósito: Fornecer uma interface para recuperar um parâmetro específico, gerenciando a transação internamente.
RecuperarParametroEspecifico(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, Filial objFilial, Contrato objContrato, Sindicato objSindicato, CentroResultado objCentroResultado, SqlTransaction trans)
- Lógica:
- Cria uma lista de
SqlParameter. - Adiciona
@Idf_Parametrocom o valor doenumNomeParametro. - Para
objEmpresa,objFilial,objContrato,objSindicato,objCentroResultado:
- Cria uma lista de
- Se o objeto não for nulo, adiciona o ID ao parâmetro correspondente; caso contrário, adiciona
DBNull.Value.
- Executa a query
SPSELPARAMENTROESPECIFICO(que chama a função de tabelaTAB_SF_Parametro_Especifico) usandoDataAccessLayer.ExecuteReader(), passando a transação. - Se o
IDataReaderpuder ler um registro:
- Atribui o valor da coluna “Vlr_Parametro” a
resultado.
- Retorna
resultado.
- Stored Procedures chamadas:
SPSELPARAMENTROESPECIFICO:SELECT * FROM TAB_SF_Parametro_Especifico(@Idf_Parametro, @Idf_Empresa, @Idf_Filial, @Idf_Contrato, @Idf_Sindicato, @Idf_Centro_Resultado)
- Parâmetros:
@Idf_Parametro(int),@Idf_Empresa(int?),@Idf_Filial(int?),@Idf_Contrato(int?),@Idf_Sindicato(int?),@Idf_Centro_Resultado(int?) - Propósito: Recuperar o valor de um parâmetro específico, considerando a hierarquia de especificidade.
RecuperarParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, SqlTransaction trans)
- Lógica:
- Cria uma lista de
SqlParameter. - Adiciona
@Idf_Parametrocom o valor doenumNomeParametro. - Para
objEmpresa:
- Cria uma lista de
- Se o objeto não for nulo, adiciona o ID ao parâmetro; caso contrário, adiciona
DBNull.Value.
- Define uma query SQL dinâmica que busca o
Vlr_Parametroda tabelaTAB_Parametro_Especificopara a empresa, comDes_Ordem = 2. - Executa a query SQL usando
DataAccessLayer.ExecuteReader(), passando a transação. - Se o
IDataReaderpuder ler um registro:
- Atribui o valor da coluna “Vlr_Parametro” a
resultado.
- Se
resultadoainda for vazio ou nulo:
- Chama
Parametro.RecuperaValorParametro(enumNomeParametro, trans)para tentar recuperar o parâmetro geral (não específico da empresa).
- Retorna
resultado.
- Stored Procedures chamadas:
- Query SQL dinâmica:
SELECT TOP 1 Vlr_Parametro
FROM (
--POR EMPRESA
SELECT PE.Vlr_Parametro, 2 Des_Ordem
FROM TAB_Parametro P
INNER JOIN TAB_Parametro_Especifico PE
ON PE.Idf_Parametro = P.Idf_Parametro
WHERE PE.Idf_Parametro = @Idf_Parametro
AND PE.Idf_Empresa = @Idf_Empresa
AND PE.Flg_Inativo = 0
) AS Parametros
ORDER BY Des_Ordem DESC
- Parâmetros:
@Idf_Parametro(int),@Idf_Empresa(int?) - Propósito: Recuperar o valor de um parâmetro específico para uma empresa, com fallback para o parâmetro geral.
RecuperarParametroEspecificoEmpregado(Enumeradores.NomeParametro enumNomeParametro, Empregado objEmpregado)
- Lógica:
- Completa os objetos
EmpregadoeContratodo empregado. - Cria uma lista de
SqlParameter, adicionando@Idf_Parametroe@Idf_Empresa(do contrato do empregado). - Para
FilialGestoraeContratodo empregado:
- Completa os objetos
- Se o objeto não for nulo, adiciona o ID ao parâmetro correspondente; caso contrário, adiciona
DBNull.Value.
- Define uma query SQL dinâmica complexa que busca o
Vlr_Parametroda tabelaTAB_Parametro_Especificoem uma hierarquia de especificidade:
- Primeiro tenta por contrato (empresa, filial, contrato).
- Depois por filial (empresa, filial).
- Por fim, por empresa (apenas empresa).
- A ordenação
Des_Ordem DESCgarante que o mais específico seja selecionado (4para contrato,3para filial,2para empresa).
- Executa a query SQL usando
DataAccessLayer.ExecuteReader(). - Se o
IDataReaderpuder ler um registro:
- Atribui o valor da coluna “Vlr_Parametro” a
resultado.
- Se
resultadoainda for vazio ou nulo:
- Chama
Parametro.RecuperaValorParametro(enumNomeParametro)para tentar recuperar o parâmetro geral.
- Retorna
resultado.
- Stored Procedures chamadas:
- Query SQL dinâmica:
SELECT TOP 1 Vlr_Parametro
FROM (
--por empresa
SELECT PE.Vlr_Parametro, 2 Des_Ordem
FROM TAB_Parametro P
INNER JOIN TAB_Parametro_Especifico PE
ON PE.Idf_Parametro = P.Idf_Parametro
WHERE PE.Idf_Parametro = @Idf_Parametro
AND PE.Idf_Empresa = @Idf_Empresa
AND PE.Idf_Filial IS NULL
AND PE.Idf_Contrato IS NULL
AND PE.Flg_Inativo = 0
UNION ALL
--por filial
SELECT PE.Vlr_Parametro, 3 Des_Ordem
FROM TAB_Parametro P
INNER JOIN TAB_Parametro_Especifico PE
ON PE.Idf_Parametro = P.Idf_Parametro
WHERE PE.Idf_Parametro = @Idf_Parametro
AND PE.Idf_Empresa = @Idf_Empresa
AND PE.Idf_Filial = @Idf_Filial
AND PE.Idf_Contrato IS NULL
AND PE.Flg_Inativo = 0
UNION ALL
--por contrato
SELECT PE.Vlr_Parametro, 4 Des_Ordem
FROM TAB_Parametro P
INNER JOIN TAB_Parametro_Especifico PE
ON PE.Idf_Parametro = P.Idf_Parametro
WHERE PE.Idf_Parametro = @Idf_Parametro
AND PE.Idf_Empresa = @Idf_Empresa
AND PE.Idf_Filial = @Idf_Filial
AND PE.Idf_Contrato = @Idf_Contrato
AND PE.Flg_Inativo = 0
) AS Parametros
ORDER BY Des_Ordem DESC
- Parâmetros:
@Idf_Parametro(int),@Idf_Empresa(int),@Idf_Filial(int?),@Idf_Contrato(int?) - Propósito: Recuperar o valor de um parâmetro específico para um empregado, aplicando uma hierarquia de busca (contrato > filial > empresa) e fallback para o parâmetro geral.
RecuperarSomenteParametroEspecificoEmpresa(Enumeradores.NomeParametro enumNomeParametro, Empresa objEmpresa, SqlTransaction trans)
- Lógica:
- Cria uma lista de
SqlParameter. - Adiciona
@Idf_Parametrocom o valor doenumNomeParametro. - Para
objEmpresa:
- Cria uma lista de
- Se o objeto não for nulo, adiciona o ID ao parâmetro; caso contrário, adiciona
DBNull.Value.
- Define uma query SQL dinâmica que busca o
Vlr_Parametroda tabelaTAB_Parametro_Especificopara a empresa, comDes_Ordem = 2. - Executa a query SQL usando
DataAccessLayer.ExecuteReader(), passando a transação. - Se o
IDataReaderpuder ler um registro:
- Atribui o valor da coluna “Vlr_Parametro” a
resultado.
- Retorna
resultado.
- Stored Procedures chamadas:
- Query SQL dinâmica (similar a
RecuperarParametroEspecificoEmpresa, mas sem o fallback paraParametro.RecuperaValorParametro):
- Query SQL dinâmica (similar a
SELECT TOP 1 Vlr_Parametro
FROM (
--POR EMPRESA
SELECT PE.Vlr_Parametro, 2 Des_Ordem
FROM TAB_Parametro P
INNER JOIN TAB_Parametro_Especifico PE
ON PE.Idf_Parametro = P.Idf_Parametro
WHERE PE.Idf_Parametro = @Idf_Parametro
AND PE.Idf_Empresa = @Idf_Empresa
AND PE.Flg_Inativo = 0
) AS Parametros
ORDER BY Des_Ordem DESC
- Parâmetros:
@Idf_Parametro(int),@Idf_Empresa(int?) - Propósito: Recuperar o valor de um parâmetro específico para uma empresa, sem considerar o parâmetro geral.
ExisteParametroEspecificoCadastrado(int idParametro, int? idParametroEspecifico, int? idEmpresa, int? idFilial, int? idContrato, int? idCentroResultado, int? idSindicato)
- Lógica:
- Cria uma lista de
SqlParameter. - Adiciona parâmetros para
idParametro,idParametroEspecifico,idEmpresa,idFilial,idContrato,idCentroResultado,idSindicato, tratando valores nulos comDBNull.Value. - Executa a query
SPEXISTEPARAMETROESPECIFICOCADASTRADOusandoDataAccessLayer.ExecuteScalar(). - Converte o resultado para booleano e retorna.
- Cria uma lista de
- Stored Procedures chamadas:
SPEXISTEPARAMETROESPECIFICOCADASTRADO:
SELECT COUNT(*)
FROM TAB_Parametro_Especifico PES (NOLOCK)
WHERE PES.Idf_Parametro = @Idf_Parametro
AND (@Idf_Parametro_Especifico IS NULL OR PES.Idf_Parametro_Especifico <> @Idf_Parametro_Especifico)
AND (PES.Idf_Empresa = @Idf_Empresa OR (@Idf_Empresa IS NULL AND PES.Idf_Empresa IS NULL))
AND (PES.Idf_Filial = @Idf_Filial OR (@Idf_Filial IS NULL AND PES.Idf_Filial IS NULL))
AND (PES.Idf_Contrato = @Idf_Contrato OR (@Idf_Contrato IS NULL AND PES.Idf_Contrato IS NULL))
AND (PES.Idf_Centro_Resultado = @Idf_Centro_Resultado OR (@Idf_Centro_Resultado IS NULL AND PES.Idf_Centro_Resultado IS NULL))
AND (PES.Idf_Sindicato = @Idf_Sindicato OR (@Idf_Sindicato IS NULL AND PES.Idf_Sindicato IS NULL))
- Parâmetros:
@Idf_Parametro(int),@Idf_Parametro_Especifico(int?),@Idf_Empresa(int?),@Idf_Filial(int?),@Idf_Contrato(int?),@Idf_Centro_Resultado(int?),@Idf_Sindicato(int?) - Propósito: Verificar a existência de um parâmetro específico com base em uma combinação de filtros hierárquicos, excluindo o próprio
idParametroEspecificose fornecido (para validação de duplicidade em edição). - Regras de negócio:
- Validação de unicidade de parâmetros específicos em diferentes níveis da hierarquia (empresa, filial, contrato, centro de resultado, sindicato).
Salvar(ParametroEspecifico objParametroEspecifico, Parametro objParametro, AlteracaoMaster objAlteracaoMaster)
- Lógica:
- Abre uma nova conexão SQL e inicia uma transação.
- Dentro de um bloco
try:
- Se
objParametroEspecificonão for nulo: - Tenta completar o
Parametroassociado aobjParametroEspecificousandoobjParametroEspecifico.Parametro.CompleteObject(trans). - Se o
Parametronão for encontrado (!CompleteObject): - Cria um novo objeto
Parametrocom o ID do parâmetro específico. - Salva este novo
Parametro(objParametro.Save(trans)). - Atribui o
objParametrorecém-salvo de volta aobjParametroEspecifico.Parametro. - Salva o
objParametroEspecifico(objParametroEspecifico.Save(trans)). - Caso contrário (se
objParametroEspecificofor nulo): - Salva o
objParametrofornecido (objParametro.Save(trans)). - Se
objAlteracaoMasternão for nulo: - Salva o
objAlteracaoMaster(objAlteracaoMaster.Save(trans)). - Confirma a transação.
- Retorna
true.
- Dentro de um bloco
catch:
- Reverte a transação.
- Retorna
false. - Regras de negócio:
- Garante a atomicidade das operações de salvar
ParametroEspecifico,ParametroeAlteracaoMasterem uma única transação. - Lógica para garantir que o
Parametropai exista antes de salvar oParametroEspecifico. Se oParametronão existir, ele é criado.
- Garante a atomicidade das operações de salvar
Stored Procedures
| Nome | Parâmetros | Propósito |
|---|---|---|
SPINSERT | @Idf_Parametro (int), @Idf_Tipo_Valor (int), @Vlr_Parametro (varchar), @Flg_Inativo (bit), @Dta_Cadastro (datetime), @Idf_Usuario_Gerador (int), @Flg_Validado (bit), @Idf_Empresa (int?), @Idf_Filial (int?), @Idf_Contrato (int?), @Idf_Sindicato (int?), @Idf_Centro_Resultado (int?), @Des_Verbas_Informacao (varchar), @Idf_Parametro_Especifico (output int) | Inserir um novo registro na tabela TAB_Parametro_Especifico e retornar o ID gerado. |
SPUPDATE | @Idf_Parametro (int), @Idf_Tipo_Valor (int), @Vlr_Parametro (varchar), @Flg_Inativo (bit), @Dta_Cadastro (datetime), @Idf_Usuario_Gerador (int), @Flg_Validado (bit), @Idf_Empresa (int?), @Idf_Filial (int?), @Idf_Contrato (int?), @Idf_Sindicato (int?), @Idf_Centro_Resultado (int?), @Des_Verbas_Informacao (varchar), @Idf_Parametro_Especifico (int) | Atualizar um registro existente na tabela TAB_Parametro_Especifico. |
SPDELETE | @Idf_Parametro_Especifico (int), @Idf_Usuario_Gerador (int) | Atualizar o usuário gerador e, em seguida, excluir o registro da tabela TAB_Parametro_Especifico. |
SPSELECTID | @Idf_Parametro_Especifico (int) | Selecionar um registro específico da tabela TAB_Parametro_Especifico. |
SELNATUREZASPERMITIDASINSS15E16 | Nenhum | Recuperar a descrição das verbas de informação para parâmetros específicos relacionados ao INSS 15 e 16. |
SPEXISTEPARAMETROESPECIFICOCADASTRADO | @Idf_Parametro (int), @Idf_Parametro_Especifico (int?), @Idf_Empresa (int?), @Idf_Filial (int?), @Idf_Contrato (int?), @Idf_Centro_Resultado (int?), @Idf_Sindicato (int?) | Verificar a existência de um parâmetro específico com base em uma combinação de filtros hierárquicos. |
TAB_SF_Parametro_Especifico (função de tabela) | @Idf_Parametro (int), @Idf_Empresa (int?), @Idf_Filial (int?), @Idf_Contrato (int?), @Idf_Sindicato (int?), @Idf_Centro_Resultado (int?) | Recuperar o valor de um parâmetro específico, considerando a hierarquia de especificidade. |
Query SQL dinâmica para Delete(List<int> idParametroEspecifico) | @parm0, @parm1, … (int), @Idf_Usuario_Gerador (int) | Atualizar o usuário gerador e, em seguida, excluir múltiplos registros da tabela TAB_Parametro_Especifico por uma lista de IDs. |
Query SQL dinâmica para LoadDataReader(string colunaOrdenacao, ...) | Nenhum (parâmetros de ordenação e paginação são embutidos na string SQL) | Fornecer uma consulta paginada e ordenada dos registros de ParametroEspecifico. |
Query SQL dinâmica para RecuperarParametroEspecificoEmpresa(..., SqlTransaction trans) e RecuperarSomenteParametroEspecificoEmpresa(..., SqlTransaction trans) | @Idf_Parametro (int), @Idf_Empresa (int?) | Recuperar o valor de um parâmetro específico para uma empresa. |
Query SQL dinâmica para RecuperarParametroEspecificoEmpregado(...) | @Idf_Parametro (int), @Idf_Empresa (int), @Idf_Filial (int?), @Idf_Contrato (int?) | Recuperar o valor de um parâmetro específico para um empregado, aplicando uma hierarquia de busca. |