| 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 INT = 2003,
|
|---|
| 9 | @MS INT = 2,
|
|---|
| 10 | @idAgencji INT = 2
|
|---|
| 11 | AS
|
|---|
| 12 | -- wyczysc wszystko dla danej agencji
|
|---|
| 13 | DELETE FROM Prowizje
|
|---|
| 14 | WHERE Rok = @Rok
|
|---|
| 15 | AND Ms = @Ms
|
|---|
| 16 | AND Agencja = (SELECT symbol FROM Agencje where Id_Agencji = @idAgencji)
|
|---|
| 17 |
|
|---|
| 18 |
|
|---|
| 19 | INSERT INTO Prowizje (Agencja, Agent, Rok, Ms, nrFaktury, Netto, procentProwizji, Zp, idFaktury)
|
|---|
| 20 | SELECT
|
|---|
| 21 | W.Agencja,
|
|---|
| 22 | W.Symbol,
|
|---|
| 23 | YEAR(W.dataWplaty) AS Rok,
|
|---|
| 24 | Month(W.dataWplaty) AS Ms,
|
|---|
| 25 | W.NR_FK,
|
|---|
| 26 | W.Netto,
|
|---|
| 27 | --NULL AS nrFakturyKorygowanej,
|
|---|
| 28 | procentProwizji =
|
|---|
| 29 | CASE
|
|---|
| 30 | WHEN Z.Zp = 1 THEN CAST(Z.procentProwizji AS decimal(9,2))
|
|---|
| 31 | WHEN W.roznica_nowa>60 THEN 0.00
|
|---|
| 32 | ELSE COALESCE(CAST(P.Pr_Prowizji AS decimal(9,2)), 0)
|
|---|
| 33 | END,
|
|---|
| 34 | Z.Zp,
|
|---|
| 35 | W.ID_FAKTURY
|
|---|
| 36 | FROM WplywyByTytul AS W
|
|---|
| 37 | INNER JOIN Faktury AS F ON W.ID_FAKTURY = F.Id_Faktury
|
|---|
| 38 | INNER JOIN Zamowienia AS Z ON Z.idZamowienia = F.idZamowienia
|
|---|
| 39 | LEFT OUTER JOIN [Plan] AS P ON P.Rok=@rok AND P.Ms=@ms AND P.Symbol=W.Symbol
|
|---|
| 40 | WHERE (YEAR(W.dataWplaty) = @rok)
|
|---|
| 41 | AND (MONTH(W.dataWplaty) = @ms)
|
|---|
| 42 | --TODO: dodac pole typ faktury, ktory bedzie jednoznacznie okreslal jakie faktury nas interesuja...
|
|---|
| 43 | AND F.Numer_Roz<>'POZ' AND F.Numer_Roz<>'KAT'
|
|---|
| 44 | --AND W.roznica_nowa<=60
|
|---|
| 45 | AND F.Id_Sprzedawcy=@idAgencji
|
|---|
| 46 | AND F.Korekta<>1
|
|---|
| 47 | ORDER BY Pr_Prowizji
|
|---|
| 48 |
|
|---|
| 49 | --*******************************************************************************************
|
|---|
| 50 | -- Usun prowizje dla faktur ktore zostaly zaplacone w tym miesiacu a moga jeszcze wystepowac
|
|---|
| 51 | -- w tabeli prowizje w poprzednich miesiacach
|
|---|
| 52 |
|
|---|
| 53 | DECLARE @IdFaktur TABLE
|
|---|
| 54 | (
|
|---|
| 55 | id INT
|
|---|
| 56 | )
|
|---|
| 57 |
|
|---|
| 58 | INSERT INTO @IdFaktur
|
|---|
| 59 | SELECT
|
|---|
| 60 | W.ID_FAKTURY
|
|---|
| 61 | FROM WplywyByTytul AS W
|
|---|
| 62 | INNER JOIN Faktury AS F ON W.ID_FAKTURY = F.Id_Faktury
|
|---|
| 63 | INNER JOIN Zamowienia AS Z ON Z.idZamowienia = F.idZamowienia
|
|---|
| 64 | LEFT OUTER JOIN [Plan] AS P ON P.Rok=@rok AND P.Ms=@ms AND P.Symbol=W.Symbol
|
|---|
| 65 | WHERE (YEAR(W.dataWplaty) = @rok)
|
|---|
| 66 | AND (MONTH(W.dataWplaty) = @ms)
|
|---|
| 67 | --TODO: dodac pole typ faktury, ktory bedzie jednoznacznie okreslal jakie faktury nas interesuja...
|
|---|
| 68 | AND F.Numer_Roz<>'POZ' AND F.Numer_Roz<>'KAT'
|
|---|
| 69 | --AND W.roznica_nowa<=60
|
|---|
| 70 | AND F.Id_Sprzedawcy=@idAgencji
|
|---|
| 71 | AND F.Korekta<>1
|
|---|
| 72 |
|
|---|
| 73 | DELETE FROM Prowizje
|
|---|
| 74 | WHERE idFaktury IN (SELECT ID FROM @idFaktur)
|
|---|
| 75 | AND (Rok<>@rok OR Ms<>@ms)
|
|---|
| 76 |
|
|---|
| 77 | --*******************************************************************************************
|
|---|
| 78 |
|
|---|
| 79 |
|
|---|
| 80 | RETURN
|
|---|
| 81 | GO
|
|---|
| 82 |
|
|---|
| 83 | SET ANSI_NULLS OFF
|
|---|
| 84 | GO
|
|---|
| 85 | SET QUOTED_IDENTIFIER ON
|
|---|
| 86 | GO
|
|---|
| 87 |
|
|---|