ALTER PROCEDURE [dbo].[sp_proEntrada_Procesado]
(
@fecini		datetime ,
@fecfin		datetime,
@etapa int = 0,
@estado int = 0
)
AS
SELECT DISTINCT 
                      proProcesos.idOP, proEtapas.codEtapa, proEtapas.nomEtapa, proOPEtapas.linea, proOPEtapas.lineapre, MAX(proProcesos.cantidad) AS cantidad, 
                      COALESCE (SUM(proLiberacion.cantidadBase), 0) AS cantliberada, proProcesos.inicio, proProcesos.termino, proProcesos.codmaquina AS maquina, 
                      proMaquinas.nomMaquina, proProcesos.estado, proOP.codbus, invArticulos.nomart, proOPEtapas.cantAlt AS cantProceso, 
                      dbo.udfTimeSpanFromSeconds(DATEDIFF(SECOND, proProcesos.inicio, GETDATE())) AS TTrans, 
                      dbo.udfTimeSpanFromSeconds(dbo.TiempoProceso(proProcesos.idOP, proOPEtapas.linea, proProcesos.inicio)) AS Tproceso, proOPEtapas.formula, 
                      proReceta.nomReceta, proRecetaEtapas.factor
                      INTO            [#A]
FROM         proProcesos INNER JOIN
                      proOPEtapas ON proProcesos.idOP = proOPEtapas.idOp AND proProcesos.lineaEtapa = proOPEtapas.linea INNER JOIN
                      proMaquinas ON proProcesos.codmaquina = proMaquinas.codMaquina INNER JOIN
                      proOP ON proOPEtapas.idOp = proOP.idOP INNER JOIN
                      invArticulos ON proOP.codbus = invArticulos.codbus INNER JOIN
                      proEtapas ON proProcesos.codEtapa = proEtapas.codEtapa INNER JOIN
                      proReceta ON proOPEtapas.formula = proReceta.codReceta AND proOP.codbus = proReceta.codArticulo LEFT OUTER JOIN
                      proLiberacion ON proProcesos.idOP = proLiberacion.idOP AND proProcesos.lineaEtapa = proLiberacion.linea AND CONVERT(smalldatetime, proProcesos.inicio) 
                      = CONVERT(smalldatetime, proLiberacion.inicio) LEFT OUTER JOIN
					  proRecetaEtapas ON proProcesos.codEtapa = proRecetaEtapas.codEtapa AND proOP.codbus = proRecetaEtapas.codArticulo
WHERE     (proOPEtapas.etapa = @etapa) AND (proProcesos.cantidad > 0) AND (proProcesos.estado = 3) OR
                      (proProcesos.cantidad > 0) AND (proProcesos.estado = 3) AND (@etapa = 0)
GROUP BY proProcesos.idOP, proProcesos.inicio, proOPEtapas.lineapre, proOPEtapas.linea, proProcesos.codmaquina, proMaquinas.nomMaquina, proProcesos.estado, 
                      invArticulos.nomart, proOPEtapas.cantAlt, proProcesos.lineaEtapa, proOP.codbus, proOPEtapas.formula, proEtapas.codEtapa, proEtapas.nomEtapa, 
                      proProcesos.termino, proReceta.nomReceta, prorecetaEtapas.factor

SELECT *,cantidad - cantliberada  AS saldo
FROM #A




--SELECT     proOPEtapas.idOp, proOPEtapas.idsubOP, proOPEtapas.linea, proOPEtapas.lineapre, proOPEtapas.etapa, 
--			proOPEtapas.tipo, proOPEtapas.inicio, proOPEtapas.termino, proOPEtapas.maquina, 
--			proOPEtapas.cantTotal, proOPEtapas.cantProceso, proOPEtapas.formula, 
--			COALESCE (SUM(proProcesos.cantidad), 0) AS cantproc
--INTO #A
--FROM         proProcesos RIGHT OUTER JOIN
--                      proOPEtapas ON proProcesos.idOP = proOPEtapas.idOp AND proProcesos.lineaEtapa = proOPEtapas.linea
--WHERE etapa = @etapa 

--GROUP BY proOPEtapas.idOp, proOPEtapas.idsubOP, proOPEtapas.linea, proOPEtapas.lineapre, proOPEtapas.etapa, proOPEtapas.tipo, proOPEtapas.inicio, 
--                      proOPEtapas.termino, proOPEtapas.maquina, proOPEtapas.cantTotal, proOPEtapas.cantProceso, proOPEtapas.formula
                      
                      
----SELECT *

----FROM proOPEtapas 


--select *,COALESCE((SELECT SUM(prodTerminado)
--			FROM [proLiberacion]
--			WHERE proLiberacion.idOP = #A.idOP AND proLiberacion.linea = #A.lineapre
--			GROUP BY [idOP],[linea]),0) as cantpred
--into #B
--from #A
--where tipo=2


--select *,COALESCE((SELECT SUM(prodTerminado)
--			FROM [proLiberacion]
--			WHERE proLiberacion.idOP = #A.idOP AND proLiberacion.etapa = #A.lineapre
--			GROUP BY [idOP],[etapa]),0) as cantpred
--into #C
--from #A
--where tipo=1


--SELECT *
--FROM #B
--UNION
--select * from #C


----SELECT *,CASE WHEN lineapre <= 0 THEN 0 ELSE cantpred - cantproc  END AS saldo,0 as estado,0 as cantenproc
----FROM #D
----UNION 
----SELECT idOP,0,lineaEtapa,0, codEtapa, 0,inicio,termino,codmaquina,0,0,0,0,0,0,estado,cantidad
----FROM  proProcesos
----WHERE estado > 0 and codEtapa = @etapa 

----ORDER BY estado