root/trunk/SQL/Triggers/zapisz_do_reklamy.txt @ 953

Wersja 485, 1.6 KB (wprowadzona przez marek, 17 years temu)

re #139

Line 
1
2SET ANSI_NULLS ON
3GO
4SET QUOTED_IDENTIFIER ON
5GO
6
7ALTER TRIGGER [zapisz_do_reklamy] ON [dbo].[PlatnosciEcard]
8FOR UPDATE
9AS
10DECLARE @Status bit
11DECLARE @dataWplaty datetime
12DECLARE @idFaktury int
13DECLARE @ORDERNUMBER int
14DECLARE @currency INT
15DECLARE @amountINT INT
16
17select @ORDERNUMBER = ORDERNUMBER, @Status = Status, @dataWplaty = Status_data, @idFaktury = IDFaktury, @currency=CURRENCY, @amountINT=AMOUNT from inserted
18IF @Status = 1
19BEGIN
20
21DECLARE @amount DECIMAL(9,2)
22SET @amount = CAST(@amountINT AS DECIMAL(9,2))/100
23--PRINT CAST(@amount AS NVARCHAR(100))
24DECLARE @waluta_miano VARCHAR(3)
25DECLARE @amountPLN decimal(9,2)
26DECLARE @kurs decimal(9,4)
27
28SELECT @kurs=waluta_kurs FROM Faktury WHERE [id_Faktury]=@idFaktury
29
30SET @waluta_miano= CASE WHEN @currency=978 THEN 'EUR' WHEN  @currency=826 THEN 'GBP' ELSE 'PLN' END
31
32IF(@waluta_miano='PLN')
33 SET @amountPLN=@amount
34ELSE
35 SET @amountPLN = ROUND(@amount * @kurs, 2)
36
37IF (SELECT COUNT(*) FROM dbo.Wplaty WHERE [idFaktury]=@idFaktury)>0
38        BEGIN
39        UPDATE dbo.Wplaty
40        SET
41         [rodzajPotwierdzenia] = 'ECARD',
42         [symbolPotwierdzenia] = @ordernumber,
43         [dataWplaty] = @dataWplaty,
44         brutto = @amountPLN,
45         waluta_brutto=@amount,
46         waluta_miano=@waluta_miano
47               
48         WHERE [idFaktury] = @idFaktury
49        END
50ELSE
51BEGIN
52INSERT INTO dbo.Wplaty([idFaktury], [rodzajPotwierdzenia], [symbolPotwierdzenia], [dataWplaty], [brutto], waluta_brutto, waluta_miano)
53VALUES (@idFaktury, 'ECARD', @ordernumber, @dataWplaty, @amountPLN, @amount, @waluta_miano)
54END
55
56END
57GO
58
59SET ANSI_NULLS OFF
60GO
61SET QUOTED_IDENTIFIER OFF
62GO
63
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.