Descrição

PLGRVBM1- Ponto de entrada na composição da cobrança para divisão do valor por tipo de atos, para planos PF e PJ

Observações

Executado após a gravação do BM1

Exemplos

User Function PLGRVBM1()
Local nPercF, nPercJ
Local aArea := GetArea()
Local aAreaBFQ := BFQ->(GetArea())
Local nValACP := 0
Local nValACA := 0
Local nValANC := 0
//Local cCtpl05 := GetNewPar('MV_YCTPL05','1/2')
Local cTipoBG9 := Posicione("BG9",1,xFilial("BG9")+BM1->(BM1_CODINT+BM1_CODEMP),"BG9_TIPO")
BFQ->(dbSetOrder(1))
BFQ->(dbSeek(xFilial('BFQ')+PlsIntPad()+BM1->BM1_CODTIP,.F.))
// Percentual para calculo da base dos atos, deve ser igual a 1, que representa 100%.
nPercF := BFQ->(BFQ_YBACPF+BFQ_YBACAF)
nPercJ := BFQ->(BFQ_YBACPJ+BFQ_YBACAJ+BFQ_YBANCJ)
// Verifica se não achou o lançamento, se o total PF é diferente de 100% ou se o total PJ é diferente de 100%.
// Se atender uma das condições, aborta o processo de divisão da composição.
If BFQ->(Eof()) .or. nPercF # 1.00 .or. nPercJ # 1.00
BFQ->(RestArea(aAreaBFQ))
RestArea(aArea)
Return()
Else
If cTipoBG9 == '1' //Pessoa Fisica
// Calcula o valor da composicao por tipo de ato
nValACP := NoRound(BM1->BM1_VALOR * BFQ->BFQ_YBACPF, 2)
nValACA := NoRound(BM1->BM1_VALOR * BFQ->BFQ_YBACAF, 2)
nValANC := 0 // Nao há Ato Nao Cooperativo para contrato PF
// Joga o arredondamento no Ato Cooperativo Principal
nValACP += BM1->BM1_VALOR - (nValACP+nValACA)
Else
// Calcula o valor da composicao por tipo de ato
nValACP := NoRound(BM1->BM1_VALOR * BFQ->BFQ_YBACPJ, 2)
nValACA := NoRound(BM1->BM1_VALOR * BFQ->BFQ_YBACAJ, 2)
nValANC := NoRound(BM1->BM1_VALOR * BFQ->BFQ_YBANCJ, 2)
// Joga o arredondamento no Ato Cooperativo Principal
nValACP += BM1->BM1_VALOR - (nValACP+nValACA+nValANC)
EndIf
If nValACP+nValACA+nValANC > 0
RecLock('BM1',.F.)
BM1->BM1_YVLACP := nValACP
BM1->BM1_YVLACA := nValACA
BM1->BM1_YVLANC := nValANC
BM1->(msUnlock())
EndIf
EndIf // Se lançamento deve ser dividido
Return()

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

Nenhum

Retorno

Nulo()

Eventos de chamada do Ponto de Entrada

Variáveis

Programa Fonte

PLSA510.PRW