15/09/2006, 10:27
|
| | | 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 ::.. |