USE [TryNFeOnline]
GO

ALTER TABLE [dbo].[operacao] ADD 
[idnPesoInvesValorEtiqueta] [bit] NULL
GO
ALTER TABLE [dbo].[operacao] ADD 
[idnPontuaProgramaFidelidade] [bit] NULL
GO
ALTER TABLE [dbo].[Operador] ADD 
[idGrupoOperador] [int] NULL
GO
ALTER TABLE [dbo].[Telas] ADD 
[idnBloquearAcessoPlanoBasico] [bit] NULL
GO
CREATE TABLE [dbo].[OperadorGrupo]
(
	[id] [int] IDENTITY (1,1) NOT NULL,
	[descricao] [varchar] (200) COLLATE Latin1_General_CI_AS NOT NULL,
	CONSTRAINT [PK_OperadorGrupo] 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].[OperadorGrupoStatusOperacao]
(
	[id] [int] IDENTITY (1,1) NOT NULL,
	[identificadorStatus] [varchar] (200) COLLATE Latin1_General_CI_AS NOT NULL,
	[idGrupoOperador] [int] NOT NULL,
	CONSTRAINT [PK_OperadorGrupoStatusOperacao] 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].[ParametrosProgramaFidelidadeMarca]
(
	[id] [int] IDENTITY (1,1) NOT NULL,
	[idParametroFidelidade] [int] NOT NULL,
	[idMarca] [int] NOT NULL,
	[valorVenda] [decimal] (18,4) NULL,
	[pontosFidelidade] [int] NULL,
	[idnExceto] [bit] NULL,
	CONSTRAINT [PK_ParametrosProgramaFidelidadeMarca] 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].[ParametrosProgramaFidelidadeProduto]
(
	[id] [int] IDENTITY (1,1) NOT NULL,
	[idParametroFidelidade] [int] NOT NULL,
	[idProduto] [int] NOT NULL,
	[valorVenda] [decimal] (18,4) NULL,
	[pontosFidelidade] [int] NULL,
	[idnExceto] [bit] NULL,
	CONSTRAINT [PK_ParametrosProgramaFidelidadeProduto] 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].[ProgramaFidelidade]
(
	[id] [int] IDENTITY (1,1) NOT NULL,
	[idnReceitaDespesa] [char] (1) COLLATE Latin1_General_CI_AS NOT NULL,
	[pontuacao] [int] NOT NULL,
	[validade] [date] NOT NULL,
	[idParceiro] [int] NOT NULL,
	[dataEmissao] [datetime] NOT NULL,
	[dataUltimaAlteracao] [datetime] NOT NULL,
	[descricao] [varchar] (500) COLLATE Latin1_General_CI_AS NULL,
	[idNotaFiscal] [int] NULL,
	[idPedido] [int] NULL,
	[idOS] [int] NULL,
	[idnAbatimento] [bit] NULL,
	[idOperacao] [int] NULL,
	[percDesconto] [decimal] (18,4) NULL,
	[valorDesconto] [decimal] (18,4) NULL,
	[idnCancelado] [bit] NULL,
	CONSTRAINT [PK_ProgramaFidelidade] 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].[OperadorGrupoProduto]
(
	[id] [int] IDENTITY (1,1) NOT NULL,
	[idGrupoProduto] [int] NOT NULL,
	[idGrupoOperador] [int] NOT NULL,
	CONSTRAINT [PK_OperadorGrupoProduto] 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].[ParametrosProgramaFidelidade]
(
	[id] [int] IDENTITY (1,1) NOT NULL,
	[prioridade] [int] NOT NULL,
	[valorVenda] [decimal] (18,4) NULL,
	[pontosFidelidade] [int] NULL,
	[validadeDias] [int] NULL,
	[descricao] [varchar] (max) COLLATE Latin1_General_CI_AS NULL,
	[idnBaixado] [bit] NULL,
	[qtdePontosNecessarios] [int] NULL,
	[valorDesconto] [decimal] (18,4) NULL,
	[descontoPercentual] [decimal] (18,4) NULL,
	[idnPontuacaoUnica] [bit] NULL,
	CONSTRAINT [PK_ParametrosProgramaFidelidade] 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].[ParametrosProgramaFidelidadeGrupoProdutos]
(
	[id] [int] IDENTITY (1,1) NOT NULL,
	[idParametroFidelidade] [int] NOT NULL,
	[idGrupoProduto] [int] NOT NULL,
	[valorVenda] [decimal] (18,4) NULL,
	[pontosFidelidade] [int] NULL,
	[idnExceto] [bit] NULL,
	CONSTRAINT [PK_ParametrosProgramaFidelidadeGrupoProdutos] 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:	<Irá calcular o a diferença entre o preço tabela e real valor vendido, considerando essa margem como comissão>
-- =============================================
ALTER FUNCTION [dbo].[comissaoVendedorDiferencialTabelado]
(	
	@idVendedorInf int = 0,
	@idEmitente int = 0
)
RETURNS 
@Resultado TABLE 
(
	notafiscalProduto_id int,
	vendedor_id int,
	vendedor_nome varchar(60),
	fatura_id int,
	valorFatura decimal(18,4),
	valorComissaoDiferencial decimal(18,4),
	dataFatura datetime,
	condicaoPagamento_id int,
	condicaoPagamentoDescricao varchar(200),
	precoVariacao_id int
)
AS
BEGIN

	declare @idVendedor int = 0;

	if (@idVendedorInf > 0)
		SET @idVendedor = @idVendedorInf;

	Declare @Vendas TABLE 
	(
		notafiscalProduto_id int,
		vendedor_id int,
		vendedor_nome varchar(60),
		fatura_id int,
		valorFaturaParcela decimal(18,4),
		dataFatura datetime,
		condicaoPagamento_id int,
		condicaoPagamentoDescricao varchar(200),
		variacaoPreco_id int,
		notafiscal_id int,
		produto_id int,
		precoProdutoVenda decimal(18,4),
		precoProdutoVendido decimal(18,4),
		quantidadeVendida decimal(18,4),
		quantidade decimal (18,4)
	)

	BEGIN
		insert into @Vendas 
		select DISTINCT nfp.id, f.idVendedor, ve.razaosocial, f.id, f.valor, f.dataFatura, f.idCondicaoPagamento, cp.descricao, 0, 
		nfp.idNotaFiscal, nfp.idProduto, 0, nfp.vuncom, nfp.qcom - coalesce(nfp.vdesc, 0) + coalesce(nfp.voutro,0), nfp.qcom
		from fatura f
		inner join FaturaParcela fp on fp.idFatura = f.id
		inner join CondicaoPagamento cp on cp.id = f.idCondicaoPagamento
		inner join parceiro ve on ve.id = f.idVendedor
		inner join NFProduto nfp on nfp.idNotaFiscal = f.idNotaFiscal
		inner join ProdutoPreco pp on pp.idProduto = nfp.idProduto
		where (f.idnReceitaDespesa = '+')
		and (fp.idnBaixado = 0 or fp.idnBaixado is null)
		and ((f.idVendedor = @idVendedor) or (@idVendedor = 0 and f.idVendedor is not null))

		update @Vendas set variacaoPreco_id = (select top 1 id 
		from PrecoVariacao pv
		where (pv.dataInicioVigencia <= dataFatura and pv.dataFimVigencia >= dataFatura)
		and ((pv.idCondicaoPagamento = condicaoPagamento_id) or (pv.idCondicaoPagamento is null))
		and ((pv.idVendedor = vendedor_id) or (pv.idVendedor is null)))
		

		update @Vendas set precoProdutoVenda = (select top 1 case when pv.idnAcrescimo = 1 then
																(case when pv.idnValor = 1 then pp.preco + pv.percentualValorVariacao
																	when pv.idnPercentual = 1 then pp.preco * (1+(pv.percentualValorVariacao/100))end)
															when pv.idnDesconto = 1 then
																(case when pv.idnValor = 1 then pp.preco - pv.percentualValorVariacao
																	when pv.idnPercentual = 1 then pp.preco - (pp.preco*(pv.percentualValorVariacao/100))end)
															else pp.preco end
		from ProdutoPreco pp 
		left join PrecoVariacao pv on pv.id = variacaoPreco_id
		where (pp.dataVigencia <= dataFatura)
		and (pp.idProduto = produto_id)
		and ((pv.idVendedor = vendedor_id) or (pv.idVendedor is null))
		order by pp.dataVigencia DESC)


		insert into @Resultado
		select distinct notafiscalProduto_id, vendedor_id, vendedor_nome, fatura_id, valorFaturaParcela, 
		quantidade*(precoProdutoVendido - precoProdutoVenda), 
		dataFatura, condicaoPagamento_id, condicaoPagamentoDescricao, ve.variacaoPreco_id
		from @Vendas ve
	END
	RETURN 
END
GO
-- =============================================
-- Author:		Name
-- Create date: 
-- Description:	
-- =============================================
ALTER FUNCTION [dbo].[CustoProduto] 
(
	@idEmitenteInf int,
	@idProdutoInf int = 0,
	@idProdutoClassificacaoInf int = 0
)
RETURNS 
@Resultado TABLE 
(
		idProduto int,
		idProdutoClassificacao int NULL,
		dscProdutoClasse varchar(500),							
		valor decimal(18,4),
		origemCusto varchar(50)
)
AS
BEGIN
	declare @idEmitente int = @idEmitenteInf;
	declare @idProduto int = 0;
	declare @idProdutoClassificacao int = 0;
	declare @dataAtual datetime = (SELECT GETDATE());
	declare @idnConsiderarCustoMedio bit = (select coalesce(valor, 'false') from ConfiguracoesValorParametro('idnConsiderarCustoMedioComoCustoProduto'))
	
	if (@idProdutoClassificacaoInf > 0)
		SET @idProdutoClassificacao = @idProdutoClassificacaoInf;
	
	if (@idProdutoInf > 0)
		SET @idProduto = @idProdutoInf;

	declare @idnPuxarSempreUltimoPreco bit = 0;

	SET @idnPuxarSempreUltimoPreco = (select coalesce(valor, 'false') from ConfiguracoesValorParametro('idnSemprePuxarUltimaCusto'))

	if (@idnPuxarSempreUltimoPreco = 1)
		SET @idEmitente = 0;
	

	
	if (@idProdutoClassificacao > 0)
	BEGIN
		INSERT INTO @Resultado
		select TOP 1
		pcu.idProduto, pcu.idProdutoClassificacao, 
		(case when pcu.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end) as dscProdutoClasse,
		(case when @idnConsiderarCustoMedio = 1 then pcu.custoMedio else pcu.precoCusto end), cast('CUSTO' as varchar(50))
		from ProdutoCusto pcu
		inner join produto pr on pr.id = pcu.idProduto
		left join ProdutoClassificacao pc on pc.id = pcu.idProdutoClassificacao
		where (pcu.dataVigencia <= @dataAtual)
		and ((pcu.idFilial = @idEmitente) or (@idEmitente = 0))
		and (pcu.idProduto = @idProduto)
		and (pcu.idProdutoClassificacao = @idProdutoClassificacao)
		order by pcu.dataVigencia desc
		
		declare @totalClasse int = (select COUNT(*) from @Resultado)
		if (@totalClasse = 0)
		BEGIN
			INSERT INTO @Resultado
			select TOP 1
			pcu.idProduto, pcu.idProdutoClassificacao, 
			(case when pcu.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end) as dscProdutoClasse,
			(case when @idnConsiderarCustoMedio = 1 then pcu.custoMedio else pcu.precoCusto end), cast('CUSTO' as varchar(50))
			from ProdutoCusto pcu
			inner join produto pr on pr.id = pcu.idProduto
			left join ProdutoClassificacao pc on pc.id = pcu.idProdutoClassificacao
			where (pcu.dataVigencia <= @dataAtual)
			and ((pcu.idFilial = @idEmitente) or (@idEmitente = 0))
			and (pcu.idProduto = @idProduto)
			and (pcu.idProdutoClassificacao is null)
			order by pcu.dataVigencia desc	
		END
	END
	ELSE
	BEGIN
		INSERT INTO @Resultado
		select TOP 1
		pcu.idProduto, pcu.idProdutoClassificacao, 
		(case when pcu.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end) as dscProdutoClasse,
		(case when @idnConsiderarCustoMedio = 1 then pcu.custoMedio else pcu.precoCusto end), cast('CUSTO' as varchar(50))
		from ProdutoCusto pcu
		inner join produto pr on pr.id = pcu.idProduto
		left join ProdutoClassificacao pc on pc.id = pcu.idProdutoClassificacao
		where (pcu.dataVigencia <= @dataAtual)
		and ((pcu.idFilial = @idEmitente) or (@idEmitente = 0))
		and (pcu.idProduto = @idProduto)
		and (pcu.idProdutoClassificacao is null)
		order by pcu.dataVigencia desc	
	END
	
	declare @totalRegistros int
	--declare @descricaoSistema varchar(100)
	
	SET @totalRegistros = (select count(*) from @Resultado)
	--SET @descricaoSistema = (select top 1 descricao from Menu where idnPadrao = 1)
	
	
	if (@totalRegistros = 0) --or (@descricaoSistema = 'NFE'))
	BEGIN
	--Se n?o tem um custo definido, obtem o pre?o de entrada no cadastro do produto
		--delete from @Resultado
		if (@idProdutoClassificacao > 0)
		BEGIN
		--Se foi informado classifica??o, obtem os dados da classifica??o
			INSERT INTO @Resultado
				select pc.idProduto, pc.id,
					pr.descricao + ' - ' + coalesce(pc.descricao, '') as dscProdutoClasse,
					(case when pc.precoEntrada > 0 then pc.precoEntrada else pr.precoEntrada end) as precoCusto,
					cast('CUSTOPADRAO' as varchar(50))
				from ProdutoClassificacao pc
				inner join Produto pr on pr.id = pc.idProduto
				where (pc.id = @idProdutoClassificacao)
		END
		ELSE
		BEGIN
		--Se uma classifica??o n?o foi informada, obtem os dados do cadastro do produto
			INSERT INTO @Resultado
				select pr.id, null,
					pr.descricao,
					pr.precoEntrada,
					cast('CUSTOPADRAO' as varchar(50))
				from Produto pr			
				where (pr.id = @idProduto)		
		END
					
	END
	
	RETURN 
END
GO
-- =============================================
-- Author:		Name
-- Create date: 
-- Description:	
-- =============================================
ALTER FUNCTION [dbo].[PrecoProduto]
(
	@idEmitenteInf int,
	@idProdutoInf int = 0,
	@idProdutoClassificacaoInf int = 0,
	@dataInf datetime = null
)
RETURNS 
@Resultado TABLE 
(
		idProduto int,
		idProdutoClassificacao int NULL,	
		dscProdutoClasse varchar(500),							
		valor decimal(18,4),
		idnOferta bit,
		valorMinimo decimal(18,4)
)
AS
BEGIN
	
	declare @idEmitente int = @idEmitenteInf;
	declare @idProduto int = 0;
	declare @idProdutoClassificacao int = 0;
	declare @dataAtual datetime = @dataInf;
	
	declare @idnPuxarSempreUltimoPreco bit = 0;

	SET @idnPuxarSempreUltimoPreco = (select coalesce(valor, 'false') from ConfiguracoesValorParametro('idnSemprePuxarUltimoPreco'))

	if (@idnPuxarSempreUltimoPreco = 1)
		SET @idEmitente = 0;

	if (@dataAtual is null)
		SET @dataAtual = (SELECT GETDATE());
	
	if (@idProdutoClassificacaoInf > 0)
		SET @idProdutoClassificacao = @idProdutoClassificacaoInf;
	
	if (@idProdutoInf > 0)
		SET @idProduto = @idProdutoInf;
	
	if (@idProdutoClassificacao > 0)
	BEGIN
		INSERT INTO @Resultado
		select TOP 1
		pcu.idProduto, pcu.idProdutoClassificacao, 
		(case when pcu.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end) as dscProdutoClasse,
		pcu.preco, COALESCE(pcu.idnOferta, 0), COALESCE(pcu.precoMinimo, 0)
		from ProdutoPreco pcu
		inner join produto pr on pr.id = pcu.idProduto
		left join ProdutoClassificacao pc on pc.id = pcu.idProdutoClassificacao
		where (pcu.dataVigencia <= @dataAtual)
		and ((pcu.idFilial = @idEmitente) or (@idEmitente = 0))
		and (pcu.idProduto = @idProduto)
		and (pcu.idProdutoClassificacao = @idProdutoClassificacao)
		order by pcu.dataVigencia desc
		
		declare @totalClasse int = (select COUNT(*) from @Resultado)
		if (@totalClasse = 0)
		BEGIN
			INSERT INTO @Resultado
			select TOP 1
			pcu.idProduto, pcu.idProdutoClassificacao, 
			(case when pcu.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end) as dscProdutoClasse,
			pcu.preco, COALESCE(pcu.idnOferta, 0), COALESCE(pcu.precoMinimo, 0)
			from ProdutoPreco pcu
			inner join produto pr on pr.id = pcu.idProduto
			left join ProdutoClassificacao pc on pc.id = pcu.idProdutoClassificacao
			where (pcu.dataVigencia <= @dataAtual)
			and ((pcu.idFilial = @idEmitente) or (@idEmitente = 0))
			and (pcu.idProduto = @idProduto)
			and (pcu.idProdutoClassificacao is null)
			order by pcu.dataVigencia desc
		END
	END
	ELSE
	BEGIN
		INSERT INTO @Resultado
		select TOP 1
		pcu.idProduto, pcu.idProdutoClassificacao, 
		(case when pcu.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end) as dscProdutoClasse,
		pcu.preco, COALESCE(pcu.idnOferta, 0), COALESCE(pcu.precoMinimo, 0)
		from ProdutoPreco pcu
		inner join produto pr on pr.id = pcu.idProduto
		left join ProdutoClassificacao pc on pc.id = pcu.idProdutoClassificacao
		where (pcu.dataVigencia <= @dataAtual)
		and ((pcu.idFilial = @idEmitente) or (@idEmitente = 0))
		and (pcu.idProduto = @idProduto)
		and (pcu.idProdutoClassificacao is null)
		order by pcu.dataVigencia desc
	END
	
	declare @totalRegistros int
	--declare @descricaoSistema varchar(100)
	SET @totalRegistros = (select count(*) from @Resultado)
	--SET @descricaoSistema = (select top 1 descricao from Menu where idnPadrao = 1)
	
	if (@totalRegistros = 0) --or (@descricaoSistema = 'NFE'))
	BEGIN
	--Se nao tem um custo definido, obtem o preco de venda no cadastro do produto
	    --delete from @Resultado
		if (@idProdutoClassificacao > 0)
		BEGIN
		--Se foi informado classificacao, obtem os dados da classificacao
			INSERT INTO @Resultado
				select pc.idProduto, pc.id,
				pr.descricao + ' - ' + coalesce(pc.descricao, '') as dscProdutoClasse,
				(case when pc.vuncom > 0 then pc.vuncom else pr.vuncom end) as preco, 0, 0
				from ProdutoClassificacao pc
				inner join Produto pr on pr.id = pc.idProduto
				where (pc.id = @idProdutoClassificacao)
		END
		ELSE
		BEGIN
		--Se uma classificacaoo nao foi informada, obtem os dados do cadastro do produto
			INSERT INTO @Resultado
				select pr.id, null,
				pr.descricao,
				pr.vuncom, 0, 0
				from Produto pr			
				where (pr.id = @idProduto)		
		END
					
	END
	
	RETURN 
END
GO
-- =============================================
-- Author:		Name
-- Create date: 
-- Description:	
-- =============================================
ALTER FUNCTION [dbo].[CustoProdutoData] 
(
	@idEmitenteInf int,
	@idProdutoInf int = 0,
	@idProdutoClassificacaoInf int = 0,
	@dataInf datetime = null
)
RETURNS 
@Resultado TABLE 
(
		idProduto int,
		idProdutoClassificacao int NULL,
		dscProdutoClasse varchar(500),							
		valor decimal(18,4),
		origemCusto varchar(50),
		idNotaFiscal int NULL
)
AS
BEGIN
	declare @idEmitente int = @idEmitenteInf;
	declare @idProduto int = 0;
	declare @idProdutoClassificacao int = 0;
	declare @dataAtual datetime = @dataInf;
	declare @idnConsiderarCustoMedio bit = (select coalesce(valor, 'false') from ConfiguracoesValorParametro('idnConsiderarCustoMedioComoCustoProduto'))
	
	if (@idProdutoClassificacaoInf > 0)
		SET @idProdutoClassificacao = @idProdutoClassificacaoInf;
	
	if (@idProdutoInf > 0)
		SET @idProduto = @idProdutoInf;
	
	if (@dataAtual is null)
		SET @dataAtual = (SELECT GETDATE());

	declare @idnPuxarSempreUltimoPreco bit = 0;

	SET @idnPuxarSempreUltimoPreco = (select coalesce(valor, 'false') from ConfiguracoesValorParametro('idnSemprePuxarUltimaCusto'))

	if (@idnPuxarSempreUltimoPreco = 1)
		SET @idEmitente = 0;
	
	
	if (@idProdutoClassificacao > 0)
	BEGIN
		INSERT INTO @Resultado
		select TOP 1
		pcu.idProduto, pcu.idProdutoClassificacao, 
		(case when pcu.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end) as dscProdutoClasse,
		(case when @idnConsiderarCustoMedio = 1 then pcu.custoMedio else pcu.precoCusto end), cast('CUSTO' as varchar(50)), pcu.idNotaFiscal
		from ProdutoCusto pcu
		inner join produto pr on pr.id = pcu.idProduto
		left join ProdutoClassificacao pc on pc.id = pcu.idProdutoClassificacao
		where (pcu.dataVigencia <= @dataAtual)
		and ((pcu.idFilial = @idEmitente) or (@idEmitente = 0))
		and (pcu.idProduto = @idProduto)
		and (pcu.idProdutoClassificacao = @idProdutoClassificacao)
		order by pcu.dataVigencia desc
		
		declare @totalClasse int = (select COUNT(*) from @Resultado)
		if (@totalClasse = 0)
		BEGIN
			INSERT INTO @Resultado
			select TOP 1
			pcu.idProduto, pcu.idProdutoClassificacao, 
			(case when pcu.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end) as dscProdutoClasse,
			(case when @idnConsiderarCustoMedio = 1 then pcu.custoMedio else pcu.precoCusto end), cast('CUSTO' as varchar(50)), pcu.idNotaFiscal
			from ProdutoCusto pcu
			inner join produto pr on pr.id = pcu.idProduto
			left join ProdutoClassificacao pc on pc.id = pcu.idProdutoClassificacao
			where (pcu.dataVigencia <= @dataAtual)
			and ((pcu.idFilial = @idEmitente) or (@idEmitente = 0))
			and (pcu.idProduto = @idProduto)
			and (pcu.idProdutoClassificacao is null)
			order by pcu.dataVigencia desc	
		END
	END
	ELSE
	BEGIN
		INSERT INTO @Resultado
		select TOP 1
		pcu.idProduto, pcu.idProdutoClassificacao, 
		(case when pcu.idProdutoClassificacao is not null then pr.descricao + ' - ' + coalesce(pc.descricao, '') else pr.descricao end) as dscProdutoClasse,
		(case when @idnConsiderarCustoMedio = 1 then pcu.custoMedio else pcu.precoCusto end), cast('CUSTO' as varchar(50)), pcu.idNotaFiscal
		from ProdutoCusto pcu
		inner join produto pr on pr.id = pcu.idProduto
		left join ProdutoClassificacao pc on pc.id = pcu.idProdutoClassificacao
		where (pcu.dataVigencia <= @dataAtual)
		and ((pcu.idFilial = @idEmitente) or (@idEmitente = 0))
		and (pcu.idProduto = @idProduto)
		and (pcu.idProdutoClassificacao is null)
		order by pcu.dataVigencia desc	
	END
	
	declare @totalRegistros int
	--declare @descricaoSistema varchar(100)
	SET @totalRegistros = (select count(*) from @Resultado)
	--SET @descricaoSistema = (select top 1 descricao from Menu where idnPadrao = 1)
	
	if (@totalRegistros = 0) --or (@descricaoSistema = 'NFE'))
	BEGIN
	--Se n?o tem um custo definido, obtem o pre?o de entrada no cadastro do produto
		--delete from @Resultado
		if (@idProdutoClassificacao > 0)
		BEGIN
		--Se foi informado classifica??o, obtem os dados da classifica??o
			INSERT INTO @Resultado
				select pc.idProduto, pc.id,
					pr.descricao + ' - ' + coalesce(pc.descricao, '') as dscProdutoClasse,
					(case when pc.precoEntrada > 0 then pc.precoEntrada else pr.precoEntrada end) as precoCusto,
					cast('CUSTOPADRAO' as varchar(50)), null
				from ProdutoClassificacao pc
				inner join Produto pr on pr.id = pc.idProduto
				where (pc.id = @idProdutoClassificacao)
		END
		ELSE
		BEGIN
		--Se uma classifica??o n?o foi informada, obtem os dados do cadastro do produto
			INSERT INTO @Resultado
				select pr.id, null,
					pr.descricao,
					pr.precoEntrada,
					cast('CUSTOPADRAO' as varchar(50)), null
				from Produto pr			
				where (pr.id = @idProduto)		
		END
					
	END
	
	RETURN 
END
GO
ALTER FUNCTION [dbo].[ComissaoSobreMargemLucro]
(
	@dataIni datetime,
	@dataFin datetime,
	@idVendedor int = 0,
	@idEmitente int = 0,
	@idnComissaoRepresentante bit = 0,
	@idnConsiderarValorFreteInf bit = 0 --Adicionado Parametros comissão de frete (04/02/2022)
)
RETURNS 
@Resultado TABLE 
(
	codigoProduto varchar(50),
	descricaoProduto varchar(120),
	quantidade decimal(18,4),
	precoCusto decimal(18, 4),
	precoVendaUnitario decimal(18, 4),
	precoVenda decimal(18, 4),
	margemDiferenca decimal(18, 2),
	percComissao decimal(18, 4),
	valorComissao decimal(18,4),
	numeroNF int,
	numeroMovimento int,
	dataEmissao date,
	destinatario_id int,
	destinatario_fantasia varchar(60),
	vendedor_id int,
	vendedor_nome varchar(60)
)
AS
BEGIN
	
	DECLARE @idnConsiderarValorFrete bit = 0
	if(@idnConsiderarValorFreteInf > 0)
		SET @idnConsiderarValorFrete = @idnConsiderarValorFreteInf

	INSERT INTO @Resultado
	SELECT (case when nfp.sequenciaClassificacao is not null then cast(nfp.idProduto as varchar(20)) + '/' + cast(nfp.sequenciaClassificacao as varchar(20)) else cast(nfp.idProduto as varchar(20)) end), 
	nfp.descricao, nfp.qcom, nfp.precoCusto,
	((nfp.vprod + (case when @idnConsiderarValorFrete = 1 then coalesce(nfp.vfrete, 0) else 0 end) + coalesce(nfp.vseg, 0) + coalesce(nfp.voutro, 0) + coalesce(nfp.ipivalor, 0) + coalesce(nfp.icmsstvalor, 0) - coalesce(nfp.vdesc, 0)) / nfp.qcom), 
	(nfp.vprod + (case when @idnConsiderarValorFrete = 1 then coalesce(nfp.vfrete, 0) else 0 end) + coalesce(nfp.vseg, 0) + coalesce(nfp.voutro, 0) + coalesce(nfp.ipivalor, 0) + coalesce(nfp.icmsstvalor, 0) - coalesce(nfp.vdesc, 0)), 0, 0, 0,
	nf.numero, nf.numeroMovimento, nf.dataEmissao, nd.idParceiro, nd.fantasia,
	(case when @idnComissaoRepresentante = 0 then pa.id else rep.id end), (case when @idnComissaoRepresentante = 0 then pa.fantasia else rep.fantasia end)
	from NFProduto nfp
	inner join nfemitente nfe on nfe.idnotafiscal = nfp.idNotaFiscal
	inner join notafiscal nf on nf.id = nfp.idNotaFiscal
	left join nfDestinatario nd on nd.idNotaFiscal = nf.id
	left join parceiro pa on pa.id = nf.idVendedor
	left join parceiro rep on rep.id = nf.idRepresentante
	where (
	(CAST(nf.dataEmissao as date) between @dataIni and @dataFin)
	and (((@idnComissaoRepresentante = 0) and ((nf.idVendedor = @idVendedor) or (@idVendedor = 0 and nf.idVendedor is not null)))
	or ((@idnComissaoRepresentante = 1) and ((nf.idRepresentante = @idVendedor) or (@idVendedor = 0 and nf.idRepresentante is not null))))
	and (nf.nfeCstat = 100 or nf.nfeCstat = 150)
	and (nf.nfeTpAmb = 1)
	and ((nfe.idEmitente = @idEmitente) or (@idEmitente = 0))
	and (nf.tipodocumento = 1))

	--calcula a margem entre o custo e o preço de venda
	UPDATE @Resultado SET margemDiferenca = ((precoVendaUnitario - precoCusto) / precoCusto) * 100
	WHERE (precoCusto > 0)

	--Altera o Percentual de Comissão quando possuir Vendedor definido nos parametros
	UPDATE @Resultado set percComissao = coalesce((select top 1 pc.percComissaoGeracao from ParametrosComissoes pc 
	where (pc.idnComissaoMargemLucro = 1) 
	and (idnComissaoRepresentante = @idnComissaoRepresentante)
	and ((margemDiferenca > 0) and (margemDiferenca between pc.percMargemLucroInicial and pc.percMargemLucroFinal))
	and (pc.idVendedor = vendedor_id)), 0)

	--Altera o Percentual de Comissão quando NÃO possuir Vendedor definido nos parametros
	UPDATE @Resultado set percComissao = coalesce((select top 1 pc.percComissaoGeracao from ParametrosComissoes pc 
	where (pc.idnComissaoMargemLucro = 1)
	and (idnComissaoRepresentante = @idnComissaoRepresentante)
	and ((margemDiferenca > 0) and (margemDiferenca between pc.percMargemLucroInicial and pc.percMargemLucroFinal))
	and (pc.idVendedor is null)), 0)
	where (percComissao = 0)

	--Altera o valor da Comissão
	UPDATE @Resultado set valorComissao = (precoVenda * percComissao) / 100
	
	RETURN 
END
GO
ALTER FUNCTION [dbo].[comissaoVendedorDescontoVendas]
(	
	@dataIniInf datetime,
	@dataFinInf datetime,
	@idVendedorInf int = 0,
	@idEmitente int = 0,
	@idnConsiderarValorFreteInf bit = 0 --Adicionado parametros de comissão de frete 04/02/2022)
)
RETURNS 
@Resultado TABLE 
(
	vendedor_id int,
	vendedor_nome varchar(60),
	numeroNota varchar(50),
	numeroMovimento varchar(50),
	percDesconto decimal(18,4),
	valorLiquido decimal(18,4),
	valorBruto decimal(18,4),
	valorRecebidoGerado decimal(18,4),
	valorComissao decimal(18,4),
	percComissao decimal(18,4),
	idnRecebimento bit,
	idnGeracao bit
)
AS
BEGIN

	declare @dataIni datetime = @dataIniInf;
	declare @dataFin datetime = @dataFinInf;
	declare @idVendedor int = 0;
	declare @idnConsiderarValorFrete bit;

	if (@idVendedorInf > 0)
		SET @idVendedor = @idVendedorInf;
	
	if (@idnConsiderarValorFreteInf > 0)
		SET @idnConsiderarValorFrete = @idnConsiderarValorFreteInf
	BEGIN
		--Comissão de Recebimento
		INSERT INTO @Resultado
		select f.idVendedor, pa.fantasia, nf.numero, nf.numeroMovimento,
		(case when @idnConsiderarValorFrete = 1 
		then (case when nt.icmsdesconto > 0 then ((nt.icmsdesconto / nt.icmsprodutosservicos) * 100) else 0 end)
		else (case when nt.icmsdesconto > 0 then ((nt.icmsdesconto / (nt.icmsprodutosservicos - nt.icmsfrete)) * 100) else 0 end)end) as percDesconto, 
		(case when @idnConsiderarValorFrete = 1 then nt.icmstotalnota else (nt.icmstotalnota - coalesce(nt.icmsfrete, 0))end) as valorLiquido ,
		nt.icmsprodutosservicos, (case when @idnConsiderarValorFrete = 1 then fpp.valor else fpp.valor - coalesce(nt.icmsfrete,0)end), 0, 0, 1, 0
		from FaturaParcelaPagamento fpp
		inner join FaturaParcela fp on fp.id = fpp.idFaturaParcela
		inner join Fatura f on f.id = fp.idFatura
		inner join notafiscal nf on nf.id = f.idNotaFiscal
		inner join nfEmitente nfe on nfe.idNotaFiscal = nf.id
		inner join NFTotal nt on nt.idNotaFiscal = nf.id
		inner join CaixaMovimento cm on cm.idFaturaParcelaPagamentoOrigem = fpp.id
		left join parceiro pa on pa.id = f.idVendedor
		where (
		(CAST(cm.dataHora as date) between @dataIni and @dataFin)
		and ((f.idVendedor = @idVendedor) or (@idVendedor = 0 and f.idVendedor is not null))
		and (f.idnReceitaDespesa = '+')
		and ((nfe.idEmitente = @idEmitente) or (@idEmitente = 0))
		and (nt.icmsprodutosservicos > 0))
		
		--Comissão de Geração
		INSERT INTO @Resultado
		select f.idVendedor, pa.fantasia, nf.numero, nf.numeroMovimento,
		(case when @idnConsiderarValorFrete = 1 
		then (case when nt.icmsdesconto > 0 then ((nt.icmsdesconto / nt.icmsprodutosservicos) * 100) else 0 end)
		else (case when nt.icmsdesconto > 0 then ((nt.icmsdesconto / (nt.icmsprodutosservicos - nt.icmsfrete)) * 100) else 0 end)end) as percDesconto, 
		(case when @idnConsiderarValorFrete = 1 then nt.icmstotalnota else (nt.icmstotalnota - coalesce(nt.icmsfrete, 0))end) as valorLiquido, 
		nt.icmsprodutosservicos, (case when @idnConsiderarValorFrete = 1 then f.valor else f.valor - coalesce(nt.icmsfrete,0)end), 0, 0, 0, 1
		from Fatura f
		inner join notafiscal nf on nf.id = f.idNotaFiscal
		inner join nfemitente nfe on nfe.idnotafiscal = nf.id
		inner join NFTotal nt on nt.idNotaFiscal = nf.id
		left join parceiro pa on pa.id = f.idVendedor
		where (
		(CAST(f.dataFatura as date) between @dataIni and @dataFin)
		and ((f.idVendedor = @idVendedor) or (@idVendedor = 0 and f.idVendedor is not null))
		and (f.idnReceitaDespesa = '+')
		and (nf.nfeCstat = 100 or nfeCstat = 150)
		and ((nfe.idEmitente = @idEmitente) or (@idEmitente = 0))
		and (nf.nfeTpAmb = 1)
		and (nt.icmsprodutosservicos > 0))
		
		--Altera o Percentual de Comissão dos Recebimentos
		UPDATE @Resultado set percComissao = coalesce((select top 1 pc.percComissaoRecebimento from ParametrosComissoes pc
		where (pc.idnComissaoDescontoVendas = 1)
		and (pc.idnRecebimento = 1)
		and ((pc.idnComDesconto = 0 and percDesconto = 0)
		or ((percDesconto > 0) and (cast(percDesconto as decimal) between pc.percDescontoInicial and pc.percDescontoFinal)))
		and (pc.idVendedor = vendedor_id)), 0)
		where (idnRecebimento = 1)
		
		UPDATE @Resultado set percComissao = coalesce((select top 1 pc.percComissaoRecebimento from ParametrosComissoes pc
		where (pc.idnComissaoDescontoVendas = 1)
		and (pc.idnRecebimento = 1)
		and ((pc.idnComDesconto = 0 and percDesconto = 0)
		or ((percDesconto > 0) and (cast(percDesconto as decimal) between pc.percDescontoInicial and pc.percDescontoFinal)))
		and (pc.idVendedor is null)), 0)
		where (percComissao = 0) and (idnRecebimento = 1)
		
		--Altera o Percentual de Comissão da Geração
		UPDATE @Resultado set percComissao = coalesce((select top 1 pc.percComissaoGeracao from ParametrosComissoes pc
		where (pc.idnComissaoDescontoVendas = 1)
		and (pc.idnGeracao = 1)
		and ((pc.idnComDesconto = 0 and percDesconto = 0)
		or ((percDesconto > 0) and (cast(percDesconto as decimal) between pc.percDescontoInicial and pc.percDescontoFinal)))
		and (pc.idVendedor = vendedor_id)), 0)
		where (idnGeracao = 1)
		
		UPDATE @Resultado set percComissao = coalesce((select top 1 pc.percComissaoGeracao from ParametrosComissoes pc
		where (pc.idnComissaoDescontoVendas = 1)
		and (pc.idnGeracao = 1)
		and ((pc.idnComDesconto = 0 and percDesconto = 0)
		or ((percDesconto > 0) and (cast(percDesconto as decimal) between pc.percDescontoInicial and pc.percDescontoFinal)))
		and (pc.idVendedor is null)), 0)
		where (percComissao = 0) and (idnGeracao = 1)
		
		--Altera o Valor da Comissão
		UPDATE @Resultado set valorComissao = (valorRecebidoGerado * percComissao) / 100
	END
	
	RETURN 

END
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[PontosFidelidade]
(	
	@idParceiroStr varchar(max)
)
RETURNS 
	@resultado table
	(
		idProgramaFidelidade int,
		pontuacao int,
		idnVencido bit,
		idnAbatido bit,
		validade date,
		idParceiro int
	)
AS
BEGIN
	
	declare @pontuacaoParceiro table
	(
		idprogramaFidelidade int,
		idnReceitaDespesa char(1),
		pontuacao int,
		validade date,
		parceiro_id int,
		dataEmissao datetime,
		idNotaFiscal int,
		idPedido int,
		idOS int,
		idnAbatimento bit,
		idOperacao int
	)
	
	declare @abatimentosParceiro table
	(
		idprogramaFidelidade int,
		idnReceitaDespesa char(1),
		pontuacao int,
		validade date,
		parceiro_id int,
		dataEmissao datetime,
		idNotaFiscal int,
		idPedido int,
		idOS int,
		idnAbatimento bit,
		idOperacao int
	)
	
	declare @idParceiroTable Table
	(
		parceiro_id int not null
	)
	
	insert into @idParceiroTable select * from ConvertStringToTable(@idParceiroStr)

	insert into @pontuacaoParceiro select id, idnReceitaDespesa, pontuacao, validade, idParceiro, dataEmissao, idNotaFiscal, idPedido, idOS, idnAbatimento, idOperacao from ProgramaFidelidade pf inner join @idParceiroTable pt on pt.parceiro_id = pf.idParceiro where (idParceiro = parceiro_id) and (idnReceitaDespesa = '+') and (idnCancelado = 0 or idnCancelado is null) order by validade
	
	insert into @abatimentosParceiro select id, idnReceitaDespesa, pontuacao, validade, idParceiro, dataEmissao, idNotaFiscal, idPedido, idOS, idnAbatimento, idOperacao from ProgramaFidelidade pf inner join @idParceiroTable pt on pt.parceiro_id = pf.idParceiro and (idnReceitaDespesa = '-') and (idnCancelado = 0 or idnCancelado is null) order by dataEmissao
	
	DECLARE @idprogramaFidelidadeAbatimento int
	DECLARE @pontuacaoAbatimento int
	DECLARE @dataEmissaoAbatimento date
	DECLARE @parceiro_id_abatimento int
	
	DECLARE MY_CURSOR CURSOR 
	  LOCAL STATIC READ_ONLY FORWARD_ONLY
	FOR 
	SELECT DISTINCT idprogramaFidelidade, pontuacao, dataEmissao, parceiro_id
	FROM @abatimentosParceiro
	
	OPEN MY_CURSOR
	FETCH NEXT FROM MY_CURSOR INTO @idprogramaFidelidadeAbatimento, @pontuacaoAbatimento, @dataEmissaoAbatimento, @parceiro_id_abatimento
	WHILE @@FETCH_STATUS = 0
	BEGIN 
		DECLARE @idprograma int
		DECLARE @pontuacao int
		DECLARE @validade date
		DECLARE @parceiro_id int
		DECLARE MY_CURSOR2 CURSOR 
		LOCAL STATIC READ_ONLY FORWARD_ONLY
			FOR 
			SELECT DISTINCT idprogramaFidelidade, pontuacao, validade, parceiro_id
			FROM @pontuacaoParceiro where validade >= @dataEmissaoAbatimento
	
		OPEN MY_CURSOR2
		FETCH NEXT FROM MY_CURSOR2 INTO @idprograma, @pontuacao, @validade, @parceiro_id
	    WHILE @pontuacaoAbatimento > 0
		BEGIN
			IF @pontuacaoAbatimento >= @pontuacao and @parceiro_id_abatimento = @parceiro_id
				BEGIN
					insert @resultado values(@idprograma, @pontuacao, 0, 1, @validade, @parceiro_id)
					delete from @pontuacaoParceiro where idprogramaFidelidade = @idprograma
					set @pontuacaoAbatimento = @pontuacaoAbatimento - @pontuacao
				END
			IF @pontuacaoAbatimento < @pontuacao and @parceiro_id_abatimento = @parceiro_id
				BEGIN
					insert @resultado values(@idprograma, @pontuacaoAbatimento, 0, 1, @validade, @parceiro_id)
					update @pontuacaoParceiro set pontuacao = @pontuacao - @pontuacaoAbatimento where idprogramaFidelidade = @idprograma
					set @pontuacaoAbatimento = @pontuacaoAbatimento - @pontuacao
				END
			FETCH NEXT FROM MY_CURSOR2 INTO @idprograma, @pontuacao, @validade, @parceiro_id
		END
		CLOSE MY_CURSOR2
		DEALLOCATE MY_CURSOR2
	
	    FETCH NEXT FROM MY_CURSOR INTO @idprogramaFidelidadeAbatimento, @pontuacaoAbatimento, @dataEmissaoAbatimento, @parceiro_id_abatimento
	END
	CLOSE MY_CURSOR
	DEALLOCATE MY_CURSOR
	
	insert into @resultado select idprogramaFidelidade, pontuacao, 1, 0, validade, parceiro_id from @pontuacaoParceiro where validade < SYSDATETIME()
	delete from @pontuacaoParceiro where validade < SYSDATETIME()

	insert into @resultado select idprogramaFidelidade, pontuacao, 0, 0, validade, parceiro_id from @pontuacaoParceiro
		
	RETURN 
END
GO
ALTER TABLE [dbo].[ProgramaFidelidade] ADD CONSTRAINT [FK_ProgramaFidelidade_notafiscal] FOREIGN KEY
	(
		[idNotaFiscal]
	)
	REFERENCES [dbo].[notafiscal]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProgramaFidelidade] ADD CONSTRAINT [FK_ProgramaFidelidade_operacao] FOREIGN KEY
	(
		[idOperacao]
	)
	REFERENCES [dbo].[operacao]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProgramaFidelidade] ADD CONSTRAINT [FK_ProgramaFidelidade_OrdemServico] FOREIGN KEY
	(
		[idOS]
	)
	REFERENCES [dbo].[OrdemServico]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProgramaFidelidade] ADD CONSTRAINT [FK_ProgramaFidelidade_parceiro] FOREIGN KEY
	(
		[idParceiro]
	)
	REFERENCES [dbo].[parceiro]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ProgramaFidelidade] ADD CONSTRAINT [FK_ProgramaFidelidade_pedido] FOREIGN KEY
	(
		[idPedido]
	)
	REFERENCES [dbo].[pedido]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ParametrosProgramaFidelidadeProduto] ADD CONSTRAINT [FK_ParametrosProgramaFidelidadeProduto_ParametrosProgramaFidelidade] FOREIGN KEY
	(
		[idParametroFidelidade]
	)
	REFERENCES [dbo].[ParametrosProgramaFidelidade]
	(
		[id]
	)
GO

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

ALTER TABLE [dbo].[ParametrosProgramaFidelidadeMarca] ADD CONSTRAINT [FK_ParametrosProgramaFidelidadeMarca_marca] FOREIGN KEY
	(
		[idMarca]
	)
	REFERENCES [dbo].[marca]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ParametrosProgramaFidelidadeMarca] ADD CONSTRAINT [FK_ParametrosProgramaFidelidadeMarca_ParametrosProgramaFidelidade] FOREIGN KEY
	(
		[idParametroFidelidade]
	)
	REFERENCES [dbo].[ParametrosProgramaFidelidade]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ParametrosProgramaFidelidadeGrupoProdutos] ADD CONSTRAINT [FK_ParametrosProgramaFidelidadeGrupoProdutos_ParametrosProgramaFidelidade] FOREIGN KEY
	(
		[idParametroFidelidade]
	)
	REFERENCES [dbo].[ParametrosProgramaFidelidade]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[ParametrosProgramaFidelidadeGrupoProdutos] ADD CONSTRAINT [FK_ParametrosProgramaFidelidadeGrupoProdutos_produtoGrupo] FOREIGN KEY
	(
		[idGrupoProduto]
	)
	REFERENCES [dbo].[produtoGrupo]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[OperadorGrupoStatusOperacao] ADD CONSTRAINT [FK_OperadorGrupoStatusOperacao_OperadorGrupo] FOREIGN KEY
	(
		[idGrupoOperador]
	)
	REFERENCES [dbo].[OperadorGrupo]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[OperadorGrupoStatusOperacao] ADD CONSTRAINT [FK_OperadorGrupoStatusOperacao_PedidoOperacoesStatus] FOREIGN KEY
	(
		[identificadorStatus]
	)
	REFERENCES [dbo].[PedidoOperacoesStatus]
	(
		[identificador]
	)
GO

ALTER TABLE [dbo].[OperadorGrupoProduto] ADD CONSTRAINT [FK_OperadorGrupoProduto_OperadorGrupo] FOREIGN KEY
	(
		[idGrupoOperador]
	)
	REFERENCES [dbo].[OperadorGrupo]
	(
		[id]
	)
GO

ALTER TABLE [dbo].[OperadorGrupoProduto] ADD CONSTRAINT [FK_OperadorGrupoProduto_produtoGrupo] FOREIGN KEY
	(
		[idGrupoProduto]
	)
	REFERENCES [dbo].[produtoGrupo]
	(
		[id]
	)
GO
ALTER TABLE [dbo].[Operador] ADD CONSTRAINT [FK_Operador_OperadorGrupo] FOREIGN KEY
	(
		[idGrupoOperador]
	)
	REFERENCES [dbo].[OperadorGrupo]
	(
		[id]
	)
GO
GO
UPDATE MenuItens SET idTela = 4 where id = 165 --altera a tela de emissao de notas
GO
UPDATE MenuLateralItens SET idTela = 12 WHERE id = 104 --altera a tela de cadastro de produtos

GO
SET IDENTITY_INSERT [dbo].[MenuItens] ON

GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (446, 2, N'Financeiro', NULL, 162, 1, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (447, 2, N'Gerenciar Cadastros', 7, 446, 0, 1)

GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (448, 2, N'Consultar Movimentos', 16, 164, 2, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (449, 2, N'Relatório de Movimentos', 17, 164, 2, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (450, 2, N'-', NULL, 164, 3, 1)

GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (451, 2, N'Importar CTe', 312, 164, 9, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (452, 2, N'Importar MDFe', 313, 164, 11, 1)

GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (453, 2, N'Caixa', NULL, NULL, 2, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (454, 2, N'Liquidação de Contas', 36, 453, 0, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (455, 2, N'Exclusão de Liquidações', 35, 453, 1, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (456, 2, N'-', NULL, 453, 2, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (457, 2, N'Borderô de Caixa', 79, 453, 3, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (458, 2, N'-', NULL, 453, 4, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (459, 2, N'Consultar Caixas', 74, 453, 5, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (460, 2, N'Consultar Movimentação de Caixa', 115, 453, 6, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (461, 2, N'Fechar Caixa', 38, 453, 7, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (462, 2, N'-', NULL, 453, 8, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (463, 2, N'Lançamento de Recebimentos/Pagamentos', 39, 453, 9, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (464, 2, N'Relação de Recebimentos/Pagamentos', 40, 453, 10, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (465, 2, N'-', NULL, 453, 11, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (466, 2, N'Consultar Cheques', 55, 453, 12, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (467, 2, N'Relatório de Cheques', 71, 453, 13, 1)

GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (468, 2, N'Banco', NULL, NULL, 3, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (469, 2, N'Cadastrar Conta', 65, 468, 0, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (470, 2, N'Consultar Contas', 66, 468, 1, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (471, 2, N'-', NULL, 468, 2, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (472, 2, N'Conciliação Bancária', 67, 468, 3, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (473, 2, N'Extrato Bancário', 103, 468, 4, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (474, 2, N'-', NULL, 468, 5, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (475, 2, N'Geração de Boletos', 76, 468, 6, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (476, 2, N'Consulta de Boletos (Online)', 139, 468, 7, 1)

GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (477, 2, N'Faturas', NULL, NULL, 4, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (478, 2, N'Cadastrar Fatura', 41, 477, 0, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (479, 2, N'Consultar Faturas', 42, 477, 1, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (480, 2, N'-', NULL, 477, 2, 1)
GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (481, 2, N'Relatório de Faturas', 43, 477, 3, 1)

GO
INSERT [dbo].[MenuItens] ([id], [idMenu], [descricao], [idTela], [idMenuItemPai], [ordem], [idnVisivel]) VALUES (482, 2, N'SPED', NULL, 184, 0, 1)
GO
SET IDENTITY_INSERT [dbo].[MenuItens] OFF

GO
SET IDENTITY_INSERT [dbo].[MenuLateralItens] ON
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (312, 2, N'Consultar Formas', 236, 36, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (313, 2, N'Cadastrar Formas', 237, 36, N'cash_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (314, 2, N'Consultar Condições', 238, 37, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (315, 2, N'Cadastrar Condições', 239, 37, N'budget_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (316, 2, N'Gerenciar Grupos', 240, 38, N'invoice-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (317, 2, N'Consultar Receitas/Despesas', 241, 39, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (318, 2, N'Cadastrar Receitas/Despesas', 242, 39, N'cash-2_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (319, 2, N'Consultar Centros de Custo', 243, 40, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (320, 2, N'Cadastrar Centros de Custo', 244, 40, N'sales_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (321, 2, N'Resumo Movimentação Empresa', 245, 41, N'budget-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (322, 2, N'Consultar Trocas de Numerário', 246, 42, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (323, 2, N'Cadastrar Trocas de Numerário', 247, 42, N'pay_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (324, 2, N'Emissão de Recibo Avulso', 52, 43, N'bill-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (325, 2, N'Consultar Bancos', 64, 44, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (326, 2, N'Cadastrar Bancos', 248, 44, N'bank.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (327, 2, N'Consultar Tabelas de Preço', 249, 45, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (328, 2, N'Cadastrar Tabelas de Preço', 250, 45, N'price_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (329, 2, N'Consultar Variações de Preço', 251, 46, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (330, 2, N'Cadastrar Variações de Preço', 252, 46, N'low-price_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (331, 2, N'Consultar Parâmetros Descontos', 253, 47, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (332, 2, N'Cadastrar Parâmetros Descontos', 254, 47, N'discount_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (333, 2, N'Consultar Cartões de Desconto', 255, 48, N'discount-card_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (334, 2, N'Consultar Parâmetros Comissões', 256, 49, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (335, 2, N'Cadastrar Parâmetros Comissões', 257, 49, N'Parameters-32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (336, 2, N'-', NULL, 49, NULL, 2)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (337, 2, N'Relatório de Comissões', 258, 49, N'printer-2_32.png', 3)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (338, 2, N'Consultar Administradoras', 259, 50, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (339, 2, N'Cadastrar Administradoras', 260, 50, N'card-machine_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (340, 2, N'-', NULL, 50, NULL, 2)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (341, 2, N'Consultar Produtos/Serviços', 261, 50, N'search-2_32.png', 3)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (342, 2, N'Cadastrar Produtos/Serviços', 262, 50, N'credit-card_32.png', 4)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (343, 2, N'-', NULL, 50, NULL, 5)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (344, 2, N'Consultar Vencimentos', 263, 50, N'earn_32.png', 6)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (345, 2, N'Gerar Lote de Recebimentos', 264, 50, N'bank_32.png', 7)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (346, 2, N'Consultar Contratos', 265, 51, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (347, 2, N'Cadastrar Contratos', 266, 51, N'contract_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (348, 2, N'-', NULL, 51, NULL, 2)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (349, 2, N'Gerar Faturas', 267, 51, N'bill_32.png', 3)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (350, 2, N'Consultar Serviços', 268, 52, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (351, 2, N'Cadastrar Serviços', 269, 52, N'policy_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (352, 2, N'Consultar Parâmetros', 270, 53, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (353, 2, N'Cadastrar Parâmetros', 271, 53, N'Parameters-32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (354, 2, N'-', NULL, 53, NULL, 2)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (355, 2, N'Cadastrar Adiantamentos', 272, 53, N'cash-3_32.png', 3)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (356, 2, N'Consultar Numerários', 273, 54, N'bitcoin_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (357, 2, N'Consultar Parâmetros Autorização', 305, 62, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (358, 2, N'Cadastrar Parâmetros Autorização', 306, 62, N'shield.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (359, 2, N'Consultar Provisões', 343, 68, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (360, 2, N'Cadastrar Provisões', 344, 68, N'change_32.png', 1)

GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (361, 2, N'Alteração de Preços e Custos', 142, 2, N'lock_32.png', 4)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (362, 2, N'-', NULL, 2, NULL, 13)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (363, 2, N'Consultar Gêneros', 147, 2, N'search-2_32.png', 14)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (364, 2, N'Cadastrar Gêneros', 148, 2, N'collaboration_32.png', 15)

GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (365, 2, N'Consultar Operadores', 182, 14, N'search-2_32.png', 0)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (366, 2, N'Cadastrar Operadores', 183, 14, N'businessman_32.png', 1)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (367, 2, N'-', NULL, 14, NULL, 3)
GO
INSERT [dbo].[MenuLateralItens] ([id], [idMenu], [descricao], [idTela], [idMenuLateralGrupo], [imagem], [ordem]) VALUES (368, 2, N'Gerenciar Restrições', 184, 14, N'cone_32.png', 4)
GO
SET IDENTITY_INSERT [dbo].[MenuLateralItens] OFF

UPDATE MenuItens SET idnVisivel = 0 WHERE id = 180
UPDATE MenuItens SET ordem = 5 WHERE id = 177
UPDATE MenuItens SET ordem = 6 WHERE id = 179
UPDATE MenuItens SET ordem = 7 WHERE id = 181
UPDATE MenuItens SET ordem = 8 WHERE id = 184
UPDATE MenuItens SET ordem = 9 WHERE id = 182
UPDATE MenuItens SET ordem = 10 WHERE id = 183

UPDATE MenuItens SET idMenuItemPai = 482 WHERE id in (185,190)

UPDATE MenuLateralItens set ordem = 5 where id = 107

GO
UPDATE Telas SET idnBloquearAcessoPlanoBasico = 1 WHERE id in (246,247,249,250,251,252,253,254,255,256,257,258,265,266,267,268,269,270,271,272,305,306,343,344)

GO
INSERT INTO [dbo].[configuracaoNovo]([nomeParametro],[descricaoSimplificada],[descricaoDetalhada],[tipoValor],[valor],[grupo],[subgrupo],[tamanhoValorMaximo],[idnParametroMultilinhas],[idnParametroRadio],[idnParametroSelecaoPasta],[idnPermiteAlteracaoApenasPorAdmins],[idnCampoSenha],[tabelaSelecao],[filtroSelecao],[validacaoRegularExpression]) VALUES ('idnNaoExibirTelaEmissaoDocumentos', 'Não exibir a tela de Emissão de Documentos ao salvar a venda', 'Selecione esta opção quando desejar que a tela de Emissão de Documentos não seja exibida após salvar a Nota Fiscal ou Movimento.', 'bool', 'False', 'NFe/Movimento', 'Configurações da NFe',null,0,0,0,0,0,null,null,null)

IF ((select top 1 descricao from Menu where idnPadrao = 1) = 'NFE')
BEGIN
	
	UPDATE configuracaoNovo SET valor = 'True' WHERE nomeParametro = 'idnNaoExibirTelaEmissaoDocumentos'

	DECLARE @Filiais TABLE (id int)

	INSERT @Filiais
	SELECT id from emitente WHERE (coalesce(idnBaixa, 0) = 0)

	DECLARE @value VARCHAR(50)

	DECLARE db_cursor CURSOR FOR  
	SELECT id FROM @Filiais
	OPEN db_cursor   
	FETCH NEXT FROM db_cursor INTO @value   

	WHILE @@FETCH_STATUS = 0   
	BEGIN
		INSERT INTO [dbo].[ProdutoPreco] ([idProduto],[preco],[dataVigencia],[idFilial])
		SELECT id, vuncom, SYSDATETIME(), @value FROM produto
		WHERE (vuncom > 0) and (coalesce(idnBaixa, 0) = 0)

		FETCH NEXT FROM db_cursor INTO @value   
	END   

	CLOSE db_cursor   
	DEALLOCATE db_cursor
END

GO
UPDATE estado SET consultaNFCeProducao = 'https://portalsped.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml', consultaNFCeHomologacao = 'https://portalsped.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml' WHERE UF = 'MG'
GO
INSERT INTO VERSAO(VERSAO, VERSAOATUALIZACAO, DATAATUALIZACAO) VALUES(466, 724, GETDATE());