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

Marcelo Geyer estanisgeyer em gmail.com
Qua Mar 4 20:47:15 -03 2009


Favor enviar a sua dúvida para uma lista de delphi. Cadê a moderação? Desse
jeito vou postar as minhas dúvidas de QT/C++ para ver se alguém aqui
responde...

2009/3/4 Reijanio Nunes Ribeiro <rnribeiro em gmail.com>

> 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
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista