procedure TACBrECF.EfetuaPagamento(CodFormaPagto : String ; Valor : Double ;
Observacao : AnsiString ; ImprimeVinculado : Boolean ;
CodMeioPagamento : Integer) ;
Var
FPG : TACBrECFFormaPagamento ;
Tratado : Boolean;
begin
CodFormaPagto := Trim(CodFormaPagto);
Observacao := TrimRight(Observacao) ;
{ Tirando os #13 e #10 }
Observacao := StringReplace(Observacao,CR,'',[rfReplaceAll]) ;
Observacao := StringReplace(Observacao,LF,'',[rfReplaceAll]) ;
Valor := RoundTo( Valor, -2) ; { Ajustando valores acima de 2 Decimais }
ComandoLOG := 'EfetuaPagamento( '+CodFormaPagto+' , '+
FloatToStr(Valor)+' , '+Observacao+', '+
BoolToStr( ImprimeVinculado)+', '+IntToStr(CodMeioPagamento)+' )';
if Assigned( fsAAC ) then
fsAAC.VerificaReCarregarArquivo;
FPG := AchaFPGIndice( CodFormaPagto ) ; ///Aqui esta chamando o carregaFormasPagamento
if FPG = nil then
raise EACBrECFErro.Create( Format(ACBrStr(cACBrECFAchaFPGIndiceException), [ CodFormaPagto ])) ;
if ImprimeVinculado and (not FPG.PermiteVinculado) then
raise EACBrECFErro.Create( Format(ACBrStr(cACBrECFFPGPermiteVinculadoException), [ CodFormaPagto ])) ;
if Assigned( fOnAntesEfetuaPagamento ) then
fOnAntesEfetuaPagamento( CodFormaPagto, Valor, Observacao, ImprimeVinculado);
try
Tratado := False;
fsECF.EfetuaPagamento( CodFormaPagto, Valor, Observacao, ImprimeVinculado,
CodMeioPagamento );
except
if Assigned( fOnErrorEfetuaPagamento ) then
fOnErrorEfetuaPagamento(Tratado);
if not Tratado then
raise;
end;
{$IFNDEF NOGUI}
if MemoAssigned then
MemoEfetuaPagamento(FPG.Descricao, Valor, Observacao);
{$ENDIF}
if RFDAtivo then
fsRFD.EfetuaPagamento( FPG.Descricao, Valor ) ;
if Assigned( fOnDepoisEfetuaPagamento ) then
fOnDepoisEfetuaPagamento( CodFormaPagto, Valor, Observacao, ImprimeVinculado);
end;