SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO

IF EXISTS (SELECT * FROM sys.objects 
   WHERE object_id = OBJECT_ID(N'WINV_ResumenDiario_Operacion_RepInfo') )
DROP Procedure WINV_ResumenDiario_Operacion_RepInfo
GO
 
Create PROCEDURE WINV_ResumenDiario_Operacion_RepInfo
				@Lista_Almacen nvarchar(1000),
				@Lista_Seccion nvarchar(1000),
				@Fecha_Hasta datetime
AS

BEGIN

/*
    Date: Mar 30,2016  
	      
    Reportes: 
	   Resumen Diario por 
	   Tipo de Movimiento
  

*/
Set Language us_english

--  Declare @Lista_Almacen nvarchar(1000),
--		  @Lista_Seccion nvarchar(1000),
--		  @Fecha_Hasta datetime
--Set @Lista_Almacen = '100'
--Set @Lista_Seccion = '645'
--Set @Fecha_Hasta = '2016-01-30 00:00:00'
--	drop table #Temp_ResumenDiario
--	drop table #Lista_cFirst


/* ==================================================================
   Region 01 
   Creación de tablas 
   ==================================================================
*/

	CREATE TABLE #Temp_ResumenDiario
       (cRow        int identity(1,1),
		cFirst      tinyint default 0,
		Id_Alma     int default 0 NULL,
		Id_Secc     int default 0 NULL,
		Id_Almad    int default 0 NULL,
		Id_Seccd    int default 0 NULL,
		Id_Arti     int default 0 NULL,
		Importe     Money default 0.00 NULL,
		Id_Tmov     int default 0 NULL,
		Id_Dmov     int default 0 NULL,
		Fec_Oper    datetime NULL,
		Consecutivo int default 0 NULL,
		Referencia  nvarchar(50)  NULL,
		Cod_Almao   nvarchar(20)  NULL,
		Desc_Almao  nvarchar(250) NULL,
		Cod_Secco   nvarchar(50)  NULL,
		Desc_Secco  nvarchar(250) NULL,
		Cod_Orig    nvarchar(20)  NULL,
		Cod_Almad   nvarchar(20)  NULL,
		Cesc_Almad  nvarchar(250) NULL,
		Cod_Seccd   nvarchar(50)  NULL,
		Desc_Seccd  nvarchar(250) NULL,
		Cod_Dest    nvarchar(50)  NULL,
		Cod_Dmov    nvarchar(50)  NULL,
		Desc_Dmov   nvarchar(50)  NULL,
		Desc_Tmov   nvarchar(50)  NULL,
		Cod_Fami    nvarchar(50)  NULL,
		Desc_Fami   nvarchar(250) NULL,
		Cod_Grup    nvarchar(50)  NULL,
		Desc_Grup   nvarchar(250) NULL)
		
		Create Table #Lista_cFirst
		 	        (cRow int)	

/* ==================================================================
   Region 02
   Creación de Variables y Filtros
   ==================================================================
*/

	Declare @Filtro_Almacen nvarchar(1000) = '',
	        @Filtro_Seccion nvarchar(1000) = ''

	Delete #Temp_ResumenDiario
	Delete #Lista_cFirst

   Insert Into #Temp_ResumenDiario
               (id_alma,id_secc,id_almad,id_seccd,
			   	id_arti,importe,id_tmov,id_dmov,
				fec_oper,consecutivo,referencia,
				cod_almao,desc_almao,
				cod_secco,desc_secco,
				cod_orig,cod_almad,Cesc_Almad,
				cod_seccd,desc_seccd,
				cod_dest,cod_dmov,desc_dmov,
				desc_tmov,cod_fami,desc_fami,
				cod_grup,desc_grup)
    Exec CierreDiario
	     @Lista_Almacen,@Lista_Seccion,@Fecha_Hasta

/* ==================================================================
   Region 03
   Insert información
   ==================================================================
*/
	Insert Into #Lista_cFirst(cRow)
 		Select cRow  
		From 
			(SELECT ROW_NUMBER() OVER(PARTITION BY 
					Id_Tmov,Id_DMov,Consecutivo 
				ORDER BY Consecutivo DESC ) AS r,
					cRow
				FROM #Temp_ResumenDiario) as r 
				Where r.r=1

	Update #Temp_ResumenDiario
				Set cFirst = 1
				From #Temp_ResumenDiario a
					 Inner join #Lista_cFirst b on b.cRow = a.cRow

   
   Select  * 
      From #Temp_ResumenDiario

----------- Fin ---------------------

	-- Descripción de la Selección
    DECLARE @Fil VARCHAR(4000) = ''
    DECLARE @vElementos VARCHAR(8000) = ''
	DECLARE @vAux VARCHAR(20) = NULL
  
	IF LEN(LTRIM(RTRIM(@Lista_Almacen))) = ''
	BEGIN
		SET @Fil = @Fil + 'LblGENAll'
	END
	ELSE
	BEGIN
		SET @vElementos = @Lista_Almacen
		WHILE LEN(@vElementos) > 0
		BEGIN
			IF PATINDEX('%,%',@vElementos) > 0
			BEGIN
				SET @vAux = SUBSTRING(@vElementos, 0, PATINDEX('%,%',@vElementos))
				IF LEN(LTRIM(RTRIM(@Fil))) > 0
				BEGIN
					SET @Fil = @Fil + ', '
				END
				SET @Fil = @Fil + ISNULL((SELECT LTRIM(RTRIM(codigo)) + '-' + LTRIM(RTRIM(descripcion)) FROM STOKALMA WHERE id_alma = CONVERT(INT, @vAux)), '???')
				SET @vElementos = SUBSTRING(@vElementos, LEN(@vAux + ',') + 1, LEN(@vElementos))
			END
			ELSE
			BEGIN
				SET @vAux = @vElementos
				SET @vElementos = NULL
				IF LEN(LTRIM(RTRIM(@Fil))) > 0
				BEGIN
					SET @Fil = @Fil + ', '
				END
				SET @Fil = @Fil + ISNULL((SELECT LTRIM(RTRIM(codigo)) + '-' + LTRIM(RTRIM(descripcion)) FROM STOKALMA WHERE id_alma = CONVERT(INT, @vAux)), '???')
			END
		END
	END
	
	SELECT @Fil FilAlmacen
	
	SET @Fil = ''
	
	IF LEN(LTRIM(RTRIM(@Lista_Seccion))) = ''
	BEGIN
		SET @Fil = @Fil + 'LblGENAll'
	END
	ELSE
	BEGIN
		SET @vElementos = @Lista_Seccion
		WHILE LEN(@vElementos) > 0
		BEGIN
			IF PATINDEX('%,%',@vElementos) > 0
			BEGIN
				SET @vAux = SUBSTRING(@vElementos, 0, PATINDEX('%,%',@vElementos))
				IF LEN(LTRIM(RTRIM(@Fil))) > 0
				BEGIN
					SET @Fil = @Fil + ', '
				END
				SET @Fil = @Fil + ISNULL((SELECT LTRIM(RTRIM(codigo)) + ' - ' + LTRIM(RTRIM(descripcion)) FROM STOKSECC WHERE id_secc = CONVERT(INT, @vAux)), '???')
				SET @vElementos = SUBSTRING(@vElementos, LEN(@vAux + ',') + 1, LEN(@vElementos))
			END
			ELSE
			BEGIN
				SET @vAux = @vElementos
				SET @vElementos = NULL
				IF LEN(LTRIM(RTRIM(@Fil))) > 0
				BEGIN
					SET @Fil = @Fil + ', '
				END
				SET @Fil = @Fil + ISNULL((SELECT LTRIM(RTRIM(codigo)) + ' - ' + LTRIM(RTRIM(descripcion)) FROM STOKSECC WHERE id_secc = CONVERT(INT, @vAux)), '???')
			END
		END
	END
	
	SELECT @Fil FilSeccion


END
