/****** Script do comando SelectTopNRows de SSMS  ******/
select
	concat('update or insert into TBNFS (imp_valordesconto, COMANDA, ESTABELECIMENTO_CODIGO,NUMERO_NOTAFISCAL,SERIE,NATUREZA,CONTROLE,DATA_SAIDA,SITUACAO,DATA_EMISSAO,EMPRESA_CODIGO,EMPRESA_RAZAOSOCIAL,EMPRESA_CNPJ,EMPRESA_IE,HORA_SAIDA,EMPRESA_ENDERECO,				EMPRESA_NUMERO,EMPRESA_BAIRRO,EMPRESA_CIDADE,EMPRESA_UF,EMPRESA_CEP,REPRESENTANTE_CODIGO,CFOP_CODIGO,CFOP_DESCRICAO,CFOP_OPCIONAL,STATUSEXCLUSAO,USUARIO_CODIGO,USUARIO_DATA,REPRESENTANTE_COMISSAO,ACUMULA_ITEM,SUFRAMA,CHAVE_ACESSO,TIPO,XML,DANFE,PAGAMENTO,RECIBO,PROTOCOLO,PROTOCOLO_CANCELAMENTO,MOTIVO_CANCELAMENTO,UF_EMBARQUE,LOCAL_EMBARQUE,NFP,LOTE,EMAIL,MODELO,ESPECIE,FORMULARIO_INICIAL,FORMULARIO_FINAL,SPED,FISCAL_CFOP_CODIGO,VENDEDOR_ID,VENDEDOR_COMISSAO,SPED_PISCOF,TIPO_DOC,OCULTA_GRADE,FLAG,FLAG_SIT,HORA_EMISSAO,ID_ESTRANGEIRO,IND_FINAL,IND_PRESENCA,SALESFORCE,CONTABILIZACAO_ID,CLASSIFICACAO,GC_WEB,DATA_ATUALIZACAO,PDV_CAIXA_ID,NUMERO_DAE,CONCILIACAO,DATA_COMPETENCIA, IMP)'
		,' values ('
		,ValorDesconto,
		,'fn_lpad(''',Loja,''',3,''0'')||fn_lpad(''',Comanda,''',8,''0'')'
		,',''',ESTABELECIMENTO_CODIGO,''''
		,',''',NUMERO_NOTAFISCAL,''''
		,',''',SERIE,''''
		,',''',NATUREZA,''''
		,',gen_id(GENIDIMP,1)'
		,',''',DATA_SAIDA,''''
		,',''',SITUACAO,''''
		,',''',DATA_EMISSAO,''''
		,',''',EMPRESA_CODIGO,''''
		,',''',EMPRESA_RAZAOSOCIAL,''''
		,',''',EMPRESA_CNPJ,''''
		,',''',EMPRESA_IE,''''
		,',''',HORA_SAIDA,''''
		,',''',EMPRESA_ENDERECO,''''		
		,',''',EMPRESA_NUMERO,''''
		,',''',EMPRESA_BAIRRO,''''
		,',''',EMPRESA_CIDADE,''''
		,',''',EMPRESA_UF,''''
		,',''',EMPRESA_CEP,''''
		,',''',REPRESENTANTE_CODIGO,''''
		,',''',CFOP_CODIGO,''''
		,',''',CFOP_DESCRICAO,''''
		,',''',CFOP_OPCIONAL,''''
		,',''',STATUSEXCLUSAO,''''
		,',''',USUARIO_CODIGO,''''
		,',''',USUARIO_DATA,''''
		,',''',REPRESENTANTE_COMISSAO,''''
		,',''',ACUMULA_ITEM,''''
		,',''',SUFRAMA,''''
		,',''',CHAVE_ACESSO,''''
		,',''',TIPO,''''
		,',''',XML,''''
		,',''',DANFE,''''
		,',''',PAGAMENTO,''''
		,',''',RECIBO,''''
		,',''',PROTOCOLO,''''
		,',NULL'
		,',NULL'
		,',NULL'
		,',NULL'
		,',NULL'
		,',NULL'
		,',NULL'
		,',''',MODELO,''''
		,',''',ESPECIE,''''
		,',NULL'
		,',NULL'
		,',''',SPED,''''
		,',''',FISCAL_CFOP_CODIGO,''''
		,',''',VENDEDOR_ID,''''
		,',''',VENDEDOR_COMISSAO,''''
		,',''',SPED_PISCOF,''''
		,',''',TIPO_DOC,''''
		,',NULL'
		,',''',FLAG,''''
		,',''',FLAG_SIT,''''
		,',NULL'
		,',NULL'
		,',NULL'
		,',NULL'
		,',''',SALESFORCE,''''
		,',NULL'
		,',''',CLASSIFICACAO,''''
		,',''',GC_WEB,''''
		,',NULL'
		,',NULL'
		,',NULL'
		,',NULL'
		,',NULL'
		,',1',
	') matching (ESTABELECIMENTO_CODIGO, NUMERO_NOTAFISCAL, SERIE, EMPRESA_CODIGO, NATUREZA, CONTROLE, IMP);') as SQL
	--,f.*

from(
	SELECT 

		A.loja				 ESTABELECIMENTO_CODIGO,
		a.NotaFiscal		 NUMERO_NOTAFISCAL,
		a.NotaFiscal_Serie   SERIE,
		2                    NATUREZA,
		a.NotaFiscal         CONTROLE,
		FORMAT(a.data, 'dd.MM.yyyy')      DATA_SAIDA,
		2                    SITUACAO,
		FORMAT(a.data, 'dd.MM.yyyy')     DATA_EMISSAO,
		b.[Codigo] + 200    EMPRESA_CODIGO,
		SUBSTRING(b.[RazaoSocial],1,50) EMPRESA_RAZAOSOCIAL,
		a.cnpjcpfconsumidor EMPRESA_CNPJ,
		''					EMPRESA_IE,
		a.hora				HORA_SAIDA,

		SUBSTRING(b.[PontoReferencia],1,20) AS EMPRESA_ENDERECO,
		0 AS				EMPRESA_NUMERO,
		SUBSTRING(b.[Bairro],1,20) AS EMPRESA_BAIRRO,
		c.[Cidade] AS		EMPRESA_CIDADE,
		b.[UF] AS			EMPRESA_UF,
		b.[CEP] AS			EMPRESA_CEP,

		0					REPRESENTANTE_CODIGO,
		'5.101'					CFOP_CODIGO,
		'VENDA DE PRODUÇ.DO ESTABELECIMENTO'					CFOP_DESCRICAO,
		''                   CFOP_OPCIONAL,
		'1'                  STATUSEXCLUSAO,
		5                    USUARIO_CODIGO,
		FORMAT(a.data, 'dd.MM.yyyy') USUARIO_DATA,
		0                    REPRESENTANTE_COMISSAO,
		'0'                  ACUMULA_ITEM,
		''					 CHAVE_ACESSO,
		'1'                  TIPO,
		'00'                 XML,
		'1'                  DANFE,
		0					 PAGAMENTO,
		''					 RECIBO,
		''					 PROTOCOLO,
		--NULL                 PROTOCOLO_CANCELAMENTO,
		--NULL                 MOTIVO_CANCELAMENTO,
		--NULL                 UF_EMBARQUE,
		--NULL                 LOCAL_EMBARQUE,
		'0'                  NFP,
		--NULL                 LOTE,
		--NULL                 EMAIL,
		'55'                 MODELO,
		'55'                 ESPECIE,
		--NULL                 FORMULARIO_INICIAL,
		--NULL                 FORMULARIO_FINAL,
		'1'                  SPED,
		''					 FISCAL_CFOP_CODIGO,
		0                    VENDEDOR_ID,
		0                    VENDEDOR_COMISSAO,
		'1'                  SPED_PISCOF,
		'1'                  TIPO_DOC,
		--NULL                 OCULTA_GRADE,
		0                    FLAG,
		0                    FLAG_SIT,
		--NULL                 HORA_EMISSAO,
		--NULL                 ID_ESTRANGEIRO,
		--NULL                 IND_FINAL,
		--NULL                 IND_PRESENCA,
		'0'                  SALESFORCE,
		--NULL                 CONTABILIZACAO_ID,
		''                   CLASSIFICACAO,
		'01'                 GC_WEB,
		--NULL                 DATA_ATUALIZACAO,
		--NULL                 PDV_CAIXA_ID,
		--NULL                 NUMERO_DAE,
		--NULL                 CONCILIACAO,
		--NULL                 DATA_COMPETENCIA,
		
		A.*

	  FROM [AlphaInd].[dbo].[Comandas] A, [Alphaind].[dbo].[Clientes] b, [Alphaind].[dbo].[Cidades] c
	  WHERE A.cliente = b.[Codigo]
	  and c.Codigo = b.cidade
	  --and a.ValorBruto = 384.85
	  and a.data >= cast('2022-01-01' as date) 
) f