Przypadek: wniosek o dostęp w biurze rachunkowym
Przykład Przypadek poglądowy: firma i jej dane są zmyślone, żeby pokazać przebieg.
Asesoría Ribera, biuro rachunkowe wymyślone na potrzeby tego przykładu, dostaje wniosek od osoby, która chce wiedzieć, jakie jej dane figurują w fakturowaniu klienta. Osoba odpowiedzialna za prywatność w biurze pracuje w Odoo z VeriFactu España (AEAT RRSIF Compliance) i musi wydobyć te informacje z modułu.
Przycisk jest w gałęziach 17, 18, 19 i 20 modułu, opublikowanego w Odoo Apps dla tych czterech wersji. Poniższy opis dotyczy kodu z Odoo 20.0.

Jak ona dociera do przycisku
Karta otwiera się z Verifactu / SIF › Privacy / GDPR › DSAR Wizard. Każdy odcinek menu wymaga uprawnień i jeśli ich nie masz, nie widzisz tego odcinka: Privacy / GDPR widzą Privacy Officer i SIF Manager; Verifactu / SIF widzą także Accountant, Asesoría Operator i Auditor (read-only).
W karcie przycisk nie zależy od żadnego warunku widoku: jest widoczny we wszystkich czterech wersjach. Jej kroki wyglądają tak:
- Otwórz menu i wejdź do karty
DSAR Wizard. Pola wniosku są w grupieRequest Details. - Sprawdź pole
Company. Domyślnie wstawia aktywną firmę, a wyszukiwanie odbywa się tylko w firmie widniejącej tam. - Wpisz w
Data Subject NIF / Namenumer NIF osoby lub jej nazwę. - Jeśli biuro prowadzi numer sprawy, zapisuje go w
Request Reference. - Kliknij
Generate Access Export (art.15).
Etykieta przycisku zmienia się zależnie od języka Odoo. Z Odoo po hiszpańsku jest to wersja hiszpańska tej etykiety, a z Odoo po katalońsku Generar Exportació d'Accés (art.15).

Co robi przycisk, po kolei
Po kliknięciu kod wykonuje to, jedno po drugim:
- Bierze tekst wpisany w
Data Subject NIF / Name, usuwa spacje z końców i szuka z nim w wybranej firmie. - Buduje wynik, który zawiera wpisany tekst, nazwę firmy i dwie listy: znalezione rejestry i anulowania.
- Zapisuje ten wynik jako plik JSON w samym kreatorze, pod nazwą
dsar_access_export_z pierwszymi dwudziestoma znakami wpisanego tekstu i rozszerzeniem.json. - Próbuje dodatkowo wygenerować PDF (niżej, co robi kod, jeśli się nie uda).
- Rejestruje zdarzenie (następna sekcja).
- Ponownie otwiera tę samą kartę kreatora w oknie podręcznym, z tym samym rekordem.
Kod opisuje to wyodrębnianie jako odczyt pól z danymi osobowymi bez zmieniania żadnego rekordu łańcucha.
Czego szuka i co eksportuje
| Blok | Gdzie szuka | Jakie dane wyciąga |
|---|---|---|
| Rejestry | Identyfikator lub nazwa kontrahenta | Numer seryjny, data wystawienia, nazwa, typ identyfikatora, identyfikator i suma |
| Anulowania | Tylko identyfikator kontrahenta | Numer seryjny, data wystawienia i identyfikator |
Dopasowanie polega na zawieraniu, bez rozróżniania wielkości liter. Jeśli Asesoría Ribera wpisze tylko fragment nazwy, wejdą wszystkie rejestry tej firmy, których nazwa lub identyfikator zawiera ten fragment. A jeśli wpisze nazwę, anulowania nie są po niej wyszukiwane, tylko po identyfikatorze.
Co zostaje zarejestrowane
Po wygenerowaniu pliku przycisk tworzy zdarzenie w rejestrze zdarzeń modułu, dla wybranej firmy. Zdarzenie zawiera datę i godzinę, użytkownika, który kliknął przycisk, opis z wpisanym numerem NIF lub nazwą, NIF lub nazwę oraz numer referencyjny wniosku jako kontekst (referencja pozostaje pusta, jeśli jej nie wypełnisz), skrót obliczony na tych danych i numer kolejny właściwy dla firmy.
Referencja wniosku trafia do zdarzenia; plik JSON eksportu jej nie zawiera. Kolejność ma znaczenie: jeśli generowanie pliku zatrzyma się z błędem, kod nie dochodzi do rejestracji zdarzenia.
Inne akcje, które zostawiają zdarzenia
Zdarzenie przycisku nie jest jedynym rejestrowanym w ten sposób. Przy zapisie karty firmy, jeśli zmieniono środowisko AEAT, osobę odpowiedzialną za SIF lub zakres VeriFactu, również powstaje zdarzenie. Ponadto standardowy przycisk anulowania faktury, który moduł rozszerza, oraz zaplanowane zadanie Verifactu: Clock Drift Check, które uruchamia się co godzinę i jest aktywne po instalacji, trafiają do tego samego rejestru. O tym, co moduł dodaje do faktur, przeczytasz w tym artykule.
PDF, który próbuje zapisać kod
Oprócz JSON kod próbuje wygenerować PDF z tego samego kreatora i, jeśli się uda, zapisuje go pod nazwą dsar_access_export_ plus pierwsze dwadzieścia znaków wpisanego tekstu i rozszerzenie .pdf. Jeśli generowanie się nie powiedzie, kod przechwytuje błąd, zapisuje ostrzeżenie w logu serwera i kontynuuje z JSON i zdarzeniem.
Czego uczy ten przypadek
- Potwierdź pole
Companyprzed kliknięciem: wyszukiwanie ogranicza się do niej. - Wpisz pełny NIF, gdy go masz; częściowa nazwa może przynieść więcej rejestrów, niż się spodziewasz, a anulowania wychodzą tylko po identyfikatorze.
- Zapisz
Request Reference, jeśli chcesz, by zdarzenie ją zawierało: wyeksportowany JSON jej nie zawiera.
Jak pomaga FlexigoTech
FlexigoTech wdraża Odoo 17, 18, 19 i 20 oraz tworzy konektory i integracje na zamówienie. Jeśli chcesz sprawdzić, kto powinien mieć uprawnienia do menu prywatności, albo dostosować moduł do waszego procesu, napisz do nas.
Czytaj dalej
Sprawdzone w kodzie źródłowym modułu (wersja 20.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigo_spain_verifactu 20.0 (1fdc980f): wizards/verifactu_dsar_wizard_views.xml
- Kod modułu: flexigo_spain_verifactu 20.0 (1fdc980f): wizards/verifactu_dsar_wizard.py
- Kod modułu: flexigo_spain_verifactu 20.0 (1fdc980f): models/res_company.py
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
- flexigotech.com/en/services.html
