ALTER  PROCEDURE [dbo].[sp_proLiberacionDinamicaCarga_Enc]
(
	  @etapa int = 0
	, @id_op int = 0
	, @maquina int =0
	, @codbus varchar(50) = ''
	--, @ocultasaldo int = 0
	, @np int = 0
    , @codsuc int
	, @fec_desde date
	, @fec_hasta date
		
)
AS

SELECT  proOPEtapas.idOp 
		,proOP.tipoOP     -- oculta   
		,proOPEtapas.linea  -- oculta
		,proOPEtapas.lineapre    -- oculta
		,proOPEtapas.tipo -- oculta
		,proOPEtapas.etapa  -- oculta
		
	--	,proOPEtapas.inicio    
	--	,proOPEtapas.termino   
	--	,proOPEtapas.maquina   
	
	--	,proOPEtapas.cantTotal    
	--	,proOPEtapas.cantProceso as cantProceso   --PLanificada --DETALLE
		,proOPEtapas.formula -- oculta  
		,invArticulos.nomart  
		,invArticulos.codbus    
		    
		--,proMaquinas.nomMaquina    
		,0 as estado     -- oculta             
		--,SUM(isnull(proLiberacion.cantidadBase,0)) AS cantproc --DETALLE
		--,SUM(isnull(proLiberacion.cantidadprocesada_alt,0)) AS cantprocalt --DETALLE
		--,SUM(dbo.CantidadPredecesora(proOPEtapas.idOp, proOPEtapas.lineapre, invArticulos.codbus, proOPEtapas.tipo, proOPEtapas.lineapre)) AS cantpred --DETALLE ocuto
		,(proOPEtapas.cantProceso  - sum(isnull(proLiberacion.cantidadBase,0))) as saldo
		--,(proOPEtapas.cantAlt - sum(isnull(proLiberacion.cantidadprocesada_alt,0))) as saldosalt --DETALLE
		, dbo.proNotasPedidoPorOP(proOPEtapas.idOp) as notasPedido --DETALLE
        ,proOPEtapas.periodo --oculto
       -- ,0 as cantProd
		--,proOPEtapas.cantAlt as cantAlt planificada alt detalle
FROM   proOPEtapas
		INNER JOIN proOP on proOPEtapas.idOp = proOP.idOP AND proop.codsuc=@codsuc  AND  proOPEtapas.periodo= YEAR(proOP.Fecing)
		INNER JOIN invArticulos on invArticulos.codbus = proOP.codbus
		LEFT OUTER JOIN	 proLiberacion on proOPEtapas.idOp = proLiberacion.idOP and proOPEtapas.linea = proLiberacion.linea and proLiberacion.etapa = proOPEtapas.etapa
		INNER JOIN proMaquinas on proOPEtapas.maquina = proMaquinas.codMaquina AND proOPEtapas.periodo = proMaquinas.periodo
	--	LEFT OUTER JOIN proOPDetalleNP on proOPEtapas.idOp = proOPDetalleNP.idOP
		

--invArticulos 
--		INNER JOIN	proOP ON invArticulos.codbus = proOP.codbus
--		INNER JOIN	proOPEtapas ON proOP.idOP = proOPEtapas.idOp
--		--LEFT OUTER JOIN	proProcesos ON proOPEtapas.idOp = proProcesos.idOP AND proOPEtapas.linea = proProcesos.lineaEtapa
--		--NUEVO
--		LEFT OUTER JOIN	 proLiberacion on proOPEtapas.idOp = proLiberacion.idOP and proOPEtapas.linea = proLiberacion.linea and proLiberacion.etapa = proOPEtapas.etapa
--		INNER JOIN proMaquinas on proOPEtapas.maquina = proMaquinas.codMaquina 
		
WHERE	(proOP.nulo = 0)
		AND (proOPEtapas.etapa = @etapa ) 
		AND (proOPEtapas.idOP = @id_op OR @id_op = 0)
		AND (proOPEtapas.maquina = @maquina OR @maquina= 0)	
		AND (proOP.codbus = @codbus OR @codbus = '')
		--AND (proOPDetalleNP.NP = @np or @np= 0)
		AND (convert(date,proOP.fecha_ingreso) BETWEEN @fec_desde AND @fec_hasta)
		AND ISNULL(ultimaliberacion,0) <> 1
		

GROUP BY proOPEtapas.idOp
		,proOP.tipoOP
		,proOPEtapas.idsubOP
		,proOPEtapas.linea
		,proOPEtapas.lineapre
		,proOPEtapas.etapa
		,proOPEtapas.tipo
		,proOPEtapas.inicio
		,proOPEtapas.termino
		,proOPEtapas.maquina
		,proOPEtapas.cantTotal
		,proOPEtapas.cantProceso 
		,proOPEtapas.formula
		,invArticulos.nomart
		,invArticulos.codbus
		,proMaquinas.nomMaquina
        ,proOpetapas.periodo
		,proOPEtapas.cantAlt

HAVING (proOPEtapas.cantProceso  - sum(isnull(proLiberacion.cantidadBase,0))) > 0