Ver Mensaje Individual
  #14 (permalink)  
Antiguo 15/09/2006, 10:27
Avatar de maralbust
maralbust
 
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 10 meses
Puntos: 0
mmm nop, no funciona, ya que @pstrFamilia, no esta declarada, se declara solo cuando se crea la consulta, miren este es el SP

Código:
CREATE PROCEDURE dbo.spGetProductosPedNormal @strCasino Char(8),  @strFamilia Char(8), @IdDefinicionPedido int
AS

declare @dpFecini as datetime, @dpFecfin as datetime

DECLARE @strSQL AS NVARCHAR(4000)
DECLARE @strSQLParam AS NVARCHAR(4000)
DECLARE @intReglaNegocio AS NUMERIC
DECLARE @intRestriccionRutas AS NUMERIC
DECLARE @strCasinoCentralDeCompra AS CHAR(2)

SELECT @strCasinoCentralDeCompra = CentralDeCompra 
FROM s_Clientes
WHERE Codigo = @strCasino


SET @strSQL = N''
SET @strSQLParam = N'@pIdDefinicionPedido INT, @pstrCasino CHAR(8), @pstrFamilia Char(8), @pdpFecini DATETIME, @pdpFecfin DATETIME, @pstrCentralDeCompra CHAR(2)  '


/*************************************************************************************************************
  Obtiene regla de negocio asociada al Casino, la validación de la existencia de un RN
  es realizada en el sitio.
  Valores restricción de Rutas:
	1 = Con rutas
	2 = Sin rutas
	3 = Con y sin rutas
*************************************************************************************************************/

SELECT @intReglaNegocio = RN.rn_codigo, @intRestriccionRutas = RN.rn_tipo_ruta
FROM s_RNCasino RNC, s_ReglasDeNegocios RN
WHERE RNC.codigo_casino = @strCasino 
AND RN.rn_codigo = RNC.rn_codigo

select @dpFecini=b.periododesde, @dpFecfin=b.periodohasta
from s_definicionpedidos a, s_calendario b, s_DetalleDefinicionPedidos c
where a.centraldecompra=b.centralcompra
and a.yearmes=b.anomes
and a.semana=b.semana
and a.iddefinicion=c.IdDefinicionPedido
and c.codfamilia=b.categoria
and a.iddefinicion=@IdDefinicionPedido and c.codFamilia=@strFamilia


/*--- 1=>Con rutas / 3=>Con y sin rutas  ---*/
IF ( @intRestriccionRutas IN ( 1, 3 ) )
BEGIN
	-- Productos en Rutas del Casino
	SET @strSQL = N'SELECT DISTINCT Prod.Codigo, ' +
	'Prod.Descripcion, ' +
	'Prod.Cantidad, ' +
	'Prod.Unidad, ' +
	'ReDe.Ruta,  ' +
	'CONVERT( VARCHAR(10), ReDe.FechaDespacho, 103 ) AS FechaDespacho, ' +
	'ReDe.FechaDespacho AS DateOrderBy, ' +
	'CONVERT( VARCHAR(10), Prod.Vigencia, 103 ) AS ProdVigencia ' + 
	'FROM ' + 
	's_DefinicionPedidos AS DefPed, ' + 
	's_DetalleDefinicionPedidos AS DetDefPed, ' +
	'Productos_View AS Prod, ' +
	's_ProductosCentral AS ProdCC, ' +
	's_Recorrido_Despacho AS ReDe, ' +
	's_Recorrido_Despacho_Casino AS ReDeCa, ' +
	's_Recorrido_Productos AS ReDePro ' +
	'WHERE ' + 
	' DefPed.IdDefinicion = @pIdDefinicionPedido ' +
	'AND	DefPed.IdDefinicion  = DetDefPed.IdDefinicionPedido ' 
	IF @strFamilia  IS NOT NULL
	SELECT @strSQL = @strSQL + ' AND DetDefPed.CodFamilia =  @pstrFamilia ' +
	'AND	Prod.Categoria = DetDefPed.CodFamilia ' +
	'AND     ProdCC.pce_codpro = Prod.Codigo ' +
	'AND     ProdCC.pce_codcen = @pstrCentralDeCompra ' +
	'AND     Prod.ProdCantCentralDeCompra = ProdCC.pce_codcen ' +
	'AND	ReDePro.Producto = Prod.Codigo ' + 
	'AND	ISNULL( Prod.Vigencia, dbo.fcTransDate( GetDate() ) + 1 ) >= @pdpFecIni ' +
	'AND	ReDePro.Recorrido = ReDe.Ruta ' +
	'AND	ReDe.FechaDespacho BETWEEN @pdpFecIni AND @pdpFecFin ' +
	'AND	ReDeCa.Casino = @pstrCasino ' +
	'AND	ReDeCa.Ruta = ReDe.Ruta ' +
	'AND	ReDeCa.FechaDespacho = ReDe.FechaDespacho ' +

	-- Bloqueo de FAMILIAS --
	'AND Prod.Categoria  NOT IN ( ' +
	'SELECT RNF.Codigo_Familia ' + 
	'FROM s_RNCasino RNC, s_RNFamilias RNF ' + 
	'WHERE RNC.codigo_casino = @pstrCasino ' + 
	'AND RNF.rn_codigo = RNC.rn_codigo ' + 
	'AND RNF.rnf_pn = ''S'' )  ' +

	-- Bloqueo de PRODUCTOS --
	'AND Prod.Codigo  NOT IN ( ' +
	'SELECT RNP.Codigo_Producto ' + 
	'FROM s_RNCasino RNC, s_RNProductos RNP ' + 
	'WHERE RNC.codigo_casino = @pstrCasino ' + 
	'AND RNP.rn_codigo = RNC.rn_codigo ' + 
	'AND RNP.rnp_pn = ''S'' )  ' 

END /*---  IF ( @intRestriccionRutas IN ( 1, 3 ) ) ---*/
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..