Está en la página 1de 3

USE [DELIPRO]

GO
/****** Object: StoredProcedure [dbo].[p_ProgramacionPanDetalle_sel_2] Script
Date: 12/02/2020 0:07:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[p_ProgramacionPanDetalle_sel_2]
@IdProgramacionPan int,
@item int = null
AS
BEGIN
DECLARE @Ano int
DECLARE @Mes int

select top 1 @Ano = p.Ano, @Mes = p.Mes from


Procesos.ProgramacionPanCabecera p where p.IdProgramacionPan = @IdProgramacionPan
-- SET NOCOUNT ON added to prevent extra result sets from
SET NOCOUNT ON;

IF(@item IS NULL)
SELECT p.[item] AS ItemProgramacion
,p.[IdProgramacionPan]
,p.[F_Reparto]
,p.[IdSucursal]
,b.[Sucursal]
,es.[RBD]
,p.[IdEstablecimiento]
,es.[Establecimiento]
,g.[IdInstitucionEst]
,g.[InstitucionEst]
,p.[IdEstrato]
,p.[IdPrograma]
,e.[Programa]
,p.[IdPlato]
,pl.[Plato]
,p.[IdServicio]
,s.[Servicio]
,p.[Raciones]
,p.[IdArticulo]
,c.[Articulo]
,plc.[Gr_Neto]
,CONVERT(DECIMAL(18,2),ISNULL(p.[Cantidad],0)/p.[IdEnvase]) AS
PAN_kg
,(j.Nombre + ' ' + j.Apellido) AS Supervisor
,h.[Razon] AS Panadero
,f.[Comuna]
,CASE WHEN p.[IdModificacion] = 1 THEN 'Suspensi�n de clases'
WHEN P.[IdModificacion] = 2 THEN 'Cambio de minuta'
WHEN P.[IdModificacion] = 3 THEN 'Paro o toma'
WHEN P.[IdModificacion] = 4 THEN 'Otro'
ELSE NULL END AS Modificacion
,CASE WHEN p.[CantReal] IS NULL THEN
CONVERT(DECIMAL(18,2),ISNULL(p.[Cantidad],0)/p.[IdEnvase])
ELSE CONVERT(DECIMAL(18,2),ISNULL(p.[CantReal],0)/p.
[IdEnvase]) END AS PAN_kg_real
,(Select Top(1) ra.PANX100 from Operaciones.M_Racion ra
Where p.IdEstablecimiento = ra.IdEstablecimiento and p.IdSucursal
= ra.IdSucursal and p.IdEstrato = ra.IdEstrato and p.IdPrograma = ra.IdPrograma )
as PANX100
FROM Procesos.ProgramacionPanDetalle p
INNER JOIN Operaciones.M_Establecimiento es
ON es.IdSucursal = p.IdSucursal AND es.IdEstablecimiento =
p.IdEstablecimiento
INNER JOIN General.Comuna f
ON f.IdComuna = es.IdComuna
INNER JOIN Tecnico.M_Sucursal b
ON b.IdSucursal = p.IdSucursal
INNER JOIN Operaciones.M_Articulo c
ON c.IdArticulo = p.IdArticulo
INNER JOIN Operaciones.M_InstitucionEst g
ON g.IdInstitucionEst = es.IdInstitucionEst
INNER JOIN Tecnico.M_Estrato e
ON p.IdEstrato = e.IdEstrato AND p.IdPrograma = e.IdPrograma
INNER JOIN Tecnico.M_Plato pl
ON p.IdPlato = pl.IdPlato
INNER JOIN Tecnico.S_Servicio s
ON p.IdServicio = s.IdServicio
INNER JOIN Adquisiciones.M_Proveedor h
ON h.IdProveedor = p.IdProveedor
--joins para gramos---
INNER JOIN Tecnico.M_Producto pro
ON p.IdArticulo = pro.IdArticulo
INNER JOIN Tecnico.M_Plato_Cont plc
ON p.IdPlato = plc.IdPlato AND pro.IdProducto = plc.IdProducto

--- fin joins---


LEFT OUTER JOIN Operaciones.SupervisorMes i
ON (i.IdSucursal=p.IdSucursal and i.IdEstablecimiento=
p.IdEstablecimiento and i.Ano=@Ano and i.Mes=@Mes)
LEFT OUTER JOIN General.Usuario j
ON (j.IdUsuario=i.IdUsuario)

WHERE p.IdProgramacionPan = @IdProgramacionPan


ORDER BY p.item
ELSE
SELECT TOP 1 'RBD' as Campo, convert(varchar(200), es.RBD) as Valor
FROM Procesos.ProgramacionPanDetalle p
INNER JOIN Operaciones.M_Establecimiento es ON es.IdSucursal =
p.IdSucursal AND es.IdEstablecimiento = p.IdEstablecimiento
WHERE p.IdProgramacionPan = @IdProgramacionPan AND item = @item

UNION

SELECT TOP 1 'Establecimiento' as Campo,


convert(varchar(200),es.Establecimiento) as Valor
FROM Procesos.ProgramacionPanDetalle p
INNER JOIN Operaciones.M_Establecimiento es ON es.IdSucursal =
p.IdSucursal AND es.IdEstablecimiento = p.IdEstablecimiento
WHERE p.IdProgramacionPan = @IdProgramacionPan AND item = @item
UNION

SELECT TOP 1 'IdEstrato' as Campo, convert(varchar(200),P.IdEstrato) as


Valor
FROM Procesos.ProgramacionPanDetalle p
WHERE p.IdProgramacionPan = @IdProgramacionPan AND item = @item

UNION

SELECT TOP 1 'IdPrograma' as Campo, convert(varchar(200),p.IdPrograma)


as Valor
FROM Procesos.ProgramacionPanDetalle p
WHERE p.IdProgramacionPan = @IdProgramacionPan AND item = @item

UNION

SELECT TOP 1 'Plato' as Campo, convert(varchar(200),pl.Plato) as Valor


FROM Procesos.ProgramacionPanDetalle p
INNER JOIN Tecnico.M_Plato pl ON p.IdPlato = pl.IdPlato
WHERE p.IdProgramacionPan = @IdProgramacionPan AND item = @item

UNION

SELECT TOP 1 'Servicio' as Campo, convert(varchar(200),S.Servicio) as


Valor
FROM Procesos.ProgramacionPanDetalle p
INNER JOIN Tecnico.S_Servicio s ON p.IdServicio = s.IdServicio
WHERE p.IdProgramacionPan = @IdProgramacionPan AND item = @item

UNION

SELECT TOP 1 'Raciones' as Campo, convert(varchar(200),p.Raciones) as


Valor
FROM Procesos.ProgramacionPanDetalle p
WHERE p.IdProgramacionPan = @IdProgramacionPan AND item = @item

UNION

SELECT TOP 1 'Pan_kg' as Campo,


convert(varchar(200),CONVERT(DECIMAL(18,2),ISNULL(p.[Cantidad],0)/p.[IdEnvase])) as
Valor
FROM Procesos.ProgramacionPanDetalle p
WHERE p.IdProgramacionPan = @IdProgramacionPan AND item = @item

UNION

SELECT TOP 1 'Supervisor' as Campo, convert(varchar(200),j.Nombre + ' '


+ j.Apellido) as Valor
FROM Procesos.ProgramacionPanDetalle p
Left Outer Join Operaciones.SupervisorMes i On
(i.IdSucursal=p.IdSucursal and i.IdEstablecimiento= p.IdEstablecimiento and
i.Ano=@Ano and i.Mes=@Mes)
Left Outer Join General.Usuario j On (j.IdUsuario=i.IdUsuario)
WHERE p.IdProgramacionPan = @IdProgramacionPan AND item = @item

END

También podría gustarte