/* PROCEDIMIENTO PARA GRABAR LA MODIFICACION DE UN INGRESO O UNA SALIDA, LLAMA AL PROCEDIMIENTO
   IN_ModificarMovimientoProc */
DROP PROCEDURE IN_ModificarMovimientoProc
GO
CREATE PROCEDURE IN_ModificarMovimientoProc
(
    @BATNBR	       CHAR(10),	
    @SITEID            UD_IDSITE,
    @TYPEDOCID         UD_TYPEMOVEID,
    @DOCTYPEID         UD_DOCTYPEID,
    @CORRNBR           int,
    @VENDIDSS          UD_IDVENDOR,
    @FROMCURYID        char(3),
    @DOCSTATUSID       char(2),
    @INTRDATE          smalldatetime,
    @INTRDATEPROCE     smalldatetime,
    @REFNBR	       CHAR(15),
    @DISASSEMBLE       BIT,
    @INTRTOTPEN        UD_MONTO,
    @INTRTAXPEN        UD_IMPUESTO,
    @INTRTOTUSD        UD_MONTO,
    @INTRTAXUSD        UD_IMPUESTO,
    @INTRSUBTOTPEN     UD_MONTO,
    @INTRSUBTOTUSD     UD_MONTO,
    @COMMENT1	       CHAR(100),	
    @COMMENT2	       CHAR(100),
    @COMMENT3	       CHAR(100),
    @BAT 	CHAR(10) =' '	 OUTPUT	 )
AS
BEGIN
   
   DECLARE @ERROR Integer
   DECLARE @TSTAMP timestamp
   DECLARE @ROWCOUNT Integer
   SELECT @ERROR=0   


    BEGIN TRAN
    
     --ELIMINANDO EL DETALLE DE MOVIMIENTO

	DELETE 
	FROM	IN_INTRAITEM
	WHERE	SITEID=@SITEID AND BATNBR=@BATNBR
        
      	IF (@@error!=0 OR @@ROWCOUNT=0)
    	BEGIN
		RAISERROR  20000 'Error Eliminando en IN_INTRAITEM'
        	ROLLBACK TRAN
        	RETURN(1)
    
    	END
	
    --ACTUALIZANDO EL DETALLE DE MOVIMIENTO
    	SET EXEC @ERROR=IN_GrabaDetalleMovimientoProc @CORRNBR,@BATNBR,@VENDIDSS,@FROMCURYID,@DOCSTATUSID,@INTRDATE, @INTRDATEPROCE

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

	UPDATE 	IN_INTRAHEAD
	SET	REFNBR=@REFNBR,
		DISASSEMBLE=@DISASSEMBLE,
    		INTRTOTPEN=@INTRTOTPEN,   
    		INTRTAXPEN=@INTRTAXPEN,   
   		INTRTOTUSD=@INTRTOTUSD,   
    		INTRTAXUSD=@INTRTAXUSD,   
    		INTRSUBTOTPEN=@INTRSUBTOTPEN,
    		INTRSUBTOTUSD=@INTRSUBTOTUSD
	WHERE 	SITEID=@SITEID AND BATNBR=@BATNBR

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

	UPDATE COMMENT SET COMMENT1=@COMMENT1,
			   COMMENT2=@COMMENT2,
			   COMMENT3=@COMMENT3
	WHERE  SITEID=@SITEID AND TYPEDOCID=@TYPEDOCID AND DOCTYPEID=@DOCTYPEID AND BATNBR=@BATNBR

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

	 
    COMMIT TRAN
    RETURN(0)
END

