| 1 | = Szablony = |
| 2 | |
| 3 | eDokumenty umożliwiają obsługę szablonów pism. Procedura ich tworzenia jest prosta, a sam system zawiera kilka predefiniowanych szablonów. |
| 4 | |
| 5 | == Korzystanie ze zdefiniowanych szablonów == |
| 6 | Szablony dostępne są w każdym miejscu w systemie, w którym możemy stworzyć nowy dokument z menu Nowy / Utwórz z szablonu -> wybór właściwego szablonu. |
| 7 | |
| 8 | |
| 9 | |
| 10 | Drzewiasta struktura dostępna jest globalnie dla wszystkich użytkowników W systemie dostępne później są z menu Nowy > Utwórz z szablonu. Aktualnie szablony tworzone są w formacie RTF. Dzięki wtyczkom do Worda i OpenOffice, możliwe jest tworzenie dokumentów z szablonów a następnie dopracowanie ich w edytorze tekstu po czym ponowne zapisanie na serwerze. |
| 11 | |
| 12 | Szablony implementują standardowy mechanizm znaczników, znany z innych systemów. Tworzenie szablonu polega więc na tworzeniu dokumentów i wstawianiu w odpowiednie miejsca znaczników. Tak utworzony szablon można bezpośrednio zapisać w systemie do ponownego użycia bezpośrednio z poziomu edytora tekstu. |
| 13 | |
| 14 | Dostepne są 3 rodzaje znaczników: |
| 15 | * zwykłe - bazodanowe |
| 16 | * helpery |
| 17 | * utworzone na podstawie cech |
| 18 | |
| 19 | Na start dostępna jest lista predefiniowanych znaczników, które należy zaimportować do aktywnej listy. |
| 20 | Po instalacji dostępnych jest kilka znaczników których można używać od razu |
| 21 | * DATA.DZISIAJ |
| 22 | * SPRAWA.SYMBOL |
| 23 | * KONTAKT.NAZWA |
| 24 | * KONTAKT.PESEL |
| 25 | * KONTAKT.SALDO |
| 26 | * KONTAKT.NAZWA_I_ADRES (z dopiskiem bloczek w szablonie) |
| 27 | * KONTAKT.SAM_ADRES (z dopiskiem bloczek w szablonie dla formatowania) |
| 28 | W praktyce wystarczy się posługiwać kilkoma znacznikami aby utworzyć większość szablonów. Takimi znacznikami są np.: |
| 29 | |
| 30 | {{{ |
| 31 | #JEDNOSTKA.MIASTO# dnia: #DATA.DZISIAJ# |
| 32 | Znak sprawy: #SPRAWA.SYMBOL# |
| 33 | |
| 34 | |
| 35 | #JEDNOSTKA.NAZWA# |
| 36 | #PRACOWNIK.JEDNOSTKA_ORG# |
| 37 | #JEDNOSTKA.ULICA# #JEDNOSTKA.NUMER_DOMU# |
| 38 | #JEDNOSTKA.KOD# #JEDNOSTKA.MIASTO# |
| 39 | |
| 40 | |
| 41 | #KONTAKT.SAM_ADRES=bloczek# |
| 42 | |
| 43 | |
| 44 | Wezwanie do zapłaty |
| 45 | |
| 46 | |
| 47 | Wzywam Pana/Panią #KONTAKT.NAZWA# legitymującego się numerem PESEL: #KONTAKT.PESEL# |
| 48 | do uregulowania zaległej płatności w wysokości: |
| 49 | #KONTAKT.SALDO# |
| 50 | |
| 51 | |
| 52 | Z poważaniem |
| 53 | #PRACOWNIK.STANOWISKO# |
| 54 | #PRACOWNIK.IMIE_NAZWISKO#}}} |
| 55 | |
| 56 | }}} |
| 57 | |
| 58 | Z powyższego szablony obsługiwanymi znacznikami są : |
| 59 | * DATA.DZISIAJ |
| 60 | * SPRAWA.SYMBOL |
| 61 | * KONTAKT.NAZWA |
| 62 | * KONTAKT.PESEL |
| 63 | * KONTAKT.SALDO |
| 64 | * KONTAKT.NAZWA_I_ADRES (z dopiskiem bloczek w szablonie) |
| 65 | * KONTAKT.SAM_ADRES (z dopiskiem bloczek w szablonie dla formatowania) |
| 66 | |
| 67 | Istnieje możliwość zdefiniowania reszty użytych w powyższym szablonie znaczników przez wdrożeniowca lub programistę. |
| 68 | |
| 69 | Oprócz tego istnieje możliwość tworzenia własnych znaczników na podstawie struktury bazy danych i tworzonych cech. Poniżej opisany jest mechanizm tworzenia dla każdego rodzaju znaczników. |
| 70 | |
| 71 | == Znacznik zwykły - z bazy danych == |
| 72 | Format takiego znacznika to #NAZWA_TABELI.NAZWA_POLA# a sposób definiowania opisany jest poniżej: |
| 73 | |
| 74 | - Nowy znacznik[[BR]] |
| 75 | - Wybieramy metodę definicji "z tabeli"[[BR]] |
| 76 | - Pole "Znacznik:" powinno określać definicje znacznika z uwzględnieniem zasad - kolejne człony nazwy oddzielamy kropką i wszystko piszemy z dużą literą[[BR]] |
| 77 | - Pole "Opis:" określa opisową definicje znacznika[[BR]] |
| 78 | - Pole "Tabela:" określa tabelę bazy z której będą pobierane dane przy tworzeniu dokumentu[[BR]] |
| 79 | - Pole "Klucz główny:" odnosi się do nazwy klucza głównego z tabeli na która wskazuje pole "Tabela". Jeśli pole tabela wskazuje na widok należy wskazać klucz główny w tym widoku[[BR]] |
| 80 | - Pole "Kolumna danych:" wskazuje na interesujące nas dane które chcemy aby znalazły się w miejscu pojawienia się znacznika w szablonie[[BR]] |
| 81 | - Pole "Kontekst" w przypadku wyboru tabel lub widoków które są specyficzne różne od głównych: [[BR]] * podmioty [[BR]] * documents [[BR]] * users [[BR]] * organization_units [[BR]] * orgtree_view [[BR]] * processes [[BR]] * vindication.vind_proc [[BR]] należy wyspecyfikować kontekst i tak dla przykłady aby pobrać dane z widoku vindication.vind_proc_view np.: kolumne vat należy wybrać kontekst sprawy windykacyjnej [[BR]] |
| 82 | - Pole "Formatowanie" w przypadku jeśli chcemy aby wymusić na pobieranych danych formatowanie określonego typu tzn. jeśli pobierana jest data w formacie 2000-01-01 08:00:00 jednak chcemy aby tylko pobrać z tego datę wtedy należy wybierać formatowane[[BR]] |
| 83 | [[BR]] |
| 84 | |
| 85 | == Znacznik tworzony z cechy == |
| 86 | Sposób definiowania tego typu znacznika jest bardzo podobny do poprzedniego z różnicą ostatniego pola "Cecha:"[[BR]] |
| 87 | - Pole "Cecha:" określa z jakiej cechy (kontaktu/dokumentu) zostaną pobrane dane jeśli wystąpi klucz główny z pola "Klucz główny". W przypadku cech kontaktów (contacts) klucz główny to contid natomiast w przypadku dokumentów jest to doc_id.[[BR]] |
| 88 | [[BR]] |
| 89 | |
| 90 | == Znacznik z helperem == |
| 91 | Definiowania znacznika z pomocnikiem (helperem):[[BR]] |
| 92 | Górna część definicji znacznika pozostaje taka sama jak w poprzednich. Nowością jest lista predefiniowanych pomocnych znaczników (helperów). Jest to najprostszy sposób definiowania znacznika gdyż nie wymaga znajomości tabel jednak ma ograniczenie gdyż pomocnik jest definiowany tylko przez programistę.[[BR]] |
| 93 | - Pole "Znacznik:" definicja znacznika wraz z ewentualnymi opcjami wyświetlania[[BR]] |
| 94 | - Pole "Pomocnik:" typ helpera (pomocnego znacznika)z jakiego chcemy korzystać[[BR]] |
| 95 | w przypadku tego pola znacznik może produkować dowolnie zdefiniowaną treść jak np.: generowanie tabelki z wykazem zadłużenia. |
| 96 | [[BR]] |
| 97 | Znaczniki z helperów mogą (nie wszystkie) udostępniać różne sposoby wyświetlania. Aby spowodować wyświetlenie odpowiedniego formatowania w obrębie znacznika dodajemy odpowiedni token np. #KONTAKT.ADRES=bloczek# |
| 98 | * Kontakt: dane adresowe: nazwa, adres, wszystko, bloczek.[[BR]] |
| 99 | * Kontakt: sam adres: wiersz1, wiersz2, wszystko, bloczek.[[BR]] |
| 100 | * Sprawa: strona sprawy: strona ?? <o co chodzi dokładnie?>[[BR]] |
| 101 | * Sprawa: wierzyciel: nazwa, adres, wszystko, bloczek.[[BR]] |
| 102 | * Sprawa: dłużnik: nazwa, adres, wszystko, bloczek.[[BR]] |
| 103 | |
| 104 | [[BR]] |
| 105 | == Znacznik jako SQL == |
| 106 | |
| 107 | Znacznik ten daje największe możliwości jeśli chodzi o pobieranie danych z bazy. [[BR]] |
| 108 | - Pole "Warunek SQL" definicja zapytania SQL jakie ma pobrać dane[[BR]] |
| 109 | - Pole "Kontekst:" typ kontekstu z jakiego będą pobrane dane[[BR]] |
| 110 | Przykład wykorzystania tego znacznika [[BR]] |
| 111 | Jako przykład niech posłuży pobranie numeru nip jednej ze stron umowy. Zapytanie wygląda następująco: [[BR]] |
| 112 | select nip_ _ _ from contacts where contid = (select toctid from contract where ctrcid={CONTEXT}) [[BR]] |
| 113 | Kroki tworzenia takiego zapytania są następujące: [[BR]] |
| 114 | - fraza pobierająca dane select nip_ _ _ from contacts [[BR]] |
| 115 | - fraza warunku where contid [[BR]] |
| 116 | - fraza podzapytania (select toctid from contract where ctrcid={CONTEXT}) [[BR]] |
| 117 | Podzapytanie tworzymy podobnie jak zwykłq zapytanie sql ale jako warunek 'WHERE' wybieramy z listy kontekstów konkretny kontekst. W naszym przypadku będzie to kontekst 'Umowa'. Po wybraniu tego kontekstu w miejsce kursora w polu zapytania sql pojawi się definicja ctrcid={CONTEXT}. Aby zmienić kontekst usuwamy fragment ctrcid={CONTEXT} i ponownie wybieramy kontekst. [[BR]] |
| 118 | Aby obsłużyć brak danych i wypisać własny komunikat należy użyć formy np.[[BR]] |
| 119 | SELECT COALESCE((SELECT nip_ _ _ FROM contacts WHERE contid=c.toctid)::text , 'brak numeru nip') FROM contract c WHERE ctrcid={CONTEXT} [[BR]] |
| 120 | Powodzenia. [[BR]] |
| 121 | '''UWAGI'''[[BR]] |
| 122 | W przypadku szablonów tworzonych w formacie rtf należy pamiętać, iż możliwe jest aby tekst w znaczniku był formatowany tak jak sobie tego życzy użytkownik. Znacznik można standardowo sformatować poprzez pogrubienie itd, jednak formatowaniu musi być poddany cały znacznik wraz z znakami '{{' lub '#'. |
| 123 | |
| 124 | ---- |
| 125 | '''Nowe znaczniki:'''[[BR]] |
| 126 | '''WINDYKACJA.DATA.WYMAGALNOSCI.ZOBOWIAZANIA''' |
| 127 | - można dodać indeks [1] gdzie 1 oznacza, że będzie brana pod uwagę data 1 zobowiązania z listy (według pola daty mtdate w vindication.obligations_view), jeśli nie będzie indeksu wtedy zostanie brane pod uwagę 1 wpis[[BR]] |
| 128 | '''KONTAKT.NUMER.NIP''' |
| 129 | - numer nip kontaktu[[BR]] |
| 130 | '''WINDYKACJA.CENA_OBLICZONA''' |
| 131 | - Windykacja - cena obliczona - vind_proc_view(cvalue)[[BR]] |
| 132 | '''WINDYKACJA.CENA_OBLICZONA_SLOWNIE''' |
| 133 | - Windykacja - cena obliczona słownie[[BR]] |
| 134 | '''WINDYKACJA.WIERZYCIEL.NUMER_NIP''' |
| 135 | - Windykacja - numer NIP wierzyciela[[BR]] |
| 136 | '''WINDYKACJA.WYDATKI_TYPY_KOSZTOW''' |
| 137 | - Windykacja: Do podsumowania - typy kosztów[[BR]] |
| 138 | '''WINDYKACJA.WYDATKI_DATY_KOSZTOW''' |
| 139 | - Windykacja: Do podsumowania - daty kosztów[[BR]] |
| 140 | '''WINDYKACJA.WYDATKI_KWOTY_KOSZTOW''' |
| 141 | - Windykacja: Do podsumowania - kwoty kosztów[[BR]] |
| 142 | '''WINDYKACJA.PRZYCHOD_DATY_WPLYWU''' |
| 143 | - Windykacja: Do podsumowania - daty wpłat[[BR]] |
| 144 | '''WINDYKACJA.PRZYCHOD_KWOTY_WPLYWU''' |
| 145 | - Windykacja: Do podsumowania - kwoty wpłat[[BR]] |
| 146 | '''WINDYKACJA.SUMA_ZADLUZENIA_SLOWNIE''' |
| 147 | - Windykacja - suma zadłużenia słownie[[BR]] |
| 148 | '''WINDYKACJA.DLUZNIK_NUMER_KRS''' |
| 149 | - Windykacja: numer KRS dłużnika[[BR]] |
| 150 | '''WINDYKACJA.DLUZNIK_NUMER_NIP''' |
| 151 | - Windykacja: numer NIP dłużnika[[BR]] |
| 152 | '''WINDYKACJA.DLUZNIK_NUMER_REGON''' |
| 153 | - Windykacja: numer REGON dłużnika[[BR]] |
| 154 | '''WINDYKACJA.ZYSK_BRUTTO''' |
| 155 | - Windykacja: zysk ze sprawy brutto (tabela: vindication.vind_proc_view, klucz główny: prc_id, kolumna danych: brutto)[[BR]] |
| 156 | '''WINDYKACJA.ZYSK_NETTO''' |
| 157 | - Windykacja: zysk ze sprawy netto( tabela: vindication.vind_proc_view, klucz główny: prc_id, kolumna danych: profit2)[[BR]] |
| 158 | '''WINDYKACJA.ZYSK_VAT''' |
| 159 | - Windykacja: zysk ze sprawy - kwota VAT (tabela: vindication.vind_proc_view, klucz główny: prc_id, kolumna danych: vat)[[BR]] |
| 160 | '''SPRAWA.SYMBOL_SPRAWY_NADRZEDNEJ''' |
| 161 | - Sprawa: symbol sprawy nadrzędnej zdefiniowany jako znacznik SQL[[BR]] |
| 162 | '''WINDYKACJA.DATA_WYSTAWIENIA_PIERWSZEJ_FAKTURY''' |
| 163 | - Windykacja: data wystawienia pierwszej faktury z listy zobowiązań zdefiniowany jako znacznik SQL[[BR]] |
| 164 | '''WINDYKACJA.DATA_WYSTAWIENIA_OSTATNIEJ_FAKTURY''' |
| 165 | - Windykacja: data wystawienia ostatniej faktury z listy zobowiązań zdefiniowany jako znacznik SQL[[BR]] |
| 166 | '''PISMO.OPIS''' |
| 167 | - Pismo: opis dokumentu typu pismo bez nazwy kontrahenta (wszystko co jest po Od: lub Do: jest wycinane)[[BR]] |