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

Wersja 539, 2.1 KB (wprowadzona przez marek, 17 years temu)

re #150

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