---FEITO POR WILLIAM EM 22/11/2023

DECLARE
 @N_SEQ_ORDCALRUBBNFPLN	numeric(5)
,@N_PLN_PLN	numeric(5)
,@N_TIPBNF_TIPBNF	numeric(5)
,@DT_INIVIG_BNFPLN	datetime
,@N_RUB_RUB	numeric(5)
,@DT_INIVIG_RUBBNFPLN	datetime
,@N_ORDCAL_ORDCALRUBBNFPLN	numeric(5)

,@RUBRICA_INCLUIR NUMERIC(5)
,@RUBRICA_BASE NUMERIC(5)


SET @RUBRICA_INCLUIR = 58 --RUBRICA QUE DEVE FICAR ACIMA
SET @RUBRICA_BASE = 53 --RUBRICA QUE DEVE FICAR ABAIXO

--SELECT * INTO Z_ORDEMCALCULORUBRICABENEFICIOPLANO_BKP_20231122 FROM ORDEMCALCULORUBRICABENEFICIOPLANO
DECLARE Cursor_Atualiza_ORDEM 

CURSOR FOR 
			SELECT RBP.* FROM ORDEMCALCULORUBRICABENEFICIOPLANO AS RBP
			JOIN TIPOBENEFICIO AS TB
			ON TB.N_TIPBNF_TIPBNF = RBP.N_TIPBNF_TIPBNF
			WHERE TB.N_GRPBNF_GRPBNF IN(1,2)
			--and tb.N_TIPBNF_TIPBNF =1
			--AND RBP.N_PLN_PLN = 1
			
			ORDER BY N_ORDCAL_ORDCALRUBBNFPLN
 

			OPEN Cursor_Atualiza_ORDEM

			FETCH Cursor_Atualiza_ORDEM INTO 
											 @N_SEQ_ORDCALRUBBNFPLN
											,@N_PLN_PLN
											,@N_TIPBNF_TIPBNF
											,@DT_INIVIG_BNFPLN
											,@N_RUB_RUB
											,@DT_INIVIG_RUBBNFPLN
											,@N_ORDCAL_ORDCALRUBBNFPLN

			WHILE @@FETCH_STATUS = 0
			BEGIN
			--CRIAR TABELA TEMPORARIA PAra alterar ordem de calculo
			--SELECT * FROM ORDEMCALCULORUBRICABENEFICIOPLANO
			--WHERE  N_RUB_RUB				  =  52 --@N_RUB_RUB
			--and N_TIPBNF_TIPBNF =1
			
			--ORDER BY 1 DESC

			UPDATE ORDEMCALCULORUBRICABENEFICIOPLANO
			SET N_ORDCAL_ORDCALRUBBNFPLN = 
			--SELECT * 
			
			--,
			CASE 
			WHEN N_RUB_RUB = @RUBRICA_INCLUIR 
									  THEN 
											(SELECT N_ORDCAL_ORDCALRUBBNFPLN FROM ORDEMCALCULORUBRICABENEFICIOPLANO
												WHERE  N_RUB_RUB =  @RUBRICA_BASE
												and N_TIPBNF_TIPBNF =@N_TIPBNF_TIPBNF
												AND @N_PLN_PLN = N_PLN_PLN) 	
			
			WHEN N_ORDCAL_ORDCALRUBBNFPLN > = 
			(SELECT N_ORDCAL_ORDCALRUBBNFPLN FROM ORDEMCALCULORUBRICABENEFICIOPLANO
			WHERE  N_RUB_RUB				  =  @RUBRICA_BASE
			and N_TIPBNF_TIPBNF =@N_TIPBNF_TIPBNF
			AND @N_PLN_PLN = N_PLN_PLN) 
										THEN 
											(SELECT N_ORDCAL_ORDCALRUBBNFPLN FROM ORDEMCALCULORUBRICABENEFICIOPLANO
											WHERE  N_RUB_RUB				  =  @N_RUB_RUB
											and N_TIPBNF_TIPBNF =@N_TIPBNF_TIPBNF
											AND @N_PLN_PLN = N_PLN_PLN)  + 1 
						
							
											ELSE @N_ORDCAL_ORDCALRUBBNFPLN END
			FROM ORDEMCALCULORUBRICABENEFICIOPLANO
			WHERE 
			 N_SEQ_ORDCALRUBBNFPLN	  =  @N_SEQ_ORDCALRUBBNFPLN
			 AND N_PLN_PLN				  =  @N_PLN_PLN
			AND N_TIPBNF_TIPBNF		  =  @N_TIPBNF_TIPBNF
			AND DT_INIVIG_BNFPLN		  =  @DT_INIVIG_BNFPLN
			AND N_RUB_RUB				  =  @N_RUB_RUB
			AND DT_INIVIG_RUBBNFPLN	  =  @DT_INIVIG_RUBBNFPLN
			AND N_ORDCAL_ORDCALRUBBNFPLN =  @N_ORDCAL_ORDCALRUBBNFPLN



				FETCH Cursor_Atualiza_ORDEM INTO 
											 @N_SEQ_ORDCALRUBBNFPLN
											,@N_PLN_PLN
											,@N_TIPBNF_TIPBNF
											,@DT_INIVIG_BNFPLN
											,@N_RUB_RUB
											,@DT_INIVIG_RUBBNFPLN
											,@N_ORDCAL_ORDCALRUBBNFPLN

				END
			CLOSE Cursor_Atualiza_ORDEM
			DEALLOCATE Cursor_Atualiza_ORDEM

			

			



------- ATUALIZANDO SEQUENCIAL GERAL, PRECISA REVISAR DEPOIS
--			WITH CTE( 
--N_SEQ_ORDCALRUBBNFPLN
--,N_PLN_PLN
--,N_TIPBNF_TIPBNF
--,DT_INIVIG_BNFPLN
--,N_RUB_RUB
--,DT_INIVIG_RUBBNFPLN
--,N_ORDCAL_ORDCALRUBBNFPLN_ANT
--,N_ORDCAL_ORDCALRUBBNFPLN_NOVO
--)
--AS(


--SELECT 
-- N_SEQ_ORDCALRUBBNFPLN
--,N_PLN_PLN
--,N_TIPBNF_TIPBNF
--,DT_INIVIG_BNFPLN
--,N_RUB_RUB
--,DT_INIVIG_RUBBNFPLN
--,N_ORDCAL_ORDCALRUBBNFPLN AS N_ORDCAL_ORDCALRUBBNFPLN_ANT
--,ROW_NUMBER()OVER(
--PARTITION BY 
--------N_SEQ_ORDCALRUBBNFPLN
-- N_PLN_PLN
--,N_TIPBNF_TIPBNF
--------,DT_INIVIG_BNFPLN
--------,N_RUB_RUB
--------,DT_INIVIG_RUBBNFPLN
--------,N_ORDCAL_ORDCALRUBBNFPLN

--ORDER BY N_ORDCAL_ORDCALRUBBNFPLN)  AS N_ORDCAL_ORDCALRUBBNFPLN_NOVO


--FROM ORDEMCALCULORUBRICABENEFICIOPLANO
----WHERE N_TIPBNF_TIPBNF = 20
----AND N_PLN_PLN = 1
----ORDER BY 2,N_ORDCAL_ORDCALRUBBNFPLN
--) 
--UPDATE O
--SET O.N_ORDCAL_ORDCALRUBBNFPLN = N_ORDCAL_ORDCALRUBBNFPLN_NOVO
----SELECT * 
--FROM CTE
--JOIN ORDEMCALCULORUBRICABENEFICIOPLANO AS O
--ON O.N_SEQ_ORDCALRUBBNFPLN = CTE.N_SEQ_ORDCALRUBBNFPLN














			---------