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

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

re #150

RevLine 
[352]1
[355]2SET ANSI_NULLS ON
[352]3GO
[355]4SET QUOTED_IDENTIFIER ON
5GO
[352]6
[355]7ALTER PROCEDURE [dbo].[sp_adMotoRaportProwizja]
[352]8        @rok int,
9        @miesiac int,
[539]10        @tytul nvarchar(100)
[352]11AS
[539]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
[352]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
[355]60IF @prowizjaPoz IS NOT NULL
61BEGIN
[352]62UPDATE @Wplywy
[356]63SET Prowizja=ROUND(NETTO * @prowizjaPoz, 2), Netto = NULL
[355]64WHERE Agencja='GS O/POZNAÑ'
65END
66
67IF @prowizjaKat IS NOT NULL
68BEGIN
69UPDATE @Wplywy
[356]70SET Prowizja=ROUND(NETTO * @prowizjaKat, 2), Netto = NULL
[355]71WHERE Agencja='GS O/KATOWICE'
72END
73
74
75UPDATE @Wplywy
[352]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
[355]101GO
[352]102
[355]103SET ANSI_NULLS OFF
[352]104GO
[355]105SET QUOTED_IDENTIFIER OFF
106GO
[352]107
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.