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 | SIGAPLS |
Segmento Executor | Saúde | ||
Chamado | TULEM8 | ||
País | ( x ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. |
Objetivo
O DIOPS é o Documento de Informações Periódicas das Operadoras de Planos de Saúde, que devem ser enviados trimestralmente à ANS. As informações que compõem este documento são: quadros cadastrais, quadros financeiros, quadros gerenciais e informações gerais. O documento tem por objetivo fornecer condições para que a DIOPS (ANS) possa efetuar o controle, o monitoramento e o acompanhamento das operadoras.
Um novo padrão foi estabelecido pela ANS para recebimento dessas informações. O padrão definido segue os conceitos da Troca de Informação em Saúde Suplementar (TISS), cujos dados são enviados pelas operadoras para a ANS em arquivos XML.
A ANS verifica e valida o conteúdo desses arquivos através do seu site, no entanto, algumas ferramentas estão disponíveis para execução dessa tarefa antes do envio, como o DIOPS X-Press. Com esta ferramenta, não é necessário submeter o XML ao site da ANS, permitindo que erros sejam corrigidos antes do envio à ANS.
Além disso, a ferramenta permite a importação de arquivos com layouts pré-definidos ou digitação das informações manualmente em todos os quadros. Essa especificação contempla todas as informações necessárias para o desenvolvimento do relatório para preenchimento do quadro financeiro - Lucros ou Prejuízos no DIOPS X-Press.
Definição da Regra de Negócio
Os dados do Lucros ou Prejuízos devem ser exportados através do Protheus em formato CSV e, posteriormente, incluídos manualmente no DIOPS X-Press, pois não existe a importação automática do arquivo para essa modalidade na ferramenta.
Premissa: para emissão do arquivo deverá ser criada uma Visão Gerencial com o Plano de Contas da ANS e uma configuração de Livro vinculando esta visão.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
PLSDLCRPRJ | Inclusão | Miscelânea -> DIOPS -> Lucros ou Prejuízos- | 1 a 4 |
- Criar novo fonte PLSDLCRPRJ cuja funcionalidade é gerar o arquivo CSV resultante desta especificação.
- Criar novo grupo de perguntas PLSDLCRPRJ contendo as seguintes opções:
- Data Inicial
- Data Final
- Cód. Config. Livros
- Criar novas funções no fonte para montar arquivo temporário com os valores de recebimentos e pagamentos, seguindo exemplo do relatório CTBR510 (Contabilidade Gerencial - Relatórios - Demonstrativos - Dem. Resultados).:
- Seguindo o exemplo CTBR510, criar função PLSDFLCXTRPLSDLCRPRJ() similar a CtbR560(), modificando os parâmetros utilizando o pergunte criado anteriormente (PLSDFLCXTRPLSDLCRPRJ), além de alterar o cTitulo para "Fluxo de Caixa TrimestralLucros ou Prejuízos";
Criar nova função similar a função CTBR510R3() para verificação se os parâmetros Data Inicial e Data Final estão dentro do calendário cadastrado na CTG.
Criar arquivo temporário com dados resultantes da query:
Bloco de código language delphi title Query calendário linenumbers true collapse true "SELECT CTG_CALEND, CTG_DTINI, CTG_DTFIM FROM " + PLSSQLNAME("CTG") + " WHERE " + MV_PAR01 + " >= CTG_DTINI AND " + MV_PAR02 + " <= CTG
_DTFIM"
- Caso o arquivo temporário tenha registros (isto é, a data esteja contida no intervalo de um calendário cadastrado), prossegue com a rotina.
- Criar nova função similar a função Ctr560DetCtr510Det() para criação dos detalhes do relatório, criar query para buscar:
- Código de configuração de livro (CTN) de acordo com o conteúdo do parâmetro;
- Visão gerencial (CTS) de acordo com o código de configuração do livro;
- Contas relacionadas (CT1) à Visão Gerencial; utilizar a função CTGerPlan para obter os valores do relatório.
- Títulos baixados (CT5) com vínculo às contas localizadas e com motivo da baixa diferente de "FAT", "LIQ" e "DAC".
Esquema de vínculo das tabelas:Criar laço while para percorrer todos os registros localizados pela query e somar os valores de acordo com o mês ou dia (de acordo com o preenchimento do parâmetro), seguindo o exemplo existente na função Ctr560DetCtr510Det:
Bloco de código language delphi title Repetição query Do Case Case nPosCol = 1 nSaldo := cArqTmp->SALDOATU If cArqTmp->TIPOCONTAIf IDENTIFI < "5" If mv_par06 == "1" .ANDOr. Empty( cArqTmp->SUPERIOR )mv_par06 == 2 .ANDAnd. cArqTmp->TOTVISnPosCol == "1") nSaldoAtu += nSaldoIf !lMovPeriodo EndIf Case nSaldo := If(nPosCol = 21, SALDOATU, SALDOANT) nSaldo := cArqTmp->SALDOANT Else If cArqTmp->TIPOCONTA == "1" .AND. Empty( cArqTmp->SUPERIOR ) .AND. cArqTmp->TOTVIS == "1" nSaldoAnt += nSaldonSaldo := If(nPosCol = 1, SALDOATU-SALDOANT,MOVPERANT) EndIf Case nPosCol = 3 nSaldo := GetVarEnt(cArqTmp->CONTA,cCodVis,cArqTmp->ORDEM)//cArqTmp->(SALDOATU-SALDOANT) ValorCTB(nSaldo,lin+15,aPosCol[nPosCol],15,nDecimais,.T.,cPicture,; If cArqTmp->TIPOCONTA == "1" .AND. Empty( cArqTmp->SUPERIOR ) .AND. cArqTmp->TOTVIS == "1"NORMAL,CONTA,.T.,oPrint,cTpValor,IIf(IDENTIFI $ "4","1",IDENTIFI)) EndIf nSaldoVar += nSaldo EndIf EndCaseEndif
- Descrição da Conta
Valor
Exemplo de função para montagem do CSV (adaptar a função para que o cabeçalho respeite a ordem acima citada, de acordo com o tipo do ativo):
Bloco de código language delphi cDirCsv := cGetFile("TOTVS","Selecione o diretorio",,"",.T.,GETF_OVERWRITEPROMPT + GETF_NETWORKDRIVE + GETF_LOCALHARD + GETF_RETDIRECTORY) nFileCsv := FCreate(cDirCsv+"NOME_ARQUIVO.csv",0,,.F.) If nFileCsv > 0 FWrite(nFileCSV,"Coluna 1;Coluna 2"+CRLF) For nI := 1 TO Len(aFluxo) FWrite(nFileCSV,aFluxo[nI,1]+";"+aFluxo[nI,2]+CRLF) Next nI FClose(nFileCSV) Else MsgInfo("Não foi possível criar o arquivo " + cDirCsv+cFileRPX,"TOTVS") EndIf
Tabelas Utilizadas
- CTN
- CTS
- CT1
- CT2
- CVN
- CVD
Grupo de Perguntas
Nome: PLSDFLCXTR PLSDLCRPRJ
X1_ORDEM | 01 |
X1_PERGUNT | Data Inicial |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Comum |
X1_CNT01 |
|
X1_HELP | Data inicial do intervalo para emissão do DIOPS de fluxo de caixa trimestralLucros ou Prejuízos |
X1_ORDEM | 02 |
X1_PERGUNT | Data Final |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR02 |
X1_HELP | Data final do intervalo para emissão do DIOPS de fluxo de caixa trimestralLucros ou Prejuízos |
X1_ORDEM | 03 |
X1_PERGUNT | Cód. Conf. Livros |
X1_TIPO | D |
X1_TAMANHO | 3 |
X1_GSC | G |
X1_VAR01 | MV_PAR03 |
X1_HELP | |
X1_ORDEM | 05 |
X1_PERGUNT | Período Anterior |
X1_TIPO | C |
X1_TAMANHO | 1 |
X1_GSC | G |
X1_VAR01 | MV_PAR05 |
X1_DEF01 | "Sim" |
X1_DEF02 | "Não" |
X1_HELP | Informa se será considerado período anterior para gerar DIOPS de fluxo de caixa trimestral Código da configuração do livro que será considerado na busca de ativos vinculados para o DIOPS. |
X1_ORDEM | 04 |
X1_PERGUNT | Período |
X1_TIPO | C |
X1_TAMANHO | 1 |
X1_GSC | C |
X1_VAR01 | MV_PAR04 |
X1_DEF01 | "Diário" |
X1_DEF02 | "Mensal" |
X1_HELP | Informa se o período para geração do DIOPS será diário (1) ou mensal (2). |
lucros ou prejuízos para o DIOPS. |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|