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