Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

[SQL] Trigger Produtos


Posts Recomendados


  • Tópicos Que Criei:  59
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  153
  • Conteúdo/Dia:  0.03
  • Reputação:   1
  • Pontos/Conquistas:  1.340
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  45

Boa tarde, em meu cadastro de produtos do Nucleus tenho tres preços:

preco1 = Preço de Venda

preco2 = Preço de Custo

preco3 = % Margem de Venda

com esses preços segue o exemplo

preco1 = 5,25

preco2 = 2,80

preco3 = 87,50

preencho o preco2 (Que é o de custo) e o preço3 (Que é a margem de Lucro) e criei um trigger que quando salvo o produto ele calcula automaticamente o preco1 (Que é o de Venda)

Segue abaixo o trigger:

DECLARE @IDPRD VARCHAR (10)

SET @IDPRD = (SELECT INSERTED.IDPRD FROM INSERTED)

UPDATE TPRD SET PRECO1=(PRECO2*(PRECO3+100)/100) WHERE IDPRD=@IDPRD

Até aí tudo ótimo, só que tem produtos que quero preencher manualmente o preço de venda diferente do cálculo automático, exemplo:

preco1 = 7,00

preco2 = 2,80

preco3 = 87,50

Então, gostaria de um trigger que me perguntasse se eu queria ou não se o sistema calculasse o rreco1 com base do preco3, se respondesse "SIM" ele calcularia se respodesse "NÃO" iria permanecer o preço digitado manualmente, será que isso é possível ?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  6
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  97
  • Conteúdo/Dia:  0.02
  • Reputação:   2
  • Pontos/Conquistas:  542
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  42

Ai ja entra na programação do sistema e não uma trigger, pelo menos pelo Banco acho q não é possivel!

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  11
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  186
  • Conteúdo/Dia:  0.03
  • Reputação:   0
  • Pontos/Conquistas:  1.035
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  37

Boa tarde, em meu cadastro de produtos do Nucleus tenho tres preços:

preco1 = Preço de Venda

preco2 = Preço de Custo

preco3 = % Margem de Venda

com esses preços segue o exemplo

preco1 = 5,25

preco2 = 2,80

preco3 = 87,50

preencho o preco2 (Que é o de custo) e o preço3 (Que é a margem de Lucro) e criei um trigger que quando salvo o produto ele calcula automaticamente o preco1 (Que é o de Venda)

Segue abaixo o trigger:

DECLARE @IDPRD VARCHAR (10)

SET @IDPRD = (SELECT INSERTED.IDPRD FROM INSERTED)

UPDATE TPRD SET PRECO1=(PRECO2*(PRECO3+100)/100) WHERE IDPRD=@IDPRD

Até aí tudo ótimo, só que tem produtos que quero preencher manualmente o preço de venda diferente do cálculo automático, exemplo:

preco1 = 7,00

preco2 = 2,80

preco3 = 87,50

Então, gostaria de um trigger que me perguntasse se eu queria ou não se o sistema calculasse o rreco1 com base do preco3, se respondesse "SIM" ele calcularia se respodesse "NÃO" iria permanecer o preço digitado manualmente, será que isso é possível ?

Não sou muito a favor de uso de trigger no RM...mas, é uma saída bem interessante para sua necessidade e não envolve relacionamento de tabelas...

Veja se lhe atende...

Altere o update incluindo um case when

UPDATE TPRD SET PRECO1=

case when PRECO1 is null then(PRECO2*(PRECO3+100)/100)

else PRECO1 END

WHERE IDPRD=@IDPRD

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  59
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  153
  • Conteúdo/Dia:  0.03
  • Reputação:   1
  • Pontos/Conquistas:  1.340
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  45

Não sou muito a favor de uso de trigger no RM...mas, é uma saída bem interessante para sua necessidade e não envolve relacionamento de tabelas...

Veja se lhe atende...

Altere o update incluindo um case when

UPDATE TPRD SET PRECO1=

case when PRECO1 is null then(PRECO2*(PRECO3+100)/100)

else PRECO1 END

WHERE IDPRD=@IDPRD

Acho que não deu certo, nada acontece, não entendi esse trigger...

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  38
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  438
  • Conteúdo/Dia:  0.08
  • Reputação:   12
  • Pontos/Conquistas:  2.592
  • Conteúdo Resolvido:  0
  • Dias Ganho:  9
  • Status:  Offline
  • Idade:  47
  • Dispositivo:  Windows

Caso o preço1 esteja vazio/nulo (quando está inserindo um produto novo) ele irá gravar o valor ref. ao seu calculo... Senão ele irá gravar o preço que você digitar lá neste campo (em caso de alteração do valor do campo ou se no momento da inclusão ele já for preenchido).

O que pode estar acontecendo é que ele esta testando se é nulo o campo... mas ele pode conter outro valor quando não é preenchido... p/ex. pode ser 0 (zero). Neste caso a condição do teste deveria ser alterada.

Abraço.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  902
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.855
  • Conteúdo/Dia:  1.34
  • Reputação:   311
  • Pontos/Conquistas:  106.691
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Online
  • Idade:  52
  • Dispositivo:  Windows

Mensagem Automática do Fórum RM

Este tópico foi verificado pela moderação/administração que foi postado em área errada !!

Por favor, verifique para que não postem em áreas indevidas. Vamos manter o Fórum o mais organizado possível.

Movido então, de : "VIP -> [VIP] Pedidos" para:  "Sistemas RM -> [RM] SQL e Bancos de Dados".

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.