Autor
Mensagem
Pessoal, criei um sistema de vendas que está funcionando blz, muito interessante, mas o cliente me solicitou uma modificação que fiquei intrigado.
O cliente deseja lançar títulos a receber, sem lançar vendas.
Minha base de dados está na seguinte estrutura:
tblCliente.IdCliente-------> tblPDV.IdCliente| Para cada Pedido, um cliente.
tblPDV.IdPDV------------> tblParcela.IdPDV| Para cada Parcela um Pedido.
Lançando o pedido o contas a receber fica fácil, mas como lançar contas a receber sem lançar Pedido?
Alguém pode me ajudar?
Citação:
no caso você trabalharia com a "pré-venda"porque pelo que entendi voc tera uma tabela informando os titulos que serão um dia lançados. Quando estes titulos forem lançados passe para a tabela correspondente os dados que você precisa.
.
no caso você trabalharia com a "pré-venda"porque pelo que entendi voc tera uma tabela informando os titulos que serão um dia lançados. Quando estes titulos forem lançados passe para a tabela correspondente os dados que você precisa.
.
Vou te explicar melhor
Quando o cliente gera um pedido, as parcelas aparecem no contas a receber, daí ele o pode dar baixa tudo certinho.
Mas ae, digamos que estou instalando sistema hoje numa loja, só que existem vendas anteriores a data atual, daí tenho que lançar esses Títulos, mas não posso mais lançar como venda, pois vai alterar estoque e outros contra tempos.
Daí criei uma tela onde vai gerar os Títulos pro contas a receber, mas estou sem idéia de como isso pode ser feito. Fiquei um pouco perdido nisso ae.
Isso me parece ser simples... Você ja tem a estrutura para gerar novas contas e fazer baixa,..enfim tem todos os processo apra uma loja que começaria a funcionar apartir da data de instalaçao certo! Então crie uma tabela nova com o nome de Histórico, somente com os lançamentos e com um campo para identificar o que foi pago e o que nao fou, pois com toda certeza devem ter contas pendentes. AS que forem parcadas como pagas nao gera fatura as que forem marcadas como nao pagas vc faz a rotina de gerar fatura.
Citação:
Isso me parece ser simples... Você ja tem a estrutura para gerar novas contas e fazer baixa,..enfim tem todos os processo apra uma loja que começaria a funcionar apartir da data de instalaçao certo! Então crie uma tabela nova com o nome de Histórico, somente com os lançamentos e com um campo para identificar o que foi pago e o que nao fou, pois com toda certeza devem ter contas pendentes. AS que forem parcadas como pagas nao gera fatura as que forem marcadas como nao pagas vc faz a rotina de gerar fatura.
.
Isso me parece ser simples... Você ja tem a estrutura para gerar novas contas e fazer baixa,..enfim tem todos os processo apra uma loja que começaria a funcionar apartir da data de instalaçao certo! Então crie uma tabela nova com o nome de Histórico, somente com os lançamentos e com um campo para identificar o que foi pago e o que nao fou, pois com toda certeza devem ter contas pendentes. AS que forem parcadas como pagas nao gera fatura as que forem marcadas como nao pagas vc faz a rotina de gerar fatura.
.
Vlw pela dica, vou fazer uns testes e retorno.
Ficou ótimo agora.
Criei uma nova tabela tblHistorico e lancei os itens por código do cliente, daí ficou tudo certo.
Porém, queria saber como calcular parcelas para arredondar valores tipo:
Compras de R$ 100,00. Como o sistema pdoe gerar 3 parcelas automaticamente?
Citação:
Ficou ótimo agora.
.
Ficou ótimo agora.
Criei uma nova tabela tblHistorico e lancei os itens por código do cliente, daí ficou tudo certo.
Porém, queria saber como calcular parcelas para arredondar valores tipo:
Compras de R$ 100,00. Como o sistema pdoe gerar 3 parcelas automaticamente?
Eae pessoal, alguma novidade? Como posso fazer esse cáculo?
Tente assim:
[CODE]
procedure.....
var
ValorTotal:currency;
ValorParcelas, PrimeiraParcela: Integer;
nParcelas: Integer;
begin
ValorParcelas := Trunc(ValorTotal/nParcelas);
PrimeiraParcela := ValorParcelas + Trunc(ValorTotal - (ValorParcelas * nParcelas));
ShowMessage('O valor da primeira parcela é: R$ '+IntToStr(PrimeiraParcela)+''#10'O valor das parcelas restantes é: R$'+IntToStr(ValorParcelas)+''#10' Aquantidade de parcelas é: '+nParcelas);
v1:=PrimeiraParcela;
v2:=ValorParcelas;
// v1 e v2 são variáveis globais.
[/CODE]
[CODE]
procedure.....
var
ValorTotal:currency;
ValorParcelas, PrimeiraParcela: Integer;
nParcelas: Integer;
begin
ValorParcelas := Trunc(ValorTotal/nParcelas);
PrimeiraParcela := ValorParcelas + Trunc(ValorTotal - (ValorParcelas * nParcelas));
ShowMessage('O valor da primeira parcela é: R$ '+IntToStr(PrimeiraParcela)+''#10'O valor das parcelas restantes é: R$'+IntToStr(ValorParcelas)+''#10' Aquantidade de parcelas é: '+nParcelas);
v1:=PrimeiraParcela;
v2:=ValorParcelas;
// v1 e v2 são variáveis globais.
[/CODE]
Citação:
Tente assim:
[CODE]
procedure.....
var
ValorTotal:currency;
ValorParcelas, PrimeiraParcela: Integer;
nParcelas: Integer;
begin
ValorParcelas := Trunc(ValorTotal/nParcelas);
PrimeiraParcela := ValorParcelas + Trunc(ValorTotal - (ValorParcelas * nParcelas));
ShowMessage('O valor da primeira parcela é: R$ '+IntToStr(PrimeiraParcela)+''#10'O valor das parcelas restantes é: R$'+IntToStr(ValorParcelas)+''#10' Aquantidade de parcelas é: '+nParcelas);
v1:=PrimeiraParcela;
v2:=ValorParcelas;
// v1 e v2 são variáveis globais.
[/CODE]
.
Tente assim:
[CODE]
procedure.....
var
ValorTotal:currency;
ValorParcelas, PrimeiraParcela: Integer;
nParcelas: Integer;
begin
ValorParcelas := Trunc(ValorTotal/nParcelas);
PrimeiraParcela := ValorParcelas + Trunc(ValorTotal - (ValorParcelas * nParcelas));
ShowMessage('O valor da primeira parcela é: R$ '+IntToStr(PrimeiraParcela)+''#10'O valor das parcelas restantes é: R$'+IntToStr(ValorParcelas)+''#10' Aquantidade de parcelas é: '+nParcelas);
v1:=PrimeiraParcela;
v2:=ValorParcelas;
// v1 e v2 são variáveis globais.
[/CODE]
.
.
Funcionou Muito bem, só os centavos que não está calculando!
Como posso contronar isso?
Citação:
Esta funçao arredonda os valores. Você pode pegar o valor dos centavos e armazenar em uma variavel, e no valor de v1 somar os centavos e gravar no banco calculando o valor das parcelas com um numero redondo. Espero que agora vc resolva o seu problema. Abraços
Esta funçao arredonda os valores. Você pode pegar o valor dos centavos e armazenar em uma variavel, e no valor de v1 somar os centavos e gravar no banco calculando o valor das parcelas com um numero redondo. Espero que agora vc resolva o seu problema. Abraços
Citação:
Esta funçao arredonda os valores. Você pode pegar o valor dos centavos e armazenar em uma variavel, e no valor de v1 somar os centavos e gravar no banco calculando o valor das parcelas com um numero redondo. Espero que agora vc resolva o seu problema. Abraços
Esta funçao arredonda os valores. Você pode pegar o valor dos centavos e armazenar em uma variavel, e no valor de v1 somar os centavos e gravar no banco calculando o valor das parcelas com um numero redondo. Espero que agora vc resolva o seu problema. Abraços
Citação:
Esta funçao arredonda os valores. Você pode pegar o valor dos centavos e armazenar em uma variavel, e no valor de v1 somar os centavos e gravar no banco calculando o valor das parcelas com um numero redondo. Espero que agora vc resolva o seu problema. Abraços
.
Esta funçao arredonda os valores. Você pode pegar o valor dos centavos e armazenar em uma variavel, e no valor de v1 somar os centavos e gravar no banco calculando o valor das parcelas com um numero redondo. Espero que agora vc resolva o seu problema. Abraços
procedure.....
var
ValorTotal:currency;
ValorParcelas, PrimeiraParcela: Integer;
nParcelas: Integer;
begin
ValorParcelas := Trunc(ValorTotal/nParcelas);
PrimeiraParcela := ValorParcelas + Trunc(ValorTotal - (ValorParcelas * nParcelas));
ShowMessage('O valor da primeira parcela é: R$ '+IntToStr(PrimeiraParcela)+''#10'O valor das parcelas restantes é: R$'+IntToStr(ValorParcelas)+''#10' Aquantidade de parcelas é: '+nParcelas);
v1:=PrimeiraParcela;
v2:=ValorParcelas;
// v1 e v2 são variáveis globais.
var
ValorTotal:currency;
ValorParcelas, PrimeiraParcela: Integer;
nParcelas: Integer;
begin
ValorParcelas := Trunc(ValorTotal/nParcelas);
PrimeiraParcela := ValorParcelas + Trunc(ValorTotal - (ValorParcelas * nParcelas));
ShowMessage('O valor da primeira parcela é: R$ '+IntToStr(PrimeiraParcela)+''#10'O valor das parcelas restantes é: R$'+IntToStr(ValorParcelas)+''#10' Aquantidade de parcelas é: '+nParcelas);
v1:=PrimeiraParcela;
v2:=ValorParcelas;
// v1 e v2 são variáveis globais.
Citação:
Esta funçao arredonda os valores. Você pode pegar o valor dos centavos e armazenar em uma variavel, e no valor de v1 somar os centavos e gravar no banco calculando o valor das parcelas com um numero redondo. Espero que agora vc resolva o seu problema. Abraços
.
Esta funçao arredonda os valores. Você pode pegar o valor dos centavos e armazenar em uma variavel, e no valor de v1 somar os centavos e gravar no banco calculando o valor das parcelas com um numero redondo. Espero que agora vc resolva o seu problema. Abraços
.
procedure.....
var
ValorTotal:currency;
ValorParcelas, PrimeiraParcela: Integer;
nParcelas: Integer;
begin
ValorParcelas := Trunc(ValorTotal/nParcelas);
PrimeiraParcela := ValorParcelas + (ValorTotal - (ValorParcelas * nParcelas));
ShowMessage('O valor da primeira parcela é: R$ '+IntToStr(PrimeiraParcela)+''#10'O valor das parcelas restantes é: R$'+IntToStr(ValorParcelas)+''#10' Aquantidade de parcelas é: '+nParcelas);
v1:=PrimeiraParcela;
v2:=ValorParcelas;
// v1 e v2 são variáveis globais.
var
ValorTotal:currency;
ValorParcelas, PrimeiraParcela: Integer;
nParcelas: Integer;
begin
ValorParcelas := Trunc(ValorTotal/nParcelas);
PrimeiraParcela := ValorParcelas + (ValorTotal - (ValorParcelas * nParcelas));
ShowMessage('O valor da primeira parcela é: R$ '+IntToStr(PrimeiraParcela)+''#10'O valor das parcelas restantes é: R$'+IntToStr(ValorParcelas)+''#10' Aquantidade de parcelas é: '+nParcelas);
v1:=PrimeiraParcela;
v2:=ValorParcelas;
// v1 e v2 são variáveis globais.
Tirei o Trun da primeira parcela e resolveu.








