USE [TryNFeOnline]
GO

ALTER TABLE [dbo].[produto] ADD 
[idnControlaLote] [bit] NULL
GO
ALTER TABLE [dbo].[OrdemServicoProduto] ADD 
[idnProdutoControlaLote] [bit] NULL
GO
ALTER TABLE [dbo].[Operador] ADD 
[idnNaoPermiteEditarMovimentosOutrosVendedores] [bit] NULL,
[idnNaoPermiteEditarCadastroClientesOutrosVendedores] [bit] NULL
GO
ALTER TABLE [dbo].[NFProduto] ADD 
[idnProdutoControlaLote] [bit] NULL
GO
ALTER TABLE [dbo].[operacao] ADD 
[idnDestacarImpostosXML] [bit] NULL
GO
ALTER TABLE [dbo].[estoqueAjustes] ADD 
[idnProdutoControlaLote] [bit] NULL
GO
ALTER TABLE [dbo].[emitente] ADD 
[indTipoLigacao] [varchar] (5) COLLATE Latin1_General_CI_AS NULL,
[indGrupoTensao] [varchar] (5) COLLATE Latin1_General_CI_AS NULL
GO
ALTER TABLE [dbo].[configuracoes] ADD 
[idnAtualizarMargemLucroMarkupImportacaoXML] [bit] NULL,
[idnAtualizarHorarioVendaAoSalvar] [bit] NULL
GO
ALTER TABLE [dbo].[CondicionalProduto] ADD 
[idnProdutoControlaLote] [bit] NULL
GO
ALTER TABLE [dbo].[NFFatura] ADD 
[indTipoLigacao] [varchar] (5) COLLATE Latin1_General_CI_AS NULL,
[indGrupoTensao] [varchar] (5) COLLATE Latin1_General_CI_AS NULL
GO
CREATE TABLE [dbo].[ProdutoLote]
(
	[id] [int] IDENTITY (1,1) NOT NULL,
	[idProduto] [int] NOT NULL,
	[idProdutoClassificacao] [int] NULL,
	[numero] [varchar] (50) COLLATE Latin1_General_CI_AS NULL,
	[quantidade] [decimal] (18,4) NOT NULL,
	[dataFabricacao] [date] NULL,
	[dataValidade] [date] NULL,
	[idFilial] [int] NULL,
	CONSTRAINT [PK_ProdutoLote] PRIMARY KEY CLUSTERED
	(
		[id] ASC
	) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY  = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[ProdutoLoteMovimento]
(
	[id] [int] IDENTITY (1,1) NOT NULL,
	[idProdutoLote] [int] NOT NULL,
	[quantidade] [decimal] (18,4) NOT NULL,
	[idNFProduto] [int] NULL,
	[idCondicionalProduto] [int] NULL,
	[idCondicionalDevolucao] [int] NULL,
	[idPedidoProduto] [int] NULL,
	[idOrdemServicoProduto] [int] NULL,
	[idEstoqueAjustes] [int] NULL,
	CONSTRAINT [PK_ProdutoLoteMovimento] PRIMARY KEY CLUSTERED
	(
		[id] ASC
	) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY  = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[EstoqueProdutoLote]
(
	@idEmitenteInf int, 
	@idProdutoInf int,
	@idProdutoClassificacaoInf int = 0,
	@idContaInf int = 0,
	@idProdutoLoteInf int = 0
)
RETURNS 
@Resultado TABLE 
(
	idLote int,
	numeroLote varchar(50),
	qtdLote decimal(18,4),
	dataFabricacao date,
	dataValidade date,
	idProduto int,
	idProdutoClassificacao int NULL,
	dscProduto varchar(500),
	qtd decimal(18,4),
	unidadeMedida varchar(30),
	codigoProduto varchar(50)
)
AS
BEGIN
	
	declare @idEmitente int = @idEmitenteInf;
	declare @idProduto int = @idProdutoInf;
	declare @idProdutoClassificacao int = @idProdutoClassificacaoInf;
	declare @idConta int = @idContaInf;
	declare @idProdutoLote int = @idProdutoLoteInf;
		
	declare @ItensEntradaSaida TABLE
	(
		idProduto int,
		idProdutoClassificacao int,
		dscProduto varchar(500),
		codigoProduto varchar(50),
		unidadeMedida varchar(30),
		unidadeMedidaConvertida varchar(30),
		fatorConversao decimal(18,4),
		qtd decimal(18,4),
		idOperacao int,
		idnOperacao varchar(5),
		idProdutoLote int
	)
	
	--Notas de entrada / Saida
	INSERT INTO @ItensEntradaSaida
	select
		np.idProduto,
		np.idProdutoClassificacao,
		(case when np.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end),
		(case when np.idProdutoClassificacao is not null then cast(pr.id as varchar(47)) + REPLACE(STR(pc.sequencia, 3), SPACE(1), '0') else cast(pr.id as varchar(50)) end),
		upper(coalesce(pr.ucom, '')),
		upper(coalesce(np.ucom, '')),
		--Se não tem a quantidade real a ser considerada para o estoque, e as unidades de medida são diferentes, seleciona o fator de conversão
		(case when pr.ucom <> np.ucom and coalesce(np.qcomEstoque, 0) = 0 then (select top 1 pu.fatorConversao from produtoUnidade pu where (pu.idProduto = np.idProduto) and (pu.unidadeMedida = np.ucom)) else 0 end) as fatorConversao,
		(case when (case when ecp.idnOperacao = '=' then (case when op.idnES = 0 then '+' else '-' end) else ecp.idnOperacao end) = '-' then
		plm.quantidade * -1 else plm.quantidade end),
		nf.idOperacao,
		(case when ecp.idnOperacao = '=' then (case when op.idnES = 0 then '+' else '-' end) else ecp.idnOperacao end),
		plm.idProdutoLote
		from NFProduto np
		inner join notafiscal nf on nf.id = np.idNotaFiscal
		inner join nfEmitente nfe on nfe.idnotafiscal = np.idnotafiscal
		inner join produto pr on pr.id = np.idProduto
		inner join operacao op on op.id = nf.idOperacao
		inner join EstoqueContaOperacao ecp on ecp.idOperacao = nf.idOperacao
		left join produtoClassificacao pc on pc.id = np.idProdutoClassificacao
		inner join ProdutoLoteMovimento plm on plm.idNFProduto = np.id
		inner join ProdutoLote pl on pl.id = plm.idProdutoLote
		where ((nf.nfeCstat = 100) or (nf.nfeCstat = 150))
		and (nf.nfeTpAmb = 1)
		--and (cast(nf.dataEmissao as date) <= @data)
		and ((op.idnNaoCalcularEstoque is null) or (op.idnNaoCalcularEstoque = 0))
		and (nfe.idEmitente = @idEmitente)
		and ((np.idProduto = @idProduto) or (@idProduto = 0))
		and ((np.idProdutoClassificacao = @idProdutoClassificacao) or (@idProdutoClassificacao = 0))
		and ((np.idnItemCanceladoCF is null) or (np.idnItemCanceladoCF != 1))
		and (pr.idnControlaEstoque = 1)
		and ((ecp.idConta = @idConta) or (@idConta = 0))
		and ((pl.id = @idProdutoLote) or (@idProdutoLote = 0))
	
	--Ajustes de estoque
	INSERT INTO @ItensEntradaSaida
		select
			ea.idProduto,
			ea.idProdutoClassificacao,
			(case when ea.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end),
			(case when ea.idProdutoClassificacao is not null then cast(pr.id as varchar(20)) + REPLACE(STR(pc.sequencia, 3), SPACE(1), '0') else cast(pr.id as varchar(20)) end),
			upper(coalesce(pr.ucom,'')),
			upper(coalesce(ea.unidadeMedida, '')),
			(case when pr.ucom <> ea.unidadeMedida then (select top 1 pu.fatorConversao from produtoUnidade pu where (pu.idProduto = ea.idProduto) and (pu.unidadeMedida = ea.unidadeMedida)) else 0 end) as fatorConversao,
			(case when (case when ecp.idnOperacao = '=' then (case when ea.idnES = 0 then '+' else '-' end) else ecp.idnOperacao end) = '-' then
			plm.quantidade * -1 else plm.quantidade end),
			ea.idOperacao,
			(case when ecp.idnOperacao = '=' then (case when ea.idnES = 0 then '+' else '-' end) else ecp.idnOperacao end),
			plm.idProdutoLote
		from estoqueAjustes ea
		inner join produto pr on pr.id = ea.idProduto
		inner join operacao op on op.id = ea.idOperacao
		inner join EstoqueContaOperacao ecp on ecp.idOperacao = ea.idOperacao
		left join ProdutoClassificacao pc on pc.id = ea.idProdutoClassificacao
		inner join ProdutoLoteMovimento plm on plm.idEstoqueAjustes = ea.id
		inner join ProdutoLote pl on pl.id = plm.idProdutoLote
		where (ea.idEmitente = @idEmitente)
		--and (cast(ea.data as date) <= @data)
		and ((ea.idProduto = @idProduto) or (@idProduto = 0))
		and ((ea.idProdutoClassificacao = @idProdutoClassificacao) or (@idProdutoClassificacao = 0))
		and (pr.idnControlaEstoque = 1)
		and ((op.idnNaoCalcularEstoque is null) or (op.idnNaoCalcularEstoque = 0))
		and ((ecp.idConta = @idConta) or (@idConta = 0))
		and ((pl.id = @idProdutoLote) or (@idProdutoLote = 0))
		
	--Produtos alocados nas ordens de serviço
	INSERT INTO @ItensEntradaSaida
		select
			osp.idProduto,
			osp.idProdutoClassificacao,
			(case when osp.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end),
			(case when osp.idProdutoClassificacao is not null then cast(pr.id as varchar(20)) + REPLACE(STR(pc.sequencia, 3), SPACE(1), '0') else cast(pr.id as varchar(20)) end),
			upper(coalesce(pr.ucom, '')),
			upper(coalesce(osp.ucom, '')),
			(case when pr.ucom <> osp.ucom then (select top 1 pu.fatorConversao from produtoUnidade pu where (pu.idProduto = osp.idProduto) and (pu.unidadeMedida = osp.ucom)) else 0 end) as fatorConversao,
			(case when (case when ecp.idnOperacao = '=' then (case when op.idnES = 0 then '+' else '-' end) else ecp.idnOperacao end) = '-' then
			plm.quantidade * -1 else plm.quantidade end),
			os.idOperacao,
			(case when ecp.idnOperacao = '=' then (case when op.idnES = 0 then '+' else '-' end) else ecp.idnOperacao end),
			plm.idProdutoLote
		from OrdemServicoProduto osp
		inner join produto pr on pr.id = osp.idProduto
		inner join OrdemServico os on os.id = osp.idOrdemServico
		inner join operacao op on op.id = os.idOperacao
		inner join EstoqueContaOperacao ecp on ecp.idOperacao = os.idOperacao
		left join ProdutoClassificacao pc on pc.id = osp.idProdutoClassificacao
		inner join ProdutoLoteMovimento plm on plm.idOrdemServicoProduto = osp.id
		inner join ProdutoLote pl on pl.id = plm.idProdutoLote
		where (os.idEmitente = @idEmitente)
		--and ((case when osp.dataHora is not null then cast(osp.dataHora as date) else cast(os.dataHora as date) end) <= @data)
		and ((osp.idProduto = @idProduto) or (@idProduto = 0))
		and ((osp.idProdutoClassificacao = @idProdutoClassificacao) or (@idProdutoClassificacao = 0))
		and ((op.idnNaoCalcularEstoque is null) or (op.idnNaoCalcularEstoque = 0))
		and (pr.idnControlaEstoque = 1)
		and ((ecp.idConta = @idConta) or (@idConta = 0))
		and ((os.idnCancelada = 0) or (os.idnCancelada is null))
		and ((pl.id = @idProdutoLote) or (@idProdutoLote = 0))

	--Pedidos
	INSERT INTO @ItensEntradaSaida
		select
			pp.idProduto,
			pp.idProdutoClassificacao,
			(case when pp.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end),
			(case when pp.idProdutoClassificacao is not null then cast(pr.id as varchar(20)) + REPLACE(STR(pc.sequencia, 3), SPACE(1), '0') else cast(pr.id as varchar(20)) end),
			upper(coalesce(pr.ucom, '')),
			upper(coalesce(pp.ucom, '')),
			(case when pr.ucom <> pp.ucom then (select top 1 pu.fatorConversao from produtoUnidade pu where (pu.idProduto = pp.idProduto) and (pu.unidadeMedida = pp.ucom)) else 0 end) as fatorConversao,
			(case when (case when ecp.idnOperacao = '=' then (case when op.idnES = 0 then '+' else '-' end) else ecp.idnOperacao end) = '-' then
			(plm.quantidade - coalesce((select plm2.quantidade from pedidoFaturado pf inner join NFProduto nfp on nfp.idNotaFiscal = pf.idNotaFiscal inner join ProdutoLoteMovimento plm2 on plm2.idNFProduto = nfp.id where pf.idPedido = pe.id and plm2.idProdutoLote = pl.id), 0)) * -1 
			else plm.quantidade - coalesce((select plm2.quantidade from pedidoFaturado pf inner join NFProduto nfp on nfp.idNotaFiscal = pf.idNotaFiscal inner join ProdutoLoteMovimento plm2 on plm2.idNFProduto = nfp.id where pf.idPedido = pe.id and plm2.idProdutoLote = pl.id), 0) end),
			pe.idOperacao,
			(case when ecp.idnOperacao = '=' then (case when op.idnES = 0 then '+' else '-' end) else ecp.idnOperacao end),
			plm.idProdutoLote
		from pedidoProduto pp
		inner join produto pr on pr.id = pp.idProduto
		inner join pedido pe on pe.id = pp.idPedido
		inner join operacao op on op.id = pe.idOperacao
		inner join EstoqueContaOperacao ecp on ecp.idOperacao = pe.idOperacao
		left join ProdutoClassificacao pc on pc.id = pp.idProdutoClassificacao
		inner join ProdutoLoteMovimento plm on plm.idPedidoProduto = pp.id
		inner join ProdutoLote pl on pl.id = plm.idProdutoLote
		where (pe.idEmitente = @idEmitente)
		--and (cast(pe.dataPedido as date) <= @data)
		and ((pe.idnFaturado is null) or (pe.idnFaturado = 0))
		and ((pe.idnCancelado is null) or (pe.idnCancelado = 0))
		and ((pe.idnProducao = 1)
		or (((pe.idnProducao is null) or (pe.idnProducao = 0)) and ((op.idnConsiderarEstoqueApenasPedidoEmProducao is null) or (op.idnConsiderarEstoqueApenasPedidoEmProducao = 0))))
		and ((pp.idProduto = @idProduto) or (@idProduto = 0))
		and ((pp.idProdutoClassificacao = @idProdutoClassificacao) or (@idProdutoClassificacao = 0))
		and ((op.idnNaoCalcularEstoque is null) or (op.idnNaoCalcularEstoque = 0))
		and (pr.idnControlaEstoque = 1)
		and ((ecp.idConta = @idConta) or (@idConta = 0))
		and ((pl.id = @idProdutoLote) or (@idProdutoLote = 0))
		
	--Condicional
	INSERT INTO @ItensEntradaSaida
		select
			cp.idProduto,
			cp.idProdutoClassificacao,
			(case when cp.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end),
			(case when cp.idProdutoClassificacao is not null then cast(pr.id as varchar(20)) + REPLACE(STR(pc.sequencia, 3), SPACE(1), '0') else cast(pr.id as varchar(20)) end),
			upper(coalesce(pr.ucom, '')),
			upper(coalesce(cp.ucom, '')),
			0 as fatorConversao,
			(case when (case when ecp.idnOperacao = '=' then (case when op.idnES = 0 then '+' else '-' end) else ecp.idnOperacao end) = '-' then
		    (plm.quantidade - coalesce((select plm2.quantidade from ProdutoLoteMovimento plm2 inner join CondicionalDevolucao cd on plm2.idCondicionalDevolucao = cd.id where cd.idCondicional = cp.idCondicional and plm2.idProdutoLote = pl.id), 0)) * -1 
		    else plm.quantidade - coalesce((select plm2.quantidade from ProdutoLoteMovimento plm2 inner join CondicionalDevolucao cd on plm2.idCondicionalDevolucao = cd.id where cd.idCondicional = cp.idCondicional and plm2.idProdutoLote = pl.id), 0) end),
			co.idOperacao,
			(case when ecp.idnOperacao = '=' then (case when op.idnES = 0 then '+' else '-' end) else ecp.idnOperacao end),
			plm.idProdutoLote
		from CondicionalProduto cp
		inner join produto pr on pr.id = cp.idProduto
		inner join Condicional co on co.id = cp.idCondicional		
		inner join operacao op on op.id = co.idOperacao
		inner join EstoqueContaOperacao ecp on ecp.idOperacao = co.idOperacao
		left join ProdutoClassificacao pc on pc.id = cp.idProdutoClassificacao
		inner join ProdutoLoteMovimento plm on plm.idCondicionalProduto = cp.id
		inner join ProdutoLote pl on pl.id = plm.idProdutoLote
		where (co.idEmitente = @idEmitente)
		--and (cast(co.dataEmissao as date) <= @data)
		and ((co.idnFechado is null) or (co.idnFechado = 0))
		and ((cp.idProduto = @idProduto) or (@idProduto = 0))
		and ((cp.idProdutoClassificacao = @idProdutoClassificacao) or (@idProdutoClassificacao = 0))
		and ((op.idnNaoCalcularEstoque is null) or (op.idnNaoCalcularEstoque = 0))
		and (pr.idnControlaEstoque = 1)
		and ((ecp.idConta = @idConta) or (@idConta = 0))
		and ((pl.id = @idProdutoLote) or (@idProdutoLote = 0))
		

	--atualiza a qtd dos produtos com unidade de medida diferente da definida no cadastro, e efetua a conversão conforme multiplicador
	UPDATE @ItensEntradaSaida set qtd = qtd * fatorConversao
	WHERE (unidadeMedidaConvertida <> '')
	and (unidadeMedida <> unidadeMedidaConvertida)
	and (fatorConversao > 0)
	
	INSERT INTO @Resultado
		select pl.id,
			   pl.numero,
			   pl.quantidade,
			   pl.dataFabricacao,
			   pl.dataValidade,
			   ies.idProduto,
			   ies.idProdutoClassificacao,
			   ies.dscProduto,
			   sum(ies.qtd),
			   ies.unidadeMedida,
			   ies.codigoProduto
		from @ItensEntradaSaida ies
		inner join ProdutoLote pl on pl.id = ies.idProdutoLote
	    group by pl.id, pl.numero, pl.quantidade, pl.dataFabricacao, pl.dataValidade, ies.idProduto, ies.idProdutoClassificacao, ies.dscProduto, ies.unidadeMedida, ies.codigoProduto
	
	
	RETURN 
END
GO
ALTER TABLE [dbo].[ProdutoLote] ADD CONSTRAINT [FK_ProdutoLote_emitente] FOREIGN KEY
	(
		[idFilial]
	)
	REFERENCES [dbo].[emitente]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProdutoLote] ADD CONSTRAINT [FK_ProdutoLote_produto] FOREIGN KEY
	(
		[idProduto]
	)
	REFERENCES [dbo].[produto]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProdutoLote] ADD CONSTRAINT [FK_ProdutoLote_ProdutoClassificacao] FOREIGN KEY
	(
		[idProdutoClassificacao]
	)
	REFERENCES [dbo].[ProdutoClassificacao]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProdutoLoteMovimento] ADD CONSTRAINT [FK_ProdutoLoteMovimento_CondicionalDevolucao] FOREIGN KEY
	(
		[idCondicionalDevolucao]
	)
	REFERENCES [dbo].[CondicionalDevolucao]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProdutoLoteMovimento] ADD CONSTRAINT [FK_ProdutoLoteMovimento_CondicionalProduto] FOREIGN KEY
	(
		[idCondicionalProduto]
	)
	REFERENCES [dbo].[CondicionalProduto]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProdutoLoteMovimento] ADD CONSTRAINT [FK_ProdutoLoteMovimento_estoqueAjustes] FOREIGN KEY
	(
		[idEstoqueAjustes]
	)
	REFERENCES [dbo].[estoqueAjustes]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProdutoLoteMovimento] ADD CONSTRAINT [FK_ProdutoLoteMovimento_NFProduto] FOREIGN KEY
	(
		[idNFProduto]
	)
	REFERENCES [dbo].[NFProduto]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProdutoLoteMovimento] ADD CONSTRAINT [FK_ProdutoLoteMovimento_OrdemServicoProduto] FOREIGN KEY
	(
		[idOrdemServicoProduto]
	)
	REFERENCES [dbo].[OrdemServicoProduto]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProdutoLoteMovimento] ADD CONSTRAINT [FK_ProdutoLoteMovimento_pedidoProduto] FOREIGN KEY
	(
		[idPedidoProduto]
	)
	REFERENCES [dbo].[pedidoProduto]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProdutoLoteMovimento] ADD CONSTRAINT [FK_ProdutoLoteMovimento_ProdutoLote] FOREIGN KEY
	(
		[idProdutoLote]
	)
	REFERENCES [dbo].[ProdutoLote]
	(
		[id]
	)
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[ESTOQUE_PRODUTO_LOTE]
	@idEmitenteInf int,
	@idProdutoInf int,
	@idProdutoClassificacaoInf int = 0,
	@idContaInf int = 0,
	@idProdutoLoteInf int = 0
AS
BEGIN	
	SET NOCOUNT ON;
	
	SELECT * FROM EstoqueProdutoLote(@idEmitenteInf, @idProdutoInf, @idProdutoClassificacaoInf, @idContaInf, @idProdutoLoteInf)
END
GO
UPDATE selecao SET camposListar = 'upper(case when n.idCartaoProduto is not null then n.descricao + '' - '' + ca.descricao + '' - '' + cp.descricao when n.idConta is not null then n.descricao + '' - '' + c.descricao else n.descricao end) as descricao = Descrição, n.id as id = Código', joins = 'left join CartaoProdutos cp on cp.id = n.idCartaoProduto left join CartaoAdministradora ca on ca.id = cp.idAdministradora left join Conta c on c.id = n.idConta', filtro = '((idnInativo is null) or (idnInativo = 0))', prefixoTabela = 'n', prefixoTabelaJoin = 'n' WHERE tabela = 'Numerario'
GO
UPDATE selecao SET camposListar = 'upper(descricao) as descricao = Descrição, id = Código, codigoCompensacao = Código Banco|100' WHERE tabela = 'Banco'
GO
SET IDENTITY_INSERT [dbo].[Telas] ON 
GO
INSERT [dbo].[Telas] ([id], [descricao], [controle], [idnPermiteAbrirVarias], [qtdVezesAberta]) VALUES (292, N'Liberação de Máquinas', N'TryERP.FLiberacaoMaquina, TryERP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null', 0, 0)
GO
SET IDENTITY_INSERT [dbo].[Telas] OFF
GO
INSERT INTO VERSAO(VERSAO, VERSAOATUALIZACAO, DATAATUALIZACAO) VALUES(374, 632, GETDATE());