[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