Na wstępie, dkozlowski - jesteś genialny!
1. Dany Użytkownik ma dostęp tylko do jednego magazynu:
Gdzie to mogę znaleźć? Która tabelka? (chyba jestem ślepy i nie widzę)
W dokumentacji piszą, że tabela "pd_UzytkUprawMag" nie jest używana dla wersji 1.45
2. Ograniczenie usług do konkretnego działu: (F1->Przechwytywanie w aplikacji błędów SQL Servera)
Na to bym nie wpadł, ale Twoja wskazówka chyba dała mi rozwiązanie:
Poniżej przykład dla dwóch magazynów (1 i 2).
Każdemu magazynowi odpowiada cecha usługi (1 lub 2)
CREATE TRIGGER tw_Pozycja_Usluga
ON dok_Pozycja
AFTER INSERT, UPDATE
AS
BEGIN
declare @magazynId int
select @magazynId = (select [dbo].[fn_BiezacyMagazyn]())
declare @tw_id int
select @tw_id = (SELECT ob_TowId FROM inserted)
declare @cechaId int
if (@magazynId = 1)
Begin
--tylko dla usług o cesze nr 1
IF (select count(*) from tw_CechaTw where tw_CechaTw.cht_IdTowar = @tw_id and tw_CechaTw.cht_IdCecha = 1) = 0
--tylko dla FS
AND (SELECT dok_Typ FROM dok__Dokument WHERE dok_Id = (SELECT ob_DokHanId FROM inserted)) = 2
RAISERROR('<msg>Wybrales usluge ktora nie nalezy do Twojego dzialu nr 1</msg>', 16, 1)
end
if (@magazynId = 2)
begin
--tylko dla usług o cesze nr 2
IF (select count(*) from tw_CechaTw where tw_CechaTw.cht_IdTowar = @tw_id and tw_CechaTw.cht_IdCecha = 2) = 0
--tylko dla FS
AND (SELECT dok_Typ FROM dok__Dokument WHERE dok_Id = (SELECT ob_DokHanId FROM inserted)) = 2
RAISERROR('<msg>Wybrales usluge ktora nie nalezy do Twojego dzialu nr 2</msg>', 16, 1)
end
END
Efekt jest następujący jak w załączniku.
3. Wpisanie usługi z palca:
w uprawnieniach jest "Towary i usługi - Dodaj usługę jednorazową."
4. Pytanie dodatkowe - trigger i aktualizacja
Jak się zachowa Subiekt GT w czasie aktualizacji jak dodam własnego triggera?
Czy trigger zostanie usunięty w trakcie aktualizacji?
Czy trigger może zablokować aktualizację?