root/branches/Prowizje/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_PROWIZJE_DO_REKLAM.txt

Wersja 242, 1.5 KB (wprowadzona przez marek, 17 years temu)

re #32 - poprawiona procedura PROC_WYLICZ_I_ZAPISZ_PROWIZJE_DO_REKLAM oraz raport RozliczenieProwizjiZaReklame?2009

Line 
1
2SET ANSI_NULLS ON
3GO
4SET QUOTED_IDENTIFIER OFF
5GO
6
7ALTER Procedure [dbo].[PROC_WYLICZ_I_ZAPISZ_PROWIZJE_DO_REKLAM]
8@ROK INTEGER = 2003,
9@MS INTEGER = 2
10AS
11
12DECLARE @Reklama TABLE
13(
14ID INT,
15Rok INT,
16Miesiac INT,
17Agent NVARCHAR(4000),
18DataWplaty DATETIME
19)
20
21INSERT INTO @Reklama(ID, Rok, Miesiac, Agent, DataWplaty)
22SELECT ReklamaID, YEAR(W.DataWplaty), MONTH(W.DataWplaty), [SYMBOL AKWIZYTORA], W.DataWplaty
23FROM dbo.REKLAMA R LEFT OUTER JOIN dbo.Wplaty W on R.[ID_Faktury] = W.idFaktury
24WHERE 
25([ZATWIERDZONO DO DRUKU] = 1)
26AND ([FAKTURA WYSTAWIONO] = 1)
27AND (YEAR(W.DataWplaty) = @ROK)
28AND (MONTH(W.DataWplaty) = @MS)
29AND  (zablokuj_prowizje = 0)
30AND W.rodzajPotwierdzenia <> 'ECARD'
31AND R.Typ NOT IN ('BARTER', 'BEZP£ATNA')
32
33
34--WYZEROWANIE PROWIZJI (POZBYCIE SIÊ BZDUR)
35UPDATE REKLAMA SET [PROCENT PROWIZJI]=0, PROWIZJA=0
36WHERE
37ReklamaID IN (SELECT ID FROM @Reklama)
38
39--NANIESIENIE PROWIZJI
40UPDATE REKLAMA SET
41[PROCENT PROWIZJI]=ROUND(RR.PR_PROWIZJI,4),
42PROWIZJA=ROUND(RR.PR_PROWIZJI*REKLAMA.NETTO,2)
43FROM
44(
45--WYBRANIE REKORDÓW DO PROWIZJI
46SELECT R.ID, R.ROK, R.Miesiac, R.Agent, dbo.[PLAN].PR_PROWIZJI
47FROM
48(
49                SELECT ID, Rok, Miesiac, Agent FROM @Reklama
50)
51R INNER JOIN dbo.[PLAN] ON  R.Agent = dbo.[PLAN].SYMBOL COLLATE DATABASE_DEFAULT
52AND  R.Rok = dbo.[PLAN].ROK AND R.Miesiac = dbo.[PLAN].MS
53) RR
54--Koñcówka instrukcji Update
55INNER JOIN REKLAMA ON REKLAMA.ReklamaID = rr.ID
56return
57GO
58
59SET ANSI_NULLS OFF
60GO
61SET QUOTED_IDENTIFIER ON
62GO
63
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.