O widzisz, czyli jednak potrafisz być precyzyjny.
W życiu bym się nie domyślił, że zlecenie to zadanie.
Tak można to połączyć przynajmniej na dwa sposoby:
1. Utworzyć nowe pole typu select/multiselect w transakcji, które będzie przechowywać powiązane zadanie/zadania. Wtedy wyświetlając transakcję będziemy mieli bezpośredni link do zadania. Natomiast aby w module zadań wyświetlić powiązane transakcje wymagane byłoby dodatkowe pole typu calculated z ustawionym display_callback, w którym pobieralibyśmy te transakcje, które są powiązane z zadaniem. Potrzebna byłaby mała funkcja w PHP do obsługi tego.
2. Druga opcja jest odwrotna, czyli nowe pole select/multiselect w zadaniu, które będzie przechowywać powiązaną transakcję oraz nowe pole calculated, do wyświetlania powiązanych zadań w widoku transakcji.
W obu przypadkach jesteśmy w stanie osiągnąć różne relacje: "jeden do wielu" lub "wiele do wielu".
Wszystko można opakować w moduł i wtedy nic nie klikać w panelu admina - plus jest taki, że w razie czego można ponownie zainstalować moduł na innej instalacji i uzyskać ten sam efekt, bez klikania w interfejsie.
Albo prostsza opcja na pojedynczą instalację, to dodać oba pola z panelu Administratora, a następnie dodać jeden plik ze wspomnianą funkcją w PHP, który wyglądałby mniej więcej tak:
class CRM_Task_CustomCallback {
public static function display_transactions($record, $nolink) {
$rs = new RBO_RecordsetAccessor( <tutaj nazwa rekordsetu transakcji> );
$records = $rs->get_records(array('related_task' => $record['id']));
$ret = '';
foreach ($records as $r) { $ret .= $r->create_default_linked_label($nolink, false); }
return $ret;
}
}
Pozdrawiam,
Adam 😉