DES:SGRH:CdsSasRotinas
De Wiki Unioeste NTI
Ir para navegaçãoIr para pesquisarRotinas:
- Mensalmente, o usuário deverá executar rotinas/etapas, que são divididas entre as fases de Envio e Retorno dos Dados à Celepar;
- Para saber qual o Período que está vigente, ler a tabela SasPrdVgnAtual;
- As Etapas tem uma ordem para execução, sendo que poderá existir mais de uma etapa com a mesma ordem, ou seja, entre si, poderão ser executadas em qualquer ordem;
- Para a execução das Etapas, SasPrdVigente.SasPrdVgn_UsrBloqueado deverá ser ='T', exceto para a Etapa de Ordem=1, que é a que faz o bloqueio;
- Na execução das Etapas, sempre levar em consideração o Período que está vigente;
- Após a execução de cada Etapa, gerar uma linha em SasPrdVgnEtpExecucao, para manter um histórico das solicitações;
Envio dos Dados à Celepar:
- Quando atualizar dados em SasTitular e/ou SasDependente, setar as colunas Operacao ('E' ou 'A', dependendo da operação), OprRealizada='F' e Atualizacao=GETDATE();
- Para saber se um Titular/Dependente já está no bd da Celepar, pode-se verificar de 2 formas:
- Ser diferente de Operacao='I' e OprRealizada='F' ou;
- IDCelepar<>'999999999'
- Exclusão Lógica: Quando os dados já estiverem na Celepar, setar as colunas Operacao='E', OprRealizada='F' e Atualizacao=GETDATE()
- Exclusão Física: Quando os dados ainda não estiverem na Celepar, excluir os dados fisicamente
- Etapa 1: Envio - Bloquear o cadastro de Titular/Dependente:
- esta Etapa deverá ser feita no Delphi;
- SasPrdVigente.SasPrdVgn_UsrBloqueado deverá ser ='F';
- Atualizar em SasPrdVigente, SasPrdVgn_UsrBloqueado='T'
- Etapa 2: Envio - Gerar exclusões automáticas (Vacância de Titular/Maioridade de Dependente): Cadastro no Delphi que deverá chamar uma stored procedure que fará a solicitação de exclusão automática de Titulares/Dependentes.
- Período Vigente Atual: SasPrdVigente.SasPrdVgn_UsrBloqueado deverá ser ='T';
- Ao chamar a SP, enviar o Período Vigente Atual e o Código de Pessoa Física do Usuário solicitante.
- Servidores que não estão mais na Unioeste (PssFscAdm.DtVacancia is not null) e estão ativos no SAS; Se encontrar, verificar se a pessoa tem outra Admissão ativa e, assim, atualizar SasTitular.PssFscAdm_Sequencia com a nova Admissão; Se não encontrar, efetuar a exclusão lógica ou física do Titular e seus Dependentes;
- Dependentes que tenham completado 21 anos até o Mês do Envio.
- Etapa 3: Envio - Gerar alterações automáticas: Cadastro no Delphi que deverá chamar uma stored procedure que fará a solicitação de alterações de Titulares/Dependentes.
- Período Vigente Atual: SasPrdVigente.SasPrdVgn_UsrBloqueado deverá ser ='T';
- Ao chamar a SP, enviar o Período Vigente Atual e o Código de Pessoa Física do Usuário solicitante.
- Verificar os dados das tabelas de Titulares e Dependentes da Celepar e comparar com os dados registrados no SGRH. Quando houver divergência, setar as colunas Operacao='A', OprRealizada='F' e Atualizacao=GETDATE(). Porém, se OprRealizada='F', não atualizar, pois significa que já existe outra solicitação para o Titular/Dependente.
- Etapa 4: Envio - Gerar arquivo texto formato Celepar para Titulares: Cadastro no Delphi que deverá chamar uma stored procedure que gerará um arquivo texto, no formato definido pela Celepar.
- Período Vigente Atual: SasPrdVigente.SasPrdVgn_UsrBloqueado deverá ser ='T';
- Verificar se todas as Etapas, anteriores à esta, já foram executadas (SasPrdVgnEtpExecucao - Ordem menor);
- Ao chamar a SP, enviar o Período Vigente Atual, o Código de Pessoa Física do Usuário solicitante e a Sequência do Arquivo Texto (1,2,3...);
- A SP irá gerar um arquivo texto no C:\ do servidor. Após a execução, copiar este arquivo para a pasta C:\Midas do computador do usuário.
- Criar arquivo texto, no formato definido pela Celepar, dos Titulares que tenham OprRealizada='F';
- Etapa 5: Envio - Gerar arquivo texto formato Celepar para Dependentes: Cadastro no Delphi que deverá chamar uma stored procedure que gerará um arquivo texto, no formato definido pela Celepar.
- Período Vigente Atual: SasPrdVigente.SasPrdVgn_UsrBloqueado deverá ser ='T';
- Verificar se todas as Etapas, anteriores à esta, já foram executadas (SasPrdVgnEtpExecucao - Ordem menor).
- Ao chamar a SP, enviar o Período Vigente Atual, o Código de Pessoa Física do Usuário solicitante e a Sequência do Arquivo Texto (1,2,3...)
- A SP irá gerar um arquivo texto no C:\ do servidor. Após a execução, copiar este arquivo para a pasta C:\Midas do computador do usuário.
- Criar arquivo texto, no formato definido pela Celepar, dos Dependentes que tenham OprRealizada='F';
- Etapa 6: Envio - Imprimir relatório com as solicitações da Unioeste:
- Criar relatório que liste Titulares/Dependentes que tenham OprRealizada='F';
- Verificar se todas as Etapas, anteriores à esta, já foram executadas (SasPrdVgnEtpExecucao - Ordem menor).
- Etapa 7: Retorno - Importar arquivo texto da Celepar - Titulares:
- Verificar se todas as Etapas, anteriores à esta, já foram executadas (SasPrdVgnEtpExecucao - Ordem menor).
- Zerar tabela SasTitular_Celepar;
- Importar dados do arquivo texto da Celepar para a tabela SasTitular_Celepar;
- Etapa 8: Retorno - Importar arquivo texto da Celepar - Dependentes:
- Verificar se todas as Etapas, anteriores à esta, já foram executadas (SasPrdVgnEtpExecucao - Ordem menor).
- Zerar tabela SasDependente_Celepar;
- Importar dados do arquivo texto da Celepar para a tabela SasDependente_Celepar;
- Etapa 9: Retorno - Sincronizar dados Celepar e Unioeste - Titulares:
- Verificar se todas as Etapas, anteriores à esta, já foram executadas (SasPrdVgnEtpExecucao - Ordem menor).
- Sincronizar as Inclusões: UPDATE SasTitular
- Sincronizar as Exclusões: DELETE from SasTitular
- Sincronizar as Alterações: UPDATE SasTitular
- Etapa 10: Retorno - Sincronizar dados Celepar e Unioeste - Dependentes:
- Verificar se todas as Etapas, anteriores à esta, já foram executadas (SasPrdVgnEtpExecucao - Ordem menor).
- Sincronizar as Inclusões: UPDATE SasDependente
- Sincronizar as Exclusões: DELETE from SasDependente
- Sincronizar as Alterações: UPDATE SasDependente
- Etapa 11: Retorno - Desbloquear o cadastro de Titular/Dependente:
- esta Etapa deverá ser feita no Delphi;
- SasPrdVigente.SasPrdVgn_UsrBloqueado deverá ser ='T';
- Atualizar em SasPrdVigente, SasPrdVgn_UsrBloqueado='F'
Delphi:
Stored Procedure:
Delphi:
Stored Procedure:
Delphi:
Stored Procedure:
Delphi:
Stored Procedure:
Retorno dos Dados da Celepar:
SET Ttl_IDCelepar = t2.tit_ID,
Ttl_OprRealizada= 'T',
Ttl_OprDtAtlRetorno = GETDATE(),
Ttl_DtCrtInicio = t2.Tit_DtCrtInicio,
Ttl_DtCrtFim = t2.Tit_DtCrtFim,
Ttl_CrtSequencia= t2.Tit_CrtSequencia
FROM SasTitular t1
INNER JOIN PssFisica t3
ON t3.PssFsc_Codigo = t1.PssFsc_Codigo
INNER JOIN OrgExpedidor t6
ON t6.OrgExp_Codigo = t3.OrgExp_RGCodigo
INNER JOIN SasTitular_Celepar t2
ON t3.PssFsc_RG = t2.tit_rg
AND t6.UF_Codigo = t2.tit_rgUF
WHERE t1.Ttl_IDCelepar = '999999999'
WHERE PssFsc_Codigo in
(select t1.PssFsc_Codigo from SasTitular t1
where t1.Ttl_Operacao='E'
and t1.Ttl_OprRealizada='F'
and t1.Ttl_IDCelepar <> '999999999'
and not exists
(select * from SasTitular_Celepar t2
where t1.Ttl_IDCelepar=t2.Tit_ID))
SET Ttl_OprRealizada = 'T',
Ttl_OprDtAtlRetorno = GETDATE()
WHERE Ttl_Operacao = 'A'
and Ttl_OprRealizada = 'F'
AND PssFsc_Codigo IN
(SELECT PssFsc_Codigo
FROM vSasTtlUnioeste_Celepar
WHERE Ttl_Nome = TtlClp_Nome
AND Ttl_RG = TtlClp_RG
AND Ttl_UF = TtlClp_UF
AND Ttl_CPF = TtlClp_CPF
AND Ttl_NmPai = TtlClp_NmPai
AND Ttl_NmMae = TtlClp_NmMae
AND Ttl_Sexo = TtlClp_Sexo
AND Ttl_DtNascimento = TtlClp_DtNascimento
AND Ttl_Logradouro = TtlClp_Logradouro
AND Ttl_Numero = TtlClp_Numero
AND Ttl_Complemento = TtlClp_Complemento
AND Ttl_Bairro = TtlClp_Bairro
AND Ttl_CdgMunicipio = TtlClp_CdgMunicipio
AND Ttl_CEP = TtlClp_CEP
AND Ttl_DDDFone = TtlClp_DDDFone
AND Ttl_Fone = TtlClp_Fone
)
SET Dpn_OprRealizada = 'T',
Dpn_IDCelepar = t3.Dep_ID,
Dpn_SqnCelepar = t3.Dep_Sequencia,
Dpn_OprDtAtlRetorno = GETDATE()
Dpn_DtCrtInicio = t3.Dep_DtCrtInicio,
Dpn_DtCrtFim = t3.Dep_DtCrtFim,
Dpn_CrtSequencia = t3.Dep_CrtSequencia
FROM SasTitular t1
INNER JOIN PssFisica t5
ON t5.PssFsc_Codigo = t1.PssFsc_Codigo
INNER JOIN OrgExpedidor t6
ON t6.OrgExp_Codigo = t5.OrgExp_RGCodigo
INNER JOIN SasDependente t2
ON t1.PssFsc_Codigo = t2.PssFsc_Codigo
INNER JOIN SasDependente_Celepar t3
ON t5.PssFsc_Rg = t3.Tit_Rg
and t6.UF_Codigo = t3.Tit_RgUF
WHERE t5.PssFsc_Nome = t3.Dep_Nome COLLATE Latin1_General_CI_AI
and t2.Dpn_IDCelepar = '999999999'
WHERE PssFsc_CdgDependente in
(select t1.PssFsc_CdgDependente
from SasDependente t1
where t1.Dpn_Operacao='E'
and t1.Dpn_OprRealizada='F'
and t1.Dpn_IDCelepar <> '999999999'
and t1.Dpn_IDCelepar not in
(select t2.Dep_ID from SasDependente_Celepar t2)
)
SET Dpn_OprRealizada= 'T',
Dpn_OprDtAtlRetorno = GETDATE()
WHERE Dpn_OprRealizada = 'F'
AND Dpn_Operacao = 'A'
AND PssFsc_CdgDependente IN
(SELECT PssFsc_CdgDependente
FROM vSasDpnUnioeste_Celepar
WHERE Dpn_Tipo = DpnClp_Tipo
AND Dpn_Sequencia = DpnClp_Sequencia
AND Dpn_Nome = DpnClp_Nome
AND Dpn_Sexo = DpnClp_Sexo
AND Dpn_DtNascimento = DpnClp_DtNascimento
AND Dpn_RG = DpnClp_RG
AND Dpn_UF = DpnClp_UF
AND Dpn_CdgMunicipio = DpnClp_CdgMunicipio
AND Dpn_Logradouro = DpnClp_Logradouro
AND Dpn_Numero = DpnClp_Numero
AND Dpn_Complemento = DpnClp_Complemento
AND Dpn_Bairro = DpnClp_Bairro
AND Dpn_CEP = DpnClp_CEP
AND Dpn_DDDFone = DpnClp_DDDFone
AND Dpn_Fone = DpnClp_Fone
)