/* PROCEDIMIENTO PARA GRABAR UN HISTORIAL DE PRECIO DE INVENTARIO
   IN_GrabarCabHistPrecInvProc */
DROP PROCEDURE IN_GrabarCabHistPrecInvProc
GO
CREATE PROCEDURE IN_GrabarCabHistPrecInvProc
(
    @SITEID              UD_IDSITE,
    @SITEIDSOURCE        UD_IDSITE,
    @USERIDAUTORIZED01   UD_USERID,
    @DATETIMEAUTORIZED01 UD_FECHA,
    @USERIDAUTORIZED02   UD_USERID,
    @DATETIMEAUTORIZED02 UD_FECHA,
    @PRECLVID            UD_PRECLVID,
    @STARTDATEPRICE      UD_FECHA,
    @ENDDATEPRICE        UD_FECHA,
    @STARTTIMEPRICE      char(5),
    @ENDTIMEPRICE        char(5),
    @USER1             UD_USER1                 = NULL,
    @USER2             UD_USER2                 = NULL,
    @USER3             UD_USER6                 = NULL,
    @USER4             UD_USER7                 = NULL,
    @CORRNBR           int,
    @BAT 	char(10) =' '	 OUTPUT	 )
AS
BEGIN
   
   DECLARE @BATNBR UD_CORRELATIVOS
   DECLARE @ERROR Integer
   DECLARE @TSTAMP timestamp
   DECLARE @ROWCOUNT Integer
   SELECT @ERROR=0   


    BEGIN TRAN
   
   --set TRANSACTION  isolation LEVEL read committed 

   SELECT @BATNBR=NBRCORELATIVE FROM OP_CORELATIVE
				WHERE TYPECORELATIVE='BATNBRPRICELEVELTEM'

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

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

    INSERT INTO IN_PRICELEVELTEM(BATNBRPRICELEVELTEM,SITEID,SITEIDSOURCE,USERIDAUTORIZED01,DATETIMEAUTORIZED01,USERIDAUTORIZED02,
                             DATETIMEAUTORIZED02,PRECLVID,STKPRICESS,STARTDATEPRICE,ENDDATEPRICE,STARTTIMEPRICE,
                             ENDTIMEPRICE,STATUS,STKPRICESEND,USER1,USER2,USER3,USER4 
                             )
    VALUES(@BATNBR,@SITEID,@SITEIDSOURCE,@USERIDAUTORIZED01,@DATETIMEAUTORIZED01,@USERIDAUTORIZED02,
                             @DATETIMEAUTORIZED02,@PRECLVID,0,@STARTDATEPRICE,@ENDDATEPRICE,@STARTTIMEPRICE,
                             @ENDTIMEPRICE,1,0,@USER1,@USER2,@USER3,@USER4
                             )
 
    IF (@@error!=0)
    BEGIN
        RAISERROR  20000 'Error insertando en IN_PRICELEVELTEM'
        ROLLBACK TRAN
        RETURN(1)
    
    END

    /*** Llamada al store de grabado de detalle ******/
    SET EXEC @ERROR=IN_GrabarDetHistPrecInvProc @CORRNBR,@BATNBR

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

   SET @BAT=@BATNBR
   SELECT @BATNBR as NUMEROLISTAPREINV
   COMMIT TRAN
   RETURN(0)
END

