DES:SGRH:ImpAprConcurso
De Wiki Unioeste NTI
Edição feita às 08h31min de 21 de dezembro de 2011 por Marcospaulo (disc | contribs)
Voltar a página Inicial - Documentação Técnica
Análise: Liége em 28/08/2006.
Desenvolvimento: Vinícius Moll em 30/08/2006.
Prover um candidato ao Cargo, através da importação de dados de concursos informatizados. A pessoa deve ter sido convocada a assumir a vaga através da transação do sistema Cadastro de Editais de Chamadas e Candidatos do Controle de Vagas.
- Tabelas
- A serem Gravadas: PssFisica, Endereco, PssFscAdmissao e PssFscAdmPrvCargo. Os dados destas tabelas são acessados com um esquema Master-Detail;
- A serem Acessadas: CncAprovados, CncChmAprovados, CncAprSituacao, Concurso, VgaHistorico, Setor, CrgAdministrativo, CncChamada, RgmTrabalho, FrmPrvCargo, Consultor .
Importação:
- Solicitar o Concurso (Ano e Número) no qual a pessoa foi convocada;
- Filtro opcional: Solicitar a Lotação, restringindo a pesquisa ao Concurso (Ano e Número) informado;
- Filtro opcional: Solicitar o Cargo, restringindo a pesquisa ao Concurso (Ano e Número) e à Lotação, se houver;
- Solicitar a Pessoa, restringindo a pesquisa ao Concurso (Ano e Número), à Lotação e Cargo, se houver ;
- Ler informações nas tabelas CncChmAprovados e CncAprovados, sendo que a Situação deve estar "Ocupando Vaga" (CncAprSituacao.CncAprStc_OcpVaga='T');
- Caso o CPF informado não exista em CncAprovados, solicitá-lo ao usuário;
- 1º Passo Cadastro de PssFisica: Ler a tabela PssFisica através do CPF, para verificar se já existe cadastro; Caso não existir, gravar uma nova linha para a pessoa em PssFisica; Caso existir, ignorar a gravação de PssFisica;
- PssFsc_Codigo: gerar através da Stored Procedure spPssFscCodigo
- PssFsc_Nome: CncAprovados.CncApr_Nome (Obrigatório)
- PssFsc_Email: CncAprovados.CncApr_eMail
- PssFsc_DtNascimento: CncAprovados.CncApr_DtNascimento (Obrigatório)
- PssFsc_Sexo: CncAprovados.CncApr_Sexo (Obrigatório)
- PssFsc_CPF: CncAprovados.CncApr_CPF (Obrigatório) se estiver preenchido ; caso contrário, o que foi informado pelo usuário
- PssFsc_RG: CncAprovados.CncApr_Documento (Obrigatório)
- 2º Passo Cadastro de Endereco: Se a pessoa existir na tabela PssFisica, através de PssFsc_codigo, verificar se existe na tabela Endereco (Residencial); Caso não existir, gravar uma nova linha para a pessoa em Endereco; Caso existir, ignorar a gravação de Endereco;
- End_Codigo: Select IsNull(MAX(End_Codigo),0) + 1 from Endereco where PssFsc_codigo = ?
- TpEnd_Codigo: 1 (residencial)
- End_Logradouro: CncAprovados.CncApr_Endereco
- End_Numero: CncAprovados.CncApr_EndNumero
- End_Bairro: CncAprovados.CncApr_Bairro
- End_Complemento: CncAprovados.CncApr_EndComplemento
- End_Cep: CncAprovados.CncApr_Cep
- Mnc_Codigo: CncAprovados.Mnc_Codigo
- End_DDDFone: CncAprovados.CncApr_DDDFone
- End_Fone: CncAprovados.CncApr_Fone
A importação foi divida em 4 passos:
Obs.: Caso nenhum destes campos estiver preenchido, não gravar nada na tabela Endereço; Caso algum campo estiver preenchido, obrigar:
- Logradouro
- Número
- Município
- PssFscAdm_Sequencia: Select IsNull(MAX(PssFscAdm_Sequencia),0) + 1 from PssFscAdmissao where PssFsc_codigo = ?
- Vnc_codigo: Concurso.Vnc_Codigo
- PssFscAdm_DtPosse: Solicitar ao usuário
- PssFscAdm_DtExercicio: Solicitar ao usuário
- RgmJrd_Codigo: Concurso.RgmJrd_Codigo
- EstPrbRsl_Codigo: Solicitar ao usuário
- TblFndLgl_Codigo: Solicitar ao usuário
- PssFscAdmPrvCrg_Sequencia: 1
- Str_Lotacao: CncChmAprovados...VgaHistorico.Str_Lotacao
- CrgAdm_Codigo: CncChmAprovados...VgaHistorico.CrgAdm_Codigo
- RgmTrb_Codigo: Solicitar ao usuário
- PssFscAdmPrvCrg_Documento: Solicitar ao usuário a Portaria de Nomeação
- PssFscAdmPrvCrg_DtDocumento: Solicitar ao usuário a Data da Portaria de Nomeação
- TblGrl_TpDcmCurso: 'TpDocumento'
- TblGrlItm_TpDcmCurso: 'Prt'
- PssFscAdmPrvCrg_DtInicio: Solicitar ao usuário (preencher inicialmente com a Dt. Exercício informada anteriormente
- TblGrl_FrmPrvCargo: 'FrmPrvCrgAdm'
- TblGrlItm_FrmPrvCargo: Solicitar ao usuário
- Vga_Numero: CncChmAprovados
- VgaHst_Sequencia: CncChmAprovados
- Cnc_Ano: CncChmAprovados
- Cnc_Numero: CncChmAprovados
- CncChm_Sequencia: CncChmAprovados
- CncApr_NmrInscricao: CncChmAprovados
- Aspectos gerais de implementação
A implementação de cada etapa da importação das informações de um candidato aprovado em Concurso no Cadastro de Importação, foi dividida em quatro procedimentos chamados pPasso1, pPasso2, pPasso3 e pPasso4. Cada passo possui um flag (variável booleana de controle) para manter a informação de quais passos já foram executados. Optou-se por essa abordagem ao realizar a implementação, tendo em vista a necessidade de o sistema ter de gerar um código de Pessoa Física no passo 1. Desse modo, quando o usuário precisar navegar nesta tela de cadastro não será necessário reexecutar os passos que já foram executados. O principal objetivo disso é evitar erros na aplicação e a sobrecarga de dados na rede.
Uma breve descrição de cada passo ou etapa de importação é apresentada a seguir:
- Passo 1, Verificar se Já existe um CADASTRO DE PESSOA FÍSICA
para o(a) Candidato(a)que está tendo suas informações importadas;
- Passo 2, Verificação de ENDEREÇO RESIDENCIAL do(a) Candidato(a);
- Passo 3, Inserção ou geração de uma NOVA ADMISSÃO para o(a) candidato(a);
- Passo 4, Inserção ou geração de um NOVO PROVIMENTO ao Cargo do(a)candidato(a).
Obs.: Nos passos 3 e 4 o sistema armazena o último valor informado para os seguintes campos:
- Admissão
Dt. Exercício; Dt. Posse; Fnd. Legal Prog.; Resol. Est. Prob.
- Provimento
Forma de provimento à função; Regime de Trabalho; Dt. Provimento.
Essas informações são obtidas sempre que o usuário sair dos campos mencionados anteriormente (no evento OnExit).
- Principais funções e procedimentos
procedure pInserirNovoEndResidencial; //Procedimento utilizado para inserir um novo endereço //para um candidato que tenha suas informações //importadas através deste cadastro procedure pInserirNovaAdmissao; //Esse procedimento Gera uma NOVA ADMISSÃO para o candidato em questão //Para isso, ele usa o código de Pessoa Física do Candidato, //quer seja um código já existente ou um novo código procedure pInserirNovoPrvCargo; //Este procedimento é utilizado para Gerar um NOVO PROVIMENTO AO CARGO para cada //candidato aprovado em Concurso que tiver as informações fornecidas no ato da inscrição //para o concurso importadas através deste cadastro procedure pPreencherAdmissao; //Esse procedimento Preenche os dados da Nova Admissão de um candidato, //com as informações que já foram passadas no cadastro do candidato //cadastrado anteriormente procedure pPreencherProvimento; //Esse procedimento Preenche os dados do Novo Provimento de um candidato, //com as informações que já foram passadas no cadastro do candidato //cadastrado anteriormente procedure pPasso1; //Inserir Dados Gerais em um cadastro de Pessoa Fisica ou Alterar Dados Existentes // Esse passo, precisa necessáriamente do CPF do candidato aprovado para conseguir // guardar as informações no sistema. //Passo 1, Verificar se Já existe um cadastro de Pessoa Física para o(a) Candidato(a) //que está tendo suas informações importadas procedure pPasso2; //Passo 2, Verificação de ENDEREÇO RESIDENCIAL do Candidato(a) procedure pPasso3; //Passo 3, Inserção ou geração de uma NOVA ADMISSÃO para o candidato(a) procedure pPasso4; //Passo 4, Inserção ou geração de um NOVO PROVIMENTO AO CARGO PARA O CANDIDATO(A) function fVrfExigirEndereco: Boolean; //O objetivo dessa função é Verificar se é Necessário exigir o Endereço //de um Candidato na hora de criar seu cadastro de Pessoa Física no sistema function fRetornaCdgPssFisica: Variant; //Essa função retorna um novo código de pessoa física //Ela utiliza uma stored procedure para atribuir um novo código //a um novo registro. O código não será duplicado ou igual a outro já existente no banco function fJaExistePssFisica(vs_CPF: String): Variant; //Para Consultar o Código de uma Pessoa Fisica, pelo CPF //O objetivo desta consulta é descobrir se já existe um //registro no banco contendo as informações do candidato(a) em questão function fRetornaDadosPssFisica(vs_CPF: String): Variant; //Para Consultar os Dados de uma Pessoa Fisica, pelo CPF //Os dados retornados na consulta, serão exibidos em uma //mensagem de confirmação das informações function fVrfJaExisteEndResidencial(vsCdgPssFisica: String): Boolean; //Para Consultar o Código de uma Pessoa Fisica, pelo CPF //O objetivo da consulta é verificar se a Pessoa Física já possui endereço // residencial. Caso não tenha endereço residencial, então será necessário //solicitar ao usuário que informe-o function fVrfDadosPssFisica : Boolean; //Essa função monta uma mensagem com os dados gerais da Pessoa Fisica //para exibir estas ao operador do sistema a fim de que este possa //conferir se as informações referem-se a mesma pessoa fisica function fVrfDtAdm_Posse(vvDtInicial, vvDtFinal :Variant):boolean; //Pega a data Final e verifica se é maior ou igual a data Inicial