ALTER PROCEDURE [dbo].[sp_invArticulo_Leer] @tipobus     INT          = 0, 
                                            @codigo      VARCHAR(200), 
                                            @stock       INT          = 0, 
                                            @bodega      INT          = 0, 
                                            @anulacodalt INT          = 0
AS
     SET @codigo = LTRIM(@codigo);
     SET @codigo = RTRIM(@codigo);
     IF @tipobus = 0
         BEGIN
             SELECT invArticulos.codfam, 
                    invArticulos.codsub, 
                    codart, 
                    codbar, 
                    nomart, 
                    nomart2, 
                    invArticulos.coment, 
                    monori,
					invArticulos.margenEstatico,
                    invArticulos.coduni, 
                    precio, 
                    medalt, 
                    faccon, 
                    codalt, 
                    stomin, 
                    stomax,
                    CASE
					WHEN @stock = 1
						THEN
							ISNULL((
								SELECT SUM(saltot)
								FROM invStock
								WHERE codbus = @codigo
							), 0)
						ELSE ISNULL(stogen, 0)
					END AS stogen,
					CASE
						WHEN @Bodega > 0
						THEN
								ISNULL((
									SELECT SUM(saltot)
									FROM invStock
									WHERE codbus = @codigo
										AND invStock.codbod = @bodega
								), 0)
						ELSE ISNULL(stogen, 0)
					END AS stockbodega, 
                    costo, 
                    salini, 
                    saldo, 
                    proced, 
                    ubiinv1, 
                    ubiinv2, 
                    ubiinv3, 
                    ubiinv4, 
                    ubiinv5, 
                    ubiinv6, 
                    idJumpSeller,
					peso,
					ancho,
					alto,
					largo,
					marca,
                    --stock_01, 
                    --stock_02, 
                    --stock_03, 
                    --stock_04, 
                    --stock_05, 
                    --stock_06, 
                    --stock_07, 
                    --stock_08, 
                    --stock_09, 
                    --stock_10, 
                    --stock_11, 
                    --stock_12, 
                    --saldo_01, 
                    --saldo_02, 
                    --saldo_03, 
                    --saldo_04, 
                    --saldo_05, 
                    --saldo_06, 
                    --saldo_07, 
                    --saldo_08, 
                    --saldo_09, 
                    --saldo_10, 
                    --saldo_11, 
                    --saldo_12, 
                    invArticulos.loging, 
                    invArticulos.fecing, 
                    invArticulos.logmod, 
                    invArticulos.fecmod, 
                    imp_adi, 
                    codunipro, 
                    activo, 
                    preciovar, 
                    balanza, 
                    compuesto, 
                    codbus, 
                    fechaing, 
                    editadesc, 
                    invFamilia.controlstock, 
                    invFamilia.validastock, 
                    invFamilia.validastocknp, 
                    fechacosto, 
                    abruni, 
                    impbase, 
                    impvariable, 
					CASE invArticulos.selExento
					WHEN 0 THEN invfamilia.exento
					WHEN 1 THEN invArticulos.exentoArt
                    END AS exento,
                    invArticulos.coduni,
					ISNULL(invArticulos.sistema,0) AS sistema,
					invArticulos.talla,
					invArticulos.color,
					invArticulos.caracteristica,
					invArticulos.restringido,
					invArticulos.preferente,
					invArticulos.estadorestringido,
					invArticulos.comision,
					idWooCommerce,
					invArticulos.activaJumpSeller,
					invArticulos.activaWooCommerce,
					invArticulos.factorUniAlt,
					invArticulos.codbarType,
					invArticulos.exentoArt,
					invArticulos.selExento,
					invArticulos.unidadesEnvase,
					invArticulos.pesoEnvase,
					invArticulos.unidadesCaja,
					invArticulos.pesoCaja
             FROM invArticulos
                  LEFT OUTER JOIN invFamilia ON invArticulos.codfam = invFamilia.codfam
                  LEFT OUTER JOIN invUnidadMedida ON invArticulos.coduni = invUnidadMedida.coduni
             WHERE @codigo <> ''
                   AND invArticulos.codbus = @codigo;
     END;
     IF @tipobus = 1
         BEGIN
             SELECT ART.codfam, 
                    codsub, 
                    codart, 
                    codbar, 
                    nomart, 
                    nomart2, 
                    ART.coment, 
                    monori, 
					ART.margenEstatico,
                    ART.coduni, 
                    precio, 
                    medalt, 
                    faccon, 
                    codalt, 
                    stomin, 
                    stomax, 
                    stogen, 
                    costo, 
                    salini, 
                    saldo, 
                    proced, 
                    ubiinv1, 
                    ubiinv2, 
                    ubiinv3, 
                    ubiinv4, 
                    ubiinv5, 
                    ubiinv6, 
                    ART.loging, 
                    ART.fecing, 
                    ART.logmod, 
                    ART.fecmod, 
                    imp_adi, 
                    codunipro, 
                    activo, 
                    preciovar, 
                    balanza, 
                    compuesto, 
                    codbus, 
                    fechaing, 
                    editadesc, 
                    invFamilia.controlstock, 
                    invFamilia.validastock, 
                    invFamilia.validastocknp, 
                    invUnidadMedida.abruni, 
                    impbase, 
                    impvariable, 
                    CASE ART.selExento
					WHEN 0 THEN invfamilia.exento
					WHEN 1 THEN ART.exentoArt
                    END AS exento,
					ISNULL(ART.sistema,0) AS sistema,
					ART.talla,
					ART.color,
					ART.caracteristica,
					ART.restringido,
					ART.preferente,
					ART.estadorestringido,
					ART.comision,
					ART.codbarType,
					ART.exentoArt,
					ART.selExento,
					ART.unidadesEnvase,
					ART.pesoEnvase,
					ART.unidadesCaja,
					ART.pesoCaja
             FROM invArticulos ART
                  LEFT OUTER JOIN invFamilia ON ART.codfam = invFamilia.codfam
                  LEFT OUTER JOIN invUnidadMedida ON ART.coduni = invUnidadMedida.coduni
             WHERE @codigo <> ''
                   AND (ART.codbus = @codigo
                        OR ART.codbar = @codigo
                        OR (@anulacodalt <> 1
                            AND ART.codalt = @codigo)
                        OR ART.codbus IN
             (
                 SELECT ALT.codbus
                 FROM invArticulosAlt ALT
                 WHERE ALT.codalt = @codigo
             ));
     END;
     IF @tipobus = 2
         BEGIN
             SELECT ART.codfam, 
                    codsub, 
                    codart, 
                    codbar, 
                    nomart, 
                    nomart2, 
                    ART.coment, 
                    monori, 
                    ART.coduni, 
                    precio, 
                    medalt, 
                    faccon, 
                    codalt, 
                    stomin, 
                    stomax, 
                    stogen, 
                    costo, 
                    salini, 
                    saldo, 
                    proced, 
                    ubiinv1, 
                    ubiinv2, 
                    ubiinv3, 
                    ubiinv4, 
                    ubiinv5, 
                    ubiinv6, 
                    --stock_01, 
                    ART.loging, 
                    ART.fecing, 
                    ART.logmod, 
                    ART.fecmod, 
                    imp_adi, 
                    codunipro, 
                    activo, 
                    preciovar, 
                    balanza, 
                    compuesto, 
                    codbus, 
                    fechaing, 
                    editadesc, 
                    invFamilia.controlstock, 
                    invFamilia.validastock, 
                    invFamilia.validastocknp, 
                    invUnidadMedida.abruni,
					ART.comision,
					ART.codbarType
             FROM invArticulos ART
                  LEFT OUTER JOIN invFamilia ON ART.codfam = invFamilia.codfam
                  LEFT OUTER JOIN invUnidadMedida ON ART.coduni = invUnidadMedida.coduni
             WHERE @codigo <> ''
                   AND (ART.codbus = @codigo
                        OR ART.codbar = @codigo
                        OR (@anulacodalt <> 1
                            AND ART.codalt = @codigo)
                        OR ART.codbus IN
             (
                 SELECT ALT.codbus
                 FROM invArticulosAlt ALT
                 WHERE ALT.codalt = @codigo
             ));
     END;
     IF @tipobus = 3
         BEGIN
             SELECT ART.codfam, 
                    ART.codsub, 
                    ART.codart, 
                    ART.codbar, 
                    ART.nomart, 
                    ART.nomart2, 
                    ART.coduni, 
                    ART.precio, 
                    stomin, 
                    stomax,
                    CASE
                        WHEN @stock = 1
                        THEN
             (
                 SELECT SUM(saltot)
                 FROM invStock
                 WHERE codbus = @codigo
             )
                        ELSE stogen
                    END AS stogen,
                    CASE
                        WHEN @Bodega > 0
                        THEN
             (
                 SELECT SUM(saltot)
                 FROM invStock
                 WHERE codbus = @codigo
                       AND invStock.codbod = @bodega
             )
                        ELSE 0
                    END AS stockbodega, 
                    costo, 
                    invFamilia.controlstock, 
                    fechacosto,
					ART.comision,
					ART.codbarType
             FROM invArticulos ART
                  LEFT OUTER JOIN invFamilia ON ART.codfam = invFamilia.codfam
                  LEFT OUTER JOIN invUnidadMedida ON ART.coduni = invUnidadMedida.coduni
             WHERE ART.codbus = @codigo;
     END;

             --sp_invArticulo_Leer 3,'LACLEC000001',1,1