root/branches/Emisje/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_PROWIZJE.txt @ 786

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

fixes #179 - poprawiono raport Rozliczenie prowizji za reklame oraz proc 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))
31ELSE COALESCE(CAST(P.Pr_Prowizji AS decimal(9,2)), 0)
32END,
33Z.Zp,
34W.ID_FAKTURY
35FROM WplywyByTytul AS W
36INNER JOIN Faktury AS F ON W.ID_FAKTURY = F.Id_Faktury
37INNER JOIN Zamowienia AS Z ON Z.idZamowienia = F.idZamowienia
38LEFT OUTER JOIN [Plan] AS P ON P.Rok=@rok AND P.Ms=@ms AND P.Symbol=W.Symbol
39WHERE (YEAR(W.dataWplaty) = @rok)
40AND (MONTH(W.dataWplaty) = @ms)
41--TODO: dodac pole typ faktury, ktory bedzie jednoznacznie okreslal jakie faktury nas interesuja...
42AND F.Numer_Roz<>'POZ' AND F.Numer_Roz<>'KAT'
43AND W.roznica_nowa<=60
44AND F.Id_Sprzedawcy=@idAgencji
45AND F.Korekta<>1
46ORDER BY Pr_Prowizji
47
48--*******************************************************************************************
49-- Usun prowizje dla faktur ktore zostaly zaplacone w tym miesiacu a moga jeszcze wystepowac
50-- w tabeli prowizje w poprzednich miesiacach
51
52DECLARE @IdFaktur TABLE
53(
54        id INT
55)
56
57INSERT INTO @IdFaktur
58SELECT
59W.ID_FAKTURY
60FROM WplywyByTytul AS W
61INNER JOIN Faktury AS F ON W.ID_FAKTURY = F.Id_Faktury
62INNER JOIN Zamowienia AS Z ON Z.idZamowienia = F.idZamowienia
63LEFT OUTER JOIN [Plan] AS P ON P.Rok=@rok AND P.Ms=@ms AND P.Symbol=W.Symbol
64WHERE (YEAR(W.dataWplaty) = @rok)
65AND (MONTH(W.dataWplaty) = @ms)
66--TODO: dodac pole typ faktury, ktory bedzie jednoznacznie okreslal jakie faktury nas interesuja...
67AND F.Numer_Roz<>'POZ' AND F.Numer_Roz<>'KAT'
68AND W.roznica_nowa<=60
69AND F.Id_Sprzedawcy=@idAgencji
70AND F.Korekta<>1
71
72DELETE FROM Prowizje
73WHERE idFaktury IN (SELECT ID FROM @idFaktur)
74AND (Rok<>@rok OR Ms<>@ms)
75
76--*******************************************************************************************
77
78
79RETURN
80GO
81
82SET ANSI_NULLS OFF
83GO
84SET QUOTED_IDENTIFIER ON
85GO
86
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.