Sympis je u Lenky na notebooku ulozen ve slozce c:\sympIS. Vsechny jary (knihovny) + jar s aplikaci (c:\sympIS\sympIS-1.1.jar ). Na ploše je zástupce dávky c:\sympIS\sympis.bat, která spouští samotný program (@ start /B sympis-1.1.jar
). To je proto, aby se daly číslovat verze a odkaz na ploše pořád fungoval správně.
Dodělat do mavenu plugin, který automaticky vygeneruje spouštěcí skript (podle aktuálního čísla verze).
k 14.7.2008
Projekt | LOC | LOComm | Celkem |
AA | 4375 | 1119 | |
-OfficeDoc | -1566 | -476 | |
3452 | |||
IS | 12505 | 909 | 13419 |
16866 |
pokud bychom pocitali nejakych 40 radku na stranku, bude mit kod 422 stran!
Projekt | # tabulek | # sloupcu |
AA | 5 | 26 |
IS | 25 | 393 |
celkem | 30 | 319 |
K tomu rozběhání webových stránek (nalezení providera, porozumění struktuře webu), jejích úpravy a aktualizace.
Dále všechny návštěvy ve firmě.
- brutalni zpusob prace s okny: Main.java: 50 - pouzit JGoodies Forms layout a Validation - overit, ze Category.equals() a Category.hashCode() vyhovuji pozadavkum Hibernate - extends - smazat basic_panel a insert - smazat insert z konstrukt. a jeho pouziti - zmenit volani super() - implementovat metodu setItemProperties() - nazev + zbytek - smazat listener Celkova doba refactoringu na factory: 5.5 hod. -- zkurveny Duffy!!! Change request: * Pak mám ještě dotaz - dá se přidat k položkám v kategorii knihy kolonka rozměr ? U bibliofilií je to důležitá informace. Přišel na to Matěj..... [Az zaplati fakturu!] * Smazani kategorie -- nejprve zkontrolovat, jestli jsou v kategorii polozky. Jestli jo, tak bud zakazat nebo je prevest na defaultni kategorii. --------------------- Aukcni app: Sympis: - pridat ke kategorii Knihy kolonku rozmer [viz nahore] - pridat mazani custom aukcnich kategorii [viz nahore]
V Symposionu ma lokalni anonym plna prava a mysql je v PATH. Daji se tedy poustet davky mysql < novy_majetek.sql 2> novy_majetek_chyby.txt
.
Vznikaji vyjimky, protoze jsou v DB moc kratke sloupce - je potreba je prodlouzit (popisy, nazvy, poznamky atd. na typ TEXT, kratke popisky na varchar(255)) a v aplikaci hlidat prekroceni delky. [Vetsina sloupcu je nyni prodlouzena na typ TEXT. Hibernate evidentne zadne kontroly delky nedela, aplikace nyni funguje dobre.]
Pouceni: Menit typ u x sloupcu je pruda, proto bud zavest nekolik vlastnich typu (longtext ~ text, shorttext ~ varchar(255)) nebo rovnou pocitat s nejdelsim moznym typem (text). V aplikaci by se mela provadet (automaticka) kontrola delky stringu (v ramci validace vstupu).
je potreba promitnout zmenu typu vetsiny sloupcu na TEXT v kodu (neni to kriticke, aplikace funguje, ale bylo by vhodne mit typ v DB a v kodu synchronizovany).
Dump databáze: mysqldump sympis > dump.sql
Importované soubory (předávané jako mysql < import.sql
) musí být v kódování UTF8.
Pri deinstalaci se vzdy odinstaluje i databaze – to by nemela. A naopak pri nove instalaci by mela byt zachovana stavajici db.
Nove je DB aukcni aplikace FireBird. Je potreba, aby se triggery, ktere zajistuji vkladani novych zaznamu chovaly takto:
AS BEGIN IF(NEW.id IS NULL OR NEW.id <= gen_id(gen_invoices_id,0)) THEN NEW.id = gen_id(gen_invoices_id,1); ELSE NEW.id = gen_id(gen_invoices_id, NEW.id - gen_id(gen_invoices_id,0)); END
Export katalogu do DB:
Je potřeba ručně nahradit názvy kategorií jejich kódy - vyhledat v tabulce kategorie v DB webu. Vyřešit v Sympisu - synchronizace kategorií na webu a v systému.
Public Sub ExportCatalogue() ' je potreba doplnit id aukce a zkontrolovat rozsah for cyklu ' pripadne newline v popisech polozek nevadi, naimportuji se spravne Dim nFileNum As Long Dim sOut As String Dim idAukce As String idAukce = nFileNum = FreeFile Open "d:\\katalog.sql" For Output As #nFileNum For I = 2 To ' To Rows.Count sOut = "insert into katalog (kat_cislo, id_aukce, kategorie, nazev, popis, literatura, poznamka, cena, mena) values (" sOut = sOut & Cells(I, 1).Text & ", " 'kat. cislo sOut = sOut & idAukce & ", " 'id_aukce sOut = sOut & Cells(I, 3).Text & ", " 'kategorie sOut = sOut & "'" & Cells(I, 4).Text & "'" & ", " 'nazev sOut = sOut & "'" & Cells(I, 5).Text & "'" & ", " 'popis sOut = sOut & "'" & Cells(I, 6).Text & "'" & ", " 'liter sOut = sOut & "'" & Cells(I, 7).Text & "'" & ", " 'poznamka sOut = sOut & Replace(Cells(I, 8).Text, ",-", "") & ", " 'cena sOut = sOut & "'" & Cells(I, 9).Text & "'" 'mena sOut = sOut & ");" Print #nFileNum, sOut ' End With Next I Close #nFileNum End Sub
Export vysledku aukce do DB:
' Pozor na rozsah radku a na cisla sloupcu (cislujou se od 1) ' Potreba spravne vyplnit idAukce Public Sub ExportResults() Dim myRecord As Range Dim myField As Range Dim nFileNum As Long Dim sOut As String Dim cena As String Dim idAukce As String idAukce = nFileNum = FreeFile Open "c:\\vysledky.sql" For Output As #nFileNum For I = 2 To 361 '1 To Rows.Count sOut = "update katalog set finalni_cena=<cena> where id_aukce=<id_aukce> and kat_cislo=<kat_cislo>;" cena = Cells(I, 4).Text sOut = Replace(sOut, "<cena>", cena) sOut = Replace(sOut, "<kat_cislo>", Cells(I, 1).Text) sOut = Replace(sOut, "<id_aukce>", idAukce) If (StrComp(cena, "") <> 0) Then Print #nFileNum, sOut End If Next I Close #nFileNum End Sub
Při třídění tabulky (klikem na záhlaví) se nepoužije vhodný sorter – neumí češtinu a odděluje velká a malá písmena.
Export dat z excelu do sympisu:
' Pozor na rozsah radku a na cisla sloupcu (cislujou se od 1) ' Potreba spravne vyplnit idAukce Public Sub CharacterSV() Dim myRecord As Range Dim myField As Range Dim nFileNum As Long Dim sOut As String Dim sOut2 As String Dim cena As String Dim idAukce As String nFileNum = FreeFile Open "c:\\dokumenty.sql" For Output As #nFileNum Print #nFileNum, "SET AUTOCOMMIT=0;" Print #nFileNum, "START TRANSACTION;" Print #nFileNum, "USE sympis;" kategorie = "2" aukcniKategorie = "2" For I = 2 To 45 '1 To Rows.Count sOut = "INSERT INTO basic_items (uuid, nazev, poznamka, top, datum_nabyti, evidencni_cislo, category_id, auction_category_id) VALUES (UUID(), <nazev>, <poznamka>, <top>, <datum_nabyti>, <evidencni_cislo>, <kategorie>, <aukcni_kategorie>);" sOut2 = "INSERT INTO category_dokumenty (id, datum, misto, rozmer, pecet, technika, obsah, pocet_stran) VALUES (LAST_INSERT_ID(), <datum>, <misto>, <rozmer>, <pecet>, <technika>, <obsah>, <pocet_stran>);" sOut = Replace(sOut, "<nazev>", QuoteString(Cells(I, 1))) sOut = Replace(sOut, "<poznamka>", QuoteString(Cells(I, 12))) sOut = Replace(sOut, "<top>", QuoteString(Cells(I, 2))) sOut = Replace(sOut, "<datum_nabyti>", QuoteString(Format(Cells(I, 3), "yyyy-mm-dd"))) sOut = Replace(sOut, "<evidencni_cislo>", QuoteString(Cells(I, 4))) sOut = Replace(sOut, "<kategorie>", kategorie) sOut = Replace(sOut, "<aukcni_kategorie>", aukcniKategorie) sOut2 = Replace(sOut2, "<datum>", QuoteString(Cells(I, 5))) sOut2 = Replace(sOut2, "<misto>", QuoteString(Cells(I, 6))) sOut2 = Replace(sOut2, "<rozmer>", QuoteString(Cells(I, 7))) sOut2 = Replace(sOut2, "<pecet>", QuoteString(Cells(I, 8))) sOut2 = Replace(sOut2, "<technika>", QuoteString(Cells(I, 9))) sOut2 = Replace(sOut2, "<obsah>", QuoteString(Cells(I, 10))) sOut2 = Replace(sOut2, "<pocet_stran>", QuoteString(Cells(I, 11))) Print #nFileNum, sOut Print #nFileNum, sOut2 Next I Print #nFileNum, "COMMIT;" Close #nFileNum End Sub Public Function QuoteString(s As String) As String If (StrComp(s, "") <> 0) Then QuoteString = "'" + s + "'" Else QuoteString = "NULL" End If End Function
Skript na vycisteni databaze (zustanou jen kategorie a aukcni kategorie)
USE sympis; TRUNCATE `auction`; TRUNCATE `auction_item`; TRUNCATE `authors`; TRUNCATE `basic_items`; TRUNCATE `category_autogramy`; TRUNCATE `category_dokumenty`; TRUNCATE `category_fotografie`; TRUNCATE `category_grafika`; TRUNCATE `category_hodiny`; TRUNCATE `category_keramika`; TRUNCATE `category_knihy`; TRUNCATE `category_kresba`; TRUNCATE `category_mapy`; TRUNCATE `category_nabytek`; TRUNCATE `category_obrazy`; TRUNCATE `category_plastika`; TRUNCATE `category_sklo`; TRUNCATE `category_sperky`; TRUNCATE `category_stribro`; TRUNCATE `category_uzite_predmety`; TRUNCATE `category_zbrane`; TRUNCATE `collection`; TRUNCATE `price_history`;