ALTER   PROCEDURE [dbo].[sp_proDatosPlantilla]
(	        @diseño int=1
		   ,@tipo int=1		
           ,@idOP int=1
           ,@linea int=1
 )
AS

IF @diseño=1
BEGIN
SET @idOP=1
SET @linea=1
END


--ENCABEZADO
SELECT     proOP.idOP, proOP.fecha_ingreso, proOP.codbus, invArticulos.nomart, invArticulos.nomart2, invArticulos.coduni, invUnidadMedida.nomuni, 
                      invUnidadMedida.abruni,proOP.tipoOP,CASE proOP.tipoOP WHEN 1 THEN 'NOTA DE PEDIDO' ELSE 'STOCK' END AS origen,
					  proOP.glosa,
					  proOPDetalleNP.NP,
					  proOPDetalleNP.cantidad,
					  proReceta.codReceta,
					  invArticulos.unidadesEnvase,
					  invArticulos.pesoEnvase,
					  invArticulos.unidadesCaja,
					  invArticulos.ancho,
					  invArticulos.largo,
					  invArticulos.alto AS espesor,
					  ISNULL(invColores.descripcion,'') AS color,
					  ISNULL(invtallas.descripcion,'') AS densidad,
					  invArticulos.pesoCaja AS pesoMetro
FROM         proOP INNER JOIN
                      invArticulos ON proOP.codbus = invArticulos.codbus LEFT JOIN
					  invColores ON invArticulos.color = invColores.codigo LEFT JOIN
					  invTallas ON invarticulos.talla = invtallas.codigo INNER JOIN
                      invUnidadMedida ON invArticulos.coduni = invUnidadMedida.coduni INNER JOIN
					  proOPDetalleNP ON proOP.idOP = proOPDetalleNP.idOP INNER JOIN
					  proReceta ON proOP.codbus = proReceta.codArticulo and proReceta.periodo= YEAR(GETDATE())
WHERE proOP.idop = @idOP 

--ETAPAS
SELECT      proOPEtapas.linea, proOPEtapas.lineapre, proOPEtapas.tipo,CASE proOP.tipoOP WHEN 1 THEN 'ETAPA' ELSE 'LINEA' END AS tipo_pred, proOPEtapas.duracion, proOPEtapas.inicio, proOPEtapas.termino, 
                      proOPEtapas.maquina, proEtapas.codEtapa, proEtapas.nomEtapa, proMaquinas.codMaquina, proMaquinas.nomMaquina, proReceta.codReceta, 
                      proReceta.nomReceta, proOPEtapas.cantTotal, proOPEtapas.cantProceso, proOPEtapas.cantAlt, proOPEtapas.Comentario
FROM         proOPEtapas 
                      INNER JOIN proEtapas ON proOPEtapas.etapa = proEtapas.codEtapa and proEtapas.periodo= YEAR(GETDATE()) 
                      INNER JOIN proMaquinas ON proOPEtapas.maquina = proMaquinas.codMaquina and proMaquinas.periodo= YEAR(GETDATE()) 
                      INNER JOIN proReceta ON proOPEtapas.formula = proReceta.codReceta and proReceta.periodo= YEAR(GETDATE()) 
                      INNER JOIN proOP ON proOPEtapas.idOp = proOP.idOP AND proReceta.codArticulo = proOP.codbus and proReceta.periodo= YEAR(GETDATE()) 
                      INNER JOIN proRecetaEtapas ON proRecetaEtapas.codEtapa = proOPEtapas.etapa AND proRecetaEtapas.codReceta = proOPEtapas.formula and proRecetaEtapas.periodo= YEAR(GETDATE()) 
WHERE proOPEtapas.idOp = @idOP 
AND (proOPEtapas.linea=@linea OR @linea=0)

--NOTAS DE PEDIDO
SELECT     proOPDetalleNP.NP, proOPDetalleNP.codbus, cotNotaPedidoDetalle.glosa, cotNotaPedidoDetalle.cantidad, proOPDetalleNP.cantidad AS cantPro, conCtacte.rutcte, conCtacte.digcte, conCtacte.nomcte, cotNotaPedidoDetalle.coddoc
FROM         cotNotaPedidoDetalle INNER JOIN
                      cotNotaPedido ON cotNotaPedidoDetalle.coddoc = cotNotaPedido.coddoc AND cotNotaPedidoDetalle.numdoc = cotNotaPedido.numdoc INNER JOIN
                      proOPDetalleNP ON cotNotaPedidoDetalle.idlinea = proOPDetalleNP.idlinea INNER JOIN
                      conCtacte ON cotNotaPedido.cliente = conCtacte.rutcte INNER JOIN
                      proOP ON proOPDetalleNP.idOP = proOP.idOP AND proOPDetalleNP.codbus = proOP.codbus
WHERE     (cotNotaPedido.coddoc = 2)
AND proOPDetalleNP.idop = @idOP 

--MATERIA PRIMAS
SELECT	proRecetaMP.codReceta, 
		proRecetaMP.codComponente, 
		invArticulos.nomart, 
		proRecetaMP.unidadMedida, 
		invUnidadMedida.nomuni, 
		proRecetaMP.cantidad,
		proOPEtapas.cantProceso * (proRecetaMP.cantidad / proReceta.cantidadBase) as CantidadUnitaria,
		proReceta.cantidadBase
		   
FROM         proOPEtapas INNER JOIN
                      proOP ON proOPEtapas.idOp = proOP.idOP INNER JOIN
                      proRecetaMP ON proOPEtapas.etapa = proRecetaMP.codEtapa AND proOPEtapas.formula = proRecetaMP.codReceta AND 
                      proOP.codbus = proRecetaMP.codArticulo AND proOPEtapas.periodo = proRecetaMP.periodo INNER JOIN
                      invArticulos ON proRecetaMP.codComponente = invArticulos.codbus INNER JOIN
                      invUnidadMedida ON proRecetaMP.unidadMedida = invUnidadMedida.coduni INNER JOIN
					  proReceta ON proRecetaMP.codReceta = proReceta.codReceta AND proRecetaMP.periodo = proreceta.periodo
WHERE     (proOPEtapas.idOp = @idOP) -- AND (proOPEtapas.linea = @linea)
GROUP BY proRecetaMP.codReceta, 
		proRecetaMP.codComponente, 
		invArticulos.nomart, 
		proRecetaMP.unidadMedida, 
		invUnidadMedida.nomuni, 
		proRecetaMP.cantidad,
		proReceta.cantidadBase,
		proOPEtapas.cantProceso

--COMPONENTES ARTÍCULOS MATERIAS PRIMAS
SELECT
    C.componente,
    A.nomart,
    C.cantidad,
    U.abruni,
    ISNULL(C.costo, 0) AS costo,
    ISNULL(C.ultimaCompra, 0) AS ultimaCompra
FROM proOPEtapas
INNER JOIN proOP
    ON proOPEtapas.idOp = proOP.idOP
INNER JOIN proRecetaMP
    ON proOPEtapas.etapa   = proRecetaMP.codEtapa
	AND proOPEtapas.periodo = proRecetaMP.periodo
    AND proOPEtapas.formula = proRecetaMP.codReceta
    AND proOP.codbus        = proRecetaMP.codArticulo
INNER JOIN invArticulosCom AS C
    ON proRecetaMP.codComponente = C.codbus
INNER JOIN invArticulos AS A
    ON C.componente = A.codbus
LEFT JOIN invUnidadMedida AS U
    ON A.coduni = U.coduni
WHERE proOPEtapas.idOp = @idOP
GROUP BY C.componente,
		A.nomart,
		C.cantidad,
		U.abruni,
		C.costo,
		C.ultimaCompra
