Zbiór zmian 676 dla trunk/SQL

Pokaż
Ignoruj:
Data:
2009-06-03 11:36:24 (17 years ago)
Autor:
marek
Opis:

re #178 - zmiana roli st_subhandlowiec na ksiegowosc

Pliki:
1 zmodyfikowane

Legenda:

Bez zmian
Dodane
Usunięte
  • trunk/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_PROWIZJE.txt

    r674 r676  
    66 
    77ALTER PROCEDURE [dbo].[PROC_WYLICZ_I_ZAPISZ_PROWIZJE] 
    8                 @ROK INTEGER = 2003, 
    9                 @MS INTEGER = 2, 
    10                 @idAgencji integer = 2 
     8                @ROK INT = 2003, 
     9                @MS INT = 2, 
     10                @idAgencji INT = 2 
    1111AS 
    1212 
    1313-- wyczysc wszystko dla danej agencji 
    1414DELETE FROM Prowizje  
    15 WHERE Rok =@Rok  
    16 AND Ms=@Ms  
     15WHERE Rok = @Rok  
     16AND Ms = @Ms  
    1717AND Agencja = (SELECT symbol FROM Agencje where Id_Agencji = @idAgencji) 
    1818 
    19 --  
     19 
    2020INSERT 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) 
     21SELECT  
     22W.Agencja,  
     23W.Symbol,  
     24YEAR(W.dataWplaty) AS Rok,  
     25Month(W.dataWplaty) AS Ms, 
     26W.NR_FK, 
     27W.Netto, 
     28NULL AS nrFakturyKorygowanej, 
     29procentProwizji =  
     30CASE  
     31WHEN Z.Zp = 1 THEN CAST(Z.procentProwizji AS decimal(9,2)) 
     32ELSE COALESCE(CAST(P.Pr_Prowizji AS decimal(9,2)), 0)  
    2533END, 
    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 
     34Z.Zp, 
     35W.ID_FAKTURY 
     36FROM WplywyByTytul AS W 
     37INNER JOIN Faktury AS F ON W.ID_FAKTURY = F.Id_Faktury 
     38INNER JOIN Zamowienia AS Z ON Z.idZamowienia = F.idZamowienia 
     39LEFT OUTER JOIN [Plan] AS P ON P.Rok=@rok AND P.Ms=@ms AND P.Symbol=W.Symbol 
     40WHERE (YEAR(W.dataWplaty) = @rok)  
     41AND (MONTH(W.dataWplaty) = @ms) 
     42--TODO: dodac pole typ faktury, ktory bedzie jednoznacznie okreslal jakie faktury nas interesuja... 
     43AND F.Numer_Roz<>'POZ' AND F.Numer_Roz<>'KAT' 
     44AND W.roznica_nowa<=60 
     45AND F.Id_Sprzedawcy=@idAgencji 
     46AND F.Korekta<>1 
     47ORDER BY Pr_Prowizji 
    8048 
    8149