Olá pessoal, eu sou um novato neste ramo da informática e estou tentando desenvolver uma ação para o meu Banco de dados, que para aqueles desenvolvedores deve ser bem simples, porém, para mim já deu a maior dor de cabeça. Por isso, vou postar a ddl das 3 tabelas que eu criei e em seguida eu digo o que eu quero fazer.
1º Tabela de Produtos
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sOF_ITENS_DA_NOTA_FIS_9113F0FA]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[sOF_ITENS_DA_NOTA_FISCAL] DROP CONSTRAINT SOF_ITENS_DA_NOTA_FIS_9113F0FA
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sOF_ITENS_DE_VENDA_FK_E3B8F218]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[sOF_ITENS_DE_VENDA] DROP CONSTRAINT SOF_ITENS_DE_VENDA_FK_E3B8F218
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sOF_CADASTRO_DE_PRODUTOS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sOF_ITENS_DA_NOTA_FISCAL]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[sOF_ITENS_DA_NOTA_FISCAL]
GO
CREATE TABLE [dbo].[sOF_ITENS_DA_NOTA_FISCAL] (
[sOF_ITE_ID] [int] IDENTITY (1, 1) NOT NULL ,
[sOF_PRO_CODIGO] [int] NOT NULL ,
[sOF_ITE_QUANTIDADE] [numeric](10, 0) NULL ,
[sOF_ITE_VALOR_UNITARIO] [money] NULL ,
[sOF_ITE_VALOR_TOTAL] [money] NULL ,
[sOF_NOT_CODIGO] [int] NULL
) ON [PRIMARY]
GO
Bom o que quero é fazer uma atualização do meu estoque. É como em qualquer sistema: Dá entrada na nota, seleciona os ítens e atualiza o estoque. Para isso acredito que uma trigger seria o melhor caminho, porém, eu não sei como se faz isso. Será que alguém poderia me ajudar? Obrigado a todos.
Pergunta
fernandomilicia
Olá pessoal, eu sou um novato neste ramo da informática e estou tentando desenvolver uma ação para o meu Banco de dados, que para aqueles desenvolvedores deve ser bem simples, porém, para mim já deu a maior dor de cabeça. Por isso, vou postar a ddl das 3 tabelas que eu criei e em seguida eu digo o que eu quero fazer.
1º Tabela de Produtos
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sOF_ITENS_DA_NOTA_FIS_9113F0FA]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[sOF_ITENS_DA_NOTA_FISCAL] DROP CONSTRAINT SOF_ITENS_DA_NOTA_FIS_9113F0FA
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sOF_ITENS_DE_VENDA_FK_E3B8F218]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[sOF_ITENS_DE_VENDA] DROP CONSTRAINT SOF_ITENS_DE_VENDA_FK_E3B8F218
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sOF_CADASTRO_DE_PRODUTOS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[sOF_CADASTRO_DE_PRODUTOS]
GO
CREATE TABLE [dbo].[sOF_CADASTRO_DE_PRODUTOS] (
[sOF_PRO_CODIGO] [int] IDENTITY (1, 1) NOT NULL ,
[sOF_CAD_NOME_DO_PRODUTO] [varchar] (60) COLLATE Latin1_General_CI_AS NULL ,
[sOF_CAD_CODIGO_DE_BARRAS] [varchar] (40) COLLATE Latin1_General_CI_AS NULL ,
[sOF_CAD_CODIGO_ALTERNATIVO] [varchar] (40) COLLATE Latin1_General_CI_AS NULL ,
[sOF_CAD_DATA_DO_CADASTRO] [datetime] NULL ,
[sOF_CAD_APLICACAO] [varchar] (60) COLLATE Latin1_General_CI_AS NULL ,
[sOF_CAD_UNIDADE_DE_COMPRA] [varchar] (3) COLLATE Latin1_General_CI_AS NULL ,
[sOF_CAD_ESTOQUE_ATUAL] [numeric](18, 0) NULL ,
[sOF_CAD_ESTOQUE_MINIMO] [numeric](18, 0) NULL ,
[sOF_CAD_PRECO_DE_COMPRA] [money] NULL ,
[sOF_CAD_PRECO_DE_VENDA] [numeric](19, 4) NULL ,
[sOF_CAD_DESCONTO_MAXIMO__] [numeric](18, 0) NULL ,
[sOF_CAD_SIM] [bit] NULL ,
[sOF_CAD_DESCONTO__] [numeric](18, 0) NULL ,
[sOF_MAR_CODIGO] [int] NULL ,
[sOF_GRU_CODIGO] [int] NULL ,
[sOF_SUB_CODIGO] [varchar] (10) COLLATE Latin1_General_CI_AS NULL ,
[sOF_FOR_CODIGO] [int] NULL
) ON [PRIMARY]
GO
2º Tabela de Nota Fiscal de entrada
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sOF_NOTA_FISCAL_DE_ENTRADA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[sOF_NOTA_FISCAL_DE_ENTRADA]
GO
CREATE TABLE [dbo].[sOF_NOTA_FISCAL_DE_ENTRADA] (
[sOF_NOT_CODIGO] [int] IDENTITY (1, 1) NOT NULL ,
[sOF_NOT_N__NOTA_FISCAL] [varchar] (24) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT_DATA_DE_EMISSAO] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT_DATA_DE_CHEGADA] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT_N__DO_PEDIDO] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_CAD_CODIGO] [int] NULL ,
[sOF_NOT_SERIE_NF] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT_VALOR_TOTAL] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT_TOTAL_NF] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT_VALOR_DO_FRETE] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT___FRETE] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT_IPI__] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT_DESCONTO__] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT_DATA_DE_SAIDA] [datetime] NULL ,
[sOF_NOT_ITENS] [varchar] (20) COLLATE Latin1_General_CI_AS NULL ,
[sOF_NOT_BASE_CALCULO_CMS_SUBS] [numeric](9, 2) NULL ,
[sOF_NOT_VALOR_CMS_SUBS] [numeric](9, 2) NULL ,
[sOF_NOT_DESPESAS_ACESSORIOS] [numeric](9, 2) NULL ,
[sOF_NOT_DESPESAS_IMPOSTOS] [numeric](9, 2) NULL ,
[sOF_NOT_OBSERVACOES] [varchar] (70) COLLATE Latin1_General_CI_AS NULL ,
[sOF_FOR_CODIGO] [int] NULL ,
[sOF_NOT_PROCESSADO] [varchar] (1) COLLATE Latin1_General_CI_AS NULL
) ON [PRIMARY]
GO
3º Tabela Itens de Fota Fiscal
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sOF_ITENS_DA_NOTA_FISCAL]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[sOF_ITENS_DA_NOTA_FISCAL]
GO
CREATE TABLE [dbo].[sOF_ITENS_DA_NOTA_FISCAL] (
[sOF_ITE_ID] [int] IDENTITY (1, 1) NOT NULL ,
[sOF_PRO_CODIGO] [int] NOT NULL ,
[sOF_ITE_QUANTIDADE] [numeric](10, 0) NULL ,
[sOF_ITE_VALOR_UNITARIO] [money] NULL ,
[sOF_ITE_VALOR_TOTAL] [money] NULL ,
[sOF_NOT_CODIGO] [int] NULL
) ON [PRIMARY]
GO
Bom o que quero é fazer uma atualização do meu estoque. É como em qualquer sistema: Dá entrada na nota, seleciona os ítens e atualiza o estoque. Para isso acredito que uma trigger seria o melhor caminho, porém, eu não sei como se faz isso. Será que alguém poderia me ajudar? Obrigado a todos.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.