
DROP PROCEDURE GrabarCabContometroProc
GO
CREATE PROCEDURE GrabarCabContometroProc
(   
    @SITEID              UD_IDSITE,
    @DATEPROCES		 UD_FECHA,
    @NBRTUR		 CHAR(1),
    @SALESPERID      	 UD_SALESPERSONID,
    @USERID		 UD_USERID,
    @CORRNBR             int
)

AS
BEGIN

   DECLARE @BATNBRTURN UD_CORRELATIVOS
   DECLARE @ERROR Integer
   DECLARE @TSTAMP timestamp
   DECLARE @ROWCOUNT Integer
   SELECT @ERROR=0   


    BEGIN TRAN
   
   --set TRANSACTION  isolation LEVEL read committed 

   SELECT @BATNBRTURN=NBRCORELATIVE FROM OP_CORELATIVE
				WHERE TYPECORELATIVE='BATNBRTURN'

  /*** ACTUALIZACION DEL CORRELATIVO DE TIPO DE MOVIMIENTO ***/
    	UPDATE OP_CORELATIVE
    	SET    NBRCORELATIVE=NBRCORELATIVE+1   
	WHERE  TYPECORELATIVE='BATNBRTURN' AND NBRCORELATIVE=@BATNBRTURN

     IF (@@error!=0 OR @@ROWCOUNT=0 )
    BEGIN
	RAISERROR  20000 'Error Actualizando OP_CORELATIVE'
        ROLLBACK TRAN
        RETURN(1)
    
    END
   

    INSERT INTO OP_CTRLTURN(BATNBRTURN,SITEID,DATEPROCES,NBRTUR,SALESPERID,USERID,STATUS)
    VALUES(@BATNBRTURN,@SITEID,@DATEPROCES,@NBRTUR,@SALESPERID,@USERID,0)
 
    IF (@@error!=0 OR @@ROWCOUNT=0)
    BEGIN
        RAISERROR  20000 'Error insertando en OP_CTRLTURN'
        ROLLBACK TRAN
        RETURN(1)
    
    END

    /*** Llamada al store de grabado de detalle ******/
    SET EXEC @ERROR=GrabarDetContometroProc @CORRNBR,@BATNBRTURN

    IF (@ERROR!=0)
    BEGIN
       RAISERROR  20000 'Error insertando en OP_CTRLTURNDET'	
       ROLLBACK TRAN
       RETURN(1)               
    END 

   SELECT @BATNBRTURN as NUMEROCONTOMETRO
   COMMIT TRAN

   RETURN(0)

END



