Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoa,
Tenho uma base no MYSQL assim
cliente
- CliId *
- CliNome
servico
- ServId **
- ServCliId *
- ServPreco
pagamento
- PagId
- PagCliId *
- PagServId **
- PagPrecoTotal
- PagPago
Ja tenho cadastrado todos os serviços em cada cliente, porém, todo mês eu cadastro os pagamentos dos clientes, certo.
Gostaria de uma seguinte rotina,
Como os pagamentos são mensais e já definidos em servico, como eu poderia em apenas poucos cliques inserir o pagamento de todos os clientes com o status Pago=Não.
Ao inves de passar de cliente por cliente todo mes inserindo o pagamento.
A intenção é inserir o pagamento com o status "PagPago=NAO" para que assim que for dando baixa no pagamento eu apenas coloco "PagPago=SIM"
Quando você cadastra o serviço no banco de dados a coluna PagPago vai com o valor NÃO ? Se for na minha cabeça na hora que vc esta cadastrando os dados no formulario basta você criar um
<select name="pagamento>
<option value="nao">Não</option>
<option value="sim">Sim</option>
</select>
e escolher se o pagamento já foi feito ou não.olha este exemplo que uso.
if qtd_produtos = "" thenResponse.write("erro..."response.redirect("outra_pagina.asp")elseqtd_produtos = split(Request.Form("qtd_produtos"),",")if qtd_produtos = ""produtos= Split(Request.Form("produtos"), ",")For i = 1 To Request.Form("produtos").CountResponse.write request.form("produtos")(i)&"<BR>" & request.form("qtd_produtos")(i)&"<BR>"SQL = "INSERT INTO lista (lista_prodID,lista_quant) Values ('"&request.form("produtos")(i)&"','"&request.form("qtd_produtos")(i)&"')"
eu uso este exemplo:
if qtd_produtos = "" thenResponse.write("erro..."response.redirect("outra_pagina.asp")elseqtd_produtos = split(Request.Form("qtd_produtos"),",")if qtd_produtos = ""produtos= Split(Request.Form("produtos"), ",")For i = 1 To Request.Form("produtos").CountResponse.write request.form("produtos")(i)&"<BR>" & request.form("qtd_produtos")(i)&"<BR>"SQL = "INSERT INTO lista (lista_prodID,lista_quant) Values ('"&request.form("produtos")(i)&"','"&request.form("qtd_produtos")(i)&"')"
Primeiramente senti falta do campo data na tua tabela pagamento -- seria o caso de vc cria-lo para referenciar o mes em exercicio.
Depois vc utilizaria uma instrucao SQL para popular a tabela pagamento com os dados do mes anterior para o mes atual.
Ex. Insert into pagamento (PagCliId, PagServId, PagPrecoTotal, PagPago, PagData) select (
(pagamento.PagCliId, pagamento.PagServId, pagamento.PagPrecoTotal, 'NAO', '2013.03')
** where pagamento.PagData = '2013.02'**
* Estou considerando que PagId eh autoincrementoé pegar o status Pago=Não e fazer um loop no INSERT
Vamos la...
Eu tenho campos de data tudo certinho! só lancei a base com uma sintese de como esta meu banco.
Como posso fazer um loop pra que ele pegue todo o pagamento feito no mes anterior e cadastre como aprovado nao, a data pode vir a mesma, pois terei que editar o mesmo no momento de colocar PAGO = SIM
a lógica da estrutura do loop é a mesma, terá que ter apenas sua SQL
Uso no meu banco SGBD experimental seria assim:(Não serve em ASP hein !)
//(PagPago*) <-campo afetado ou alterado na tabela Pagamento usando o código da situação do pagamento
{
Pagamento; //Tabela que sera manipulada
@subs; //Comando para substituir dado
(PagPago ); //Campo que sera usado na busca
(NÃO); //Dado que sera buscado
(SIM); //Dado que será posto no lugar
(PagPago); //Campo que será alterado (destino)
query=4; //Indice de campo de busca (o proprio PagPago)
destino=4 //Indice de campo que será destino da aletração
}
//Pronto! tabela reescrita em frações de segundos
tipo uma stored procedure....
faz um loop na sua isntrução SQL INSERT