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 | TULEJM | ||
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 ferramente 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 preenchimento do quadro financeiro - Fluxo Caixa Trimestral no DIOPS X-Press.
Definição da Regra de Negócio
Os dados do do Fluxo de Caixa Trimestral 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.de acordo com o layout abaixo:
Descrição da conta;valor
Exemplo:
Recebimentos de Plano Saúde;22664.00 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 |
PLSDFLCXTR | Inclusão | Miscelânea -> DIOPS -> Fluxo Trimestral | - |
- Criar novo fonte PLSDATIVIN PLSDFLCXTR cuja funcionalidade é gerar o arquivo CSV resultante desta especificação.
- Criar novo grupo de perguntas PLSDATIVIN PLSDFLCXTR contendo as seguintes opções:
- Data de Referência?Inicial
- Data Final
- Cód. Config. Livros?Tipo Bem? (Combo com opções: 1 - Investimento; 2 - Imóvel)
- Criar nova função novas funções no fonte para buscar todos os imóveis e investimentos, vinculados à ANS, até a data de referência informada. Para busca dos registros, a query deve:
- Considerar o parâmetro "Cód. Config. Livros" para buscar a tabela CTN, em seguida será verificada a visão do quadro da DIOPS associada à configuração do livro, sendo possível encontrar as visões gerenciais e as contas contábeis (tabela CTS).
- Através da visão gerencial (CTS) serão localizadas as movimentações contábeis (Tabela CT2) das contas definidas e a partir destas movimentações deverá localizar os ativos e verificar quais são Ativos Vinculados (Tabela SN1 e SN3).
- A query de busca dos registros deve ser alterada de acordo com o conteúdo do parâmetro "Tipo Bem?", de acordo com as regras abaixo:
- Se o parâmetro "Tipo Bem?" for igual a 1 - Investimento:
- Localizar os registros cujo conteúdo do campo N1_TPCUSTD seja diferente de vazio.
- Se o parâmetro "Tipo Bem?" for igual a 2 - Imóvel:
- Localizar os registros cujo conteúdo do campo N1_TPCUSTD seja vazio e o conteúdo do campo N1_TPBEM possua algum valor.
- Se o parâmetro "Tipo Bem?" for igual a 1 - Investimento:
Para a "Data de Avaliação" considerar o Max do campo N3_AQUISIC, ou seja, a maior data, com N3_TIPO (Tipo Ativo) somente com conteúdo = "02" (Avaliação positiva).
Considerar apenas os N3_TIPO (Tipo Ativo) que sejam: "01" (Depreciação Fiscal); ou "10" (Depreciação Gerencial/Contábil).
- Utilizar como exemplo a query da função ATFDIOPS localizada no fonte ATFXFUN.PRX. Essa função tem como objetivo localizar os investimentos e imóveis, no entanto, será necessário realizar as alterações acima citadas, além de incluir os seguintes campos no retorno:
- Código do Ativo - N1_CBASE
- Data Venda - N4_DATA (incluir JOIN com a tabela SN4 - objetivo: encontrar movimentação de venda de imóvel).
- Data Vencimento - N1_DTBLOQ
Exemplo: função ATFDIOPS localizada em ATFXFUN.PRX:
Query Busca Ativos
- Criar função para gerar o arquivo CSV com o layout diferenciado de acordo com o conteúdo do parâmetro "Tipo Bem?":
- Parâmetro valor = 1 / Investimento
Tipo do ativo (N1_REDE) – Se Sim é Próprio, senão é Mantenedor
Custodia (N1_TPCUSTD)
Código do ativo (N1_CBASE)
Data de emissão (N1_AQUISIC)
Data de vencimento - N1_DTBLOQ
Tipo outros (N1_TPOUTR)
Tipo do bem (N1_TPBEM)
Quantidade (N1_QUANTD)
Preço unitário (SN3.N3_VORIG1 / SN1.N1_QUANTD)
Valor contábil - N3_VORIG1 (Observar necessidade de considerar lucro/prejuízo do investimento)
- Parâmetro valor = 2 / Imóvel
RGI: (N1_CODRGI)
Tipo do bem (N1_TPBEM)
Nome do cartório (N1_NOMCART)
Área (N1_AREA)
Data da aquisição (N1_AQUISIC)
Data venda - N4_DATA (Se, e só se, encontrar movimentação da venda SN4 referente ao registro selecionado, além de possuir o campo N1_BAIXA <> "")
Data avaliação (N3_AQUISIC)
Rede própria (N1_REDE)
Preço unitário (SN3.N3_VORIG1 / SN1.N1_QUANTD)
Valor contábil - N3_VORIG1 (Observar a necessidade de considerar a depreciação do imóvel para o valor contábil).
Logradouro (N1_LOGIMOV)
Numero (N1_NRIMOV)
Complemento (N1_COMIMOV)
Bairro (N1_BAIIMOV)
Município (N1_MUNIMOV)
Cep (N1_CEPIMOV)
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):
Criar CSVBloco de código language delphi theme Midnight title Montar CSV 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;Coluna 3;Coluna 4;Coluna 5;"+CRLF) For nI := 1 TO Len(aAtivos) FWrite(nFileCSV,aAtivos[nI,1]+";"+aAtivos[nI,2]+";"+aAtivos[nI,3]+";"+aAtivos[nI,4]+";"+aAtivos[nI,5]+CRLF) Next nI FClose(nFileCSV) Else MsgInfo("Não foi possível criar o arquivo " + cDirCsv+cFileRPX,"TOTVS") EndIf
- Parâmetro valor = 1 / Investimento
Tabelas Utilizadas
- SN1
- SN3
- CTS
- CTN
- CT2
- montar arquivo temporário com os valores de recebimentos e pagamentos, seguindo exemplo do relatório CTBR560(Contabilidade Gerencial - Relatórios - Demonstrativos - Dem. Fluxo Caixa):
- Utilizar a função CTBSetOf, passando como parâmetro o código do livro. O retorno é um array que contém as informações necessárias para serem usadas na função CtGerPlan.
- Utilizar a mesma função do relatório (CTBR560) - CtGerPlan. Essa função gera um alias temporário com todas as informações contábeis informadas na visão gerencial. Usar a CTGerPlan com a função MsgMeter, como no exemplo:
MsgMeter({| oMeter, oText, oDlg, lEnd | ;
CTGerPlan( oMeter, oText, oDlg, @lEnd, @cArqTmp, dFinalA+1, dFinal;
, "", "", "", Repl( "Z", Len( CT1->CT1_CONTA )), "";
, Repl( "Z", Len(CTT->CTT_CUSTO)), "", Repl("Z", Len(CTD->CTD_ITEM));
, "", Repl("Z", Len(CTH->CTH_CLVL)), mv_par03, /*MV_PAR15*/cSaldos, aSetOfBook, Space(2);
, Space(20), Repl("Z", 20), Space(30),,,,, mv_par04=1, mv_par05;
, ,lVlrZerado,,,,,,,,,,,,,,,,,,,,,,,,,cMoedaDesc,lMovPeriodo,aSelFil,,.T.,MV_PAR17==1)};
,STR0006, STR0001)Para usar a função CTGerPlan é necessário passar como parâmetros alguns dados como:
oMeter: Controle da régua
oText: Controle da régua
oDlg: Janela
lEnd = .T.
cArqtmp: pode passar em branco
dDataIni: MV_PAR01
dDataFim: MV_PAR02
cAlias: "CT7"
cIdent: ""
cContaIni: ""
cContaFim: Repl( "Z", Len( CT1->CT1_CONTA ))
cCCIni: ""
cCCFim: Repl( "Z", Len(CTT->CTT_CUSTO))
cItemIni: ""
cItemFim: Repl("Z", Len(CTD->CTD_ITEM))
cClvlIni: ""
cClVlFim: Repl("Z", Len(CTH->CTH_CLVL))
cMoeda: "01"
cSaldos: CT510TRTSL()
aSetOfBook: CTBSetOf(mv_par03)
cSegmento: pode passar em branco
cSegIni: ""cSegFim: Repl("Z", 20)
cFiltSegm: Space(30)
lNImpMov: pode passar em branco
lImpConta: pode passar em branco
nGrupo:pode passar em branco
cHeader: pode passar em branco
lImpAntLP: .F.
dDataLP: pode passar em branco
nDivide: pode passar em brancolVlrZerado: .T.
cFiltroEnt: pode passar em branco
cCodFilEnt: pode passar em branco
cSegmentoG: pode passar em branco
cSegIniG: pode passar em branco
cSegFimG: pode passar em branco
cFiltSegmG: pode passar em branco
lUsGaap: pode passar em brancocMoedConv: pode passar em branco
cConsCrit: pode passar em branco
dDataConv: pode passar em branco
nTaxaConv: pode passar em branco
aGeren: pode passar em branco
lImpMov: pode passar em branco
lImpSint: pode passar em branco
cFilUSU: pode passar em branco
lRecDesp0: pode passar em branco
cRecDesp: pode passar em brancodDtZeraRD: pode passar em branco
lImp3Ent: pode passar em branco
lImp4Ent: pode passar em branco
lImpEntGer: pode passar em branco
lFiltraCC: pode passar em branco
lFiltraIt: pode passar em branco
lFiltraCV: pode passar em branco
cMoedaDsc: pode passar em branco
lMovPeriodo: pode passar em branco
aSelFil: pode passar em branco
dDtCorte: pode passar em branco
lPlGerSint: pode passar em branco
lConsSaldo: .T.
lCompEnt: pode passar em branco
cArqAux: pode passar em branco
lUsaNmVis: pode passar em branco
cNomeVis: pode passar em branco
lCttSint: pode passar em branco
lTodasFil: pode passar em brancocQuadroCTB: pode passar em branco
aEntidades: pode passar em branco
cCodEntidade: pode passar em branco
- Com o resultado da função CtGerPlan, percorrer todos os registros do alias temporário e gravar no array as informações da DIOPS: Descrição da conta e o saldo atual respectivo.
- Utilizar a função (PLSGerCSV) para geração do arquivo CSV, passando os seguintes parâmetros:
- Nome do arquivo
- cabeçalho do arquivo
- array com os dados. Ex: {Recebimentos de Plano Saúde;22664.00 }
Exemplo da DIOPS de Fluxo Trimestral:
Tabelas Utilizadas
- CTN
- CTS
- CT1
- CT2
- CVN
- CVD
Grupo de Perguntas
Nome: FINSRF2PLSDFLCXTR
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 |
'01/01/08'
X1_HELP | Data inicial do intervalo |
para emissão do DIOPS de fluxo de caixa trimestral |
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 trimestral |
X1_ORDEM | 03 |
X1_PERGUNT | Cód. Config. Livros |
X1_TIPO | C |
X1_TAMANHO | 3 |
X1_GSC | C |
X1_VAR01 | MV_PAR03 |
X1_HELP | Código do livro para considerar na busca. |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|