Index: branches/ReklamaReorganizacja/SQL/Tables/ProvisionSettings.txt
===================================================================
--- branches/ReklamaReorganizacja/SQL/Tables/ProvisionSettings.txt (revision 680)
+++ branches/ReklamaReorganizacja/SQL/Tables/ProvisionSettings.txt (revision 680)
@@ -0,0 +1,22 @@
+
+/****** Object:  Table [dbo].[ProvisionSettings]    Script Date: 06/03/2009 15:47:19 ******/
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+CREATE TABLE [dbo].[ProvisionSettings](
+	[AgencyId] [int] NOT NULL,
+	[Year] [int] NOT NULL,
+	[Month] [int] NOT NULL,
+	[IsBlocked] [bit] NULL,
+	[UpdatedBy] [nvarchar](100) COLLATE SQL_Latin1_General_CP1250_CI_AS NULL,
+	[UpdatedOn] [datetime] NULL,
+	[CreatedBy] [nvarchar](100) COLLATE SQL_Latin1_General_CP1250_CI_AS NULL,
+	[CreatedOn] [datetime] NULL,
+ CONSTRAINT [PK_ProvisionSettings] PRIMARY KEY CLUSTERED 
+(
+	[AgencyId] ASC,
+	[Year] ASC,
+	[Month] ASC
+) ON [PRIMARY]
+) ON [PRIMARY]
Index: branches/ReklamaReorganizacja/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_PROWIZJE.txt
===================================================================
--- branches/ReklamaReorganizacja/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_PROWIZJE.txt (revision 411)
+++ branches/ReklamaReorganizacja/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_PROWIZJE.txt (revision 680)
@@ -5,75 +5,48 @@
 GO
 
-ALTER Procedure [dbo].[PROC_WYLICZ_I_ZAPISZ_PROWIZJE]
-@ROK INTEGER = 2003,
-@MS INTEGER = 2,
-@idAgencji integer = 2
-As
-delete from PROWIZJE 
-where ROK =@ROK and MS =@MS and agencja = 
- (select symbol from agencje where id_Agencji = @idAgencji)
+ALTER PROCEDURE [dbo].[PROC_WYLICZ_I_ZAPISZ_PROWIZJE]
+		@ROK INT = 2003,
+		@MS INT = 2,
+		@idAgencji INT = 2
+AS
 
-insert into PROWIZJE 
-SELECT  a2.symbol,b_agent, B_ROK,b_ms,numer_faktury,NETTO,NrKorygowanejFaktury,
-case z.zp
-when 1 then z.procentProwizji
-else round(P.PR_PROWIZJI,2)
-end,
-z.zp,
-case z.zp
-when 1 then  round(z.procentProwizji * Netto,2)
-else round(round(P.PR_PROWIZJI,2) * Netto,2)
-end
-as kwotaProwizji, id_faktury
-FROM dbo.VIEW_POMOCNICZY_BUDZET VPB left join dbo.[PLAN] P on
-VPB.b_rok = P.rok and VPB.b_ms = P.ms and P.symbol = VPB.b_agent left join
-zamowienia Z on Z.idZamowienia = VPB.idZamowienia left join 
-agenci A1 on A1.symbol = VPB.B_agent  left join
-agencje A2 on A2.id_agencji = A1.id_agencji
-where B_ROK =@ROK and B_MS =@MS and A1.id_agencji = @idAgencji
-
--- aktualizuj prowizjie dla faktur z poprzednich miesiecy
-
-DECLARE @Prowizje TABLE
-(
-idProwizji INT,
-procentProwizji float,
-kwotaProwizji money,
-ZP bit
-)
-
-INSERT INTO @Prowizje
-	SELECT 
-	Pr.idProwizji,
-	procentProwizji = 
-	CASE 
-	  WHEN Z.ZP=1 THEN ROUND(Z.procentProwizji, 2)
-	  ELSE ROUND(PL.Pr_Prowizji, 2)
-	END,
-	kwotaProwizji = 
-	CASE 
-	  WHEN Z.ZP=1 THEN ROUND(Pr.Netto * Z.procentProwizji, 2)
-	  ELSE ROUND(Pr.Netto * PL.Pr_Prowizji, 2)
-	END,
-	Z.ZP
-	FROM WplywyByTytul W
-	INNER JOIN Prowizje Pr ON Pr.idFaktury = W.ID_FAKTURY
-	INNER JOIN Agencje A ON A.Symbol = W.Agencja
-	INNER JOIN Faktury F ON F.ID_FAKTURY = W.ID_FAKTURY
-	INNER JOIN Zamowienia Z ON Z.idZamowienia = F.idZamowienia
-	LEFT OUTER JOIN [PLAN] Pl ON Pl.Symbol = W.Symbol AND Pl.Rok=YEAR(W.dataWplaty) AND Pl.MS=MONTH(W.dataWplaty)
-	WHERE YEAR(W.dataWplaty)=@ROK and MONTH(W.dataWplaty)=@MS
-	AND A.id_Agencji=@idAgencji
-	AND PR.ms<>@MS
-
-UPDATE P
-SET 
-P.procentProwizji=P1.procentProwizji,
-P.kwotaProwizji=P1.kwotaProwizji,
-P.ZP=P1.ZP
-FROM Prowizje P INNER JOIN @Prowizje P1 ON P.idProwizji=P1.idProwizji
+-- wyczysc wszystko dla danej agencji
+DELETE FROM Prowizje 
+WHERE Rok = @Rok 
+AND Ms = @Ms 
+AND Agencja = (SELECT symbol FROM Agencje where Id_Agencji = @idAgencji)
 
 
-return
+INSERT INTO Prowizje 
+SELECT 
+W.Agencja, 
+W.Symbol, 
+YEAR(W.dataWplaty) AS Rok, 
+Month(W.dataWplaty) AS Ms,
+W.NR_FK,
+W.Netto,
+NULL AS nrFakturyKorygowanej,
+procentProwizji = 
+CASE 
+WHEN Z.Zp = 1 THEN CAST(Z.procentProwizji AS decimal(9,2))
+ELSE COALESCE(CAST(P.Pr_Prowizji AS decimal(9,2)), 0) 
+END,
+Z.Zp,
+W.ID_FAKTURY
+FROM WplywyByTytul AS W
+INNER JOIN Faktury AS F ON W.ID_FAKTURY = F.Id_Faktury
+INNER JOIN Zamowienia AS Z ON Z.idZamowienia = F.idZamowienia
+LEFT OUTER JOIN [Plan] AS P ON P.Rok=@rok AND P.Ms=@ms AND P.Symbol=W.Symbol
+WHERE (YEAR(W.dataWplaty) = @rok) 
+AND (MONTH(W.dataWplaty) = @ms)
+--TODO: dodac pole typ faktury, ktory bedzie jednoznacznie okreslal jakie faktury nas interesuja...
+AND F.Numer_Roz<>'POZ' AND F.Numer_Roz<>'KAT'
+AND W.roznica_nowa<=60
+AND F.Id_Sprzedawcy=@idAgencji
+AND F.Korekta<>1
+ORDER BY Pr_Prowizji
+
+
+RETURN
 GO
 
Index: branches/ReklamaReorganizacja/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_PROWIZJE_AGENTA_DO_PLANU.txt
===================================================================
--- branches/ReklamaReorganizacja/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_PROWIZJE_AGENTA_DO_PLANU.txt (revision 680)
+++ branches/ReklamaReorganizacja/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_PROWIZJE_AGENTA_DO_PLANU.txt (revision 680)
@@ -0,0 +1,87 @@
+
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+ALTER Procedure [dbo].[PROC_WYLICZ_I_ZAPISZ_PROWIZJE_AGENTA_DO_PLANU]
+@ROK INTEGER = 2003,
+@MS INTEGER = 2,
+@id_Agencji INTEGER = 2
+As
+UPDATE [PLAN] SET
+PR_PROWIZJI=W_PROWIZJA
+FROM
+(
+--WYLICZENIE WYSOKOSCI PROWIZJI
+SELECT  *, 1.0*ROUND(PODSTAWA+P_O+P_B+P_Z,4) AS W_PROWIZJA
+FROM
+(
+SELECT * ,
+ROUND ( (CASE WHEN PP_O>OCENA THEN OCENA ELSE PP_O END) , 4 ) AS P_O
+FROM
+(
+SELECT * ,
+ROUND(1.0*OCENA_ZA_MS/100*(OCENA * (CASE WHEN OCENA_ZA_MS>=50 THEN 1 ELSE 0 END)) ,4) AS PP_O,
+CASE WHEN BUDZET_WYKONANY_AGENT>BUDZET_AGENTA THEN BUDZET ELSE 0 END AS P_B,
+CASE WHEN BUDZET_WYKONANY_BIURO>BUDZET_BIURA THEN ZESPOL ELSE 0 END AS P_Z
+FROM
+(
+SELECT PB.AGENCJA, PB.AGENT, PB.ROK, PB.MS, 
+    PB.BUDZET_BIURA, PB.BUDZET_AGENTA, 
+    PB.BUDZET_WYKONANY AS BUDZET_WYKONANY_AGENT, 
+    SUM([PLAN].W_BUDZET) AS BUDZET_WYKONANY_BIURO, 
+    PB.OCENA_ZA_MS, PB.PODSTAWA, PB.ZESPOL, PB.BUDZET, 
+    PB.OCENA
+FROM (SELECT AGENCJE.Id_agencji, 
+          AGENCJE.Symbol AS AGENCJA, 
+          [PLAN].SYMBOL AS AGENT, [PLAN].ROK, [PLAN].MS, 
+          BUDZET_BIUR.BUDZET AS BUDZET_BIURA, 
+          [PLAN].BUDZET AS BUDZET_AGENTA, 
+          [PLAN].W_BUDZET AS BUDZET_WYKONANY, 
+          ROUND([PLAN].OCENA, 2) AS OCENA_ZA_MS, 
+          PLANY_PROWIZJI.PODSTAWA, 
+          PLANY_PROWIZJI.ZESPOL, 
+          PLANY_PROWIZJI.BUDZET, 
+          PLANY_PROWIZJI.OCENA
+      FROM dbo.AGENCJE INNER JOIN
+          dbo.AGENCI ON 
+          dbo.AGENCJE.Id_agencji = dbo.AGENCI.ID_AGENCJI and dbo.AGENCJE.Id_agencji=@id_Agencji  INNER
+           JOIN
+          dbo.BUDZET_BIUR ON 
+          dbo.AGENCJE.Id_agencji = dbo.BUDZET_BIUR.ID_BIURA and dbo.AGENCJE.Id_agencji=@id_Agencji
+           INNER JOIN
+          dbo.[PLAN] ON 
+          dbo.AGENCI.Symbol = dbo.[PLAN].SYMBOL AND 
+          dbo.BUDZET_BIUR.ROK = dbo.[PLAN].ROK AND 
+          dbo.BUDZET_BIUR.MS = dbo.[PLAN].MS INNER JOIN
+          dbo.PLANY_PROWIZJI ON 
+          dbo.AGENCI.ID_PLANU_PROWIZYJNEGO = dbo.PLANY_PROWIZJI.ID_PLANU_PROWIZYJNEGO
+      WHERE (dbo.[PLAN].ROK = @ROK) AND (dbo.[PLAN].MS = @MS)) 
+    PB INNER JOIN
+    dbo.AGENCJE INNER JOIN
+    dbo.AGENCI ON 
+    dbo.AGENCJE.Id_agencji = dbo.AGENCI.ID_AGENCJI INNER JOIN
+    dbo.[PLAN] ON dbo.AGENCI.Symbol = dbo.[PLAN].SYMBOL ON 
+    PB.Id_agencji = dbo.AGENCJE.Id_agencji AND 
+    PB.ROK = dbo.[PLAN].ROK AND 
+    PB.MS = dbo.[PLAN].MS
+WHERE (dbo.[PLAN].ROK = @ROK) AND (dbo.[PLAN].MS = @MS)
+GROUP BY dbo.AGENCJE.Id_agencji, dbo.[PLAN].MS, 
+    dbo.[PLAN].ROK, PB.AGENCJA, PB.AGENT, PB.ROK, PB.MS, 
+    PB.BUDZET_BIURA, PB.BUDZET_AGENTA, 
+    PB.BUDZET_WYKONANY, PB.OCENA_ZA_MS, PB.PODSTAWA, 
+    PB.ZESPOL, PB.BUDZET, PB.OCENA) AS PW
+) AS PX
+) AS PV
+) AS WW
+--Koñcówka instrukcji Update
+inner join [plan] on WW.agent=[plan].symbol and WW.rok=[plan].rok and WW.ms=[plan].ms
+return
+GO
+
+SET ANSI_NULLS OFF
+GO
+SET QUOTED_IDENTIFIER OFF
+GO
+
Index: branches/ReklamaReorganizacja/SQL/StoredProcedures/sp_SetProvision.txt
===================================================================
--- branches/ReklamaReorganizacja/SQL/StoredProcedures/sp_SetProvision.txt (revision 680)
+++ branches/ReklamaReorganizacja/SQL/StoredProcedures/sp_SetProvision.txt (revision 680)
@@ -0,0 +1,46 @@
+
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+-- =============================================
+-- Author:		marek
+-- Create date: 03/06/2009
+-- Description:	Ustawia czy prowizje dla danej agencji jest juz zablokowana
+-- =============================================
+ALTER PROCEDURE [dbo].[sp_SetProvision] 
+	@isBlocked bit,
+	@agencyId int,
+	@year int,
+	@month int,
+	@userName nvarchar(100)
+AS
+BEGIN
+	-- SET NOCOUNT ON added to prevent extra result sets from
+	-- interfering with SELECT statements.
+	SET NOCOUNT ON;
+
+IF EXISTS(SELECT * FROM dbo.ProvisionSettings WHERE agencyId=@agencyId AND [year]=@year AND [Month]=@month)
+	BEGIN
+		PRINT 'UPDATE'
+		UPDATE dbo.ProvisionSettings
+		SET IsBlocked=@isBlocked, UpdatedOn=GETDATE(), UpdatedBy=@userName
+		WHERE agencyId=@agencyId AND [year]=@year AND [Month]=@month 
+	END
+ELSE
+	BEGIN
+		INSERT INTO dbo.ProvisionSettings(AgencyId, [Year], [Month], IsBlocked, CreatedOn, CreatedBy, UpdatedOn, UpdatedBy) 
+		VALUES(@agencyId, @year, @month, @isBlocked, GETDATE(), @userName, GETDATE(), @userName)
+	END
+
+RETURN
+
+END
+GO
+
+SET ANSI_NULLS OFF
+GO
+SET QUOTED_IDENTIFIER OFF
+GO
+
Index: branches/ReklamaReorganizacja/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_DANE_O_KONTAKTACH_I_BUDZECIE.txt
===================================================================
--- branches/ReklamaReorganizacja/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_DANE_O_KONTAKTACH_I_BUDZECIE.txt (revision 473)
+++ branches/ReklamaReorganizacja/SQL/StoredProcedures/PROC_WYLICZ_I_ZAPISZ_DANE_O_KONTAKTACH_I_BUDZECIE.txt (revision 680)
@@ -9,88 +9,4 @@
 @MS INTEGER = 2
 As
-update dbo.PLAN_TYLKO_CT  set 
-w_budzet=wk_budzet,
-w_spotkania=spotkanie,
-w_tel=tel,
-w_email=email,
-w_list=list,
-w_fax=fax,
-w_n_klienci=nkl,
-w_klienci=il_klientow,
-w_reklamy=il_reklam
-from 
-(
---WYLICZENIE ILOSCI KONTAKTOW ITP
-SELECT ROK, MS, AGENT, IL_KONTKTOW, IL_KLIENTOW, SPOTKANIE, FAX, EMAIL, LIST, TEL ,
-ISNULL(IL_REKLAM,0) AS IL_REKLAM,  ROUND(ISNULL(BUDZET,0) ,0) AS wk_BUDZET, ISNULL(NKL,0) AS NKL, HANDEL, PRODUKT, RYNEK, FIRMA
-FROM 
-(
-SELECT ROK , MS, AGENT,  COUNT(Id_kontaktu) AS IL_KONTKTOW, COUNT(DISTINCT customerId) AS IL_KLIENTOW, 
-  
-  SUM( CASE WHEN RODZAJ='TEL' THEN 1 ELSE 0 END) AS TEL,  
-  SUM( CASE WHEN RODZAJ='FAX' THEN 1 ELSE 0 END) AS FAX,  
-  SUM( CASE WHEN RODZAJ='LIST' THEN 1 ELSE 0 END) AS LIST,  
-  SUM( CASE WHEN RODZAJ='E-MAIL' THEN 1 ELSE 0 END) AS EMAIL,  
-  SUM( CASE WHEN RODZAJ='SPOTKANIE' THEN 1 ELSE 0 END) AS SPOTKANIE  
-FROM 
-(
-SELECT dbo.KONTAKTY.Id_kontaktu, dbo.KONTAKTY.rodzaj as RODZAJ, 
-  symbol_agenta  AS AGENT, dbo.KONTAKTY.customerId, 
-  DATEPART(YEAR, dbo.KONTAKTY.data) AS ROK,  
-  DATEPART(Month, dbo.kontakty.data) As MS  
-  FROM dbo.KONTAKTY 
-  WHERE DATEPART(YEAR, dbo.KONTAKTY.data) = @ROK and DATEPART(Month, dbo.kontakty.data) = @MS
-) KO  
-GROUP BY ROK, MS , AGENT
-)  P_K 
---WYLICZENIE ILOSCI REKLAM
-FULL OUTER JOIN
-(
-SELECT [SYMBOL AKWIZYTORA] AS R_AGENT, COUNT(*) AS IL_REKLAM_1,  
- DATEPART(YEAR,[DATA ZAMÓWIENIA]) AS R_ROK, 
- DATEPART(MONTH,[DATA ZAMÓWIENIA]) AS R_MS 
- FROM REKLAMA 
- WHERE 
-  DATEPART(YEAR,[DATA ZAMÓWIENIA])=@ROK  AND 
-  DATEPART(MONTH,[DATA ZAMÓWIENIA])=@MS   AND 
- [ZATWIERDZONO DO DRUKU]=1 
-GROUP BY [SYMBOL AKWIZYTORA] , DATEPART(YEAR,[DATA ZAMÓWIENIA]), DATEPART(MONTH,[DATA ZAMÓWIENIA])
-) P_R 
-ON R_AGENT=AGENT AND ROK=R_ROK AND MS=R_MS
-FULL OUTER JOIN
-(
-SELECT USERNAME,  DATEPART(YEAR,DATA) AS K_ROK,  DATEPART(MONTH,DATA) AS K_MS, COUNT(*) AS NKL FROM KLIENCI
- WHERE DATEPART(YEAR,DATA)=@ROK  AND  DATEPART(MONTH,DATA)=@MS
- GROUP BY USERNAME,  DATEPART(YEAR,DATA),  DATEPART(MONTH,DATA)
-) AS P_NK
-ON USERNAME=AGENT AND ROK=K_ROK AND MS=K_MS
---WYLICZENIE BUD¯ETU
-FULL OUTER JOIN
-(
-SELECT B_ROK, B_MS,
-Sum(NETTO) AS BUDZET, 
-count(LiczbaReklam) as IL_REKLAM,
-b_agent as B_AGENT
-FROM dbo.VIEW_POMOCNICZY_BUDZET 
-where B_ROK =@ROK and
-B_MS =@MS
-GROUP BY B_ROK, B_MS,B_AGENT ) P_B 
-ON B_AGENT=AGENT AND ROK=B_ROK AND MS=B_MS
--- WYLICZENIE DANYCH DO TESTU WIEDZY
-FULL OUTER JOIN
-(
-SELECT user_name AS T_AGENT, DATEPART(YEAR,[DATA]) AS T_ROK, DATEPART(MONTH,[DATA]) AS T_MS, 
-            SUM(HANDEL) AS HANDEL, SUM(PRODUKT) AS PRODUKT, SUM(RYNEK) AS RYNEK, SUM(FIRMA) AS FIRMA
-FROM VIEW_ZESTAWIENIE_TEST_WIEDZY
- WHERE 
-  DATEPART(YEAR,[DATA])=@ROK AND 
-  DATEPART(MONTH,[DATA])=@MS   
-GROUP BY user_name, DATEPART(YEAR,[DATA]) , DATEPART(MONTH,[DATA]) 
-) P_T
-ON T_AGENT=AGENT AND ROK=T_ROK AND MS=T_MS
-) wl
---Koñcówka instrukcji Update
-inner join dbo.[PLAN_TYLKO_CT]  on wl.agent=[dbo].[PLAN_TYLKO_CT].symbol and wl.rok=[dbo].[PLAN_TYLKO_CT].rok and wl.ms=[dbo].[PLAN_TYLKO_CT].ms
-
 
 update dbo.[PLAN]  set 
Index: branches/ReklamaReorganizacja/SQL/StoredProcedures/sp_IsProvisionBlocked.txt
===================================================================
--- branches/ReklamaReorganizacja/SQL/StoredProcedures/sp_IsProvisionBlocked.txt (revision 680)
+++ branches/ReklamaReorganizacja/SQL/StoredProcedures/sp_IsProvisionBlocked.txt (revision 680)
@@ -0,0 +1,36 @@
+
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+
+-- =============================================
+-- Author:		<Author,,Name>
+-- Create date: <Create Date,,>
+-- Description:	<Description,,>
+-- =============================================
+ALTER PROCEDURE [dbo].[sp_IsProvisionBlocked]
+					@agencyId int,
+					@year int,
+					@month int
+AS
+BEGIN
+	-- SET NOCOUNT ON added to prevent extra result sets from
+	-- interfering with SELECT statements.
+	SET NOCOUNT ON;
+
+IF EXISTS(SELECT * FROM dbo.ProvisionSettings WHERE agencyId=@agencyId AND [year]=@year AND [Month]=@month)
+ SELECT IsBlocked FROM dbo.ProvisionSettings WHERE agencyId=@agencyId AND [year]=@year AND [Month]=@month
+ELSE
+ SELECT 0
+
+RETURN
+
+END
+GO
+
+SET ANSI_NULLS OFF
+GO
+SET QUOTED_IDENTIFIER OFF
+GO
+
Index: branches/ReklamaReorganizacja/SQL/Views/WplywyByTytul_Wyroznienia.txt
===================================================================
--- branches/ReklamaReorganizacja/SQL/Views/WplywyByTytul_Wyroznienia.txt (revision 535)
+++ branches/ReklamaReorganizacja/SQL/Views/WplywyByTytul_Wyroznienia.txt (revision 680)
@@ -83,5 +83,5 @@
 AGENCJE.Symbol, 
 KLIENCI.kodKlienta, 
-P.procentProwizji, P.kwotaProwizji, 
+P.procentProwizji,
 R.[PROCENT PROWIZJI], R.PROWIZJA, R.zablokuj_prowizje, 
 Z.ZP, Z.procentProwizji, 
Index: branches/ReklamaReorganizacja/SQL/Views/WplywyByTytul.txt
===================================================================
--- branches/ReklamaReorganizacja/SQL/Views/WplywyByTytul.txt (revision 535)
+++ branches/ReklamaReorganizacja/SQL/Views/WplywyByTytul.txt (revision 680)
@@ -49,5 +49,4 @@
 END,
 T.Symb AS Tytul,
---COALESCE(FD.Wyroznienie  , 0) AS Wyroznienie,
 F.SystemKsiegowyId
 FROM  FAKTURY F 
@@ -82,5 +81,5 @@
 AGENCJE.Symbol, 
 KLIENCI.kodKlienta, 
-P.procentProwizji, P.kwotaProwizji, 
+P.procentProwizji,
 R.[PROCENT PROWIZJI], R.PROWIZJA, R.zablokuj_prowizje, 
 Z.ZP, Z.procentProwizji, 
