none
Regras de desconto, como fazer ? RRS feed

  • Discussão Geral

  • Pessoal boa tarde.

    Em nossa ferramentas precisaremos disponibilizar um módulo para o usuário criar regras de desconto, onde ele pode selecionar uma serie de campos para montar a regra conforme as necessidades desejadas.
    Alguém tem alguma idéia de como trabalhar com isso em .net ? 

    Existe uma forma de converter uma string em comandos ?
    Por exemplo. Se eu salvar no banco de dados algo como "if pedido.total > 10 then"... e eu "executar" essa string, ou vocês possuem outra sugestão que não seja validar manualmente cada condição ?

    Obrigado
    • Tipo Alterado Marcos SJ segunda-feira, 28 de março de 2016 19:33 HOW TO / Not supported
    segunda-feira, 28 de março de 2016 18:51

Todas as Respostas

  • Rafael, seria mais fácil você transformar o texto em um comando sql e executar esse comando através do código.
    Exemplo do comando em sql:

    select
    case when pedido > 10 then 1
    else 2
    end

    segunda-feira, 28 de março de 2016 19:26
  • alexandre,

    Mas as ações não ocorrerão dentro do sql e sim do .net.. não estou vendo no momento como poderia jogar tudo pro sql, mas agradeço a sugestão.. 
    segunda-feira, 28 de março de 2016 22:20
  • Rafael, sempre que preciso fazer fórmulas dinâmicas, utilizo expressões sql para ser executadas no banco de dados.
    Já que você irá salvar o registro nele, não há problema de executar uma rotina pra realizar esse cálculo para você.

    Ficaria mais ou menos assim:

    declare @formula varchar(max)
    set @formula = 'select case when getdate() < convert(datetime,''2016-03-29'',120) then 1 else 2 end as resultado'
    execute(@formula)

    Dessa forma, você já pode deixar até os campos e os registro do próprio banco pré configurados.

    terça-feira, 29 de março de 2016 03:43
  • Alexandre,

    Pensando rapidamente acho que você tem razão.
    Eu tinho visto alguns problemas por ter que usar variáveis do .net, mas basta eu concatenar tudo e acho que vai funcionar sim.

    Obrigado pela dica Alexandre
    terça-feira, 29 de março de 2016 12:55