root/trunk/SQL/StoredProcedures/sp_adMotoRaportProwizja.txt @ 392

Wersja 356, 1.9 KB (wprowadzona przez marek, 17 years temu)

re #92

Line 
1
2SET ANSI_NULLS ON
3GO
4SET QUOTED_IDENTIFIER ON
5GO
6
7ALTER PROCEDURE [dbo].[sp_adMotoRaportProwizja]
8        @rok int,
9        @miesiac int,
10        @tytul nvarchar(100),
11        @prowizjaPoz money,
12    @prowizjaKat money
13AS
14DECLARE @Wplywy TABLE
15(
16        IdFaktury INT,
17        NumerFaktury INT,
18        Agent nvarchar(100),
19        SymbolFaktury nvarchar(100),
20        DataWplaty DATETIME,
21        Netto MONEY,
22        DataFaktury DATETIME,
23        Prowizja MONEY,
24        Agencja nvarchar(100)
25)
26DECLARE @Sprzedaz TABLE
27(
28        IdFaktury INT,
29        NumerFaktury INT,
30        Agent nvarchar(100),
31        SymbolFaktury nvarchar(100),
32        DataWplaty DATETIME,
33        Netto MONEY,
34        DataFaktury DATETIME,
35        Prowizja MONEY,
36        Agencja nvarchar(100)
37)
38
39INSERT INTO @Wplywy
40SELECT
41ID_FAKTURY AS IdFaktury,
42NumerFaktury,
43LOWER(Symbol) AS Agent,
44NR_FK AS SymbolFaktury,
45dataWplaty AS DataWplaty,
46NETTO AS Netto,
47DATA_WYSTAWIENIA AS DataFaktury,
48ROUND(NETTO * procentProwizji, 2) AS Prowizja,
49Agencja
50FROM WplywyByTytul
51WHERE (YEAR(dataWplaty) = @rok)
52AND (MONTH(dataWplaty) = @miesiac)
53AND (Tytul IN (@tytul))
54
55IF @prowizjaPoz IS NOT NULL
56BEGIN
57UPDATE @Wplywy
58SET Prowizja=ROUND(NETTO * @prowizjaPoz, 2), Netto = NULL
59WHERE Agencja='GS O/POZNAÑ'
60END
61
62IF @prowizjaKat IS NOT NULL
63BEGIN
64UPDATE @Wplywy
65SET Prowizja=ROUND(NETTO * @prowizjaKat, 2), Netto = NULL
66WHERE Agencja='GS O/KATOWICE'
67END
68
69
70UPDATE @Wplywy
71SET Netto = NULL
72WHERE MONTH(DataFaktury)<@miesiac
73
74INSERT INTO @Sprzedaz
75SELECT
76Id AS IdFaktury,
77Numer AS NumerFaktury,
78Agent,
79NumerFaktury AS SymbolFaktury,
80NULL AS DataWplaty,
81Netto,
82Data AS DataFaktury,
83NULL AS Prowizja,
84Agencja
85FROM FakturyNettoByTytul
86WHERE
87(YEAR(Data) = @rok)
88AND (MONTH(Data) in (@miesiac))
89AND (Tytul in (@tytul))
90
91SELECT * FROM @Wplywy
92UNION
93SELECT * FROM @Sprzedaz
94WHERE IdFaktury NOT IN (SELECT IdFaktury FROM @Wplywy)
95ORDER BY DataWplaty, Agent, NumerFaktury
96GO
97
98SET ANSI_NULLS OFF
99GO
100SET QUOTED_IDENTIFIER OFF
101GO
102
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.