ALTER PROCEDURE [dbo].[sp_proOpCargaOrigenNP]
(@codbus        VARCHAR(200) = '', 
 @cliente       INT          = 0, 
 @fecha_entrega DATETIME, 
 @idop          INT          = 0, 
 @tipo          INT          = 0, 
 @codSuc        INT          = 0
)
AS

DECLARE @periodo INT = (SELECT periodo FROM ProParametros)
DECLARE @periodoOP INT =  (SELECT TOP(1) YEAR(fecing) FROM proOP WHERE idOP = @IDOP)

     IF @tipo = 0
         BEGIN
             SELECT cotNotaPedidoDetalle.numdoc, 
                    cotNotaPedidoDetalle.numlin, 
                    invArticulos.codbus, 
                    invArticulos.nomart, 
					cotNotaPedidoDetalle.glosa,
                    conCtacte.rutcte, 
                    conCtacte.digcte, 
                    CAST(conCtacte.rutcte AS VARCHAR) + '-' + conCtacte.digcte AS rut, 
                    conCtacte.nomcte, 
                    cotNotaPedidoDetalle.fecha_entrega, 
					invArticulos.stogen stogen,
                    cotNotaPedidoDetalle.cantidad, 
                    cotNotaPedidoDetalle.cant_pro, 
                    cotNotaPedidoDetalle.cantidad - cotNotaPedidoDetalle.cant_pro AS saldo, 
                    0 AS cantpro, 
                    0.00 AS producir, 
                    0 AS linea, 
                    0 AS checked, 
                    @periodo AS periodo,
					cotNotaPedidoDetalle.idlinea,
					cotNotaPedidoDetalle.canalt
             FROM cotNotaPedido
                  INNER JOIN cotNotaPedidoDetalle ON cotNotaPedido.coddoc = cotNotaPedidoDetalle.coddoc
                                                     AND cotNotaPedido.numdoc = cotNotaPedidoDetalle.numdoc
                  INNER JOIN invArticulos ON cotNotaPedidoDetalle.cod_articulo = invArticulos.codbus
                  INNER JOIN conCtacte ON cotNotaPedido.cliente = conCtacte.rutcte
                  INNER JOIN invUnidadMedida ON invArticulos.coduni = invUnidadMedida.coduni
                  INNER JOIN invFamilia ON invArticulos.codfam = invFamilia.codfam
             WHERE(invFamilia.productoterminado = 1)
                  AND (invArticulos.codbus = @codbus
                       OR @codbus = '')
                  AND (conCtacte.rutcte = @cliente
                       OR @cliente = 0)
                  --AND (cotNotaPedidoDetalle.cantidad - cotNotaPedidoDetalle.cant_pro) >= 0
                  AND (cotNotaPedidoDetalle.coddoc = 2)
                  AND (cotNotaPedidoDetalle.fecha_entrega <= @fecha_entrega)
                  AND (cotNotaPedido.estado <> 2)
                  AND (cotNotaPedido.tipoVenta = 1)
                  AND (cotNotaPedido.codloc = @codSuc)
             --     AND EXISTS
            -- (
             --    SELECT TOP (1) proRecetaMaquina.codMaquina
            --     FROM proRecetaMaquina
           --      WHERE(proRecetaMaquina.codarticulo = invArticulos.codbus AND proRecetaMaquina.periodo = @periodo) 
			--)
             UNION
             SELECT cotNotaPedidoDetalle.numdoc, 
                    cotNotaPedidoDetalle.numlin, 
                    invArticulos.codbus, 
                    invArticulos.nomart, 
					cotNotaPedidoDetalle.glosa,
                    conCtacte.rutcte, 
                    conCtacte.digcte, 
                    CAST(conCtacte.rutcte AS VARCHAR) + '-' + conCtacte.digcte AS rut, 
                    conCtacte.nomcte, 
                    cotNotaPedidoDetalle.fecha_entrega, 
					invArticulos.stogen stogen,
                    cotNotaPedidoDetalle.cantidad, 
                    cotNotaPedidoDetalle.cant_pro, 
                    cotNotaPedidoDetalle.cantidad - cotNotaPedidoDetalle.cant_pro AS saldo, 
                    0 AS cantpro, 
                    proOPDetalleNP.cantidad AS producir, 
                    0 AS linea, 
                    1 AS checked, 
                    @periodoOP AS periodo,
					cotNotaPedidoDetalle.idlinea,
					cotNotaPedidoDetalle.canalt
             FROM cotNotaPedido
                  INNER JOIN cotNotaPedidoDetalle ON cotNotaPedido.coddoc = cotNotaPedidoDetalle.coddoc
                                                     AND cotNotaPedido.numdoc = cotNotaPedidoDetalle.numdoc
                  INNER JOIN invArticulos ON cotNotaPedidoDetalle.cod_articulo = invArticulos.codbus
                  INNER JOIN conCtacte ON cotNotaPedido.cliente = conCtacte.rutcte
                  INNER JOIN invUnidadMedida ON invArticulos.coduni = invUnidadMedida.coduni
                  INNER JOIN proOPDetalleNP ON invArticulos.codbus = proOPDetalleNP.codbus
                                               AND cotNotaPedido.numdoc = proOPDetalleNP.NP
											   AND cotNotaPedidoDetalle.idlinea = proOPDetalleNP.idlinea
                                               AND (cotNotaPedidoDetalle.coddoc = 2)
                                               AND (proOPDetalleNP.IDOP  =  @idop)
                                               AND (cotNotaPedido.codloc =  @codSuc)
             ORDER BY checked, 
                      cotNotaPedidoDetalle.numdoc DESC, 
                      invArticulos.codbus DESC;
     END;
     IF @tipo = 1
         BEGIN
             SELECT cotNotaPedidoDetalle.numdoc, 
                    cotNotaPedidoDetalle.numlin, 
                    invArticulos.codbus, 
                    invArticulos.nomart, 
					cotNotaPedidoDetalle.glosa,
                    conCtacte.rutcte, 
                    conCtacte.digcte, 
                    CAST(conCtacte.rutcte AS VARCHAR) + '-' + conCtacte.digcte AS rut, 
                    conCtacte.nomcte, 
                    cotNotaPedidoDetalle.fecha_entrega, 
					invArticulos.stogen stogen,
                    cotNotaPedidoDetalle.cantidad, 
                    cotNotaPedidoDetalle.cant_pro, 
                    cotNotaPedidoDetalle.cantidad - cotNotaPedidoDetalle.cant_pro AS saldo, 
                    0 AS cantpro, 
                    0.00 AS producir, 
                    0 AS linea, 
                    0 AS checked, 
                    @periodo AS periodo,
					cotNotaPedidoDetalle.idlinea,
					cotNotaPedidoDetalle.canalt
             FROM cotNotaPedido
                  INNER JOIN cotNotaPedidoDetalle ON cotNotaPedido.coddoc = cotNotaPedidoDetalle.coddoc
                                                     AND cotNotaPedido.numdoc = cotNotaPedidoDetalle.numdoc
                  INNER JOIN invArticulos ON cotNotaPedidoDetalle.cod_articulo = invArticulos.codbus
                  INNER JOIN conCtacte ON cotNotaPedido.cliente = conCtacte.rutcte
                  INNER JOIN invUnidadMedida ON invArticulos.coduni = invUnidadMedida.coduni
                  INNER JOIN invFamilia ON invArticulos.codfam = invFamilia.codfam
             WHERE(invFamilia.productoterminado = 1)
                  AND (invArticulos.codbus = @codbus
                       OR @codbus = '')
                  AND (conCtacte.rutcte = @cliente
                       OR @cliente = 0)
                  AND (cotNotaPedidoDetalle.cantidad - cotNotaPedidoDetalle.cant_pro) <> 0
                  AND (cotNotaPedidoDetalle.coddoc = 2)
                  AND (cotNotaPedidoDetalle.fecha_entrega <= @fecha_entrega)
                  AND (cotNotaPedido.estado <> 2)
                  AND (cotNotaPedido.tipoVenta = 1)
                  AND (cotNotaPedido.codloc = @codSuc)
                 -- AND EXISTS
              -- (
             --    SELECT TOP (1) proRecetaMaquina.codMaquina
            --     FROM proRecetaMaquina
           --      WHERE(proRecetaMaquina.codarticulo = invArticulos.codbus AND proRecetaMaquina.periodo = @periodo) 
			--)
             UNION
             SELECT cotNotaPedidoDetalle.numdoc, 
                    cotNotaPedidoDetalle.numlin, 
                    invArticulos.codbus, 
                    invArticulos.nomart, 
					cotNotaPedidoDetalle.glosa,
                    conCtacte.rutcte, 
                    conCtacte.digcte, 
                    CAST(conCtacte.rutcte AS VARCHAR) + '-' + conCtacte.digcte AS rut, 
                    conCtacte.nomcte, 
                    cotNotaPedidoDetalle.fecha_entrega, 
					invArticulos.stogen stogen,
                    cotNotaPedidoDetalle.cantidad, 
                    cotNotaPedidoDetalle.cant_pro, 
                    cotNotaPedidoDetalle.cantidad - cotNotaPedidoDetalle.cant_pro AS saldo, 
                    0 AS cantpro, 
                    proOPDetalleNP.cantidad AS producir, 
                    0 AS linea, 
                    1 AS checked, 
                    @periodoOP AS periodo,
					cotNotaPedidoDetalle.idlinea,
					cotNotaPedidoDetalle.canalt
             FROM cotNotaPedido
                  INNER JOIN cotNotaPedidoDetalle ON cotNotaPedido.coddoc = cotNotaPedidoDetalle.coddoc
                                                     AND cotNotaPedido.numdoc = cotNotaPedidoDetalle.numdoc
                  INNER JOIN invArticulos ON cotNotaPedidoDetalle.cod_articulo = invArticulos.codbus
                  INNER JOIN conCtacte ON cotNotaPedido.cliente = conCtacte.rutcte
                  INNER JOIN invUnidadMedida ON invArticulos.coduni = invUnidadMedida.coduni
                  INNER JOIN proOPDetalleNP ON invArticulos.codbus = proOPDetalleNP.codbus
                                               AND cotNotaPedido.numdoc = proOPDetalleNP.NP
											   AND cotNotaPedidoDetalle.idlinea = proOPDetalleNP.idlinea
                                               AND (cotNotaPedidoDetalle.coddoc = 2)
                                               AND (proOPDetalleNP.IDOP = @idop)
             WHERE cotNotaPedidoDetalle.cantidad - cotNotaPedidoDetalle.cant_pro <> 0
                   AND (cotNotaPedido.codloc = @codSuc)
             ORDER BY checked, cotNotaPedidoDetalle.numdoc DESC, invArticulos.codbus DESC;
     END;

     --ANTES
     --USE [PRIXUS_76377910]
     --GO
     --/****** Object:  StoredProcedure [dbo].[sp_proOpCargaOrigenNP]    Script Date: 12-04-2019 12:21:00 ******/
     --SET ANSI_NULLS ON
     --GO
     --SET QUOTED_IDENTIFIER ON
     --GO
     --ALTER    PROCEDURE  [dbo].[sp_proOpCargaOrigenNP]
     --(
     --@codbus varchar(200)='',
     --@cliente int=0,
     --@fecha_entrega datetime,
     --@idop int=0
     --)
     --AS
     --SELECT     cotNotaPedidoDetalle.numdoc, cotNotaPedidoDetalle.numlin, invArticulos.codbus, 
     --                      invArticulos.nomart, conCtacte.rutcte, conCtacte.digcte, 
     --                      cast(conCtacte.rutcte as varchar) + '-' + conCtacte.digcte as rut,conCtacte.nomcte, cotNotaPedidoDetalle.fecha_entrega, 
     --                      cotNotaPedidoDetalle.cantidad, cotNotaPedidoDetalle.cant_pro , cotNotaPedidoDetalle.cantidad -cotNotaPedidoDetalle.cant_pro AS saldo
     --,0 as cantpro,0.00 as producir,0 as linea,0 as checked
     --FROM         cotNotaPedido INNER JOIN
     --                      cotNotaPedidoDetalle ON cotNotaPedido.coddoc = cotNotaPedidoDetalle.coddoc AND cotNotaPedido.numdoc = cotNotaPedidoDetalle.numdoc INNER JOIN
     --                      invArticulos ON cotNotaPedidoDetalle.cod_articulo = invArticulos.codbus INNER JOIN
     --                      conCtacte ON cotNotaPedido.cliente = conCtacte.rutcte INNER JOIN
     --                      invUnidadMedida ON invArticulos.coduni = invUnidadMedida.coduni INNER JOIN
     --                      invFamilia ON invArticulos.codfam = invFamilia.codfam
     --WHERE     (invFamilia.productoterminado = 1)
     --AND (invArticulos.codbus = @codbus or @codbus='') 
     --AND (conCtacte.rutcte = @cliente or @cliente=0)
     --AND (cotNotaPedidoDetalle.cantidad - cotNotaPedidoDetalle.cant_pro) > 0
     --AND (cotNotaPedidoDetalle.coddoc = 2)
     --AND (cotNotaPedidoDetalle.fecha_entrega <= @fecha_entrega)
     --AND (cotNotaPedido.estado  <> 2)
     --AND EXISTS (SELECT top (1) proRecetaMaquina.codMaquina
     --FROM            proRecetaMaquina
     --WHERE        (proRecetaMaquina.codarticulo = invArticulos.codbus))
     --UNION 
     --SELECT     cotNotaPedidoDetalle.numdoc, cotNotaPedidoDetalle.numlin, invArticulos.codbus, invArticulos.nomart, conCtacte.rutcte, conCtacte.digcte, 
     --CAST(conCtacte.rutcte AS varchar) + '-' + conCtacte.digcte AS rut, conCtacte.nomcte, cotNotaPedidoDetalle.fecha_entrega, cotNotaPedidoDetalle.cantidad, 
     --cotNotaPedidoDetalle.cant_pro, cotNotaPedidoDetalle.cantidad -cotNotaPedidoDetalle.cant_pro AS saldo, 0 AS cantpro, proOPDetalleNP.cantidad AS producir, 0 AS linea
     --,1 as checked
     --FROM         cotNotaPedido INNER JOIN
     --cotNotaPedidoDetalle ON cotNotaPedido.coddoc = cotNotaPedidoDetalle.coddoc AND cotNotaPedido.numdoc = cotNotaPedidoDetalle.numdoc INNER JOIN
     --invArticulos ON cotNotaPedidoDetalle.cod_articulo = invArticulos.codbus INNER JOIN
     --conCtacte ON cotNotaPedido.cliente = conCtacte.rutcte INNER JOIN
     --invUnidadMedida ON invArticulos.coduni = invUnidadMedida.coduni INNER JOIN
     --proOPDetalleNP ON invArticulos.codbus = proOPDetalleNP.codbus AND cotNotaPedido.numdoc = proOPDetalleNP.NP
     --AND (cotNotaPedidoDetalle.coddoc = 2)
     --AND (proOPDetalleNP.IDOP = @idop)
     --ORDER BY checked,cotNotaPedidoDetalle.numdoc desc,invArticulos.codbus desc