| 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 |
|
|---|
| 13 | -- wyczysc wszystko dla danej agencji
|
|---|
| 14 | DELETE FROM Prowizje
|
|---|
| 15 | WHERE Rok =@Rok
|
|---|
| 16 | AND Ms=@Ms
|
|---|
| 17 | AND Agencja = (SELECT symbol FROM Agencje where Id_Agencji = @idAgencji)
|
|---|
| 18 |
|
|---|
| 19 | --
|
|---|
| 20 | INSERT INTO Prowizje
|
|---|
| 21 | SELECT a2.symbol,b_agent, B_ROK, b_ms, numer_faktury, NETTO, NrKorygowanejFaktury,
|
|---|
| 22 | CASE Z.ZP
|
|---|
| 23 | WHEN 1 THEN Z.procentProwizji
|
|---|
| 24 | ELSE ROUND(P.PR_PROWIZJI,2)
|
|---|
| 25 | END,
|
|---|
| 26 | Z.ZP,
|
|---|
| 27 | CASE Z.ZP
|
|---|
| 28 | WHEN 1 THEN ROUND(Z.procentProwizji * Netto, 2)
|
|---|
| 29 | ELSE ROUND(ROUND(P.PR_PROWIZJI, 2) * Netto, 2)
|
|---|
| 30 | END AS kwotaProwizji,
|
|---|
| 31 | id_faktury
|
|---|
| 32 | FROM dbo.VIEW_POMOCNICZY_BUDZET VPB
|
|---|
| 33 | LEFT JOIN dbo.[PLAN] P ON VPB.b_rok = P.rok AND VPB.b_ms = P.ms AND P.symbol = VPB.b_agent
|
|---|
| 34 | LEFT JOIN zamowienia Z ON Z.idZamowienia = VPB.idZamowienia
|
|---|
| 35 | LEFT JOIN agenci A1 ON A1.symbol = VPB.B_agent
|
|---|
| 36 | LEFT JOIN agencje A2 ON A2.id_agencji = A1.id_agencji
|
|---|
| 37 | WHERE B_ROK = @ROK
|
|---|
| 38 | AND B_MS = @MS
|
|---|
| 39 | AND A1.id_agencji = @idAgencji
|
|---|
| 40 |
|
|---|
| 41 | -- aktualizuj prowizje dla faktur z poprzednich miesiecy
|
|---|
| 42 | DECLARE @Prowizje TABLE
|
|---|
| 43 | (
|
|---|
| 44 | idProwizji INT,
|
|---|
| 45 | procentProwizji float,
|
|---|
| 46 | kwotaProwizji money,
|
|---|
| 47 | ZP bit
|
|---|
| 48 | )
|
|---|
| 49 |
|
|---|
| 50 | INSERT INTO @Prowizje
|
|---|
| 51 | SELECT
|
|---|
| 52 | Pr.idProwizji,
|
|---|
| 53 | procentProwizji =
|
|---|
| 54 | CASE
|
|---|
| 55 | WHEN Z.ZP=1 THEN ROUND(Z.procentProwizji, 2)
|
|---|
| 56 | ELSE ROUND(PL.Pr_Prowizji, 2)
|
|---|
| 57 | END,
|
|---|
| 58 | kwotaProwizji =
|
|---|
| 59 | CASE
|
|---|
| 60 | WHEN Z.ZP=1 THEN ROUND(Pr.Netto * Z.procentProwizji, 2)
|
|---|
| 61 | ELSE ROUND(Pr.Netto * PL.Pr_Prowizji, 2)
|
|---|
| 62 | END,
|
|---|
| 63 | Z.ZP
|
|---|
| 64 | FROM WplywyByTytul W
|
|---|
| 65 | INNER JOIN Prowizje Pr ON Pr.idFaktury = W.ID_FAKTURY
|
|---|
| 66 | INNER JOIN Agencje A ON A.Symbol = W.Agencja
|
|---|
| 67 | INNER JOIN Faktury F ON F.ID_FAKTURY = W.ID_FAKTURY
|
|---|
| 68 | INNER JOIN Zamowienia Z ON Z.idZamowienia = F.idZamowienia
|
|---|
| 69 | LEFT OUTER JOIN [PLAN] Pl ON Pl.Symbol = W.Symbol AND Pl.Rok=YEAR(W.dataWplaty) AND Pl.MS=MONTH(W.dataWplaty)
|
|---|
| 70 | WHERE YEAR(W.dataWplaty)=@ROK and MONTH(W.dataWplaty)=@MS
|
|---|
| 71 | AND A.id_Agencji=@idAgencji
|
|---|
| 72 | AND PR.ms<>@MS
|
|---|
| 73 |
|
|---|
| 74 | UPDATE P
|
|---|
| 75 | SET
|
|---|
| 76 | P.procentProwizji=P1.procentProwizji,
|
|---|
| 77 | P.kwotaProwizji=P1.kwotaProwizji,
|
|---|
| 78 | P.ZP=P1.ZP
|
|---|
| 79 | FROM Prowizje P INNER JOIN @Prowizje P1 ON P.idProwizji=P1.idProwizji
|
|---|
| 80 |
|
|---|
| 81 |
|
|---|
| 82 | RETURN
|
|---|
| 83 | GO
|
|---|
| 84 |
|
|---|
| 85 | SET ANSI_NULLS OFF
|
|---|
| 86 | GO
|
|---|
| 87 | SET QUOTED_IDENTIFIER ON
|
|---|
| 88 | GO
|
|---|
| 89 |
|
|---|