| 1 |
|
|---|
| 2 | SET ANSI_NULLS ON
|
|---|
| 3 | GO
|
|---|
| 4 | SET QUOTED_IDENTIFIER OFF
|
|---|
| 5 | GO
|
|---|
| 6 |
|
|---|
| 7 | ALTER Procedure [dbo].[PROC_WYLICZ_I_ZAPISZ_PROWIZJE]
|
|---|
| 8 | @ROK INTEGER = 2003,
|
|---|
| 9 | @MS INTEGER = 2,
|
|---|
| 10 | @idAgencji integer = 2
|
|---|
| 11 | As
|
|---|
| 12 | delete from PROWIZJE
|
|---|
| 13 | where ROK =@ROK and MS =@MS and agencja =
|
|---|
| 14 | (select symbol from agencje where id_Agencji = @idAgencji)
|
|---|
| 15 |
|
|---|
| 16 | insert into PROWIZJE
|
|---|
| 17 | SELECT a2.symbol,b_agent, B_ROK,b_ms,numer_faktury,NETTO,NrKorygowanejFaktury,
|
|---|
| 18 | case z.zp
|
|---|
| 19 | when 1 then z.procentProwizji
|
|---|
| 20 | else round(P.PR_PROWIZJI,2)
|
|---|
| 21 | end,
|
|---|
| 22 | z.zp,
|
|---|
| 23 | case z.zp
|
|---|
| 24 | when 1 then round(z.procentProwizji * Netto,2)
|
|---|
| 25 | else round(round(P.PR_PROWIZJI,2) * Netto,2)
|
|---|
| 26 | end
|
|---|
| 27 | as kwotaProwizji, id_faktury
|
|---|
| 28 | FROM dbo.VIEW_POMOCNICZY_BUDZET VPB left join dbo.[PLAN] P on
|
|---|
| 29 | VPB.b_rok = P.rok and VPB.b_ms = P.ms and P.symbol = VPB.b_agent left join
|
|---|
| 30 | zamowienia Z on Z.idZamowienia = VPB.idZamowienia left join
|
|---|
| 31 | agenci A1 on A1.symbol = VPB.B_agent left join
|
|---|
| 32 | agencje A2 on A2.id_agencji = A1.id_agencji
|
|---|
| 33 | where B_ROK =@ROK and B_MS =@MS and A1.id_agencji = @idAgencji
|
|---|
| 34 |
|
|---|
| 35 | -- aktualizuj prowizjie dla faktur z poprzednich miesiecy
|
|---|
| 36 |
|
|---|
| 37 | DECLARE @Prowizje TABLE
|
|---|
| 38 | (
|
|---|
| 39 | idProwizji INT,
|
|---|
| 40 | procentProwizji float,
|
|---|
| 41 | kwotaProwizji money,
|
|---|
| 42 | ZP bit
|
|---|
| 43 | )
|
|---|
| 44 |
|
|---|
| 45 | INSERT INTO @Prowizje
|
|---|
| 46 | SELECT
|
|---|
| 47 | Pr.idProwizji,
|
|---|
| 48 | procentProwizji =
|
|---|
| 49 | CASE
|
|---|
| 50 | WHEN Z.ZP=1 THEN ROUND(Z.procentProwizji, 2)
|
|---|
| 51 | ELSE ROUND(PL.Pr_Prowizji, 2)
|
|---|
| 52 | END,
|
|---|
| 53 | kwotaProwizji =
|
|---|
| 54 | CASE
|
|---|
| 55 | WHEN Z.ZP=1 THEN ROUND(Pr.Netto * Z.procentProwizji, 2)
|
|---|
| 56 | ELSE ROUND(Pr.Netto * PL.Pr_Prowizji, 2)
|
|---|
| 57 | END,
|
|---|
| 58 | Z.ZP
|
|---|
| 59 | FROM WplywyByTytul W
|
|---|
| 60 | INNER JOIN Prowizje Pr ON Pr.idFaktury = W.ID_FAKTURY
|
|---|
| 61 | INNER JOIN Agencje A ON A.Symbol = W.Agencja
|
|---|
| 62 | INNER JOIN Faktury F ON F.ID_FAKTURY = W.ID_FAKTURY
|
|---|
| 63 | INNER JOIN Zamowienia Z ON Z.idZamowienia = F.idZamowienia
|
|---|
| 64 | LEFT OUTER JOIN [PLAN] Pl ON Pl.Symbol = W.Symbol AND Pl.Rok=YEAR(W.dataWplaty) AND Pl.MS=MONTH(W.dataWplaty)
|
|---|
| 65 | WHERE YEAR(W.dataWplaty)=@ROK and MONTH(W.dataWplaty)=@MS
|
|---|
| 66 | AND A.id_Agencji=@idAgencji
|
|---|
| 67 | AND PR.ms<>@MS
|
|---|
| 68 |
|
|---|
| 69 | UPDATE P
|
|---|
| 70 | SET
|
|---|
| 71 | P.procentProwizji=P1.procentProwizji,
|
|---|
| 72 | P.kwotaProwizji=P1.kwotaProwizji,
|
|---|
| 73 | P.ZP=P1.ZP
|
|---|
| 74 | FROM Prowizje P INNER JOIN @Prowizje P1 ON P.idProwizji=P1.idProwizji
|
|---|
| 75 |
|
|---|
| 76 |
|
|---|
| 77 | return
|
|---|
| 78 | GO
|
|---|
| 79 |
|
|---|
| 80 | SET ANSI_NULLS OFF
|
|---|
| 81 | GO
|
|---|
| 82 | SET QUOTED_IDENTIFIER ON
|
|---|
| 83 | GO
|
|---|
| 84 |
|
|---|