# Umowa Components
## Typowy format dokumentu
```html
UMOWA NR ………….
o realizację Inicjatywy zleconego w ramach Programu NOWEFIO - zachowując historię społeczności
Ustep 1
Punkt 1
Podpunkt sfsdfdf
Podpunkt
Punkt 2
Ustep 2
Punkt 1
Punkt 2
....
```
wygeneruje
```
§ 1
Obowiązki i uprawnienia informacyjne
1. Ustep 1
1) Punkt 1
a) Podpunkt sfsdfdf
b) Podpunkt
2) Punkt 2
2. Ustęp 2
1) Punkt 1
2) Punkt 2
§ 2
Zakres umowy
```
# Tagi postawowe
## ``
Nadrzędny element umowy
parametry
* `start` - od jakiego numeru numerować paragrafy, domyśnie jeden
* `pokazprzypisy` - czy generować przypisy, domyślnie `true`
* `justuj` - czy justować tekst w paragrafach
* `jezyk` / `lang` - język umowy (ma wpływ na np. nazwy miesięcy, formatowanie liczb), domyślnie `pl`
* `formatdaty` - okresla domyslny format daty dla tagu ``, domyślnie wynika z języka
* `wlini` - czy numery paragrafów i ich tytuły mają być generowane w jednej lini
* `ustep` - format numerowania ustępów, domyślnie `1.`
* `punkt` - format numerowania ustępów, domyślnie `1)`
* `podpunkt` - format numerowania ustępów, domyślnie `a)`
* `kwotaspacje` - wszystkie kwoty wyswietla ze spacją tysięczną
* `stopka` - dodaje domyślą stopkę, odpowiada dodanu do umowy pustego tagu ``
## ``
Element określający paragraf umowy
parametry
* `warunek` - czy generaować paragraf, domyślnie `true`
* `tytul` - tytuł paragrafu
* `nazwa` - nazwa paragrafu, przydatna gdy trzeba pobrać wygenerowany numer (gdy brak nazwy mona to zrobić po tytule)
## ``
Blok wstepny umowy, przed apragrafami
## ``
Blok koncowy umowy, po paragrafach
## ``
Element określający blok tekstu
* `doprawej`/`right` - wyrównanie tekstu do prawej
* `dolewej`/`left` - wyrównanie tekstu do lewej
* `wysrodkuj`/`center` - wyśrodkowanie
```html
To jtest blok tekstu wyrównany do prawej
```
## ``
Element określający linię tekstu
```html
Witkac sp. z o.o.
Słupsk, Sienkiewicza 5a
NIP: 234234234
```
## `` / ``
Ustępy w paragrafie, numerowane po kolei w formacie `1.`
## `` / ``
Punkty w ustępie, numerowane po kolei w formacie `1)`
## `` / ``
Podpunkty w punkcie, numerowane po kolei w formacie `a)`
## ``
Pozwala umieścić przypis w takescie, domyślnie generowany jako indeks górny, treśc przypisu nie jest generowana
parametry:
* `numer` - numer przypisu
```html
To jest wyjaśnienie przypisu
```
## ``
Generuje przypisy wygenerowane tagami `Przypis`
```html
```
da taki efekt
```
-----------------------------
1) To jest wyjaśnienie przypisu
```
# ``
tag grafiki
parametry:
* `wysokosc` - wysokosc genrowanej grafiki
* `dane` - dane lub adres url grafiki, lepiej dane w formacie `data:image/jpeg;base64,/9j/4AAQ....`
* `adres` - adres url grafiki
```html
```
# `` i ``
Treśc mozna umieszac w wielu kolumnach, najczesciej w dwoch do tego sluza tagi `` i ``
parametry tagu ``
* `doprawej`/`right` - wyrównanie tekstu do prawej
* `dolewej`/`left` - wyrównanie tekstu do lewej
* `wysrodkuj`/`center` - wyśrodkowanie
* `kwota` - do prawej i formatowanie jako kwoty
* `szerokosc`/`width` - szerokość kolumny, mozna w %
```html
Umowa numer 3/45/2024
Słupsk, dnia 20.04.2024
Umowa numer 3/45/2024
Witkac sp. z o.o.
Słupsk, Sienkiewicza 5a
NIP: 234234234
```
# ``
Tabelka z obramowaniem skladajaca się z wierszy `` i kolumn ``
własciwosci tagu ``
* `naglowek` - oznacza ze kolumny są nagłowkami (generowane jako ``)
dodatkowe właściwosci tagu ``
* `colspan` - ile kolumn połaczyć w poziomie
* `rowspan` - ile kolumn połaczyć w pionie
```html
Lp
Netto
Brutto
{{ Koszt.Lp }}
{{ Koszt.Netto }}
{{ Koszt.Brutto }}
```
# Treści dynamiczne
Gdy chcemy umieścić w umowie dane z Umowy lub Oferty musimy skorzystać ze specjalnej składni ze znakami `{{` `}}`, przykładowo
```html
Umowa numer {{ Umowa.Numer }} dla {{ Oferta.NazwaFirmy }}
```
w przypadku gdy dane są uzywane w parametrach jak np. `warunek` etedy nazwe parametru nalezy poprzedzic znakiem `:`
```html
```
# Tagi specjalne
## ``
generuje treśc wewnątrz tego tagu tylko wtedy gdy `warunek` jest prawdziwy
```html
Treść generowana wyłacznie dla wielu oferentów
```
## ``
Wybiera odmianę w przypadku gdy liczba jest pojedyncza czy mnoga. W przypadku braku podania argumentu `liczba` jest pobierana z `Oferta.IloscOferentow`. Przykłady:
```html
oferenta/oferentów
oferenta/oferentów
jeden/wiele
```
## ``
Generuje tekst przekreślony, ale w przypadku gry podany zostanie warunek robi to warunkowo lub wybiera z dwóch opcji
```html
tekst
wielu/jeden
```
## ``
Oblicza numer paragrafu na podstawie jego tytułu lub nazwy (gdy podano)
```html
§ Obowiązki i uprawnienia informacyjne
§
```
## `Kwota`
Formatuje liczbę jako kwotę i dodaje `zł` chyba, ze parametr `waluta` jest ustawiony inaczej
parametry
* `waluta`
* `spacje` - dodaje spacje miedzy tysiącami (w języku polskim dopiero od 10 000)
```html
10.456
{{ Oferta.ZrodlaFinansowaniaSuma.WkladOsobowy }}
10.456
```
## ``
Zamienia na słownie złotych
parametry
* `grosze` - czy zawsze wyswietlac grosze nawet jak jest ich 0
```html
10.456
10
10
```
## ``
formatuje datę do formau wyniakącego z języka umowy, domyślnie polskiego `D.MM.YYYY`
```html
2024-04-03
{{ Oferta.DataStart }}
```
## ``
koloruje tekst na wybrany kolor, obsługiwane bezpośrednio są 3 kolory: `niebieski` `czerwony` i `zielony`
```html
To jest mój adres email daniel.jursza@witkac.pl
Kategorycznie NIE wolno !!!
BIOdegradowalne
Żółty
Jasnozielony
```
# Tagi html
## ``
pogrubienie
```html
To jest pogrubiony tekst
```
## ``
pochylenie
```html
To jest pochylony tekst
```
## ``
podkreślenie
```html
To jest podkreślony tekst
```
## ``
przekreślenie, ale lepiej uywać ``
```html
To jest przekreślony tekst
```
## ` `
przejście do nowej lini, lepiej uywać tagu ``
```html
pierwsza linia druga linia
```
# Struktury programistyczne
## warunkowe: `if` `else` `else if`
do kazego tagu mozna dodac warunek kiedy ma być generowany (dokumentacja: https://vuejs.org/guide/essentials/conditional.html)
* `v-if` - jeśli warunek jest prawdziwy to jest generowany
* `v-else` - jeśli poprzedni tag nie spełaniał warunku `v-if` to ten tag jest generowany
* `v-else-if` - jeśli porzedni tag nie spełniał warunku `v-if` a dodatkowo ten tag spełnia nowy warunek to jest generowany
```html
Jeden Oferent
Dwóch oferentów
Więcej niz dwóch oferentów
```
gdy chcemy warunkowo generować więcej tagów to mozna je polaczyc tagiem ``
```html
Jeden Oferent
{{ Oferenci[0].Nazwa }}
```
## pętle: `for`
do kadego tagu mona dodać atrybut `v-for` powodujący ze ten tag bedzie powtarzan
najczesciej uzywane do wyswietlania danych ze struktur tablicowych (dokumentacja: https://vuejs.org/guide/essentials/list)
* `v-for` - definicja petli, składnia `item in items`
```html
{{ Oferent.Nazwa }}
{{ Koszt.Lp }}
{{ Koszt.Netto }}
{{ Koszt.Brutto }}
```
podobnie jak w przypadku `v-if` mozemy więcej tagów połączyć tagiem ``
```html
{{ Koszt.Lp }}
{{ Koszt.Netto }}
{{ Koszt.Brutto }}
```
# Tagi do generowania złozonych informacji
## `Zalaczniki`
## `ListaNumerowana` - dodane na podstawie poprzedniego systemu
generuje listę numerowaną (`1.`) na postawie tablicy danych
parametry
* `tablica` - tablica
* `szablon` - szablon pojedynczego elementu (nazwy pól lub ich numery)
* `pola` - nazwy pol gdy w szablonie wystepują numery
```html
```
|