/****** Script do comando SelectTopNRows de SSMS  ******/
SELECT 

--concat('Nº ',SUBSTRING(Documento,1,LEN(Documento) - 2)),
--concat('REF. A PARC.',TRY_CAST(SUBSTRING(Documento,LEN(Documento) - 1,2) AS int)),
--Documento,
--HISTORICO,

		concat('update or insert into TBMOVCONTMESTRE (ID, CODESTABELECIMENTO, DATA, TIPOLANC)',
			   ' values (',[linha],', 1, ''',FORMAT([Data], 'dd.MM.yyyy'),''',''N'')',
			   ' matching (ID);',
			   
			   ' update or insert into TBMOVCONTABIL (ID, CODESTABELECIMENTO, IDCONTMOV, IDCONTA, DATA, NATUREZA, IDDOCUMENTO, DESCRICAO,',
			   ' CODORIGEM, IDHISTORICO, HISTORICO, GRUPOLALUR, CONTA, VALOR, TIPOLANC, SALDO,',
			   ' SITUACAO, FCONT, CCUSTO, DATAHORA, ANO, MES, CONTA_1, CONTA_2, CONTA_4, CONTA_7, HISTORICO_DRE)',
			   ' values (',
			   [linha],',',
			   '1,',
			   [linha],',',
			   '0',',''',
			   FORMAT([Data], 'dd.MM.yyyy'),''',''',
			   iif(Tipo = 1, 'C','D'),''',',
			   iif(LEN(Documento) >= 8 AND CHARINDEX(concat('Nº ',SUBSTRING(Documento,1,LEN(Documento) - 2)),HISTORICO) > 0 AND CHARINDEX(concat('REF. A PARC.',TRY_CAST(SUBSTRING(Documento,LEN(Documento) - 1,2) AS int)),HISTORICO) > 0, SUBSTRING(Documento,1,LEN(Documento) - 2), 
			   iif(LEN(Documento) >= 8 AND CHARINDEX(concat('COMPRA C/NF Nº ',REPLACE(SUBSTRING(Documento,1,LEN(Documento) - 2),'N','')),HISTORICO) > 0, [dbo].[fn_array](Documento,'N',1) , 'null' )),',''',
			   Documento,''',',
			   
			   iif(LEN(Documento) >= 8 AND CHARINDEX(concat('Nº ',SUBSTRING(Documento,1,LEN(Documento) - 2)),HISTORICO) > 0 AND CHARINDEX(concat('REF. A PARC.',TRY_CAST(SUBSTRING(Documento,LEN(Documento) - 1,2) AS int)),HISTORICO) > 0, '''NFS''',
			   iif(LEN(Documento) >= 8 AND CHARINDEX(concat('COMPRA C/NF Nº ',REPLACE(SUBSTRING(Documento,1,LEN(Documento) - 2),'N','')),HISTORICO) > 0, '''NFE''','''BCO''')),',',
			   
			   
			   '0,''',
			   SUBSTRING(HISTORICO,1,250),''',',
			   'null,''',
			   SUBSTRING(CONTA,2,4) ,'010',SUBSTRING(CONTA,6,3),''',',
			   valor,',',
			   '''N'',',
			   iif((valor-ValorPago-ValorDesconto) > 0,1,0),',',
			   iif([Status] = 'A','1','0'),',',
			   '1,',
			   '''11'',',
			   'current_timestamp,',
			   FORMAT([Data], 'yyyy'),',',
			   FORMAT([Data], 'MM'),',''',
			   SUBSTRING(concat(SUBSTRING(CONTA,2,4),'010',SUBSTRING(CONTA,6,3)),1,1),''',''',
			   SUBSTRING(concat(SUBSTRING(CONTA,2,4),'010',SUBSTRING(CONTA,6,3)),1,2),''',''',
			   SUBSTRING(concat(SUBSTRING(CONTA,2,4),'010',SUBSTRING(CONTA,6,3)),1,4),''',''',
			   SUBSTRING(concat(SUBSTRING(CONTA,2,4),'010',SUBSTRING(CONTA,6,3)),1,7),''',''',
			   ''''
			   ,') matching (ID, CODESTABELECIMENTO, IDCONTMOV);',
			
			   ''
			   ) as SQL,

			   a.*
from(
SELECT
	   ROW_NUMBER() over(order by [Conta]) as linha,
	   [Tipo]
      ,[CliFor]
      ,[Documento]
      ,[Data]
      ,[Vencimento]
      ,[Valor]
      ,[FormaPagto]
      ,[Conta]
      ,[Status]
      ,[Historico]
      ,[Banco]
      ,[Cheque]
      ,[ContaCheque]
      ,[Agencia]
      ,[TitularCheque]
      ,[CPFCheque]
      ,[ValorPago]
      ,[DataPago]
      ,[Loja]
      ,[Cartao]
      ,[TaxaCartao]
      ,[Destino]
      ,[ProrrogadoDe]
      ,[FundoFixo]
      ,[DataBaixa]
      ,[HoraBaixa]
      ,[UsuarioBaixa]
      ,[Venda]
      ,[Vendedor]
      ,[ImprimenoCaixa]
      ,[Funcionario]
      ,[Fiscal]
      ,[ArquivoBB]
      ,[NossoNumero]
      ,[StatusEquifax]
      ,[DataProtestado]
      ,[Protestado]
      ,[NotaFiscal]
      ,[DocumentoOriginal]
      ,[Representante]
      ,[Vale]
      ,[CodigoFundoFixo]
      ,[EmCasa]
      ,[Bordero]
      ,[Codigo]
      ,[ContaFixa]
      ,[ConcialiacaoBancaria]
      ,[FactoryBordero]
      ,[FactoryData]
      ,[DevolucaoData]
      ,[TituloRecebidonoFrente]
      ,[DataRenegociado]
      ,[CobrancaBordero]
      ,[CobrancaBorderoData]
      ,[CobrancaDestino]
      ,[CobrancaAdvogado]
      ,[CobrancaData]
      ,[CobrancaHora]
      ,[CobrancaUsuario]
      ,[Pedido]
      ,[ArquivoBaixa]
      ,[FormadeRecebimento]
      ,[NumerodoCaixa]
      ,[BorderoChequeTerceiro]
      ,[CartorioProtestado]
      ,[TaxaProtestado]
      ,[ArquivodeMicrofilmagem]
      ,[CodigoComissaoRepresentante]
      ,[PedidoCompra]
      ,[UsuarioAprovador]
      ,[AgenteCobrador_Conta]
      ,[AgenteCobrador_Banco]
      ,[ChequeGarantido]
      ,[Aprovado]
      ,[Portador]
      ,[CodigoAntecipacao]
      ,[CartaoAntecipacao]
      ,[NotaFiscal_Loja]
      ,[NotaFiscal_Modelo]
      ,[NotaFiscal_Serie]
      ,[ValorDesconto]
      ,[Cartao_POS]
      ,[Cartao_Autorizacao]
      ,[Cartao_Bandeira]
      ,[Corretor]
      ,[ArquivodeMicrofilmagemVerso]
      ,[Competencia]
      ,[Maquineta]
      ,[Cancelamento_Data]
      ,[Cancelamento_Hora]
      ,[Cancelamento_Usuario]
      ,[Cancelamento_Computador]
      ,[Cartao_DOC1]
      ,[Cartao_DOC]
      ,[Consignacao]
      ,[ChequeAutorizacao]
  FROM [Alphaind].[dbo].[Financeiro]
  --where LEN(Documento) >= 8
  where DataBaixa is null
  --where Historico like '%REF. A PARC.%'
) A