||Descrição|| PL130EXP Calcula exposto conforme regra utilizada pelo cliente.
||Observações||
||Exemplos||User Function PL130EXP()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//³ Inicializa variaveis ³//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local nTemp, cChave, lContinua, aRet, lTemCob, aStruCod, nTmp, nTempor
Local cOper := paramixb[1]
Local cEmpIni := paramixb[2]
Local cEmpFim := paramixb[3]
Local cMatIni := paramixb[4]
Local cMatFim := paramixb[5]
Local dDatIni := paramixb[6]
Local dDatFim := paramixb[7]
Local cTipPla := paramixb[8]
Local dTipPla := paramixb[9]
Local cGruBen := paramixb[10]
Local dGruBen := paramixb[11]
Local cEmpIntS := paramixb[12]
Local nIndiceE := paramixb[13]
//Local aSipExp := paramixb[14]
Local cNameBA1 := RetSQLName('BA1')
Local cNameBA3 := RetSQLName('BA3')
Local cNameBG9 := RetSQLName('BG9')
Local cNameBQC := RetSQLName('BQC')
Local cNameBCA := RetSQLName('BCA')
Local cCodigo := ''
Local cQryBloq := ''
Local lBenBlo := .F.
Local lBlqAns := .F.
Local dDatBlo := StoD('')
Local nCt := 0
Local nPosVet := 0
Local nPosaCri := 0
Local nPosTam := 0
LOCAL nOldi := 1
LOCAL nPosLocal nPosBI3 := 1
LOCAL cCodPla := ''
LOCAL cVersao := ''
LOCAL cKey := ''
Local lValBI3 := .F.
Local nLBr8 := 1
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Array responsavel por calcular exposto ...
³//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local aSipExp := {}
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Array responsavel por gravar os valores referentes aos expostos ... ³
//ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
//³ Formato do Array : ³
//³ ->Codigo do Item da Despesa ³
//³ ->Grupos de Coberturas separados por virgula ³
//³ ->Carencia em dias ³
//³ ->Nove colunas com valor zero, onde serao gravados o numero de expostos ³
//³ para cada item de do relatorio para o Anexo II ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//Item Consultasaadd(aSipExp,{'1.01','',30,0})
//Exames Complementares
////////aadd(aSipExp,{'1.02','' ,0,0,0,0,0,0,0,0,0,0})
//Angiografia
aadd(aSipExp,{'1.02.1','',180,0})
//Hemodinamicaaadd(aSipExp,{'1.02.2','',180,0})
//Ressonancia nuclearaadd(aSipExp,{'1.02.3','',180,0})
//Tomografia computadorizadaaadd(aSipExp,{'1.02.4','',180,0})
//Demais exames aadd(aSipExp,{'1.02.5','',180,0})
//Terapias
////////aadd(aSipExp,{'1.03','' ,0,0,0,0,0,0,0,0,0,0})
//Hemoterapiaaadd(aSipExp,{'1.03.1','',180,0})
//Litotripsia
aadd(aSipExp,{'1.03.2','',180,0})
//Quimioterapiaaadd(aSipExp,{'1.03.3','',180,0})
//Radiologiaaadd(aSipExp,{'1.03.4','',180,0})
//Radioterapiaaadd(aSipExp,{'1.03.5','',180,0})
//Terapia renalaadd(aSipExp,{'1.03.6','',180,0})
//Demais terapiasaadd(aSipExp,{'1.03.7','',180,0})
//Outros Atend Ambulat
aadd(aSipExp,{'1.04','',180,0})
//Internacoes
aadd(aSipExp,{'1.05','',0,0})
//Demais despesas assistenciais
aadd(aSipExp,{'1.15','',180,0})
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Seleciona registros para processamento ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ From ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cFrom := ' FROM ' + cNameBA1 + ', ' + cNameBA3 + ', ' + cNameBG9
If alltrim(cTipPla) <> '1' // Tipo Plano = Coletivo cFrom += ', ' + cNameBQC
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Where BA1-Usuarios ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cWhere := ' WHERE BA1_FILIAL = '' + xFilial('BA1') + '' AND '
cWhere += ' BA1_CODINT = '' + cOper + '' AND '
cWhere += ' BA1_CODEMP >= '' + cEmpIni + '' AND '
cWhere += ' BA1_CODEMP <= '' + cEmpFim + '' AND '
If ! empty(cEmpIntS)
cWhere += ' BA1_CODEMP NOT IN (' + cEmpIntS + ') AND '
Endif
cWhere += ' BA1_MATRIC >= '' + cMatIni + '' AND '
cWhere += ' BA1_MATRIC <= '' + cMatFim + '' AND '
cWhere += ' BA1_DATINC <= '' + dtos(dDatFim) + '' AND '
Do Case
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Beneficiarios expostos ³
//³ Beneficiarios da operadora que esta enviando as informacoes e tem o ³
//³ servico fornecido majoriatariamente pela mesma ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Case cGruBen == '1' // Beneficiarios expostos
cWhere += ' (BA1_OPEORI = '' + cOper + '' AND BA1_OPEDES = '' + cOper + '') AND '
cWhere += ' BA1_INFANS <> '0' AND '
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Expostos nao beneficiarios ³
//³ Beneficiarios de outra operadora mas que tem o servico fornecido ³
//³ majoritariamente pela operadora que esta enviando as informacoes ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Case cGruBen == '2' // Expostos nao beneficiarios
cWhere += ' (BA1_OPEORI <> '' + cOper + '' AND BA1_OPEDES = '' + cOper + '') AND '
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Beneficiarios nao expostos ³
//³ Beneficiarios da operadora que esta enviando as informacoes que tem o ³
//³ servico fornecido majoriatariamente por outra operadora ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Case cGruBen == '3' // Beneficiarios nao expostos
cWhere += ' (BA1_OPEORI = '' + cOper + '' AND BA1_OPEDES <> '' + cOper + '') AND '
cWhere += ' BA1_INFANS <> '0' AND '
EndCase
cWhere += ' BA1_DATADM <= '' + Dtos(dDatFim) + '' AND '
cWhere += cNameBa1 + '.D_E_L_E_T_ <> '*' AND '
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Where BA3-Familias/Usuarios ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cWhere += ' BA3_FILIAL = '' + xFilial('BA3') + '' AND '
cWhere += ' BA3_CODINT = BA1_CODINT AND '
cWhere += ' BA3_CODEMP = BA1_CODEMP AND '
cWhere += ' BA3_MATRIC = BA1_MATRIC AND '
cWhere += cNameBA3 + '.D_E_L_E_T_ <> '*' AND '
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Where BG9-Grupo/Empresa ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cWhere += ' BG9_FILIAL = '' + xFilial('BG9') + '' AND '
cWhere += ' BG9_CODINT = BA1_CODINT AND '
cWhere += ' BG9_CODIGO = BA3_CODEMP AND '
cWhere += cNameBG9 + '.D_E_L_E_T_ <> '*' AND '
If alltrim(cTipPla) == '1' // Tipo Plano = Individual/Familiar
cWhere += ' BG9_TIPO = '1' ' // Pessoa Fisica
Else
cWhere += ' BG9_TIPO = '2' ' // Pessoa Juridica
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Where BQC-SubContrato ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If alltrim(cTipPla) <> '1' // Tipo Plano = Coletivo
cWhere += ' AND '
cWhere += ' BQC_FILIAL = '' + xFilial('BQC') + '' AND '
cWhere += ' SUBSTRING(BQC_CODIGO,1,4) = BA3_CODINT AND '
cWhere += ' SUBSTRING(BQC_CODIGO,5,4) = BA3_CODEMP AND '
cWhere += ' BQC_NUMCON = BA3_CONEMP AND '
cWhere += ' BQC_VERCON = BA3_VERCON AND '
cWhere += ' BQC_SUBCON = BA3_SUBCON AND '
cWhere += ' BQC_VERSUB = BA3_VERSUB AND '
cWhere += cNameBQC + '.D_E_L_E_T_ <> '*' AND '
If alltrim(cTipPla) == '2' // Tipo Plano = Coletivo sem patrocinador
cWhere += ' BQC_PATROC = '0' ' // sem patrocinador
Else
cWhere += ' BQC_PATROC = '1' ' // com patrocinador
Endif
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Seleciona registros ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cFiltro := 'SELECT BA1_NOMUSR, ' +cNameBA1
cFiltro += '.R_E_C_N_O_ AS REGBA1, ' + cNameBA3 + '.R_E_C_N_O_ AS REGBA3 '
cFiltro += cFrom
cFiltro += cWhere
PLSQuery(cFiltro,'BA1QRY')
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Processa registros selecionados ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
While ! BA1QRY->(Eof())
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Posiciona BA1
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
BA1->(dbGoTo(BA1QRY->REGBA1))
BA3->(dbGoTo(BA1QRY->REGBA3))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Verifica se no fim do periodo o beneficiario estava bloqueado. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cQryBloq := ' SELECT BCA_TIPO, BCA_DATA, BCA_MOTBLO, BCA_NIVBLQ FROM ' + cNameBCA
cQryBloq += ' WHERE BCA_FILIAL = '' + xFilial('BCA') + '' AND BCA_MATRIC = '' + BA1->BA1_CODINT + BA1->BA1_CODEMP + BA1->BA1_MATRIC + '' AND'
cQryBloq += ' BCA_TIPREG = '' + BA1->BA1_TIPREG + '' AND'
cQryBloq += ' BCA_DATA <= '' + dtos(dDatFim) + '' AND '
cQryBloq += cNameBCA + '.D_E_L_E_T_ <> '*' '
cQryBloq += ' ORDER BY BCA_DATA, R_E_C_N_O_'
PLSQuery(cQryBloq,'BCAQRY')
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Se nao existe historico de bloqueio do Usuario e ³
//³ a data de bloqueio do usuario eh anterior ao periodo do SIB ³
//³ -> despreza o usuario ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If BCAQRY->(eof()) .and. ;
! empty(BA1->BA1_DATBLO) .and. ;
dtos(BA1->BA1_DATBLO) < dtos(dDatIni)
BCAQRY->(DbCloseArea())
BA1QRY->(DbSkip())
Loop
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Inicializa variaveis ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
lTemCob := .F.
lBenBlo := .F.
lBlqAns := .F.
dDatBlo := StoD('')
BI3->(DbSetOrder(1))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Processa historico de bloqueio ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
While ! BCAQRY->(eof())
lBlqAns := .F.
Do Case
Case BCAQRY->BCA_NIVBLQ == 'U' // Nivel de Usuario
If BG3->(MsSeek(xFilial('BG3')+BCAQRY->BCA_MOTBLO))
If ! empty(BG3->BG3_BLQANS)
lBlqAns := .T.
Endif
Endif
Case BCAQRY->BCA_NIVBLQ == 'F' // Nivel de Familia
If BG1->(MsSeek(xFilial('BG1')+BCAQRY->BCA_MOTBLO))
If ! empty(BG1->BG1_BLQANS)
lBlqAns := .T.
Endif
Endif
Case BCAQRY->BCA_NIVBLQ == 'S' // Nivel de Sub-Contrato
If BQU->(MsSeek(xFilial('BQU')+BCAQRY->BCA_MOTBLO))
If ! empty(BQU->BQU_BLQANS)
lBlqAns := .T.
Endif
Endif
EndCase
If lBlqAns .and. BCAQRY->BCA_TIPO == '0' // Bloqueio
lBenBlo := .T.
dDatBlo := BCAQRY->BCA_DATA
Else
lBenBlo := .F.
dDatBlo := StoD('')
Endif
BCAQRY->(dbSkip())
Enddo
BCAQRY->(DbCloseArea())
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Despreza usuario bloqueado antes da data inicial ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If ! empty(dDatBlo) .and. dDatBlo < dDatIni
BA1QRY->(dbSkip())
Loop
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Acumula qtd e inicializa variaveis ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nTotBenef ++
nQtdBenef ++
nDiasCar1 := 0
If Empty(BA1->BA1_CODPLA)
cCodPla := BA3->BA3_CODPLA
cVersao := BA3->BA3_VERSAO
Else
cCodPla := BA1->BA1_CODPLA
cVersao := BA1->BA1_VERSAO
Endif
i := 1
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Processa vetor aSIP ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
While i <= len(aSipExp)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Calcula exposto... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
lTemCob := .F.
nDiasCar := aSipExp[i,3]
dAuxIni := Max(BA1->BA1_DATCAR + nDiasCar,dDatIni)
dAuxFim := Min(If(Empty(dDatBlo),dDatFim,dDatBlo),dDatFim)
If dAuxFim > dAuxIni
nDiasExp := dAuxFim - dAuxIni
Else
nDiasExp := 0
Endif
If nDiasExp > 0
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Verifica se for item da internacao 15 ou 1.5 verifica cobertura no produto do usuario ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
lValBI3 := .F.
nOldi := i
If aSipExp[i,1] <> '1.05'
lTemCob := .T.
Else //caso seja o item internacao faz a verificacao no produto
nPosBI3 := Ascan(aProcBI3,{ |x| x[1] == xFilial('BI3')+BA1->BA1_CODINT+cCodPla+cVersao })
If nPosBI3 == 0
BI3->(MsSeek(xFilial('BI3')+BA1->BA1_CODINT+cCodPla+cVersao))
If Empty(BI3->BI3_CODSEG) .or. BI3->BI3_CODSEG $ cSegInt
lValBI3 := .T.
lTemCob := .T.
Endif
aadd(aProcBI3,{xFilial('BI3')+BA1->BA1_CODINT+cCodPla+cVersao,lValBI3,BI3->BI3_CODSEG })
Else
If Empty(aProcBI3[nPosBI3,3]) .or. aProcBI3[nPosBI3,3] $ cSegInt
lValBI3 := .T.
lTemCob := .T.
Endif
Endif
If ! lTemCob
nDiasExp := 0
Endif
Endif
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Acumula valores no item... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aSipExp[i,4] := nDiasExp
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Pula para proxima ocorrencia do vetor aSIP ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
i++
EndDo
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Acessa proximo registro ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
BA1QRY->(DbSkip())
EndDo
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Fecha area de trabalho ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
BA1QRY->(DbCloseArea())
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Fim da funcao ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Return(aSipExp)
||Preview||
||Veja também||
||Idioma|| Português(Brasil)
||Versões|| Versões_Anteriores
||Sistemas Operacionais Suportados||Todos
||Compatível com as Bases de Dados||Todas
||Updates||
||Parâmetros|| paramixb[1] Array of Record Operadora
paramixb[2] Array of Record empresa inicial
paramixb[3] Array of Record empresa final
paramixb[4] Array of Record Matricula Inicial
paramixb[5] Array of Record Matricula Final
paramixb[6] Array of Record Data Inicio da Geração
paramixb[7] Array of Record Data Fim da Geração
paramixb[8] Array of Record Codigo do tipo de plano a ser gerado
paramixb[9] Array of Record Descrição do tipo de plano a ser gerado
paramixb[10] Array of Record Codigo do Grupo de Beneficiario a ser gerado
paramixb[11] Array of Record Descrição do Grupo de Beneficiario a ser gerado
paramixb[12] Array of Record Empresa que serão ignoradas na geração
paramixb[13] Array of Record Indice para a geração do grupo de exposto
paramixb[14] Array of Record Array contendo os valores de expostos
||Retorno|| Vetor aSipExp com valores de expostos
||Eventos de chamada do Ponto de Entrada||
||Variáveis||
||Programa Fonte|| PLSM130.PRW
||Descrição|| PL130EXP Calcula exposto conforme regra utilizada pelo cliente.
||Observações||
||Exemplos||User Function PL130EXP()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//³ Inicializa variaveis ³//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local nTemp, cChave, lContinua, aRet, lTemCob, aStruCod, nTmp, nTempor
Local cOper := paramixb[1]
Local cEmpIni := paramixb[2]
Local cEmpFim := paramixb[3]
Local cMatIni := paramixb[4]
Local cMatFim := paramixb[5]
Local dDatIni := paramixb[6]
Local dDatFim := paramixb[7]
Local cTipPla := paramixb[8]
Local dTipPla := paramixb[9]
Local cGruBen := paramixb[10]
Local dGruBen := paramixb[11]
Local cEmpIntS := paramixb[12]
Local nIndiceE := paramixb[13]
//Local aSipExp := paramixb[14]
Local cNameBA1 := RetSQLName('BA1')
Local cNameBA3 := RetSQLName('BA3')
Local cNameBG9 := RetSQLName('BG9')
Local cNameBQC := RetSQLName('BQC')
Local cNameBCA := RetSQLName('BCA')
Local cCodigo := ''
Local cQryBloq := ''
Local lBenBlo := .F.
Local lBlqAns := .F.
Local dDatBlo := StoD('')
Local nCt := 0
Local nPosVet := 0
Local nPosaCri := 0
Local nPosTam := 0
LOCAL nOldi := 1
LOCAL nPosLocal nPosBI3 := 1
LOCAL cCodPla := ''
LOCAL cVersao := ''
LOCAL cKey := ''
Local lValBI3 := .F.
Local nLBr8 := 1
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Array responsavel por calcular exposto ...
³//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local aSipExp := {}
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Array responsavel por gravar os valores referentes aos expostos ... ³
//ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
//³ Formato do Array : ³
//³ ->Codigo do Item da Despesa ³
//³ ->Grupos de Coberturas separados por virgula ³
//³ ->Carencia em dias ³
//³ ->Nove colunas com valor zero, onde serao gravados o numero de expostos ³
//³ para cada item de do relatorio para o Anexo II ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//Item Consultasaadd(aSipExp,{'1.01','',30,0})
//Exames Complementares
////////aadd(aSipExp,{'1.02','' ,0,0,0,0,0,0,0,0,0,0})
//Angiografia
aadd(aSipExp,{'1.02.1','',180,0})
//Hemodinamicaaadd(aSipExp,{'1.02.2','',180,0})
//Ressonancia nuclearaadd(aSipExp,{'1.02.3','',180,0})
//Tomografia computadorizadaaadd(aSipExp,{'1.02.4','',180,0})
//Demais exames aadd(aSipExp,{'1.02.5','',180,0})
//Terapias
////////aadd(aSipExp,{'1.03','' ,0,0,0,0,0,0,0,0,0,0})
//Hemoterapiaaadd(aSipExp,{'1.03.1','',180,0})
//Litotripsia
aadd(aSipExp,{'1.03.2','',180,0})
//Quimioterapiaaadd(aSipExp,{'1.03.3','',180,0})
//Radiologiaaadd(aSipExp,{'1.03.4','',180,0})
//Radioterapiaaadd(aSipExp,{'1.03.5','',180,0})
//Terapia renalaadd(aSipExp,{'1.03.6','',180,0})
//Demais terapiasaadd(aSipExp,{'1.03.7','',180,0})
//Outros Atend Ambulat
aadd(aSipExp,{'1.04','',180,0})
//Internacoes
aadd(aSipExp,{'1.05','',0,0})
//Demais despesas assistenciais
aadd(aSipExp,{'1.15','',180,0})
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Seleciona registros para processamento ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ From ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cFrom := ' FROM ' + cNameBA1 + ', ' + cNameBA3 + ', ' + cNameBG9
If alltrim(cTipPla) <> '1' // Tipo Plano = Coletivo cFrom += ', ' + cNameBQC
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Where BA1-Usuarios ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cWhere := ' WHERE BA1_FILIAL = '' + xFilial('BA1') + '' AND '
cWhere += ' BA1_CODINT = '' + cOper + '' AND '
cWhere += ' BA1_CODEMP >= '' + cEmpIni + '' AND '
cWhere += ' BA1_CODEMP <= '' + cEmpFim + '' AND '
If ! empty(cEmpIntS)
cWhere += ' BA1_CODEMP NOT IN (' + cEmpIntS + ') AND '
Endif
cWhere += ' BA1_MATRIC >= '' + cMatIni + '' AND '
cWhere += ' BA1_MATRIC <= '' + cMatFim + '' AND '
cWhere += ' BA1_DATINC <= '' + dtos(dDatFim) + '' AND '
Do Case
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Beneficiarios expostos ³
//³ Beneficiarios da operadora que esta enviando as informacoes e tem o ³
//³ servico fornecido majoriatariamente pela mesma ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Case cGruBen == '1' // Beneficiarios expostos
cWhere += ' (BA1_OPEORI = '' + cOper + '' AND BA1_OPEDES = '' + cOper + '') AND '
cWhere += ' BA1_INFANS <> '0' AND '
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Expostos nao beneficiarios ³
//³ Beneficiarios de outra operadora mas que tem o servico fornecido ³
//³ majoritariamente pela operadora que esta enviando as informacoes ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Case cGruBen == '2' // Expostos nao beneficiarios
cWhere += ' (BA1_OPEORI <> '' + cOper + '' AND BA1_OPEDES = '' + cOper + '') AND '
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Beneficiarios nao expostos ³
//³ Beneficiarios da operadora que esta enviando as informacoes que tem o ³
//³ servico fornecido majoriatariamente por outra operadora ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Case cGruBen == '3' // Beneficiarios nao expostos
cWhere += ' (BA1_OPEORI = '' + cOper + '' AND BA1_OPEDES <> '' + cOper + '') AND '
cWhere += ' BA1_INFANS <> '0' AND '
EndCase
cWhere += ' BA1_DATADM <= '' + Dtos(dDatFim) + '' AND '
cWhere += cNameBa1 + '.D_E_L_E_T_ <> '*' AND '
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Where BA3-Familias/Usuarios ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cWhere += ' BA3_FILIAL = '' + xFilial('BA3') + '' AND '
cWhere += ' BA3_CODINT = BA1_CODINT AND '
cWhere += ' BA3_CODEMP = BA1_CODEMP AND '
cWhere += ' BA3_MATRIC = BA1_MATRIC AND '
cWhere += cNameBA3 + '.D_E_L_E_T_ <> '*' AND '
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Where BG9-Grupo/Empresa ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cWhere += ' BG9_FILIAL = '' + xFilial('BG9') + '' AND '
cWhere += ' BG9_CODINT = BA1_CODINT AND '
cWhere += ' BG9_CODIGO = BA3_CODEMP AND '
cWhere += cNameBG9 + '.D_E_L_E_T_ <> '*' AND '
If alltrim(cTipPla) == '1' // Tipo Plano = Individual/Familiar
cWhere += ' BG9_TIPO = '1' ' // Pessoa Fisica
Else
cWhere += ' BG9_TIPO = '2' ' // Pessoa Juridica
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Where BQC-SubContrato ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If alltrim(cTipPla) <> '1' // Tipo Plano = Coletivo
cWhere += ' AND '
cWhere += ' BQC_FILIAL = '' + xFilial('BQC') + '' AND '
cWhere += ' SUBSTRING(BQC_CODIGO,1,4) = BA3_CODINT AND '
cWhere += ' SUBSTRING(BQC_CODIGO,5,4) = BA3_CODEMP AND '
cWhere += ' BQC_NUMCON = BA3_CONEMP AND '
cWhere += ' BQC_VERCON = BA3_VERCON AND '
cWhere += ' BQC_SUBCON = BA3_SUBCON AND '
cWhere += ' BQC_VERSUB = BA3_VERSUB AND '
cWhere += cNameBQC + '.D_E_L_E_T_ <> '*' AND '
If alltrim(cTipPla) == '2' // Tipo Plano = Coletivo sem patrocinador
cWhere += ' BQC_PATROC = '0' ' // sem patrocinador
Else
cWhere += ' BQC_PATROC = '1' ' // com patrocinador
Endif
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Seleciona registros ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cFiltro := 'SELECT BA1_NOMUSR, ' +cNameBA1
cFiltro += '.R_E_C_N_O_ AS REGBA1, ' + cNameBA3 + '.R_E_C_N_O_ AS REGBA3 '
cFiltro += cFrom
cFiltro += cWhere
PLSQuery(cFiltro,'BA1QRY')
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Processa registros selecionados ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
While ! BA1QRY->(Eof())
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Posiciona BA1
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
BA1->(dbGoTo(BA1QRY->REGBA1))
BA3->(dbGoTo(BA1QRY->REGBA3))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Verifica se no fim do periodo o beneficiario estava bloqueado. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cQryBloq := ' SELECT BCA_TIPO, BCA_DATA, BCA_MOTBLO, BCA_NIVBLQ FROM ' + cNameBCA
cQryBloq += ' WHERE BCA_FILIAL = '' + xFilial('BCA') + '' AND BCA_MATRIC = '' + BA1->BA1_CODINT + BA1->BA1_CODEMP + BA1->BA1_MATRIC + '' AND'
cQryBloq += ' BCA_TIPREG = '' + BA1->BA1_TIPREG + '' AND'
cQryBloq += ' BCA_DATA <= '' + dtos(dDatFim) + '' AND '
cQryBloq += cNameBCA + '.D_E_L_E_T_ <> '*' '
cQryBloq += ' ORDER BY BCA_DATA, R_E_C_N_O_'
PLSQuery(cQryBloq,'BCAQRY')
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Se nao existe historico de bloqueio do Usuario e ³
//³ a data de bloqueio do usuario eh anterior ao periodo do SIB ³
//³ -> despreza o usuario ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If BCAQRY->(eof()) .and. ;
! empty(BA1->BA1_DATBLO) .and. ;
dtos(BA1->BA1_DATBLO) < dtos(dDatIni)
BCAQRY->(DbCloseArea())
BA1QRY->(DbSkip())
Loop
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Inicializa variaveis ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
lTemCob := .F.
lBenBlo := .F.
lBlqAns := .F.
dDatBlo := StoD('')
BI3->(DbSetOrder(1))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Processa historico de bloqueio ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
While ! BCAQRY->(eof())
lBlqAns := .F.
Do Case
Case BCAQRY->BCA_NIVBLQ == 'U' // Nivel de Usuario
If BG3->(MsSeek(xFilial('BG3')+BCAQRY->BCA_MOTBLO))
If ! empty(BG3->BG3_BLQANS)
lBlqAns := .T.
Endif
Endif
Case BCAQRY->BCA_NIVBLQ == 'F' // Nivel de Familia
If BG1->(MsSeek(xFilial('BG1')+BCAQRY->BCA_MOTBLO))
If ! empty(BG1->BG1_BLQANS)
lBlqAns := .T.
Endif
Endif
Case BCAQRY->BCA_NIVBLQ == 'S' // Nivel de Sub-Contrato
If BQU->(MsSeek(xFilial('BQU')+BCAQRY->BCA_MOTBLO))
If ! empty(BQU->BQU_BLQANS)
lBlqAns := .T.
Endif
Endif
EndCase
If lBlqAns .and. BCAQRY->BCA_TIPO == '0' // Bloqueio
lBenBlo := .T.
dDatBlo := BCAQRY->BCA_DATA
Else
lBenBlo := .F.
dDatBlo := StoD('')
Endif
BCAQRY->(dbSkip())
Enddo
BCAQRY->(DbCloseArea())
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Despreza usuario bloqueado antes da data inicial ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If ! empty(dDatBlo) .and. dDatBlo < dDatIni
BA1QRY->(dbSkip())
Loop
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Acumula qtd e inicializa variaveis ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nTotBenef ++
nQtdBenef ++
nDiasCar1 := 0
If Empty(BA1->BA1_CODPLA)
cCodPla := BA3->BA3_CODPLA
cVersao := BA3->BA3_VERSAO
Else
cCodPla := BA1->BA1_CODPLA
cVersao := BA1->BA1_VERSAO
Endif
i := 1
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Processa vetor aSIP ... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
While i <= len(aSipExp)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Calcula exposto... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
lTemCob := .F.
nDiasCar := aSipExp[i,3]
dAuxIni := Max(BA1->BA1_DATCAR + nDiasCar,dDatIni)
dAuxFim := Min(If(Empty(dDatBlo),dDatFim,dDatBlo),dDatFim)
If dAuxFim > dAuxIni
nDiasExp := dAuxFim - dAuxIni
Else
nDiasExp := 0
Endif
If nDiasExp > 0
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Verifica se for item da internacao 15 ou 1.5 verifica cobertura no produto do usuario ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
lValBI3 := .F.
nOldi := i
If aSipExp[i,1] <> '1.05'
lTemCob := .T.
Else //caso seja o item internacao faz a verificacao no produto
nPosBI3 := Ascan(aProcBI3,{ |x| x[1] == xFilial('BI3')+BA1->BA1_CODINT+cCodPla+cVersao })
If nPosBI3 == 0
BI3->(MsSeek(xFilial('BI3')+BA1->BA1_CODINT+cCodPla+cVersao))
If Empty(BI3->BI3_CODSEG) .or. BI3->BI3_CODSEG $ cSegInt
lValBI3 := .T.
lTemCob := .T.
Endif
aadd(aProcBI3,{xFilial('BI3')+BA1->BA1_CODINT+cCodPla+cVersao,lValBI3,BI3->BI3_CODSEG })
Else
If Empty(aProcBI3[nPosBI3,3]) .or. aProcBI3[nPosBI3,3] $ cSegInt
lValBI3 := .T.
lTemCob := .T.
Endif
Endif
If ! lTemCob
nDiasExp := 0
Endif
Endif
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Acumula valores no item... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aSipExp[i,4] := nDiasExp
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Pula para proxima ocorrencia do vetor aSIP ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
i++
EndDo
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Acessa proximo registro ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
BA1QRY->(DbSkip())
EndDo
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Fecha area de trabalho ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
BA1QRY->(DbCloseArea())
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Fim da funcao ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Return(aSipExp)
||Preview||
||Veja também||
||Idioma|| Português(Brasil)
||Versões|| Versões_Anteriores
||Sistemas Operacionais Suportados||Todos
||Compatível com as Bases de Dados||Todas
||Updates||
||Parâmetros|| paramixb[1] Array of Record Operadora
paramixb[2] Array of Record empresa inicial
paramixb[3] Array of Record empresa final
paramixb[4] Array of Record Matricula Inicial
paramixb[5] Array of Record Matricula Final
paramixb[6] Array of Record Data Inicio da Geração
paramixb[7] Array of Record Data Fim da Geração
paramixb[8] Array of Record Codigo do tipo de plano a ser gerado
paramixb[9] Array of Record Descrição do tipo de plano a ser gerado
paramixb[10] Array of Record Codigo do Grupo de Beneficiario a ser gerado
paramixb[11] Array of Record Descrição do Grupo de Beneficiario a ser gerado
paramixb[12] Array of Record Empresa que serão ignoradas na geração
paramixb[13] Array of Record Indice para a geração do grupo de exposto
paramixb[14] Array of Record Array contendo os valores de expostos
||Retorno|| Vetor aSipExp com valores de expostos
||Eventos de chamada do Ponto de Entrada||
||Variáveis||
||Programa Fonte|| PLSM130.PRW
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas