Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Informações Gerais
Especificação | |||
Produto | Microsiga Protheus ® | Módulo | SIGAGPE |
Segmento Executor | Serviços | ||
Projeto | M_SER_RH003 | IRM | PCREQ-9083 |
Requisito | PCREQ-9087 | Subtarefa | PDR_SER_RH003-231 |
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros |
|
Objetivo
Esse requisito tem por objetivo o desenvolvimento de melhorias solicitadas por clientes que estão migrando do Logix para o Protheus.
Migrador - Importação Cadastro Plano de Saúde
Definição da Regra de Negócio
Em continuação ao projeto de migração de produto do RH Logix para o RH Protheus 11.80, será adicionada a opção Plano de Saúde no programa RHIMP01 - Importação Logix X Protheus a fim de importar os dados referentes aos cadastros de fornecedores de plano de saúde, configuração do plano e planos ativos dos funcionários e dependentes.
Este requisito trabalha em conjunto à implementação realizada no Logix, Export_Vale_Alimentacao_e_Refeicao_e_Plano_de_Saude, que trata o processo de exportação de dados do Logix gerando o arquivo plano_saude_logix.unl a ser utilizado na importação de dados no Protheus.
Atenção: necessário estar com as tabelas da rotina Manutenção de Tabelas criadas (entrar pelo menos uma vez na rotina para criá-las automaticamente – SIGAGPE / Atualizações / Definições de Cálculo / Manutenção de Tabelas).
Para os itens Fornecedores e Cadastro de Planos será realizada a gravação dos dados nas tabelas auxiliares presentes na rotina Manutenção de Tabelas (GPEA320) que são gravadas fisicamente na tabela RCC - Parâmetros.
A estrutura das tabelas auxiliares são definidas através da rotina Manutenção de Tabelas (GPEA310) que grava os dados fisicamente na tabela RCB - Configuração de Parâmetros.
Para realizar a gravação dos registros do arquivo, será necessário verificar a estrutura presente na tabela RCB antes de gravar os dados na RCC.
As informações apresentadas nesta especificação serão baseadas na configuração padrão das tabelas a fim de facilitar o entendimento do processo de gravação. Porém, no momento da gravação será necessário verificar a estrutura na RCB. Os campos presentes na RCB referem-se aos campos da tabela auxiliar e o conteúdo desses 'campos' deverão ser gravados todos no campo RCC_CONTEU, obedecendo o tamanho e ordem apresentada na RCB.
Tabelas utilizadas e suas estruturas:
S016 | S017 | |||
RCB_CAMPOS | RCB_TAMAN | RCB_CAMPOS | RCB_TAMAN | |
---|---|---|---|---|
CODIGO | 3 | CODIGO | 3 | |
NOME | 150 | NOME | 150 | |
CNPJ | 14 | CNPJ | 14 | |
REGANS | 9 | REGANS | 9 |
S028 | S030 | |||||
RCB_CAMPOS | RCB_TAMAN | RCB_DECIMA | RCB_CAMPOS | RCB_TAMAN | RCB_DECIMA | |
---|---|---|---|---|---|---|
CODIGO | 2 | CODIGO | 2 | |||
DESCRICAO | 20 | DESCRICAO | 20 | |||
VALTIT | 12 | 2 | VALTIT | 12 | 2 | |
VALDEP | 12 | 2 | VALDEP | 12 | 2 | |
VALAGR | 12 | 2 | VALAGR | 12 | 2 | |
VLRDSCTIT | 12 | 2 | VLRDSCTIT | 12 | 2 | |
VLRDSCDEP | 12 | 2 | VLRDSCDEP | 12 | 2 | |
VLRDSCAGRD | 12 | 2 | VLRDSCAGRD | 12 | 2 | |
CODFOR | 3 | CODFOR | 3 |
S009 | S014 | |||||
RCB_CAMPOS | RCB_TAMAN | RCB_DECIMA | RCB_CAMPOS | RCB_TAMAN | RCB_DECIMA | |
---|---|---|---|---|---|---|
CODIGO | 2 | CODIGO | 2 | |||
DESCRICAO | 20 | DESCRICAO | 20 | |||
IDADEATE | 3 | IDADEATE | 3 | |||
VALTIT | 12 | 2 | VALTIT | 12 | 2 | |
VALDEP | 12 | 2 | VALDEP | 12 | 2 | |
VALAGR | 12 | 2 | VALAGR | 12 | 2 | |
PERCTIT | 7 | 3 | PERCTIT | 7 | 3 | |
PERCDEP | 7 | 3 | PERCDEP | 7 | 3 | |
PERCAGR | 7 | 3 | PERCAGR | 7 | 3 | |
CODFOR | 3 | CODFOR | 3 |
O arquivo plano_saude_logix.unl possui uma estrutura dividida em três partes abrangendo os seguintes cadastros:
Fornecedor de Plano de Saúde Médico e Odontológico
LOGIX | PROTHEUS | ||
Cadastro De Entidades de Saúde (RHU0080) | Fornecedor Plano de Assistência Médica/Odontológica (GPEA320 - Tabelas S016 e S017) | ||
Atributo | Tipo | Atributo | Tipo |
Fixo 1
| char (01) | ||
cod_entid_saude
| number (02) | codigo
| char (03) picture: 999 |
den_entid_saude
| char (30) | nome
| char (150) picture: @! |
cnpj
| char (14) | cnpj
| char (14) picture: @R 99.999.999/9999-99 |
num_registro_ans
| char (20) | regans
| char (09) picture: 999999999 |
| *Todos os registros são de preenchimento obrigatório e deverão estar presentes no arquivo de importação. |
- Os registros do tipo '1' presentes no arquivo de importação plano_saude_logix.unl serão gravados na tabela RCC - Parâmetros referente à rotina Manutenção de Tabelas do SIGAPGE.
- Os dados de cada registro serão guardados em um array de arrays aFornec, sendo a primeira dimensão cada fornecedor e a segunda os dados de cada fornecedor. Para facilitar a gravação, os campos serão guardados no array já realizando os tratamentos de tamanho e valor necessários.
- A posição do array aFornec[x][1] guardará o código do Fornecedor. Como no Protheus o campo possui uma posição a mais, adicionar um 0 (zero) à esquerda do código enviado no arquivo: 0 + codigo.
- A posição do array aFornec[x][2] guardará o nome do Fornecedor. Guardar o nome do Fornecedor completando os 150 caracteres com espaços: PadR(nome + Space(150),150)
- A posição do array aFornec[x][3] guardará o código de cnpj do Fornecedor.
- A posição do array aFornec[x][4] guardará o Registro da ANS do Fornecedor.
- A posição do array aFornec[x][5] guardará o código da tabela a qual pertence o Fornecedor. A princípio o campo ficará vazio e depois será preenchido durante a validação dos registros do tipo '2'.
- No Protheus, utiliza-se duas tabelas auxiliares para gravar os dados de Fornecedores de Planos Assistenciais:
- S016 - Fornecedor de Plano Assistencial Médico
- S017 - Fornecedor de Plano Assistencial Odontológico
- Como no arquivo, os registros do tipo '1' não possuem a identificação de M ou O, será necessário realizar essa identificação no momento da leitura dos registros do tipo '2' presente no arquivo.
- Definir o Tipo de Fornecedor através da posição 5 dos registros tipo '2' do arquivo a fim de definir a tabela auxiliar onde será gravado o registro:
- Se M, gravar o campo RCC_CODIGO com conteúdo S016.
- Se O, gravar o campo RCC_CODIGO com conteúdo S017.
- No Protheus, utiliza-se duas tabelas auxiliares para gravar os dados de Fornecedores de Planos Assistenciais:
- O campo RCC_SEQUEN será preenchido de forma sequencial no momento da gravação. Verificar a última sequencia presente na RCC, para a chave RCC_FILIAL + RCC_CODIGO
- O campo RCC_CONTEU receberá em forma de string todos os dados do registro gravado na seguinte ordem: aFornec[x][1]+aFornec[x][2]+aFornec[x][3]+aFornec[x][4]
- Os campo RCC_FILIAL, RCC_FIL e RCC_CHAVE ficarão em branco.
- Antes de realizar a gravação dos dados, verificar:
- Se já existir o código de Fornecedor cadastrado: aFornec[x][1] == Substr(RCC_CODIGO,1,3) – não efetuar gravação, gerar log.
Exemplo do registro no arquivo:
1|99|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|99999999999999|99999999
Faixas Plano de Saúde
Para facilitar o desenvolvimento e entendimento das regras, será separada a análise da Faixa de Plano de Saúde por Valor Fixo e a Faixa de Plano de Saúde por Idade.
- Por Valor Fixo
LOGIX | PROTHEUS | ||
Cadastro De Planos de Saúde (RHU0090) | Faixas Plano de Assistência Médica/Odontológica (GPEA320 - Tabelas S028 e S030) | ||
Atributo | Tipo | Atributo | Tipo |
Fixo 2
| char (01) | ||
plano_saude.cod_entid_saude
| number (02) | codfor
| char (03) picture: 999 |
plano_saude.cod_plano_saude
| number (04) | codigo
| char (02) |
plano_saude.des_plano_saude
| char (30) | descricao
| char (20) |
Tipo de Plano
| char (01) | Utilizado para identificar a tabela auxiliar de destino da gravação. Se conteúdo = M - Médico, gravar conteúdo na tabela S028 - Assistência Médica Valor Fixo (RCC_CODIGO = 'S028')
Se conteúdo = O - Odontológico, gravar conteúdo na tabela S030 - Assistência Odontológica Valor Fixo (RCC_CODIGO = 'S030') | |
plano_saude.val_plano
| number (11,2) | As tabelas S028 - Assistência Médica Valor Fixo e S030 - Assistência Odontológica Valor Fixo possuem os campos Valor Titular, Valor Dependente, Valor Agregado. O valor presente nessa posição irá ser utilizado para preencher os 3 campos citados acima. Para realizar gravação é necessário possuir valor maior que zero nesse campo. | Numerico (12,2) pciture: @E 9,999,999.99 |
Forma de Cálculo
| char (01) | Utilizado para identificar a tabela auxiliar de destino da gravação. Para as tabelas S028 e S030, a posição deverá possuir conteúdo 'V'. | |
Tipo de Beneficiário do Plano
| char (01) | *Não utilizado no Tipo de Plano com Valor Fixo | |
rhu_pl_saude_idade.idade_faixa
| number (03) | *Não utilizado no Tipo de Plano com Valor Fixo | |
rhu_pl_saude_idade.val_plano_saude
| number (17,2) | *Não utilizado no Tipo de Plano com Valor Fixo | |
- Os registros do tipo '2' presentes no arquivo de importação plano_saude_logix.unl serão gravados na tabela RCC - Parâmetros referente à rotina Manutenção de Tabelas do SIGAGPE.
- Os dados de cada registro serão guardados em um array de arrays aConfPlan1, sendo a primeira dimensão cada configuração e a segunda os dados de cada plano. Para facilitar a gravação, os campos serão guardados no array já realizando os tratamentos de tamanho e valor necessários.
- A posição do array aConfPlan1[x][1] guardará o código do Fornecedor. Como no Protheus o campo possui uma posição a mais, adicionar um 0 (zero) à esquerda do código enviado no arquivo: 0 + código.
- A posição do array aConfPlan1[x][2] guardará o código Plano a ser cadastrado.
- Verificar o tamanho do campo (RCB_TAMAN onde RCB_CAMPOS = 'CODIGO' e RCB_CODIGO = 'S028'/'S030').
- Caso o tamanho seja menor, emitir mensagem ao usuário perguntando se deseja prosseguir com o processo de nova numeração ou abortar a importação para ajustar a tabela.
- Caso a resposta seja positiva, no momento da gravação utilizar um novo código, seguindo a sequencia presente na tabela.
- Obs.: A pergunta pode ser feita antes do início do processamento, como forma de configuração, a fim de facilitar e agilizar o processo.
- Será necessário possuir um De/Para interno para quando realizar a leitura dos registros do tipo '3' se identifique a qual plano o funcionário está atrelado.
- A posição do array aConfPlan1[x][3] guardará a descrição do Plano a ser cadastrado.
- Verificar o tamanho do campo (RCB_TAMAN onde RCB_CAMPOS = 'DESCRICAO' e RCB_CODIGO='S028'/'S030').
- Caso o tamanho seja menor, emitir mensagem ao usuário perguntando se deseja prosseguir com o processo, cortando os caracteres a mais ou abortar a importação para ajustar a tabela.
- Obs.: A pergunta pode ser fieta antes do início do processamento, como forma de configuração, a fim de facilitar e agilizar o processo.
- A posição do array aConfPlan1[x][4] guardará o valor do Plano a ser cadastrado.
- A posição do array aConfPlan1[x][5] guardará a tabela onde o registro será gravado.
- No Protheus, utiliza-se diversas tabelas para gravar as faixas dos diversos tipos de Plano Assistencial, sempre diferindo o tipo médico do tipo odontológico. Para o tipo valor fixo, são utilizadas as tabelas:
- S028 - Assistência Médica Valor Fixo
- S030 - Assistência Odontológica Valor Fixo
- Ao verificar o conteúdo a posição 5 do registro:
- Se M, preencher o array aConfPlan1[x][5] com conteúdo S028.
- Se O, preencher o array aConfPlan1[x][5] com conteúdo S030.
- Sendo a posição aConfPlan1[x][1] == aFornec[x][1], então aFornec[x][5] := aConfPlan1[x][5]
- O conteúdo da posição aConfPlan1[x][5] será gravado no campo RCC_CODIGO.
- No Protheus, utiliza-se diversas tabelas para gravar as faixas dos diversos tipos de Plano Assistencial, sempre diferindo o tipo médico do tipo odontológico. Para o tipo valor fixo, são utilizadas as tabelas:
- O campo RCC_SEQUEN será preenchido de forma sequencial no momento da gravação. Verificar a última sequencia presente na RCC, para a chave RCC_FILIAL + RCC_CODIGO.
- O campo RCC_CONTEU receberá em forma de string todos os dados do registro gravado na seguinte ordem: aConfPlan1[x][2]+aConfPlan1[x][3]+aConfPlan1[x][4]+aConfPlan1[x][4]+aConfPlan1[x][4]+Space(08)+0.00+Space(08)+0.00+Space(08)+0.00+aConfPlan1[x][1]
- Os campo RCC_FILIAL, RCC_FIL e RCC_CHAVE ficarão em branco.
- Verificações necessárias para gravação:
- Assim como nas rotinas de migração dos outros itens, indicar mensagem sobre a divergência no tamanho dos campos e se o usuário confirmar, realizar o corte da informação para gravação dos dados. (Lembrando de realizar a verificação antes de carregar a informação no array)
- Realizar gravação dos Planos apenas se houver Fornecedor cadastrado nas tabelas S016 (quando plano médico) ou S017 (quando plano odontológico).
Exemplo do registro no arquivo:
2|99|99|XXXXXXXXXXXXXXXXXXXX|X|9999.99|V||||||||
2|99|99|XXXXXXXXXXXXXXXXXXXX|X|9999.99|V||
- Por Idade
LOGIX | PROTHEUS | ||
Cadastro De Planos de Saúde (RHU0090) | Faixas Plano de Assistência Médica/Odontológica (GPEA320 - Tabelas S009 e S014) | ||
Atributo | Tipo | Atributo | Tipo |
Fixo 2
| char (01) | ||
plano_saude.cod_entid_saude
| number (02) | codfor
| char (03) |
plano_saude.cod_plano_saude
| number (04) | codigo
| char (02) |
plano_saude.des_plano_saude
| char (30) | descrição
| char (20) |
Tipo de Plano
| char (01) | Utilizado para identificar a tabela auxiliar de destino da gravação. Se conteúdo = M - Médico, gravar conteúdo na tabela S009 - Assistência Médica Faixa Etária (RCC_CODIGO = 'S009')
Se conteúdo = O - Odontológico, gravar conteúdo na tabela S014 - Assistência Odontológica Faixa Etária (RCC_CODIGO = 'S014') | |
plano_saude.val_plano
| number (11,2) | *Não utilizado no Tipo de Plano com Faixa Etária | |
Forma de Cálculo
| char (01) | Utilizado para identificar a tabela auxiliar de destino da gravação. Para as tabelas S009 e S014, a posição deverá possuir conteúdo 'I'. | |
Tipo de Beneficiário do Plano
| char (01) | Utilizado para identificar o tipo de beneficiário a qual os campos faixa e valor se referem. Apenas os valores T, D, A serão válidos para importação. Caso os valores DT e AT sejam encontrados no arquivo, estes não serão importados e será indicado no log de erros. Atenção! Esse campo repete-se na linha juntamente com os campos faixa e valor de forma indeterminada. Para realizar a importação, é necessário que os três campos estejam com valores válidos. | |
rhu_pl_saude_idade.idade_faixa
| number (03) | idadeate
| number (03) picture: 999 |
rhu_pl_saude_idade.val_plano_saude
| number (17,2) | vlrtit / vlrdep / vlragr
| number (12,2) picture: @E 9,999,999.99 |
- Os registros do tipo '2' presentes no arquivo de importação plano_saude_logix.unl serão gravados na tabela RCC - Parâmetros referente à rotina Manutenção de Tabelas do SIGAGPE.
- Os dados de cada registro serão guardados em um array de arrays aConfPlan2, sendo a primeira dimensão cada configuração e a segunda os dados de cada plano. Para facilitar a gravação, os campos serão guardados no array já realizando os tratamentos de tamanho e valor necessários.
- A posição do array aConfPlan2[x][1] guardará o código do Fonecedor. Como no Protheus o campo possui uma posição a mais, adicionar um 0 (zero) à esquerda do código enviado no arquivo: 0 + código.
- A posição do array aConfPlan2[x][2] guardará o código do Plano a ser cadastrado.
- Verificar o tamanho do campo (RCB_TAMAN onde RCB_CAMPOS = 'CODIGO' e RCB_CODIGO = 'S009'/'S014').
- Caso o tamanho seja menor, emitir mensagem ao usuário perguntando se deseja prosseguir com o processo de nova numeração ou abortar a importação para ajustar a tabela.
- Caso a resposta seja positiva, no momento da gravação utilizar um novo código, seguindo a sequencia presente na tabela.
- Obs.: A pergunta pode ser feita antes do início do processamento, como forma de configuração, a fim de facilitar e agilizar o processo.
- Será necessário possuir um De/Para interno para quando realizar a leitura dos registros do tipo '3' se identifique a qual plano o funcionário está atrelado
- A posição do array aConfPlan2[x][3] guardará a descrição do Plano a ser cadastrado.
- Verificar o tamanho do campo (RCB_TAMAN onde RCB_CAMPOS = 'DESCRICAO' e RCB_CODIGO='S028'/'S030').
- Caso o tamanho seja menor, emitir mensagem ao usuário perguntando se deseja prosseguir com o processo, cortando os caracteres a mais ou abortar a importação para ajustar a tabela.
- Obs.: A pergunta pode ser fieta antes do início do processamento, como forma de configuração, a fim de facilitar e agilizar o processo.
- A fim de facilitar a gravação dos dados, a posição no array aConfPlan2 para cada tipo de beneficiário será fixa.
- Possíveis tipos de beneficiários: T, D, A.
- Os valores DT e AT não serão tratados no Protheus. Se houver algum registro com este conteúdo, emitir inconsistência no relatório de erros.
- Se 'T', o valor da faixa será gravado na posição aConfPlan2[x][5]
- Se 'D', o valor da faixa será gravado na posição aConfPlan2[x][6]
- Se 'A', o valor da faixa será gravado na posição aConfPlan2[x][7]
- Caso não haja valor para algum(ns) dos tipos, manter a posição com conteúdo em branco.
- A posição do array aConfPlan2[x][4] guardará a idade limite da faixa etária do plano.
- Atenção!!
- No arquivo, o registro com a configuração de plano por faixa etária pode vir com várias faixas na mesma linha, indicando os valores para um mesmo tipo de beneficiário de acordo com a faixa.
- No Protheus, as configurações de faixa etária são feitas por faixa, indicando os valores de cada tipo (titular, beneficiário, agregado).
- Nesses casos, será necessário incluir diferentes linhas do array aConfPlan2, uma linha para cada faixa. E, quando a faixa dos outros tipos for igual a uma já existente, adicionar o valor à linha já adicionada. Seguir o exemplo:
- 2|99|9999|XXXXXXXXXXXXXXX|M||I|D|007|100.00|D|018|120.00|D|024|160.00|D|040|180.00|D|999|250.00|T|018|120.00|T|050|250.00|T|999|300.00|
- aConfPlan2[1][4] := '007'
- Como tipo 'D', então aConfPlan2[1][6] := 100.00
- aConfPlan2[2][4] := '018'
- Como tipo 'D', então aConfPlan2[2][6] := 120.00
- Como tipo 'T', então aConfPlan2[2][5] := 120.00
- aConfPlan2[3][4] := '024'
- Como tipo 'D', então aConfPlan2[3][6] := 160.00
- aConfPlan2[4][4] := '040'
- Como tipo 'D', então aConfPlan2[4][6] := 180.00
- aConfPlan2[5][4] := '999'
- Como tipo 'D', então aConfPlan2[5][6] := 250.00
- Como tipo 'T', então aConfPlan2[5][5] := 300.00
- aConfPlan2[6][4] := '050'
- Como tipo 'T', então aConfPlan2[6][5] := 250.00
- Atenção!!
- O campo RCC_SEQUEN será preenchido de forma sequencial no momento da gravação. Verificar a última presente na RCC, para a chave RCC_FILIAL + RCC_CODIGO.
- O campo RCC_CONTEU receberá em forma de string todos os dados do registro gravado na seguinte ordem: aConfPlan2[x][2]+aConfPlan2[x][3]+aConfPlan2[x][4]+aConfPlan2[x][5]+aConfPlan2[6]+aConfPlan2[x][7]+Space(02)+'0.000'+Space(02)+'0.000'+Space(02)+'0.000'+aConfPlan2[x][1]
- Os campos RCC_FILIAL, RCC_FIL e RCC_CHAVE ficarão em branco.
- Verificações necessárias antes da gravação:
- Assim como nas rotinas de migração dos outros itens, indicar mensagem sobre a divergência no tamanho dos campos e se o usuário confirmar, realizar o corte da informação para gravação dos dados. (Lembrando de realizar a verificação antes de carregar a informação no array)
- Realizar gravação dos Planos apenas se houver Fornecedor cadastrado nas tabelas S016 (quando plano médico) ou S017 (quando plano odontológico).
Exemplo do registro no arquivo:
2|99|9999|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|X||X|X|999|99999999999999.99|
2|99|9999|XXXXXXXXXXXXXX|M||I|A|020|300.00|A|999|900.00|D|018|180.00|D|999|250.00|T|050|200.00|T|999|300.00|
2|99|9999|XXXXXXXXXXXXXXX|M||I|D|007|100.00|D|018|120.00|D|024|160.00|D|040|180.00|D|999|250.00|T|018|120.00|T|050|250.00|T|999|300.00|
Atenção!
Caso o campo tipo de cálculo esteja com valor B, este será ignorado e não gravado no Protheus. Gerar aviso no log sobre a inconsistência na linha.
Planos Ativos
- Funcionários
- Dependentes
- Agregados
LOGIX | PROTHEUS | ||
Planos de Saúde (RHU3470) | Planos de Saúde Ativos (GPEA001) | ||
Atributo | Tipo | Atributo | Tipo |
Fixo 3
| char (01) | ||
Empresa Protheus
| char (02) | Código da empresa no Protheus.
| |
Filial Protheus
| char (08) | filial
| char (02) |
fun_plano_saude.num_matricula
| number (06) | matricula
| char (06) |
Tipo de Plano
| char (01) | tipo fornecedor
| char (01) |
fun_plano_saude.cod_entid_saude
| number (02) | código do fornecedor
| char (03) |
fun_plano_saude.cod_plano_saude
| number (04) | código do plano
| char (02) |
entid_saude_evento.cod_evento_desc
| number (04) | verba Protheus
| char (03) |
fun_plano_saude.num_depend
| number (02) | sequencia
| char (02) |
dependente.nom_depend
| char (70) | nome
| char (30) |
dependente.dat_nasc
| date | dt nasci
| date (08) |
rhu_depend_docum.cpf
| char (14) | CPF Agregado
| char (11) |
Observação:
|
- Os registros de tipo '3' presentes no arquivo de importação plano_saude_logix.unl serão gravados nas tabelas RHK - Planos Ativos do Titular, RHL - Planos Ativos do Dependente, RHM - Planos Ativos do Agregado dependendo do tipo de beneficiário do registro.
- É possível acessar o cadastro de Planos de Saúde do funcionário e seus dependentes/agregados através da rotina Planos Saúde Ativos (GPEA001) no módulo SIGAGPE.
- Os dados de cada registro serão guardados em um array de arrays aPlanAtiv, sendo a primeira dimensão o funcionário e a segunda os dados de cada plano. Para facilitar a gravação, os campos serão guardados no array já realizando os tratamentos de tamanho e valor necessários.
- A posição do array aPlanAtiv[x][1] guardará o código da empresa.
- Realizar mesmas validações existentes nas outras opções de migração.
- A posição do array aPlanAtiv[x][2] guardará o código da filial.
- Realizar mesmas validações existentes nas outras opções de migração.
- A posição do array aPlanAtiv[x][3] guardará o código de matrícula do funcionário.
- Realizar mesmas validações existentes nas outras opções de migração.
- A posição do array aPlanAtiv[x][4] guardará o tipo de plano do registro.
- Se Médico, então será guardado o valor 1
- Se Odontológico, então será guardado o valor 2.
- A posição do array aPlanAtiv[x][5] guardará o código do Fornecedor. Como no Protheus o campo possui uma posição a mais, adicionar um 0 (zero) à esquerda do código enviado no arquivo: 0 + código.
- Verificar a existência do Fornecedor na tabela RCC, verificando a tabela auxiliar S016 se for plano médico ou a tabela auxiliar S017 se for plano odontológico.
- Caso não haja Fornecedor cadastrado, não será realizada a importação do registro e uma mensagem deverá ser adicionada ao log de inconsistências.
- A posição do array aPlanAtiv[x][6] guardará o código do Plano.
- O código de identificação do Plano presente no arquivo de importação possui um tamanho maior (Char 04) que o campo equivalente nas tabelas do Protheus (Char 02).
- Antes de realizar a gravação dos itens no Protheus deverá ser exibida uma tela ao usuário para configurar um De/Para dos códigos Logix(Arquivo) para Protheus.
- No array deve-se guardar o código equivalente no Protheus, consultando o De/Para feito pelo usuário no momento da importação.
- Realizar verificação se já possui o código cadastrado na respectiva tabela auxiliar (S009 ou S028 - Plano Médico, S014 ou S030 - Plano Odontológico) que possuem os planos a serem importados.
- Caso não haja em nenhum lugar cadastrado o código do Plano, não deverá ser realizada a importação do registro e adicionar uma mensagem ao log de inconsistências.
- A posição do array aPlanAtiv[x][7] guardará o código da verba para cálculo do plano.
- Realizar mesmas validações existentes nas outras opções de migração.
- A posição do array a PlanAtiv[x][8] guardará o código de identificação do dependente, caso a informação seja passada.
- O preenchimento desta posição define se o registro refere-se a um dependente ou não.
- Caso essa posição esteja preenchida, as últimas 3 posições do arquivo (referente à agregados) serão desconsideradas.
- Verificar existência do dependente na tabela SRB.
- A posição do array aPlanAtiv[x][9] guardará o nome do agregado, caso a informação seja passada.
- O preenchimento desta posição define se o registro refere-se a um dependente ou não.
- Para realizar a leitura desse campo, o campo anterior (código do dependente) deverá estar em branco.
- O tamanho do campo no arquivo poderá vir com até 70 caracteres. No Protheus, o campo Nome do Agregado possui até 30 caracteres. Perguntar ao usuário, antes de inicializar a importação, se deseja cortar os nomes com mais de 30 caracteres ou se deseja ajustar o documento antes de prosseguir (opção Cancelar).
- A posição do array aPlanAtiv[x][10] guardará a data de nascimento do agregado, caso a informação seja passada.
- Verificar se data informada é válida.
- O nome do agregado juntamente com a data de nascimento são informações obrigatórias para gravação.
- Caso um dos dois dados não seja informado, ou possui valor inconsistente, não será realizada a importação e será adicionada mensagem ao log de inconsistências.
- A posição do array aPlanAtiv[x][11] guardará o CPF do agregado, caso a informação seja passada.
- Realizar validação do número de CPF informado.
- O campo não é obrigatório no Protheus, porém, se informado, será feita validação e, se encontrada inconsistência, o registro não será importado. Adicionar mensagem no log final.
Gravação das tabelas
- No Protheus, cada tipo de beneficiário de plano de saúde é gravado em tabela específica:
- RHK - Planos Ativos do Titular
- RHL - Planos Ativos do Dependente
- RHM - Planos Ativos do Agregado.
- Para realizar gravações nas tabelas RHL e RHM deve-se possuir registro na RHK.
- Em teoria, no arquivo, a ordem dos registros será: titular + dependentes/agregados. Sendo assim, possuindo o dado do titular gravado, é possível realizar a gravação do dependente/agregado.
- Para gravação dos dados do titular:
- Utilizar o código da empresa presente na posição aPlanAtiv[x][1] para definir a tabela de gravação (RHKEE)
- RHK_FILIAL := aPlanAtiv[x][2]
- RHK_MAT := aPlanAtiv[x][3]
- RHK_TPFORN := aPlanAtiv[x][4] --conteúdo '1' ou '2' - campo caracter
- RHK_CODFOR := aPlanAtiv[x][5]
- RHK_TPPLAN recebe o tipo de plano: '2' Faixa Etária ou '3' Valor Fixo. Será definido através da identificação do código do Fornecedor + código do Plano. Identificando a tabela auxiliar onde se encontra o plano (S009 e S014 - Faixa Etária, S028 e S030 - Valor Fixo)
- RHK_PLANO := aPlanAtiv[x][6]
- RHK_PD := aPlanAtiv[x][7]
- RHK_PERINI recebe conteúdo do MV_FOLMES no formato mesAno. Lembre-se: MV_FOLMES utiliza o formato anoMes.
- Para gravação dos dados do dependente:
- Utilizar o código da empresa presente na posição aPlanAtiv[x][1] para definir a tabela de gravação (RHLEE)
- RHL_FILIAL := aPlanAtiv[x][2]
- RHL_MAT := aPlanAtiv[x][3]
- RHL_TPFORN := aPlanAtiv[x][4] --conteúdo '1' ou '2' - campo caracter
- RHL_CODFOR := aPlanAtiv[x][5]
- RHL_CODIGO := aPlanAtiv[x][8]
- RHL_TPPLAN recebe o tipo de plano: '2' Faixa Etária ou '3' Valor Fixo. Será definido através da identificação do código do Fornecedor + código do Plano. Identificando a tabela auxiliar onde se encontra o plano (S009 e S014 - Faixa Etária, S028 e S030 - Valor Fixo)
- RHL_PLANO := aPlanAtiv[x][6]
- RHL_PERINI recebe conteúdo do MV_FOLMES no formato mesAno. Lembre-se: MV_FOLMES utiliza o formato anoMes.
- RHK_PDDAGR recebe o código da verba de cálculo para o dependente (aPlanAtiv[x][7])
- Para conseguir visualizar e manipular os dados via Protheus é necessário que a tabela RHK e RHL possuam algumas informações iguais. Válido também para a gravação do campo RHK_PDDAGR.
- RHK_FILIAL = RHL_FILIAL
- RHK_MAT = RHL_MAT
- RHK_TPFORN := RHL_TPFORN
- RHK_CODFOR := RHL_CODFOR
- Para gravação dos dados do agregado:
- Utilizar o código da empresa presente na posição aPlanAtiv[x][1] para definir a tabela de gravação (RHMEE)
- RHM_FILIAL := aPlanAtiv[x][2]
- RHM_MAT := aPlanAtiv[x][3]
- RHM_TPFORN := aPlanAtiv[x][4] --conteúdo '1' ou '2' - campo caracter
- RHM_CODFOR := aPlanAtiv[x][5]
- RHM_CODIGO recebe um número sequencial, criado conforme inserido agregados para o funcionário - Char (02)
- RHM_TPPLAN recebe o tipo de plano: '2' Faixa Etária ou '3' Valor Fixo. Será definido através da identificação do código do Fornecedor + código do Plano. Identificando a tabela auxiliar onde se encontra o plano (S009 e S014 - Faixa Etária, S028 e S030 - Valor Fixo)
- RHM_PLANO := aPlanAtiv[x][6]
- RHM_PERINI recebe conteúdo do MV_FOLMES no formato mesAno. Lembre-se: MV_FOLMES utiliza o formato anoMes.
- RHM_NOME := aPlanAtiv[x][9]
- RHM_DTNASC := aPlanAtiv[x][10]
- RHM_CPF := aPlanAtiv[x][11]
- RHK_PDDAGR recebe o código da verba de cálculo para o dependente (aPlanAtiv[x][7])
- Para conseguir visualizar e manipular os dados via Protheus é necessário que a tabela RHK e RHM possuam algumas informações iguais. Válido também para a gravação do campo RHK_PDDAGR.
- RHK_FILIAL = RHM_FILIAL
- RHK_MAT = RHM_MAT
- RHK_TPFORN := RHM_TPFORN
- RHK_CODFOR := RHM_CODFOR
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|