Ir para conteúdo
Fórum Script Brasil

ramosaires

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre ramosaires

  • Data de Nascimento 18/03/1995

Perfil

  • Gender
    Male
  • Location
    Manaus

Contatos

  • Skype
    junior.ramos29

ramosaires's Achievements

0

Reputação

  1. Olá Denis ,grato pelo retorno, ainda não funcionou, simplesmente não retorna nada e também não insere, realizei mudanças apenas na variavel mensagem , CREATE DEFINER=`root`@`localhost` PROCEDURE `verificapagamento`(IN pinfcodigo INT, IN ppagcodigo INT, IN pvencodigo INT, IN pvalor DOUBLE) BEGIN DECLARE valorvenda DOUBLE; DECLARE somavalores DOUBLE; DECLARE msg VARCHAR(1000) DEFAULT "sem mensagem"; DECLARE excecao SMALLINT DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1; SELECT venvalortotal INTO valorvenda FROM venda WHERE vencodigo = pvencodigo; SELECT COALESCE(SUM(valor),0) INTO somavalores FROM informaformapgto WHERE vencodigo = pvencodigo; IF somavalores > valorvenda THEN SET msg = "Valor não confere"; SELECT msg AS msg; ELSE START TRANSACTION; INSERT INTO informaformapgto(infcodigo, pagcodigo, vencodigo, valor) VALUES (pinfcodigo, ppagcodigo, pvencodigo, pvalor); IF excecao = 1 THEN SET msg = "Erro na gravação"; ROLLBACK; ELSE SET msg = "Gravado com sucesso"; COMMIT; END if; END if; SELECT msg AS msg; END Vou colocar aqui um exemplo do banco para que possa me ajudar: create database verif_valores; use verif_valores; create table venda( vencodigo int not null auto_increment primary key, vendata date not null, venvalortotal double); create table formapagamento( pagcodigo int not null auto_increment primary key, pagdescrição varchar(8) not null); create table informaformapgto( infcodigo int not null, pagcodigo int not null, vencodigo int not null, valor double not null, constraint pk_informafpgto primary key (infcodigo), constraint fk_infpgto_pgto foreign key(pagcodigo) references formapagamento (pagcodigo) match simple on update restrict on delete restrict, constraint fk_infpgto_venda foreign key(vencodigo) references venda (vencodigo) match simple on update restrict on delete restrict); insert into venda (vencodigo,vendata,venvalortotal) values (1,'2017-06-13',500); insert into formapagamento (pagcodigo,pagdescrição) values (1,'Dinheiro'), (2,'Débito'), (3,'Crédito'); insert into informaformapgto (infcodigo,pagcodigo,vencodigo,valor) values (1,1,1,300); Att
  2. Olá, tenho uma tabela chamada 'Venda' que contém um valor total da venda.. e outra chamada pagamento que me da opcoes de cartao e dinheiro,(podendo inserir varios pagamentos) porém antes de inserir um valor de pagamento , gostaria de buscar o valor da referida venda e verificar se a soma de valores daquela venda caso exista na tabela de pagamento, não seja maior que o valor total da venda... tentando a sp abaixo mas ate agora sem sucesso.. alguém pode me ajudar porfavor? CREATE DEFINER=`root`@`localhost` PROCEDURE `verificapagamento`(infcodigo int, pagcodigo int, vencodigo int, valor double) BEGIN set @posicao = vencodigo; set @valorvenda = (select venvalortotal from venda where vencodigo=@posicao); set @somavalores= (SELECT COALESCE(SUM(valor),0) FROM informaformapgto WHERE vencodigo=vencodigo); if (@somavalores <= @valorvenda) then insert into informaformapgto(infcodigo, pagcodigo, vencodigo, valor) values (infcodigo, pagcodigo, vencodigo, valor); end if; END
×
×
  • Criar Novo...