[firebase-br] OFF - parcelamento não funciona para venda sem entrada

Reijanio Nunes Ribeiro rnribeiro em gmail.com
Qua Mar 4 08:38:55 -03 2009


bom dia pessoal desculpem o off mais é que ja queimei todos os cartuchos
tentando entender pq essa rotina não funciona pra vendas sem entrada onde a
1º prestação é 30 dias, pois pra vendas xom entrada funciona perfeitamente
procedure TF_Orcamento.financeiro;
var
i: integer;
vlrtotal,vlrparc, diferenca : Real;
vcto :tdate;
numparc :integer;
Begin
numparc := F_dmm.TipoPgtoQTDE_PARC.AsInteger;
 vlrtotal := F_dmm.C_VendaTOTAL.AsFloat;
  vcto := now+f_dmm.TipoPgtoPRI_PARC.AsInteger;
if vlrtotal >0.00 then
begin
//arredonda as casas decimais
    vlrparc := trunc((vlrtotal/numparc)*100)/100;
//    verifica se existe diferença
    if ((vlrparc*numparc)<>vlrtotal) then
    diferenca := vlrtotal-(vlrparc*numparc)
        else
        diferenca := 0;
  for i := 0 to numparc -1 do *//o erro provavelmente é aqui*
//  for i := 1 to numparc do
//  for i := 1 to numparc -1 do
begin
f_dmm.ContasReceber.Open;
  f_dmm.ContasReceber.Insert;
  f_dmm.ContasReceberCODIGO.Value := f_dmm.inc_gen('GEN_CONTASRECEB_ID');
  f_dmm.ContasreceberCODVEN.Value := f_dmm.C_VendaCODIGO.Value;
  f_dmm.ContasreceberNUMDOC.AsString :=  f_dmm.c_vendaCODIGO.AsString;
  f_dmm.ContasreceberCODCLIENTE.Value := F_dmm.C_VendaCODCLI.Value;
    f_dmm.ContasreceberTIPOPGTO.Value := F_DMM.TipoPgtoCODIGO.Value;
  f_dmm.ContasreceberEMISSAO.Value := dbedit6.Field.Value;
  f_dmm.ContasreceberLANCAMENTO.Value := dbedit6.Field.Value;
  f_dmm.ContasReceberSTATUS.Value := 'P';
  F_dmm.ContasReceberPARCELA.Value := i + 1;
     f_dmm.ContasreceberVENCIMENTO.AsDateTime := vcto;
  vcto := vcto + 30;

//verifica se é a ultima parcela
  if (i=(numparc-1)) then
  begin
  f_dmm.ContasreceberVLRTOTAL.AsFloat := vlrparc + diferenca;
  end
  else
  f_dmm.ContasreceberVLRTOTAL.AsFloat := vlrparc;
  end;
//end;
if f_dmm.ContasReceber.ChangeCount>0 then
begin
f_dmm.ContasReceber.ApplyUpdates(0)
end
else
//begin
ShowMessage('erro ao Salvar, valor deverá ser maior que 0.00');*//ta dando
sempre essa msg de erro*
//end;
end;
end;

tabela tipo_pgto
CREATE TABLE TIPO_PGTO (
    CODIGO      INTEGER NOT NULL,
    DESCRICAO   VARCHAR(20) CHARACTER SET WIN1252,
    QTDE_PARC   INTEGER,
    PRI_PARC    INTEGER,
    FORMA_PGTO  INTEGER,
    TX_JUROS    NUMERIC(10,2)
);

uma venda sem entrada a tabela ficaria assim
CODIGO      INTEGER NOT NULL,

    QTDE_PARC   INTEGER, = *1 parcela*
    PRI_PARC    INTEGER, = *30 dias*
    FORMA_PGTO  INTEGER,
    TX_JUROS    NUMERIC(10,2)
 Responder

Encaminhar



Mais detalhes sobre a lista de discussão lista