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 |
Protheus ® | Módulo | SIGAGPE | |
Segmento Executor | Serviços | ||
Projeto |
M_SER_RH003 | IRM |
PCREQ- |
9083 |
Requisito |
Chamado2
PCREQ-9087 | Subtarefa |
PDR_SER_RH003-231 |
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros |
<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>.
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
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).
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. |
- 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.
- Campo RCC_FILIAL
- Campo RCC_SEQUEN
- Campo RCC_FIL
- Campo RCC_CHAVE
- Campo RCC_CONTEU
Faixas Plano de Saúde
- Por Valor Fixo
- Por Idade
LOGIX | PROTHEUS | ||
Cadastro De Planos de Saúde (RHU0090) | Faixas Plano de Assistência Médica/Odontológica (GPEA320 - Tabelas ??verificar??) | ||
Atributo | Tipo | Atributo | Tipo |
Planos Ativos
- Funcionários
- Dependentes
- Agregados
LOGIX | PROTHEUS | ||
Planos de Saúde (RHU3470) | Planos de Saúde Ativos (GPEA001) | ||
Atributo | Tipo | Atributo | Tipo |
Configuração de Faixas do Plano | |||
Logix | Protheus | ||
Atributo | Tipo | Atributo | Tipo |
Identificador
| |||
Código do Fornecedor (RHU0080)
| char(02) |99| | ||
Código do Plano
| char(02) |99| | ||
Descrição
| char(20) |XXXXXXXXXXXXXXXXXXXX| | ||
Tipo do Plano
| Char(01) |X| | ||
Valor Fixo
|
|9999.99| | ||
Forma de Cálculo
|
|V| - |I| | ||
Associado facultativo
|
|T| - |D| - |DT| - |A| - |AT| | ||
Idade facultativo
| number(02) |99| | ||
Valor facultativo
| number(07) |999999.99| | ||
Idade facultativo
| number(02) |99| | ||
Valor facultativo
| number(07) |999999.99| | ||
Idade facultativo
| number(02) |99| | ||
Valor facultativo
| number(07) |999999.99| | ||
Idade facultativo
| number(02) |99| | ||
Valor facultativo
| number(07) |999999.99| | ||
Observação: Se o plano de saúde for por Base de Cálculo não será enviado. Será mostrado relatório de erro no Logix para o usuário parametrizar no Protheus |
Plano Ativos Funcionário | |||
Logix | Protheus | ||
Atributo | Tipo | Atributo | Tipo |
Identificador
| |||
Empresa (RHU3470) | |99| | ||
Filial (RHU3470) | |99| | ||
Matricula (RHU3470) | |999999| | ||
Tipo do Plano
| |X| | ||
Entidade
| |99| | ||
Plano
| |99| | ||
Verba
| |999| | ||
Dependente facultativo
| |99| | ||
Nome facultativo
| |XXXXXXXXXXXXXXX| | ||
Data de Nascimento facultativo
| |99/99/9999| | ||
CPF facultativo
| |99999999999| | ||
Observação
|
Definição da Regra de Negócio
<Regra de negócio é o que define a forma de fazer o negócio, o processo definido e/ou as regras que devem ser contempladas. Devem ser descritas restrições, validações, condições e exceções do processo. Caso necessário, incluir neste capítulo também regras de integridade que devem ser observadas no momento do desenvolvimento>.
<Na tabela abaixo informe quais são as rotinas envolvidas, o tipo de operação, a opção de menu e se necessário uma breve descrição das regras de negócio relacionadas a rotina>.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
[ACAA040 – Parâmetros] | [Alteração] | [Atualizações -> Acadêmico-> Tesouraria] | - |
[ACAA050 – Negociação Financeira] | [Envolvida] | [Atualizações -> Acadêmico-> Tesouraria] | - |
[ACAA060 – Cadastro de Pedidos] | [Criação] | [Atualizações -> Acadêmico-> Cadastros] | - |
Exemplo de Aplicação:
- Criar o campo “% Mínimo Espécie” (AAA_PERESP) onde o usuário informará o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação.
- Criar o campo “Referência Mínima para Cálculo” (AAA_REFCAL) onde o usuário informará um dos 4 valores disponíveis para pagamento das mensalidades como a referência mínima para calcular o débito total do aluno.
- Criar o parâmetro MV_ACPARNE que definirá se as informações de “% Mínimo Espécie” e “Referência Mínima para Cálculo” serão obrigatórias.
- O parâmetro MV_ACPARNE deve ter as seguintes opções: 1=Obrigatório e 2=Opcional. Deve ser inicializado como opcional>.
Tabelas Utilizadas
- SE2 – Cadastro de Contas a Pagar
- FI9 – Controle de Emissão de DARF>.
Opcional
Protótipo de Tela
<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.
Protótipo 01
Opcional
Fluxo do Processo
<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>.
Opcional
Dicionário de Dados
Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/
Índice | Chave |
01 | <FI9_FILIAL+FI9_IDDARF+FI9_STATUS> |
02 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF> |
03 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO> |
Campo | <AAA_PERESP> |
Tipo | <N> |
Tamanho | <6> |
Valor Inicial | <Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. |
Mandatório | Sim ( ) Não ( ) |
Descrição | <Referência Mínima para Cálculo> |
Título | <Ref.Calc.> |
Picture | <@E999.99> |
Help de Campo | <Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação> |
(Opcional)
Grupo de Perguntas
<Informações utilizadas na linha Protheus>.
Nome: FINSRF2
X1_ORDEM | 01 |
X1_PERGUNT | Emissão De |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Comum |
X1_CNT01 | '01/01/08' |
X1_HELP | Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório |
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).
- Devido o campo código de identificação do Plano cadastrado possuir tamanho diferente no Protheus, será necessário desenvolver uma tela de De/Para para que no momento da importação seja feita a troca dos códigos para 2 algarismos.
- O programa irá ler e listar os códigos presentes no arquivo de importação plano_saude_logix.unl e indicar uma sugestão de código para ser utilizado no Protheus
- A configuração do De/Para será gravada em um arquivo com nome CODPLALOGIXPROTHEUS.UNL localizado no mesmo diretório que o arquivo de importação.
- Toda vez que realizar a importação de Planos de Saúde será verificada a existência do arquivo.
- Caso o arquivo já exista será utilizada as informações presentes nele.
- Caso não haja arquivo, será apresentada uma tela para configuração do De/Para baseado nos dados presentes no arquivo de importação.
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
Exemplo do registro no arquivo:
3|99|99|999999|X|99|99|999|||||
3|99|99|999999|X|99|99|999|99||||
3|99|99|999999|X|99|99|999||XXXXXXXXXXXXXXX|99/99/9999|99999999999|
(Opcional)
Consulta Padrão
<Informações utilizadas na linha Protheus>
Consulta: AMB
Descrição
Configurações de Planejamento
Tipo
Consulta Padrão
Tabela
“AMB”
Índice
“Código”
Campo
“Código”; ”Descrição”
Retorno
AMB->AMB_CODIGO
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|