ALTER PROCEDURE [dbo].[sp_proListadoOP]
(@fecini DATETIME, 
 @fecfin DATETIME, 
 @etapa  INT  = 0, 
 @tipo   INT  = 0,
 @codSuc INT  = 0
)
AS 
	IF @tipo = 0
		
		BEGIN
		 SELECT proOP.idOP, 
                    invArticulos.nomart, 
                    invArticulos.codbus, 
                    proOP.fecha_ingreso, 
                    proOP.tipoOP, 
                    proOPEtapas.etapa, --COUNT(proOPEtapas.linea) AS etapas, 
                    MIN(proOPEtapas.inicio) AS inicio_op, 
                    MAX(proOPEtapas.termino) AS termino_op, 
                  --  '' AS inicio_opreal, 
                  -- '' AS termino_opreal, 
                    proOPEtapas.cantTotal, 
                    proOPEtapas.cantProceso, 
                    proOPEtapas.cantProceso - proOPEtapas.cantTotal AS Diferencia,
                    CASE proOP.tipoOP
                        WHEN 1
                        THEN 'NOTA DE PEDIDO'
                        ELSE 'STOCK'
                    END AS origen,
					proOPDetalleNP.cantidad as cantidadPlanificada,
					dbo.CantidadLiberacionOP(proOP.idOP, proOPEtapas.linea ) as cantLiberada,
					proOPDetalleNP.cantidad - dbo.CantidadLiberacionOP(proOP.idOP, proOPEtapas.linea) as Saldo,
					proOP.codsuc

					

             FROM proOPEtapas
                  INNER JOIN invArticulos
                  INNER JOIN proOP ON invArticulos.codbus = proOP.codbus ON proOPEtapas.idOp = proOP.idOP
				 INNER JOIN proOPDetalleNP ON proOP.idOP = proOPDetalleNP.idOP
				-- left JOIN proLiberacion ON proOP.idOP = proLiberacion.idOP
             WHERE(proOP.fecha_ingreso BETWEEN @fecini AND @fecfin)
                 -- AND PROOP.estado = @tipo
                  AND (proOPEtapas.etapa= @etapa OR @etapa=0)
                  AND (proOP.codsuc=@codSuc OR @codSuc=0)


             GROUP BY proOP.idOP, 
                      invArticulos.nomart, 
                      invArticulos.codbus,
					  proOPEtapas.etapa, 
                      proOP.fecha_ingreso, 
                      proOP.tipoOP, 
                      proOPEtapas.cantProceso, 
                      proOPEtapas.cantTotal,
					  proOPDetalleNP.cantidad,
					  proOPEtapas.linea,
					  proOP.codsuc;

                      SELECT @fecfin
                      SELECT @FECFIN
	END

	ELSE
		BEGIN
		  SELECT proOP.idOP, 
                    invArticulos.nomart, 
                    invArticulos.codbus, 
                    proOP.fecha_ingreso, 
                    proOP.tipoOP, 
                    COUNT(proOPEtapas.linea) AS etapas, 
                    MIN(proOPEtapas.inicio) AS inicio_op, 
                    MAX(proOPEtapas.termino) AS termino_op, 
                  --  '' AS inicio_opreal, 
                  -- '' AS termino_opreal, 
                    proOPEtapas.cantTotal, 
                    proOPEtapas.cantProceso, 
                    proOPEtapas.cantProceso - proOPEtapas.cantTotal AS Diferencia,
                    CASE proOP.tipoOP
                        WHEN 1
                        THEN 'NOTA DE PEDIDO'
                        ELSE 'STOCK'
                    END AS origen,
					proOPDetalleNP.cantidad as cantidadPlanificada,
					dbo.CantidadLiberacionOP(proOP.idOP, proOPEtapas.linea ) as cantLiberada,
					proOPDetalleNP.cantidad - dbo.CantidadLiberacionOP(proOP.idOP, proOPEtapas.linea) as Saldo,
					proOP.codsuc

					

             FROM proOPEtapas
                  INNER JOIN invArticulos
                  INNER JOIN proOP ON invArticulos.codbus = proOP.codbus ON proOPEtapas.idOp = proOP.idOP
				 INNER JOIN proOPDetalleNP ON proOP.idOP = proOPDetalleNP.idOP
				-- left JOIN proLiberacion ON proOP.idOP = proLiberacion.idOP
             WHERE(proOP.fecha_ingreso BETWEEN @fecini AND @fecfin)
                AND PROOP.estado = @tipo
                  AND (proOPEtapas.etapa= @etapa OR @etapa=0)
                  AND (proOP.codsuc=@codSuc OR @codSuc=0)


             GROUP BY proOP.idOP, 
                      invArticulos.nomart, 
                      invArticulos.codbus, 
                      proOP.fecha_ingreso, 
                      proOP.tipoOP, 
                      proOPEtapas.cantProceso, 
                      proOPEtapas.cantTotal,
					  proOPDetalleNP.cantidad,
					  proOPEtapas.linea,
					  proOP.codsuc;

                      SELECT @fecfin
                      SELECT @FECFIN

	END

             --                SELECT proOP.idOP, 
             --       invArticulos.nomart, 
             --       invArticulos.codbus, 
             --       proOP.fecha_ingreso, 
             --       proOP.tipoOP, 
             --       COUNT(proOPEtapas.linea) AS etapas, 
             --       MIN(proOPEtapas.inicio) AS inicio_op, 
             --       MAX(proOPEtapas.termino) AS termino_op, 
             --     --  '' AS inicio_opreal, 
             --     -- '' AS termino_opreal, 
             --       proOPEtapas.cantTotal, 
             --       proOPEtapas.cantProceso, 
             --       proOPEtapas.cantProceso - proOPEtapas.cantTotal AS Diferencia,
             --       CASE proOP.tipoOP
             --           WHEN 1
             --           THEN 'NOTA DE PEDIDO'
             --           ELSE 'STOCK'
             --       END AS origen
             --FROM proOPEtapas
             --     INNER JOIN invArticulos
             --     INNER JOIN proOP ON invArticulos.codbus = proOP.codbus ON proOPEtapas.idOp = proOP.idOP
             --WHERE(proOP.fecha_ingreso BETWEEN @fecini AND @fecfin)
             --     AND PROOP.estado = @tipo
             --     AND (proOPEtapas.etapa= @etapa OR @etapa=0)
             --     AND (proOP.codsuc=@codSuc OR @codSuc=0)

             --GROUP BY proOP.idOP, 
             --         invArticulos.nomart, 
             --         invArticulos.codbus, 
             --         proOP.fecha_ingreso, 
             --         proOP.tipoOP, 
             --         proOPEtapas.cantProceso, 
             --         proOPEtapas.cantTotal;

             --         SELECT @fecfin
             --         SELECT @FECFIN