* Permitir regras diferenciadas por Regime de atendimento e/ou tipo de admissão nos contratos por valor preestabelecidos
Não há restrições
-- Tela de eventos relacionados do PLSA368 (PLSA368B)
* Criação de campos na tabela B8P
C1 - Tipo de atendimento, tipo combo, opções 1=Internação;2=Ambulatorial;3=Ambos, tamanho 1 (seguindo o padrão dos campos "_TIPATE")
C2 - Regime de atendimento, tipo F3, tamanho 2, usando a consulta padrão BGYPLS (seguindo o padrão dos campos "_FINATE")
- Ambos os campos não devem ser obrigatórios
C3 - Sequencial - caractere tamanho 4. Deve ser preenchido com o GetSXeNum no inicializador padrão
- Esse campo (C3) é importante para que caso haja novas adições na tabela B8P, não seja necessário sempre ajustar o X2_UNICO da tabela, deixando a estrutura do sistema independente de alterações na regra de negócio e facilitando inovações futuras.
* Alteração do X2_UNICO da tabela para adicionar o campo C3 ao mesmo.
- Não vai haver impacto nos registros anteriores, pois o restante da chave será mantido e isso já garante que a alteração da chave não irá causar problemas de integridade.
* Deverá ser incluída a verificação do sequencial (C3) na validação de confirmação, para evitar erro de chave duplicada. (função PLS368BBok)
-- Mudança de fase
* Criação do campo C4, caractere tamanho 20 na tabela BX6. Este campo será usado para gravarmos o contrato que foi utilizado, caso algum tenha sido utilizado. este campo não deve ser obrigatório.
* No mesmo momento em que gravamos os campos de desconto, iremos gravar o campo C4 com o identificador do contrato utilizado (campo B8O_IDCOPR). Iremos passar a gravar essa informação para limitar os impactos em cadeia dessa alteração e alterações futuras.
* a função de retorno de fase deve limpar o conteúdo do campo C4, caso ele esteja preenchido.
* Alterações na função PLSAAA720 e no momento da mudança de fase, as alterações serão:
- ela passa a receber os dois novos parâmetros adicionais. Os parâmetros cFinate e cRegAte devem ser passados para a PLS720GPG e então para a PLSAAA720
- ela passa a enviar para a função BuscaB8P essas informações
- A função buscaB8P irá utilizar essas novas informações na query
- Deve ser seguida a prioridade definida abaixo
Fatores de diferenciação do B8P
A- Especialidade (B8P_CODESP)
B- Finalidade atendimento (C2)
C- Regime atendimento (C1)
Os fatores podem ter valor ou estar em branco, com isso mesmo que o mais específico falhe, outro pode atender o critério, então pode tanto ser alterado o if !eoF() para while !EoF() (não esquecer o dbskip) ou alterar somente a query para que o primeiro resultado seja a correspondência mais específica.
Se optado pelo loop, a função deve sair do loop no primeiro resultado válido que encontrar.
A ordem de prioridade padrão será A, B, C daí fica do mais específico pro menos específico
com isso um registro com a especialidade (A) preenchida tem prioridade sobre um com a finalidade de atendimento (B) preenchida e esse tem prioridade sobre um com regime de atendimento (C) preenchido. Registros sem nenhum dos campos preenchidos são os menos prioritários, pois são mais genéricos.
Importante, caso um registro diferencie por A, B e/ou C, ele só pode ser considerado se todos os critérios de diferenciação forem atendidos!! (se o campo B8P_CODESP, C2 e/ou C1 estiver em branco, o critério é automaticamente atendido)
| Prioridade | Combinação de campos preenchidos |
|---|---|
| 1 | A + B + C |
| 2 | A + B |
| 3 | A + C |
| 4 | A |
| 5 | B + C |
| 6 | B |
| 7 | C |
| 8 | Nenhum campo preenchido |
-- Monitoramento
* Na geração da informação de a qual contrato determinada cobrança está vinculada (função ContratoUsado) irá passar a usar o valor do campo C4 como fonte do valor e caso em branco, a regra atual deve ser processada. Não há risco de trazer informação indevida, pois a regra só é utilizada caso o alias de desconto seja B8O. Esse desvio deve ser removido no futuro (a ser planejado para junho/2023), pois só está sendo mantido para as guias que forem processadas antes da alteração possam ser identificadas corretamente. Os parâmetros adicionais não serão passados nessa chamada da função PLSAAA720.
Documentação da rotina:
Após a implementação, será necessário adicionar as informações no documento seguindo o padrão atual do mesmo.