Witam,
O ile się nie mylę to takie rozwiązanie powinno działać:
1. Dodajemy nowe opcje dostępu dla menadżerów dla każdej grupy. (Administrator/Dane wspolne -> Contacts -> Access -> [dodaj tablice] mgX : Menadzer gr X)
2. Dodajemy grupy w Firmie (Administrator/Dane wspólne -> Companies_Groups [dodaj tablice] grX : Grupa X
3. Zmieniamy reguły tak aby Pracownik mógł widzieć i manipulować tylko firmami, które są jego.
Widok / Edytuj / Usuń Dostęp: Employee Utworzony przez jest równy Nazwa użytkownika
4. Dodajemy reguły dla Menadżerów - Niestety dla każdej grupy osobno.
Widok / Edytuj / Usuń Dostęp: Menadzer gr 1 Grupa jest równy Grupa 1
Wszystkie wymagania z pkt 1. są wypełnione. Employee może tworzyć firmy. Widzi tylko te utworzone przez siebie - czyli nie widzi innych. Menadżer grupy widzi tylko te firmy przypisane do grupy, w której on się znajduje.
Minus tego rozwiązania jest taki, że Employee może przypisać firmę (przez przypadek albo specjalnie) do grupy innej niż powinien. Niestety nie mamy możliwości wymuszenia z poziomu uprawnień tego, żeby grupa miała ustaloną wartość, której nie da się zmienić. Ale wydaje mi się, że handlowiec nie będzie chciał tego robić, ponieważ zależy mu na tym, żeby pokazać swoje efekty pracy menadżerowi.
Odnośnie punktu drugiego to ja bym to zrobił tak, że bym wprowadził jeszcze jedną nazwę grupy w firmie (patrz pkt 2 powyżej) i nazwał ją np. "Potencjalny klient" i uwzględnił ją w regułach. Dodatkowo wprowadził jeszcze jeden poziom dostępu "Telemarketer". I teraz telemarketer będzie widzieć tylko firmy stworzone przez siebie. Handlowiec dodatkowo widzi i może usuwać wszystkie firmy gdzie ustawiona jest grupa "Potencjalny klient". Wchodzi w firmę klika klonuj, zapisuje i rekord jest już jego. A tamten usuwa. Nie ma prostej możliwości zmiany właściciela.
To jest rozwiązanie jakie ja widzę bez grzebania w kodzie PHP. Klonowanie powoduje powstawanie dwa razy więcej firm, co może nie bym zjawiskiem pożądanym, ale może jest rozwiązanie na poziomie reguł którego akurat nie wymyśliłem.
Niestety trzeba trochę posiedzieć i pogłówkować jak to logicznie ubrać w reguły.
Pozdrawiam,
Adam