DROP PROC Op_EliminarDetTempcstore_Proc
GO

CREATE PROCEDURE Op_EliminarDetTempcstore_Proc
(@CORRNBR  INTEGER,
 @SEQUENCE TINYINT) 
as
BEGIN
  
  BEGIN TRAN      
 
  DELETE FROM TMP_OP_SALESDETCSTORE  WHERE CORRNBR=@CORRNBR AND SEQUENCE=@SEQUENCE
  IF (@@error!=0)
    BEGIN
        RAISERROR  20000 'No se puede Eliminar Registro del Detalle '
        ROLLBACK TRAN
        RETURN(1)    
    END
  
  -- Recalcular las Secuencias   
  DECLARE @NUEVASECUENCIA TINYINT
  DECLARE @SECUENCIA2 TINYINT

      DECLARE CURTEMDETALLE CURSOR FOR
              SELECT SEQUENCE FROM tmp_op_salesdetcstore where CORRNBR = @CORRNBR order by sequence 
      OPEN CURTEMDETALLE

      SET @NUEVASECUENCIA=1
      FETCH NEXT FROM CURTEMDETALLE INTO @SECUENCIA2
  
         WHILE @@FETCH_STATUS = 0
            BEGIN                                     
                UPDATE tmp_op_salesdetcstore SET SEQUENCE=@NUEVASECUENCIA
                       WHERE CORRNBR=@CORRNBR AND SEQUENCE=@SECUENCIA2                               

                IF (@@error!=0)
                   BEGIN
                     RAISERROR  20000 'No se puede Actualizar Correlativo'
                     CLOSE CURTEMDETALLE
                     DEALLOCATE CURTEMDETALLE                       
                     ROLLBACK TRAN
                     RETURN(1)    
                   END

                FETCH NEXT FROM CURTEMDETALLE INTO @SECUENCIA2   
                SET @NUEVASECUENCIA=@NUEVASECUENCIA+1              
            END  
       
      CLOSE CURTEMDETALLE
      DEALLOCATE CURTEMDETALLE
  COMMIT TRAN   
END
go
