Fórum Idéia de estrutura e regras de negócio #416559

10/05/2012

0

Senhores, agora que terminei a minha parte de cadastros com a ajuda da galera aki do fórum, gostaria de saber a opnião de como poderia montar um estrutura em meu estoque que faz cálculos em tempo de execução, seria nescessário criar um data module somente para tal? ou não ? minha estrutura conta com dois data modules uma para consulta e outro para cadastro. O que eu presciso é o seguinte, como tenho varios cadastros no estoque(custo de transporte, impostos etc.) e no cadastro que vou fazer agora entrarei com somente informações principais como valor de compra (sem os impostos frete etc.), cod de barras, codigo do produto etc..e nesta tabela terá chaves secundáris que receberão parametros pre-estabelecidos..e agora que entra a idéia que estou prescisando..estes parametros calcula os impostos em tempo real..ou seja seu eu mudar uma informação de imposto ou frete o valor tem que mudar altomaticamente..um exemplo.. tem o cadastro de empresa que vende por peça,peso ou metro..digamos que o frete é calculado por metro..se por algum motivo eu prescisar mudar o preço do metro o valor do estoque muda automaticamente (isso vale para a venda tbm..)´.

Estou pegando idéias e aproveitar a experiencias para evitar de para frente refazer tudo de novo por causa de um estudo mau feito..conto com vc´s..

Como pretendo fazer a estrutura:

Criar um data mudule só para esta função. (os meus outros os cadastro e pesquisa etão com muitos componetes de conecção isso pode me confundir na hora de programar ou não).

A tabela receberá informações básicas para o cadastro e terá entradas de chaves secundárias para recer os parametros, galera de boa mesmo são sete parametros externos que esta tabela vai receber, aí pensei será que isso num vai gerar lentidão no sistema ? imagina toda vez que eu carregar um íten ele ter que fazer todo processor de busca de parametros e ainda realizar um cálculo ? ou seria melhor eu fazer isso direto no banco de dados usando triges e procedures, este sistema vai funcionar em rede inclusive remotamente..

se alguém puder me dá uma luz ou se estou indo no caminho certo..vlw mesmo aí galera..

Gilmar Moraes

Gilmar Moraes

Responder

Posts

10/05/2012

Joel Rodrigues

Nesse caso, o ideal seria usar triggers direto no banco de dados. Pouparia a sua aplicação e facilitaria a manutenção. Por exemplo: você tem uma tabela de estoque cujo campo preço de venda depende de uma tabela de impostos. Ao alterar o valor do imposto, o campo preço de custo da tabela Estoque deve ser atualizado automaticamente.
Para isso, você pode criar um trigger na tabela de impostos para realizar um update na tabela Estoque quando o valor for alterado. Pesquise sobre o funcionamento de triggers.
Qual banco você usa?
Responder

Gostei + 0

10/05/2012

Gilmar Moraes

Nesse caso, o ideal seria usar triggers direto no banco de dados. Pouparia a sua aplicação e facilitaria a manutenção. Por exemplo: você tem uma tabela de estoque cujo campo preço de venda depende de uma tabela de impostos. Ao alterar o valor do imposto, o campo preço de custo da tabela Estoque deve ser atualizado automaticamente.
Para isso, você pode criar um trigger na tabela de impostos para realizar um update na tabela Estoque quando o valor for alterado. Pesquise sobre o funcionamento de triggers.
Qual banco você usa?


Então..estou refazendo um programa que foi descontinuado pelos seu criadores a empresa nem existe mais, o banco de dados é o sql server, tenho mais intimidade com firebird e para te ser honesto tive dificuldades em botar o banco de dados (SQL SERVER) para funcionar em minha máquina e o pior num é só isso o programa se conecta remotamente de qualquer lugar e essa vai ser outra luta, estou vendo alguns tutorias sobre este banco de dados más basiamente ensinam só o basico mesmo..más tenho este projeto como desafio..e pensei usar trigges no firebird usando o IBXpert é muito fácil mas no sql manager num dá muitas opções não,,teria que programar no purrete mesmo..rsrs
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar