/****** Object:  StoredProcedure [dbo].[sel_cat_catalogo_bodegas_itemDocumento]    Script Date: 07/18/2015 10:06:57 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[a_upd_actualizarExistencias]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[a_upd_actualizarExistencias]
GO

CREATE PROCEDURE [dbo].[a_upd_actualizarExistencias]
	@p_eid as varchar(50)
	,@p_id_catalogo as int=0
AS
BEGIN

	--CAMPO EXISTENCIA 
	/*controlado en SAMM
	update cat_catalogo_bodega
	set existencia=sum(cantidadPlaneado-cantidadejecutado)
	from view_doc_itemDocumento IT
		inner join view_doc_subtipodocumento SD on IT.doc_documento_id_subtipoDocumento=SD.id
	where 
		SD.doc_tipoDocumento_esSalida=1 and SD.doc_tipoDocumento_mostrarBodega=1	--condiciones de los tipos de documento
		and (@p_id_catalogo=0 or IT.id_catalogo=@p_id_catalogo)*/

	--CAMPO RESERVADO /*busca en RQs abiertas*/
	update cat_catalogo_bodega
	set reservado=T0.reservado
	from cat_catalogo_bodega
		inner join 
		(	select id_catalogo,id_bodega,sum(cantidadPlaneado-cantidadejecutado) as reservado
			from doc_itemDocumento IT
				inner join doc_documento DOC on IT.id_documento=DOC.id
				inner join doc_estadoTipodocumento EST on DOC.id_estadotipodocumento=EST.id
				inner join doc_subtipodocumento SUB on DOC.id_subtipodocumento=SUB.id
			where IT.active=1
				and IT.id_catalogo>0
				and SUB.id_tipoDocumento=4 -- RQs
				and EST.estadoTipodocumento_codigo not in ('CAN','CER')
			group by id_catalogo,id_bodega
		) T0 on T0.id_catalogo=cat_catalogo_bodega.id_catalogo and T0.id_bodega=cat_catalogo_bodega.id_bodega
		and (@p_id_catalogo=0 or cat_catalogo_bodega.id_catalogo=@p_id_catalogo)
	
	--CAMPO enOrdenes /*busca en OCs abiertas*/
	update cat_catalogo_bodega
	set enOrdenes=T0.enOrdenes
	from cat_catalogo_bodega
		inner join 
		(	select id_catalogo,id_bodega,sum(cantidadPlaneado-cantidadejecutado) as enOrdenes
			from doc_itemDocumento IT
				inner join doc_documento DOC on IT.id_documento=DOC.id
				inner join doc_estadoTipodocumento EST on DOC.id_estadotipodocumento=EST.id
				inner join doc_subtipodocumento SUB on DOC.id_subtipodocumento=SUB.id
			where IT.active=1
				and SUB.id_tipoDocumento=7 -- OCs select * from doc_tipodocumento
				and EST.estadoTipodocumento_codigo not in ('CAN','CER')
			group by id_catalogo,id_bodega
		) T0 on T0.id_catalogo=cat_catalogo_bodega.id_catalogo and T0.id_bodega=cat_catalogo_bodega.id_bodega
		and (@p_id_catalogo=0 or cat_catalogo_bodega.id_catalogo=@p_id_catalogo)
		

END
GO


