Documente Academic
Documente Profesional
Documente Cultură
LUCRARE DE LICENȚĂ
București, 2021
Cuprins
Introducere ............................................................................................................................... 3
2
Modelarea logica a prelucrărilor ....................................................................................... 28
Referințele bibliografice......................................................................................................... 51
Anexe ....................................................................................................................................... 53
3
Introducere
Piatra de temelie a acestei lucrari da curs unui subiect foarte important zilelor noastre,
si anume digitalizarea metodelor traditionale de gestiune a stocurilor si nu numai. In acest sens,
in cadrul acestei lucrari voi aprofunda cerintele necesare pe baza cunostintelor pentru realizarea
unui program informatic de gestiune a stocurilor.
Premisa de la care s-a inceput a fost aceea de a sporii ritmul realizarii unei gestiuni
realizate prin metoda traditionala, adica pe hartie cu ajutorul instrumentelor clasice, si de a
realiza un sistem informatic usor de folosit si pe intelesul oricarui utilizator. Mai exact, procesul
de gestiune a stocurilor nu are o dificultate tocmai ridicata, insa in urma acestuia pot exista erori
omenesti care in final pot dauna foarte mult exercitiului financiar al unei entitati. Astfel,
introducerea unei aplicatii de acest gen faciliteaza atat circuitul de gestiune a stocurilor, cat si
utilizatorii, datorita faptului ca datele introduse in sistem vor fi verificate pe baza unor filtre ce
ajuta la detectarea erorilor si la stoparea procesului de gestiune pana la remedierea acestora de
catre sistem sau de catre utilizator, dupa caz.
4
cu ajutorul unui string de conexiune in cadrul tehnologiei ADO.NET Entity Data Model
specifica programului Visual Studio. De asemenea, cea de a doua etapa este cea de modelare a
aplicatiei, si anume realizarea metodelor, sistemelor si creionarea unei interfete simple, insa
care sa ofere toate functionalitatile necesare procesului de gestiune a stocurilor in cadrul unei
companii.
5
PARTEA I – STADIUL CUNOASTERII
Potrivit articolului 272, alineatul 1 din OMFP 1802/2014 stocurile sunt active
circulante detinute pentru a fi vandute pe parcursul desfasurarii normale a activitatii, in
curs de productie in vederea vanzarii in procesul desfasurarii normale a activitatii sau
sub forma de materii prime, materiale si alte consumabile care urmeaza sa fie folosite
in procesul de productie sau pentru prestarea de servicii.
6
• Se asteapta sa fie realizat sau este detinut cu intentia de a fi vandut sau consumat
in cursul normal al ciclului de exploatare al companiei.
• Este reprezentat de numerar sau echivalente de numerar;
• Trebuie sa fie realizat in termen de 12 luni de la data bilantului.
7
• Productia in curs de executie, reprezentand productia care nu a trecut prin toate
fazele procesului de prelucrare si care sunt evidentiate in procesul tehnologic si
ca produse nesupuse probelor si receptiei sau necompletate in intregime.
Stocurile sunt reprezentate ca fiind active ale unei entitati economice. Prin urmare,
recunoasterea acestora se aplica in aceeasi masura si stocurilor. Astfel, stocurile sunt
recunoscute in contabilitate in momentul in care:
In ceea ce privesc stocurile, acestea participa in mod direct sau indirect la fluxul de
numerar sau echivalente de numerar catre entitate reprezentand o eventualitate productiva in
cadrul activitatii de exploatare a companiei. Drept urmare, aceasta eventualitate inglobeaza
vanzarea produselor finite, a marfurilor sau reducerile de numerar prin reducerea costurilor de
productie.
Asa cum este specificat in OMFP 1802/2014, articolul 47 evaluarea reprezinta procesul
prin care se determina valoarea la care elementele situatiilor financiare sunt recunocute in
contabilitate si prezentate in bilant, respectiv in bilantul prescurtat si in contul de profit si
pierdere. Evaluarea stocurilor se realizeaza distinct in functie de momentul la care aceasta are
loc si anume:
8
Evaluari ale stocurilor la intrarea in patrimoniu
In momentul in care stocurile intra in patrimoniu acestea sunt evaluate la costul istoric
sau la valoarea de intrare. Mai exact, in functie de modul de dobandire a acestora, valoarea de
intrare este data de costul de achizitie, costul de productie, valoarea de aport si valoarea justa.
9
Evaluari ale stocurilor la iesirea din gestiune
Stocurile se evalueaza si se scad din gestiune la valoarea lor de intrare. Astfel, pot fi
aplicate urmatoarele metode aferente iesirii din gestiune a stocurilor, si anume:
FIFO sau metoda primului intrat – primului iesit, denumita in limba engleza ca first in
– first out, are la baza iesirea din gestiune a stocurilor la costul de achizitie sau de productie in
ordinea cronologica a vechimii stocului intrat. Mai exact, prima iesire din gestiune este evaluata
la costul unitar al primei intrari in gestiune, iar in momentul in care primul stoc a fost epuizat
se trece la urmatorul lot in ordine cronologica. Aceasta metoda are un avantaj, si anume valoarea
stocurilor ramase in gestiune este prezentata la costul celei mai recente intrati in gestiune, adica
se apropie de valoarea cea mai reala si concreta de pe piata bunurilor.
LIFO sau metoda ultimului intrat – primului iesit, denumita in limba engleza ca last in
– first out este asemanatoare cu metoda FIFO, insa aceasta evalueaza stocurile la costul de
achizitie sau de productie al ultimului stoc intrat. Bunurile iesite se evalueaza la costul de
achizitie sau de productie al lotului anterior, in ordine cronologica. In momentul in care alegem
sa folosim aceasta metoda, stocul final nu mai este evaluat la pretul pietei, asa cum este in cazul
metodei FIFO, ci este evaluat la preturile cele mai vechi.
Potrivit IAS 2 „Stocuri” se evidentiaza faptul ca cea mai buna practica de evaluare a
stocurilor la iesirea din gestiune trebuie sa se realizeze folosind metoda FIFO sau cea a costului
mediu ponderat (CMP).
10
Evaluari ale stocurilor la inchiderea exercitiului financiar
Cel mai important principiu care poate fi folosit in cadrul evaluarii stocurilor la
inchiderea exercitiului financiar este evidentiat de principiul prudentei. Acesta tine seama de
toate ajustarile de valoare datorate deprecierilor sau cele ale pierderilor de valoare.
Totodata, in urma inventarierii pot aparea diferente cantitative, fapt ce este reflectat prin
neconcordanta dintre situatia faptica si cea scriptica, adica exista stocuri in plus sau in minus,
insa mai pot aparea si diferente valorice dintre valoarea de inventar si valoarea de intrare ce
poate fi valoarea contabila sau costul istoric.
Conform legii, in anul 1929, regiile autonome si alte tipuri de intreprinderi de stat au
fost obligate sa intocmeasca o schema de tip bilant, astfel se puteau evita fraudele, iar controlul
situatiilor financiare putea fi efectuat intr-o maniera mult mai riguroasa.
11
Pornind de la Legea Contabilitatii 82/1991, MFP (Ministerul Finantelor Publice) a
elaborat o serie de reglementari inglobate in sfera contabilitatii incepand cu Ordinul 403 din
data de 22 aprilie 1999, inlocuit ulterior cu Ordinul 94 din 29 ianuarie 2001 unde au fost
aprobate reglementarile contabile armonizate cu Directiva a IV – a a Comunitatilor Economice
Europene si cu Standardele Internationale de Contabilitate.
• Definitiile;
• Valoarea realizabila neta (VRN) si valoarea justa (VJ);
• Evaluarea;
• Recunoasterea drept cheltuiala;
• Prezentarea informatiilor;
Acest standard este aplica tuturor categoriile de stocuri, insa exista o exceptie si anume
produsele in curs de executie si a activelor biologice aferente activitatilor agrile si productiei
agricole la momentul recoltarii.
12
De asemnea, acest standard nu se aplica la evaluarea stocurilor ce sunt detinute de catre
producatorii de produse agricole si forestiere si a brokerilor de la bursa de marfuri ce evalueaza
stocurile la valoarea justa minus costurile de vanzare.
Potrivit IAS 2, articolul 6, stocurile ssunt active detinute in vedea vanzarii pe parcursul
desfasurarii normale a activitatii, in curs de productie in vederea unei astfel de vanzari sau sub
forma de materiale si alte consumabile ce urmeaza a fi folosite in procesul de productie sau
pentru prestarea de servicii. Curentul standard definte VRN (valoarea realizabila neta) ca fiind
pretul de vanzare estimat pe parcursul desfarsurarii procesului de exploatare minus costurile
estimate pentru finalizare si consturile estimate necesare vanzarii.
Potrivit OMFP 1802/2014, articolul 272, stocurile sunt active circulante detinute pentru
a fi vandute pe parcursul desfasurarii normale a activitatii, in curs de productie in vederea
vanzarii in procesul desfarsurarii normale a activitatii sau sub forma de materii prime, materiale
13
si alte consumabile care urmeaza sa fie folosite in procesul de productie sau pentru prestarea de
servicii.
14
Domeniile de gestiune corespund fiecareia dintre activitatile omogene desfasurate in
cadrul organizatiei (ex.financiar – contabila, resurse umane etc) si se abordeaza intr-o viziune
ierarhica pe niveluri precum cel tranzactional, operational, tactic si strategic.
15
• Mentenanta, concept ce presupune remedierea erorilor ce pot aparea pe parcursul
ciclului de viata al sistemului informatic, adaptari sau imbunatatiri ce pot fi
realizate la cererea clientului.
• Sevential, etapele sunt parcurse linear intr-un singur sens. Astfel, momentul in
care o etapa a fost finalizata se trece la urmatoarea, fara sa existe posibilitatea
intoarcerii la o etapa precedenta.
• Iterativ, implica parcurgerea ciclica a etapelor, fiecare iteratie adaugand noi
functionalitati sistemului dezvoltat si permitand evaluarea rezultatelor obtinute
pana in momentul respectiv. Cu ajutorul acestei etape riscurile sunt reduse chiar
din primele faze ale ciclului de viata.
16
Metodele de parcurgere a etapelor ciclului de viata al sistemelor informatice se
bazeaza fie pe una dintre cele doua abordari prezentate anterior (secventiala sau interativa),
fie reprezinta o combinatie intre acestea.
Mai mult, ratiunile cele mai concrete aduc in lumina diferite activitati care sunt
efectuate manual si care ar putea fi automatizate sau posibilitatea ca organizatia sa inceapa
desfasurarea unor noi tipuri de activitati pentru care este necesar implementarea unui sistem
informatic.
Cerintele unui sistem pot fi de doua feluri, cerinte functionale sau cerinte nefunctionale.
17
cuprindere, interactiunea cu sistemele adiacente, lucrarile ce vor fi executate de catre sistem,
dar si regulile de gestiune.
Cerintele unui sistem sunt obtinute de cele mai multe ori de la utilizatori, cei care
urmeaza sa foloseasca viitorul sistem informatic, experti in domeniu, cei care detin cunostinte
necesare realizarii acestui tip de sistem etc.
Colectarea acestor cerinte se poate realiza foarte usor prin intermediul interviurilor unul
la unul, interviuri de grup, chestionare, studii, prototipuri etc.
Metodele (tehnicile) de testare sunt testarea statica ce presupune testarea sistemului fara
a executa codul, testarea dinamica ce implica executarea codului, testarea manuala realizata de
catre oameni sau testarea automata care se realizeaza utilizand scripturi si instrumente.
18
programelor. Acest mediu combina toti pasii realizarii unui sistem informatic (ex. editarea
codului sursa, compilarea, depanarea, testarea) intr-un singur program ce ofera o interfata
grafica utilizatorului.
19
PARTEA II - CONTRIBUȚIA PERSONALĂ
Prin intermediul acestei lucrări se propune realizarea unei aplicații ce are la bază
gestionarea stocurilor pentru diferite companii. Acest sistem informatic a fost creat
datorită necesității de simplificare a procesului de gestiune a stocurilor. În acest sens,
compania reușește să țină o evidență clară a tuturor comenzilor furnizor, stocurile care
intră, și a comenzilor client, stocuile care pleacă.
In momentul in care se doreste proiectarea unui sistem de tip software este foarte
important ca cerintele care influenteaza arhitectura sa fie alese intr-un mod clar si
riguros. Aceste cerinte sunt non-functionale si se refera la calitatea sistemului software.
20
• Aplicatia va dispune de o platforma ce faciliteaza inregistrarea unui nou
utilizator sau logarea acestuia in contul sau. Astfel, pentru utilizator se vor retine
detaliile importante, printre care se regasesc: CNP-ul, numele, prenumele si
email-ul.
• Logarea utilizatorului se realizeaza prin intermediul unui username si a unei
parole. Username-ul este un cod realizat automat de catre aplicatie.
• Dupa logare, persoana in uz va putea inregistra noi companii sau va putea
gestiona o companie deja existenta in baza de date. Pentru companii se vor retine
CUI-ul, denumirea, numarul de la registrul comertului, banca, contul si alte
detalii coerente.
• In ceea ce priveste logarea unui utilizator in cadrul unei entitati, aceasta actiune
se va realiza prin introducerea codului de acces in campul aferent, cod
reprezentat de CUI-ul companiei.
• In cadrul aplicatiei se vor putea inregistra noi facturi, NIR-uri, clienti, furnizori,
delegati pentru transportul stocurilor, produse sau gestiuni aferente produselor.
• Fiecarui element enumerat in paragraful de mai sus i se va atribui un ID unic.
• Pentru facturi se vor retine date precum: data facturii, data scadenta, cota de
TVA aferenta fiecarui produs, seria, numarul etc.
• Mai mult, sistemul va atribui in mod automat in campurile aferente seriei,
numarului si avizului facturii date relevante din baza de date.
• Clientii si furnizorii vor fi partenerii entitatii in curs de gestionare.
• Pentru parteneri se vor retine date importante, printre care: denumire, CUI sau
telefon.
• Delegatii sunt reprezentati de persoanele angajate in scopul transportarii
stocurilor. Pentru acestia se vor retine: CNP-ul, camp ce va fi folosit ca si
identificator unic, numele, prenumele si alte date relevante.
• Un alt element important este evidentiat in momentul in care produsele sunt
receptionate. Mai exact, prin intermediului notei de intrare receptie se vor
gestiona produsele ce urmeaza a fi inregistrate in baza de date. NIR-ul va contine
date necesare, si anume: data notei, gestiunea produselor si factura aferenta
achizitiei stocurilor de la furnizor.
• Fiecare gestiune de produse va avea un identificator unic si se va retine
denumirea acesteia.
21
• Utilizatorii vor putea sa isi modifice informatiile de cont proprii, insa si pe cele
ale entitatii gestionate in procesul curent.
• Totodata, arhivarea tuturor informatiilor ce urmeaza a fi sterse este necesara.
• Persoana in uz va putea intotdeauna sa gestioneze o alta companie, fara a se
deconecta de la contul sau.
• Campurile ce urmeaza a fi implementate in cadrul entitatilor evidentiate in
randurile de mai sus trebuie sa respecte restrictii precum:
➢ Dimensiunea campurilor trebuie sa fie in general mai mare de 3
caractere.
➢ CNP-ul trebuie sa fie format din 13 caractere numerice si sa fie valid
(Anexa 1).
➢ Fiecare camp trebuie sa treaca printr-un filtru unde se verifica daca datele
introduse sunt numerice sau sunt de tip text.
➢ E-mail/G-mail-ul trebuie sa contina obligatoriu caracterul special „@” si
„.” (Anexa 2).
➢ Parola conturilor trebuie sa fie de cel putin 6 caractere (Anexa 3).
➢ Cota de TVA trebuie sa se regaseasca in multimea: 5%, 9% sau 19%
(Anexa 4). Daca entitatea nu este platitoare de TVA se alege cota de TVA
0% sau se bifeaza campul pentru aplicarea TVA-ului cu optiunea nu.
➢ Sectorul trebuie sa fie intre 1 si 6.
➢ Numarul de la registrul comertului trebuie sa inceapa obligatoriu cu litera
F, pentru persoanele fizice autorizate, respectiv litera J, pentru
persoanele juridice etc (Anexa 5).
22
Modelarea conceptuala a datelor
Pentru modelarea conceptuala a datelor vom folosii modelul entitate – asociere (EA). In
acest sens, acesta are ca scop expunerea exacta a realitatii cu ajutorul unor cerinte si a unor
concepte de baza a acestui tip de model.
• In ceea ce priveste cantitatea receptionata, aceasta trebuie sa fie mai mica sau
egala cu cantitatea achizitionata.
23
• Data notei intrarii receptiei trebuie sa fie mai mare sau egala decat data facturii.
• Cota de TVA trebuie sa se regaseasca in multimea: 5%, 9% sau 19% (Anexa 4).
• Unitatea de masura trebuie sa fie: buc, kg sau litru.
• Campul „AplicTVA” poate sa accepte doar doua valori, si anume: „da” sau „nu”.
• CNP-ul delegatului trebuie sa contina maxim 13 caractere si sa fie unul valid
(Anexa 1).
• Numarul de la registrul comertului trebuie sa inceapa obligatoriu cu litera F,
pentru persoanele fizice autorizate, respectiv litera J, pentru persoanele juridice
(Anexa 5).
• Judetele trebuie sa se afle in mod obligatoriu in lista judetelor din Romania.
• E-mail/G-mail-ul trebuie sa contina obligatoriu caracterul special „@” si „.”
(Anexa 2).
Incluziune de roluri:
24
• NIR (ID_NIR, DataNIR, ID_Gestiune, ID_Factura)
• PRODUSE RECEPTIONATE (ID_NIR, ID_Produs, CantitateReceptionata)
In urma crearii modelului logic al datelor a fost creata baza de date prin intermediului
unui sistem de gestiune a bazelor de date. In ceea ce priveste cazul acesta, modelul a fost
implementat utilizand Microsoft SQL Server.
Microsoft SQL Server este un sistem de gestionare de baze de date relaționale (RDBMS)
produs de compania americană Microsoft Corp. Limbajul de interogare este SQL iar extensia
procedurală este T-SQL. Este considerat un sistem de gestionare a bazelor de date pentru
întreprinderi - adică se poate aplica bazelor de date de dimensiuni foarte mari - însă la ultimele
versiuni au venit cu mai multe tipuri de licențiere, de la cele free la unele avansate, astfel că în
prezent putem spune că SQL Server se poate folosi pentru baze de date de orice dimensiune.
Cu ajutorul limbajului de definire al datelor s-a realizat in mod grafic modelul relational
al datelor, prin intermediul unei diagrame conceputa in SQL Server pe baza relatiilor dintre
tabele, a cheilor primare si externe.
25
In ceea ce priveste autentificarea la baza de date, aceasta se poate realiza prin
doua modalitati, si anume:
26
Modelarea conceptuala a prelucrarilor
Acest tip de model este in stransa legatura cu modelul conceptual al datelor, fapt
evidentiat de succesiunea in timp a operatiilor de prelucrare la care este supus. Modelul
conceptual al prelucrarilor aduce in lumina dinamica si continutul unei prelucrari intr-o maniera
autonoma. Mai mult, acest model se mai numeste si modelul „eveniment – rezultat” ce aduce
in discutie procedurile ce au fost abordare in cadrul modelului conceptual al datelor.
• Evenimentul declansator;
• Operatia;
• Rezultatul;
• Sincronizarea;
Evenimentul declansator este evidentiat printr-o elipsa din cadrul caruia pleaca sageata
de legatura spre operatie. Totusi, in cazul in care se ia decizia de a simplifica acest model se
poate renunta la respectiva sageata mentionandu-se numai elementul declansator. Mai exact,
acest eveniment se refera la derularea de activitati si operatii, precum este intocmirea unui nou
document de tip factura, NIR etc.
Sincronizarea este evidentiata grafic printr-un triunghi orientat catre operatie. Principiul
sincronizarii este exprimat sub forma unei propozitii logice ceea ce arata ca operatia poate sa
fie declansata sau nu, adica aceasta este evidentiata printr-o expresie de tip boolean. Mai exact,
conceptul de sincronizare exprima logica si dinamica prelucrarilor creand concordanta intre cel
putin doua sau mai multe evenimente.
27
Modelarea logica a prelucrarilor
Functionalitatea logica:
28
in campuri se gaseste o oarecare eroare, sistemul va transmite inapoi in interfata
grafica catre persoana in uz acest fapt prin aparitia unei iconite galbene in partea
dreapta sau stanga al controlului unde s-au gasit date introduse gresit.
• Pe parcursul procesului de adaugare a facturii, utilizatorul trebuie sa aleaga
furnizorul de la care se vor cumpara stocuri. Daca in momentul alegerii din lista
derulanta nu se afiseaza nici macar un furnizor, sistemul va intreba daca se
doreste adaugarea unui prim furnizor. In continuare, utilizatorul trebuie sa ia o
decizie in ceea ce priveste furnizorul, si anume trebuie sa accepte intrebarea
sistemului, astfel se va deschide formularul de adaugare furnizor, iar datele
facturii vor ramane in asteptare pana la adaugarea unui furnizor, sau sa refuze
intrebarea. Prin refuzarea intrebarii, persoana in uz este nevoita sa completeze
manual campurile aferente furnizorului, sistemul va compara datele introduse cu
ceea ce exista (sau nu) in baza de date si va adauga in cazul in care nu exista acel
furnizor sau va pastra datele daca acel furnizor exista deja. In continuare,
informatiile vor fi filtrate, iar daca totul este in parametrii optimi procesul
continua fara eroare.
• Similar procesului de alegere a furnizorului se intampla si in cazul clientului.
• In continuare, utilizatorul trebuie sa aleaga din meniul de sus al ferestrei, tab-ul
„Transport” unde procesul continua similar cu cel al clientului sau furnizorului.
• In cea de a doua parte, utilizatorul trebuie sa aleaga produsele ce urmeaza a fi
facturate. In acest sens, aceasta trebuie sa continue actiunea de adaugare a
facturii alegand tab-ul „Produse” si urmand pasii intocmai. Totusi, in cazul in
care nu exista produse receptionate (cumparate) in baza de date, utilizatorul
trebuie sa achizitioneze, de la un alt furnizor, prin intermediul unei note de
intrare receptie sau trebuie sa adauge un nou produs in baza de date.
29
Functionalitatile oferite de interfata grafica
30
Fig. 06 – Inregistrarea unui nou utilizator
31
Fig. 08 – Inregistrarea unei noi companii
32
- In urma indeplinirii tuturor cerintelor sistemului, utilizatorul poate sa gestioneze
compania in mod liber realizand tranzactii (vanzari prin factura sau cumparari prin
NIR).
- O data ajuns in interfata principala, persoana ce utilieaza aplicatia nu poate doar sa
gestioneze stocurile, ba mai mult, acesta are posibilitatea de a administra furnizorii,
clientii, delegatii pentru transportul stocurilor, NIR-urile, facturile, gestiunile
produselor si chiar contul sau de utilizator sau contul companiei.
- Interfata principala este foarte prietenoasa si ofera utilizatorului o viziune clara asupra
tuturor facilitatilor disponibile utilizatorului.
33
Fig. 11 – Panoul de control al utilizatorului
34
- Nu numai panourile de control ale utilizatorului si companiei se regasesc in partea
stanga a interfetei aplicatiei, ci si listele tuturor furnizorilor, clientilor, delegatilor pentru
transport, gestiunilor, produselor, facturilor si NIR-urilor. Fiecare dintre cele enumerate
dispun de facilitati multiple in cadrul ferestrelor proprii. Una dintre facilitatile, unui
formular de afisare a unor liste ce contin datele stocate in baza de date, este reprezentata
de actiunea de modificare a informatiilor deja existente. Orice modificare realizata de
catre utilizator in interfata grafica este cernuta prin intermediul unor filtre, astfel datele
introduse manual nu vor afecta in nici un fel integritatea bazei de date.
- Similar cu facilitatea de modificare a datelor, unei anumite facturi, sunt prezente si
optiunile de stergere, reactualizare a ferestrei active sau de adaugare a unei noi
tranzactii. In aceeasi lumina exista facilitati si pentru celelalte liste, si anume listele
clientilor, furnizorilor, produselor etc., ce dispun in aceeasi idee de toate facilitatile
enumerate mai sus.
35
Fig. 14 – Exemplu meniu (lista furnizorilor)
- O alta parte interesanta a interfetei grafice principale este pusa in lumina de panoul de
sus al aplicatiei unde se regaseste posibilitatea oferita de sistemul informatic
utilizatorului in momentul in care acesta doreste sa adauge in mod direct facturi, nir-uri,
produse, gestiuni ale produselor, furnizori, clienti sau delegati pentru transportul
stocurilor. Alaturi de acestea se regaseste si arhiva bazei de date, unde sunt stocate toate
informatiile inlaturate si despre care se cunoaste faptul ca nu mai sunt relevante, insa si
butonul pentru mai mult ajutor.
- Bineînteles, in mod special as dori sa aduc in lumina actiunea de adaugare a unei facturi.
Astfel, in momentul in care utilizatorul doreste sa adauge o noua factura in baza de date,
acesta trebuie sa urmeze pasii corecti din cadrul formularului de adaugare factura. In
acest sens, o data activa fereastra, sistemul va introduce automat in mod real date
relevante unei facturi ce nu pot fi modificate de catre utilizator, si anume: seria facturii,
36
numarul facturii si numarul avizului ce urmeaza a fi intocmit. In continuare, interfata
grafica de adaugare a unei noi facturi faciliteaza cu usurinta continuarea procesului
respectiv prin meniul de bord amplasat in partea de sus a ferestrei.
- Cu ajutorul acestui meniu utilizatorul navigheaza prin toate celelalte tab-uri intr-o
maniera corecta. In tab-ul principal, si anume „Factura”, persoana in uz trebuie sa
introduca datele clientului si ale utilizatorului in campurile existente. Acesta are doua
posibilitati, introducerea datelor corecte in mod manual sau introducerea datelor in mod
automat de catre sistem prin alegerea denumirii furnizorului, respectiv clientului din
listele derulante aflate in cadrul group box-urilor fiecaruia. In cazul in care, datele
introduse in mod manual de catre utilizator sunt total corecte, sistemul va verifica daca
acestea exista sau nu in baza de date.
37
- In eventualitatea in care datele sunt deja existente in baza de date, sistemul informatic
nu va introduce inca o data acele informatii, ci le va folosi pe cele existente. Pe de alta
parte, daca respectivele informatii introduse de catre persoana in uz, nu exista, sistemul
va introduce automat tocmai din cadrul formularului de adaugare a facturii respectivele
date in baza sa, date ce vor fi actualizate si in cadrul listelor clientilor sau furnizorilor.
Sistemul actioneaza intr-o maniera similara pentru client, furnizor, insa si pentru
delegatul ce urmeaza sa transporte stocurile facturate.
- Formularul de adaugare a facturii este unul complex, insa foarte usor de folosit de catre
utilizator. Aplicatia „SmartONE” doreste sa ajute omul din fata ecranului in timpul
utilizarii acesteia.
- Revenind la actiunea de adaugare a facturii, in cadrul tab-ului „Factura” exista si alte
actiuni de adaugare, pe langa cea de auto verificare si inserare a datelor introduse
manual de catre utilizator. Fiecare persoana ce foloseste procesul de adaugare a facturii
poate sa adauge date relevante acesteia, precum sunt: clientul, furnizorul, delegatul sau
produsele, tocmai din cadrul aceluiasi formular fara sa inchida fereastra de adaugare a
facturii. Printre modalitatile de adaugare, ce nu au fost evidentiate in randurile de mai
sus se enumera si existenta unui buton special, amplasat in partea dreapta a listei
derulante de cele mai multe ori ce permite adaugarea in baza de date a unui nou client,
furnizor sau delegat transport fara a inchide fereastra principala de adaugare a facturii.
- Mai mult, programul atentioneaza utilizatorul in timpul procesului, daca in baza de date
nu exista nici o informatie legata de clienti, furnizori, delegati transport sau produse,
chiar in momentul in care acesta doreste sa selecteze din listele derulante anumite
informatii. Se va afisa un mesaj de tip pop up, ce poate contine urmatoarele informatii:
„Nu exista furnizori in baza de date ! Doriti sa adaugati un nou furnizor ?”. Prin
acceptarea acestui mesaj utilizatorului i se va afisa fereastra de adaugare a unui nou
furnizor, similar se intampla in cazul clientului sau delegatului pentru transport.
38
- Procesul continua prin selectarea celui de al doilea tab, si anume: „Transport”, unde
similar clientului sau furnizorului se vor alege datele delegatului ce urmeaza sa
transporte produsele din lista derulanta aferenta tab-ului sau.
39
- Ultimul pas consta in alegerea produselor din lista derulanta pentru care sistemul va
afisa automat un mesaj de tip input unde utilizatorul trebuie sa introduca pretul si
cantitatea produsului ales ce urmeaza a fi facturat. De asemenea, sistemul informatic va
calcula automat valoarea totala, valoarea TVA-ului aferent produslui si valoarea totala
cu TVA.
40
Fig. 22 – Printeaza factura
In lumina celor discutate in randurile de mai sus, pot sa afirm faptul ca facilitatile au
fost evidentiate in linii mari, cu anumite exceptii, si cu siguranta as putea sa demonstrez fizic
complexitatea sistemului si usurinta de folosire a acestuia de care un anumit utilizator.
Mai mult, cu ajutorul componentei Entity Framework dezvoltatorii pot lucra la un nivel
mai ridicat de abstractizare atunci cand se ocupa de date si pot crea si intretine aplicatii orientate
pe date cu mai putin cod decat in aplicatiile traditionale.
<connectionStrings>
<add name="dbEntity"
connectionString="metadata=res://*/dbEntity.csdl|res://*/dbEntity.ssdl|res://*/
dbEntity.msl;provider=System.Data.SqlClient;provider connection
string="data source=DESKTOP-25KAC0S\SERVERSQL;initial
catalog=SmartONE;integrated security=True;MultipleActiveResultSets=True;
App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
41
fapt. Totusi, daca datele sunt introduse eronat iar utilizatorul exista in baza de date aplicatia va
transmite spre acesta un mesaj de eroare.
If readLine.HasRows Then
MsgBox("Ai fost logat cu succes !", MsgBoxStyle.Information)
usersLogged += 1 : lastLogged = readLine.Item("Username").ToString
42
'Imagine profil
Dim photo() As Byte
photo = readLine("Image")
43
Dupa completarea formularului de inregistrare utilizatorul trebuie sa apese butonul
„Inreg.” pentru a continua procesul de inregistrare. Astfel, pentru verificarea non – existentei
datelor introduse de catre utilizator sau existentei acestora se folosesc urmatoarele filtre, sub –
proceduri sau functii:
' ...
If errors = 0 Then
Dim username As String = txtNume.Text.ToLower & txtCNP.Text.Substring(9, 3)
If UserExists2(username, txtCNP.Text) = True Then
MsgBox("Exista deja un cont cu aceste date !", MsgBoxStyle.Exclamation)
Else
InsertUser()
End If
End If
Daca sistemul gaseste informatii in baza de date care coincid cu datele introduse in
formularul de inregistrare, mai exact conturi care dispun de acelasi username si acelasi CNP,
aplicatia va transmite un mesaj de eroare, si anume: „Exista deja un cont cu aceste date !”.
Totodata, daca aceste date nu exista in baza de date, persoana care doreste sa se inregistreze va
putea continua procesul cu succes, astfel se va apela sub – procedura „InsertUser()”.
Dupa logarea sau inregistrarea utilizatorului, procesul continua prin alegerea companiei
ce urmeaza a fi gestionata. Similar procesului de autentificare sau inregistrare a unui nou
utilizator se realizeaza si procesul de inregistrare sau autentificare a companiei aleasa din
tabelul aferent ferestrei entitatilor ce au fost sau vor fi gestionate in cadrul aplicatiei
„SmartONE”. Autentificarea unei entitati se realizeaza prin selectarea acesteia din tabel si
apasarea butonului „Logare firma”, iar mai apoi prin completarea codului de acces in fereastra
44
de autentificare a entitatii, codul de acces este reprezentat de CUI/CIF-ul entitatii si poate fi ales
din tabelul de unde a fost selectata firma.
Mai mult, filtrele, sub – procedurile sau functiile folosite sunt aproximativ identice cu
cele ale verificarii utilizatorului, insa se modeleaza dupa cerintele si datele introduse in casetele
aferente autentificarii sau inregistratii unei noi entitati. Verificarea in baza de date a unei entitati
se face prin intermediul denumirii acesteia si a CUI/CIF-ului aferent. In cazul in care aceste
informatii se regasesc, sistemul va trimite un mesaj de atentionare, iar in cazul in care entitatea
ce se doreste a fi adaugata nu exista, procesul va continua cu inregistrarea acesteia.
firmaAdaugata = frmRegisterFirma.txtDenumire.Text
MsgBox("Firma " & frmRegisterFirma.txtDenumire.Text & " a fost adaugata cu
succes !", MsgBoxStyle.Information)
'...
For Each c As ContBancar In colBankAccounts
InsertBankAccounts(c.Cont, c.Banca, c.TipCont, c.Firma)
Next
colBankAccounts.Clear()
If autoDatabase = True Then
CreateNewDatabase(DB_Name)
End If
'...
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
con.Close()
End Try
End Sub
Subprocedura – InsertFirma()
45
Prin intermediul acestei sub – proceduri se adauga firma in baza de date si se face
trimitere spre sub – procedura „CreateNewDatabase(DB_Name)” ce va crea automat tabelele
aferente entitatii.
For i = 0 To 1
ExecuteQuery(query(i))
Next
For i = 0 To 7
CreateTrigger(i)
Next
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
con.Close()
End Try
End Sub
Subprocedura – CreateNewDatabase(DB_Firma)
46
Aceasta sub – procedura creaza automat tabelele aferente companiei, tabelele arhivei si
triggerele acestora. In ceea ce privesc triggerele acestea se creaza prin intermediul urmatoarei
sub – proceduri:
ReturnString.Format("metadata=res://*/dbEntity.csdl|res://*/dbEntity.ssdl|res:/
/*/dbE ntity.msl;provider=System.Data.SqlClient; provider connection
string=""data source={0};initial catalog={1};integrated
security=True;MultipleActiveResultSets=True;App=EntityFramework""", server, db)
End Function
Clasa „dbEntity.vb”:
Imports System.Data.Entity
Partial Public Class dbEntity
Inherits DbContext
Public Sub New(ByVal connectionString As String)
MyBase.New(connectionString)
End Sub
End Class
48
Concluzii si recomandari
„SmartONE” este o aplicatie de gestiune a stocurilor ce a fost conceputa la sfarsitul
anului 2018, inceputul anului 2019. Scopul acesteia este de a aduce in lumina utilizatorilor
faptul ca metoda traditionala de gestiune a stocurilor poate cauza foarte multe probleme
organizatiei acestora, astfel, implementarea unui soft de genul aplicatiei realizate reprezinta cea
mai buna decizie in zilele de azi.
In opinia mea, solutia „SmartONE” usureaza munca personalului, dar mai mult ajuta
utilizatorii inspre omiterea greselilor ce pot aparea in timpul folosirii unei metode traditionale
(gestiunea realizata pe hartie).
Un prim element favorabil este evidentiat de faptul ca, acest sistem informatic este creat
in asa fel incat, orice greseala pe care un om ar putea sa o faca, sa stopeze procesul de gestionare
si sa atentioneze utilizatorul pentru remedierea datelor introduse eronat. Astfel, se realizeaza o
imbinare a tehnologiei cu experienta umana ajutand utilizatorii sa evolueze si sa opteze
intotdeauna spre o solutie digitalizata.
De asemenea, chiar daca aceasta aplicatie a fost creata prin intermediul tehnologiei
Windows Forms, care se cunoaste a fi destul de invechita, stim ca de-a lungul anilor de testare
si documentare aceasta tehnologie a fost imbunatatita pentru a putea da curs unor proiecte
complexe si foarte usor de utilizat. Acest fapt reprezinta un avantaj datorita faptului ca aplicatia
realizata prezinta compatibilitate extrem de mare cu orice computer.
Din punct de vedere al administrarii exista foarte multe functionalitati care au fost deja
implementate. In acest sens, utilizatorul are posibilitatea de a gestiona intr-o modalitate
eficienta stocurile, furnizorii, clientii, produsele, NIR-urile etc.
49
In viitor functionalitatile existente ar putea fi actualizate pentru ca procesul de gestionare
a stocurilor sa fie mult mai eficient. De asemenea, o functionalitate interesanta si pe care as dori
sa o implementez este filtrul de verificare a numarului de inregistrare de la Registrul Comertului
automat de pe site-ul ANAF. Mai exact, as dori verificarea entitatii dupa denumirea acesteia si
dupa numarul de inregistrare printr-o functie ce face legatura intre aplicatie si portalul Agentiei
de Administrare Fiscala, astfel incat in momentul introducerii denumirii companiei sa se auto
completeze datele corecte in controalele aferente formularului de inregistrare a unei noi entitati.
Desigur, pot fi realizate modificari de acest gen si pentru alte tipuri de functionalitati. Totodata,
design-ul aplicatiei poate fi imbunatatit folosindu-se astlel, alte medii de proiectare, alte tool-
uri in sensul modelarii interfetei intr-o maniera mult mai avansata si prietenoasa fata de
utilizator.
Mai mult, adaugarea unei functionalitati de tip tutorial ar reprezenta un benefiu enorm
asupra aplicatiei, astfel utilizatorului ii va fi mult mai usor de inteles pasii pe care trebuie sa ii
urmeze in cadrul diferitelor formulare.
50
Referintele bibliografice
Carti:
• Dorin Zaharie, Victoria Stanciu, Niculae Davidescu, Liana Elena Anica-Popa,
Dezvoltarea Sistemelor Informatice de Gestiune, 2014, Bucuresti, Editura ASE.
• Liliana Feleaga, Niculae Feleaga, Luminita Mihaeala Dumitrascu, Contabilitate
financiara conform IFRS, 2017, Bucuresti, Editura ASE.
• IBM Corporation, Essentials of Rational Unified Process v7.0 – Student Guide, 2006.
• JTC1, ISO/IEC 12207 Systems and software engineering – Software life cycle
processes, 2008.
Cursuri:
• Coman Nicoleta (2020), Cursuri Politici si Optiuni Contabile, Bucuresti.
• Gorgan Catalina, Sacarin Marian (2019), Cursuri Contabilitate Consolidata, Bucuresti.
• Sacarin Marian (2019), Cursuri Contabilitate Financiara conform IFRS, Bucuresti.
• Gorgan Vasile (2019), Cursuri Limbaje de programare, Bucuresti.
• Stanciu Andrei (2019), Cursuri Baze de date financiar contabile, Gestiunea bazelor de
date relationale, Bucuresti.
• Tartavulea Cristina-Venera, Rindasu Sinziana-Maria (2020), Cursuri Sisteme
Informatice de Gestiune, Bucuresti.
Legislatie:
• Ordinul nr. 1802 din 29 decembrie 2014 pentru aprobarea Reglementarilor contabile
privind situatiile financiare anuale individuale si situatiile financiare anuale consolidate.
• Legea Contabilitatii nr. 82 din 24 Decembrie 1991.
Surse online:
51
Lista figurilor
52
Anexe
53
Anexa 3 – Restrictia de validare asupra campului „Parola”:
54
Else
frmAdaugaFactura_menu2.cbCotaTVA.Text = ""
If frmAdaugaFactura_menu2.cbCotaTVA.Text <> "5" Or
frmAdaugaFactura_menu2.cbCotaTVA.Text <> "9" Or
frmAdaugaFactura_menu2.cbCotaTVA.Text <> "19" Then
frmAdaugaFactura_menu2.cbCotaTVA.Text = InputBox("Introduceti cota
de TVA (%): 5, 9 sau 19:")
EnableTVA()
Else
EnableTVA()
End If
End If
End If
Else
frmAdaugaFactura_menu2.cbCotaTVA.Text = ""
frmAdaugaFactura_menu2.cbCotaTVA.Enabled = False
IsBillTVAEnabled = False
55
Anexa 6 – Realizarea conexiunii cu baza de date
prin intermediul „Windows Authentication”:
56
Anexa 7 – Alegerea tehnologiei „ADO.NET Entity Data Model”:
57