| 1 |
|
|---|
| 2 | SET ANSI_NULLS ON
|
|---|
| 3 | GO
|
|---|
| 4 | SET QUOTED_IDENTIFIER ON
|
|---|
| 5 | GO
|
|---|
| 6 |
|
|---|
| 7 | -- =============================================
|
|---|
| 8 | -- Author: marek
|
|---|
| 9 | -- Create date: 2009/03/25
|
|---|
| 10 | -- Description: Importuje wplaty z CDN do Bazy Reklam
|
|---|
| 11 | -- =============================================
|
|---|
| 12 | ALTER PROCEDURE [dbo].[sp_ImportCDNPayments]
|
|---|
| 13 | AS
|
|---|
| 14 | BEGIN
|
|---|
| 15 |
|
|---|
| 16 |
|
|---|
| 17 | DECLARE @lastJobDate datetime
|
|---|
| 18 | SELECT @lastJobDate=[date] FROM Run_Job WHERE job_name='WplatyCDN'
|
|---|
| 19 |
|
|---|
| 20 | PRINT @lastJobDate
|
|---|
| 21 |
|
|---|
| 22 | DECLARE @CDN TABLE
|
|---|
| 23 | (
|
|---|
| 24 | NumerFaktury nvarchar(25),
|
|---|
| 25 | DataWplaty datetime,
|
|---|
| 26 | SymbolPotwierdzenia nvarchar(25),
|
|---|
| 27 | Brutto decimal(9,2),
|
|---|
| 28 | WalutaBrutto decimal(9,2),
|
|---|
| 29 | Waluta nvarchar(3)
|
|---|
| 30 | )
|
|---|
| 31 |
|
|---|
| 32 |
|
|---|
| 33 | INSERT INTO @CDN
|
|---|
| 34 | SELECT
|
|---|
| 35 | Z.BZd_NumerPelny AS NumerFaktury,
|
|---|
| 36 | Z.BZd_DataRoz AS DataWplaty,
|
|---|
| 37 | K.Brk_LNumer AS SymbolPotwierdzenia,
|
|---|
| 38 | Z.BZd_KwotaRozSys AS Brutto,
|
|---|
| 39 | Z.BZd_KwotaRoz AS WalutaBrutto,
|
|---|
| 40 | Waluta =
|
|---|
| 41 | CASE
|
|---|
| 42 | WHEN Z.BZd_Waluta IS NULL OR Z.BZd_Waluta='' THEN 'PLN'
|
|---|
| 43 | ELSE Z.BZd_Waluta
|
|---|
| 44 | END
|
|---|
| 45 |
|
|---|
| 46 | FROM REPLICATOR.CDN_SAM_PRESS.CDN.BnkZdarzenia AS Z
|
|---|
| 47 | INNER JOIN
|
|---|
| 48 | (
|
|---|
| 49 | SELECT K1.* FROM REPLICATOR.CDN_SAM_PRESS.CDN.BnkRozKwoty AS K1
|
|---|
| 50 | INNER JOIN
|
|---|
| 51 | (
|
|---|
| 52 | SELECT BRK_PDokID, MAX(BRK_TS_Mod) AS BRK_TS_Mod FROM REPLICATOR.CDN_SAM_PRESS.CDN.BnkRozKwoty
|
|---|
| 53 | WHERE BRK_TS_Mod >= @lastJobDate
|
|---|
| 54 | GROUP BY BRK_PDokID
|
|---|
| 55 | ) K2 ON K2.BRK_PDokID=K1.BRK_PDokID AND K2.BRK_TS_Mod=K1.BRK_TS_Mod
|
|---|
| 56 |
|
|---|
| 57 | ) K ON Z.BZd_BZdID=K.BRK_PDokID
|
|---|
| 58 | WHERE Z.BZd_KatId=1
|
|---|
| 59 |
|
|---|
| 60 |
|
|---|
| 61 | SELECT * FROM @CDN
|
|---|
| 62 |
|
|---|
| 63 |
|
|---|
| 64 | DECLARE @Wplaty TABLE
|
|---|
| 65 | (
|
|---|
| 66 | RowNumber INT IDENTITY (1, 1),
|
|---|
| 67 | IdFaktury INT,
|
|---|
| 68 | Numer INT,
|
|---|
| 69 | Roz NVARCHAR(8),
|
|---|
| 70 | Rok INT,
|
|---|
| 71 | Data DATETIME,
|
|---|
| 72 | SymbolPotwierdzenia nvarchar(25),
|
|---|
| 73 | Brutto DECIMAL(9,2),
|
|---|
| 74 | BruttoWaluta DECIMAL(9,2),
|
|---|
| 75 | Waluta NVARCHAR(10)
|
|---|
| 76 | )
|
|---|
| 77 |
|
|---|
| 78 | INSERT INTO @Wplaty
|
|---|
| 79 | SELECT F.Id_Faktury AS IdFaktury,
|
|---|
| 80 | CAST(dbo.SplitAsScalar(CDN.NumerFaktury, 1, '/') AS INT) AS Numer,
|
|---|
| 81 | dbo.SplitAsScalar(CDN.NumerFaktury, 2, '/') AS Roz,
|
|---|
| 82 | CAST(dbo.SplitAsScalar(CDN.NumerFaktury, 3, '/') AS INT) AS Rok,
|
|---|
| 83 | CDN.DataWplaty,
|
|---|
| 84 | CDN.SymbolPotwierdzenia,
|
|---|
| 85 | CDN.Brutto,
|
|---|
| 86 | CDN.WalutaBrutto,
|
|---|
| 87 | CDN.Waluta
|
|---|
| 88 | FROM @CDN CDN
|
|---|
| 89 | LEFT OUTER JOIN Faktury F ON
|
|---|
| 90 | CAST(dbo.SplitAsScalar(CDN.NumerFaktury, 1, '/') AS INT)=F.Numer
|
|---|
| 91 | AND CAST(dbo.SplitAsScalar(CDN.NumerFaktury, 2, '/') AS NVARCHAR(8))=F.Numer_Roz
|
|---|
| 92 | AND CAST(dbo.SplitAsScalar(CDN.NumerFaktury, 3, '/') AS INT)=F.Numer_Rok
|
|---|
| 93 | WHERE F.SystemKsiegowyId=2
|
|---|
| 94 | ORDER BY CDN.DataWplaty
|
|---|
| 95 |
|
|---|
| 96 |
|
|---|
| 97 | SELECT * FROM @Wplaty
|
|---|
| 98 |
|
|---|
| 99 |
|
|---|
| 100 | DECLARE @MaxRows int
|
|---|
| 101 | DECLARE @RowCnt int
|
|---|
| 102 | SET @RowCnt=1
|
|---|
| 103 | SELECT @MaxRows=count(*) from @Wplaty
|
|---|
| 104 | DECLARE @idFaktury INT
|
|---|
| 105 |
|
|---|
| 106 | DECLARE @Suma decimal(9,2)
|
|---|
| 107 | WHILE @RowCnt <= @MaxRows
|
|---|
| 108 | BEGIN
|
|---|
| 109 | SELECT @idFaktury=IdFaktury FROM @Wplaty WHERE RowNumber=@RowCnt
|
|---|
| 110 | IF (SELECT COUNT(*) FROM Wplaty WHERE idFaktury=@idFaktury)>0
|
|---|
| 111 | BEGIN
|
|---|
| 112 | PRINT 'UPDATE dla faktury: ' + CAST(@idFaktury AS NVARCHAR)
|
|---|
| 113 | UPDATE W
|
|---|
| 114 | SET W.dataWplaty=C.Data, W.symbolPotwierdzenia=C.SymbolPotwierdzenia, W.rodzajPotwierdzenia='PRZ', W.brutto=C.Brutto, W.waluta_brutto=C.BruttoWaluta, W.waluta_miano=C.Waluta
|
|---|
| 115 | FROM Wplaty W, @Wplaty C
|
|---|
| 116 | WHERE W.idFaktury=C.idFaktury
|
|---|
| 117 | AND C.idFaktury=@idFaktury
|
|---|
| 118 |
|
|---|
| 119 | END
|
|---|
| 120 | ELSE
|
|---|
| 121 | BEGIN
|
|---|
| 122 | PRINT 'INSERT dla faktury: ' + CAST(@idFaktury AS NVARCHAR)
|
|---|
| 123 | INSERT INTO Wplaty(idFaktury, dataWplaty, symbolPotwierdzenia, rodzajPotwierdzenia, brutto, waluta_brutto, waluta_miano)
|
|---|
| 124 | SELECT IdFaktury, Data, SymbolPotwierdzenia, 'PRZ', Brutto, BruttoWaluta, Waluta
|
|---|
| 125 | FROM @Wplaty
|
|---|
| 126 | WHERE IdFaktury=@idFaktury
|
|---|
| 127 | END
|
|---|
| 128 |
|
|---|
| 129 | UPDATE F
|
|---|
| 130 | SET F.suma_zaplat=C.Brutto, F.zaplata_data=C.Data, F.zaplata_opis=C.SymbolPotwierdzenia
|
|---|
| 131 | FROM Faktury F, @Wplaty C
|
|---|
| 132 | WHERE F.Id_Faktury=C.idFaktury
|
|---|
| 133 | AND C.idFaktury=@idFaktury
|
|---|
| 134 |
|
|---|
| 135 | SET @RowCnt=@RowCnt+1
|
|---|
| 136 | END
|
|---|
| 137 |
|
|---|
| 138 | UPDATE Run_Job
|
|---|
| 139 | SET [date]=GETDATE(), job_status='OK'
|
|---|
| 140 | WHERE job_name='WplatyCDN'
|
|---|
| 141 |
|
|---|
| 142 |
|
|---|
| 143 | END
|
|---|
| 144 | GO
|
|---|
| 145 |
|
|---|
| 146 | SET ANSI_NULLS OFF
|
|---|
| 147 | GO
|
|---|
| 148 | SET QUOTED_IDENTIFIER OFF
|
|---|
| 149 | GO
|
|---|
| 150 |
|
|---|