Você está na página 1de 11

18/10/2010 controle de estoque – como baixar esto…

Home
Delphi
Downloads
Eleições 2010
Firebird
Noticias
Off Topics
Outros
sql
Tutoriais
veja

Pesquisar no Blog...
Home > Firebird, Tutoriais > controle de estoque – como baixar estoque em varias filiais usando trigger – 1/3

controle de estoque – como baixar estoque em varias filiais usando


trigger – 1/3
June 7th, 2010 Fernando Medeiros Leave a comment Go to comments

Olá pessoal,

É bem comum programadores iniciantes, desenvolverem um pequeno controle de estoque.


A maior dificuldade não está no desenvolvimento, a técnica muitos dominam. O maior problema é analisar os
requisitos sem ter aquela visão além do alcance, rs.

Alguns, depois de algum tempo, percebem que a pequena criação precisa de muitas mudanças e pensam
seriamente em replanejar uma nova versão do software.

Voltando ao controle de estoque, um exemplo prático da falta de visão dos iniciantes:

Uma pequena confecção cresce e o controle de estoque deve ser distribuído entre 3 filiais. Se o software não foi
planejado para essa situação, nosso programador vai ter um pouco de trabalho. Já vimos que ele precisa
amadurecer e é nessa situação que o profissional mais aprende.

O nível de aprendizado vai depender da atitude e coragem do profissional, já que o conhecimento da regra de
negócio deixou a desejar.

Alguns programadores resolvem dessa forma:

Criando 3 campos para controlar o estoque na tabela produtos, mas eu já vi coisa pior:

fernandomedeiros.com.br/…/controle-d… 1/4
18/10/2010 controle de estoque – como baixar esto…
Preciso falar alguma coisa ?

Mas nosso programador analisou bem a situação e resolveu dessa forma:

Primeiro ele removeu qualquer referência ao estoque na tabela produtos ( claro que existem outros campos mas
vamos comentar apenas sobre os relacionados ao estoque )

A confecção cresceu, ele percebe que deve criar uma tabela para cadastrar as filiais:

Nessa tabela ele identifica a filial e o produto, fica muito mais fácil baixar qualquer produto em qualquer filial

A tabela de vendas, ele incluiu o campo filialid que identifica em qual filial deve ser dado a baixa naquele
produto.

No próximo tutorial, veremos como o programador fez a baixa no estoque através de triggers

Firebird, Tutoriais | controle de estoque, Firebird, tutfb06, tutorial

Comments (4) Trackbacks (0) Leave a comment Trackback

1. Aloisio Pires
January 14th, 2010 at 20:56 | #1
Reply | Quote

Olá Fernando!

Parabéns por compartilhar com os companheiros programadores sua experiência. Sou programador
Delphi e nesse longo caminho da evolução estava buscando um forma mais inteligente de controlar
estoques em vários locais (filiais e depósitos) foi aí que encontrei este excelente artigo que me mostrou
uma forma eficiente de fazer isto.

Grande abraço!

2. Fernando Medeiros
January 15th, 2010 at 00:53 | #2
Reply | Quote

Olá Aloísio,
O bom de compartilhar é a satisfação de ter ajudado alguem. Quantos de nós não já ficou perdido com
uma regra de negócio ? Obrigado por comentar e pelo elogio. Abracos

3. Anselmo
August 27th, 2010 at 12:05 | #3
Reply | Quote

fernandomedeiros.com.br/…/controle-d… 2/4
18/10/2010 controle de estoque – como baixar esto…
Se eu fosse juntar todos os tutorias otimos como este aqui, diria que nao existe coisas ruim nesse mundo.
Parabens!!!

4. Fernando Medeiros
August 27th, 2010 at 13:05 | #4
Reply | Quote

Opa Anselmo, obrigado pelo apoio.


Espero te-lo ajudado com algum tutorial.
Abraços

1. No trackbacks yet.

Name (required)
E-Mail (will not be published) (required)
Website
Security Code:

Subscribe to comments feed


Submit Comment
XML Generator – Stored Procedure Firebird controle de estoque – como baixar estoque em varias filiais
usando trigger – 2/3
RSS
Newsletter Twitter
Notebook Dell 15R com 4gb e i5 sem frete

DevMedia Posts:
Ponteiros Clube Delphi 118
Neste artigo a bordarem os ponteiro s: sua sintax e a tual e m uda nça...

Introdução Métodos Ágeis � Curso Scrum Parte 1


Nesta víde o a ula, será m o strado alguns pro blem as no dese ...

Curso online Aplicações Client/Server com dbExpress e Firebird


Veja nesse curso online to das as caracte rísticas de um a aplica&...

www.devmedia.com.br

Categories
Delphi
Downloads
Eleições 2010
Firebird
Noticias
Off Topics
Outros
sql
Tutoriais
veja

fernandomedeiros.com.br/…/controle-d… 3/4
18/10/2010 controle de estoque – como baixar esto…
Blogroll

Firebird Curso Stored Procedures Avançado

Lição 1 - Parâmetros de Saída XML Generator


Lição 2 - Parâmetros de Entrada
Instalação e Configuração Lição 3 - Condições ( if...then...else)
Lição 4 - Declarando Variáveis
No Windows, No Linux, Firewall Lição 5 - Loop's ( while...end )
Windows Lição 6 - Suspend - Retornando dados Passagens Aéreas com Ofertas Online
Lição 7 - Cursores - for select...do Exclusivas
C ompre na Decolar e programe toda
www.Decolar.com /passage m
Básico
Controle de Saldos Venha P/ o Atual Santana
Apto de 4 dorms e até 284m² em.
Banco de Dados, Tabela, Generators www.Lopes.com .br/aptoatua lsantana
Triggers, Prefixos New e Old Saldo anterior, Listar Extrato, Saldo atual

Loja Aves da Mata


Venda de papagaios, araras e passarinhos.
Alguns Erros Intermediário www.ave sda m ata.com .br

Lock conflict... Wrong or... Listar Produtos, Vendas Anuais


Links Patrocinados
Unsupported on... Unavaliable... Vendas Mensais, Referência Cruzada
Arithmetic exception... Referência Cíclica, Recursividade

Estoque

Planejando tabelas, Eventos "after


insert/update", Evento "after delete"

fernandomedeiros.com.br/…/controle-d… 4/4
18/10/2010 controle de estoque – como baixar esto…

Home
Delphi
Downloads
Eleições 2010
Firebird
Noticias
Off Topics
Outros
sql
Tutoriais
veja

Pesquisar no Blog...
Home > Firebird, Tutoriais > controle de estoque – como baixar estoque em varias filiais usando trigger – 2/3

controle de estoque – como baixar estoque em varias filiais usando


trigger – 2/3
June 7th, 2010 Fernando Medeiros Leave a comment Go to comments

Nesse tutorial vamos criar 2 procedures para dar baixa no estoque de cada produto.

Duas triggers serão necessárias na tabela vendas.


Uma no evento after insert (depois de inserir) e outra no evento after update (depois de alterar).

Como identificar em que evento colocar seus códigos ?

Sempre que quiser alterar/incluir/excluir um registro em outra tabela que não seja a atual (vendas), coloque
seu código no evento after e quando quiser alterar um registro na tabela atual, é no evento before que deve
inserir seu código.

Para tratar a inclusão de um registro na tabela vendas:

Neste código, estamos atualizando o campo estoque na tabela estoques assim que um registro na tabela vendas
for incluido.

Os campos new.filialid e new.produtoid da tabela vendas vão auxiliar na identificação do registro na tabela
estoques.

fernandomedeiros.com.br/…/controle-d… 1/4
18/10/2010 controle de estoque – como baixar esto…
Na trigger acima, vamos devolver a quantidade antiga ao estoque (+old.quantidade) e tirar a quantidade nova (-
new.quantidade).

Viram como os sufixos new e old ajudam ?

No próximo tutorial vamos tratar a exclusão do registro na tabela vendas.

Firebird, Tutoriais | controle de estoque, Firebird, tutfb06, tutorial

Comments (5) Trackbacks (0) Leave a comment Trackback

1. Dário
March 23rd, 2010 at 18:11 | #1
Reply | Quote

Cara eu fiz as duas trigger testei as duas foi um beleza, mas se for possivél poderia mim tirar a seguinte
duvida. No caso de um retorno ao estoque como eu utilizo a trigger ex. Nota Fiscal
De qualquer forma valeu!

2. admin
March 24th, 2010 at 01:57 | #2
Reply | Quote

Amigo,

Não entendi mas considerando que esteja falando sobre nota fiscal de entrada, você faria da mesma
forma, so que ao inves de tirar(-) do estoque você vai adicionar(+). Dai você vai criar as 3 triggers
insert/update/delete.

Se eu nao entendi, por favor, detalhe mais. Abracos

3. Dário
March 25th, 2010 at 12:31 | #3
Reply | Quote

Dário :
Desculpa acho que eu escrevi de forma errada! Veja criei essa trigger com uma instrução if
no caso ela vai verificar se o campo negado esta com valor 1 se o valor for 1, não sera dado
baixa no estoque, mas quando eu colocar outro valor dara baixa normalmente.
CREATE TRIGGER “Saida_Estoque” FOR “SERVPROD”
ACTIVE AFTER INSERT POSITION 1
AS
begin
/* Trigger text */
if (new.negado = ‘1′) then
update estoque
SET QTD = QTD + NEW.qtd
WHERE CODPRO = NEW.CODPRO;
end
O codigo fuciona o problema é que eu quero ver se é possivel que na hora que altere o
campo negado para ‘2′ ele baixe o estoque. Fucionaria como um orçamento que não dar
baixa no estoque de imediato so com aprovação do cliente! ok
De qualquer forma eu agradeço pela atenção!

4. admin
March 25th, 2010 at 20:46 | #4
Reply | Quote

Sim Dario. Mas recomendo criar uma outra tabela para separar uma regra de negocio da outra.
Orcamento e uma coisa, Vendas é outra.
(minha opiniao).

fernandomedeiros.com.br/…/controle-d… 2/4
18/10/2010 controle de estoque – como baixar esto…
5. Dário
March 26th, 2010 at 10:49 | #5
Reply | Quote

Valeu de certo! Muito obrigado pela dica!

1. No trackbacks yet.

Name (required)
E-Mail (will not be published) (required)
Website
Security Code:

Subscribe to comments feed


Submit Comment
controle de estoque – como baixar estoque em varias filiais usando trigger – 1/3 controle de estoque – como
baixar estoque em varias filiais usando trigger – 3/3
RSS
Newsletter Twitter
Notebook Dell 15R com 4gb e i5 sem frete

DevMedia Posts:
Ponteiros Clube Delphi 118
Neste artigo a bordarem os ponteiro s: sua sintax e a tual e m uda nça...

Introdução Métodos Ágeis � Curso Scrum Parte 1


Nesta víde o a ula, será m o strado alguns pro blem as no dese ...

Curso online Aplicações Client/Server com dbExpress e Firebird


Veja nesse curso online to das as caracte rísticas de um a aplica&...

www.devmedia.com.br

Categories
Delphi
Downloads
Eleições 2010
Firebird
Noticias
Off Topics
Outros
sql
Tutoriais
veja

Blogroll

fernandomedeiros.com.br/…/controle-d… 3/4
18/10/2010 controle de estoque – como baixar esto…

Firebird Curso Stored Procedures Avançado

Lição 1 - Parâmetros de Saída XML Generator


Lição 2 - Parâmetros de Entrada
Instalação e Configuração Lição 3 - Condições ( if...then...else)
Lição 4 - Declarando Variáveis
No Windows, No Linux, Firewall Lição 5 - Loop's ( while...end )
Windows Lição 6 - Suspend - Retornando dados Imóvel em Vila Medeiros - Consulte um
Lição 7 - Cursores - for select...do Corretor Online
Seu Imóvel está aqui. C lique e faça
www.Lopes.com .br
Básico
Controle de Saldos Serviço Autorizado Hobart Curitiba (3284
4661)
Banco de Dados, Tabela, Generators Assistencia Técnica e Peças Hobart
Triggers, Prefixos New e Old Saldo anterior, Listar Extrato, Saldo atual www.hobartcuritiba.co m .br

Building Conectores
C onectores Eletro-Eletronicos, Placa de Bornes,
Alguns Erros Intermediário Tomadas e interruptor.
www.building.ind.br

Lock conflict... Wrong or... Listar Produtos, Vendas Anuais


Links Patrocinados
Unsupported on... Unavaliable... Vendas Mensais, Referência Cruzada
Arithmetic exception... Referência Cíclica, Recursividade

Estoque

Planejando tabelas, Eventos "after


insert/update", Evento "after delete"

fernandomedeiros.com.br/…/controle-d… 4/4
18/10/2010 controle de estoque – como baixar esto…

Home
Delphi
Downloads
Eleições 2010
Firebird
Noticias
Off Topics
Outros
sql
Tutoriais
veja

Pesquisar no Blog...
Home > Firebird > controle de estoque – como baixar estoque em varias filiais usando trigger – 3/3

controle de estoque – como baixar estoque em varias filiais usando


trigger – 3/3
June 7th, 2010 Fernando Medeiros Leave a comment Go to comments

Agora que já entenderam como trabalhar com as triggers after insert e after update, vamos escrever a trigger
after delete:

Não tem mistério, sempre que um registro na tabela vendas for excluído, a trigger acima será responsável por
devolver ao estoque a quantidade que foi tirada anteriormente.

Espero que tenham gostado. Até a próxima.

Firebird | controle de estoque, Firebird, triggers, tutfb06, tutorial

Comments (0) Trackbacks (0) Leave a comment Trackback

1. No comments yet.

1. No trackbacks yet.

Name (required)
E-Mail (will not be published) (required)
Website
Security Code:

fernandomedeiros.com.br/…/controle-d… 1/3
18/10/2010 controle de estoque – como baixar esto…

Subscribe to comments feed


Submit Comment
controle de estoque – como baixar estoque em varias filiais usando trigger – 2/3 stored procedure – como
calcular o saldo anterior de uma conta bancaria 1/3
RSS
Newsletter Twitter
Notebook Dell 15R com 4gb e i5 sem frete

DevMedia Posts:
Ponteiros Clube Delphi 118
Neste artigo a bordarem os ponteiro s: sua sintax e a tual e m uda nça...

Introdução Métodos Ágeis � Curso Scrum Parte 1


Nesta víde o a ula, será m o strado alguns pro blem as no dese ...

Curso online Aplicações Client/Server com dbExpress e Firebird


Veja nesse curso online to das as caracte rísticas de um a aplica&...

www.devmedia.com.br

Categories
Delphi
Downloads
Eleições 2010
Firebird
Noticias
Off Topics
Outros
sql
Tutoriais
veja

Blogroll

Firebird Curso Stored Procedures Avançado

Lição 1 - Parâmetros de Saída XML Generator


Lição 2 - Parâmetros de Entrada
Instalação e Configuração Lição 3 - Condições ( if...then...else)
Lição 4 - Declarando Variáveis
No Windows, No Linux, Firewall Lição 5 - Loop's ( while...end )
Windows Lição 6 - Suspend - Retornando dados

fernandomedeiros.com.br/…/controle-d… 2/3
18/10/2010 controle de estoque – como baixar esto…
Windows Lição 6 - Suspend - Retornando dados Programas Culturais para Família com um
Lição 7 - Cursores - for select...do Super Desconto
Aproveite para conhecer os Museus,
www.Click O n.com .br/entrete nim ento
Básico
Controle de Saldos Pousadas com Desconto na Peixe Urbano
As melhores pousadas com 60% de desconto!
Banco de Dados, Tabela, Generators C onfira e junta-se hoje!
Triggers, Prefixos New e Old Saldo anterior, Listar Extrato, Saldo atual www.peix e urbano .com .br

Telas Guara 35 Anos Cercando Você de


Segurança e Qualidade
Alguns Erros Intermediário Variada linha de telas, grade,
www.te la sguara.com .br

Lock conflict... Wrong or... Listar Produtos, Vendas Anuais


Links Patrocinados
Unsupported on... Unavaliable... Vendas Mensais, Referência Cruzada
Arithmetic exception... Referência Cíclica, Recursividade

Estoque

Planejando tabelas, Eventos "after


insert/update", Evento "after delete"

fernandomedeiros.com.br/…/controle-d… 3/3

Você também pode gostar