Aplicatie Informatica Pentru Tranzactiile Unui Curs Valutar
UNIVERSITATEA ,,AUREL VLAICU” DIN ARAD
FACULTATEA DE ȘTIINȚE EXACTE
DOMENIUL DE LICENȚĂ: INFORMATICĂ
PROGRAMUL DE STUDIU: INFORMATICĂ
FORMA DE ÎNVĂȚĂMÂNT: CU FRECVENȚĂ
aplicație informatică pentru evidența tranzacțiilor la o casă de schimb valutar
ÎNDRUMĂTOR ȘTIINȚIFIC
Prof. Univ. Dr. MARIANA NAGY
ABSOLVENT
HORVATH A. CRISTIAN – ARCADIE
ARAD
2016
UNIVERSITATEA “AUREL VLAICU” DIN ARAD APROBAT
FACULTATEA DE ȘTIINȚE EXACTE DECAN
DOMENIUL / PROGRAMUL DE STUDIU
INFORMATICĂ
Nr. __________ din ___________
VIZAT
Îndrumător științific
Prof. Univ. Dr. MARIANA NAGY
DATE PERSONALE ALE CANDIDATULUI
Date privind identitatea persoanei
Numele: Horvath
Numele anterior:_______________________________
Prenumele: Cristian – Arcadie
Sexul: M (M/F)
Data și locul nașterii:
Ziua / luna / anul 28 / 01/ 1981
Locul (localitate, județ) Arad, Arad
Prenumele părinților:
Tata: Arcadie Petru
Mama:Doina
Domiciliul permanent: (str., nr.,localitate, județ, cod poștal, telefon, e-mail):
Str. G-ral Traian Moșoiu, Nr. 1-7, Bl. D, Sc. A, Ap.2, Loc. Arad, Jud. Arad, 310175, Tel. 0726233297, e-mail: [anonimizat]
Sunt absolvent(ă) promoția: iulie /2016
Forma de învățământ pe care am absolvit-o este: (cu frecvență, cu frecvență redusă, ID), cu taxă/fără taxă: cu frecvență, cu taxă
Locul de muncă (dacă e cazul):SC DATAPRO EQUIPMENTS SRL
Solicit înscrierea la examenul de licență (licență, diplomă, disertație):
Sesiunea: iulie anul: 2016
Lucrarea de licență (licență, diplomă, disertație) pe care o susțin are următorul titlu:
APLICAȚIE INFORMATICĂ PENTRU EVIDENȚA TRANZACȚIILOR LA O CASĂ DE SCHIMB VALUTAR
Îndrumător științific:
Prof. Univ. Dr. MARIANA NAGY
12. Menționez că susțin examenul de licență finalizare a studiilor (pentru prima oară, a doua oară – după caz) pentru prima oară și declar pe propria-mi răspundere că am luat la cunoștință de prevederile art. 143 din Legea 1/2011. Declar că prezenta lucrare nu este realizată prin mijloace frauduloase, fiind conștient de faptul că, dacă se dovește contrariul, diploma obținută prin fraudă îmi poate fi anulată, conform art. 146 din Legea 1/2011.
SEMNĂTURA
_________________________________
REFERAT
PRIVIND LUCRAREA DE ………… (LICENȚĂ, DIPLOMĂ, DISERTAȚIE)
A
ABSOLVENTULUI/ ABSOLVENTEI …………………………………………..
DOMENIUL / PROGRAMUL DE STUDIU …………………………………….
PROMOȚIA …………………….
Titlul lucrării …………………………………………………………………
…………………………………………………………………………………………….
Structura lucrării ……………………………………………………….
……………………………………………………………………………………………………………………………………………………………………….………………………………………………………………………….………………………………………………………………………….………………………………………………………………………….………………………………………………………………………….………………………………………………………………………….…………………………………………………………………………….…………………………………
Aprecieri asupra conținutului lucrării de .. (licență, diplomă, disertație), organizare logică, mod de abordare, complexitate, actualitate, deficiențe
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
Aprecieri asupra lucrării (se va menționa: numărul titlurilor bibliografice consultate, frecvența notelor de subsol, calitatea și actualitatea surselor consultate; modul în care absolventul a prelucrat informațiile din sursele bibliografice, contribuții originale)
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..
Concluzii (valoarea lucrării elaborate de absolvent, relevanța studiului întreprins, competențele absolventului, consecvența și seriozitatea de care a dat dovadă absolventul pe parcursul documentării și elaborării lucrării)
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..
Redactarea lucrării respectă/NU respectă normele de redactare (dacă nu respectă, care sunt acestea…).
Nu există/ Există suspiciuni de realizare prin fraudă a prezentei lucrări (dacă există, care sunt acestea…).
Consider că lucrarea îndeplinește/ NU îndeplinește condițiile pentru susținere în sesiunea de Examen de …………………………………………. (licență, diplomă, disertație) din ……………………(dacă nu îndeplinește, se scrie motivația…)
Arad,
Data Îndrumător științific
INTRODUCERE
Tranzacționarea de valută a devenit posibilă după anii ’90. Deși, la început, aceste tranzacții nu au prezentat un mare interes pentru populație, odată cu creșterea necontrolată a inflației, oamenii au început să-și plaseze economiile în valută.
Înființarea caselor de schimb valutar a devenit o necesitate datorită pieței negre de valută care a cunoscut și ea o largă dezvoltare în această perioadă și care a dus la apariția valutei false. Astfel, la aceste case de schimb valutar, orice cetățean poate tranzacționa diferite valute în condiții de maximă siguranță. Drept urmare, numărul de tranzacții valutare a crescut foarte mult, fiecare casă de schimb valutar fiind nevoită să-și stabilească cursul de la o zi la alta, astfel încât să-și crească numărul de tranzacții zilnice, fapt care atrage după el câștiguri mai mari, rezultate prin diferența dintre cursul de vânzare și cel de cumpărare. Însă, pentru a lua astfel de decizii este necesară o evidență a vânzărilor și cumpărărilor zilnice, pentru fiecare valută în parte.
Am considerat foarte utilă o aplicație care să țină evidența tranzacțiilor unei case de schimb valutar, în primul rând pentru a fi în conformitate cu legea funcționării caselor de schimb valutar din România, iar în al doilea rând pentru a ajuta deținătorii unei astfel de societăți la analiza profitului lunar și comparativ pe luni sau ani.
Prezenta lucrare cuprinde aspecte teoretice și practice ale modalităților de concepere și implementare a aplicației fiind structurată în 3 capitole, fiecare capitol, la rândul lui având mai multe subcapitole. La acestea se adaugă Introducere, Concluzii, Bibliografie și Anexe.
Capitolul 1 – Operații de schimb valutar. Evidențe informatice – conține reglementările legale conform cărora casele de schimb valutar pot efectua operațiuni de schimb valutar cu numerar pe teritoriul României, precum și condițiile necesare pentru acordarea autorizației de funcționare de către Banca Națională a României. De asemenea, este definit și cursul de schimb valutar, modalitățile de stabilire a acestuia, precum și operațiunile ce pot fi efectuate de către o casă de schimb valutar. Tot în acest capitol, se tratează la modul general, mediul de programare VisualFoxPro și sistemul de gestiune a bazelor de date MySQL, cu ajutorul cărora a fost proiectată aplicația informatică.
Capitolul 2 – Analiza și proiectarea aplicației pentru casa de schimb valutar – tratează analiza și proiectarea aplicației, cu prezentarea structurii tabelelor ce alcătuiesc baza de date, modul de proiectare a interfețelor cu utilizatorul (form-uri), a rapoartelor și secvențe de cod folosite în aplicație cu explicațiile aferente.
Capitolul 3 – Utilizarea aplicației – reprezintă modul de utilizare a aplicației.
CAP. 1. Operații de schimb valutar. Evidențe informatice
Casa de schimb valutar
Legislație
Organizarea și funcționarea caselor de schimb valutar din România sunt reglementate de Banca Națională a României prin Regulamentul nr.4 (r1) din 01/04/2005 privind regimul valutar, respectiv prin Norma nr. 4 din 01/04/2005 privind efectuarea operațiunilor de schimb valutar(modificată de Norma B.N.R. nr. 13/2007 publicată în M.O. nr. 654 din 25/09/2007, de Norma B.N.R. nr. 8/2009și ulterior de Ordinul MFP 664/2012).
Conform reglementărilor legale precizate anterior, casele de schimb valutar pot efectua operațiuni de schimb valutar cu numerar și substitute de numerar pentru persoane fizice pe teritoriul României (vânzare/cumpărare de valute cotate contra monedei naționale) prin intermediul punctelor de schimb valutar autorizate în acest sens de B.N.R. prin atribuirea de coduri statistice individuale, fiind „organizate ca persoane juridice conform Legii nr. 31/1990 privind societățile comerciale, republicată, având ca obiect principal de activitate schimbul valutar cu numerar și substitute de numerar pentru persoane fizice”.
Casele de schimb valutar sunt obligatesă asigure pentru fiecare punct de schimb valutar:
Calculator și programe cu ajutorul cărora se emit bonurile fiscale și buletinele de schimb valutar și se ține evidența operațiunilor;
aparat de verificare a autenticitatii bancnotelor.
Pe lângă o serie de condiționări privind dotarea necesară, condițiile de funcționare și locul de desfășurare a activității, reglementările în vigoare prevăd și obligativitatea existenței permanente a unor disponibilități bănești (lei sau orice valută) de minimum 75.000 euro.
Condiții pentru acordarea autorizațiilor și funcționarea caselor de schimb valutar[12]
Persoanele juridice înregistrate conform Legii nr. 31/1990 pot solicita Băncii Naționale a României acordarea de autorizații de funcționare pentru case de schimb valutar, dacă sînt îndeplinite următoarele condiții:
solicitantul trebuie să aibă un spațiu permanent de lucru cu acces public și adresă identificabile;
solicitantul trebuie să notifice numele și adresa băncii (băncilor) sale;
solicitantul constituit conform Legii nr. 31/1990 trebuie să prezinte dovada capitalului vărsat în totalitate în numele casei de schimb valutar ca persoană juridică independentă.Totodată, solicitantul va trebui să prezinte dovada existenței unor disponibilități în cont, la înființare, echivalente cu 10 milioane lei. Această sumă va putea fi revizuită periodic de către organul ce eliberează autorizația de funcționare;
casa de schimb valutar trebuie să aibă personal fără cazier judiciar. Numai personalul angajat are dreptul să efectueze operațiuni în numele casei de schimb valutar;
casa de schimb valutar să aibă asigurată dotarea tehnică necesară pentru verificarea autenticității bancnotelor, precum și pentru păstrarea și manipularea în deplină securitate a valutei;
fiecare solicitant îndeplinind condițiile de autorizare pentru schimb valutar va plăti un comision de autorizare de 50.000 lei;
comisionul de autorizare este supus revederii periodice;
casa de schimb valutar este înregistrată ca o persoană juridică și poate avea în cadrul său un număr nelimitat de puncte de schimb, cu condiția să fie îndeplinite cerințele prevăzute la lit. (a), (b), (d) și (e) de la acest capitol;
casele de schimb valutar pot începe operațiunile după primirea autorizației de la Banca Națională a României;
Banca Națională a României își rezervă dreptul de a refuza unui solicitant eliberarea autorizației.
Cursul de schimb valutar
Cursul de schimb sau cursul valutar reprezintă prețul unei unități monetare din moneda unei țări, exprimat în unități monetare ale altei țări. O definiție mai exactă a cursului de schimb ia în considerare tipul de cotație care leagă cele două monede participante la raportul de schimb.[10]
Practic, cursul valutar este prețul în baza căruia o valută se schimbă cu alta, respectiv raportul dintre o monedă națională și una străină.[10]
Cursul valutar poate fi:
• fix – atunci când două țări decid să-l mențină astfel, prin intermediul politicii monetare.
• flexibil- atunci când două țări sunt de acord ca fluctuațiile pieței internaționale să determine cursul, prin intermediul cererii și ofertei.
Există două tipuri de cursuri:
• cursoficial care este stabilit zilnic de Banca Națională pe baza raportului dintre cererea și oferta de valute. Cursul valutar valabil pentru o zi este actualizat in ziua precedentă, după ora 13 pe site-ul BNR.
• curs de piață care este publicat cu două cotații:
• cotația BID(curs de cumpărare) – prețul cererii din punct de vedere al intermediarului(casa e schimb, bancă) care efectuează o tranzacție valutară
• cotația ASK(curs de vânzare) – prețul ofertei din punct de vedere al intermediarului care efectuează o tranzacție valutară.
Casele de schimb valutar se ghidează după cursul interbancar, de aceea valorile de tranzactie pot săcrească sau să scadăde-a lungul unei zile.
Stabilirea cursului de schimb valutar
Stabilirea cursurilor de schimb la care se fac schimburile de valute cotate se realizează în mod liber de către fiecare casă de schimb valutar, respectiv pentru fiecare punct de schimb valutar, în practică întâlnind cazuri în care acestea chiar fluctuează pe timpul aceleiași zile. Acestea au însă obligația de a afișa la loc vizibil listele cursurilor, pe perioada programului zilnic de lucru, urmând a fi anexate la registrul tranzacțiilor la sfârșitul zilei de lucru.
Documentul justificativ întocmit pentru vânzarea/cumpărarea de valute de casele de schimb valutar îl reprezintă „bonul fiscal/buletinul de schimb valutar” – document cu regim intern de tipărire și numerotare.
Evidența schimbului valutar se ține cu ajutorul registrului zilnic al tranzacțiilor (registru de casă în lei și în valută).
1.1.5. Operațiuni de schimb valutar
O casă de schimb valutar se pot efectua următoarele operațiuni:
1. cumpărare de valută de la persoane fizice, în mod liber și fără limitări, în oricare din valutele cotate de Banca Națională a României
2. vânzare de valută doar rezidenților în oricare din valutele cotate de Banca Națională a României, pînă la o sumă maximă în echivalent cu 1.000 dolari S.U.A., de tranzacție, adică limita admisă liber sub formă de bancnote în conformitate cu Regulamentul emis la 13 mai 1991 de Banca Națională a României privind operațiunile curente și transferurile de capital cu mijloace de plată străine. [12]
3. vânzare de valută contra lei, în oricare din valutele cotate de Banca Națională a României,
nerezidenților, dar numai până la concurența sumei evidențiate ca fiind schimbate din valută în lei pe documentul emis de o casă de schimb valutar din România. Aceste operațiuni pot fi efectuate doar pentru documente de schimb emise în ultimele 30 de zile și doar pentru sumele în lei pentru care nu au mai fost efectuate restituiri de valută în acest interval de timp de către un punct de schimb valutar. Casele de schimb valutar sunt obligate să menționeze pe documentele respective sumele în lei pentru care s-au efectuat restituirile de valută și data, confirmate cu semnătura lucrătorului și ștampila punctului de schimb valutar.
Operatiunile efectuate trebuie consemnate in registrul zilnic al tranzactiilor, document in care se evidentiaza cumpararile si vanzarile de valute cotate, pe feluri de valute cotate, si sumele in moneda nationala platite/incasate sau transferate.
Casa de schimb valutar poate să-și stabilească liber cursurile de schimb, cu condiția ca nivelul cursului de vânzare să nu depășească cu mai mult de 10% cursul de cumpărare.
Administratorii caselor de schimb valutar au obligația să afișeze zilnic, la loc vizibil, pe perioada programului de lucru, lista cursurilor de schimb de vânzare și cumpărare pentru valutele cotate și substituite de numerar. Aceasta trebuie să fie semnată și ștampilată de către administrator, urmând ca la sfârșitul zilei să fie anexată la registrul tranzacțiilor.
Evidențe informatice
Pentru fiecare tranzacție efectuată, casele de schimb valutar au obligația să întocmească raportul bon fiscal, document care trebuie sa conțină urmatoarele elemente:
• denumireași adresa emitentului;
• codul statistic al punctului de schimb valutar;
• data emiterii, seria și numărul raportului bon fiscal;
• numele, prenumele și țara clientului;
• categoria rezident/nerezident;
• documentul de identitate al clientului: tip, serie, număr;
• sumaîncasată de la client (valute cotate/moneda națională);
• cursul de schimb valutar;
• suma platită clientului (valute cotate/moneda națională);
• semnătura casierului și ștampila punctului de schimb valutar.
Raportul bon fiscal esteun formular cu regim special care se întocmește în două exemplare: unul pentru client și altul care se atașează la registrul tranzacțiilor.
Operații și evidențe la casa de schimb valutar ”MAGIC EXCHANGE”
Casa de schimb valutar ,,MAGIC EXCHANGE” a fost înființată în anul 2008, având sediul în Jud. Arad, Loc. Arad, Piața UTA, Bl. U6.
Din anul 2008 până în prezent, s-a investit în dezvoltare, astfel că societatea deține încă trei puncte de lucru în județul Arad. Aceste agenții au fost mereu îmbunătățite, de aceea, fiecare punct de lucru este dotat cu echipamente informatice de înaltă calitate, fiecare tranzacție putând fi efectuată în condiții de maximă sigurană și confort, spațiile având uși automate, care permit accesul unei singure persoane în incintă. Supravegherea video se face pe tot parcusul orarului de funcționare.
În cadrul agențiilor se fac permanent eforturi pentru a asigura cele mai bune cursuri de schimb pentru principalele monede: dolar american(usd), euro(eur), franc elvetian(chf), lira sterlina(gbp), dolar canadian(cad), coroana daneza(dkk), coroana norvegiana(nok), coroana suedeza(sek), coroana ceha(czk), dolar australian(aud), yen japonez(jpy), leu Moldova(mld), forint maghiar(huf), zlot polonez(pln), leva Bulgaria(bgn), lira Turcia(try). Pentru sume mai mari cursul valutar este negociabil.
Serviciile sunt oferite cu promptitudine și profesionalism.
Înregistrări informatice folosite
1.3.1. Definiția și avantajele utilizării unui sistem de gestionare al bazelor de date
“ Un sistem de gestionare al bazelor de date, numit pe scurt SGBD, este un software specializat în stocarea și prelucrarea unui volum mare de date. Termenul de bază de date se referă la modul de organizare a informației iar termenul de gestiune se referă la modalitățile de culegere, prelucrare, vizualizare și interpretare a informației.”[8]
O bază de date reprezintă o modalitate de stocare a unor informații și date pe un suport extern, cu posibilitatea regăsirii rapide a acestora. De obicei o bază de date este memorată într-unul sau mai multe fișiere. Bazele de date sunt manipulate cu ajutorul sistemelor de gestiune a bazelor de date. Cel mai răspândit tip de baze de date este cel relațional, în care datele sunt memorate în tabele. Pe lânga tabele, o bază de date relațională mai poate conține: indecși, proceduri stocate, declanșatori, utilizatori și grupuri de utilizatori, tipuri de date, mecanisme de securitate și de gestiune a tranzacțiilor. [9]
Avantajele utilizării SGBD-urilor [8] :
reducerea redundanței – mai multe aplicații pot utiliza același fișier de date, evitând astfel utilizarea ineficientă a suportului de memorie ;
evitarea inconsitenței datelor – datele sunt inconsistente dacă pentru acceași dată pot exista valori diferite în copii diferite. Acest fapt poate să creeze confuzii sau erori în procesul de prelucrare a datelor ;
partajarea datelor – deoarece mai multe aplicații utilizează același fișier de date, se pot dezvolta aplicații noi cu datele existente ;
standardizarea – oferă posibilitatea transferului datelor de la o bază de date la alta .
Cele mai des întâlnite SGBD-uri relaționale sunt: dBASE, VISUAL FOXPRO, FOXBASE, INGRES, ORACLE, ACCESS, PARADOX.
Obiectivul esențial al unui SGBD este furnizarea unui mediu eficient adaptat pentru utilizatorii care doresc să consulte sau să actualizeze informațiile într-o bază de date.
Așa zisa „revoluție relațională” a introdus multe idei valoroase in lumea bazelor de date. Printre aceste progrese pot fi enumerate [2]:
Tabelele – sunt un mijloc simplu de reprezentare a datelor care se preteaza forte bine modelului de baze de date relaționale. Datele pot fi organizate într-un mod acceptabil de catre programatori și de către utilizatorii finali.
SQL (Structured Query Language) – este un standard de limbaje de interpelari foarte comod. Este un limbaj nonprocedural de manipulare a datelor. Standardizarea a permis ca instrucțiunile acestui limbaj să poată fi recunoscute de majoritate SGBD-urilor (Oracle, Access, Sybase, FoxPro).
Operatii orientate pe mulțimi – permit programatorilor și utilizatorilor să găsească și să actualizeze mari colecții de înregistrări fără a scrie programe speciale.
Joncțiunile – instrumente puternice de asociere a înregistrărilor independente. Utilizatorii pot crea noi seturi de înregistrări (tabele virtuale), bazate pe înregistrarile existente, cu ajutorul joncțiunilor.
1.3.2 Limbajul Visual FoxPro
Prezentare generală, istoric și perspective
Visual FoxPro este un sistem de gestiune a bazelor de date relațional. Este un SGBD integrat, în sensul că dispune, pe lângă o interfață utilizator proprie ( incluzând aici și propriul limbaj de programare), și de un sistem propriu de stocare a datelor. Entitățile de stocare a datelor sunt tabelele, acestea fiind fișiere independente cu extensia „.dbf”. Acestea pot fi tabele „free” sau pot fi integrate în containere de baze de date (cu extensia „.dbc”). Avantajele integrării tabelelor în containere de baze de date sunt:
– posibilitatea stabilirii de relații permanente între tabele (figura 1.1);
– posibilitatea folosirii proprietății „autoincrement” la adăugarea de înregistrări noi în tabele, eliminând astfel posibilitatea adăugării de înregistrări duplicat;
– posibilitatea introducerii de reguli de validare la nivel de inregistrare;
– posibilitatea introducerii de mesaje ce vor fi afișate utilizatorului la efectuarea operațiilor cu înregistrările (ștergere, modificare, adăugare);
– posibilitatea folosirii trigger-ilor, subrutine stocate la nivel de bază de date (care conțin cod executabil) și care se declanșează în momentul efectuării unei operații asupra înregistrărilor din baza de date (ștergere, actualizare, adăugare);
– posibilitatea stabilirii format-ului înregistrărilor din tabele;
– posibilitatea stabilirii unei valori „default” pentru înregistrările din tabele;
– posibilitatea folosirii proprietătii „caption” pentru câmpuri;
Trebuie precizat faptul că interfața Visual FoxPro se poate folosi ca și client (interfață client) și pentru exploatarea altor tipuri de baze de date (MySQL, MSDE, ORACLE).
Tabelele proprii ale mediului Visual FoxPro pot fi folosite cu succes pentru lucrul monopost sau în rețele cu puțini utilizatori.
Limbajul de programare FoxPro a apărut in anii ’80, fiind un produs al firmei Fox Software, bazat pe sistemul dBase, dar care se vroia superior acestuia în ce privește viteza de execuție. Inițial produsul s-a numit FoxBase și nu existau diferențe prea mari față de dBase. Apariția FoxPro a revoluționat lumea SGBD-urilor, prin crearea și implementarea tehnologiei Rushmore. Dintr-o dată timpul de execuție s-a redus, ajungând chiar la 4% din timpul necesar până atunci. Tehnologia Rushmore se bazează pe indecși. Au apărut diferite versiuni de FoxPro. O altă „revoluție” în evoluția SGBD-urilor o constituie integrarea limbajului SQL („limbajul datelor”) în limbajul FoxPro. În anul 1989 firma Fox Software este cumpărată de Microsoft. Microsoft dorea să dezvolte produsul Access (a cărei logică de stocare era inspirată în mare parte din FoxPro). Totuși Microsoft decide să dezvolte în continuare și produsul FoxPro, Access fiind inferior în ce privește volumul de date gestionate. Apar versiuni compatibile cu sistemul de operare Windows, pentru ca în final să apară prima versiune „visual” – Visual FoxPro 6.0, integrată în pachetul Visual Studio. Începând cu această versiune FoxPro devine un limbaj orientat obiect. Au apărut în continuare versiunile Visual FoxPro 7.0, 8.0, iar in final, Visual FoxPro 9.0 ajuns acum la Service Pack 2.
Merită menționat faptul că organizația care gestionează activitatea Eurotunelului de sub Marea Mânecii folosește o aplicație Visual FoxPro care gestionează câteva sute de GB de date [10].
Comunitatea programatorilor de limba spaniolă (de FoxPro) a adresat în 2007 o petiție către Microsoft, cerând acestuia să lase codul Visual FoxPro să devină open source.
Funcțiile meniului principal ale Visual FoxPro
La pornirea aplicației se va deschide o fereastră proprie mediului Visual FoxPro (figura 1.1), unde se află o bară de meniuri, toolbar-uri și, ca o particularitate a mediului FoxPro, o fereastră de comenzi unde se pot tasta diferite comenzi, de creare de obiecte, actualizari de date în mod manual, testa interogari și multe alte operații.
Figura 1.1. Fereastra sitemului Visual FoxPro
Tipuri de operatori ai mediului Visual FoxPro
– operatori relaționali :
= egal
== egalitate exactă (în cazul datelor de tip caracter )
> mai mare decât
< mai mic decât
>= mai mare sau egal decât
<= mai mic sau egal decât
<> sau != diferit de
$ cuprins în
– operatori logici : AND, OR, NOT . În ce privește operatorul NOT acesta poate fi folosit în următoarele moduri : NOT<expresie>este echivalent cu !<expresie>.
– operatori numerici :
+ adunare
– scădere
* înmulțire
/ împărțire
** sau ^ ridicare la putere
% modulo – întoarce restul unei împărțiri
– operatori de condiționare : IF, CASE, ex. :
pentru IF:
IF<condiție>
*… comenzi
ELSE
*…comenzi
ENDIF
pentru CASE:
DO CASE
CASE <condiție_1>
*… comenzi
CASE <condiție_2>
*… comenzi
OTHERWISE
*… COMENZI
ENDCASE
– operatori de ciclare : SCAN, FOR, DO WHILE, ex. :
SCAN
*… comenzi
ENDSCAN
DO WHILE <condiție>
*… comenzi
ENDDO
FOR <condiție>
*… comenzi
ENDFOR
1.3.3. LimbajulSQL
SQL (Structured Query Language – Limbaj Structurat de Interogare) , apărut în 1970 este un limbaj de programare specific lucrului cu bazele de date, devenit un standard în domeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru creearea, modificarea, regăsirea și manipularea datelor de către SGBD-urile (Sistemele de Gestiune a Bazelor de Date) relaționale.
Caracteristici generale:
• SQL conține atât componența de descriere a datelor (LDD), cât și componența de manipulare a datelor (LMD);
• Manipularea (interogarea) este partea extinsă;
• Limbaj neprocedural: secvența de comenzi (instrucțiuni), fiecare comandă este transmisă SGBD-ului, este interpretată și returnează un rezultat.
Prezentarea limbajului SQL
Standardul SQL3 (SQL ’98) definește modelul obiect-relațional de baze de date.
Structura sintactica: limbajul este compus din instrucțiuni (comenzi). O comandă SQL este o secvență de elemente componente (token). Elementele componente pot fi: cuvinte cheie, identificatori, caractere speciale și constante (literali).
Cuvintele cheie și identificatorii
Aceștia au o structură lexicală identică. Lexical, un cuvânt cheie sau un identificator inseamnă o secvență de litere și caracterul ‘_’.
Din punct de vedere semantic, cuvintele cheie sunt elemente cu semnificație fixa în limbaj:
nume de comenzi (clauze): SELECT, INSERT, etc;
exemplu de SELECT:
SELECT * FROM elevi WHERE adminID='{$_SESSION['logat_elev_id']}'
//scoate datele elevului autentificat din baza de date
tipuri de date: integer, numeric, char, varchar, etc.
Limbajul SQL nu diferențiază caracterele mari de cele mici: este case insensitive.
Identificatorii au aceeași structură lexicală; din punct de vedere semantic reprezintă nume într-o comandă și pot fi: nume de tabele, de coloane, etc. SQL folosește termenii de tabel, coloană și linie pentru relație, atribut și tuplu (cei subliniați sunt cei folosiți în definirea matematică a modelului relațional).
Identificatorii sunt:
– obișnuiți (simpli): Secție, ANGAJAT, etc;
– delimitați: reprezintă un nume pus între ghilimele, care poate să conțină orice fel de caractere. Un identificator delimitat este folosit, în general, pentru un nume mai mare de tabel.
Constantele
Constantele pot fi:
– de tip număr întreg: ex 1234 (reprezentate pe 4 octeți);
– de tip număr real: ex 12.5, 12e5 (reprezentate de 8 octeți, în formatul double);
– de tip șir de caractere: ex “Acesta este un șir”;
– de tip NULL: constanta specială, reprezintă lipsa de informație.
Caracterele speciale
– operatori (+,-,…);
– “;” termină o comanda;
– punctul zecimal (constante reale, codificări ale coloanelor);
– separatorii: blank, TAB, CR ; sunt ceruți uneori între elemente.
Operatori, expresii și funcții SQL
Operatorii SQL: pot fi reprezentați prin unul sau mai multe caractere speciale (+, <,…) sau prin cuvinte cheie (AND, OR, NOT, UNION).
Operatorii pot fi clasificați:
– operatori binari: au nevoie de doi operanzi;
– operatori unari: se aplică unui singur operand și pot fi postfixe sau prefixe.
– aritmetici: +, -, <, <=, <> (!=);
– logici: AND, OR, NOT.
Operatorii logici se aplica asupra unor valori ternare (o valoare ce reprezintă un operand ce poate avea valoare TRUE (1), FALSE (0) și NULL (lipsă de informație).
Nu există tipul de date boolean asupra caruia să se aplice operatorii logici dar operatorii de comparație returnează o valoare booleana.
Operatorii de comparație evaluează orice expresie la o valoare logica (bool): TRUE, FALSE. Tipul boolean există însa incepând din SQL3. Operatorii de comparație pot fi:
• aritmetici: <, >, <=, >=, =, != (<>);
• relaționali
○ A BETWEEN val_min val_max;
○ A LIKE model_șir -> A șir;
○ A IS NULL sau A IS NOT NULL;
○ A IN lista_valori.
O expresie SQL este o expresie formată din operanzi, operatori și paranteze. Operatorii, în general, sunt nume de coloane (se va folosi valoare atributului definit de acea coloană) sau o constantă.
Orice expresie se evaluează la o valoare care poate fi apoi folosită în alte operații.
Funcțiile SQL:
– funcții totalizatoare (de grupare): calculează anumite valori pentru coloane din tabele: SUM, AVE, MIN, MAX, …;
– funcții matematice: calcule trigonometrice, puteri, logaritmi, rotunjiri;
– funcții pentru șiruri;
– funcții pentru date calendaristice;
– funcții pentru conversii.
Ex: calcularea mediei
SELECT (SUM(nota)/count(*)) as avg FROM note WHERE
adminID='{$_SESSION['logat_elev_id']}'
Comenzi SQL
Limbajul SQL are două tipuri de comenzi:
Comenzile de definire a datelor – pentru creeareade tabelele, pentru ștergereași modificarea lor
Comenzile de manevrare a datelor – SELECT (interogările de baza), INSERT, UPDATE, DELETE.
Ex:SELECT n.*, e.* FROM note n LEFT JOIN elevi e ON n.elevID=e.elevID
WHERE e.adminID='{$_SESSION['logat_elev_id']}' ORDER by notaID ASC
SQL asigură toate operațiile care se consideră necesare într-o bază de date.
1.3.4. My SQL
Prezentare generală
MySQL este un sistem de gestiune a bazelor de date relațional, produs de compania suedeză MySQL AB și distribuit sub Licență Publică Generală GNU. Este cel mai popular SGBD open-source la ora actuală, fiind o componentă cheie a stivei LAMP(Linux, Apache, MySQL, PHP).
Deși este folosit foarte des împreună cu limbajele de programare JAVA,PHP, cu MySQL se pot construi aplicații în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Borland Delphi, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip spefic API. O interfață de tip ODBC denumită MyODBC permite altor limbaje de programare ce folosesc această interfață, să interacționeze cu bazele de date MySQL cum ar fi ASP sau Visual Basic.
În multe cărți de specialitate este precizat faptul că MySQL este mult mai ușor de invățat și folosit decât multe din aplicațiile de gestiune a bazelor de date, ca exemplu comanda de ieșire fiind una simplă și evidentă: „exit” sau „quit”.
Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcare de pe internet, o interfață grafică: MySQL Administrator și MySQL Query Browser. Un alt instrument de management al acestor baze de date este aplicația SQL Manager.
MySQL poate fi rulat pe multe dintre platformele software existente: AIX, FreeBSD, GNU/Linux, Mac OS X, NetBSD, Solaris, SunOS, Windows 9x/NT/2000/XP/Vista.
Serverul de baze de date MySQL este foarte rapid, fiabil și ușor de utilizat. Inițial a fost dezvoltat pentru a manipula baze de date de dimensiuni mari mult mai rapid decât soluțiile existente.
MySQL Database Software este un sistem client/server ce constă într-un server MySQL multithreaded care suportă diferite programe client și biblioteci, unelte administrative și o gamă largă de interfețe pentru programarea aplicațiilor (Application Programming Interfaces – APIs)
Caracteristicile de bază ale MySQL
Câteva dintre caracteristicile de bază ale MySQL sunt:
Funcționează pe diferite platforme
Dispune de API pentru C, C++, Eiffel, Java, Perl, PHP, Pyton, Ruby și Tcl
Complet multi-threaded folosind thread-uri de kernel. Acest lucru înseamnă că poate lucra cu ușuință pe mai multe procesoare dacă sunt disponibile
Un sistem de alocare a memoriei foarte rapid și bazat pe thread-uri
Folosește tabele temporare stocate în memorie
Funcțiile SQL sunt implementate folosind o bibliotecă de clase optimizată și sunt foarte rapide. De obicei, nu are loc alocare a memoriei după inițializarea interogărilor.
Serverul este disponibil ca program separat ce poate fi folosit într-un mediu de rețea de tip client/server. De asemenea, este disponibil și ca bibliotecă ce poate fi inclusă în aplicații de sine stătătoare
Oferă motoare tranzacționale și non-tranzacționale de stocare a datelor
Tipuri de date utilizate de MySQL
Tipurile de date care apar în coloanele MySQL sunt diferite în funcție de tipul lor. MySQL alocă spațiu pe disc în funcție de tipul de date specificat de utilizator. Iată și tipurile de date, spațiul pe care îl ocupă precum și valorile minime și maxime pe care le pot avea.
Tipul de câmp TIMESTAMP oferă posibilitatea de a data automat operațiile de tip INSERT și UPDATE. El este compus implicit din 14 caractere pentru formatul 'YYYYMMDDhhmmss' dar putem să specificăm la crearea unui tabel că dorim să conțină mai puține caractere.
Tipurile de string-uri în MySQL sunt BLOB, TEXT, CHAR, VARCHAR, ENUM și SET. Câmpul de tip BLOB poate conține o cantitate variabilă de informație, similar cu TEXT însa diferit printr-un singur aspect: căutarea într-un câmp BLOB este case sensitive (se face diferență între majuscule și minuscule), iar într-un câmp TEXT nu este. Tipul VARCHAR este similar tipului TEXT cu deosebirea ca într-o coloană de tip VARCHAR putem specifica numărul maxim de caractere admise.
Administrarea bazelor de date MySQL din linia de comandă
În cazul unui sistem de operare Windows, conectarea pentru a lucra în mod interactiv cu cu serverul MySQL instalat pe același calculator realizează lansând în execuție monitorul MySQL numit mysql.exe din directorul mysql/bin:
C:\mysql\bin>mysql.exe
Welcome to MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.0.15-nt
Type ’help;’ or ’\h’ for help.Type ’\c’ to clear the buffer.
mysql>_
Comenzile SQL se pot scrie cu litere mari sau mici, având același efect. Comenzile SQL se termină, uzual, cu caracterul “ ; “. Dând comanda help; (sau \h sau ?) pe ecran apar o serie de comenzi MySQL importante.
Câteva comenzi din linia de comandă:
-create database – crează o bază de date
-use – se selectează o bază de date
-create table – se crează tabele
-alter – modificarea definiției unei tabele se realizează folosind comanda alter
-insert – adăugare de înregistrări într-un tabel
-update – permite modificarea valorilor unor câmpuri dintr-un tabel
-drop – permite suprimarea unui tabel din baza de date
-show – se folosește pentru listarea tabelelor care alcătuiesc baza de date
-select – este cea mai complexă comandă din limbajul SQL și este destinată regăsirii unor anumite date
-quit – determină întreruperea conexiunii cu serverul MySQL.
CAP. 2. Analiza și proiectarea aplicației pentru casa de schimb valutar
2.1.Activitatea casei de schimb valutar
În cadrul casei de schimb valutar activitatea de schimb este informatizată din anul 2002 cu ajutorul unui program de schimb valutar dezvoltat de SC Dragnea SRL din București, program proiectat în FoxPro 2.6 sub DOS. Deoarece acest program nu mai face față cerințelor actuale ale utilizatorilor și datorită faptului că acest program necesită multiple intervenții din partea firmei de service pentru a asigura buna funcționare a caselor de schimb valutar este necesară dezvoltarea și implementarea unui nou program de schimb valutar care să facă față cerințelor utilizatorului.
Se dorește un program fiabil, ,,user friendly” a cărui interfață să nu difere foarte mult de vechiul program dar care să facă față cerințelor actuale. Stații de lucru cu sistem de operare WINDOWS care să poată fi acesate remote de către firmă de service pentru o intervenție rapidă a firmei de service, baze de date care să poată fi accesate online de către conducerea casei de schimb valutar, interfața ușor de utilizat pentru cel care utilizează aplicația și siguranța bazelor de date. Astfel am proiectat o aplicație informatică utilizând limbajul de programare Visual Fox Pro cu un sistem de gestiune a bazelor de date MySQL.
2.2. Date de intrare
În cadrul aplicației datele de intrare sunt preluate în două moduri: din tabelele bazei de date și prin introducere de la tastatură.
Datele de intrare inițiale, soldul inițial, se introduce de la tastatură, în meniul Configurare/Solduri Inițiale de către administratorul casei de schimb valutar și se stochează în tabela sold din baza de date. În meniul Configurare au acces doar uzerii cu drepturi de administrator iar datele din Sold Inițial și Param se introduc de la tastatură de către acești useri. Soldul inițial este modificat doar în momentul în care casă de schimb valutar își începe activitatea.(fig 2.1)
Figura 2.1 Sold inițial in modul runtime
La emiterea bonurilor fiscale datele care se introduc de către operator sunt suma valutei sau monedei naționale care se tranzacționează respectiv numele și datele clientului în cazul în care acesta nu se află deja stocat în tabela clienți din baza de date. În cazul în care clientul este nerezident atunci operatorul va selecta țara de rezidență, țările se află stocate în tabela țari din baza de date. Intrările, fie că sunt în moneda națională sau într-una din valutele acceptate de către casa de schimb valutar pentru efectuarea tranzacțiilor se stochează în tabela bonuri din baza de date iar modificările asupra soldului casei de schimb valutar se afișează în registrul de casă ron sau valută și în borderoul de cumpărări respectiv vânzări.
În cazul intrărilor (transferuri de bani) către punctul de lucru dinspre casieria centrală sau un alt punct de lucru operatorul va introduce cursul valutar la care se face primirea și suma în câmpurile aferente monedei care se transferă, toate celelalte date fiind preluate din tabela curs a bazei de date. De asemenea operatorul este nevoit să selecteze gestiunea predătoare, gestiunea de la care se face transferul de bani. Aceste gestiuni sunt stocate în tabela gestiuni din baza de date.(fig 2.2)
Figura 2.2 Adăugare transfer în modul runtime
2.3. Date de ieșire
La întocmirea documentelor (bon fiscal) doveditoare ale tranzacției de schimb valutar datele de ieșire se vor salva în tabela bonuri (acest tabel stochează toate detaliile tranzacției inclusiv nume, serie și număr de buletin care în cazul unui client nou se stochează și în tabela clienți și țara și cod rezident care se stochează și în tabela țări) respectiv clienți (dacă tranzacția se efectuează către un client nou) din baza de date. (fig 2.3)
Figura 2.3 – Bon fiscal
În cazul în care se face un transfer către unul dintre celelalte puncte de lucru sau către casieria centrală operatorul este nevoit să introducă sumele care vor fi transferate, codurile valutelor, respectiv denumirea lor se preiau din tabelele bazei de date. La fel ca și în cazul intrărilor pe baza transferului dinspre alte gestiuni toate aceste transferuri de bani se salvează în tabelul lin_tra din baza de date împreună cu gestiunile predătoare sau primitoare, dată și cursul de cumpărare. (fig. 2.4)
Figura 2.4 Transfer in modul print preview
2.4.Tabelele bazei de date
2.4.1.Prezentare generală
Datorită creșterii dimensiunilor bazelor de date ale Visual Fox Pro, acestea nemaifăcând față cererilor actuale, a devenit necesară trecerea la o arhitectură client, server. Astfel, am optat pentru o bază de date în MySQL. Tabelele bazei de date se află stocate pe un server Ubuntu, baza de date fiind instalată cu ajutorul pachetului de programe XAMPP. În pachetul XAMPP pe lângă MySQL database se mai află și modulul phpmyadmin cu ajutorul căruia se manipulează baza de date prin intermediul oricărui browser web. Pachetul XAMPP se poate downloada de la adresa apachefriends.org/download.html și este gratuit. Înainte de instalare trebuie modificate permisiunile pentru ca fișierul downloadat să poată fi executat: sudo chmod +x xampp-linux-x64-5.6.3-0-installer.run. Apoi, se execută fișierul: sudo ./xampp-linux-x64-5.6.3-0-installer.run. Se va deschide interfață grafică de instalare cu ajutorul căreia se instalează pachetul de programe XAMPP. Pachetul de programe se poate instala atât local, pe stațiile de lucru cât și pe servere de Linux, Windows.
Baza de date, denumită schimb_magic se află stocată pe un server Ubuntu aflat la sediul firmei de service IT cu care casa de schimb are contract de întreținere a sistemelor informatice. S-a ales această soluție pentru o mai rapidă intervenție în baza de date în caz de nevoie, fie din partea firmei de service fie din partea administratorului de schimb valutar. Intervențiile în baza de date se pot face cu ajutorul modulului phpmyadmin care asigură o interfață cu ajutorul căreia se pot iniția baze de date mysql și se pot modifica ulterior. Modulul se accesează din orice locație cu acces internet prin intermediul unui browser web. În bara de adrese se tastează adresa ip a serverului în formatul: adresa ip/phpmyadmin sau se poate folosi un provider de DNS dinamic, cum ar fi no-ip.org care creează un hostname. În acest caz accesul la baza de date se face: hostname/phpmyadmin.
Baza de date se crează din meniul phpmyadmin:
DatabasesCreate Database
Baza de date se poate denumi în funcție de alegerea administratorului iar denumirea se poate modifica ulterior dacă este necesar din meniul phpmyadmin. Pentru a redenumi o bază de date se selectează baza de date, se alege tabul operations după care se selectează câmpul rename database to.
Baza de date cuprinde următoarele tabele:
acte = stochează date despre tipul actelor folosite la tranzacțiile valutare;
bonuri = stochează date despre operațiunea de schimb valutar, odată cu emiterea bonului fiscal în această tabelă se salvează toate detaliile tranzacției;
clienți = stochează datele despre clienți;
curs = ține evidența cursului de schimb valutar;
gestiuni = ține evidența punctelor de lucru ale casei de schimb valutar;
lin_tra = ține evidența transferurilor de bani între punctele de lucru sau casieria casei de schimb valutar;
operatori = stochează datele operatorilor, parolele acestora și modul de acces al acestora la prelucrarea datelor;
reevaluare = stocheaza date despre modificările valorice a valutelor pe parcursul unei luni
sold = stochează date despre soldul casei de schimb valutar
țari = stochează date despre rezidența clienților casei de schimb, în această tabelă sunt stocate numele țărilor, se poate actualiza;
tranzacții = se stochează tipul tranzacțiilor posibile într-o casă de schimb valutar;
valute = se stochează tipul valutelor tranzacționate, sunt stocate cele mai uzuale valute;
Pe lângă tabelele de mai sus, pe fiecare stație de lucru se găsește câte un fișier param.dbf. Acest fișier are mai multe câmpuri. În câmpul Server se afla stocată calea către baza de date. În acest câmp se poate scrie adresa ip a serverului care susține baza de date sau adresa DNS a acestui server. În cazul prezentat în această lucrare adresa serverului este de formă: dataprohp.no-ip.org. Avem câmpurile user și parola, câmpuri în care se află stocat userul de acces la baza de date și parola care se setează de către administratorul bazei de date. Un alt câmp este database, câmp care stochează denumirea bazei de date la care se conectează programul. Mai avem câmpurile firma, adresa, cod_fiscal, reg_com unde se stochează datele firmei care utilizează programul de schimb valutar și câmpul versiune unde se află codul de versiune, adică, data ultimei actualizări a programului. Cod_stat reține codul statistic al punctului de lucru (este un cod atribuit de catre Ministerul Finanțelor Publice tuturor punctelor de lucru care tranzacționează valută si este unic per punct de lucru). Câmpurile W și H conțin rezoluția ecranului (înalțime si lățime) și se setează din formul configurare/param. Câmpul Serie_impl conține seria implicită a cărții de identitate care apare în adăugare bon fiscal atunci cănd se face o tranzacție catre un rezident pe baza cărții de identitate.
2.4.2 Structura principalelor tabele ale bazei de date
Tabelul bonuri:
Tabela bonuri stochează toate tranzacțiile de tip bon fiscal. În această tabelă se află toate detaliile aferente tranzacției valutare efectuate între casa de schimb valutar și client. Câmpul id este de tip int și este auto increment și unic pe fiecare tranzacție în parte. Câmpurile nume, actid, serie și număr stochează identitatea clientului. Câmpul țara stochează țara stipulată pe actul de identitate al clientului. În câmpul suma_lei avem valoarea tranzacției în RON, indiferent dacă este vorba de cumpărare de valută sau vânzare de valută. Suma_val stochează suma valutei tranzacționate. Curs_cc este cursul de referință, cursul valutar aferent cumpărării de valută iar curs_vc este cursul de referință aferent vânzării de valută. Câmpul curs stochează cursul valutar aferent cumpărării sau vânzării de valută la care s-a efectuat tranzacția. Cele două cursuri (curs_cc și curs_vc) pot să difere de câmpul curs doar în momentul în care se modifică cursul de cumpărare sau vânzare în momentul tranzacției și doar pentru tranzacția respectivă. Câmpurile dată și ora stochează data și ora modificării cursului de schimb iar data_ora stochează ora la care se efectuează tranzacția de schimb valutar. Câmpul fel_op stochează tipul tranzacției efectuate (vânzare = V, cumpărare = C). În câmpul rezident (de tip numeric) se stochează informația despre rezidența clientului. Câmpul id_op stochează id-ul operatorului care efectuează tranzacția respectivă. Prenume stochează prenumele clientului iar câmpul valid este de tip int de 1 și stocheaza datele despre validitatea bonului respectiv (dacă a fost anulat ulterior sau este valid).
Tabelul curs:
În tabelul cursseține evidența cursului de schimb valutar și a modificărilor acestuia. Pe lângă câmpul id de tip int (unic) avem câmpurile curs_c și curs_v care stochează cursurile de cumpărare și vânzare ale valutelor (acestea pot fi modificate în orice moment al zilei), avem câmpul comision pentru a avea evidența comisionului aplicat de către casa de schimb valutar (nu se folosește actual astfel că ia valoarea 0). În câmpul curs_bnr avem stocat cursul valutar afișat de către Banca Națională a României. Acest curs se actualizează în fiecare zi lucrătoare în jurul orelor 13.00. În câmpul sold se stochează soldul actualizat al valutelor. Acesta se modifică după fiecare tranzacție sau transfer de bani. În câmpul dif_curs se stochează diferențele apărute după modificările de curs. Ele sunt afișate în moneda națională și pot fi negative sau pozitive, în funcție de modificările de curs valutar. La fel ca si in tabela bonuri cămpul id_op reține id-ul operatorului care modifică cursurile.
Tabelul lin_tra:
În tabelul lin_tra se ține evidența intrărilor și ieșirilor (transfer) de bani între punctele de lucru sau între punctele de lucru și casieria centrală. Câmpul id este de tip int (auto_increment), câmpul data_doc stochează data efectuării transferului iar num_doc de tip int stochează numărul documentului pe baza căruia s-a efectuat transferul. Acest număr este unic per casa de schimb valutar și este dat de administratorul casei de schimb. Gest_pred și gest_prim stochează codul gestiunii care primește, respectiv trimite banii și este identic cu cod_ges din tabelul gestiuni. Cod_val stochează codul valutei transferate sau al monedei naționale, câmpul curs reține cursul la care valuta este transferată (cursul de schimb al punctului de lucru care trimite banii) iar curs_c este cursul de schimb de referință. Suma_val stochează valoarea tranzacției.
2.4.3 Structura tabelelor auxiliare ale bazei de date
Tabelul acte:
Tabelul acte conține tipul de acte aprobate în tranzacțiile de schimb valutar. Avem coloana ID de tip int (AUTO_INCREMENT) și fel care stochează tipul actului pe baza căruia se efectuează tranzacția de schimb valutar. Acesta poate să fie de patru tipuri: C.I., Pașaport, B.I. sau Permis de ședere temporar. Doar pe baza acestor acte este permisă tranzacția de schimb valutar.
Tabelul clienți:
Tabelul clienți stochează detaliile despre clienții casei de schimb valutar. Coloana nume conține numele și prenumele clientului, coloana id_tara conține id-ul țării de rezidență al clientului, același id pe care îl avem și în tabelul țări. Id_act conține unul din cele patru id-uri ale actelor aprobate în tranzacțiile valutare. Este același id, stocat și în tabelul acte, coloana fel. Avem și serie și număr care conțin seria respectiv numărul actului de identitate prezentat de client.
Tabelul gestiuni:
Acest tabel conține câmpurile id, cod_ges stochează codurile gestiunilor casei de schimb valutar, den_ges stochează adresele gestiunilor, cont_cv
Tabelul operatori:
Tabelul operatori conține datele de autentificare în program precum și tipul autentificării. Avem câmpul id, câmpul operator stochează numele cu care se loghează fiecare operator, parola de logare și câmpul admin care ia valorile 1 sau 0. 1 pentru admin și 0 pentru utilizator normal, fără drepturi de acces în setările programului de schimb.
Tabelul sold:
Tabelul sold conține soldul inițial, cu care punctul de lucru își începe activitatea. Conține câmpurile id, cod_val, dată și sold care stochează codul valutei, data în care au fost introduse sumele de început și sumele introduse.
Tabelul țări:
Tabelul țări conține câmpurile id, țară (numele țărilor), rezident (dacă clientul este rezident românsau nu) și cod_țară care conține codurile tuturor țărilor stocate în tabel. Au fost importate numele a 261 de țări.
Tabelul tranzacții:
Tabelul tranzacții conține două coloane. Coloana id și coloana fel care stochează cele două feluri posibile de tranzacții la o casă de schimb valutar, cumpărare respectiv vânzare de valută.
Tabelul valute:
Tabelul valute stochează date despre valutele uzuale folosite de către casa de schimb valutar la tranzacțiile efectuate. Conține câmpurile id, cod_val codul valutelor (de forma RON, EUR, USD, etc), den_val conține denumirea valutelor, um specifică unitățile de măsură de referință ale valutelor (ex: în cazul RON unitatea de măsură de referință este 1 iar în cazul HUF unitatea de măsură de referință este 100), activ care ia valoarea 1 dacă valută este activă și 0 dacă este inactivă. În funcție de aceste valori, 1 sau 0, aceste valute vor fi afișate în programul de schimb valutar sau nu.
2.5. Proiectarea interfeței (form-uri)
Pentru proiectarea interfeței cu utilizatorul (form-uri si controale) se pot construi biblioteci de clase in care se includ clase de formulare, clase de butoane, clase label, text, titlebar. În actuala aplicație nu s-a folosit aceasta optiune. Crearea formurilor a fost efectuata individual, fiecare form in parte. Am ales o temă, simplă, clasică pentru ca interfata sa fie usor manevrabilă de catre utilizator și, in principal să ruleze fără probleme pe calculatoare cu specificații minime de sistem. În marea majoritate a punctelor de schimb valutar sistemele de operare sunt de tip Windows XP astfel că programul va trebui sa ruleze pe aceste stații fără probleme.
Pentru a crea un form nou se pot alege mai multe metode:
• în fereastra project manager se selecteaza forms, apoi se dă click pe butonul new
• în command scriem create form
• în meniul principal se selectează File, apoi New urmând ca in fereastra apăruta sa alegem opțiunea form, după care selectam new file
Pentru ultimele două opțiuni form-ul astfel creat va trebui să fie adăugat in proiect selectând butonul add din fereastra project manager. Form-ul astfel creat va putea fi populat cu obiectele necesare. Pentru a da formă si conținut form-ului avem la dispozitie barele de unelte: layout, color palette toolbar, form controls toolbar ( probabil cel mai utilizat în dezvoltarea unui form) si fereastra form properties. (Fig 2.5) Pentru a aduce un control în formular se dă click pe acel control în Form Controls Toolbar, după care click pe formular în locul în care se dorește a se insera controlul și acesta va fi inserat. După aceasta se poate trece la editarea controlului (format, dimensiuni, editarea evenimentelor, etc.).
Form-ul nou creat îsi ia denumirea implicit de forma FormDoc1…n (este de preferat să se schimbe denumirea pentru a nu crea confuzii) iar fișierul salvat care conține form-ul are extensia .SCX. Este insoțit și de un fișier (același nume) cu extensia .SCT. Pe formularul nou creat se pot adăuga obiecte: clase definite de utilizator, containere, controale standard, controale ActiveX.
Figura 2.5 – Form Designer și uneltele necesare proiectării unui form
2.5.1 Proiectarea form-ului de intrare în aplicație
Pentru pornirea aplicației se folosește un form principal denumit start.scx. În acest form se introduc numele si parola utilizatorului. Exista două moduri de acces in aplicație:
• acces deplin – acces de tip ADMIN
• acces parțial – acces de tip OPERATOR
Accesul de tip ADMIN are in plus față de OPERATOR accesul la form-ul Configurare de unde se pot modifica datele societații si soldul inițial.
În load-ul acestui form am definit rezoluția la care ruleaza programul. În aplicația care face obiectul acestei lucrari _screen.Height=H, _screen.Widht=W setate in formul Param și salvate in fișierul param.dbf,_screen.BackColor=RGB (214,214,171), _screen.caption = 'Schimb Valutar'. Tot aici avem si comanda Do connect care executa procedura de conectare la baza de date mysql stocata in fisierul proceduri. Codul acestei proceduri este redat in anexa 2 (punctul 2.1). În procedura click a command button-ului OK se cauta in tabela operatori operatorul și parola. Daca există se afișeaza meniul principal. Daca operatorul sau parola nu sunt localizate in tabela operatori atunci se va afișa un messagebox: Parola sau operator gresit !!!.
Figura 2.6 – Form-ul de intrare in aplicație în modul design
Figura 2.7 – Form-ul de intrare in aplicație in modul runtime
2.5.2 Proiectarea form-ului principal
Formul principal (meniul principal) este format din zece command butons care deschid diferite interfețe ale programului de schimb valutar sau alte meniuri: Actualizare cursuri, Emitere bonuri, Anulare/Retipărire bon, Liste, Configurare, Adăugare transfer, Actualizare transferuri, Raport X, Raport Z si Abandon .Butonul aferent deschiderii interfeței de emitere bunuri conține comanda de cautare a modificarilor de curs pe ziua curenta. Operatorul este obligat sa actualizeze cursurile înainte de a incepe să emita tranzactii (bonuri fiscale). Daca nu există nici o actualizare a cursurilor in tabelul curs al bazei de date atunci se va returna eroarea:
,,Nu aveți cursuri valutare pentru ziua curentă”
Butoanele aferente printării rapoartelor Z, respectiv X execută executabilele aflate in folderul aplicatiei:
C fzet.exe – determină imprimanta fiscală să execute inchiderea de zi (raport Z)
C fics.exe – determină imprimanta fiscală sa genereze un raport X
Funcțiile fzet.exe si fics.exe fac parte din pachetul de funcții pentru imprimanta fiscala EPSON MF (versiunea exchange) cuplabilă la calculator dezvoltat de SC Mastercomputers SRL.
Figura 2.8 – Form-ul principal in modul design
2.5.3 Proiectarea interfeței de actualizare a cursurilor
Interfața de actualizare a cursurilor conține un grid format din 5 coloane: Cod Val, Denumire Valută, Curs Cumpărare, Curs Vânzare, Curs BNR. În coloanele curs cumpărare, curs vânzare si curs BNR se afișeaza cursurile curente si se pot modifica de câte ori este nevoie. Cursurile sunt selectate din tabela curs a bazei de date. Procedura click a command button-ului OK conține calculul soldului valutelor, se preia soldul inițial, rulajele intre data inițiala și data selectata (data curentă), rulajele in data selectată si calculul soldului valutelor. Modificările se inserează în tabela curs, campurile cod_val,curs_c,curs_v,data,ora,curs_bnr,sold,dif_curs. In momentul validării modificărilor apare un mesaj de tip MESSAGEBOX(,,Cursurile au fost actualizate !!!”).
Figura 2.9 – Form-ul act_curs in modul design
2.5.4 Proiectarea interfeței de adăugare a bonului fiscal
Pentru proiectarea interfeței de adăugare a bonurilor fiscale am folosit controale de tip Label, List ( pentru selectarea tipului de tranzacție, codului valutelor, țării si actelor de identitate), Grid ( pentru afișarea soldului valutelor si a identitații clienților), Text Box (pentru afișarea numelui operatorului, pentru afișarea rezidenței, sumei totale, cursului de referință, introducerea sumei, modificarea cursului de schimb, introducerea seriei și a numarului actului de identitate) si un timer pentru afișarea datei și a orei.
În load-ul form-ului este scris codul pentru calculul soldurilor (cod folosit și in formul pentru actualizarea transferurilor). Acest calcul se face dupa fiecare tranzacție pentru a actualiza soldul. Codul acestei proceduri este redat in anexa 2 (punctul 2.2)
În procedura click a butonului Tipărire BON avem un messagebox ('Nu se poate face vanzare de valuta catre NEREZIDENTI !!!) si codul aferent:
IF __rezident = 'NEREZIDENT' AND __fel_tran='VANZARE'
Pentru tipărirea raportului bon fiscal se folosește funcția euro.exe care realizează operațiile necesare tipăririi bonului la imprimanta fiscală și fișierul auxiliar vanzari.txt care este folosit de către euro.exe ca sursă de informații pentru generarea bonului fiscal. Structura fișierului vânzări.txt:
Aceste funcții fac parte din pachetul de funcții pentru imprimanta fiscala EPSON MF (versiunea exchange) cuplabilă la calculator dezvoltat de SC Mastercomputers SRL și avizat de către Ministerul de Finanțe. Astfel, se va crea un fisier bon.txt în directorul programului de schimb valutar care va fi populat cu datele necesare după structura prezentată mai sus. Acest fișier va fi redenumit vanzari.txt și se va executa euro.exe.
Figura 2.10 – Form-ul add_bon în modul design
2.5.5 Proiectarea interfeței de adăugare/retipărire bon fiscal
Form-ul act_bon.scx conține un grid care afișează datele bonurilor tipărite in ziua respectivă si care are noua coloane: nume și prenume, țara, suma în lei, valuta, suma în valută, curs, fel tranzacție, ora, valid. Avem un timer, două label-uri care afișează data respectiv ora, un label care conține variabila operator, un text box care afișează data curentă și trei command button: tipărire, anulare și ieșire. În load-ul formului se află selectul din tabela bonuri a variabilelor afișate in grid. Numele este afișat din două coloane diferite ale tabelei bonuri, respectiv numeși prenume. Codul pentru a afișa două variabile intr-o singură coloană a grid-ului este de forma:
-select concat(nume,prenume) as nume.
În procedura click a butonului Tipărire avem procedura de tipărire a raportului bon fiscal explicată la capitolul 2.5.4 Proiectarea interfeței de adăugare a bonului fiscal.
În procedura click a butonului Anulare avem un messagebox de confirmare a ștergerii bonului, comanda sql de ștergere a bonului din baza de date, un messagebox care anunța ștergerea bonului și un select al tabelei bonuri după stergerea bonului respectiv (refresh). (fig. 2.11)
Figura 2.11 – Form-ul act_bon in modul design
2.5.6 Proiectarea interfeței de adăugare transfer
Transferurile sunt intrări sau ieșiri de bani din gestiunea punctului de lucru către sau dinspre alte puncte de lucru sau casieria centrală. Interfața de adăugare transfer este formată dintr-un grid cu patru coloane: cod valută, denumire valută, curs și suma transferată, un timer, trei label (două pentru data și ora, una pentru afișarea operatorului), un list box în care se face selecția punctului de lucru, un opțion group unde se selectează tipul de transfer (predare,primire) și două command buttons (tipărire/validare, ieșire).
În procedura load a form-ului se selectează din tabela gestiuni denumirea gestiunilor care primesc sau predau sumele de bani, se selectează cursul valutar actual de cumpărare din tabela curs, iar din tabela valute se selectează codul valutelor și denumirea valutelor. În procedura click a command button-ului Validare se inserează in tabela lin_tra numărul documentului, data documentului, codul valutei, cursul, suma valutei, gestiunea predătoare, gestiunea primitoare,cursul de cumpărare și se actualizează soldurile. După validarea transferului avem un messagebox ('Transferul a fost validat !!!')
Figura 2.12 Form-ul add_tra în modul design
2.5.7 Proiectarea form-ului de actualizare transferuri
Formul de actualizare transferuri conține un grid în care se afișează toate transferurile efectuate în perioada selectată. Gridul conține următoarele coloane: număr transfer, data transfer, gestiune primitoare și gestiune predătoare.
Codul din evenimentul click al butonului de „Tipărire” este prezentat în anexa 2 (punctul 2.3)
Figura 2.13 – Actualizare transferuri în modul design
2.5.8 Proiectarea meniului liste și a interfețelor pentru rapoarte – viz_curs.scx, bord_cump.scx, bord_vânz.scx, reg_casa_lei.scx, reg_casa_val.scx, nota_contabila.scx, reg_tranzacții.scx, inch_luna.scx
Meniul liste conține command button-uri ale căror evenimente click deschid interfețele proiectate pentru tipărirea rapoartelor necesare casei de schimb valutar. (fig. 2.14)
Figura 2.14 – Meniul Liste în modul design
Form-ul de vizualizare a cursurilor conține două griduri si un filtru pentru selectarea datei de afișare a cursului valutar. În primul grid se afișează orele la care s-au modificat cursurile în ziua selectată din tabela curs iar în gridul al doilea se afișează codul valutei, curs cumpărare, curs vânzare si curs BNR. Evenimentul click al butonului Tipărire deschide raportul curs_val.frx în modul print preview.
Figura 2.15 – Interfața de afișare și printare a cursurilor valutare în modul design
Borderoul vânzărilor și cumpărărilor valutare tipăreste atât fiecare vânzare în parte cât si suma tuturor vânzarilor, respectiv cumpărărilor sortate pe tipurile de valute și valoarea lor în RON. Pentru raportul „borderoul vânzărilor” avem interfața bord_cump.scx iar pentru raportul „borderoul cumpărărilor” avem interfața bon_vanz.scx care conțin fiecare două textboxuri pentru introducerea datei de început respectiv a datei de sfârsit. În evenimentul click al butonului de tipărire se selectează din tabela bonuri data-ora, id, rezidența, codul valutei, suma valutei, suma lei unde felul tranzacției este cumpărare (borderou cumpărări) respectiv vânzare (borderou vânzări). (anexa 1, punctele 1 și 2)
Registrul de casă lei afișează în moneda națională totalul cumpărărilor si vănzărilor de valută pe o anumită zi precum și soldul de inceput și soldul final al zilei iar registrul de casă in valută afișează încasările și plățile în valută, soldul de inceput de zi, soldul la finalul zilei și totalul echivalent ron-valută. (anexa 1, punctele 3 și 4)
Nota contabilă este un raport pe perioadă care tipăreste totalurile de cumpărare valută, de vânzare valută, marjele si predare valute. Conturile sunt: de credit-5311, de debit-5311. (anexa 1, punctul 5).
Registrul tranzacții este un raport care afișează sold inceput de zi, sold final de zi, cumpărări si vânzări valute dintr-o anumită zi. (anexa 1, punctul 6)
Închiderea de lună afișează diferența dintre soldul total lunar transformat în RON si același total la cursul BNR. (anexa 1, punctul 6)
2.5.9 Proiectarea interfeței Param
Interfața param form-ul folosit pentru a introduce datele firmei și setările de lucru ale programului de schimb valutar. În text box-urile din interfața param se introduc datele firmei: denumire, cod fiscal, punct de lucru, adresa, cod statistic, parametri de conectare la server: nume server, user, parola, numele bazei de date, rezoluția ecranului, serie C.I. implicită și diferență curs maximă. Aceste date sunt stocate in tabela param.dbf. (fig. 2.16)
Figura 2.16 – Interfața config_param în modul design
2.6. Proiectarea rapoartelor
Mediul Visual FoxPro dispune de propriul generator de rapoarte. La proiectarea acestora avem la dispoziție o serie de controale:
• Label – pentru texte care trebuie să apară pe rapoarte (și care nu se modifică)
• Field pentru afișare de valori stocate în variabile sau înregistrări din tabele
• Picture/Ole Bound Control pentru afișare de controale Ole, adică imagini; se mai ales pentru afișarea de sigle.
Rapoartele au mai multe benzi de proiectare:
• banda Title – este folosită pentru antetul și pentru titlul raportului;
• banda Page Header – folosită pentru header (cap) de pagină; sefolosește mai ales pentru afișarea capurilor de tabel;
• banda Detail – pentru afișarea detaliilor;
• banda Page Footer – pentru sfârșit de pagină (afișarea de exemplu a numărului de pagină);
• banda Summary – pentru sfârșitul raportului. Se folosește de obicei pentru afișarea de totaluri generale.
Pe lângă acestea se mai pot insera benzi Data Grouping – în interiorul benzii și Detail-pentru gruparea datelor în funcție de anumite criterii. Acestea se pot insera în fereastra de proiectare din meniul Report – Data Grouping, se deschide fereastra Data Grouping, se dă click pe butonul Insert și se deschide o nouă fereastră – Expresion Builder – în care se editează expresia după care se vor grupa datele, iar apoi se dă click pe butonul Ok. De asemenea prin click pe tabul FilePage Setup apare fereastra Page Setup, în care se poate edita formatul de pagină, marginile, se poate alege tipul de imprimantă, modul de imprimare, etc (fig 2.17)
Figura 2.17 – Raport in modul design cu fereastra Page Setup
De asemenea prin click dreapta pe raport, din meniul contextual se alege Data Environment (mediu de date), se va deschide o fereastră în care putem adăuga raportului un mediu de date (tabel). Acesta se poate adăuga astfel: în fereastra Data Environmentse dă click dreapta, se alege Add, și se va deschide fereastra din care se alege tabela dorită (fig 2.18)
Figura 2.18 – Aducerea unui tabel în fereastraData Environment
După aducerea tabelei în fereastra Data Environment, se pot trage din tabelă pe raport, cu mouse-ul, câmpurile dorite.
În aplicația care face obiectul acestei lucrări nu am folosit această proprietate.
În bara de instrumente avem butonul Report Controls Toolbar care deschide o fereastră cu mai multe butoane. Se dă click pe butonul Field și se poziționează câmpul creat cu mouse-ul în cadrul raportului. Prin dublu click pe acest câmp se deschide fereastra Report Expression. (fig 2.19)
Figura 2.19 – Fereastra de editare a unui câmp din raport
În această fereastră se introduce expresia care trebuie să apară în câmp. Această expresie poate sa fie de forma: cod_val
Ca urmare a expresiei de mai sus va apărea afișat în câmpul respectiv (exemplu):EUR. Butonul Print When se poate stabili prin bifare de opțiuni dacă se vor tipări valorile care se repetă. De asemenea în acest tab se poate stabili când anume acest câmp va fi afișat și când nu (în câmpul Print only when expression is true). ButonulCalculations se alege dacă în câmpul respectiv se va calcula ceva – sum, average, count. Cel mai des folosită este opțiunea sum, în cazul totalurilor. Valoarea implicită este none. Câmpul Format este pentru formatarea controlului: tip – caracter, numeric, dată și aliniament – stânga, centru, dreapta. Comanda pentru listarea unui raport poate să arate în felul următor:
Report Form <nume_raport> Environment Preview
Expresia Environment stabilește faptul că raportul folosește ca și mediu de date principal ultimul tabel, cursor sau array selectat. De regulă, la listarea rapoartelor, ultimul tabel selectat conține valorile care trebuie să apară în banda Detail a raportului. Expresia Preview specifică faptul că raportul va fi deschis în modul vizualizare, după care se poate lista la imprimantă. În figurile de mai jos se prezintă rapoartele folosite de aplicație în modul de proiectare (design). Toate rapoartele sunt în format A4 Portrait.
Figura 2.20 – Raportul bord_cump.frx – pentru listarea cumpărărilor de valută într-o anumită perioadă în modul design
Figura 2.21 – Raportul bord_vanz.frx – pentru listarea vânzărilor de valutăîntr-o anumită perioadăîn modul design
Figura 2.22 – Raportul curs_val.frx – pentru listarea cursurilor valutare într-o anumită zi în modul design
Figura 2.23 – Raportul nota_contabila.frx – pentru listarea notei contabile într-o anumită perioadăîn modul design
Figura 2.24 – Raportul reg_casa_lei.frx – pentru listarea registrului de casă (vânzări, cumpărări, marje) într-o anumită zi în modul design
Figura 2.25 – Raportul reg_casa_val.frx – pentru listarea registrului de casă într-o anumită zi în modul design
Figura 2.26 – Raportul reg_tranzacții.frx – pentru listarea tranzacțiilor valutare într-o anumită zi în modul design
Figura 2.27 – Registrul transfer.frx – pentru listarea transferurilor efectuate de către punctul de schimb valutar (intrări, ieșiri prin transfer) în modul design
CAP. 3. Utilizarea aplicației
Intrarea în aplicație se face prin tastarea numelui de utilizator și a parolei în interfața prezentată la capitolul 2.5.1.În această interfață utilizatorului i se afișează data, ora și o casuța informativă dacă programul este sau nu conectat la baza de date.În funcție de utilizatorul introdus se va deschide modul pentru operatorii aplicației sau pentru administrator. Administratorul are în plus față de utilizator activ meniul Configurare.Toate interfețele se închid sau se minimizeazăcu ajutorul unor butoane specific interfețelorde tip window(ferestre).
După ce sunt introduse datele corecte pentru logarea în aplicație se deschide meniul principal.
3.1 Meniul principal al aplicației
Figura 3.1 Meniul principal al aplicației
În acest meniu utilizatorul are mai multe opțiuni – butoane. Aceste butoane sunt: Actualizare cursuri,Emitere bonuri,Căutare/Retipărire bon,Adăugare transfer,Actualizare transferuri Liste, Configurare, Raport X, Raport Z și Ieșire.
3.2. Actualizarea cursurilor de schimb valutar
La prima logare din ziua respectivă, înainte de a intra în meniul Emitere bonuri utilizatorul va trebui să actualizeze cursurile. Acționând butonul Actualizare cursuri din meniul principal se va intra în interfața de actualizare cursuri unde se vor tasta cursurile de vânzare și cumpărare precum și cursul BNR din ziua respectivă, după care se va acționa butonul Validează. Va apărea un pop-up cu mesajul ,,Cursurile au fost validate”. Aceste cursuri de schimb valutar se pot actualiza de câte ori este nevoie pe parcursul unei zile. (Fig. 3.2)
Figura 3.2- Interfața actualizare cursuri
3.3. Emiterea rapoartelor de tip Bon Fiscal
Din meniul principal se acționează butonul Emitere bonuri. Se deschide interfața pentru emiterea bonurilor fiscale. Pentru a emite un bon fiscal operatorul trebuie să selecteze tipul tranzacției (cumpărare sau vânzare) apoi codul valutei tranzacționate. Se va tasta valoarea tranzacției și cursul valutar la care se tranzacționează valuta (acesta poate fi modificat direct din interfața de emitere a bonului fiscal însă doar pentru tranzacția în curs). Cursul valutar nu se poate modifica cu mai mult de 0,0200 fața de cursul afișat (această marjă este modificabilă și se poate modifica doar de către administratorul casei de schimb valutar). În cayul in care cursul este modificat de catre operator din interfața de adăugare bon în partea dreapta a cursului vor apărea trei semne ale exclamării roșii pentru a atenționa operatorul că tranzacșia se va efectua la un curs diferit față de cel afișat. Apoi se va scrie numele și prenumele clientului, se va selecta țara de proveniență, actul pe baza căruia se efectuează tranzacția, se va scrie seria și numărul actului (dacă tranzacția se va efectua pe baza C.I. atunci în câmpul Seria va fi afișat implicit AR (se poate modifica) după care se va acționa butonul de tipărire a raportului bon fiscal. În această interfață operatorului i se va afișa un timer (data și ora), dacă clientul este resident sau nu, soldul actual al valutelor, cursul de referință al valutelor și suma pe care clientul trebuie să o încaseze în urma tranzacției. În stânga sus este afișat și userul care este logat în programul de schimb valutar. (fig. 3.3)
Figura 3.3 – Interfața pentru emiterea bonurilor fiscal
3.4 Interfața pentru căutare sau retipărire bon
Din mai multe motive (bonul nu a fost printat de imprimantă fiscală, a apărut o eroare la printarea bonului etc.) un anumit bon fiscal se poate retipări. Pentru această acțiune din meniul principal se intră în interfața de căutare sau retipărire a bonului fiscal. Se selectează bonul și se acționează butonul Anulare sau Tipărire, după caz. În această fereastră sunt afișate toate detaliile bonurilor fiscale emise pe ziua respectivă. Interfața pentru căutare sau retipărire bon poate să fie accesată doar de către operatorii cu drepturi de administrator. (fig 3.4)
Figura 3.4 – Interfața pentru căutarea sau retipărirea bonului fiscal
3.5. Meniul Liste
Din meniul principal se intră în meniul liste prin click/enter pe butonul Liste. În acest meniu avem posibilitatea de a tipări toate rapoartele necesare unei case de schimb valutar. Meniul are următoarele butoane: Vizualizare cursuri, Borderou vânzări, Borderou cumpărări, Registrul de casă lei, Registrul de casă valută, Nota contabilă, Registrul tranzacții și închidere lună. (fig. 3.5)
Figura 3.5 – Meniul Liste
Butonul Vizualizare cursuri activează interfața pentru vizualizarea cursurilor și a orei la care cursurile au fost actualizate. Pe butonul tipărire se afișează raportul în modul print preview. (fig. 3.6)
Figura 3.6 – Vizualizare cursuri
Pentru a printa oricare dintre celelalte rapoarte din meniul Liste se selectează butoanele aferente, se introduce data după care se dă click pe butonul OK. Astfel se intră în modul print preview după care rapoartele se pot lista la imprimantă.
3.6. Meniul Configurare
Acest meniu poate să fie accesat doar de către operatorii cu drepturi de administrator. În acest meniu avem trei butoane: Solduri Inițiale, Param si Ieșire. În interfața pentru adăugarea soldurilor inițiale se introduce soldul inițial la data deschiderii punctului de lucru. (fig 3.7)
Figura 3.7 – Introducere solduri inițiale
Din meniul Configurare prin click sau enter pe butonul Param se accesează interfața de configurare parametric. În această interfața utilizatorul programului de schimb valutar poate să introducă de la tastatură toate datele firmei și datele de configurare ale programului. Avem câmpurile denumire societate, cod fiscal, punct de lucru, adresă punct de lucru si cod statistic care trebuiesc completate la inceputul activității sau pe parcurs dacă apar modificări. Avem câmpurile în care se introduc datele de acces la baza de date, nume server, user, parola si numele bazei de date. În campurile înălțime și lățime ecran se introduce rezoluția ecranului, serie C.I. în care se va introduce seria cărții de identitate implicit care va fi afișată în interfața de adăugare bon, câmpul serie C.I. iar în campul diferența curs maximă se va introduce diferența maximă față de cursul afișat la care se poate efectua o tranzacție modificând cursul din interfața de adăugare bon fiscal. (fig. 3.8)
Figura 3.8 – Intefața de configurare a parametrilor
3.7. Interfața pentru adăugarea transferurilor
Acționând butonul Adăugare transfer din meniul principal se deschide interfața de transferuri valutare. Se selectează tipul de transfer, predare sau primire apoi se selectează punctul de lucru spre care se trimit sau de la care se primesc banii, se introduce numărul documentului de transfer iar în câmpurile aferente valutelor se introduce cursul valutar la care se face transferul (dacă este cazul) și suma. Se dă click pe butonul validează și se printează documentul de transfer. (Fig. 3.7)
Figura 3.7 – Interfața pentru adăugarea transferurilor
3.8. Interfața pentru actualizarea transferurilor
Pentru a vizualiza un transfer dintr-o anumită perioadă, din meniul principal se selectează butonul Actualizare transfer care deschide interfața de actualizare. Se introduce de la tastatură intervalul periodic în care vor fi afișate transferurile după care se selectează transferul care se dorește a fi șters sau vizualizat. Dacă operatorul dorește să modifice unele date dintr-un anumit transfer poate să îl șteargă pentru ca apoi din interfața de adăugare transfer acesta se poate rescrie. În această interfață sunt afișate detaliile transferurilor: numărul transferului, data transferului, gestiunea primitoare și gestiunea predătoare. (fig 3.8)
Figura 3.8 – Interfața pentru actualizarea transferurilor
3.9. Executarea rapoartelor X și Z
Rapoartele X și Z se execută selectând butoanele Raport X respectiv Raport Z din meniul principal al aplicației. Raportul X este un raport cu caracter informativ printat pe imprimantă fiscală care conține sumele totale, în lei care au fost tranzacționate de la ultimul raport Z și până în momentul printării raportului. Se poate printa de câte ori este nevoie și este un raport nefiscal. Raportul Z se printează la terminarea programului și conține suma tranzacțiilor în lei pe ziua respectivă. Raportul Z este un raport cu caracter fiscal și în momentul printării lui memoria fiscală se golește. (fig 3.9)
Figura 3.9 – Rapoartele X și Z
CONCLUZII
Prin prezenta lucrare am încercat să prezint o aplicație de schimb valutar, care este folosită in punctul de lucru al unei firme de schimb valutar.
La proiectarea aplicației am urmărit ca aceasta să fie cât mai ușor de folosit, să fie foarte flexibilă și să dea posibilitatea utilizatorilor să emită bonuri fiscale în concordanță cu legile caselor de schimb valutar din România, să vizualizeze și să listeze rapoarte cât mai variate și cât mai detaliate, în funcție de necesități.
În ce privește interfața cu utilizatorul, am urmărit ca aceasta să fie în același timp complexă, prin posibilitatea filtrării înregistrărilor din bazele de date pentru regăsirea acestora mai ușor și mai repede, o monitorizare cât mai laborioasă a datelor introduse prin afișarea acestora în mai multe grid-uri pentru aceeași interfață, cât mai completă, dar și simplu de folosit, încercând să o fac cât mai intuitivă.
Aplicația îndeplinește cu succes atât scopul practic pentru care a fost proiectată (emiterea rapoartelor bon fiscal), cât și cel de a realiza o interfață cât mai prietenoasă cu utilizatorul.
BIBLIOGRAFIE
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplicatie Informatica Pentru Tranzactiile Unui Curs Valutar (ID: 109933)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
