USE [Logistica]
GO
/****** Object: Trigger [dbo].[Stocks_futuros_Prevision_produccion] Script Date: 07/07/2014 12:07:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Stocks_futuros_Prevision_produccion]
ON [dbo].[Prevision Produccion]
FOR INSERT
AS
DECLARE @i INT
DECLARE @srtn NCHAR(50)
SET @i=0
WHILE (@i< (SELECT COUNT(*) FROM [Prevision Produccion]) )
BEGIN
SELECT * FROM [Prevision Produccion] WHERE [Prevision Produccion].indice= @i
SET @srtn= (SELECT Sorten FROM [Prevision Produccion] WHERE [Prevision Produccion].indice= @i)
IF (SELECT lunes, martes, miercoles, jueves, viernes, sabado, domingo_SEM_ACTUAL, lunes_proximo, martes_proximo, miercoles_proximo, jueves_proximo, viernes_proximo, sabado_proximo, [domingo_proximo (+1 SEM)], [Semana_actual+2], [Semana_actual+3], [Semana_actual+4], [Semana_actual+5], [Semana_actual+6], [Semana_actual+7] FROM [Stocks Futuros] WHERE [Stocks Futuros].Sorten= @srtn) IS NOT NULL
BEGIN
UPDATE [Stocks Futuros]
SET lunes = [Stocks Futuros].lunes + Stock_real +lunes_actual - [Envios].lunes,
martes = [Stocks Futuros].martes + [Stocks Futuros].lunes + inserted.martes_actual - Envios.martes,
miercoles = [Stocks Futuros].miercoles + [Stocks Futuros].martes + inserted.miercoles_actual - Envios.miercoles,
jueves = [Stocks Futuros].jueves + [Stocks Futuros].miercoles + inserted.jueves_actual - Envios.jueves,
viernes = [Stocks Futuros].viernes + [Stocks Futuros].jueves + inserted.viernes_actual - Envios.viernes,
sabado = [Stocks Futuros].sabado + [Stocks Futuros].viernes + inserted.sabado_actual - Envios.sabado,
domingo_SEM_ACTUAL = [Stocks Futuros].domingo_SEM_ACTUAL + [Stocks Futuros].sabado + inserted.domingo_actual - Envios.domingo_SEM_ACTUAL,
lunes_proximo = [Stocks Futuros].lunes_proximo+ [Stocks Futuros].domingo_SEM_ACTUAL + inserted.Lunes_proximo - Envios.unidades8,
martes_proximo = [Stocks Futuros].martes_proximo + [Stocks Futuros].lunes_proximo + inserted.Martes_proximo - Envios.unidades9,
miercoles_proximo = [Stocks Futuros].miercoles_proximo+ [Stocks Futuros].martes_proximo + inserted.Miercoles_proximo - Envios.unidades10,
jueves_proximo = [Stocks Futuros].jueves_proximo + [Stocks Futuros].miercoles_proximo + inserted.Jueves_proximo - Envios.unidades11,
viernes_proximo = [Stocks Futuros].viernes_proximo + [Stocks Futuros].jueves_proximo + inserted.Viernes_proximo - Envios.unidades12,
sabado_proximo = [Stocks Futuros].sabado_proximo + [Stocks Futuros].viernes_proximo + inserted.Sabado_proximo - Envios.unidades13,
[domingo_proximo (+1 SEM)] = [Stocks Futuros].[domingo_proximo (+1 SEM)] + [Stocks Futuros].sabado_proximo + inserted.Domingo_proximo - Envios.[unidades14_+1 SEM],
[Semana_actual+2] = [Stocks Futuros].[Semana_actual+2] + [Stocks Futuros].[domingo_proximo (+1 SEM)] + inserted.[Semana_actual+2] - (Envios.unidades15 + Envios.unidades16+ Envios.unidades17 + Envios.unidades18 + Envios.unidades19 + Envios.unidades20 + Envios.[unidades21_+2 SEM]),
[Semana_actual+3] = [Stocks Futuros].[Semana_actual+3] + [Stocks Futuros].[Semana_actual+2] + inserted.[Semana_actual+3] - (Envios.unidades22 + Envios.unidades23+ Envios.unidades24 + Envios.unidades25 + Envios.unidades26 + Envios.unidades27 + Envios.[unidades28_+3 SEM]),
[Semana_actual+4] = [Stocks Futuros].[Semana_actual+4] + [Stocks Futuros].[Semana_actual+3] + inserted.[Semana_actual+4] - (Envios.unidades29 + Envios.unidades30+ Envios.unidades31 + Envios.unidades32 + Envios.unidades33 + Envios.unidades34 + Envios.[unidades35_+4 SEM]),
[Semana_actual+5] = [Stocks Futuros].[Semana_actual+5] + [Stocks Futuros].[Semana_actual+4] + inserted.[Semana_actual+5] - (Envios.unidades36 + Envios.unidades37+ Envios.unidades38 + Envios.unidades39 + Envios.unidades40 + Envios.unidades41 + Envios.[unidades42_+5 SEM]),
[Semana_actual+6] = [Stocks Futuros].[Semana_actual+6] + [Stocks Futuros].[Semana_actual+5] + inserted.[Semana_actual+6] - (Envios.unidades43 + Envios.unidades44+ Envios.unidades45 + Envios.unidades46 + Envios.unidades47 + Envios.unidades48 + Envios.[unidades49_+6 SEM]),
[Semana_actual+7] = [Stocks Futuros].[Semana_actual+7] + [Stocks Futuros].[Semana_actual+6] + inserted.[Semana_actual+7] - (Envios.unidades50 + Envios.unidades51+ Envios.unidades52 + Envios.unidades53 + Envios.unidades54 + Envios.unidades55 + Envios.[unidades56_+7 SEM])
FROM [Envios] INNER JOIN inserted
ON [Envios].Sorten = inserted.Sorten
END
ELSE
BEGIN
UPDATE [Stocks Futuros]
SET lunes = Stock_real +lunes_actual - [Envios].lunes,
martes = [Stocks Futuros].lunes + inserted.martes_actual - Envios.martes,
miercoles = [Stocks Futuros].martes + inserted.miercoles_actual - Envios.miercoles,
jueves = [Stocks Futuros].miercoles + inserted.jueves_actual - Envios.jueves,
viernes = [Stocks Futuros].jueves + inserted.viernes_actual - Envios.viernes,
sabado = [Stocks Futuros].viernes + inserted.sabado_actual - Envios.sabado,
domingo_SEM_ACTUAL = [Stocks Futuros].sabado + inserted.domingo_actual - Envios.domingo_SEM_ACTUAL,
lunes_proximo = [Stocks Futuros].domingo_SEM_ACTUAL + inserted.Lunes_proximo - Envios.unidades8,
martes_proximo = [Stocks Futuros].lunes_proximo + inserted.Martes_proximo - Envios.unidades9,
miercoles_proximo = [Stocks Futuros].martes_proximo + inserted.Miercoles_proximo - Envios.unidades10,
jueves_proximo = [Stocks Futuros].miercoles_proximo + inserted.Jueves_proximo - Envios.unidades11,
viernes_proximo = [Stocks Futuros].jueves_proximo + inserted.Viernes_proximo - Envios.unidades12,
sabado_proximo = [Stocks Futuros].viernes_proximo + inserted.Sabado_proximo - Envios.unidades13,
[domingo_proximo (+1 SEM)] = [Stocks Futuros].sabado_proximo + inserted.Domingo_proximo - Envios.[unidades14_+1 SEM],
[Semana_actual+2] = [Stocks Futuros].[domingo_proximo (+1 SEM)] + inserted.[Semana_actual+2] - (Envios.unidades15 + Envios.unidades16+ Envios.unidades17 + Envios.unidades18 + Envios.unidades19 + Envios.unidades20 + Envios.[unidades21_+2 SEM]),
[Semana_actual+3] = [Stocks Futuros].[Semana_actual+2] + inserted.[Semana_actual+3] - (Envios.unidades22 + Envios.unidades23+ Envios.unidades24 + Envios.unidades25 + Envios.unidades26 + Envios.unidades27 + Envios.[unidades28_+3 SEM]),
[Semana_actual+4] = [Stocks Futuros].[Semana_actual+3] + inserted.[Semana_actual+4] - (Envios.unidades29 + Envios.unidades30+ Envios.unidades31 + Envios.unidades32 + Envios.unidades33 + Envios.unidades34 + Envios.[unidades35_+4 SEM]),
[Semana_actual+5] = [Stocks Futuros].[Semana_actual+4] + inserted.[Semana_actual+5] - (Envios.unidades36 + Envios.unidades37+ Envios.unidades38 + Envios.unidades39 + Envios.unidades40 + Envios.unidades41 + Envios.[unidades42_+5 SEM]),
[Semana_actual+6] = [Stocks Futuros].[Semana_actual+5] + inserted.[Semana_actual+6] - (Envios.unidades43 + Envios.unidades44+ Envios.unidades45 + Envios.unidades46 + Envios.unidades47 + Envios.unidades48 + Envios.[unidades49_+6 SEM]),
[Semana_actual+7] = [Stocks Futuros].[Semana_actual+6] + inserted.[Semana_actual+7] - (Envios.unidades50 + Envios.unidades51+ Envios.unidades52 + Envios.unidades53 + Envios.unidades54 + Envios.unidades55 + Envios.[unidades56_+7 SEM])
FROM [Envios] INNER JOIN inserted
ON [Envios].Sorten = inserted.Sorten
END
END
SET @i=@i+1
END