Autor Wątek: kilka magazynów - różne usługi  (Przeczytany 3044 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline mis

  • Nowy użytkownik
  • *
  • Wiadomości: 30
  • Reputacja +0/-0
  • Wersja programu: najnowsza
kilka magazynów - różne usługi
« dnia: Listopad 25, 2016, 15:48:05 »
Scenariusz jest następujący:
Mam 4 magazyny w różnych miastach, z każdego prowadzona jest sprzedaż.
Mam 4 użytkowników każdy ma dostęp tylko do jednego magazynu (zrobione poprzez profilowanie)
Mam usługi które chciałbym aby były dedykowane pod konkretny magazyn.

Wystawiając fakturę sprzedaży na danym magazynie chciałbym mieć możliwość wyboru usług przypisanych tylko do konkretnego magazynu.
Czy jest taka możliwość?

Obecnie zrealizowałem to za pomocą grup lub cech, ale użytkownik może zdjąć filtr i wybrać usługę z innego magazynu, lub wpisać nazwę usługi z palca.

Macie może jakieś pomysły jak taki scenariusz zrealizować?

(z pokorą przyjmę jeśli się nie da :) )

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17255
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: kilka magazynów - różne usługi
« Odpowiedź #1 dnia: Listopad 25, 2016, 17:32:04 »
Mam 4 użytkowników każdy ma dostęp tylko do jednego magazynu (zrobione poprzez profilowanie)

Do tego jest uprawnienie, nie trzeba profilować.

Wystawiając fakturę sprzedaży na danym magazynie chciałbym mieć możliwość wyboru usług przypisanych tylko do konkretnego magazynu.
Czy jest taka możliwość?

Obecnie zrealizowałem to za pomocą grup lub cech, ale użytkownik może zdjąć filtr i wybrać usługę z innego magazynu, lub wpisać nazwę usługi z palca.

Macie może jakieś pomysły jak taki scenariusz zrealizować?

Pozostawiłbym przypisanie do cech i dodał blokadę zapisu dokumentów z usługami z innych magazynów, mowa oczywiście o rozwiązaniu dodatkowym (F1->Przechwytywanie w aplikacji błędów SQL Servera).

lub wpisać nazwę usługi z palca.

Ech, do tego też jest uprawnienie.
Daniel, Białystok.

Offline mis

  • Nowy użytkownik
  • *
  • Wiadomości: 30
  • Reputacja +0/-0
  • Wersja programu: najnowsza
Odp: kilka magazynów - różne usługi
« Odpowiedź #2 dnia: Listopad 28, 2016, 14:21:25 »
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ę?
« Ostatnia zmiana: Listopad 28, 2016, 14:23:57 wysłana przez mis »

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17255
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: kilka magazynów - różne usługi
« Odpowiedź #3 dnia: Listopad 28, 2016, 18:15:11 »
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

Napisałem wyraźnie, że uprawnieniach, z dalszej części wiadomości wynika, że wiesz gdzie się znajdują, uprawnienie nazywa się "Handel - zmiana magazynu".

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)

Dobry początek tylko trigger zakłada aktualizację jednego wiersza, w programie nie powinno być problemu, ale nie można wykluczyć, że to się nie zmieni.

Efekt jest następujący jak w załączniku.


Można od razu wyświetlić treść komunikatu, poszukaj "Google->Ustalanie pokazywania błędów w dymku dla InsERT GT" ;)

3. Wpisanie usługi z palca:
w uprawnieniach jest "Towary i usługi - Dodaj usługę jednorazową."


Dokładnie ;)

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ę?

Obiekty użytkowników nie są usuwane, zaszyfrowane triggery powinny zostać wyłączone na czas konwersji (nie mam pewności, ale nigdy nie trafiłem na problem).
Daniel, Białystok.

Forum Użytkownikow Subiekt GT

Odp: kilka magazynów - różne usługi
« Odpowiedź #3 dnia: Listopad 28, 2016, 18:15:11 »