DUVIDA PAGAMENTOS DE PARCELAS

NILTON.VIANNA 29/02/2012 01:36:16
#395989
Boa Noite amigos,

estou com um bomba...

pois bem fiz meu projeto de faturamento com parcelas, tenho 2 Tabelas, funciona perfertinho.

Faturas, Parecela
quando eu faço uma venda parcelada ela grava nas tabelas os seguintes itens;

(na tabela Fatura)
Fatura 01 - Total = 10,00 - Parcelas 02

(na tabela Parcela)
Fatura 01 - Valor = 5,00 - Parcelas 1/1
Fatura 01 - Valor = 5,00 - Parcelas 1/2

aqui vem a dor de cabeça;
CnSql.Execute [Ô]UPDATE Cad_Parcela SET PGSN = [ô][Ô] & LBPago.Caption & [Ô][ô], DtaPago = [ô][Ô] & txtDtaPgto.Text _
& [Ô][ô], ValPago = [ô][Ô] & txtValPgto.Text & [Ô][ô], Motivo = [ô][Ô] & txtMotivo.Text & [Ô][ô] WHERE Fatura = [Ô] & txtFaturaID.Text

Ele considera as duas faturas pois o ID repete por ser Parcelas
ja tentei colocar outros campos (Parcelas 1/1) mas não aceita ??

se alguem tiver um luz eu agradeço
Abraços
Nilton




SAMUKA 29/02/2012 08:06:23
#395998
Bom dia Nilton,

é por esses casos que a normalização de banco de dados, diz que você precisa incluir um campo primario em todas as tabelas, se não tiver um campo que possa ser primário, vc deve incluir um campo autonumerado. Dessa forma sua tabela Cad_Parcela seria assim:

ID Fatura Valor Parcela
1 1 5,00 1/2
2 1 5,00 2/2

Para vc atualizar um valor, vc primeiro carrega as parcelas num grid, seleciona a parcela que irá pagar e utiliza o ID para dar um UPDATE.
[c]
CnSql.Execute [Ô]UPDATE Cad_Parcela SET PGSN = [ô][Ô] & LBPago.Caption & [Ô][ô], DtaPago = [ô][Ô] & txtDtaPgto.Text _
& [Ô][ô], ValPago = [ô][Ô] & txtValPgto.Text & [Ô][ô], Motivo = [ô][Ô] & txtMotivo.Text & [Ô][ô] WHERE ID = [Ô] & txtID.Text
[c]

DIca, esta tabela não estaria faltando mais alguns campos, como DataVencto, DataPgto, ValorPago, JuroPago, etc ??
NILTON.VIANNA 29/02/2012 08:23:31
#396001
Tem mais itens sim
tb pensei nisso sobre auto numerar, vou ter que ver melhor pois as parcelas sao geradas automaticamente
apos o valor da campra...

VELDRAME 29/02/2012 08:28:21
#396002
Certo, são geradas automaticamente,mas são com vencimentos diferentes afinal são parcelas.
Ponha a data de vencimento como fator diferencial (yyyymmdd).
SAMUKA 29/02/2012 08:32:23
#396004
VELDRAME, para colocar a data de vencimento como diferencial, ela poderia coincidir com os vencimentos de outra fatura, nesse caso vc precisaria fazer um WHERE com dois campos. Utilizando um ID autonumerado, vc só fará um WHERE mais simples.
NILTON.VIANNA 29/02/2012 09:43:20
#396010
Bem o Projeto esta funcionando normal com os vencimentos tudo OK

a unica duvida é na baixa de uma parcela que esta pegando todas que contem o mesmo numero

Vou fazer um teste pra ver sew funciona do amigo

WHERE Fatura = [Ô] & txtFaturaID.Text and [Ô]PARCEA[Ô] = XXXXXXX

Teria que ficar assim:

FaturaID 01 Pararcela 1/1 = 30,00 <-- Alterar apenes essa
FaturaID 01 Pararcela 1/2 = 30,00
FaturaID 01 Pararcela 1/3 = 30,00


Grato


Tópico encerrado , respostas não são mais permitidas