/* PROCEDIMIENTO PRINCIPAL DE EMISION DE DOCUMENTO */
DROP PROCEDURE IN_EmisionDeDocumentoProc
GO
CREATE PROCEDURE IN_EmisionDeDocumentoProc
(@SITEID1 UD_IDSITE,
@BATNBR1 char(10)
)
AS
BEGIN
	DECLARE	@ERROR		INTEGER 	-- PARA EL MANEJO DE ERRORES
	DECLARE @SWTINOUT 	BIT		-- FLAG PARA INGRESO(1) O SALIDA(0)
	DECLARE @DESENSAMBLE	BIT		-- 1 SI ES MOVIMIENTO POR DESENSAMBLE
	DECLARE @ID_ING_DES	UD_TYPEMOVEID	-- CODIGO DEL INGRESO POR DESENSAMBLE
	DECLARE @ID_SAL_DES	UD_TYPEMOVEID	-- CODIGO DE LA SALIDA POR DESENSAMBLE
	DECLARE	@COD_PROVEEDOR	UD_IDVENDOR	-- CODIGO DEL PROVEEDOR

 	BEGIN TRAN   
	
	SELECT @ERROR=0

	-- SE VERIFICA SI ES UN INGRESO O UNA SALIDA --
	SELECT 	@SWTINOUT=IN_TYPEDOC.INOUT,@DESENSAMBLE=IN_INTRAHEAD.DISASSEMBLE,@COD_PROVEEDOR=IN_INTRAHEAD.VENDIDSS
    	FROM 	IN_TYPEDOC,IN_INTRAHEAD
    	WHERE 	IN_TYPEDOC.TYPEDOCID=IN_INTRAHEAD.TYPEDOCID AND  SITEID=@SITEID1 AND BATNBR=@BATNBR1


	SELECT 	@ID_ING_DES=INTYPEDESIN,@ID_SAL_DES=INTYPEDESOUT
	FROM 	IN_SETUP

/****** LLAMADO AL PROCEDIMIENTO DE EMISION ******/
 
	SET EXEC @ERROR=IN_EmitirProc @SITEID1,@BATNBR1
    
	IF (@ERROR!=0)
    	BEGIN
		ROLLBACK
       		RETURN(1)               
    	END 

/****** LLAMADO AL PROCEDIMIENTO QUE GENERA LOS DOCUMENTOS POR DESENSAMBLE  ******/

	SELECT INVTIDSKU
        FROM IN_INTRAITEM 
	WHERE SITEID=@SITEID1 AND BATNBR=@BATNBR1 AND INVTIDSKU IN (SELECT INVTIDSKU FROM IN_INVENTORYDES)


 	IF(@SWTINOUT=1 AND @@ROWCOUNT!=0)
	BEGIN
		SET EXEC @ERROR=IN_GenerarDocumentosPorDesensambleProc @SITEID1,@BATNBR1,@ID_ING_DES,@ID_SAL_DES,@SWTINOUT,@COD_PROVEEDOR
	
		IF (@ERROR!=0)
    		BEGIN
			ROLLBACK
       			RETURN(1)               
    		END 
	END
	
	COMMIT TRAN	
  	RETURN (0)

END   

