Isearve analyys

From ICO wiki
Jump to navigationJump to search

Ülevaade

IseArve võimaldab väiksematel ettevõtetel lihtsa vaevaga kujundada ja hallata enda arvemajandust. Lisaks haldmisele saab kasutaja arved väljastada ka kena kujundusega PDF või e-arve XML formaadis.

Funktsionaalsus

Esialgne funktsionaalsus, mida arendada soovime, on järgnev:

  • Ülevaade eelmistest arvetest koos filtritega: partner, kuupäevad jne.
  • Alustab uue arve loomist nullist või võtab aluseks mõne eelmise arve.
  • Salvestab andmebaasi uue arve.
  • Genereerib valitud arvest PDFi või e-arve XMLi.
  • Arvete tasumise ülevaade: saab käsitsi märkida tasutuks
  • Võib sisestada uue partneri.

Kujundus

Meile tundub, et esialgse funktsionaalsuse saavutamiseks on parim lahendus ehitada WPF tehnoloogia abil programm, mis koosneb viiest eraldi vormist. Peale rakenduse käivitamist avaneb esimene Main View, kus kasutaja näeb ülevaadet oma eelnevatest sisestatud arvetest, vt joonis.

Main View

Võimalus on tabelis olevaid arveid erinevate omadust järgi järjestada. Iga arve rea taga on neli nuppu: PDFi salvestamiseks, XMLi salvestamiseks, uue arve loomiseks antud rea näitel ning viimasena kustutamise nupp. Topeltklikk real avab arve uues aknas. Täiesti uue arve saab lisada „Lisa arve“ nupu abil. Main View aken pakub eraldi sakis ka ülevaadet partneritest, vt joonis.

Main View

See on loetud teiseks Viewks. Akna kujundus on sarnane Arvete sakile, kuid sisu partnerite tabelis on loomulikult erinev. Iga partneri juures olevad nupud võimaldavad antud partnerile uue arve alustamist või tema kustutamist andmebaasist. Topeltklikk partneril avab Partneri vaate, kus saab tema andmeid muuta.

Kolmas peamine View on üksiku arve loomise aken, vt joonis.

Main View

See aken avaneb eraldi vaatena, pakkudes kasutajale nii võimalust teha korraga tööd mitme arve või partneriga, uurida samaaegselt varasemate arvete ülevaadet vms. Arve vaate kujundus ei ole väga erinev tavalise arve kujundusest: vasakul üleval Ostja andmed ja aadress, paremal üleval arve number, viitenumber, koostamise kuupäev, makse kuupäev ning maksetähtaeg päevades. Ostja andmed on eeltäidetud, kui arve täitmist alustati partnerite ülevaates. Kui uus arve loodi mõnda vana arvet kopeerides, siis on arve täielikult täidetud, kuid kasutaja saab vastavalt antud tehingu sisule arvet muuta ja seejärel uuena salvestada. Arve number luuakse programmi poolt, kuid kasutajal on võimalik seda muuta. Kui kasutaja hakkab sisestama täiesti uut arvet ja alustab selle täitmist Arve saaja väljast, siis pakutakse talle sisestamiseks valikut olemasolevatest partneritest. Kui sobilik partner on nimekirjas olemas, pruugib selle peale klikata ning arve saaja väljad täidetakse olemasoleva info põhjal. Kui sisestatakse täiesti uus ostja, keda varasemalt baasist ei leitud, salvestatakse see sinna koos arvega.

Arve peamine sisu on kaupade või teenuste nimekiri koos koguste ja hindadega, millest kujuneb arve summa kokku. Kasutaja sisestab toote või teenuse nimetuse, koguse, mõõtühiku, ühiku hinna, allahindluse. Võib korrigeerida eelnevalt sisestatud käibemaksumäära. Seejärel arvutatakse arvele välja käibemaksu summa ning lõpuks maksumus kokku. Kauba rea all on uue rea lisamise nupp. Iga rea lõpus on nupp rea kusutamiseks.

Kui tooted on sisestatud, arvutatakse välja arve kogusumma. Arve jaluses on müüja andmed ostjale ülekande sooritamiseks.

Arve akna ülemises ääres on neli nuppu antud arve salvestamiseks, kopeerimiseks (avab kõrvale uue akna sama ostja ja tootenimekirjaga) ning eksportimiseks.

Neljas View on partneri lisamiseks. See on lihtne View tekstiväljadega, mis küsivad ostja nime, registrinumbrit või isikukoodi, KMKR numbrit ning erinevaid aadressi väljasid. Salvestamiseks on nupp vormi all. Vt kujundus jooniselt.

Main View

Viies View on kättesaadav Main View alumisel serval oleva nupu „Minu andmed“ kaudu. Kasutaja peaks seal olevad väljad täitma peale programmi installeerimist. Väljad, mida vaja täita, on järgnevad: Müüja nimi, Müüja registrikood, KMKR number, MTR tegevusloa number, aadressi väljad, telefoninumber, veebiaadress, E-posti aadress ning erinevate pankade kontode numbrid.

Väljakutsed

Olles läbinud harjutustunni, kus C# WPFiga tutvust tegime, tundub erinevate vormide loomine ja andmetega sidumine olevat peale väikest nokitsemist ilmelt täiesti tehtav. Huvitavaks võib minna PDFi ja XML-i genereerimisega. Loodetavasti on mõlema jaoks tööriistasid olemas. Kuna antud rakendus peab andmeid järgmiseks kasutuskorraks salvestama, tuleb luua ka väike andmebaas. Ilmselt ei saa selle rakendamine ka probleemiks.

Andbemaasi skeem

Programm peab salvestama kogu sellesse sisestatud info relatsioonilisse andmebaasi. Andmebaas peab koosnema vähemalt neljast tabelist, mille väikseim võimalik väljade arv on ära toodud allolevates loenites. Funktsionaalsuse täiendamisel arenduse käigus võib esialgne skeem muutuda. Edasistes arendustes võib mõelda kontaktide eraldi tabelisse viimist, sest hetkel on need väljad kasutaja ja kliendi puhul sama sisuga. Praegune andmebaas võimaldab hästi tööd teha ainult ühel kasutajal ja see on nii antud skoobis ka planeeritud, kuid programmi arenedes oleks vaja luua ka eraldi ettevõtte ja kasutaja tabel, kui etevõttes teeb arvetega tööd mitu inimest.

user - programmi kasutaja(te) tabel

  • user_id - programmi kasutaja id
  • company_name - müüja ettevõtte nimi
  • addr_apartment - korteri number
  • addr_house - maja number
  • addr_street - tänav
  • addr_settlement - küla, alev
  • addr_city - linn või maakond
  • addr_postcode - postiindeks
  • addr_country - riik
  • telephone - telefon
  • email - e-posti aadress
  • website - veebileht
  • account_seb - SEB pangakonto
  • account_swedbank - Swedbanki pangakonto
  • account_nordea - Norde pangakonto
  • account_lhv - LHV pangakonto

invoice - arvete tabel

  • inv_id - arve id baasis
  • inv_number - arve number
  • user_id - lisaja id
  • ref_number - viitenumber
  • cust_id - kliendi id
  • amount - arve summa kokku
  • inv_dt - arve loomise timestamp
  • due_dt - maksetähtaeg
  • due_days - maksetähtaeg päevades

sale - müüdud kaupade ja teenuste tabel

  • row_id - rea id
  • product_name - toote või teenuse nimetus
  • inv_id - arve id
  • quantity - kogus
  • unit - ühik
  • price - ühiku hind
  • discount - allahindlusmäär
  • vat_rate - käibemaks

customer - klientide andmebaas

  • cust_id - kliendi andmebaasi id
  • name - kliendi nimi
  • reg_code - registri- või isikiukood
  • kmkr_code - KMKR kood
  • addr_apartment - korteri number
  • addr_house - maja number
  • addr_street - tänav
  • addr_settlement - küla, alev
  • addr_city - linn või maakond
  • addr_postcode - postiindeks
  • addr_country - riik
  • telephone - telefon
  • email - e-posti aadress

Nice-to-have funktsionaalsus

Analüüsi käigus tekkis meil palju mõtteid, kuidas enda esialgset skoopi laiendada, kuid kuan semestri maht on piiratud, olime sunnitud paljud huvitavad mõtted üle tõstma antud alampealkirja alla. Erinevad arvete templiidid ja keele valimine

  • Kasutajate haldus
  • Võimalik importida ja eksportida arvete nimekiri.
  • Võimalik importida ja eksportida partnerite nimekiri.
  • Arve saadetakse e-mailiga otse kliendile.
  • Ümber ehitada klient-server rakenduseks veidi suuremate ettevõtete tarvis, kus arvete koostajaid on rohkem kui üks