Atualizar Preço Automaticamente (Mysql)

serj_tankian

Power Member
Bom dia pessoal,

Crie uma base de dados para controlar a manufacturarão de produtos.
Tudo funciona corretamente mas queria saber a melhor forma e como fazer a atualização de preços automaticamente.
As peças são compradas em $usd mas depois são reconvertidas para € conforme vou inserindo peça na bd.
O problema é que a taxa de cambio está sempre a variar e se eu atualizo a taxa de cambio na base de dados tenho de ir as peças (uma a uma) e atualizar para ficarem com o preço correto.

Pergunto-me qual a maneira mais eficaz de automatizar? através do mysql? PHP?

Agradeço a vossa ajuda,
Cumps,
 
Fazes um script que saiba a taxa atual de cambio e que depois faça um update a toda a tabela tento em conta aquele cambio.
Depois tens duas opções ou crias um cron que faça isso todos os dias as X horas.. ou crias um botão no backoffice que chama o script

Pesquisei rápido e vi isto: http://fixer.io/ não vi é se esta sempre atualizado..

Abraço!
 
Portanto eu ter criado uma tabela moeda, para armazenar a taxa é escusado?
e como utilizo o script no calculo do preço?
Neste momento tinha uma conta simples no php que vai buscar a taxa de cambio e converte para euro e guarda esse valor na tabela assim que se submeter a informação!
 
Agora fiquei baralhado :P

Faz sentido guardares a taxa de cambio se o script que falei não atualizar todos os produtos.. assim sabia qual a taxa de cada produto..
Se atualizares todos os produtos penso que não ganhas nada em guardar a taxa de cambio..

Mas sem mais informações não te consigo ajudar muito mais.. Mas se explicares melhor a tua duvida posso tentar ajudar :)
 
Obrigado pela paciência :)

explicando sucintamente:
tenho uma base de dados (mysql) e desenvolvi uma interface em html/php para interagir com a base de dados, onde posso criar/editar/eliminar peças ou produtos.
Na base de dados tenho uma tabela "moeda" onde guardo a taxa de cambio, e vou actualizando manualmente no front-end sempre que necessário.
Quando crio uma peça dou-lhe o valor em $usd, e quando submeto o formulário um script em php vai buscar o valor $usd e vai buscar o valor que tenho guardado na tabela moeda e faz a conversão e guarda o resultado na tabela peça já em €.
O meu problema é que quando actualizo a taxa de cambio, o preço da peça em € não atualiza automaticamente, tenho que ir peça a peça, e editar e submeter o formulario de novo para o script php correr de novo e ter o valor da taxa atualizado e por sua vez atualizar o preço da peça na tabela..
O meu objectivo aqui era sempre que actualizasse a taxa de cambio, um script percorreria todas as peças e actualizava o preço.
Ou caso haja uma melhor solução...
 
Grava o valor em usd e deixas um campo vazio de eur na tabela dos produtos..
Quando atualizas a taxa de cambio corres o script de atualizar todos os produtos
Esse tal script:
- Vai buscar todos os produtos
- Faz um foreach por cada um e pega no valor em usd
- Guarda no campo eur: usb*taxa de cambio

Isso resolve o problema que queres..
Se quiseres automatizar tudo é fazer curl a api que te falei ou outras tipo https://currencylayer.com/
 
Porque não fazes um trigger na bd para a tabela da moeda? Basicamente fazes um trigger que te preenche a coluna dos € nos artigos segundo a taxa que alteras na tabela moeda. Esse trigger deve correr sempre depois do update ser efectuado. Assim não precisas de ter a preocupação de correr o script à mão, pois a base de dados sempre que mudares o valor do cambio na tabela moeda vai executar a função do trigger.
 
Força, qualquer coisa avisa ;)

Porque não fazes um trigger na bd para a tabela da moeda? Basicamente fazes um trigger que te preenche a coluna dos € nos artigos segundo a taxa que alteras na tabela moeda. Esse trigger deve correr sempre depois do update ser efectuado. Assim não precisas de ter a preocupação de correr o script à mão, pois a base de dados sempre que mudares o valor do cambio na tabela moeda vai executar a função do trigger.

Hoje vinha dizer que tinha chegado a solução através de triggers exatamente como disseste obrigado aos dois pela ajuda ☺️
 
Não tinha dito essa solução porque eu sou apologista de que a lógica fica sempre (o máximo possivel) no lado do código..
Os pros e contras dariam para outro tópico :P

Ainda bem que resolveste o problema ;)
 
Back
Topo