
DROP PROCEDURE GrabarCabDepositoProc
GO
CREATE PROCEDURE GrabarCabDepositoProc
(   
    @SITEID              UD_IDSITE,
    @DATEPROCE		 UD_FECHA,
    @TOTALPEN		 UD_MONTO,
    @TOTALUSD		 UD_MONTO,
    @USERID		 UD_USERID,
    @CORRNBR             int
)

AS
BEGIN

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


    BEGIN TRAN
   
   --set TRANSACTION  isolation LEVEL read committed 

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

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

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

    INSERT INTO OP_DEPOSITSITE(SITEID,BATNBRDEPOSITSITE,DATEPROCE,TOTALPEN,TOTALUSD,STATUS,USERID)
    VALUES(@SITEID,@BATNBRDEPOSITSITE,@DATEPROCE,@TOTALPEN,@TOTALUSD,0,@USERID)
 
    IF (@@error!=0 OR @@ROWCOUNT=0)
    BEGIN
        RAISERROR  20000 'Error insertando en OP_DEPOSITSITE'
        ROLLBACK TRAN
        RETURN(1)
    
    END

    /*** Llamada al store de grabado de detalle ******/
    SET EXEC @ERROR=GrabarDetDepositoProc @CORRNBR,@BATNBRDEPOSITSITE

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

   SELECT @BATNBRDEPOSITSITE as NUMERODEPOSITO
   COMMIT TRAN

   RETURN(0)

END



