root/trunk/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_PROWIZJE.txt @ 899

Wersja 803, 2.4 KB (wprowadzona przez marek, 17 years temu)

re #182 - poprawki w procedurze PROC_WYLICZ_I_ZAPISZ_PROWIZJE

Line 
1
2SET ANSI_NULLS ON
3GO
4SET QUOTED_IDENTIFIER OFF
5GO
6
7ALTER PROCEDURE [dbo].[PROC_WYLICZ_I_ZAPISZ_PROWIZJE]
8                @ROK INT = 2003,
9                @MS INT = 2,
10                @idAgencji INT = 2
11AS
12-- wyczysc wszystko dla danej agencji
13DELETE FROM Prowizje
14WHERE Rok = @Rok
15AND Ms = @Ms
16AND Agencja = (SELECT symbol FROM Agencje where Id_Agencji = @idAgencji)
17
18
19INSERT INTO Prowizje (Agencja, Agent, Rok, Ms, nrFaktury, Netto, procentProwizji, Zp, idFaktury)
20SELECT
21W.Agencja,
22W.Symbol,
23YEAR(W.dataWplaty) AS Rok,
24Month(W.dataWplaty) AS Ms,
25W.NR_FK,
26W.Netto,
27--NULL AS nrFakturyKorygowanej,
28procentProwizji =
29CASE
30WHEN Z.Zp = 1 THEN CAST(Z.procentProwizji AS decimal(9,2))
31WHEN W.roznica_nowa>60 THEN 0.00
32ELSE COALESCE(CAST(P.Pr_Prowizji AS decimal(9,2)), 0)
33END,
34Z.Zp,
35W.ID_FAKTURY
36FROM WplywyByTytul AS W
37INNER JOIN Faktury AS F ON W.ID_FAKTURY = F.Id_Faktury
38INNER JOIN Zamowienia AS Z ON Z.idZamowienia = F.idZamowienia
39LEFT OUTER JOIN [Plan] AS P ON P.Rok=@rok AND P.Ms=@ms AND P.Symbol=W.Symbol
40WHERE (YEAR(W.dataWplaty) = @rok)
41AND (MONTH(W.dataWplaty) = @ms)
42--TODO: dodac pole typ faktury, ktory bedzie jednoznacznie okreslal jakie faktury nas interesuja...
43AND F.Numer_Roz<>'POZ' AND F.Numer_Roz<>'KAT'
44--AND W.roznica_nowa<=60
45AND F.Id_Sprzedawcy=@idAgencji
46AND F.Korekta<>1
47ORDER BY Pr_Prowizji
48
49--*******************************************************************************************
50-- Usun prowizje dla faktur ktore zostaly zaplacone w tym miesiacu a moga jeszcze wystepowac
51-- w tabeli prowizje w poprzednich miesiacach
52
53DECLARE @IdFaktur TABLE
54(
55        id INT
56)
57
58INSERT INTO @IdFaktur
59SELECT
60W.ID_FAKTURY
61FROM WplywyByTytul AS W
62INNER JOIN Faktury AS F ON W.ID_FAKTURY = F.Id_Faktury
63INNER JOIN Zamowienia AS Z ON Z.idZamowienia = F.idZamowienia
64LEFT OUTER JOIN [Plan] AS P ON P.Rok=@rok AND P.Ms=@ms AND P.Symbol=W.Symbol
65WHERE (YEAR(W.dataWplaty) = @rok)
66AND (MONTH(W.dataWplaty) = @ms)
67--TODO: dodac pole typ faktury, ktory bedzie jednoznacznie okreslal jakie faktury nas interesuja...
68AND F.Numer_Roz<>'POZ' AND F.Numer_Roz<>'KAT'
69--AND W.roznica_nowa<=60
70AND F.Id_Sprzedawcy=@idAgencji
71AND F.Korekta<>1
72
73DELETE FROM Prowizje
74WHERE idFaktury IN (SELECT ID FROM @idFaktur)
75AND (Rok<>@rok OR Ms<>@ms)
76
77--*******************************************************************************************
78
79
80RETURN
81GO
82
83SET ANSI_NULLS OFF
84GO
85SET QUOTED_IDENTIFIER ON
86GO
87
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.