Toonbank kassa voor gemeentebesturen
Projectdossier Project aangeboden door Tom Meul Pieter Scheldeman Voor het behalen van de graad van Bachelor in de Multimedia en Communicatie Technologie Academiejaar 2006-2007
Too onban nk kassa vo oor gemeeenteb besturren
Prrojectdo ossie er Project aaangeboden door Tom Meul Pieter Sch heldeman Voor het behalen van n de graad vvan Bachelo or in de Multimed dia en Comm municatie Technologie Academie ejaar 2006-2 2007
4
Toonbank kassa voor gemeentebesturen
1 1. V
OORWOORD
Drie maanden stage lopen in een bedrijf om ervaring te verwerven en een realistisch beeld te krijgen van onze toekomstige loopbaan. Binnen dit kader hebben we een reëel project uitgewerkt in opdracht van Dhr. Luc Deprez, zaakvoerder van een informaticabedrijf te Kortrijk, met name D.I.S.C. bvba. Dit project was een perfecte aanvulling van onze opleiding. Zowel office automation, netwerken, PC-technologie, webtechnologie en multimedia kwamen ruimschoots aan bod. We danken dhr. Luc Deprez omdat hij ons door heel de stage goed heeft ondersteund. Ook willen we dhr. Jef Daels voor de nodige opvolging van ons eindwerk bedanken. Verder bedanken we ook onze vrienden en familie omdat die ons in deze stageperiode gesteund hebben.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
2 2. I
NHOUDSOPGAVE
1.
Voorwoord ......................................................................................................................... 4
2.
Inhoudsopgave ................................................................................................................... 5
3.
Inleiding .............................................................................................................................. 8
4.
Projectsamenvatting .......................................................................................................... 9
5.
Projectfiche ...................................................................................................................... 10
6.
Voorstelling van D.I.S.C. bvba .......................................................................................... 13
7.
6.1
Korte voorstelling ...................................................................................................... 13
6.2
Historiek van het bedrijf ............................................................................................ 14
6.3
Contactgegevens ....................................................................................................... 16
Analyses en schema’s ....................................................................................................... 17 7.1
Doelstelling met beschrijving van de behoeften ....................................................... 17
7.2
Algemeen schematisch overzicht .............................................................................. 18
7.2.1
Geografisch overzicht ......................................................................................... 18
7.2.2
Technisch overzicht ............................................................................................ 19
7.2.3
Databasestructuur gemeenten .......................................................................... 20
7.2.4
Uitleg tabellen gemeente ................................................................................... 21
7.2.5
Databasestructuur horeca.................................................................................. 23
7.2.6
Uitleg tabellen horeca ........................................................................................ 24
7.2.7
Uitleg extra tabel “parameters” ......................................................................... 25
7.3
Functionaliteiten........................................................................................................ 26
7.3.1
Initiële start van het programma ....................................................................... 26
7.3.2
Initiële start van het programma (technisch) .................................................... 29
7.3.3
Bedrijfsgegevens invullen................................................................................... 31
7.3.4
Bedrijfsgegevens invullen (technisch) ................................................................ 32
7.3.5
Het loginscherm ................................................................................................. 33
7.3.6
Het loginscherm (technisch) .............................................................................. 36
7.3.7
Administrator ..................................................................................................... 37
7.3.8
Beheer klanten ................................................................................................... 40
7.3.9
Beheer klanten (technisch) ................................................................................ 42
7.3.10 Beheer gebruikers .............................................................................................. 43 7.3.11 Beheer gebruikers (technisch) ........................................................................... 46 Eindwerk van Tom Meul en Pieter Scheldeman
5
6
Toonbank kassa voor gemeentebesturen
7.3.12 Beheer BTW-codes ............................................................................................. 47 7.3.13 Beheer BTW-codes (technisch) .......................................................................... 49 7.3.14 Beheer betalingswijzen ...................................................................................... 50 7.3.15 Beheer betalingswijzen (technisch) ................................................................... 51 7.3.16 Beheer soort artikelen........................................................................................ 52 7.3.17 Beheer soort artikelen (technisch) ..................................................................... 54 7.3.18 Beheer afdelingen .............................................................................................. 55 7.3.19 Beheer afdelingen (technisch) ........................................................................... 58 7.3.20 Beheer schermen ............................................................................................... 59 7.3.21 Beheer schermen (technisch) ............................................................................ 63 7.3.22 Beheer zalen ....................................................................................................... 64 7.3.23 Rapporten ........................................................................................................... 65 7.3.24 Rapporten (technisch) ........................................................................................ 66 7.3.25 Configuratiescherm ............................................................................................ 67 7.3.26 Database– en verbindingsinstellingen ............................................................... 68 7.3.27 Printerinstellingen .............................................................................................. 69 7.3.28 Licentiebeheer .................................................................................................... 70 7.3.29 Openstaande tafels ............................................................................................ 71 7.3.30 Synchronisatie .................................................................................................... 72 7.3.31 Gebruiker ............................................................................................................ 73 7.3.32 Functies van de kassa ......................................................................................... 74 7.3.33 Voorbeeld: Stapsgewijs een bestelling plaatsen................................................ 83 7.3.34 Keygenerator ...................................................................................................... 86 7.3.35 Keygenerator (technisch) .................................................................................. 87 7.3.36 Promotiewebsite www.tkg.be ........................................................................... 88 8.
Problematiek met eventuele oplossingen ....................................................................... 89
9.
Werkmethoden/Acties ..................................................................................................... 91
10.
Planning ......................................................................................................................... 92
10.1 11.
Aanvankelijke planning .......................................................................................... 92
Researchmateriaal......................................................................................................... 94
11.1 Administratie van de belasting over de toegevoegde waarde, registratie en domeinen. ............................................................................................................................ 94 12.
Gebruikte technologie en hardware ............................................................................. 95
12.1
Technologie ............................................................................................................ 95
12.2
Hardware ............................................................................................................... 96
13.
Persoonlijke conclusie van Tom Meul .......................................................................... 97 Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
14.
Persoonlijke conclusie van Pieter Scheldeman ............................................................. 98
15.
Lijst van afbeeldingen.................................................................................................... 99
16.
Bronvermelding ........................................................................................................... 101
17.
Bijlagen ........................................................................................................................ 102
Eindwerk van Tom Meul en Pieter Scheldeman
7
8
Toonbank kassa voor gemeentebesturen
3 3. I
NLEIDING
Onze opdracht bestond uit het debuggen, optimaliseren en uitbreiden van een project van de vorige stagiairs Roy Devos en Tim Schedin. Door aanvraag van de gemeente Wevelgem met deelgemeenten Gullegem en Moorsele, was er nood aan een programma voor het veralgemenen en automatiseren van de verkoop van artikelen door deze gemeenten of de deelgemeenten. De taak van Roy en Tim was dus het ontwikkelen van één applicatie die centraal wordt beheerd door de boekhouder, en het ontwikkelen van één programma dat op verschillende eindsystemen de verkopen van de verschillende goederen en diensten registreert. Dit programma diende zo algemeen mogelijk te worden ontwikkeld zodat het programma later eenvoudig in verschillende bedrijfssectoren kon worden toegepast. De ontwikkeling werd gerealiseerd in VB.Net 2003 met een MySQL database. Voor de rapportering werd er gebruik gemaakt van Crystal Reports. Sommige onderdelen werkten niet helemaal zoals het moest, of werkten helemaal niet. Deze problemen moesten opgelost worden. Er diende ook een complete nieuwe module geïntegreerd te worden terwijl de bestaande modules moesten samenwerken met dit nieuwe onderdeel. We voerden ook een upgrade van het bronmateriaal naar VB.Net 2005 uit. Alle andere technologieën bleven behouden. Dit eindwerk behandelt een volledige reorganisatie en interpretatie van het bronmateriaal, de analyse, het ontwerp, de realisatie en de uiteindelijke integratie. Zoals u zult merken is het dossier per onderdeel dat je kan vinden in de inhoudsopgave nog eens onderverdeeld in een technische kant die meer voor de programmeur is weggelegd en een gebruikerskant die meer dienst doet, zoals het woord zegt, voor de gebruiker zelf. Dit dossier is een leidraad voor mogelijke verdere uitbreiding van het project. Belangrijke technische zaken worden ook zorgvuldig verklaard in dit document.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank T kaassa voor gemeentebe esturen
4 4. P
ROJECTTSAMENV VATTING G
Stages s voor laats stejaarsstudenten
Multim media & Commu unicatie Techno ologie
miejaar 2006 6-2007 Academ Studentt:
Stu udent:
Pieter Sch heldeman Olmenlaaan 20, 8560 Moorsele M
Tom m Meul Hold damstraat, 91 170 Sint-Gillis--Waas
Email: pieter.scheld p deman@ho owest.be Email:
[email protected] Opttie: Algemeeen Optie: OA O Stagetittel: Uitbreiding aan een toonbank t kassa systeem m Stageom mschrijvingg: Bijwerken n van het toon nbank kassa systeem s (VB.N NET / MySQL programma) p De voornaamste wijziggingen die worden doorgevvoerd zijn de volgende: v n van een plaaatsenmodule (analoog mett de bestaande e artikelenmo odule) - voorzien - parameteriseren van de visualisatie van de toep passing n van de lokalee data naar dee server herw werken - opladen - herwerkken van de vissualisatie met behulp van WPF W - organiseeren van het bronmateriaa b l - uitzoekeen van de moggelijkheden van een Linux port p van de to oepassing
In same enwerking m met: D.I.S.C. bvba Doornikksesteenweeg 81 A 5 B - 8500 0 Kortrijk Externe e stagebege eleider:
Stagecoach h PIH:
Luc Depreez
Jef Daels
Eindweerk van Tom m Meul en Pieter P Schelldeman
9
10 1
Toonb bank kassa voor v gemeeentebestureen
5 5. P
ROJECTTFICHE
Projectfiche e Stagge Multime edia & Communicatietechnologiee 2006‐2007 7 1. Proje ectmedewe erker(s): Naam: Meeul Voornaaam: Tom m Optie MC CTalgemeen n Naam: Voornaaam: Optie:
Pro ojectID:
930
Sch heldeman Pieter A OA
2. Beggeleiders: Naam b bedrijf: D.I..S.C. bvba Begeleider van he et bedrijf: Naam: Dep prez Lucc Voornaaam: Coach vvan MCT: Daeels Naam: Voornaaam: Jef 3. Proje ecttitel: Uitbreiding aan eeen toonbank kassa systteem
4. Proje ectopgave: Bijwerkken van hett toonbank kassa systeem (VB.NETT / MySQL programma p ) De voo ornaamste wijzigingen w die worden n doorgevoe erd zijn de volgende: v - voorzien van een n plaatsenm module (analoog met de e bestaandee artikelenm module) meteriseren n van de visu ualisatie van n de toepasssing - param - opladen van de lokale data naar de serrver herwerken - herweerken van de d visualisattie met behulp van WP PF - organ niseren van het bronmaateriaal - uitzoeeken van dee mogelijkheeden van eeen Linux po ort van de to oepassing
Eindweerk van Tom m Meul en Pieter P Schelldeman
Toonbank kassa voor gemeentebesturen
5. Input: Bestaande source-files van het uit te breiden project en bijhorende database. Desktop met touchscreen voor testing. Thermische printer. Documentatie over het uit te breiden project. 6. Output: Een geoptimaliseerde, meer gebruiksvriendelijke uitbreiding van de bestaande toepassing, waarbij modules kunnen in - en uitgeschakeld worden. Synchronisatie tussen de cliënt en de server. Keygenerator voor eenvoudigere licentiesleutels, gevoelig voor de verloopdatum van de licentie, ... Een plaatsenmodule meer bepaald voor horecabedrijven. 7. Criteria om succes te meten: Gebruiksvriendelijkheid Snelheid Stabiliteit Betrouwbaarheid 8. Wat het project niet realiseert: WPF, wegens dikwijls verouderde machines waarop de software zal moeten draaien. Boekhouding
Eindwerk van Tom Meul en Pieter Scheldeman
11
12
Toonbank kassa voor gemeentebesturen
9. Planning: ID
Week 1
Week 3
Week 5
Week 6
Week 8
Week 9
Milestones Organiseren van het bronmateriaal. Debugging. Inzicht verwerven in de programmastructuur Optimalisatie bestaande GUI's + code Validatiecontrole + keygenerator Databaseconnectie opslaan Synchronisatie client-server. Printerinstellingen wijzigen. Nieuwe plaatsenmodule, GUI's ontwerpen ER-diagramma + DB-ontwerp. Bestellingen kunnen geplaatst worden. Reservaties maken. Projectdossier (draftversie). Kastickets afdrukken. Facturen genereren. Rapportering. Plaatsenmodule afgewerkt.
Week 11
Week 12
Indienen projectdossier op CDrom. Projectsamenvatting. Help + setup
Verantwoordelijk Timing (einddatum) Tom Meul 16/03/07 Pieter Scheldeman
Tom Meul Pieter Scheldeman
28/03/07
Tom Meul Pieter Scheldeman Tom Meul Pieter Scheldeman Tom Meul Pieter Scheldeman
27/04/07
Tom Meul Pieter Scheldeman Tom Meul Pieter Scheldeman Tom Meul Pieter Scheldeman
27/05/07
Eindwerk van Tom Meul en Pieter Scheldeman
4/05/07
18/05/07
8/06/07
12/06/07
Toonbank kassa voor gemeentebesturen
6 6. V
OORSTELLING VAN D.I.S.C. BVBA
6.1 Korte voorstelling Iedere onderneming, hoe kleinschalig ook, is noodgedwongen om alle processen te stroomlijnen en aan te passen naar de behoeften van de maatschappij waarin we leven. Er worden steeds meer eisen gesteld door de klanten, de leveranciers, organisaties in verband met stockbeheer, facturatie, wetgeving, ... Vandaar de vraag naar automatisatie van de handelingen die dienen te gebeuren bij om het even welke commerciële organisatie. Naast de hoofdactiviteit is het van belang dat er een comfortabele en veilige administratie wordt gevoerd. D.I.S.C. bvba is sedert 1982 op zoek naar efficiënte oplossingen om binnen vooraf afgesproken budgetten en tijdsbestekken tegemoet te komen aan deze doelstellingen. Het gebruik van SDM1 laat toe om een oplossing te ontwikkelen voor de automatisatie van om het even welke organisatie. Hierbij wordt opgemerkt dat voor veel bedrijven niet alle fasen dienen doorlopen te worden. Diverse diensten worden aangeboden door D.I.S.C. bvba: • Algemene automatisatie van administratie, secretariaat, boekhouding, facturatie, stockbeheer, ... • Kassabeheer, hard- en software, levering en installaties, consulting en bijstand bij de keuze van MRP - ERP installaties. • Netwerk installaties, uitbreiding en onderhoud. • Locaal, internet en intranet. Website ontwikkeling, installatie en onderhoud. • Naamregistraties en hosting.
1
System Development Methodology
Eindwerk van Tom Meul en Pieter Scheldeman
13
14
Toonbank kassa voor gemeentebesturen
6.2 Historiek van het bedrijf 1974: Behalen van diploma gegradueerde informaticus A1 (tweede lichting afgestudeerden in Europa) bij VHTI ‐ Kortrijk Eerste informaticajob bij Mondialin-Dunspan nv te Gullegem. Op S/3 van IBM werden tal van optimalisatie toepassingen ontworpen in RPG. 1978: Voor de groep Interbrew bij de concessies van Coca‐Cola Belgium een compleet administratief systeem opzetten voor de Interbrew vestigingen, met het eigen ontwikkeld pakket van Coca-Cola BASIS (Beverage Advanced Standard Information System). Tot eind 1990 werden de opdrachten verspreid over alle Coca-Cola concessies van de groep met inbegrip van een grondige opleiding voor alle gebruikers. 1991‐1994 (Overname Coca-Cola Enterprises): Als MIS- manager verantwoordelijk voor alle automatisatietoepassingen bij AntwerpCo nv. 1982: Oprichting van D.I.S.C. te Gullegem als eenmanszaak. Met de opkomst van de eerste microcomputers APPLE II (ApplePro), KAYPRO (CPM), later de IBM XT, AT, Pentium, .... werd het mogelijk om eenmanszaken en KMO's te automatiseren tegen aanvaardbare prijzen doch met noodzakelijke degelijke opleidingen. Intrede van algemeen PC-gebruik, op zoek naar betrouwbare leveranciers van soft- en hardware, samenwerking met BMx-Computers. Sedert 1983 is BMx (vroeger ARELCO) onze trouwe hardware leverancier. Samen met BMx hebben we in het jaar voor de golfoorlog BMx laptops geleverd aan de landsverdediging van de United Arab Emirates, nadien was het totale Midden Oosten verkocht aan de Verenigde Staten. Intussen worden diverse administratieve pakketten vergeleken en uitgetest om ons cliënteel mee uit te rusten. Compac, Cubic, C-Logic, Winvoice, ... om tenslotte te opteren voor Winkin® van Winking uit Koekelare (nu Brugge) 1996: Oprichting van D.I.S.C. bvba te Kortrijk. Vanaf dit ogenblik kon D.I.S.C. zich 100% concentreren op eigen activiteiten met een nieuw beheersteam: Luc Deprez, Leen Deprez en Magda Vandoorne. Consulting, Projectbeheer, Hard- en software, Netwerken, Internet, Intranet, en detachering van informatici (specialisten op maat, voor bepaalde projecten/tijd). 1998: Op weg naar ERP, MRP de must voor alle grote (productie en distributie) bedrijven MOVEX© - Intentia benelux nv. op AS/400. Implementatie en opleiding bij de groep IDB (Green Flag Foods), PRIMUS Oostakker, Dela Poederlee.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
Axapta® ‐ Concorde® ‐ Navision® van Navision® - Damgaard Implementatie, opleiding en EURO - conversies voor diverse ondernemingen, Installatie van Navision Small Business. 2000: Door de enorme belangrijkheid en aandacht dat het internetgebeuren krijgt vonden we het een opportuniteit om ook deze weg in te slaan, waardoor D.I.S.C. een nieuwe Weben Designafdeling oprichtte met ervaren nieuwe medewerkers.
Eindwerk van Tom Meul en Pieter Scheldeman
15
16
Toonbank kassa voor gemeentebesturen
6.3 Contactgegevens Doorniksesteenweg 81 A 5 B - 8500 Kortrijk Tel: 0032 56 25 90 99 Fax: 0032 56 25 23 76 BE 458 887 697 Email:
[email protected] Figuur 1: Plannetje
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7 7. A
NALYSES EN SCHEMA’S
7.1 Doelstelling met beschrijving van de behoeften De opdracht omvat het optimaliseren, uitbreiden en integreren van een programma voor de verkoop van allerhande goederen en diensten. Het programma is zo opgesteld dat het in allerhande sectoren inzetbaar is, zoals bij drankhandelaars, in gemeentebesturen,… enzovoort. De bediening dient te gebeuren via een aanraakscherm (voor de effectieve verkopen). De administrators (beheerders) die instaan voor het volledige beheer van de gegevens werken met muis en toetsenbord. Onder het volledige beheer verstaan we het aanmaken, wijzigen en verwijderen van artikelen, afdelingen, personeel, …. Een tweede belangrijk onderdeel van het pakket is het verkoopsonderdeel zelf. De eindgebruikers die dit pakket dus dagelijks zullen gebruiken, de verkopers, zijn meestal geen informatici. Daarom moet er een heel gebruiksvriendelijke GUI2 ontworpen worden. Alle ontwerpen zijn door ons gereviseerd om een vlottere werking te garanderen. Onderdelen die niet of slecht werkten zijn volledig nagekeken en geoptimaliseerd. Omdat dit programma oorspronkelijk werd ontwikkeld voor de gemeente Wevelgem, moet het mogelijk zijn om een centraal beheer te hebben voor de deelgemeentes Gullegem en Moorsele. Er was synchronisatie aanwezig in het pakket, maar dit werkte zolang er maar 1 gebruiker bezig was. Dit is onvoldoende, vandaar dat de synchronisatie ook volledig aangepast is. De connectie tussen de deelgemeentes wordt geregeld via internet en mede door de simulatie van een vast IP-adres. De rapportering van o.a. facturen en dagoverzichten, werkte helemaal niet. Hier hebben we ons dan ook op toegelegd om dit tot een werkend geheel te krijgen. Het pakket kon niet ingezet worden voor horecazaken omdat er geen zaalbeheer aanwezig was. Deze module is volledig nieuw en moest toch kunnen samenwerken met de bestaande beheer– en verkoopsmodule.
2
Graphical User Interface
Eindwerk van Tom Meul en Pieter Scheldeman
17
18
Toonbank kassa voor gemeentebesturen
7.2 Algemeen schematisch overzicht 7.2.1
Geografisch overzicht
Figuur 2: Geografisch overzicht
De toepassing zal gebruikt worden in deze situatie. Wevelgem is de gemeente waar de administratie en boekhouding doorgaat. De deelgemeenten Gullegem en Moorsele staan via internet in verbinding met de gemeente Wevelgem.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.2.2
Technisch overzicht
Figuur 3: Technisch overzicht
De administrator werkt steeds rechtstreeks op de centrale server. De verkoper werkt lokaal na een eventuele synchronisatie, en bij het sluiten van de applicatie worden de bestellingen verzonden naar de centrale server. Voor een stand‐alone applicatie wordt de centrale server gelijk gesteld aan dezelfde machine waarop lokaal wordt gewerkt. Er wordt dan niet gesynchroniseerd. De boekhouding maakt gebruik van de output van het pakket in de vorm van rapporten. Op gelijk welke cliëntmachine kan er met administratorrechten aangemeld worden om dan rechtstreeks op de centrale server wijzigingen aan te brengen die gevolg hebben voor alle cliënten die verbonden zijn met de server.
Eindwerk van Tom Meul en Pieter Scheldeman
19
20
Toonbank kassa voor gemeentebesturen
7.2.3
Databasestructuur gemeenten
tblSoortArtikel PK
ID
tblArtikel PK
Omschrijving OmschrijvingFR Horeca tblType PK
FK5 FK3
ID FK8 Omschrijving OmschrijvingFR
tblSchermArtikel PK
FK6
ID Omschrijving OmschrijvingFR VerkorteNaam VerkorteNaamFR Horeca
FK2 FK1
tblPlaatsAfdrukken PK
ID Naam Printer AfdrukMode Logo Voettekst
FK4
ID Naam NaamFR VerkorteNaam VerkorteNaamFR BTWCodeID SchermArtikelID Omschrijving ButtonID LocatieOpDeForm Lettertype Puntgrootte Fontstijl PrijsExcl AchtergrondKleur VoorgrondKleur Breedte Hoogte TypeID SoortArtikelID Pagina OpenPrijs NaarArtikelID TekstX TekstY Zichtbaar Borg PlaatsAfdrukkenID
tblBTWCode PK
Percentage Omschrijving OmschrijvingFR
tblFontstijl PK
tblArtikelArtikel PK
ID
FK1 FK2
ArtikelID BijhorendArtikelID tblButton
PK
Naam Voornaam Straat Postcode Gemeente Bedrijfsnaam BTWNummer Email Omschrijving RPR UitstelBetaling Taal
ID Omschrijving OmschrijvingFR
tblAfdeling PK
PK
ID
FK1 FK2
ArtikelID BestellingID Aantal Prijs BTWPercentage
tblKlant ID
ID Omschrijving
tblBestellingArtikel
PK
ID
FK1 FK2 FK3
ID
FK1
FK1 FK2
tblBetalingswijze PK
AfdelingID BetalingswijzeID Pagina FK1
FK2
ID Naam VerkorteNaam VerkorteNaamFR ButtonID LocatieOpForm Lettertype Puntgrootte Fontstijl Achtergrondkleur Voorgrondkleur Breedte Hoogte Omschrijving TekstX TekstY Zichtbaar TeFactureren
DatumTijdstip VerkoperID KlantID BetalingsWijzeID BestelbonID Totaal TeFactureren Borg FactuurID TafelID Afgerekend Maaltijden
tblVerkoper PK
ID
Omschrijving OmschrijvingFR Straat Postcode Gemeente Telefoonnummer Fax BTWnummer Rekeningnummer Email RPR Bedrijfsnaam Contactpersoon URL Land GSM Prefix
tblBestelling PK
tblAfdelingBetalingswijze
ID
ID Naam Voornaam AfdelingsID Paswoord Inlognaam Taal Administrator ZaalID Kleur
tblRechtVerkoper PK
ID
FK1 FK2
VerkoperID RechtID
tblRecht PK
ID Omschrijving OmschrijvingFR tblParameters
PK
ID Prefix Waarde LeveringsnotaTeller FactuurTeller Afmelden
Figuur 4: Databasestructuur gemeenten
Eindwerk van Tom Meul en Pieter Scheldeman
tblClient PK
ID AfdelingID HDDSerienummer Versie Vervaldatum Admin POS Personeel Zaalbeheer Betaalbeheer Diversen UpdateClient
Toonbank kassa voor gemeentebesturen
7.2.4
Uitleg tabellen gemeente
Het bespreken van de tabellen is essentieel voor het begrijpen van de toepassing. Waarvoor dienen deze tabellen? Met welke tabel hebben ze een relatie? De uitleg van alle verschillende velden en hun kenmerken komt in dit onderdeel aan bod. tblafdeling: Met welke afdeling werkt de cliënt? Er kunnen meerdere cliënten aan 1 afdeling gekoppeld zijn. Hierin beschrijft het programma de gegevens die noodzakelijk zijn voor de gebruiker. Het zijn de gegevens die afgedrukt worden op de facturen op de tickets. Deze tabel werkt samen met de tabel verkopers. tblafdelingbetalingswijze: Aan iedere afdeling zijn er betalingswijzen3 gekoppeld zodat de contante klant of de standaardklant kan kiezen met welk betalingsmiddel hij wil afrekenen. Dit verschilt per afdeling en is voor iedere cliënt hetzelfde. De particuliere klant betaalt via facturatie die op het einde van de maand wordt verrekend. tblartikel: Voor elke bestelling zijn er artikelen nodig. Deze tabel bevat alle artikelen die je over het volledige programma kan vinden. Hierin worden de artikelen ook gekoppeld met een soort artikel, dat verder beschreven wordt. Er is ook een BTW en een exclusieve prijs aan gekoppeld. tblartikelartikel: Deze tabel is een “tussentabel” die dienst doet om bestaande artikelen te koppelen. Indien je een bestelling doet, dan worden de artikelen toegevoegd aan de lijst. Als er een artikel gekoppeld is, dan wordt dit artikel ook toegevoegd. tblbestelling: In deze tabel worden alle bestellingen geplaatst die na het afsluiten van het programma worden gesynchroniseerd4 met de server. Hieruit worden ook de facturen gemaakt. Ook de verkoper en het tijdstip waarop de bestelling is geplaatst kan je hierin terug vinden. tblbestellingartikel: Aan iedere bestelling worden de bestelde artikelen gekoppeld. Deze worden apart opgeslagen in deze tabel om geen beroep te doen op de bestaande tabel tblartikel. Deze tabel bestaat om te vermijden dat er eventueel gegevens uit de database zouden verdwijnen. tblbetalingswijze: Bij tblafdeling kan je de betalingswijzen kiezen. De betalingswijzen worden in deze tabel beschreven. Via het programma kan je de verschillende betalingswijzen aanpassen. tblbtwcode: Ieder artikel heeft een BTW code die volgens de wet moet worden bepaald. Hierin kan je de verschillende BTW codes beschrijven. Standaard is er 0%, 6%, 12% en 21%.
3 4
Voorbeelden van betalingswijzen: Visa, Proton, Bancontact, Cash Behalve voor het zalenbeheer
Eindwerk van Tom Meul en Pieter Scheldeman
21
22
Toonbank kassa voor gemeentebesturen
tblbutton: Ieder artikel heeft als uitzicht een rechthoek, cirkel of ruit. Deze vormen worden in deze tabel opgeslagen. De gebruiker kan geen vormen aanmaken. Deze moeten door de programmeur worden beschreven en het programma moet opnieuw worden gecompileerd. tblclient: Iedere harde schijf heeft een serial number en op basis van dit nummer, de bedrijfsnaam en de vervaldatum wordt de licentie opgemaakt. Deze licentie wordt opgeslagen in de database. Ook bestaat de mogelijkheid om te communiceren met de server indien deze tabel de unieke gegevens van de pc bevat. tblfontstijl: Alle fontstijlen worden hier beschreven. Ze worden gebruikt om de opmaak van het artikel te bepalen. tblKlant: Alle particuliere klanten worden hier aangemaakt en kunnen worden geselecteerd wanneer er op ‘Klanten’ wordt geklikt. Als een klant iets bestelt, wordt dit automatisch gefactureerd en hoeft de klant maar na een aantal5 dagen te betalen. tblplaatsafdrukken: Bij de printerinstellingen kan je de verschillende printers instellen waarop het ticket moet worden afgedrukt. De plaats, de printer, eventueel een logo en een voettekst worden op deze plaats in de database bijgehouden. tblrecht: Sommige gebruikers hebben geen rechten om de kassa af te sluiten of om het bedrag in de kassa te bekijken. Met deze tabel worden de rechten van de gebruiker ingesteld. tblrechtverkoper: Deze koppeltabel tussen tblrecht en tblverkoper zorgt ervoor dat de rechten aan de verkoper gekoppeld worden. tblschermartikel: Ieder artikel wordt weergeven in het overzicht van de verkoper. Deze artikelen kunnen niet allemaal op 1 enkel scherm worden weergegeven. Met deze tabel kunnen verschillende schermen ingesteld worden en kunnen er verschillende artikelen aan gekoppeld worden. Per verkoper wordt het startscherm dat ook in deze tabel te vinden is, ingesteld. tblsoortartikel: Ieder artikel behoort bij een soort. Deze tabel beschrijft de soort waaraan het artikel is gekoppeld. Dit kan dienst doen om een onderscheid te maken in de rapporten. Zo krijg je een duidelijk overzicht met welke soorten artikelen je werkt. tbltype: Om naar een ander scherm te kunnen “springen” moeten andere knoppen worden aangemaakt. Standaard staat dit op artikel, maar dit kan ook aangepast worden naar redirect en naar commentaar. Een redirect zorgt er voor dat je tussen de verschillende schermen kan navigeren. tblverkoper: Alle verkopers van alle afdelingen worden hierin beschreven. Er kan ook een kleur, login en paswoord worden ingesteld. De administrators kunnen hier voor de verkopers een startscherm instellen en kunnen ze de rechten van de verkoper definiëren. 5
Standaard is dit 30 dagen
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.2.5
Databasestructuur horeca
Figuur 5: Databasestructuur horeca
Eindwerk van Tom Meul en Pieter Scheldeman
23
24
Toonbank kassa voor gemeentebesturen
7.2.6
Uitleg tabellen horeca
Het programma is één groot geheel en de module zalenbeheer kan in of uitgeschakeld worden. De databases vertonen kleine verschillen om de referentiële integriteit6 te kunnen behouden. Om een voorbeeld te geven: een gemeente beschikt niet over zalen en tafels. Daarom zijn deze tabellen niet aanwezig in de structuur voor de gemeenten. Maar de tabel tblbestelling verwacht wel een tafelID. We vullen standaard “-1” in. Dit zou een probleem geven als de tabel tblTafel ook bestond in de database van de gemeenten. We hebben dit systeem toegepast zodat we geen overbodig programmeerwerk zouden moeten verrichten. Hieronder worden 2 extra tabellen beschreven die verband houden met de module zalenbeheer. tbltafel: In deze tabel worden alle tafels bijgehouden per zaal. De maaltijden, een bezette tafel, de tafelkleur en - vorm worden hier bijgehouden. Per zaal kunnen de verkopers ook hun startscherm instellen. tblzaal: Alle zalen die in de afdeling thuishoren kunnen hier worden beschreven. Tafels worden hieraan gekoppeld en worden dan weergegeven in het overzicht na de selectie van een zaal.
6
Referentiële integriteit in een relationele database is het uitgangspunt dat de interne consistentie tussen de verschillende tabellen binnen die database wordt gewaarborgd.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.2.7
Uitleg extra tabel “parameters”
Deze tabel valt eigenlijk buiten alle andere tabellen. Per cliënt kan de administrator ook een aantal parameters instellen. Factuurnummer: Deze parameter wordt samen met de prefix van de cliënt en de prefix van de afdeling gebruikt om een factuurnummer op te stellen. Deze wordt afgedrukt op de tickets. Alleen een standaardklant krijgt een factuurnummer. Leveringsnota nummer: Wanneer een bestaande klant wordt geselecteerd, worden de bestellingen automatisch afgedrukt met een leveringsnotanummer. Dit wordt ook aan de aan de hand van de prefix van de cliënt en de prefix van de afdeling samengesteld. vb.: “WEV” + “001” + “001” Afmelden: Na iedere bestelling keert de verkoper terug naar zijn startscherm. Bij de module zalenbeheer kan de administrator ervoor zorgen dat de verkoper automatisch wordt afgemeld na iedere bestelling.
Eindwerk van Tom Meul en Pieter Scheldeman
25
26 2
Toonb bank kassa voor v gemeeentebestureen
7.3 Functio F naliteitten De funcctionaliteiten van het softwarepakkket zullen we w verduideelijken doorr gebruik te e maken van een n stapsgewijjze handleid ding met dee nodige uittleg, onderssteund doorr schermaafbeeldingeen. 7.3.1
I Initiële start t van het pro ogramma
We gaan er van uitt dat het de eerste keer is dat het programmaa opgestartt wordt. We starrten dus meet een lege database d en n er zijn nogg geen userr-settings op pgeslagen op o de harde scchijf. hijn waar jee de connecctie-instellin ngen en de llogin-gegevvens kan Er komtt een vensteer tevoorsch ingeven n voor de lokale en de centrale c dattabase. Indien u een stand‐alone applicatie wensst, kies je vo oor de remo ote databasse server, he etzelfde als voorr de lokale database d seerver. Klik op verbinden v e maak jou en uw keuze uiit de geschikte databasse. De keuzzelijst wordtt nu beschikkbaar voor de afdelinggen. Als jouw w afdeling nog n niet in de d lijst zit kaan je deze to oevoegen. Geef dee bedrijfsnaaam in die jee vooraf aan n de beheerrder gegeveen hebt. De licen ntiecode staaat normaall op het bijggeleverde fo ormulier, zo oniet kan je een code aanvraggen als je met internet verbonden n bent. Het is i ook mogeelijk telefon nisch contacct op te nemen met de beh heerder. Er word dt gesynchro oniseerd met de centrrale server om o de correecte gegeveens op te haalen zodra jee op “Opslaaan” hebt geeklikt.
Figuur 6: D Databaseconne ectie
Eindweerk van Tom m Meul en Pieter P Schelldeman
Toonbank kassa voor gemeentebesturen
Functionaliteiten Verbinden met de localhost en de server Indien alle instellingen in de eerste stap correct worden ingevuld krijg je een melding of de connectie geslaagd is. Daarna kies je de database en synchroniseert de localhost met de server. Dit is noodzakelijk zodat er met de laatste nieuwe gegevens gewerkt wordt.
Figuur 7 : Connectie geslaagd
Toevoegen van een afdeling Wanneer er geen afdelingen beschikbaar zijn, dan kan je een nieuwe afdeling toevoegen. Standaard zal er een administrator en een gebruiker aangemaakt worden. Wanneer de nieuwe afdeling toegevoegd is, dan selecteer je de afdeling uit de lijst. Bedrijfsnaam invullen Uw bedrijfsnaam, samen met nog een aantal andere parameters, is belangrijk om de licentiecode te genereren. Als je uw licentiecode nog niet hebt ontvangen, kan je deze aanvragen door op de knop Licentie aanvragen de klikken. Opslaan van de gegevens Vul de licentiecode correct in en druk op opslaan. Daarna worden alle gegevens gesynchroniseerd. Afhankelijk van de gegevens van de afdeling krijg je nog een tussenvenster te zien.
Figuur 8 : Licentiesleutel is geldig
Eindwerk van Tom Meul en Pieter Scheldeman
27
28
Toonbank kassa voor gemeentebesturen
Belangrijkheden 9 De verplichte velden bij dit formulier zijn: Alle velden zijn verplicht in te vullen. Indien de velden correct zijn ingevuld en de server is niet beschikbaar dan krijg je volgende melding.
Figuur 9 : Geen server beschikbaar
Probeer de verbinding te herstellen en opnieuw te proberen. Na 2 pogingen gaat de applicatie er vanuit dat er geen verbinding kan gemaakt worden en zal er lokaal worden gewerkt.
Figuur 10 : Connectie gelukt zonder server
9 Bij het toevoegen van een afdeling moet elke naam uniek zijn. Controleer vooraf of je eigen afdeling nog niet in de lijst staat. Onderstaande afbeelding toont welk venster je ziet wanneer je een nieuwe afdeling toevoegt.
Figuur 11 : Naam van de afdeling
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.2
Initiële start van het programma (technisch)
Voor ieder onderdeel van het programma wordt er een technische kant besproken om de programmeur op de hoogte te brengen van moeilijke stukken code of technische problemen die we gedurende de ontwikkeling zijn tegengekomen. Dit patroon zult u zien terugkeren bij ieder aparte functionaliteit van het programma. Na het invullen van de gegevens moet het programma de gegevens controleren. Dit gebeurt door op verbinden te klikken want daarna roept deze knop de volgende methode op: Public Shared Function TestConnection(ByVal sConnectionString As String) As Boolean Dim oCommand As MySqlCommand = New MySqlCommand Dim ocon As MySqlConnection = Nothing Try ocon = GetConnection(sConnectionString) Return True Catch ex As Exception Try ocon.Close() Catch ex2 As Exception log(ex2) End Try Return False End Try End Function
Deze methode probeert een verbinding te maken met de opgegeven waarden. De methode geeft een true terug als de verbinding geslaagd is. Deze code wordt in het volledig project hergebruikt en zit in de klasse clsDatabase. Indien de connectiestring van de server en de connectiestring van de lokale database identiek zijn, wordt er niet gesynchroniseerd zodat er geen gegevens worden overschreven. Indien ze wel verschillen, toont het programma een venster dat connecteert met de server om de laatste nieuwe gegevens te downloaden. Indien er geen verbinding kan gemaakt worden en er geen afdelingen beschikbaar zijn, moet je de afdeling toevoegen. Dit gebeurt dan via onderstaande code. clsAfdelingDA.InsertAfdeling(False, New clsAfdeling(clsAfdelingDA.getMaxIDAfdeling(False) + 1, sAfdeling, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "001"), False)
Daarnaast worden er ook verkopers toegevoegd zodat je met het programma kunt beginnen voor er al één keer connectie met de server is gemaakt.
Eindwerk van Tom Meul en Pieter Scheldeman
29
30
Toonbank kassa voor gemeentebesturen
Na alle andere gegevens in te vullen en de database te kiezen, moet een licentie gegenereerd worden. Deze code is noodzakelijk omdat er voor iedere cliënt een unieke licentiesleutel wordt gemaakt. Public Shared Function SerienummerOphalen() As String 'Dim hdCollection As ArrayList = New ArrayList 'Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive") 'For Each wmi_HD As ManagementObject In searcher.Get ' Dim hd As clsHardDrive = New clsHardDrive ' hd.Model = wmi_HD("Model").ToString ' hd.Type = wmi_HD("InterfaceType").ToString ' hdCollection.Add(hd) 'Next 'searcher = New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia") 'Dim i As Integer = 0 'For Each wmi_HD As ManagementObject In searcher.Get ' ' get the hard drive from collection ' ' using index ' Dim hd As clsHardDrive = CType(hdCollection(i), clsHardDrive) ' ' get the hardware serial no. ' If (wmi_HD("SerialNumber") = Nothing) Then ' hd.SerialNo = "None" ' Else ' hd.SerialNo = wmi_HD("SerialNumber").ToString ' End If ' i += 1 'Next '' Display first available hard drive 'Dim eersteHD As clsHardDrive = hdCollection(0) Dim disk As ManagementObject = New ManagementObject("win32_logicaldisk.deviceid=""C:""") disk.Get() Return disk("VolumeSerialNumber").ToString() End Function
De code die in commentaar staat, was de originele code die eerst gebruikt werd in Windows XP en Windows 98. Nadat we in Windows Vista begonnen te programmeren gaf deze code een serial number terug van meer dan 14 cijfers. We zochten dan een unieke code die voor alle operating systemen hetzelfde was. Toen kwamen we op de code die onderaan de methode staat. Bij het opslaan van de instellingen wordt de licentiesleutel nog eens gecontroleerd en worden de gegevens gesynchroniseerd met de server indien er verbinding kan worden gemaakt.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.3
Bedrijfsgegevens invullen
Alle relevante bedrijfsinformatie kan hier ingegeven worden. Deze informatie wordt gebruikt bij het afdrukken van facturen en dergelijke. Als je alles correct hebt ingevuld, klik je op “opslaan”.
Figuur 12: Algemene bedrijfsgegevens
Hierna worden de gegevens terug gesynchroniseerd met de server. Dit is noodzakelijk zodat iedere cliënt de juiste versie van de database kan gebruiken. Functionaliteiten Opslaan van de gegevens Wanneer je op opslaan drukt, dan worden alle gegevens gesynchroniseerd met de server.
Figuur 13 : Synchroniseren met server
Annuleren Indien je de gegevens niet invult door op annuleren te klikken of door het formulier af te sluiten zal je de volgende keer opnieuw gevraagd worden om de bedrijfsgegevens in te vullen. Eindwerk van Tom Meul en Pieter Scheldeman
31
32
Toonbank kassa voor gemeentebesturen
7.3.4
Bedrijfsgegevens invullen (technisch)
Na het opslaan van de gegevens in het initiële venster, wordt je gevraagd om de bedrijfsgegevens in te vullen. Indien de gegevens al in de database zijn opgeslagen, wordt dit venster genegeerd en gaat de applicatie verder naar het loginscherm. In dit formulier is er geen speciale code aanwezig waar we aandacht moeten aan besteden. Er is wel een stuk belangrijke code die ook meerdere malen voorkomt in het programma If clsdatabase.TestConnection(clsConnectieInstellingen.ConnectionStringServer) = True Then frm.UploadDownload("synchroniserenEnDownloaden") Else frm.Show() End If
Deze code zal je, soms met andere tekst tussen de quotes, veel terugvinden in het programma. Dit stuk code is het hart van de verbinding tussen de lokale database en die van de server. Sommige varianten zijn in de programmatuur aanwezig: frm.UploadDownload("opstarten") frm.UploadDownload("synchroniseren") frm.UploadDownload("afsluiten")
Al deze methodes roepen maar één component op: namelijk de backgroundworker. Deze component is een speciale component om iets op de achtergrond7 te laten uitvoeren. Zolang de synchronisatie uitgevoerd wordt, hoef je niet te wachten om ondertussen iets anders te doen.
7
Lees: Aparte Thread
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.5
Het loginscherm
Eens de vorige stappen juist zijn uitgevoerd, kom je bij het loginscherm terecht. De gebruikers die u nu ziet, zijn die van de vooraf gekozen afdeling. Indien je een nieuwe afdeling hebt toegevoegd, staan er standaard 2 gebruikers, waarvan één met administratorrechten. Zo kun je direct van start gaan. De gebruikersnamen en kleuren kunnen later eenvoudig aangepast worden. Hier kan je kiezen tussen een administrator of een gebruiker. Je selecteert eerst een gebruiker, vervolgens typ je het wachtwoord in. Het standaard wachtwoord is: 123456
Figuur 14: Loginscherm
Eindwerk van Tom Meul en Pieter Scheldeman
33
34
Toonbank kassa voor gemeentebesturen
Functionaliteiten Afsluiten Bij het afsluiten van de applicatie worden de geplaatste bestellingen gesynchroniseerd met de server.
Figuur 15 : Bestellingen uploaden en synchroniseren
Naar andere pagina navigeren Wanneer er meer dan 5 gebruikers aan de huidige afdeling gekoppeld zijn, worden de resterende gebruikers op de tweede pagina geplaatst. Je kan navigeren door onderaan rechts op de pijltjestoetsen te drukken.
Figuur 16 : Meerdere gebruikers
Aanmelden op een touchscreen De meeste restaurants, gemeentes werken met een touchscreen. Het paswoord bestaat alleen uit numerieke gegevens en dus kan de gebruiker met het toetsenbord zijn paswoord ingeven.
Figuur 17 : Aanmelden toetsenbord
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
Belangrijkheden 9 Wanneer er geen connectie kan gemaakt worden met de server kan de administrator ook niet aanmelden. Zodra de verbinding hersteld is, kan de administrator terug het werk hervatten. De administrator werkt rechtstreeks op de server zodat iedere cliënt de laatste nieuwe gegevens van de server kan downloaden.
Figuur 18 : Administrator kan niet aanmelden
9 Bij het uploaden van de bestellingen krijg je een foutmelding dat er geen verbinding kan gemaakt worden met de server. Het uploaden wordt uitgesteld tot wanneer de applicatie de volgende keer wordt afgesloten.
Figuur 19 : Geen verbinding
Eindwerk van Tom Meul en Pieter Scheldeman
35
36
Toonbank kassa voor gemeentebesturen
7.3.6
Het loginscherm (technisch)
Na al de gegevens in te vullen en na de synchronisatie krijg je het loginvenster te zien. Dit haalt de verkopers per afdeling op. Aan de kleur kan je herkennen welke verkoper het is, maar ook aan de naam. Er zijn 2 grote verschillen. De administrator: Deze heeft als taak de administratie in orde te brengen. De verkoper: Alleen het overzicht van de artikelen waarop er bestellingen kunnen worden geplaatst, krijgt de verkoper te zien. Deze worden onderscheiden in het volgende stuk code: If (CType(marrGebruikers(miSom - 1), clsVerkoper)).Administrator = True Then uc.Functie = "Administrator" Else uc.Functie = "Gebruiker" End If
Als men inlogt , nadat het juiste paswoord is ingetypt, wordt de licentie gecontroleerd op welke modules er ingeschakeld zijn en welke niet. Indien er aangemeld werd als administrator en de licentie laat niet toe dat de administratie beschikbaar is, krijg je een melding. Idem voor de verkoper. Afhankelijk met welke functie je inlogt, krijg je een ander scherm te zien. De gebruikers kunnen geen administratie doen en de administrators kunnen geen bestellingen plaatsen. Het loginscherm is ook volledig gebaseerd op het gebruik van een touchscreen. Zo er geen enkele mogelijkheid waarop het toetsenbord moet worden gebruikt. De administratie daarentegen moet wel met een toetsenbord gebeuren zodat de gegevens kunnen gewijzigd worden indien nodig.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.7
Administrator
Eerst zal de administratieve kant uitgelegd worden. Hier wordt alles voor de verkopers achter de schermen geregeld. Klik op de administrator en vul je paswoord in. U komt vervolgens terecht in het beheervenster, waar je alles kan toevoegen, wijzigen, verwijderen en configureren.
Figuur 20: Administratie
Links kan je het menu inklappen om meer werkruimte te creëren. Aan de hand van de verschillende icoontjes met de afkortingen van de titels kan je navigeren tussen de verschillende onderdelen van het programma.
Eindwerk van Tom Meul en Pieter Scheldeman
37
38
Toonbank kassa voor gemeentebesturen
Afhankelijk van de licentie krijg je 2 verschillende menu’s te zien Dit is het menu voor de licentie zonder zalenbeheer. Indien je de licentie wijzigt in het configuratiescherm, past het menu zich automatisch aan. Er zullen extra modules bijkomen of verdwijnen.
Figuur 21: Menubalk gemeentebeheer
Dit is het menu voor de licentie met zalenbeheer. Zoals je kan zien is er een extra module tussen geplaatst zodat je de zalen kan opmaken. Aan de hand van de ingestelde licentie zal je ook minder of meer rechten hebben. Zo kan je de rapporten uitschakelen door de licentie te wijzigen.
Figuur 22: Menubalk zalenbeheer
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
Je kan zien dat er een extra module Zalen is bijgekomen. Om dit te laten samenwerken moet je de nieuwe database installeren die voor het Zalenbeheer noodzakelijk is. In het overzicht en in de verschillende onderdelen zie je ook een verschil in de opbouw. We hebben dit pakket zo gemaakt dat er maar één versie is van het programma. Zowel de cliënt als de server zalenbeheer en het gemeentebeheer zitten in dezelfde setup. Functionaliteiten Verschillende onderdelen beheren In het menu kan je de verschillende onderdelen opstarten en beheren. Alleen de administrator kan wijzigingen aanbrengen en opslaan in de database. Een verkoper krijgt dit scherm ni te zien, maar krijgt in plaats daarvan een overzicht van de artikelen. Boven in het menu komt nog eens hetzelfde te staan. Met deze twee opties kan je gemakkelijk door de toepassing navigeren. Schermen rangschikken Via het menuutje “Beeld” kan je de openstaande vensters rangschikken volgens een bepaald patroon. Dit behoudt het overzicht wanneer er meerdere vensters openstaan.
Figuur 23 : Beeld cascade
Eindwerk van Tom Meul en Pieter Scheldeman
39
40
Toonbank kassa voor gemeentebesturen
7.3.8
Beheer klanten
Al de klanten die goederen en/of diensten kunnen kopen in de gemeente worden hier geregistreerd. Eveneens is het mogelijk om gegevens van bestaande klanten te wijzigen en te verwijderen. Klanten worden in ons programma aanzien als bedrijven die vuilzakken, akten… in grote hoeveelheden kopen. Er is ook één standaard klant. Deze representeert alle particulieren.
Figuur 24: Beheer klanten
Uitleg grafisch overzicht Bovenstaande figuur toont ons het beheerscherm voor de klanten. Klanten zijn in onze applicatie bedrijven of zelfstandigen. Particulieren behoren niet tot ons klantenbestand. Ze kunnen uiteraard wel bestellingen plaatsen. Het voordeel of het verschil van een klant ten opzicht van een particuliere koper is dat klanten uitstel van betaling kunnen krijgen. Dit is een apart veld dat dient te worden ingesteld bij het aanmaken van een klant. Zo is het dus bijvoorbeeld mogelijk om voor één klant op het einde van de maand alle nog openstaande bestellingen te factureren.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
Functionaliteiten Toevoegen van nieuwe klanten We klikken op “Toevoegen”. Hierdoor worden alle velden leeggemaakt en kunnen de nieuwe gegevens worden ingegeven. Indien alle verplichte velden correct en volledig werden ingevuld zal de knop “Accepteren” beschikbaar worden gesteld. Wanneer alle verplichte velden toegevoegd zijn, klikken we op “Accepteren” om de nieuwe gegevens te bewaren in de database. Verwijderen van een klant
Figuur 25 : Verwijderen van klant
Wijzigen gegevens van een klant We klikken een klant aan. Vervolgens worden alle gegevens van die klant weergegeven in de overeenkomstige velden. Deze velden worden ingeschakeld en we kunnen de gegevens wijzigen. Opnieuw wordt de knop “Accepteren” enkel beschikbaar gesteld als alle velden correct en volledig werden ingevuld. Door op de knop “Accepteren” te klikken, worden de nieuwe gegevens bewaard. Annuleren van de toevoeging of wijziging Bij elke actie kunnen we wijzigingen opheffen door op de knop “Annuleren” te klikken. Hierdoor worden alle wijzigingen ongedaan gemaakt en keren we terug naar de vorige situatie. Belangrijkheden 9 De verplichte velden bij dit formulier zijn: Naam, voornaam, taal, straat en nummer, postcode, gemeente, bedrijfsnaam, BTW-nummer, RPR-nummer, e-mailadres en aantal dagen tot vervaldatum factuur. Naam, voornaam, straat en nummer, postcode, gemeente, bedrijfsnaam, BTWnummer, RPR-nummer en e-mail” zijn verplicht omdat deze gegevens op eventuele facturen zullen terecht komen. 9 De taal van de klant is ook belangrijk naar facturatie toe omdat deze aangemaakt wordt in de taal van de klant. Zo kunnen de facturen in het Nederlands of in het Frans worden opgesteld. 9 Het “Aantal dagen tot vervaldatum”-veld is dan weer belangrijk voor een overeenkomstig veld op de factuur dat aangeeft hoeveel dagen uitstel deze klant krijgt toegewezen. Eindwerk van Tom Meul en Pieter Scheldeman
41
42
Toonbank kassa voor gemeentebesturen
7.3.9
Beheer klanten (technisch)
Overal waar een asterisk8 staat dient een waarde ingegeven te worden. Via de tooltips kan je te weten komen wat je moet invullen en hoeveel karakters dit mag zijn. Ook kan je zien of de waarde verplicht is in te vullen of niet.
Figuur 26: Tooltip klanten
8
Een asterisk is een “sterretje” (symbool = *)
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.10 Beheer gebruikers
Hier worden alle gebruikers (verkopers) bijgehouden die werken met ons programma. Het aanmaken, wijzigen en verwijderen van de gebruikers gebeurt hier. Hier verbinden we gebruikers aan een reeds bestaande afdeling. Er wordt meteen een startscherm toegewezen aan deze gebruiker.
Figuur 27: Beheer gebruikers
Uitleg grafisch overzicht De gebruikers van ons programma zijn de verkopers alsook de administrators. Dit is dus iedereen die in direct contact komt met onze applicatie. In dit venster kunnen we gebruikers toevoegen alsook hun gegevens bekijken en wijzigen. Opnieuw zijn hier twee delen: het bovenste deel met alle velden die de informatie weergeven over een gebruiker, en het onderste deel dat een kort overzicht weergeeft van de gebruikers die nu momenteel in het programma aanwezig zijn. Wat is nu het verschil tussen een administrator en een verkoper? Een administrator kan de gegevens over alle entiteiten wijzigen en rapporten opmaken. Een verkoper kan enkel bestellingen toevoegen, maar kan het beheer van de entiteiten niet doen.
Eindwerk van Tom Meul en Pieter Scheldeman
43
44
Toonbank kassa voor gemeentebesturen
Functionaliteiten Toevoegen van nieuwe gebruikers. Indien we klikken op de knop “Toevoegen” worden alle velden automatisch leeggemaakt en kunnen we de nieuwe gegevens van de gebruiker ingeven. We dienen alle verplichte velden volledig en correct in te vullen alvorens de knop “Accepteren” beschikbaar wordt. Eenmaal we alle verplichte velden correct ingaven en we op “Accepteren” hebben geklikt, wordt de gebruiker toegevoegd aan de listview onderaan. Wijzigen gegevens van een gebruiker Alle gegevens van een gebruiker kunnen uiteraard ook gewijzigd worden. Door te klikken op de knop “Accepteren”, die enkel beschikbaar is indien alle verplichte velden correct en volledig werden ingevuld, worden de nieuwe gegevens van deze gebruiker bewaard. Koppelen van rechten aan gebruikers Hiermee kunnen we rechten aan gebruikers koppelen. Door simpelweg de vinkjes aan of af te vinken worden rechten toegekend aan gebruikers of worden rechten afgenomen van gebruikers. Annuleren van de toevoeging of wijziging Met de knop “Annuleren” kunnen we de gewijzigde gegevens ongedaan maken of een nieuwe toevoeging annuleren. Door op deze knop te drukken keren we dus terug naar de voorgaande situatie zonder het bewaren van de wijzigingen. Belangrijkheden 9 De volgende velden zijn verplicht in te vullen: “Naam, voornaam, afdeling, login, paswoord, administrator, startscherm, taal” 9 “Naam en voornaam” zijn verplicht aangezien we deze velden zullen nodig hebben op eventuele facturen voor klanten. 9 “Afdeling” is ook verplicht. Een gebruiker moet met een afdeling verbonden zijn. 9 “Login en paswoord” zijn waarschijnlijk de belangrijkste velden van allemaal. Deze zullen aan de gebruiker toegang verschaffen tot de applicatie. 9 Het veld “Administrator” staat standaard afgevinkt. Dit veld bepaalt of we administrator zijn of niet, wat dus wil zeggen of we het beheer van alle entiteiten kunnen doen, of als we enkel bestellingen kunnen plaatsen.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen 9 Het “Startscherm” geeft weer op welk scherm we zullen starten eenmaal ingelogd. Stel dat we inloggen als gewone verkoper en het startscherm staat ingesteld op “Burgerlijk Stand” dan zullen we na het inloggen automatisch terecht komen op het scherm “Burgerlijke Stand”. Dit is dus het eerste scherm dat we te zien krijgen. 9 De “Taal” is ook een verplicht veld aangezien dat afhankelijk hiervan de hele applicatie ofwel in het Nederlands ofwel in het Frans zal worden vertaald.
Eindwerk van Tom Meul en Pieter Scheldeman
45
46 4
Toonb bank kassa voor v gemeeentebestureen
7.3.11 Beheer gebr B ruikers (technisch)
De gebrruikers word den opgedeeeld in 2 gro oepen: de administrato a ors en de veerkopers. Deze krijgen een sp peciaal icoo ontje om hu un functie ge emakkelijk te t herkenneen. Adminisstrator Figuur 28:: Administratorr
Verkope er Figuur 29:: Verkoper
Z kan je geemakkelijk zzien welke Daarnaaast worden ze onderveerdeeld in afdelingen. Zo verkopeers en administrators aan a welke afdelingen verbonden zijn. z Dit form mulier wijkt af van de andere form mulier qua opbouw van de listview w. Een belaangrijk stukk code die jee in de meeeste formulieren tegenkomt vooraaleer ze opstarten is de volgeende contro ole: If clsValid datie.ControleeZalenbeheer = True Then cboZaal.Visiblle = True cboZaal.Enabled = True lblZaal.Visiblee = True lblZaal.Enableed = True cboScherm.Viisible = False cboScherm.En nabled = Falsee lblScherm.Vissible = False lblScherm.Enaabled = False Else cboZaal.Visiblle = False cboZaal.Enabled = False lblZaal.Visiblee = False lblZaal.Enableed = False cboScherm.Viisible = True cboScherm.En nabled = Truee lblScherm.Vissible = True lblScherm.Enaabled = True End If
Wat tusssen de If ellse End if strructuur staaat, hangt aff van formulier tot form mulier. Belangrijk is dat de eerste e regell controleerrt welke liceentie je heb bt aangevraaagd, om daaarna het forrmulier aan te passen p zodaat er nieuwee controls vrij v komen of o controls verborgen v w worden.
Eindweerk van Tom m Meul en Pieter P Schelldeman
Toonbank kassa voor gemeentebesturen
7.3.12 Beheer BTW‐codes
De BTW-codes die momenteel van toepassing zijn, worden hier bijgehouden. Tevens is er de mogelijkheid om deze aan te passen, te verwijderen of uit te breiden. Standaard zal hier 0%, 6%, 12% en 21% aanwezig zijn.
Figuur 30: Beheer BTW‐codes
Uitleg grafisch overzicht Het beheer van de BTW-codes is een belangrijk onderdeel aangezien al onze artikelen onderworpen zijn aan de BTW. Hier kunnen we de verschillende codes definiëren alsook hun percentage. De twee delen komen ook terug: bovenaan zien we het detail van de gekozen BTW-code, terwijl we onderaan in de lijst alle BTW-codes zien.
Eindwerk van Tom Meul en Pieter Scheldeman
47
48
Toonbank kassa voor gemeentebesturen
Functionaliteiten Toevoegen van een BTW‐code Zoals in alle andere beheerschermen worden alle velden bovenaan leeggemaakt bij het klikken op “Toevoegen”. Dan kunnen we de nieuwe gegevens ingeven. Eenmaal we dan klikken op “Accepteren”, worden de nieuwe gegevens bewaard. Uiteraard dienen alle verplichte velden ook correct en volledig te worden ingevuld alvorens de knop “Accepteren” beschikbaar wordt. Wijzigen gegevens BTW‐code We kunnen de gegevens over een BTW-code ook wijzigen. Dit zal hoogstwaarschijnlijk zelden voorkomen, maar het is voorzien in het programma. Een wijziging hier zal geen gevolg hebben voor de reeds gedane bestellingen. Uiteraard dienen ook hier alle velden correct te worden ingevuld alvorens we kunnen opslaan. Annuleren van toevoegingen of wijzigingen Uiteraard kunnen gegevens die we toevoegen of wijzigen ook geannuleerd worden. Dit kan te allen tijde door te klikken op de knop “Annuleren”. Eens de gegevens gewijzigd of toegevoegd zijn door te klikten op “Accepteren”, kunnen we niet meer annuleren Belangrijkheden 9 De verplichte velden zijn: “BTW-percentage, code omschrijving Nederlands en code omschrijving Frans” 9 Het veld “BTW-percentage” hoort numeriek te zijn en tussen 0 en 100 te liggen. We dienen hier geen kommagetal zoals 0,… in te geven maar wel het correcte BTWpercentage, bijvoorbeeld 21%.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.13 Beheer BTW‐codes (technisch)
Eén welbepaald stuk code dat je ook overal in de administratieve formulieren zal tegenkomen is een progressbar die onderaan de voortgang van de bewerkingen toont. Public Sub StepIt() Dim tspProgress As ProgressBar = CType(Me.stpStatusbar.Controls.Item(0), ProgressBar) With tspProgress .PerformStep() Application.DoEvents() End With End Sub
Dit zorgt er voor dat telkens je de methode StepIt oproept. Zo komt er een percentage in de progressbar bij. Op die manier kan je gemakkelijk zien of de applicatie vastloopt of niet. Nog een belangrijk stuk dat je waarschijnlijk overal zal tegenkomen is de vertaling naar het Frans. De resources van het Frans en het Nederlands worden opgeslagen in een aparte file. Om deze op te halen gebruikt het programma de volgende code: Private Sub TaalInstellen(ByVal taal As String) Thread.CurrentThread.CurrentCulture = New CultureInfo(taal) Thread.CurrentThread.CurrentUICulture = New CultureInfo(taal) End Sub
Eindwerk van Tom Meul en Pieter Scheldeman
49
50
Toonbank kassa voor gemeentebesturen
7.3.14 Beheer betalingswijzen
De BTW-codes zullen standaard in het programma zitten zodat er geen BTW-codes meer moeten worden toegevoegd. Hier voorzien we het beheer van de verschillende betalingswijzen. Het aanmaken, wijzigen en verwijderen (enkel visueel) van betalingswijzen moet mogelijk zijn.
Figuur 31: Beheer betalingswijzen
Wanneer er maar één betalingswijze beschikbaar is, krijgt de verkoper geen scherm te zien waaruit hij kan kiezen maar dan wordt de bestelling rechtstreeks gekoppeld aan die ene betalingswijze.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.15 Beheer betalingswijzen (technisch)
Een eerste stuk code dat al in de vroegere versie van het project aanwezig was, is een extra uitbreiding voor een ContextMenuStrip Public WithEvents mnuNieuweIngave As New UltimateMenus.KunalMenuItem Public WithEvents mnuVerwijderdeElementenTerugHalen As New UltimateMenus.KunalMenuItem
Deze code maakt de menu-items aan via de nieuwe DLL die moet worden toegevoegd aan het project. Hiermee kan je ook een afbeelding instellen voor de bewerking die je ziet op het scherm. Een tweede stuk code is om de betalingswijzen zelf op te maken. Dit gebeurt door een Usercontrol aan te maken van het type betalingswijze en in de constructor voegt hij zichzelf toe aan de panel. Private Sub opmakenBetalingswijze(ByVal betalingswijze As clsBetalingswijze) Try Dim NieuweBetalingswijze As New ucBetalingswijze(betalingswijze, Me, IngelogdeGebruiker.Taal) Catch ex As Exception clsLog.logFile(ex) End Try End Sub
Ieder formulier gebruikt dezelfde soort methode om alle velden te controleren of ze al dan niet zijn ingevuld. Dit is een voorbeeld van de betalingswijzen. Private Sub ControleOfAlleVeldenIngevuldZijn() If txtNaam1.Text <> "" And txtVerkorteNaamFR.Text <> "" And txtVerkorteNaamNL.Text <> "" Then btnWijzigen.Enabled = True btnAnnuleren.Enabled = True Else btnWijzigen.Enabled = False btnAnnuleren.Enabled = True End If End Sub
Eindwerk van Tom Meul en Pieter Scheldeman
51
52
Toonbank kassa voor gemeentebesturen
7.3.16 Beheer soort artikelen
Hier specifiëren we het soort artikelen. We kunnen nieuwe soorten toevoegen, soorten wijzigen of soorten verwijderen. Tot deze soorten kunnen meerdere artikelen behoren.
Figuur 32: Beheer soorten artikelen
Uitleg grafisch overzicht De afbeelding hierboven geeft het beheer van alle soorten artikelen weer. Een nieuw artikel zal immers altijd tot een soort moeten behoren. We kunnen hier nieuwe soorten toevoegen of soorten wijzigen. Bij de verschillende licenties zullen er ook verschillende soorten artikelen worden weergegeven.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
Functionaliteiten Toevoegen van nieuwe soorten We kunnen door te klikken op de knop “Toevoegen” een nieuwe artikelensoort toevoegen. Doordat we op deze knop klikten worden alle velden leeggemaakt en kunnen we de nieuwe gegevens ingeven. Eenmaal alle verplichte velden correct en volledig werden ingegeven, kunnen we op “Accepteren” klikken waardoor de gegevens worden bewaard in de database. Wijzigen gegevens van een soort We kunnen ook de gegevens van een reeds bestaande soort gaan wijzigen door de soort aan te klikken en de nieuwe gegevens in te geven. Eenmaal we de verplichte velden correct invulden, kunnen we klikken op “Accepteren” waardoor de gegevens worden bewaard in de database. Annuleren van de wijzigingen Uiteraard kunnen we ook hier eventuele wijzigingen ongedaan maken, zolang we nog niet op “Accepteren” hebben geklikt. Belangrijkheden 9 De verplichte velden zijn de volgende: “Omschrijving Nederlands en Omschrijving Frans”.
Eindwerk van Tom Meul en Pieter Scheldeman
53
54
Toonbank kassa voor gemeentebesturen
7.3.17 Beheer soort artikelen (technisch)
In ieder formulier dat gegevens nodig heeft die in de lokale database staan, wordt de connectiestring terug op standaard gezet. Het is immers zo dat wanneer je aanmeldt als administrator de connectiestring van de server wordt gekopieërd in de connectiestring van de lokale database. Deze code zet de connectiestring terug op standaard. Public Sub ConnectionStringTerugOpStandaard() Try Dim sDB As String = clsConnectieInstellingen.ConnectionString.Split(";")(0) Dim sLocalOfServer As String = "Data Source=" & clsConnectieInstellingen.Temp Dim sGebruikersnaam As String = clsConnectieInstellingen.ConnectionString.Split(";")(2) Dim sPaswoord As String = clsConnectieInstellingen.ConnectionString.Split(";")(3) clsConnectieInstellingen.ConnectionString = sDB + ";" + sLocalOfServer + ";" + sGebruikersnaam + ";" + sPaswoord Catch ex As Exception clsLog.logFile(ex) End Try End Sub
Public Sub ConnectionStringTerugOpServer() clsConnectieInstellingen.ConnectionString = clsConnectieInstellingen.ConnectionStringServer End Sub
Een manier om de textboxen en de andere controls leeg te maken is de volgende methode. Deze is onafhankelijk van het aantal textboxen, radiobuttons of comboboxen want in een lus worden alle textboxen die het programma in het formulier vindt, leeggemaakt. Private Sub LeegmakenTextboxen() For Each ctrl As Control In gpbAlgemeen.Controls If ctrl.GetType.Name = "TextBox" Then Dim t As TextBox = CType(ctrl, TextBox) t.Clear() End If Next End Sub Private Sub ReadonlyTextboxen(ByVal b As Boolean) For Each ctrl As Control In gpbAlgemeen.Controls If ctrl.GetType.Name = "TextBox" Then Dim t As TextBox = CType(ctrl, TextBox) t.Enabled = Not b End If Next End Sub
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.18 Beheer afdelingen
In een gemeente zijn verschillende afdelingen zoals deze zijn weergegeven in figuur 1. De afdelingen moeten uiteraard kunnen worden beheerd. Dit zal hier gebeuren. Zoals bij de voorgaande groepen zal men ook hier afdelingen kunnen toevoegen, wijzigen en verwijderen.
Figuur 33: Beheer afdelingen
Uitleg grafisch overzicht We krijgen hier het beheer van de verschillende afdelingen. Elke afdeling heeft een aantal specifieke kenmerken die we hier bijhouden. Sommige gegevens zullen ook terecht komen op facturen of overzichten. We zien opnieuw onze twee delen: de view onderaan die een beknopte weergave geeft en dan bovenaan in detail onze geselecteerde afdeling.
Eindwerk van Tom Meul en Pieter Scheldeman
55
56
Toonbank kassa voor gemeentebesturen
Functionaliteiten Toevoegen van nieuwe afdelingen We kunnen via de knop “Toevoegen” de gegevens van een nieuwe afdeling in de database toevoegen. Indien we klikken op “Toevoegen“ worden al onze velden leeggemaakt en kunnen we de nieuwe gegevens ingeven. Belangrijk is dat alle verplichte velden correct en volledig moeten worden ingevuld. Enkel dan zal “Accepteren” beschikbaar worden. Indien we klikken op “Accepteren” worden de nieuwe gegeven en dus de nieuwe afdeling toegevoegd aan de database. Wijzigen gegevens van een afdeling Reeds bestaande afdelingen kunnen we uiteraard wijzigen. Dit doen we door simpelweg te klikken op de desbetreffende afdeling in de view onderaan en dan de gegevens in het bovenste deel aan te passen. Eenmaal alle verplichte velden correct werden ingevuld, kunnen we klikken op “Accepteren” en kunnen we de gewijzigde gegevens opslaan in de database. Annuleren van de wijzigingen of toevoegingen We kunnen, zolang we niet op “Accepteren” klikten, de reeds gedane wijzigingen annuleren door op “Annuleren” te klikken. Hierdoor komen we terecht op de voorgaande situatie. Belangrijkheden 9 De verplichte velden bij afdelingen zijn: “Omschrijving Nederlands, Omschrijving Frans, prefix, straat en nummer, postcode, gemeente, BTW-nummer, e-mailadres, rekeningnummer, RPR-nummer” 9 De velden “Omschrijving Nederlands en Omschrijving Frans” hebben we nodig in o.a. de rapporten. Vandaar dat deze velden verplicht zijn. 9 “Prefix” is één van de belangrijkste velden op deze pagina. Deze prefix dient voor de opmaak van het bestelbonnummer per bestelling dat wordt geplaatst. Aan de hand hiervan kunnen we een uniek ID voor de bestelbon genereren. Per afdeling is steeds een andere prefix vereist. Dit betekent dat dubbels niet zijn toegelaten. 9 “Straat en nummer, postcode en gemeente” hebben we dan weer nodig voor het correct kunnen opstellen van facturen die enkel voor klanten van ons programma van toepassing zijn. Op de factuur dient wettelijk verplicht ons adres vermeld te staan. Deze gegevens halen we dus hieruit. 9 “BTW-nummer, e-mailadres, rekeningnummer, RPR-nummer” komen ook voor op eventuele facturen en moeten wettelijk verplicht worden vermeld. Deze gegevens zijn dus verplicht in te geven.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen 9 Daarnaast kunnen we ook nog een logo instellen. Dit logo zal dan worden gebruikt bij de rapporteren in de koptekst. Het logo dat je kiest, wordt binair opgeslagen in de database. Daardoor mag je het verwijderen van jouw systeem eenmaal het is toegevoegd aan de database. 9 De “mogelijke betalingswijzen” zijn van wezenlijk belang bij het plaatsen van bestellingen. Eenmaal men de bestelling plaatst, dient men op te geven hoe de klant heeft betaald. Hier bepalen we dus welke afdeling welke betalingswijze aanvaardt. Het is immers niet zo dat alle afdelingen dezelfde betalingswijzen hebben. We dienen hier minimaal één betalingsmogelijkheid te selecteren. 9 We kunnen deze mogelijke betalingswijzen ook op een bepaalde pagina plaatsen. Stel dat pagina één helemaal volstaat met betalingsmogelijkheden dan kunnen we deze betalingsmogelijkheid hier voor die afdeling op een andere pagina zetten.
Eindwerk van Tom Meul en Pieter Scheldeman
57
58
Toonbank kassa voor gemeentebesturen
7.3.19 Beheer afdelingen (technisch)
Volgende code komt veel voor in alle andere formulieren bij het opmaken van de listview. Private Sub OpmakenListview() Try Dim oHeader As New ColumnHeader oHeader.Text = rm.GetString("lblOmschrijving.Text") oHeader.Width = 150 lvwAfdelingen.Columns.Add(oHeader) Dim oHeader1 As New ColumnHeader oHeader1.Text = rm.GetString("lblOmschrijvingFR.Text") oHeader1.Width = 150 lvwAfdelingen.Columns.Add(oHeader1) Dim oHeader6 As New ColumnHeader oHeader6.Text = rm.GetString("lblPostcode.Text") oHeader6.Width = 80 lvwAfdelingen.Columns.Add(oHeader6) Dim oHeader3 As New ColumnHeader oHeader3.Text = rm.GetString("lblGemeente.Text") oHeader3.Width = 100 lvwAfdelingen.Columns.Add(oHeader3) Dim oHeader5 As New ColumnHeader oHeader5.Text = rm.GetString("lblBTWNummer.Text") oHeader5.Width = 150 lvwAfdelingen.Columns.Add(oHeader5) Catch ex As Exception clsLog.logFile(ex) End Try End Sub
Dit heeft als voordeel dat je gemakkelijk kolommen kunt toevoegen zonder dat je iets moet wijzigen aan de GUI van het programma. Een belangrijk item is de betalingswijzen die je kan kiezen. Je moet er altijd één kiezen want het programma kan geen bestellingen plaatsen zonder een betalingswijze. Ook kan je kiezen op welke pagina de betalingswijze zich bevindt.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.20 Beheer schermen
Dit is één van de grotere beheerschermen. Hier geven we de administrator de mogelijkheid om nieuwe schermen toe te voegen, te wijzigen en te verwijderen. Deze schermen zal de uiteindelijke verkoper te zien krijgen bij het plaatsen van een bestelling. Hier dient de administrator de schermen naar eigen wens te kunnen instellen. 9 Beheer artikelen Dit zit eigenlijk vervat in het beheer van de schermen. Aan een scherm kunnen we gemakkelijk een artikel toevoegen, wijzigen of verwijderen. De artikelen kunnen hier ook tijdelijk verwijderd worden en eventueel later terug opgehaald worden. 9 Beheer knoppen Het beheer van de knoppen omvat het instellen van een knop als zijnde een redirect-, artikel- of commentaarknop. Deze drie zijn de types knoppen die we beschikbaar hebben in ons programma. Verder kunnen we knoppen ook zichtbaar of onzichtbaar zetten.
Figuur 34: Beheer artikel schermen
Eindwerk van Tom Meul en Pieter Scheldeman
59
60
Toonbank kassa voor gemeentebesturen
Functionaliteiten Artikel verplaatsen Klik op het artikel en versleep het met de muis naar de gekozen positie. Druk daarna op wijzigen om het artikel op te slaan met de huidige instellingen in de database. Je kan ook het artikel verplaatsen naar een ander scherm. Dit gebeurt door met de rechtermuisknop te klikken op de panel en dan te kiezen voor verplaatsen
Figuur 35 : Artikel verplaatsen
Scherm verwijderen Het geselecteerde scherm kan verwijderd worden door op het rode kruis te klikken naast de naam van het scherm. Deze is automatisch uit de database verwijderd en kan niet meer geannuleerd worden. Het scherm verwijderen kan pas na de bevestiging.
Figuur 36 : Geselecteerde scherm verwijderen
Artikel verwijderen Klik met de rechtermuisknop op het artikel en klik op verwijderen. Het artikel is niet verwijderd maar is onzichtbaar gezet in de database. Om de actie ongedaan te maken en het artikel terug te roepen klik je met de rechtermuisknop naast het artikel, dus rechtstreeks op de panel,om het artikel terug te halen.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
Artikel koppelen Je kan één artikel koppelen aan meerdere artikels. Dit heeft als voorbeeld om extra prijzen aan te rekenen of een bonus mee te geven met het artikel. Om artikelen te kunnen koppelen klik je met de rechtermuisknop op het artikel en selecteer je artikels koppelen.
Figuur 37 : Artikel koppelen
Nieuw artikel toevoegen Klik met de rechtermuisknop op de panel en selecteer nieuwe ingave om een nieuw artikel toe te voegen. Er zal een vierkant op het scherm komen waar je dan de gegevens kunt van wijzigen.
Eindwerk van Tom Meul en Pieter Scheldeman
61
62
Toonbank kassa voor gemeentebesturen
Gegevens van het scherm wijzigen Klik met de rechtermuisknop op de panel en kies voor gegevens wijzigen. Hiermee kun je de naam van een bestaand scherm aanpassen op opslaan.
Figuur 38 : Gegevens wijzigen
Nieuw scherm toevoegen Een nieuw scherm toevoegen gebeurt via de rechtermuisknop op de panel. Selecteer nieuw scherm toevoegen en vul de gegevens in.
Figuur 39 : Nieuw scherm toevoegen
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.21 Beheer schermen (technisch)
Een belangrijk stuk code is het opmaken van de verschillende artikelen, redirects en commentaren. Private Sub opmakenArtikel(ByVal artikel As clsArtikel) Dim nieuwArtikel As New ucArtikelArtikel(Me, artikel, IngelogdeGebruiker.Taal) 'AddHandler nieuwArtikel.ItemVerwijderd, AddressOf itemVerwijderd End Sub Private Sub opmakenRedirect(ByVal artikel As clsArtikel) Dim nieuwRedirect As New ucArtikelRedirect(Me, artikel, IngelogdeGebruiker.Taal) 'AddHandler nieuwRedirect.ItemVerwijderd, AddressOf itemVerwijderd End Sub Private Sub opmakenCommentaar(ByVal artikel As clsArtikel) Dim nieuwCommentaar As New ucArtikelCommentaar(Me, artikel, IngelogdeGebruiker.Taal) 'AddHandler nieuwCommentaar.ItemVerwijderd, AddressOf itemVerwijderd End Sub
De elementen zelf worden dan opgemaakt in de constructor net zoals de betalingswijzen. Ze worden dan toegevoegd aan het scherm op de juiste positie en met de juiste opmaak.
Eindwerk van Tom Meul en Pieter Scheldeman
63
64
Toonbank kassa voor gemeentebesturen
7.3.22 Beheer zalen
Indien de licentie het beheer van de zalen toelaat, dan komt er een extra knop zichtbaar in het hoofdvenster. De administrator kan hier zalen toevoegen en verwijderen. Wanneer je dubbelklikt op een zaal, worden de tafels getoont. We overlopen even de mogelijkheden.
Figuur 40 : Beheer zalen
Functionaliteiten Nieuwe zaal toevoegen Om een nieuwe zaal toe te voegen klik je met de rechtermuisknop op de panel en selecteer je nieuwe zaal. Je krijgt een venster waarin je de naam van de zaal moet ingeven. Deze naam is best uniek per zaal om verkeerde gegevens te vermijden. Nieuwe tafel toevoegen Wanneer je dubbelklikt op een zaal of je selecteert een zaal uit de lijst dan kom je in het tafeloverzicht terecht. Hierin kan je, op dezelfde manier zoals een zaal, een tafel toevoegen. Zaal of tafel verplaatsen Klik op de zaal of op de tafel en verplaats deze met de muis. Klik op wijzigen om de aanpassingen op te slaan.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.23 Rapporten
Doorheen de applicatie worden de verschillende bestellingen en verkopen geregistreerd. Aanvankelijk gebeurt dit op het lokale systeem en bij het afsluiten van de applicatie worden deze bestellingen doorgegeven aan de centrale server. Op deze server dient de administrator te kunnen inloggen en alle gegevens te bekomen in de vorm van rapporten.
Figuur 41: Rapporten
Eindwerk van Tom Meul en Pieter Scheldeman
65
66
Toonbank kassa voor gemeentebesturen
7.3.24 Rapporten (technisch)
Bij het opmaken van de rapporten moeten soms parameters meegegeven worden. De onderstaande code zorgt ervoor dat je de parameters kunt meegeven voordat het rapport wordt getoond. If report.GetType.Name.ToLower = "cralleartikels" Then Dim crAlleArtikels As New crAlleArtikels crAlleArtikels.SetParameterValue("Naam", NaamBedrijf) crAlleArtikels.SetParameterValue("Adres", Adres) crAlleArtikels.SetParameterValue("Gemeente", Gemeente) crAlleArtikels.SetParameterValue("Telefoon", Telefoon) crvReportViewer.ReportSource = crAlleArtikels End If
Het belangrijkste rapport is de factuur. Deze wordt opgebouwd met onderstaande code. Dim crfactuur As New crFactuur crfactuur.SetParameterValue("Factuur", bestellingID) crfactuur.SetParameterValue("FirmaNaam", NaamBedrijf) crfactuur.SetParameterValue("FirmaAdres", Adres) crfactuur.SetParameterValue("FirmaGemeente", Gemeente) crfactuur.SetParameterValue("FirmaTelefoon", Telefoon) crfactuur.SetParameterValue("FirmaFax", Fax) crfactuur.SetParameterValue("FirmaEmail", Email) crfactuur.SetParameterValue("FirmaBTW", BTW) crfactuur.SetParameterValue("FirmaRekeningnummer", Rekeningnummer) crfactuur.SetParameterValue("FirmaRPR", RPR) crfactuur.SetParameterValue("Naam", klant.Naam & " " & klant.Voornaam) crfactuur.SetParameterValue("Adres", klant.Straat) crfactuur.SetParameterValue("Gemeente", klant.Postcode & " " & klant.Gemeente) ' Iterate over collection, processing each ParameterFieldDefinition Dim totaalprijsCheck As Integer = 0 For Each bestelling As clsBestellingen In BestellingenOpenPerKlant totaalprijsCheck += bestelling.Totaal Next If totaalprijsCheck < 0 Then crfactuur.SetParameterValue("FacofCred", "Creditnota") Else crfactuur.SetParameterValue("FacofCred", "Factuur") End If crvReportViewer.ReportSource = crfactuur If afkomst.bAfdrukken = True Then crfactuur.PrintToPrinter(1, False, 0, 0) End If
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.25 Configuratiescherm
Via dit venster kunnen we de essentiële onderdelen van het programma configureren.
Figuur 42: Configuratiescherm
U ziet de verschillende onderdelen die in het configuratiescherm staan die noodzakelijk zijn om het programma te laten werken met externe apparaten zoals servers en printers. De verschillende icoontjes zorgen voor een gemakkelijk overzicht en een gebruiksvriendelijke applicatie. Vanaf de volgende pagina worden de verschillende onderdelen van het configuratiescherm besproken.
Eindwerk van Tom Meul en Pieter Scheldeman
67
68
Toonbank kassa voor gemeentebesturen
7.3.26 Database– en verbindingsinstellingen
Als de verbindingsinstellingen moeten worden gewijzigd, kan je dat via dit scherm doen.
Figuur 43: Database instellingen
Er kan maar geaccepteerd worden nadat het vinkje van de lokale instellingen aangevinkt staat. Omdat te bekomen moet je de juiste gegevens invullen en op test drukken. De tweede test staat er om de server instellingen op te slaan maar deze zijn niet noodzakelijk omdat de applicatie alleen gebruik maakt van de server wanneer de administratie moet worden uitgevoerd. U kunt altijd maar één database selecteren. Deze moet de naam “kassabeheergemeente” hebben. Dit is één van de voorwaarden om de applicatie te laten werken met de database. De server en de lokale database moeten ook dezelfde login en paswoord krijgen.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.27 Printerinstellingen
Als er een nieuwe printer is of als er een printer moet worden gewijzigd, doe je dat via dit scherm.
Figuur 44: Printer instellingen
Voor het zalenbeheer komt er onderaan nog een extra controle bij voor het afdrukken van de tussenbestellingen, de eindrekening of beide. Verschillende printers kunnen hier worden ingesteld en kunnen worden gekoppeld aan de artikelen. Er kan een logo ingesteld worden. Dit is verplicht een Bitmap te zijn. De voettekst is niet noodzakelijk maar is de eindregel aan ieder ticket die ook zal worden afgedrukt. Dit kan een begroeting zijn of een “Dank u wel”.
Eindwerk van Tom Meul en Pieter Scheldeman
69
70
Toonbank kassa voor gemeentebesturen
7.3.28 Licentiebeheer
Als jouw licentie bijna vervallen is of je wenst gebruik te maken van extra modules, dan kan je hier een nieuwe licentiecode invullen.
Figuur 45: Beheer licentie
Wanneer de licentie gewijzigd is, zal de administrator meer of minder mogelijkheden hebben. Het linkermenu zal aangepast worden afhankelijk van de gekozen licentie. 9 Administratie: Hiermee kan de administrator al dan niet het beheer van de applicatie doen. 9 Personeel: Dit kenmerkt de applicatie of het een administratieve applicatie is of er ook personeel aanwezig is om bestelling te kunnen doen. 9 Zaalbeheer: Als deze module is aangevinkt dan wordt er een extra functie beschikbaar in het hoofdscherm. Met de extra functie kunnen zalen en tafels toegevoegd worden. 9 Betaalbeheer: Met deze module kan de verkoper de bestellingen plaatsen en uit een reeks van betalingswijzen kiezen. 9 Rapporten: De administrator kan de rapporten van de server opvragen.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.29 Openstaande tafels
Deze link opent een rapport om te zien welke tafels er nog opstaan. Men ziet het tijdstip, de verkoper en de prijs per bestelling die nog moet worden afgerekend.
Figuur 46 : Rapport openstaande tafels
Eindwerk van Tom Meul en Pieter Scheldeman
71
72
Toonbank kassa voor gemeentebesturen
7.3.30 Synchronisatie
Zoals eerder vermeld werkt de administrator rechtstreeks op de server. De verkopers moeten met de meest recente gegevens kunnen werken. Daarom zal er een parameter aangepast worden als de administrator wijzigingen uitvoert. Door deze parameter weet de cliënt (werkstation van de verkoper) dat hij moet updaten met de centrale server. Indien er zich problemen voordoen met de verbinding tussen de cliënt en de server kan men zonder problemen lokaal verder werken. De client krijgt dit venster te zien bij het opstarten van de applicatie. Alle relevante gegevens die de administrator heeft gewijzigd, worden gesynchroniseerd. Ook bij het afsluiten, als de bestellingen moeten worden verzonden, wordt dit scherm getoond om de vooruitgang te zien.
Figuur 47: Synchronisatie
Zodra één van de stappen afgewerkt is, komt er een vinkje of een kruisje te staan dat aantoont of de verwerking al dan niet juist verliep.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.31 Gebruiker
Als je op het loginscherm inlogt met een gebruiker en vervolgens een wachtwoord intypt, kom je terecht in het verkoopscherm.
1 3 2 Figuur 48: Overzicht gebruiker
Er zijn 3 grote delen in dit scherm. 9 Nummer 1 Hier ziet u een overzicht van de bestelde artikelen. Dit is uitklapbaar door te dubbelklikken op een artikel als er meer dan 6 artikelen aanwezig zijn in de lijst. 9 Nummer 2 In dit onderdeel komen alle artikelen onderverdeeld in categorieën. Je selecteert de gewenste artikelen voor de bestelling en deze worden in het overzicht geplaatst. 9 Nummer 3 De bediening is over de hele rechterkant zichtbaar. Je kan hieronder alle functies die onder de knoppen zitten bekijken.
Eindwerk van Tom Meul en Pieter Scheldeman
73
74
Toonbank kassa voor gemeentebesturen
7.3.32 Functies van de kassa
9
Kassa aanpassen
Dit is een numeriek toetsenbord waar we een bedrag kunnen ingeven. Dit is het bedrag dat in de kassa wordt gelegd of uit de kassa wordt genomen. Door de wisselknop “+/-“ kunnen we een positieve of een negatieve waarde ingeven. Wanneer we op “Accepteren” klikken, wordt de waarde verrekend. De waarde van de kassa wordt wel enkel onthouden gedurende de loop van het programma. Eenmaal afgesloten wordt de kassa gereset.
Figuur 49: Kassa aanpassen
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen 9 Kassa overzicht bekijken Met deze functionaliteit kunnen we bekijken hoeveel er per betalingswijze al verkocht is. Alsook kunnen we zien hoeveel er al uit of in kassa ging. Indien we hierop klikken, wordt de listview aangepast en krijgen we volgend overzicht:
Figuur 50: Kassa overzicht
We krijgen dus alle betalingswijzen te zien die beschikbaar zijn. Naast elke betalingswijze zien we het totaal dat al werd verkocht langs deze betalingswijze. Merk op dat we nu al 50 € uit de kassa hebben gehaald. Dit zien we doordat 50 een negatief bedrag is. Eveneens wordt een globaal totaal voorzien.
Eindwerk van Tom Meul en Pieter Scheldeman
75
76
Toonbank kassa voor gemeentebesturen 9 Klant wisselen Met deze functionaliteit kunnen we het toetsenbord oproepen. Hiermee kunnen we dan een andere klant selecteren dan de klant die we aanvankelijk gekozen hadden. Het toetsenbord ziet er als volgt uit:
Figuur 51: Klant opzoeken
Dit toetsenbord laat ons toe om klanten op te zoeken. We kunnen één of meerdere letters intikken en dan wordt gezocht of er klanten zijn met de ingegeven karakters. Hierdoor kunnen we de nieuwe klant voor wie we de bestelling doorvoeren, ingeven. Ook tijdens het plaatsen van een bestelling kan dit scherm opgevraagd worden om van klant te veranderen. Indien geen klant wordt gevonden met de ingegeven karakters, krijgen we een melding.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen 9 Prullenbak Hiermee kunnen we artikelen die opgenomen zijn in de bestelling, en dus in de listview staan, verwijderen. Eventueel gekoppelde artikelen worden dan ook verwijderd voor het correcte aantal.
Figuur 52: Overzicht item verwijderen
Eindwerk van Tom Meul en Pieter Scheldeman
77
78
Toonbank kassa voor gemeentebesturen 9 Afmelden Via deze knop meld je jezelf af en kom je terug in het loginscherm terecht. Daarna kan je wederom een nieuwe sessie, eventueel met een nieuwe verkoper, starten.
Figuur 53: Overzicht afmelden
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen 9 Aantallen ingeven Als je een grotere bestelling van een bepaald artikel hebt, kan je via het numerieke toetsenbord een gewenst aantal intypen. Vervolgens klik je het desbetreffende artikel aan. In de lijst wordt het artikel samen met het ingegeven aantal toegevoegd.
Figuur 54: Overzicht aantallen ingeven
Eindwerk van Tom Meul en Pieter Scheldeman
79
80
Toonbank kassa voor gemeentebesturen 9 Crediteren Als er een foutje in een vorige bestelling is geslopen, kan je een creditnota opstellen. Je klikt eerst op de wisselknop “+/-”, dan klik je op het eerder fout ingevoerde artikel. Je zal zien dat het artikel wordt toegevoegd met een negatief aantal.
Figuur 55: Overzicht crediteren
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen 9
Bestelling plaatsen
Als je een bestelling wil plaatsen, moet je eerst kiezen tussen een particulier of een klant uit het klantenbestand. Daarna, afhankelijk van de afdeling en de instellingen, zie je de betalingswijzen tevoorschijn komen. Indien er maar één betalingswijze aanwezig is, zie je geen betalingswijzen en wordt de bestelling direct geplaatst.
Figuur 56: Overzicht bestelling plaatsen
Eindwerk van Tom Meul en Pieter Scheldeman
81
82
Toonbank kassa voor gemeentebesturen 9 Bestelling annuleren Je kan te allen tijde een bestelling annuleren om zo direct opnieuw te kunnen beginnen. Alles komt terug naar de begintoestand zonder jouw wijzigingen bij te houden.
Figuur 57: Overzicht bestelling annuleren
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.33 Voorbeeld: Stapsgewijs een bestelling plaatsen
In dit voorbeeld hebben we op de particuliere klant geklikt. Je krijgt vervolgens het startscherm van de verkoper te zien. In dit geval het scherm “Diversen”. Je kan de gewenste artikelen aanklikken om zo toe te voegen aan de lijst. Als alle artikelen zijn ingegeven klik je op het groene V’tje.
Figuur 58: Voorbeeld stap 1
Eindwerk van Tom Meul en Pieter Scheldeman
83
84
Toonbank kassa voor gemeentebesturen
Als er meerdere betalingswijzen zijn binnen jouw afdeling, krijg je de keuze. Is er maar één betalingswijze aanwezig is, bijvoorbeeld cash, dan wordt er onmiddellijk afgerekend en rolt er een kassaticket uit de printer.
Figuur 59: Voorbeeld stap 2
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
De bestelling is geregistreerd. Je kan nu een nieuwe klant bedienen.
Figuur 60: Voorbeeld stap 3
Eindwerk van Tom Meul en Pieter Scheldeman
85
86
Toonbank kassa voor gemeentebesturen
7.3.34 Keygenerator
Het is voor de verdeler van het softwarepakket zeer belangrijk dat de klant een licentie moet aankopen voor dat het pakket in gebruik kan worden genomen. Daarom hebben we ook een keygenerator ontwikkeld voor het genereren van licentiesleutels. Via het programma zelf kan een aanvraag ingediend worden op het initiële scherm voor zo’n licentie. Via e-mail worden de relevante gegevens van de klant mee verzonden. Vervolgens kan de verdeler een sleutel laten genereren door de keygenerator. Afhankelijk van de wensen van de klant kunnen verschillende parameters meespelen in de licentie. De vervaldatum van de licentie is ook van belang alsook de bedrijfsnaam en de serienummer van de harde schijf. Het resultaat van de keygenerator is een code van 18 alfanumerieke karakters.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
7.3.35 Keygenerator (technisch)
Een belangrijk stuk code in het genereren van de licentiesleutel aan de hand van de volume serial number van de harde schijf: Dim disk As ManagementObject = New ManagementObject("win32_logicaldisk.deviceid=""C:""") disk.Get() txtSerienummer.Text = disk("VolumeSerialNumber").ToString()
De elementen zelf worden dan opgemaakt in de constructor net zoals de betalingswijzen. Ze worden dan toegevoegd aan het scherm op de juiste positie en met de juiste opmaak.
Eindwerk van Tom Meul en Pieter Scheldeman
87
88
Toonbank kassa voor gemeentebesturen
7.3.36 Promotiewebsite www.tkg.be
Om het pakket te promoten moest er een promotiewebsite ontwikkeld worden. Onze voorkeur ging uit naar een flash website met een slideshow. Er is ook de mogelijkheid om vragen en/of opmerkingen te verzenden naar Dhr. Deprez via de site. De website wordt gehost op de eigen server van D.I.S.C. bvba en is te bereiken op >> http://www.tkg.be
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
8 8. P
ROBLEMATIEK MET EVENTUELE OPLOSSINGEN
In dit hoofdstuk willen we de moeilijkheden die we ondervonden, toelichten. Als studenten zijn we steeds gewoon geweest om een project aan te vatten van bij het begin. Nu stonden we voor de opdracht om verder te bouwen aan een bestaand project. Dat wil zeggen dat er een groot stuk vooronderzoek aan te pas kwam. Hoe zit het programma in elkaar? Welke technieken gebruikten onze voorgangers? We begonnen met het restoren van de database. Het betreft hier een MySQL database. Via de MySQL Administrator trachtten we dit te doen, met de nodige problemen van dien. Het probleem was dat de “global max_allowed_packet size” te klein stond ingesteld. Het vorige project was ontwikkeld in VB.net 2003. We hebben het volledig omgezet naar VB.net 2005, wat niet van een leien dakje liep. Na de nodige errors, warnings en voldoende “Googlen” kwamen we tot een “succesfully build” project. Eens we aan het programmeerwerk toekwamen, kregen we te maken met “stored procedures” die plots leken te verdwijnen zodra je werkte met de MySQL Administrator. Wanneer we stored procedures toevoegden, kon het op onregelmatige basis zijn dat er weer andere verloren gingen. De oplossing hiervoor is echter niet te verklaren, maar met de MySQL Query Browser bleken de problemen opgelost te zijn. De validatie‐controle was gebaseerd op het MAC-adres van de aanwezige netwerkkaart. Niet elke PC beschikt over een netwerkkaart maar hoogstwaarschijnlijk wel over een harde schijf. Daarom gingen we aan de slag met de HD-serienummer, dat uniek is voor elke harde schijf. Het probleem stak pas later de kop op, toen we gingen testen op een Vista-machine. De code was niet geschikt voor dit besturingssysteem. De oplossing was met het volume serial number te werken. Synchroniseren was en is nog steeds van belang voor een consistente werking tussen de verschillende gemeentes. Dit onderdeel was aanwezig, maar vrij rudimentair. Zodra meerdere gebruikers verboden waren met het systeem, leidde dit tot fouten met alle gevolgen van dien zoals gegevens die overschreven werden. Dit euvel is opgelost door de nodige controles en veiligheden. Als we willen synchroniseren moeten we connectie kunnen maken met de centrale server. Dit zal gebeuren over het internet. Via een vast IP-adres is er geen enkel probleem eens de router correct geconfigureerd is. Dikwijls is dit niet het geval en deelt de provider om de 36u een nieuw IP-adres uit. Vandaar dat we een systeem dat een dynamisch IP-adres verbindt met een domeinnaam hebben opgezet. Dit systeem is disc.no‐ip.info. Er kan natuurlijk ook gebruikt gemaakt worden van een VPN-verbinding, maar dit brengt weer extra kosten met zich mee zoals een VPN-router.
Eindwerk van Tom Meul en Pieter Scheldeman
89
90
Toonbank kassa voor gemeentebesturen
Na dat de bestelling is afgehandeld moet er een kassaticket op een thermische printer worden afgedrukt. We konden gebruik maken van een ticketprinter met een seriële interface. Dit gaf in het begin geen problemen maar nadat het systeem meerdere malen was getest, bleek het niet meer te werken. Na uitvoerig testen van poorten en verschillende configuraties bleek het probleem bij Windows XP te liggen. De voorlopige oplossing vonden we in het afdrukken via een gedeelde printer op een Windows 98 machine. De uiteindelijke oplossing is een ticketprinter die via parallelle interface of USB werkt. Om de gedeelde printer toe te voegen op een Vista-machine waren er weer aanpassingen nodig. Problemen met vista In het begin was het programmeren nog op XP maar we wilden alle mogelijkheden testen om naar de toekomst toe nog meer klanten te lokken en nog meer oplossingen aanbieden. Daarom begon Pieter te programmeren in Vista. Dit zijn een aantal problemen die zich voordeden tijdens de ontwikkeling van het programma. Het eerste probleem was dat Visual studio 2005 niet 100 % compatibel was met Vista. De oplossing was echter niet moeilijk te vinden: Visual studio 2005 SP1 voor Windows Vista. Na de installatie van dit pakket waren de meeste problemen van de baan. Tweede probleem lag echter bij een ander aspect, de ticketprinters. Voor Vista zijn er maar weinig printerdrivers beschikbaar. Om netwerkprinters te installeren was de oplossing om via de Commandprompt een speciaal commando uit te voeren. Het installeren gebeurde dan in verschillende stappen. Je moest een printer toevoegen via de gewone LPT poort via de Windows Vista of XP driver. Daarna via het commando de printer aan het netwerk koppelen. Hieronder zie je welk commando nodig is om de printer aan het netwerk te koppelen
Figuur 61 : Problemen printer
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
9 9. W
ERKMETHODEN/ACTIES
De opdracht volledig begrijpen is van essentieel belang om tot een goed resultaat te komen. Als we met belangrijke vragen zaten, stelden we ze aan de stagebegeleider. Met wekelijkse of soms frequentere evaluaties wisten we of we nog op het juiste pad zaten. Om dit project aan te vatten, moesten we eerst voldoende onderzoeken wat de applicatie juist inhield. Het projectdossier van de vorige studenten hielpen ons al een heel stuk op weg om de volledige werking van het project te begrijpen. Toch was er veel werk om alle nieuwe dingen op te zoeken. Vooral het werken met vista was een ervaring apart. Dit was een project waar we met 2 personen aan gewerkt hebben. Een correcte taakverdeling heeft ons goed geholpen doorheen de stage.
Eindwerk van Tom Meul en Pieter Scheldeman
91
92
Toonbank kassa voor gemeentebesturen
10. 10
PLANNING
10.1 Aanvankelijke planning Week
Eerste helft
Tweede helft
Week 1 Organiseren van het bronmateriaal Database importeren Evaluatie van het project na installatie
Databasestructuur en project bespreken Vereenvoudiging loginschermen en nieuw ontwerp Invoer van initiële form voor database connectie instellingen Optimalisatie van de bestaande GUI's
Week 2 Projectfiche invullen en planning opstellen Verder afwerken van initiële form + afwerking loginscherm Optimalisatie bestaande GUI's Validatiecontrole ontwikkelen op basis van de serienummer van de harde schijf
Optimalisatie bestaande GUI's Printerinstellingen wijzigen (moet door de administrator ingesteld worden op machine-niveau en dus niet op userniveau.) Stored procedures aanpassen
Week 3 Enkel maandag en woensdag (jobhappening en vertrek MCTgoesUSA) optimaliseren kassasyteem voor de gebruiker Week 4 Huidige synchronisatie naar server bestuderen en herwerken
Huidige synchronisatie naar server bestuderen en herwerken Rapportering
Week 5 Synchronisatie afwerken
Hulp op afstand beschikbaar maken
Week 6 Bespreken nieuwe plaatsenmodule ER-diagram opstellen Ontwerpen GUI's
Ontwerpen GUI's Evaluatie Database aanmaken Programmastructuur opzetten en beginnen aan de programmatie
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
Week 7 Programmeren algemene werking Programmeren Artikelbeheer
Programmeren Categoriebeheer Programmeren Optiebeheer Loginscherm
Week 8 Programmeren Zaalontwerp Bestellingen plaatsen Reservaties
Projectdossier maken (Draftversie) Verder afwerken plaatsenmodule
Week 9 Kasticket afdrukken en factuur genereren Rapporten genereren
Rapporten genereren Testing Evaluatie
Week 10
Eventuele aanpassingen na evaluatie Algemene afwerking
Algemene afwerking
Week 11
Algemene afwerking Projectdossier
Algemene afwerking Projectdossier
Week 12
Algemene afwerking Help file en Setup Projectdossier
Algemene afwerking
Conclusie van de planning We hebben ons goed aan de aanvankelijke planning kunnen houden. De hoofdpunten waren goed onderverdeeld zodat we genoeg tijd hadden om deze af te werken.
Eindwerk van Tom Meul en Pieter Scheldeman
93
94
Toonbank kassa voor gemeentebesturen
11. R 11
ESEARCHMATERIAAL
11.1 Administratie van de belasting over de toegevoegde waarde, registratie en domeinen. Voor de facturen, leveringsnota’s en de facturen die op het einde van de maand opgemaakt worden, moesten we ons licht opsteken bij dhr. Deprez. Voor de correcte nummering en de koppeling van deze gegevens gaf hij ons een boekje waar alle informatie in stond die we nodig hadden. Vooral hoofdstuk 5 “Opmaak en uitreiking van de rekening of het ontvangstbewijs door de belastingplichtige” was het meest belangrijke.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
12. 12
GEBRUIKTE TECHNOLOGIE EN HARDWARE
12.1 Technologie 9 VB.net 2005 met MySQL-database. 9 Aansturen van thermische printers. 9 Dynamisch IP-adres samen met een NO-IP account om steeds de server via het internet te kunnen bereiken. 9 Serienummer ophalen van de harde schijf voor de verificatie van de licentie.
Eindwerk van Tom Meul en Pieter Scheldeman
95
96
Toonbank kassa voor gemeentebesturen
12.2 Hardware 9 9 9 9
2 Laptops IBM met Windows XP SP2 2 Ticketprinters 1 Desktop met Windows Vista 1 Desktop met Windows XP SP2 en Touchscreen
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
13. 13
PERSOONLIJKE CONCLUSIE VAN TOM MEUL
Ik vond het een zeer interessant project omdat, ondanks het vele programmeerwerk, het toch zeer afwisselend was. Ticketprinters, touchscreens, netwerken, en nog veel meer kwam allemaal aan bod in deze stage. Drie maanden zien hoe het er aan toe gaat in een bedrijf is toch een unieke kans om onder de koepel van het schoolgebeuren mee te maken. Het is zeker een meerwaarde voor mijn opleiding geweest. De stage is zeer vlot verlopen, we zijn steeds goed opgevangen door onze stagebegeleider dhr. Luc Deprez. Het idee dat dit pakket door vele mensen zal worden gebruikt, geeft voldoening.
Eindwerk van Tom Meul en Pieter Scheldeman
97
98
Toonbank kassa voor gemeentebesturen
14. 14
PERSOONLIJKE CONCLUSIE VAN PIETER SCHELDEMAN
Ieder schooljaar zitten studenten op de schoolbanken en leren ze bij door in boeken te kijken of door zelfstandig een oefening op te lossen in een werkboek. In de meer praktijkgerichte lessen concentreren de studenten zich dan op hun taak via machines en ander gereedschap. Maar daar blijft het ook bij. Ze krijgen de opdracht en weten wat ze moeten doen, ze komen niet voor verrassingen te staan. De stage leert ons dat er verschillende aspecten terugkomen die je als student hebt geleerd, maar ook nieuwe dingen en nieuwe uitdagingen. Soms zit er variatie in en soms ook niet. Een eindwerk maak je zelfstandig met input van anderen die ervaring hebben. Dus kan je een stage een soort eindwerk noemen. Alleen sta je met beide voeten in het bedrijfsleven. Deze stage was voor mij een hele leuke ervaring waarbij nieuwe technieken en concepten aan bod kwamen.
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
15. L 15
IJST VAN AFBEELDINGEN
Figuur 1: Plannetje ................................................................................................................... 16 Figuur 2: Geografisch overzicht................................................................................................ 18 Figuur 3: Technisch overzicht ................................................................................................... 19 Figuur 4: Databasestructuur gemeenten ................................................................................. 20 Figuur 5: Databasestructuur horeca ........................................................................................ 23 Figuur 6: Databaseconnectie.................................................................................................... 26 Figuur 7 : Connectie geslaagd .................................................................................................. 27 Figuur 8 : Licentiesleutel is geldig ............................................................................................ 27 Figuur 9 : Geen server beschikbaar .......................................................................................... 28 Figuur 10 : Connectie gelukt zonder server ............................................................................. 28 Figuur 11 : Naam van de afdeling............................................................................................. 28 Figuur 12: Algemene bedrijfsgegevens .................................................................................... 31 Figuur 13 : Synchroniseren met server .................................................................................... 31 Figuur 14: Loginscherm ............................................................................................................ 33 Figuur 15 : Bestellingen uploaden en synchroniseren ............................................................. 34 Figuur 16 : Meerdere gebruikers ............................................................................................. 34 Figuur 17 : Aanmelden toetsenbord ........................................................................................ 34 Figuur 18 : Administrator kan niet aanmelden ........................................................................ 35 Figuur 19 : Geen verbinding ..................................................................................................... 35 Figuur 20: Administratie ........................................................................................................... 37 Figuur 21: Menubalk gemeentebeheer ................................................................................... 38 Figuur 22: Menubalk zalenbeheer ........................................................................................... 38 Figuur 23 : Beeld cascade ......................................................................................................... 39 Figuur 24: Beheer klanten ........................................................................................................ 40 Figuur 25 : Verwijderen van klant ............................................................................................ 41 Figuur 26: Tooltip klanten ........................................................................................................ 42 Figuur 27: Beheer gebruikers ................................................................................................... 43 Figuur 28: Administrator .......................................................................................................... 46 Figuur 29: Verkoper .................................................................................................................. 46 Figuur 30: Beheer BTW-codes .................................................................................................. 47 Figuur 31: Beheer betalingswijzen ........................................................................................... 50 Figuur 32: Beheer soorten artikelen ........................................................................................ 52 Figuur 33: Beheer afdelingen ................................................................................................... 55 Figuur 34: Beheer artikel schermen ......................................................................................... 59 Figuur 35 : Artikel verplaatsen ................................................................................................. 60 Figuur 36 : Geselecteerde scherm verwijderen ....................................................................... 60 Figuur 37 : Artikel koppelen ..................................................................................................... 61 Figuur 38 : Gegevens wijzigen .................................................................................................. 62 Figuur 39 : Nieuw scherm toevoegen ...................................................................................... 62 Figuur 40 : Beheer zalen ........................................................................................................... 64 Figuur 41: Rapporten ............................................................................................................... 65 Figuur 42: Configuratiescherm ................................................................................................. 67 Figuur 43: Database instellingen .............................................................................................. 68 Eindwerk van Tom Meul en Pieter Scheldeman
99
100
Toonbank kassa voor gemeentebesturen
Figuur 44: Printer instellingen .................................................................................................. 69 Figuur 45: Beheer licentie ........................................................................................................ 70 Figuur 46 : Rapport openstaande tafels ................................................................................... 71 Figuur 47: Synchronisatie ......................................................................................................... 72 Figuur 48: Overzicht gebruiker ................................................................................................. 73 Figuur 49: Kassa aanpassen...................................................................................................... 74 Figuur 50: Kassa overzicht ........................................................................................................ 75 Figuur 51: Klant opzoeken ........................................................................................................ 76 Figuur 52: Overzicht item verwijderen .................................................................................... 77 Figuur 53: Overzicht afmelden ................................................................................................. 78 Figuur 54: Overzicht aantallen ingeven.................................................................................... 79 Figuur 55: Overzicht crediteren ............................................................................................... 80 Figuur 56: Overzicht bestelling plaatsen .................................................................................. 81 Figuur 57: Overzicht bestelling annuleren ............................................................................... 82 Figuur 58: Voorbeeld stap 1 ..................................................................................................... 83 Figuur 59: Voorbeeld stap 2 ..................................................................................................... 84 Figuur 60: Voorbeeld stap 3 ..................................................................................................... 85 Figuur 61 : Problemen printer .................................................................................................. 90
Eindwerk van Tom Meul en Pieter Scheldeman
Toonbank kassa voor gemeentebesturen
16. B 16 9
RONVERMELDING
Online
http://www.codeproject.com http://msdn2.microsoft.com http://www.samsungminiprinters.com http://www.oki.com http://msdn2.microsoft.com/en-us/library/ms123401.aspx 9
Cursussen/Dossiers
Slides Office Automation Handboek VB.net Naslagwerk Tim en Roy (vorige stagiairs) Project plantenzaak van Tom Wetgeving over de verplichting tot uitreiking van een rekening of een ontvangstbewijs
Eindwerk van Tom Meul en Pieter Scheldeman
101
102
Toonbank kassa voor gemeentebesturen
17. 17
BIJLAGEN
Bijlage 1: Weekverslagen Bijlage 2: Voorbeelden factuur Bijlage 3: Voorbeelden kassaticket Bijlage 4: Voorbeelden rapporten Bijlage 5: Pictogrammen van de toepassing
Eindwerk van Tom Meul en Pieter Scheldeman