Commit Graph

271 Commits (cd6a6cf5a6d49ab0ad847c5a112bfc38c0a01838)

Author SHA1 Message Date
František Přibyl eaf37147dc Pokud je v položkovém gridu vybraná některá z položek a zmáčkne se
"Smazat" u jiné položky, smaže se položka, na které tlačítko leží.

closes #159
11 years ago
František Přibyl 13f35611fd Když se přidává položka požadavku (skupina materiálu/služby) přes combo,
tak se přenese i měrná jednotka.
Měrnou jednotku lze změnit.

closes #157
11 years ago
Josef Rokos 412db2a394 Opravena aktivace tlačítka "Hledat v ARESu" v agendě Dodavatelé.
closes #161
11 years ago
František Přibyl b932d390ca Upraveny vlastnosti dialogů pro výběr skupin materiálu a služeb.
Okno má velikost vždy 95 % velikosti.

closes #156
11 years ago
František Přibyl 882993ef17 Ag. Vytvořené objednávky
• vložen kód pro barevné rozlišení Listitem v objednávkách pomocí stylů

closes #160
11 years ago
František Přibyl a10abe6961 V celém projektu nahrazeny výskyty sort="auto(*)", kde byly objekty typu
User a Workgroup.

closes #155
11 years ago
František Přibyl 18920701a7 Fakturovaná částka na objednávkách se nyní počítá z položek.
closes #152, #154
11 years ago
František Přibyl 5b380386bd Objednávku lze nyní označit jako objednanou.
Na schválené položky se propíš číslo objednávky.
Všechny objednávky, které schválené a objednané položky obsahují již
není možno znovu objednat.
Objednávky mazat nelze, takže mazání dokladů neřešíme.

closes #153
11 years ago
Josef Rokos 3b4509d0a7 Přepracovaná validace v agendě Dodavatelé.
closes #76
11 years ago
Josef Rokos 8fbfb51c0a U sestavy "Objednávka" lze nyní nastavit, jestli se bude tisknout s
cenami, nebo bez cen.
closes #151
11 years ago
František Přibyl 6e62ea2070 Administrátor nyní může na formuláři objednávky upravovat množství,
jednotkovou cenu nebo celkovou cenu položky. Změnou hodnoty se vyvolá
přepočet částky ve formuláři.
Pro ostatní jsou položky objednávky pouze pro čtení.

closes #150
11 years ago
František Přibyl a06b2cbb14 Do objednávek přidána suma za fakturu.
closes #152
11 years ago
František Přibyl 49f921847d Agenda Vytvořené objednávky
Přidány záložky Doklady a Položky.

closes #148
11 years ago
František Přibyl f4bff37729 Položky hlavního menu podmíněny právama na jednotlivé agendy.
Povel kontextové nápovědy podmíněn na práva na objednávky.

Proč ale stále skáče 403 u uživatele user1, který má práva na schválené
požadavky netuším.

refs #147
11 years ago
František Přibyl e624c2d074 Nastavení / Administrace / Střediska / komise
• přeformátován ZUL soubor, % změněny na hflex/vflex

closes #145
11 years ago
Josef Rokos b352a24255 Upraveno formátování data a času v panelu stavu schválení požadavku. 11 years ago
František Přibyl d3881db081 Při mazání položek se aktualizuje grid okamžitě.
Výpočty položek a celkové částky přesunuty do RequirementService.
BigDecimal converter sjednocen s bází.

closes #146
11 years ago
Josef Rokos dceec747b7 Upraveno zarovnání prvků na sestavě objednávky.
refs #136
11 years ago
Josef Rokos 3f51a323bd Zprovozněna sestava objednávky. Umožněn upload souboru s razítkem, které
se zobrazuje na sestavě objednávky (Globalní nastavení - Požadavky -
Razítko).
closes #136
11 years ago
František Přibyl 5421486189 Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/java/info/bukova/isspst/services/approved/OrderServiceImpl.java
11 years ago
František Přibyl 4f9db2bd51 Přidána agenda objednávek.
closes #143
11 years ago
Josef Rokos c162c363ce Opravena chyba v zakládání požadavků- pokud se zakládal požadavek, který
by překročil limit a následně se upravila částka, aby šel uložit, došlo
k rozjetí pořadí schvalovatelů.
refs #137
11 years ago
Josef Rokos d7e02f4ccc Implementováno hlídání limitů pro komise. Požadavek, který by překročíl
limit komise nelze uložit. 
V globálním nastavení byl rozchozen checkbox "Povolit zadávání
požadavků".
closes #137
11 years ago
Josef Rokos 81ff039da8 Další oprava sestavy objednávky.
refs #136
11 years ago
Josef Rokos 35537f7e8b Oprava sestavy objednávky.
refs #136
11 years ago
Josef Rokos a8af4a3a8c Přidána sestava objednávky. Zatím neotestováno.
refs #136
11 years ago
Josef Rokos 4881d69162 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
Josef Rokos 6b547b9583 Přidáno barevné rozlišení stavu požadavků na nákupy materiálu a služeb. 11 years ago
František Přibyl ab5ed12772 Požadavky na materiály a služby
- do záložek [Má střediska], [Mé komise] a [Vše] přidán sloupec
[Vytvořil]
- opraveno plnění a filtrování středisek na všech záložkách
- služba userService přesunuta do třídy RequirementSubpage

closes #144
11 years ago
František Přibyl 60a87e5d52 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl 0f8974f9cb Vytvořen formulář pro generování objednávky.
closes #142
11 years ago
Josef Rokos b89519e3ca Přidána podpora pro výběr záznamu v gridu přes ID předané jako parametr
"select" v URL.
11 years ago
Josef Rokos e16786eda4 Opravena editace globálního nastavení- pokud uživatel nemá práva k
editaci, vidí nastavení jako read only. 
closes #141
11 years ago
František Přibyl 1367dc9cdf Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl 73c3ce7180 Přidány sloupce pro vlastníky, střediska a komise.
Přidáno kontextové menu pro budoucí vytváření objednávek.

refs #139
11 years ago
Josef Rokos 544d736719 Přídány datové třídy, DAO a servisní třída pro objednávky. Přidána
číselná řada pro objednávky.
refs #136
11 years ago
Josef Rokos 0a98db893a Vylepšený dialog pro odeslání e-mailu. Adresa "Od" se nastavuje podle
přihlášeného uživatele. Přidáno logování chyb při odesílání e-mailu.
11 years ago
Josef Rokos 78cf41d2a0 Do AbstractService bylo přidáno DAO bez typového parametru pro obecné
dotazování databáze.
11 years ago
František Přibyl 6835dd2f7c Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl 9ff188caf0 Vložena agenda se schválenými položkami požadavků
closes #139
11 years ago
Josef Rokos ae31914b9a Přidána podpora pro přihlašování proti Active Directory, loginem shodným
s uživatelem a heslem do windows domény. Původní LDAP přihlašování
funguje proti obecnému LDAP serveu- bind na LDAP dělá přes CN uživatele.
11 years ago
Josef Rokos f05318b9ba Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/java/info/bukova/isspst/services/requirement/RequirementService.java
	src/main/java/info/bukova/isspst/services/requirement/RequirementServiceImpl.java
11 years ago
Josef Rokos 750ef2b153 Přidána metoda pro select položek schválených požadavků, které má
přihlášený uživatel právo zobrazit.
Přidány komentáře do tříd pro vyhodnocování přístupových práv.
refs #136
11 years ago
František Přibyl 7748dacd2a Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl 820ec3a042 Skupiny materiálu a služeb lze nyní zadávat pomocí kódu.
Položku lze přidat bez výběru materiálu a služeb.
Upraveny styly.

closes #138
11 years ago
Josef Rokos e93a99aa25 Umožněno zadání limitu nákupů u komisí.
Příprava na kontrolu limitu při přidávání požadavku.
ZK framework povýšen na verzi 7.0.2
refs #137
11 years ago
Josef Rokos d70e60ca61 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
Josef Rokos 3a8954a909 Formulář v agendě uživatelů byl rozšířen o tab pro zadání adresy
uživatele. Na sestavy žádosti o služební cestu a vyúčtování služební
cesty byla přidána adresa. 
closes #128
11 years ago
František Přibyl ff053f7fb2 Doplněn do položek požadavků textový popisek.
closes #135
11 years ago
Josef Rokos 74586f9820 Do sestav žádosti o služební cestu a vyúčtování vstupuje podpis
uživatele a podpis schvalovatele. 
closes #132
11 years ago
Josef Rokos d108f4a070 Umožněn upload obrázku podpisu uživatele. Menu Nastavení -> Uživatelské
nastavení.
refs #132
11 years ago
Josef Rokos 5fd9f1844b Uživatelé rozšíření o ukládání uživatelského nastavení. Přidáno
oprávnění pro editaci vlastního záznamu uživatele. 
refs #132
11 years ago
František Přibyl aa8a0ebd2a Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl 3fdfa76798 V případě zadání duplicitní hodnoty se zpracují potřebné výjimky a
zobrazí se v messageboxu hlášení o důvodu chyby.

closes #127
11 years ago
Josef Rokos 60accd156c Umožněno nastavení nabízených středisek k typům požadavků.
refs #130
11 years ago
Josef Rokos b1664ca656 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
Josef Rokos 840feae566 Přidáno oprávnění pro úpravy neschválených požadavků.
refs #129
11 years ago
František Přibyl a22be88e47 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl f6feb001a7 Odděleny agendy pro Materiál a Služby
closes #118
11 years ago
Josef Rokos b92c0ddd35 Refactor vyhodnocení přístupových práv.
refs #129
11 years ago
Josef Rokos 9f8eba2cb4 Oprevaná chyba v metodě pro získání rolí s určitým oprávněním. Nešly
otevřít Procesy schválení.
11 years ago
Josef Rokos 803bebeb88 Rozděleny agendy požadavků na nákupy a požadavků na služební cesty.
Práva se teď nastavují pro každou agendu zvlášť.
11 years ago
Josef Rokos 0c7c3af472 Upraveno zobrazení oken ve zbytku agend - grid se roztahuje na výšku
obrazovky.
11 years ago
Josef Rokos c0b4a51c44 K požadavku na služební cestu byla přidána možnost "Požadovat zálohu".
Upraven výpočet vyúčtování- odečítá se požadovaná záloha.
11 years ago
Josef Rokos 17deee8b21 Integrace s google apps- přihlašování účtem google. 11 years ago
František Přibyl a684351c9d Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/webapp/app/template.zhtml
11 years ago
František Přibyl 87bccd6987 Rozpracováno oddělení materiálu a servisu do 2 agend. 11 years ago
Josef Rokos ecd065eb51 Přidána sestava vyúčtování služební cesty.
closes #122
11 years ago
Josef Rokos 23d2eb58f6 Do definice pracovních skupin byl přidán vyhledávací edit. Doplněna
kontrola členství v komisích/střediscích. 
refs #123 
closes #119
11 years ago
Josef Rokos dc94267f6a Přidána sestava pro žádost o služební cestu.
refs #122
11 years ago
Josef Rokos 954682fb5f Opravená chyba v generování pořadí schvalovatelů. Opraveno refreshování
gridů v požadavcích na nákup.
11 years ago
Josef Rokos 957213e54b Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/webapp/main/trips/bill/tripBillGrid.zul
11 years ago
Josef Rokos 8c26d3e430 Implementováno vyúčtování služební cesty.
closes #112
11 years ago
František Přibyl 07d78ba3f1 Sjednoceny požadavky na objednávky s požadavky na cestovní příkaz.
closes #115
11 years ago
František Přibyl 50ee0215c0 Požadavky na objednávky přepracovány do záložek.
Funkčnost sjednocena s požadavky na cestovní příkaz.

closes #109
11 years ago
Josef Rokos c48fb65949 Kostra agendy "Cestovní příkazy" - vyúčtování služebních cest.
refs #112
11 years ago
Josef Rokos 02a514ba87 Dialog číselných řed může otevřít pouze admin. 11 years ago
Josef Rokos 7f1f214b5d Do globálního nastavení byla přidaná sekce pro nastavení cestovních
náhrad. 
refs #112
11 years ago
Josef Rokos 09a6864710 Při změně stavu požadavku se odešle e-mail dalšímu schvalovateli v
pořadí, případně uživateli, který zadal požadavek. 
closes #114
11 years ago
František Přibyl 65e42f6d43 Stylování vzhledu. 11 years ago
František Přibyl 0287c65d9c Přepracovány styly pro celkový vzhled okna, nastavení rolování gridu.
BigDecimalConverter přesunut do báze...
Odstraněna stará cesta k původním požadavkům.
Nové požadavky připraveny do tabů.
11 years ago
Josef Rokos 1829a5c0db Při zadání špatného loginu nebo hesla se objeví chybová hláška v
přihlašovacím okně.
11 years ago
Josef Rokos a32451167d Optimalizace načítání dat z databáze. Joinované kolekce lze označit jako
lazy. Do servisní vrstvy se pak implementuje transakční metoda s anotací
LazyLoader, která donačte kolekci.
11 years ago
Josef Rokos f2d9576a3f Do požadavku na služební cestu byla přidána chybějící pole,
implementovaná validace formuláře.
Do BaseValidator byly přidány metody na obecnou validaci null/empty.
Do ListViewModel přidány metody pro dotažení lazy loadovaných dat.
closes #108
11 years ago
Josef Rokos b71f3a9bef Do globálního nastavení byly přidány dopravní prostředky.
refs #101
11 years ago
Josef Rokos 3c42c1be35 Pokud je role použitá ve středisku nebo komisi, nebo pokud je v procesu
schválení, nelze odškrtnout checkbox "Funkce ve středisku/komisi". Kde
je použito se objeví v popup okně po najetí myši na checkbox.
11 years ago
Josef Rokos 365290f856 K požadavku se ukládá aktuální nastavení procesu schválení, takže změna
nastavení neovlivní existující požadavky. 
refs #108 
refs #100
11 years ago
Josef Rokos 773ba7c4a8 Filtrování požadavků přihlášeného uživatele. Refresh tabů v požadavcích
na služební cesty. 
refs #108 
refs #100
11 years ago
Josef Rokos c7d1c72ce0 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
Josef Rokos a8020789be Přidáno nastavení adres a bankovního spojení do globálního nastavení.
closes #101
11 years ago
František Přibyl 568bed6f9b Přepracováno vertikální menu na horizontální.
closes #110
11 years ago
František Přibyl dd4b7a2166 Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/java/info/bukova/isspst/services/requirement/RequirementServiceImpl.java
11 years ago
František Přibyl 1acb724c3f Nastavení typu požadavku.
Oprava formu Uživatele.
11 years ago
Josef Rokos 05704827a4 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
Josef Rokos 1c8b294f36 Společné báze pro práci s požadavky- rozpracovaná verze. 11 years ago
František Přibyl 0041a1744b Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/java/info/bukova/isspst/data/Requirement.java
11 years ago
František Přibyl 0cd4e039f8 Implementovány požadavky
closes #100
11 years ago
Josef Rokos eade2dd793 Přidaná agenda pro schvalování služebních cest. Interface pro servisní
třídy požadavků (zatím prázdný). 
refs #108 
refs #100
11 years ago
Josef Rokos 6716842df2 Přidána bázová třída pro požadavky. Třída LimitVM přesunuta do package
info.bukova.isspst.ui.requirement. Změněno načítání ownedBy a modifiedBy
ve Workgroup na lazy.
refs #100
11 years ago
František Přibyl 51a0de2d53 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl b633309b74 Pro org.codehaus.castor přidána vazba na xercesImpl.
Implicitní plnění měrných jednotek.
Příprava položek pro nové požadavky.
Logování událostí probíhá od úrovně warning.
Logování hibernate dotazů deaktivováno.

refs #100
11 years ago
Josef Rokos 7519f4d04b Opraveny chyby v agendě Střediska/komise.
refs #97
11 years ago
Josef Rokos 8c204e0d7a Do agendy Budovy byl přidán položkový grid pro definici místností.
closes #95
11 years ago
Josef Rokos dd369c5186 V agendě Střediska se zobrazují funkce (Příkazce, Správce rozpočtu...).
refs #97
11 years ago
Josef Rokos 21ebddc4ef Opravená definice práv pro agendy Uživatelé a Práva 11 years ago
Josef Rokos c9bd62dc90 Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/webapp/WEB-INF/spring/mail-services.xml
11 years ago
František Přibyl 54edc0c4cf Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/java/info/bukova/isspst/AppInitListener.java
	src/main/java/info/bukova/isspst/Constants.java
11 years ago
Josef Rokos a04de6d928 Implementovaný parser na šablony e-mailů. Rozchozeny unit testy. 11 years ago
František Přibyl 8bcfc04c15 Implementováno zadávání hlaviček Požadavků.
Implementována číselná řada.
Přidány metody pro porovnání String a Date pro filtry.
Upraveno logování aplikace - loguje se až úroveň warning.

refs #100
11 years ago
Josef Rokos 9905cc769d Okno globálního nastavení.
refs #101
11 years ago
Josef Rokos 42e0babcaa Odesílání mailů se spouští asynchronně, takže se neblokuje UI. 11 years ago
Josef Rokos 26f02b97fe Nastavení prefixů číselných řad.
refs #101
11 years ago
Josef Rokos 1283fe627d Formulář a třídy pro odesílání e-mailů. Implementováno odesílání PDF
sestav mailem.
11 years ago
Josef Rokos e26f56fcb9 V procesech schválení lze zadat limit pro schválení k dané roli.
closes #107
11 years ago
Josef Rokos a637a077c0 Vytvořená agenda Služby. Servisní třídy agendy Materiál byly přesunuty
do balíku reqsubjects. 
closes #106
11 years ago
Josef Rokos 35131d555d Do agendy materiál byla přidaná měrná jednotka.
refs #94
11 years ago
František Přibyl a074dd376d Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/java/info/bukova/isspst/AppInitListener.java
	src/main/resources/hibernate.cfg.xml
11 years ago
František Přibyl 177e29fe23 Vložen bázový kód pro agendu Požadavky / Aktivní.
refs #100
11 years ago
Josef Rokos 1e3a669344 Agenda na definici procesu schválení požadavků.
closes #102
11 years ago
Josef Rokos 319b79b776 Opraven timeout připojení k databázi.
refs #104
11 years ago
František Přibyl a834b91091 V agendě uživatelů aplikována validace formuláře.
Closes #98
11 years ago
Josef Rokos 4a55467e1e Přípraveny práva pro agendu "Požadavky". Upraven PermissionEvaluator-
kontrola práv na agendách přemístěna do privátní metody. Opravena
notifikace změny property ableToDelete. 
refs #100
11 years ago
Josef Rokos 4d3f60c664 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
Josef Rokos b1d27b085a Přidaná informační plocha. Ke členům komisí a středisek byla přidaná
vazba rodiče. Vyhodnocování příslušnosti ke středisku/komisi.
11 years ago
František Přibyl d371cab545 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl 142b82a8de Po spuštění se adminovi doplní automaticky plná práva na všechny agendy.
Role admina nejde změnit.
Uživatel admin nejde smazat.

closes #99: Editace uživatele admin 

Task-Url: https://git.bukova.info/redmine/issues/show/99
11 years ago
Josef Rokos 53d5d262b1 Doladěno UI agendy na definici středisek a komisí.
closes #97
11 years ago
Josef Rokos bfb0782674 Přesun ZUL souborů agendy Pracovní skupiny.
refs #97
11 years ago
Josef Rokos 9935a77bfb Zobrazovaní středisek a pracovních skupin ve stromové struktuře.
refs #97
11 years ago
František Přibyl 6dcc93ee83 Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/webapp/app/navigation.zul
11 years ago
František Přibyl 2547134420 Přepracována struktura hlavního menu. 11 years ago
Josef Rokos edbb106320 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
Josef Rokos af1cf69958 Nová agenda na definici středisek a pracovních skupin.
refs #97
11 years ago
František Přibyl 1354d8b9ed Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl af7f148f33 Sjednoceno načítání názvu entity pro hibernate.
Změněn uživatel pro přístup do DB z admin na isspt.
11 years ago
Josef Rokos 607139d790 Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts:
	src/main/java/info/bukova/isspst/Constants.java
	src/main/resources/ValidationMessages.properties
	src/main/resources/hibernate.cfg.xml
11 years ago
Josef Rokos 8db25ecdda Přidaná agenda materiál.
closes #94
11 years ago
František Přibyl 4451850603 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl a310a438cb Vytvořená agenda Měrné jednotky.
closes #90
11 years ago
Josef Rokos e304e25872 Umožněn tisk sestavy aktuálně vybraného záznamu. Ošetření možných
výjimek při generování sestavy. 
closes #89
11 years ago
Josef Rokos 452ea9c698 Když není vybraná sestava, tak je zakázané tlačítko "Tisk". Sjednocení
vzhledu dialogů tisku. 
closes #82
11 years ago
Josef Rokos cfb7e43173 Podpora pro sestavy definované přes JRXML soubory. Dynamické načítání
zul souborů pro nastavení sestavy.
closes #81
11 years ago
Josef Rokos b4a86ea5c2 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
František Přibyl 0ea29ce50e Texttové sloupce volají třídění s klíčovým slovem "czech", ostatní je
"auto".

closes #84
11 years ago
Josef Rokos 4e5ae2bbfa Načítání názvů pro sestavy z properties souboru.
Properties soubory byly přesunuty do WEB-INF/locales, přesunuty lang
addony do WEB-INF/lang-addons. 
closes #79
11 years ago
Josef Rokos c42913ed9b Při ukládání duplicitní hodnoty do unikátního klíče se vypíše do
chybového dialogu důvod a záznam se neobjeví v gridu. 
Hlášky do messageboxů jsou načítány ze zk-label.properties. 
closes #75
11 years ago
František Přibyl 1c19625ffb Implementováno a sjednoceno řazení záznamů podle českých znaků.
Změnit v databázi collation z ut8_czech_ci na latin2_czech_cs!!!
Sjednocen vzhled gridů ve všech agendách.

closes #83
11 years ago
Josef Rokos 0f9d1baf94 Merge branch 'master' of https://git.bukova.info/repos/git/isspst 11 years ago
Josef Rokos 25a4d2dfb7 Podpora tisku. Implementace tisku dynamických sestav. 11 years ago
František Přibyl f299b8604c Sjednoceny hlavičky pro filtrování záznamů.
Header přeformátován a texty načítány z labels.

closes #77
11 years ago