DROP PROCEDURE ModificarListaPrecioCliProc
GO
CREATE PROCEDURE ModificarListaPrecioCliProc
(   @PRCLVLCUSTID	 UD_PRCLVLCUSTID,
    @SITEID              UD_IDSITE,
    @DESCR		 UD_DESCRIPCION,
    @STARTDATEPRICE      UD_FECHA,
    @ENDDATEPRICE        UD_FECHA,
    @CORRNBR             int,
    @BAT 	CHAR(10) =' '	 OUTPUT	 
)
AS
BEGIN

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




DECLARE    @CURYID		 UD_CURYID
DECLARE    @APPROVA1		 BIT
DECLARE    @USERIDAPPROVA1      UD_USERID
DECLARE    @DATETIMEAUTORIZED1  UD_FECHA
DECLARE    @APPROVA2		 BIT
DECLARE    @USERIDAPPROVA2      UD_USERID
DECLARE    @DATETIMEAUTORIZED2  UD_FECHA
DECLARE    @SITEIDSOURCE        UD_IDSITE
DECLARE    @TYPEPRCLVLCUST	 CHAR(1)
  



   DECLARE   @PRCLVLCUSTID_AUX UD_PRCLVLCUSTID

   --ACTUALIZANDO LA CABECERA DE LA LISTA DE PRECIOS DE INVENTARIO	

   BEGIN TRAN	

	SELECT @PRCLVLCUSTID_AUX=PRCLVLCUSTID
	FROM OP_PRCLVLCUST
	WHERE SITEID=@SITEID AND PRCLVLCUSTID=@PRCLVLCUSTID
	
	IF(@PRCLVLCUSTID_AUX IS NOT NULL)
		BEGIN
   			UPDATE 	OP_PRCLVLCUST
			SET  	DESCR=@DESCR,
	     			STARTDATEPRICE=@STARTDATEPRICE,
	     			ENDDATEPRICE=@ENDDATEPRICE
			WHERE SITEID=@SITEID AND PRCLVLCUSTID=@PRCLVLCUSTID

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

	
   			--ELIMINANDO EL DETALLE DE LA LISTA DE PRECIOS DE INVENTARIO

			DELETE 
			FROM	OP_PRCLVLCUSTDET
			WHERE	PRCLVLCUSTID=@PRCLVLCUSTID AND SITEID=@SITEID

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

		END
	ELSE
		BEGIN
			INSERT INTO OP_PRCLVLCUST(PRCLVLCUSTID,SITEID,CURYID,descr,STARTDATEPRICE,ENDDATEPRICE,STATUS,APPROVA1,
					USERIDAPPROVA1,DATETIMEAUTORIZED1,APPROVA2,USERIDAPPROVA2,DATETIMEAUTORIZED2,
			        	STKPRICESEND,SITEORIG,STKPRICESS,TYPEPRCLVLCUST)
			SELECT TOP 1	@PRCLVLCUSTID,@SITEID,CURYID,@descr,@STARTDATEPRICE,@ENDDATEPRICE,STATUS,APPROVA1,
					USERIDAPPROVA1,DATETIMEAUTORIZED1,APPROVA2,USERIDAPPROVA2,DATETIMEAUTORIZED2,
			        	STKPRICESEND,SITEORIG,STKPRICESS,TYPEPRCLVLCUST
			FROM 	OP_PRCLVLCUST
			WHERE	PRCLVLCUSTID=@PRCLVLCUSTID

			IF (@@error!=0 OR @@ROWCOUNT=0 )
    				BEGIN
					RAISERROR  20000 'Error Insertando en OP_PRCLVLCUST'
        				ROLLBACK TRAN
        				RETURN(1)
    
    				END
		END 
   --ACTUALIZANDO EL DETALLE DE LA LISTA DE PRECIOS DE INVENTARIO
    	SET EXEC @ERROR=GrabarDetHistPrecCliProc @CORRNBR,@PRCLVLCUSTID,@SITEID

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


SELECT * FROM OP_PRCLVLCUST