Márcia Alvarez Posted February 8, 2011 Topic Count: 2 Topics Per Day: 0.00 Content Count: 6 Content Per Day: 0.00 Reputation: 0 Achievement Points: 50 Solved Content: 0 Days Won: 0 Status: Offline Report Posted February 8, 2011 A TOTVS disponibilizou a formula abaixo, mas não sei como utilizar? Temos três opções de planos de saúde cada um com seu evento com tabelas e valores diferenciados, e iremos proporcionalizar os descontos para o titular e dependentes, como devo utilizar esta formula para preencher a pasta criada de historico de assistência médica? SALVAVALDEP (1º Parâmetro, 2º Parâmetro) 1º Parâmetro: Deverá informar o número do beneficiário. Sempre que o beneficiário for o funcionário deverá informar 0(zero). 2º Parâmetro: Deverá informar o valor do desconto deste beneficiário. DECL DEP,SOMADEP,SOMAFUN; SETVAR(DEP,1); SETVAR(SOMADEP,0); REPITA SE TABDEP ('INCASSISTMEDICA' ,'V', DEP)=1 ENTAO SE NDEPIDADE (DEP,HOJE)<=18 ENTAO SETVAR(SOMADEP,SOMADEP+121) SALVAVALDEP(DEP,121) SENAO SE NDEPIDADE (DEP,HOJE)<=23 ENTAO SETVAR(SOMADEP,SOMADEP+189) SALVAVALDEP(DEP,189) SENAO 0 FIMSE FIMSE FIMSE; SETVAR(DEP,DEP+1) ATE DEP=10; SE TABCOMPL('ASSISTENCIAMEDICA','S')='S' ENTAO SE IDADE(HOJE)<=18 ENTAO SETVAR(SOMAFUN,SOMAFUN+121) SALVAVALDEP(0,121) SENAO SE IDADE(HOJE)<=23 ENTAO SETVAR(SOMAFUN,SOMAFUN+189) SALVAVALDEP(0,189) SENAO 0 FIMSE FIMSE FIMSE; SOMADEP+SOMAFUN Obrigada, Márcia
Excluído Posted March 3, 2011 Topic Count: 68 Topics Per Day: 0.01 Content Count: 997 Content Per Day: 0.14 Reputation: 4 Achievement Points: 5,604 Solved Content: 0 Days Won: 5 Status: Offline Age: 53 Report Posted March 3, 2011 Alguém está usando essa fórmula, está funcionando?
Luis Valadares Posted March 9, 2011 Topic Count: 8 Topics Per Day: 0.00 Content Count: 122 Content Per Day: 0.02 Reputation: 3 Achievement Points: 703 Solved Content: 0 Days Won: 2 Status: Offline Age: 51 Report Posted March 9, 2011 Tentei usar aqui proporcionalizando pelo numero de dependentes (mais o funcionário). Também não funcionou (eis a formula abaixo). Abri o chamado com a TOTVS e a mesma pediu pra eu acessar a consultoria (cobrada o minuto). Formula jogada no evento + marcação do campo de assistência em incidências do dependente + Evento com o valor no código fixo DECL DEP,VALMED; SETVAR(VALMED,(CF('133') / (DA + 1))); SETVAR(DEP,1); REPITA SE TABDEP ('INCASSISTMEDICA' ,'V', DEP)=1 ENTAO SALVAVALDEP(DEP,VALMED) SENAO 0 FIMSE; SETVAR(DEP,DEP+1) ATE DEP=12; SALVAVALDEP(0,VALMED); CF('133')
Jair - Fórmula Posted March 9, 2011 Topic Count: 946 Topics Per Day: 0.13 Content Count: 9,184 Content Per Day: 1.26 Reputation: 459 Achievement Points: 109,775 Solved Content: 0 Days Won: 266 Status: Offline Age: 53 Device: Windows Report Posted March 9, 2011 Nao tem documentacao explicando como usar a funcao, e ligando la estao falando pra acessar a consultoria paga ? ??
Luis Valadares Posted March 9, 2011 Topic Count: 8 Topics Per Day: 0.00 Content Count: 122 Content Per Day: 0.02 Reputation: 3 Achievement Points: 703 Solved Content: 0 Days Won: 2 Status: Offline Age: 51 Report Posted March 9, 2011 Não, Jair ! Documentação, tem ! É o próprio help e váárias telas interligadas explicando como configurar a formula, parametrização de dependentes, eventos (cc), etc ! O problema é justamente esse, o pessoal do suporte considera que não consegui fazer e fecha minha ocorrência explicando pra eu procurar a consultoria. Estou vendo agora que outras pessoas estão com o mesmo problema.
Nik Posted March 10, 2011 Topic Count: 101 Topics Per Day: 0.02 Content Count: 456 Content Per Day: 0.07 Reputation: 0 Achievement Points: 3,290 Solved Content: 0 Days Won: 0 Status: Offline Age: 50 Report Posted March 10, 2011 Bem... pessoal Eu como precisava fazer a toque de caixa, todos os meses do ano de 2010, criei uma sentença onde pegava o valor pago pelo funcionário, referente a convênio e dividia pelos dependentes, pois no meu caso o processo é mais simples. E por não conseguir também usar a formula, estou pensando em fazer uma sp e jogar em um relatório e todo mês alguém do DP roda ele, somente para alimentar a tabela. Sei lá, mas por enquanto me parece a melhor situação, tendo em vista que a variável não apresentou retorno algum. NIK
Luis Valadares Posted March 10, 2011 Topic Count: 8 Topics Per Day: 0.00 Content Count: 122 Content Per Day: 0.02 Reputation: 3 Achievement Points: 703 Solved Content: 0 Days Won: 2 Status: Offline Age: 51 Report Posted March 10, 2011 Alguém mais abriu ocorrência com o suporte ?
Si Souza Posted March 11, 2011 Topic Count: 0 Topics Per Day: 0 Content Count: 2 Content Per Day: 0.00 Reputation: 0 Achievement Points: 10 Solved Content: 0 Days Won: 0 Status: Offline Age: 50 Report Posted March 11, 2011 Pessoal, boa tarde! Desenvolvi a fórmula para dois planos de saúde, de acordo com a idade do titular/dependente. Consultem e verifique se ajuda. A fórmula foi apropriada no desconto do convênio do Dependente que insere os dados na PFHSTASSMED, porém notem que na Versão 10.83.0(3) ao realizar a rotina de CANCELAMENTO DE MOVIMENTO, para um funcionário que tem registros na tabela, o sistema apresenta a mensagem de erro: Erro de cálculo: Invalid colunm name ‘D066’ Executamos o profile e existe um erro ao excluir os registros da tabela: DELETE FROM PFHSTASSMED WHERE (CODCOLIGADA = 4) AND (CHAPA = '130179') AND (ANOCOMP = 2011) AND (MESCOMP = 1) AND (NROPERIODO = 3)AND (CODEVENTO = 'D066') AND (CODEVENTO IN (D066)) AND (TIPOVALOR IN (0, 2, 3, 5)).... Segue a fórmula para atender dois planos diferentes: Decl vAssMed, vValor, vTabela, vValorDep; SETVAR(vAssMed,TABCOMPL ('CCBENASSMED' , 'V')); SE vAssMed = 0 ENTAO 0 SENAO SE vAssMed = 1 ENTAO SETVAR(vTabela,'AM') SENAO SE vAssMed = 2 ENTAO SETVAR(vTabela,'AM1') SENAO 0 FIMSE FIMSE; SE EXECSQL('IDEPASSMED') = VERDADE ENTAO REPITA SETVAR(vValorDep,T(vTabela,NDEPIDADE(RESULTSQL('IDEPASSMED','NRODEPEND') ,ULTDIAMES(MTDATA(1,MES,ANO))))); SALVAVALDEP(RESULTSQL('IDEPASSMED','NRODEPEND'),vValorDep); SETVAR(vValor,T(vTabela,NDEPIDADE(RESULTSQL('IDEPASSMED','NRODEPEND') ,ULTDIAMES(MTDATA(1,MES,ANO)))) + vValor) ATE ProxRegSQL( 'IDEPASSMED' ) = FALSO FIMSE; vValor FIMSE
Cleiton Souza Posted March 12, 2011 Topic Count: 69 Topics Per Day: 0.01 Content Count: 339 Content Per Day: 0.05 Reputation: 12 Achievement Points: 2,393 Solved Content: 0 Days Won: 8 Status: Offline Age: 48 Report Posted March 12, 2011 Pessoal, Aqui desenvolvi a fórmula na minha empresa, pois utilizamos vários tipos de planos e estes estão e Valores Fixos. Aqui funciona perfeitamente. Decl DAM, VAM, DC, DE; SetVar(DAM,0); SetVar(VAM, 0); SetVar(DC,1); SetVar(DE,0); /*DESCONTO FUNCIONÁRIO*/ SE PERIODO=4 ENTAO 0 SENAO SE (TABCOMPL('AMEDICA1','S')='S') ENTAO SetVar (VAM, (F ('0033'))/2); SALVAVALDEP(0,VAM) Senao SE (TABCOMPL('AMEDICA2','S')='S') ENTAO SetVar (VAM, (F ('0034'))/2); SALVAVALDEP(0,VAM) Senao SE (TABCOMPL('AMEDICA3','S')='S') ENTAO SetVar (VAM, (F ('0036'))/2); SALVAVALDEP(0,VAM) Senao SetVar(VAM,0) FimSe FimSe FimSe FimSe; /*VALOR DEPENDENTES*/ SE PERIODO=4 ENTAO 0 SENAO REPITA Se TABCOMPLDEPEND ('AMEDICA1','S',DC)='S' Entao SetVar (DE, DE+(F('0033')/2)); SALVAVALDEP(DC,(F('0033')/2)) Senao Se TABCOMPLDEPEND ('AMEDICA2','S',DC)='S' Entao SetVar (DE, DE+(F('0034')/2)); SALVAVALDEP(DC,(F('0034')/2)) Senao Se TABCOMPLDEPEND ('AMEDICA3','S',DC)='S' Entao SetVar (DE, DE+(F('0036')/2)); SALVAVALDEP(DC,(F('0036')/2)) Senao SetVar (DE,DE) FimSe FimSe FimSe; SetVar (DC,DC+1) ATE (DC=10) FimSe; SetVar (DAM,VAM+DE) ********************** Espero ter ajudado.
Fernanda Rocha Posted March 24, 2011 Topic Count: 13 Topics Per Day: 0.00 Content Count: 90 Content Per Day: 0.01 Reputation: 0 Achievement Points: 565 Solved Content: 0 Days Won: 0 Status: Offline Age: 39 Report Posted March 24, 2011 Pessoal, No blog TOTVS CONNECT tem um "Como Fazer" explicando essa parametrização, utilização da fórmula, etc. Acredito que vale a pena dar uma olhada: http://totvsconnect.blogspot.com/2010/11/como-fazer-historico-de-assistencia_22.html Se não me engano, a variável SALVALDEP não busca valor anterior, ela somente armazena a partir de quando foi criada/utilizada. Logo, para os meses de Jan e Fev, acredito que deverá ser lançado direto no sistema. E quanto mais meses passarem, mais meses a serem lançados. Espero que ajude. Abraços! Fernanda.
Eugênio Posted March 26, 2011 Topic Count: 22 Topics Per Day: 0.00 Content Count: 124 Content Per Day: 0.02 Reputation: 2 Achievement Points: 828 Solved Content: 0 Days Won: 1 Status: Offline Age: 47 Report Posted March 26, 2011 Pessoal Fiz esta Fórmula que faz os calculos e funcionou bacana. Quem quiser está a disposição DECL DEP,SOMADEP,SOMAFUN,VALORDEP,NRODEP; SETVAR (NRODEP,DA); SE NRODEP=0 ENTAO SETVAR(NRODEP,1) SENAO SETVAR(NRODEP,DA) FIMSE; SETVAR (VALORDEP, CF ('014')/NRODEP ); SETVAR(DEP,1); SETVAR(SOMADEP,0); REPITA SE TABDEP ('INCASSISTMEDICA' ,'V', DEP )=1 ENTAO SETVAR(SOMADEP,SOMADEP+VALORDEP); SALVAVALDEP(DEP,VALORDEP) SENAO 0 FIMSE ; SETVAR(DEP,DEP+1 ) ATE DEP=10; SE TABCOMPL('ASSISTENCIAMEDICA','S')='S' E DEP=NRODEP ENTAO SETVAR(SOMADEP,SOMADEP+VALORDEP) ; SALVAVALDEP(DEP,VALORDEP) SENAO 0 FIMSE ; SOMADEP+SOMAFUN
Luciano DP Posted March 31, 2011 Topic Count: 21 Topics Per Day: 0.00 Content Count: 269 Content Per Day: 0.05 Reputation: 15 Achievement Points: 1,574 Solved Content: 0 Days Won: 12 Status: Offline Age: 43 Report Posted March 31, 2011 Bom dia a todos!! Hoje utilizo esta fórmula parea o desconto do plano de saúde, alguém poderia me ajudar inserindo na posição correta a variável SALVAVALDEP para o preenchimento do histórico no cadastro do funcionário? Obrigado DECL(FE,FQ,FS,AAV,CONT); SE TABCOMPL('TPBRAD','S') <> '' ENTAO SE TABCOMPL('TPBRAD','S') = '001' ENTAO SETVAR(FE,FE + (T('TNE1',IDADE(ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC) / 100) ) ) SENAO SE TABCOMPL('TPBRAD','S') = '002' ENTAO SETVAR(FQ,FQ + (T('TNQ2',IDADE(ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC) / 100) ) ) SENAO SE TABCOMPL('TPBRAD','S') = '003' ENTAO SETVAR(FS,FS + (T('SIQ3',IDADE(ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC) / 100) ) ) /* Quando o funcionário assume a diferença em relação ao plano superior. SENAO SETVAR(FQ,FQ + (T('TNE1',IDADE(ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC)) / 100) + T('TNQ2',IDADE(ULTDIAMES(MTDATA(1,MES,ANO)))) - T('TNE1',IDADE(ULTDIAMES(MTDATA(1,MES,ANO))))) */ FIMSE FIMSE FIMSE; SE EXECSQL('NDEPEND') = 1 ENTAO SETVAR(CONT,CONT+1); REPITA SE ((TABDEP('GRAUPARENTESCO','S',CONT) = '1' E NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))) < 25) OU TABDEP('GRAUPARENTESCO','S',CONT) = '3' OU TABDEP('GRAUPARENTESCO','S',CONT) = '5' OU TABDEP('GRAUPARENTESCO','S',CONT) = 'C') E TABCOMPLDEPEND('TPBRAD','S',CONT) = '001' ENTAO SETVAR(FE,FE + (T('TNE1',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC)) /100 ) ) SENAO SE ((TABDEP('GRAUPARENTESCO','S',CONT) = '1' E NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))) < 29) OU TABDEP('GRAUPARENTESCO','S',CONT) = '3' OU TABDEP('GRAUPARENTESCO','S',CONT) = '5' OU TABDEP('GRAUPARENTESCO','S',CONT) = 'C') E TABCOMPLDEPEND('TPBRAD','S',CONT) = '002' ENTAO SETVAR(FQ,FQ + (T('TNQ2',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC)) /100 ) ) SENAO /* Quando o funcionário assume a diferença em relação ao plano superior. SETVAR(FQ,FQ + (T('TQ2',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC)) /100) + T('TNQ2',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO)))) - T('TNE1',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO)))) ) SENAO */ SE ((TABDEP('GRAUPARENTESCO','S',CONT) = '1' E NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))) < 29) OU TABDEP('GRAUPARENTESCO','S',CONT) = '3' OU TABDEP('GRAUPARENTESCO','S',CONT) = '5' OU TABDEP('GRAUPARENTESCO','S',CONT) = 'C') E TABCOMPLDEPEND('TPBRAD','S',CONT) = '003' ENTAO SETVAR(FQ,FQ + (T('SIQ3',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC)) /100 ) ) SENAO SE TABCOMPLDEPEND('TPBRAD','S',CONT) = '001' ENTAO SETVAR(FE,FE + T('TNE1',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))) SENAO SE TABCOMPLDEPEND('TPBRAD','S',CONT) = '002' ENTAO SETVAR(FQ,FQ + T('TNQ2',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))) SENAO SE TABCOMPLDEPEND('TPBRAD','S',CONT) = '003' ENTAO SETVAR(FS,FS + T('SIQ3',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))) SENAO 0 FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE; SETVAR(AAV,AAV + TABCOMPLDEPEND('VALUNI','V',CONT)); SETVAR(CONT,CONT+1) ATE CONT > RESULTSQL('NDEPEND','QTDDEP') SENAO 0 FIMSE; FE+FQ+FS+AAV SENAO 0 FIMSE /* DECL(FE,FQ,FS,AAV,CONT); SE TABCOMPL('TPBRAD','S') <> '' ENTAO SE TABCOMPL('TPBRAD','S') = '001' ENTAO SETVAR(FE,FE + (T('TNE1',IDADE(ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC) / 100) ) ) SENAO SETVAR(FQ,FQ + (T('TNE1',IDADE(ULTDIAMES(MTDATA(1,MES,ANO))))*T('0005',RC)) + T('TNQ2',IDADE(ULTDIAMES(MTDATA(1,MES,ANO)))) - T('TNE1',IDADE(ULTDIAMES(MTDATA(1,MES,ANO))))) FIMSE; SE EXECSQL('NDEPEND') = 1 ENTAO SETVAR(CONT,CONT+1); REPITA SE ((TABDEP('GRAUPARENTESCO','S',CONT) = '1' E NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))) < 25) OU TABDEP('GRAUPARENTESCO','S',CONT) = '3' OU TABDEP('GRAUPARENTESCO','S',CONT) = '5' OU TABDEP('GRAUPARENTESCO','S',CONT) = 'C') E TABCOMPLDEPEND('TPBRAD','S',CONT) = '001' ENTAO SETVAR(FE,FE + (T('TNE1',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC)) /100 ) ) SENAO SE ((TABDEP('GRAUPARENTESCO','S',CONT) = '1' E NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))) < 25) OU TABDEP('GRAUPARENTESCO','S',CONT) = '3' OU TABDEP('GRAUPARENTESCO','S',CONT) = '5' OU TABDEP('GRAUPARENTESCO','S',CONT) = 'C') E TABCOMPLDEPEND('TPBRAD','S',CONT) = '002' ENTAO SETVAR(FQ,FQ + (T('TNE1',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))* (T('0005',RC)) /100) + T('TNQ2',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO)))) - T('TNE1',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO)))) ) SENAO SE TABCOMPLDEPEND('TPBRAD','S',CONT) = '001' ENTAO SETVAR(FS,FS + T('SIQ3',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))) SENAO SE TABCOMPLDEPEND('TPBRAD','S',CONT) = '002' ENTAO SETVAR(FS,FS + T('SIQ3',NDEPIDADE(CONT,ULTDIAMES(MTDATA(1,MES,ANO))))) SENAO 0 FIMSE FIMSE FIMSE FIMSE; SETVAR(AAV,AAV + TABCOMPLDEPEND('VALUNI','V',CONT)); SETVAR(CONT,CONT+1) ATE CONT > RESULTSQL('NDEPEND','QTDDEP') SENAO 0 FIMSE; FE+FQ+FS+AAV SENAO 0 FIMSE */
Excluído Posted May 20, 2011 Topic Count: 68 Topics Per Day: 0.01 Content Count: 997 Content Per Day: 0.14 Reputation: 4 Achievement Points: 5,604 Solved Content: 0 Days Won: 5 Status: Offline Age: 53 Report Posted May 20, 2011 Pessoal, usei uma das fórmulas descritas aqui porém não está inserindo dados no "Histórico Assistência à Saúde", alguém sabe se existe algum detalhe por mim esquecido?
Luis Valadares Posted May 20, 2011 Topic Count: 8 Topics Per Day: 0.00 Content Count: 122 Content Per Day: 0.02 Reputation: 3 Achievement Points: 703 Solved Content: 0 Days Won: 2 Status: Offline Age: 51 Report Posted May 20, 2011 Jefferson, além do detalhe das versões ... tinham algumas com problemas, vc verificou se não está usando alguma das comentadas aqui ?
Excluído Posted May 20, 2011 Topic Count: 68 Topics Per Day: 0.01 Content Count: 997 Content Per Day: 0.14 Reputation: 4 Achievement Points: 5,604 Solved Content: 0 Days Won: 5 Status: Offline Age: 53 Report Posted May 20, 2011 Usei a sua Luis Valadares, rs rs rs. DECL DEP,VALMED; SETVAR(VALMED,(CF('133') / (DA + 1))); SETVAR(DEP,1); REPITA SE TABDEP ('INCASSISTMEDICA' ,'V', DEP)=1 ENTAO SALVAVALDEP(DEP,VALMED) SENAO 0 FIMSE; SETVAR(DEP,DEP+1) ATE DEP=12; SALVAVALDEP(0,VALMED); CF('133')
Luis Valadares Posted May 20, 2011 Topic Count: 8 Topics Per Day: 0.00 Content Count: 122 Content Per Day: 0.02 Reputation: 3 Achievement Points: 703 Solved Content: 0 Days Won: 2 Status: Offline Age: 51 Report Posted May 20, 2011 Foi mal, é que ja tratei disso em tantos posts. Tivemos problemas de versão. No meu caso consegui fazer funcionar a formula na versão Labore 10.83.10(29). Tivemos pessoas com problemas da 11.00 também. Ve esse post:
Excluído Posted May 20, 2011 Topic Count: 68 Topics Per Day: 0.01 Content Count: 997 Content Per Day: 0.14 Reputation: 4 Achievement Points: 5,604 Solved Content: 0 Days Won: 5 Status: Offline Age: 53 Report Posted May 20, 2011 Pessoal, entrei em contato com o suporte e me foi enviada a "Versão Especial: 11.20.16 (22) minha versão anterior era a 11.20.10 (17) com essa nova versão ao efetuar o lançamento do evento de assistência médica o campo "Histórico Assistência à Saúde" é preenchido automaticamente, porém além de informar os valores por dependentes que estejam com o campo "Assistência Médica" marcado em Cadastros/Funcionários/Base Cálculo/Dependentes/Incidências, também é informado o valor do titular, no meu caso a regra de cálculo da assistência médica é muito simples, ou seja, R$ 35,00 por titular e R$ 35,00 por cada dependente, esse valor é informado manualmente lá nos códigos fixos, sendo assim preferi usar a fórmula postado por nosso colega Luis Valadares, conforme abaixo: DECL DEP,VALMED; SETVAR(VALMED,(CF('133') / (DA + 1))); SETVAR(DEP,1); REPITA SE TABDEP ('INCASSISTMEDICA' ,'V', DEP)=1 ENTAO SALVAVALDEP(DEP,VALMED) SENAO 0 FIMSE; SETVAR(DEP,DEP+1) ATE DEP=12; SALVAVALDEP(0,VALMED); CF('133')
Excluído Posted May 20, 2011 Topic Count: 68 Topics Per Day: 0.01 Content Count: 997 Content Per Day: 0.14 Reputation: 4 Achievement Points: 5,604 Solved Content: 0 Days Won: 5 Status: Offline Age: 53 Report Posted May 20, 2011 Detalhe apurado agora, no momento da emissão do Informe de Rendimentos é demonstrado o valor desmembrado, ou seja, por titular e dependente, porém o titular está com valor errado, exemplo: Janeiro/2011 Histórico Assistência à Saúde Titular R$ 35,00 Dependente A R$ 35,00 Dependente B R$ 35,00 Informe de Rendimentos Titular R$ 140,00 (= R$ 35 * 3 + R$ 35,00) Dependente A R$ 35,00 Dependente B R$ 35,00 Espero ter sido claro.
Edneyrh Posted September 18, 2012 Topic Count: 1 Topics Per Day: 0.00 Content Count: 5 Content Per Day: 0.00 Reputation: 0 Achievement Points: 35 Solved Content: 0 Days Won: 0 Status: Offline Report Posted September 18, 2012 Olá Pessoal, Poderiam me ajudar nessa fórmula: O que eu tenho parametrizado está assim: 1ª FORMULA Código: MA01 Texto: ((DA+1) * F('MA01')) * 0.5 2ª Fórmula Cógido: PLFILIAL Texto: SE TABCOMPL ('PLANOSAUDE', 'S')='' ENTAO 0 SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA01' ENTAO FOR('MA01') SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA02' ENTAO FOR('MA02') SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA03' ENTAO FOR('MA03') SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA04' ENTAO FOR('MA04') SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA05' ENTAO FOR('MA05') SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA06' ENTAO FOR('MA06') SENAO 0 FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE Como a fórmula de assistência médica está amarrada a outra, estou confuso onde amarrar a função SALVAVALDEP, se na primeira ou na segunda fórmula, talvez o ideal fosse contruir uma única formula.... Abraços e obrigado desde já pela força! Edney.-
Edneyrh Posted September 19, 2012 Topic Count: 1 Topics Per Day: 0.00 Content Count: 5 Content Per Day: 0.00 Reputation: 0 Achievement Points: 35 Solved Content: 0 Days Won: 0 Status: Offline Report Posted September 19, 2012 Olá Pessoal, Poderiam me ajudar nessa fórmula: O que eu tenho parametrizado está assim: 1ª FORMULA Código: MA01 Texto: ((DA+1) * F('MA01')) * 0.5 2ª Fórmula Cógido: PLFILIAL Texto: SE TABCOMPL ('PLANOSAUDE', 'S')='' ENTAO 0 SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA01' ENTAO FOR('MA01') SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA02' ENTAO FOR('MA02') SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA03' ENTAO FOR('MA03') SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA04' ENTAO FOR('MA04') SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA05' ENTAO FOR('MA05') SENAO SE TABCOMPL ('PLANOSAUDE', 'S')='MA06' ENTAO FOR('MA06') SENAO 0 FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE Como a fórmula de assistência médica está amarrada a outra, estou confuso onde amarrar a função SALVAVALDEP, se na primeira ou na segunda fórmula, talvez o ideal fosse contruir uma única formula.... Abraços e obrigado desde já pela força! Edney.- O jeito que encontrei foi criar uma única fórmula, achei menos complicado... Abraços!
Luciano DP Posted March 11, 2013 Topic Count: 21 Topics Per Day: 0.00 Content Count: 269 Content Per Day: 0.05 Reputation: 15 Achievement Points: 1,574 Solved Content: 0 Days Won: 12 Status: Offline Age: 43 Report Posted March 11, 2013 Pessoal, boa tarde! Já tentei de várias formas e não consegui inserir a variável SALVAVALDEP nesta fórmula, será que alguém pode me dar um help pois estou precisando com uma certa urgência. Obrigado! DECL(CONT,SOMA); SE EXECSQL('NDEPEND') = 1 ENTAO SETVAR(CONT,1); REPITA SE INCDEP (CONT , 1) = 1 ENTAO SETVAR(SOMA,SOMA + TABCOMPLDEPEND ('VALUNI' , 'V' , CONT)) SENAO 0 FIMSE; SETVAR(CONT,CONT+1) ATE CONT > RESULTSQL('NDEPEND' , 'QTDDEP'); SOMA SENAO 0 FIMSE; SE TABCOMPL ('TPUNI' , 'S') = '001' ENTAO ( ( F('UNI1') * (DA+1)) * T('0001',RC) ) + SOMA SENAO SE TABCOMPL ('TPUNI' , 'S') = '002' ENTAO ( ( ( F('UNI1') * (DA+1) ) * T('0001',RC) ) + ( ( F('UNI2') - F('UNI1') ) * ( DA+1) ) ) + SOMA SENAO SE TABCOMPL ('TPUNI' , 'S') = '003' ENTAO ( ( ( F('UNI1') * (DA+1) ) * T('0001',RC) ) + ( ( F('UNI3') - F('UNI1') ) * ( DA+1) ) ) + SOMA SENAO SE TABCOMPL ('TPUNI' , 'S') = '004' ENTAO ( ( ( F('UNI1') * (DA+1) ) * T('0001',RC) ) + ( ( F('UNI4') - F('UNI1') ) * ( DA+1) ) ) + SOMA SENAO 0 FIMSE FIMSE FIMSE FIMSE
Luciano DP Posted March 15, 2013 Topic Count: 21 Topics Per Day: 0.00 Content Count: 269 Content Per Day: 0.05 Reputation: 15 Achievement Points: 1,574 Solved Content: 0 Days Won: 12 Status: Offline Age: 43 Report Posted March 15, 2013 Pessoal, boa tarde! Já tentei de várias formas e não consegui inserir a variável SALVAVALDEP nesta fórmula, será que alguém pode me dar um help pois estou precisando com uma certa urgência. Obrigado! DECL(CONT,SOMA); SE EXECSQL('NDEPEND') = 1 ENTAO SETVAR(CONT,1); REPITA SE INCDEP (CONT , 1) = 1 ENTAO SETVAR(SOMA,SOMA + TABCOMPLDEPEND ('VALUNI' , 'V' , CONT)) SENAO 0 FIMSE; SETVAR(CONT,CONT+1) ATE CONT > RESULTSQL('NDEPEND' , 'QTDDEP'); SOMA SENAO 0 FIMSE; SE TABCOMPL ('TPUNI' , 'S') = '001' ENTAO ( ( F('UNI1') * (DA+1)) * T('0001',RC) ) + SOMA SENAO SE TABCOMPL ('TPUNI' , 'S') = '002' ENTAO ( ( ( F('UNI1') * (DA+1) ) * T('0001',RC) ) + ( ( F('UNI2') - F('UNI1') ) * ( DA+1) ) ) + SOMA SENAO SE TABCOMPL ('TPUNI' , 'S') = '003' ENTAO ( ( ( F('UNI1') * (DA+1) ) * T('0001',RC) ) + ( ( F('UNI3') - F('UNI1') ) * ( DA+1) ) ) + SOMA SENAO SE TABCOMPL ('TPUNI' , 'S') = '004' ENTAO ( ( ( F('UNI1') * (DA+1) ) * T('0001',RC) ) + ( ( F('UNI4') - F('UNI1') ) * ( DA+1) ) ) + SOMA SENAO 0 FIMSE FIMSE FIMSE FIMSE Alguém poderia dar um help aqui?
Camillafs Posted February 4 Topic Count: 1 Topics Per Day: 0.00 Content Count: 7 Content Per Day: 0.01 Reputation: 2 Achievement Points: 46 Solved Content: 0 Days Won: 2 Status: Offline Device: Windows Report Posted February 4 Pessoal, bom dia. Sei que ja se passaram anos dessa solicitação mas acho que pode ser valido inserir mais uma formula aqui,para o historico de dependente. Aqui trabalhamos com 4 tabelas de planos de saúde. Criei um campo complementar,dentro do cadastro de dependente, e associei a tabela de acordo com o plano escolhido. Ao recalcular o envelope, gerou corretamente o histórico do dependente, Espero que ajude! DECL DEP,SOMADEP,SOMAFUN; SETVAR(DEP,1); SETVAR(SOMADEP,1); REPITA /*SE TABDEP ('INCASSISTMEDICA' ,'V', DEP)=1 ENTAO*/ SE TABCOMPLDEPEND('ASSISTENCIAMEDICA','V',DEP)= '06' ENTAO SE NDEPIDADE (DEP,HOJE)<=18 ENTAO SALVAVALDEP(0,0158.23); SETVAR(SOMADEP,SOMADEP+158.23) SENAO SE NDEPIDADE (DEP,HOJE)<=23 ENTAO SALVAVALDEP(0,214.73); SETVAR(SOMADEP,SOMADEP+214.73) SENAO SE NDEPIDADE (DEP,HOJE)<=28 ENTAO SALVAVALDEP(0,236.20); SETVAR(SOMADEP,SOMADEP+236.20) SENAO SE NDEPIDADE (DEP,HOJE)<=33 ENTAO SALVAVALDEP(0,257.45); SETVAR(SOMADEP,SOMADEP+257.45) SENAO SE NDEPIDADE (DEP,HOJE)<=38 ENTAO SALVAVALDEP(0,261.30); SETVAR(SOMADEP,SOMADEP+261.30) SENAO SE NDEPIDADE (DEP,HOJE)<=43 ENTAO SALVAVALDEP(0,274.36); SETVAR(SOMADEP,SOMADEP+274.36) SENAO SE NDEPIDADE (DEP,HOJE)<=48 ENTAO SALVAVALDEP(0,388.77); SETVAR(SOMADEP,SOMADEP+388.77) SENAO SE NDEPIDADE (DEP,HOJE)<=53 ENTAO SALVAVALDEP(0,524.83); SETVAR(SOMADEP,SOMADEP+524.83) SENAO SE NDEPIDADE (DEP,HOJE)<=58 ENTAO SALVAVALDEP(0,629.78); SETVAR(SOMADEP,SOMADEP+629.78) SENAO SE NDEPIDADE (DEP,HOJE)> 58 ENTAO SALVAVALDEP(0,948.45); SETVAR(SOMADEP,SOMADEP+948.45); SETVAR(DEP,DEP+1) ATE DEP=10 FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE; SE TABCOMPLDEPEND('ASSISTENCIAMEDICA','V',DEP)= '07' ENTAO SE IDADE(HOJE)<=18 ENTAO SALVAVALDEP(0,226.79); SETVAR(SOMAFUN,SOMAFUN+226.79) SENAO SE IDADE(HOJE)<=23 ENTAO SALVAVALDEP(0,307.97); SETVAR(SOMAFUN,SOMAFUN+307.97) SENAO SE IDADE(HOJE)<=28 ENTAO SALVAVALDEP(0,338.75); SETVAR(SOMAFUN,SOMAFUN+338.75) SENAO SE IDADE(HOJE)<=33 ENTAO SALVAVALDEP(0,369.23); SETVAR(SOMAFUN,SOMAFUN+369.23) SENAO SE IDADE(HOJE)<=38 ENTAO SALVAVALDEP(0,374.77); SETVAR(SOMAFUN,SOMAFUN+374.77) SENAO SE IDADE(HOJE)<=43 ENTAO SALVAVALDEP(0,393.50); SETVAR(SOMAFUN,SOMAFUN+393.50) SENAO SE IDADE(HOJE)<=48 ENTAO SALVAVALDEP(0,557.58); SETVAR(SOMAFUN,SOMAFUN+557.58) SENAO SE IDADE(HOJE)<=53 ENTAO SALVAVALDEP(0,752.74); SETVAR(SOMAFUN,SOMAFUN+752.74) SENAO SE IDADE(HOJE)<=58 ENTAO SALVAVALDEP(0,903.28); SETVAR(SOMAFUN,SOMAFUN+903.28) SENAO SE IDADE(HOJE)>58 ENTAO SALVAVALDEP(0,1360.33); SETVAR(SOMAFUN,SOMAFUN+1360.33); SETVAR(DEP,DEP+1) ATE DEP=10; FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE; SE TABCOMPLDEPEND('ASSISTENCIAMEDICA','V',DEP)= '08' ENTAO SE IDADE(HOJE)<=18 ENTAO SALVAVALDEP(0,249.52); SETVAR(SOMAFUN,SOMAFUN+249.52) SENAO SE IDADE(HOJE)<=23 ENTAO SALVAVALDEP(0,338.84); SETVAR(SOMAFUN,SOMAFUN+338.84) SENAO SE IDADE(HOJE)<=28 ENTAO SALVAVALDEP(0,372.71); SETVAR(SOMAFUN,SOMAFUN+372.71) SENAO SE IDADE(HOJE)<=33 ENTAO SALVAVALDEP(0,406.26); SETVAR(SOMAFUN,SOMAFUN+406.26) SENAO SE IDADE(HOJE)<=38 ENTAO SALVAVALDEP(0,412.35); SETVAR(SOMAFUN,SOMAFUN+412.35) SENAO SE IDADE(HOJE)<=43 ENTAO SALVAVALDEP(0,432.96); SETVAR(SOMAFUN,SOMAFUN+432.96) SENAO SE IDADE(HOJE)<=48 ENTAO SALVAVALDEP(0,613.50); SETVAR(SOMAFUN,SOMAFUN+613.50) SENAO SE IDADE(HOJE)<=53 ENTAO SALVAVALDEP(0,828.22); SETVAR(SOMAFUN,SOMAFUN+828.22) SENAO SE IDADE(HOJE)<=58 ENTAO SALVAVALDEP(0,993.86); SETVAR(SOMAFUN,SOMAFUN+993.86) SENAO SE IDADE(HOJE)>58 ENTAO SALVAVALDEP(0,1496.75); SETVAR(SOMAFUN,SOMAFUN+1496.75); SETVAR(DEP,DEP+1) ATE DEP=10; FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE SE TABCOMPLDEPEND('ASSISTENCIAMEDICA','V',DEP)= '09' ENTAO SE IDADE(HOJE)<=18 ENTAO SALVAVALDEP(0,68.41); SETVAR(SOMAFUN,SOMAFUN+68.41) SENAO SE IDADE(HOJE)<=23 ENTAO SALVAVALDEP(0,92.90); SETVAR(SOMAFUN,SOMAFUN+92.90) SENAO SE IDADE(HOJE)<=28 ENTAO SALVAVALDEP(0,102.19); SETVAR(SOMAFUN,SOMAFUN+102.19) SENAO SE IDADE(HOJE)<=33 ENTAO SALVAVALDEP(0,111.39); SETVAR(SOMAFUN,SOMAFUN+111.39) SENAO SE IDADE(HOJE)<=38 ENTAO SALVAVALDEP(0,113.06); SETVAR(SOMAFUN,SOMAFUN+113.06) SENAO SE IDADE(HOJE)<=43 ENTAO SALVAVALDEP(0,118.71); SETVAR(SOMAFUN,SOMAFUN+118.71) SENAO SE IDADE(HOJE)<=48 ENTAO SALVAVALDEP(0,168.21); SETVAR(SOMAFUN,SOMAFUN+168.21) SENAO SE IDADE(HOJE)<=53 ENTAO SALVAVALDEP(0,227.08); SETVAR(SOMAFUN,SOMAFUN+227.08) SENAO SE IDADE(HOJE)<=58 ENTAO SALVAVALDEP(0,272.50); SETVAR(SOMAFUN,SOMAFUN+272.50) SENAO SE IDADE(HOJE)>58 ENTAO SALVAVALDEP(0,410.39); SETVAR(SOMAFUN,SOMAFUN+410.39); FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE SETVAR(DEP,DEP+1) ATE DEP=10; SOMADEP+SOMAFUN
Jair - Fórmula Posted February 11 Topic Count: 946 Topics Per Day: 0.13 Content Count: 9,184 Content Per Day: 1.26 Reputation: 459 Achievement Points: 109,775 Solved Content: 0 Days Won: 266 Status: Offline Age: 53 Device: Windows Report Posted February 11 Só uma coisa, acho que está errada sua fórmula. Ela está calculando todos os blocos e salvando sempre no DEP(0), que é o funcionário, e não salvando os valores por dependente, como deveria. E tem bloco que usa o SOMADEP e ora o SOMAFUN... não entendi se isso estaria certo mesmo ou não. Uma dica para facilitar a manutenção e até atualizações nesta sua fórmula @Camillafs, é usar tabelas, onde segundo a idade, você define o valor a ser usado. Neste seu caso, é só criar uma tabela conforme o tipo de ASSISTENCIAMEDICA (conforme seu campo complementar), 06, outra para o 07, 08 e 09. O que você testa aqui nessa parte abaixo em vários blocos: (TABCOMPLDEPEND('ASSISTENCIAMEDICA','V',DEP)= 'XX' Você usando os valores de Idade como faixas das tabelas, pode inserir os valores que serão usados para cada faixa, e otimiza assim a sua fórmula. Cada bloco só vai alterar a tabela, de acordo com cada caso, por exemplo: Você retira: ... SE TABCOMPLDEPEND('ASSISTENCIAMEDICA','V',DEP)= '06' ENTAO SE NDEPIDADE (DEP,HOJE)<=18 ENTAO SALVAVALDEP(0,0158.23); SETVAR(SOMADEP,SOMADEP+158.23) SENAO SE NDEPIDADE (DEP,HOJE)<=23 ENTAO SALVAVALDEP(0,214.73); SETVAR(SOMADEP,SOMADEP+214.73) SENAO SE NDEPIDADE (DEP,HOJE)<=28 ENTAO SALVAVALDEP(0,236.20); SETVAR(SOMADEP,SOMADEP+236.20) SENAO SE NDEPIDADE (DEP,HOJE)<=33 ENTAO SALVAVALDEP(0,257.45); SETVAR(SOMADEP,SOMADEP+257.45) SENAO SE NDEPIDADE (DEP,HOJE)<=38 ENTAO SALVAVALDEP(0,261.30); SETVAR(SOMADEP,SOMADEP+261.30) SENAO SE NDEPIDADE (DEP,HOJE)<=43 ENTAO SALVAVALDEP(0,274.36); SETVAR(SOMADEP,SOMADEP+274.36) SENAO SE NDEPIDADE (DEP,HOJE)<=48 ENTAO SALVAVALDEP(0,388.77); SETVAR(SOMADEP,SOMADEP+388.77) SENAO SE NDEPIDADE (DEP,HOJE)<=53 ENTAO SALVAVALDEP(0,524.83); SETVAR(SOMADEP,SOMADEP+524.83) SENAO SE NDEPIDADE (DEP,HOJE)<=58 ENTAO SALVAVALDEP(0,629.78); SETVAR(SOMADEP,SOMADEP+629.78) SENAO SE NDEPIDADE (DEP,HOJE)> 58 ENTAO SALVAVALDEP(0,948.45); SETVAR(SOMADEP,SOMADEP+948.45); SETVAR(DEP,DEP+1) ATE DEP=10 FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE; ... FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE SETVAR(DEP,DEP+1) ATE DEP=10; SOMADEP+SOMAFUN Alterando por : DECL DEP, SOMADEP, PLANO, IDADE_DEP, VALOR; SETVAR(DEP, 1); SETVAR(SOMADEP, 0); REPITA /* 1. Identifica o plano do dependente atual */ SETVAR(PLANO, TABCOMPLDEPEND('ASSISTENCIAMEDICA', 'V', DEP)); /* 2. Verifica se o plano está entre os que usam tabela (06, 07, 08, 09) */ SE PLANO = '06' OU PLANO = '07' OU PLANO = '08' OU PLANO = '09' ENTAO SETVAR(IDADE_DEP, NDEPIDADE(DEP, HOJE)); /* 3. Busca os valores nas tabelas criadas (Ex: TABX06, TABX07...) Os valores nas tabelas, devem usar as faixas associando às idades, e assim, usa o valor no campo LIMITESUPERIOR para indicar o valor desejado para uso na fórmula */ SETVAR(VALOR, TABCALCULO('LIMITESUPERIOR', 'TABX' + PLANO, HOJE, IDADE_DEP)); /* 4. Executa as ações de salvamento e soma apenas se houver valor */ SE VALOR > 0 ENTAO SALVAVALDEP(0, VALOR); SETVAR(SOMADEP, SOMADEP + VALOR) FIMSE FIMSE; SETVAR(DEP, DEP + 1) ATE DEP > 10; SOMADEP ---------------------------------------------------------- Caso queira testar se funciona para você essa forma de tratar, cria as suas tabelas (TABX06, 07, 08 e 09) e preencha os valores por faixa (idade) nos campos LIMITESUPERIOR, e teste se é o que deseja o resultado. Valide inicialmente em ambiente de testes, ok? PS.: Nem levei em consideração a tratativa de avaliar por SQL antes, a quantidade de dependentes para não ficar fazendo o loop 10 vezes sempre a cada funcionário varrendo os dependentes. Se quiser podemos ajustar melhor isso, mas desta forma que apresentei acima, quis mostrar como pode otimizar a fórmula, na escrita, e na manutenção para esses casos.
Camillafs Posted February 13 Topic Count: 1 Topics Per Day: 0.00 Content Count: 7 Content Per Day: 0.01 Reputation: 2 Achievement Points: 46 Solved Content: 0 Days Won: 2 Status: Offline Device: Windows Report Posted February 13 Aquela estrutura que eu tinha enviado antes acabou não gerando o histórico do dependente como eu esperava. No fim, precisei refazer. Acabei seguindo algo bem parecido com o que você orientou. Inclusive achei bom porque dá mais autonomia para o DP, já que agora não precisam mexer na fórmula quando muda valor, apenas ajustar a tabela de cálculo. Fiz a formula do titular assim: (temos mais de um plano,entao tratei por condição): DECL vDATA,vFAI,vVLRFUN,vPLANO; SETVAR(vDATA,ULTDIAMES(MTDATA(01,MES,ANO))); SETVAR(vVLRFUN,0); SETVAR(vPLANO,TABCOMPL('ASSISTENCIAMEDICA','S')); SE vPLANO <> '02' ENTAO SE vPLANO = '01' ENTAO SETVAR(vFAI,FAIXATABCALC('PL01',vDATA,IDADE(vDATA))); SETVAR(vVLRFUN,TABCALCULO('VALDEDUZIR','PL01',vDATA,vFAI)); SENAO SE vPLANO = '03' ENTAO SETVAR(vFAI,FAIXATABCALC('PL03',vDATA,IDADE(vDATA))); SETVAR(vVLRFUN,TABCALCULO('VALDEDUZIR','PL03',vDATA,vFAI)); FIMSE SALVAVALDEP(0,vVLRFUN) SENAO SETVAR(vVLRFUN,0) FIMSE; Pra dependente acabei criando uma SQL nesse primeiro momento só pra garantir a identificação dos dependentes que tem plano, pra conseguir gerar o histórico. Mas a ideia é justamente refinar a formula pra eliminar essa consulta. Se no campo de dependentes,no cadastro de funcionario, aba Incidencias, tiver flegado o campo Assistencia Medica/odontologica retornará o numero do dependente. O sql ficou assim: SELECT NRODEPEND FROM PFDEPEND DEP INNER JOIN PFUNC FUN ON DEP.CODCOLIGADA = FUN.CODCOLIGADA AND DEP.CHAPA = FUN.CHAPA INNER JOIN PFCOMPL COM ON FUN.CODCOLIGADA = COM.CODCOLIGADA AND FUN.CHAPA = COM.CHAPA WHERE COM.ASSISTENCIAMEDICA <> '02' AND DEP.INCASSISTMEDICA = '1' AND COM.CHAPA = :FRM_CHAPA E associei ela na formula do Dependente: DECL vDATA,vFAI,vNDP,vVLRDEP,vPLANO; SETVAR(vDATA,ULTDIAMES(MTDATA(01,MES,ANO))); SETVAR(vVLRDEP,0); SETVAR(vPLANO,TABCOMPL('ASSISTENCIAMEDICA','S')); SE EXECSQL('ASSMED01') = 1 ENTAO REPITA SETVAR(vNDP,RESULTSQL('ASSMED01','NRODEPEND')); SE vPLANO = '01' ENTAO SETVAR(vFAI,FAIXATABCALC('PL01',vDATA,NDEPIDADE(vNDP,vDATA))); SETVAR(vVLRDEP, vVLRDEP + TABCALCULO('VALACRESCENTAR','PL01',vDATA,vFAI)); SALVAVALDEP(vNDP, TABCALCULO('VALACRESCENTAR','PL01',vDATA,vFAI)); SENAO SE vPLANO = '03' ENTAO SETVAR(vFAI,FAIXATABCALC('PL03',vDATA,NDEPIDADE(vNDP,vDATA))); SETVAR(vVLRDEP, vVLRDEP + TABCALCULO('VALACRESCENTAR','PL03',vDATA,vFAI)); SALVAVALDEP(vNDP, TABCALCULO('VALACRESCENTAR','PL03',vDATA,vFAI)); FIMSE ATE PROXREGSQL('ASSMED01') = 0 FIMSE; vVLRDEP Fiz tudo na homologacao e,dessa vez, deu certinho.rs Muito obrigadaa 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now