Dezvoltarea unei aplicat ii pentru analiza [612118]

Ministerul Educat iei Nat ionale  si Cercet arii S tiint i ce
Universitatea "OVIDIUS" Constant a
Facultatea de Matematic a  si Informatic a
Specializarea Informatic a
Dezvoltarea unei aplicat ii pentru analiza
datelor  si managementul aprovizion arii unei
societ at i comerciale
Lucrare de licent  a
Coordonator  stiint i c:
Lect. univ. dr. Alexandrescu Adrian
Absolvent: [anonimizat] a
2016

Cuprins
Cuprins i
List a de guri iv
List a de tabele vi
Introducere 1
1 Prezentarea domeniului aplicat iei 3
1.1 De nitia problemei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Aplicat ii existente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Microsoft Dynamics NAV . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 bcAchizit ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 SeniorERP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Tehnologii utilizate 8
2.1 Visual Studio Community 2017 . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Platforma .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Limbajul C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Microsoft SQL Server 2012 . . . . . . . . . . . . . . . . . . . . . . . . . 11
i

Cuprins Cuprins
3 Procesul de dezvoltare al aplicat iei 14
3.1 Documentul de cerint e . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1 Descrierea sistemului . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.2 Actori software . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.3 Cerint e funct ionale (F) . . . . . . . . . . . . . . . . . . . . . . 15
3.1.4 Cerint e nefunct ionale (CN) . . . . . . . . . . . . . . . . . . . . 17
3.2 Descrierea cazurilor de utilizare . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 Vizualizare  si actualizare oferte . . . . . . . . . . . . . . . . . . 18
3.2.2 Comand a nou a . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.3 Vizualizare facturi . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.4 Modi carea unei facturi . . . . . . . . . . . . . . . . . . . . . . 20
3.2.5 Vizualizarea recept iilor . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.6 Recept ia unei facturi . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.7 Efectuarea unei pl at i . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.8 Vizualizarea pl at ilor . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.9 Vizualizare stoc produse . . . . . . . . . . . . . . . . . . . . . . 25
3.2.10 Vizualizarea arhivelor . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.11 Actualizare produse . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.12 Actualizare unitate de m asur a  si cot a TVA . . . . . . . . . . . . 28
3.2.13 Actualizare trezorerie . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.14 Actualizare furnizori . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Diagrama cazurilor de utilizare . . . . . . . . . . . . . . . . . . . . . . 32
3.4 Diagrame de activit at i . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5 Diagrame de secvent e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.6 Diagrama de clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.7 Proiectarea bazei de date . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.7.1 Tabele  si relat ii ^ ntre tabele . . . . . . . . . . . . . . . . . . . . 41
ii

Cuprins Cuprins
3.7.2 Diagrama entit at i – asociere . . . . . . . . . . . . . . . . . . . . 44
3.8 Proiectarea Form-urilor  si a DataSet-urilor . . . . . . . . . . . . . . . . 45
4 Implementare 56
5 Concluzii 63
Bibliogra e 64
iii

List a de guri
1.1 Lant  de aprovizionare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Metoda Relaxare  si Metoda Periodic a . . . . . . . . . . . . . . . . . . . . . 4
1.3 Microsoft Dynamics NAV – aprovizionare . . . . . . . . . . . . . . . . . . . 5
1.4 Diagrama bcAchizit ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Aprovizionare ^ n ERP – Comenzi de achizit ie . . . . . . . . . . . . . . . . . 7
2.1 Visual Studio 2017 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Arhitectura .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Reprezentarea bazei de date . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Microsoft SQL Server 2012 . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1 Diagrama cazurilor de utilizare . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Diagrama de activit at i: Comand a nou a . . . . . . . . . . . . . . . . . . . . 33
3.3 Diagrama de activit at i: Vizualizarea facturilor . . . . . . . . . . . . . . . . 34
3.4 Diagrama de activit at i: Modi carea unei facturi . . . . . . . . . . . . . . . 35
3.5 Diagrama de activit at i: Recept ia unei facturi . . . . . . . . . . . . . . . . 36
3.6 Diagram a de secvent e – Comand a nou a . . . . . . . . . . . . . . . . . . . . 37
3.7 Diagram a de secvent e – Recept ie factur a . . . . . . . . . . . . . . . . . . . 38
3.8 Diagram a de secvent e – Plat a facturi . . . . . . . . . . . . . . . . . . . . . 39
iv

List a de guri List a de guri
3.9 Diagrama de clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.10 Adaugare tabel ^ n Microsoft SQL Server . . . . . . . . . . . . . . . . . . . 41
3.11 Structura bazei de date – Diagrama Entit at i Asociate . . . . . . . . . . . . 44
3.12 Schema logic a – Vizualizare / Actualizare . . . . . . . . . . . . . . . . . . . 46
3.13 DataSet-ul pentu fereastra vizualizare/actualizare produse . . . . . . . . . 46
3.14 Schema logic a pentu fereastra comand a nou a . . . . . . . . . . . . . . . . . 47
3.15 DataSet-ul pentu fereastra comand a nou a . . . . . . . . . . . . . . . . . . 48
3.16 Schema logic a pentru fereastra de vizualizare a recept iilor . . . . . . . . . 49
3.17 DataSet-ul asociat ferestrei de vizualizare a recept iilor . . . . . . . . . . . 50
3.18 Schema logic a pentru fereastra recept ia unei facturi . . . . . . . . . . . . . 52
3.19 DataSet-ul pentru fereastra recept ia unei facturi . . . . . . . . . . . . . . . 52
3.20 Schema logic a pentru fereastra efectuarea unei pl at i . . . . . . . . . . . . . 53
3.21 DataSet-ul asociat ferestrei Efectuarea unei pl at i . . . . . . . . . . . . . . 54
4.1 Fereastra pricnipal a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2 FacturareAct.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.3 Funct ia de ad augare a unei ^ nregistr ari ^ n comand a . . . . . . . . . . . . . 58
4.4 Facturare.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.5 Funct a care realizeaz a  stergerea unei facturi . . . . . . . . . . . . . . . . . 59
4.6 ReceptieAct.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.7 Funct ia prin care se actualizeaz a o recept ie . . . . . . . . . . . . . . . . . . 60
4.8 Plata.cs  si PlataVizualizare.cs . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.9 Funct ie pentru calculul facturilor restante . . . . . . . . . . . . . . . . . . 61
4.10 StocProduse.cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.11 Metoda pentru ad augarea unei arhive . . . . . . . . . . . . . . . . . . . . . 62
v

List a de tabele
3.1 Fluxul principal, vizualizare  si actualizare oferte . . . . . . . . . . . . . 18
3.2 Fluxul principal, comand a nou a . . . . . . . . . . . . . . . . . . . . . . 19
3.3 Fluxul principal, vizualizarea facturilor . . . . . . . . . . . . . . . . . . 20
3.4 Fluxul principal, modi carea unei facturi . . . . . . . . . . . . . . . . . 21
3.5 Fluxul principal, vizualizarea recept iilor . . . . . . . . . . . . . . . . . . 21
3.6 Fluxul principal, recept ia unei facturi . . . . . . . . . . . . . . . . . . . 22
3.7 Fluxul principal, efectuarea unei pl at i . . . . . . . . . . . . . . . . . . . 23
3.8 Fluxul principal, vizualizarea pl at ilor . . . . . . . . . . . . . . . . . . . 24
3.9 Fluxul principal, vizualizare stoc produse . . . . . . . . . . . . . . . . . 25
3.10 Fluxul principal, vizualizarea arhivelor . . . . . . . . . . . . . . . . . . 26
3.11 Fluxul principal, actualizare produse . . . . . . . . . . . . . . . . . . . 27
3.12 Fluxul principal, actualizare UM  si cot a TVA . . . . . . . . . . . . . . 28
3.13 Fluxul principal, actualizare trezorerie . . . . . . . . . . . . . . . . . . 29
3.14 Fluxul principal, actualizare furnizori . . . . . . . . . . . . . . . . . . . 31
vi

Introducere
Procesul business de aprovizionare apare ^ n activitatea majorit at ii companiilor.
Procesul de aprovizionare este constituit din activit at i de achizit ionare a bunurilor sau
a serviciilor de la un furnizor, de efectuare a unor pl at i  si eventual a stocare a bunurilor,
^ n vederea utiliz arii lor, spre exemplu ^ n domenii de comert , product ie sau servicii.
Termenii de achizit ionare, aprovizionare sau alimentare sunt utilizat i frecvent ^ n
literatura de specialitate, dar  si ^ n practica economic a. Cu toate acestea, termenii
speci cat i au o semni cat ie diferit a. Achizit ionarea reprezint a un angajament nanciar,
reprezent^ and efectiv, o tranzact ie monetar a. Aprovizionarea este un proces complex;
acesta este compus din achizit ionare (acesta ind doar o component a a aprovizion arii),
act iunea de determinare a nevoilor, stabilirea dimensiunii acestora  si emiterea cererii
sau a comenzii, negocierea condit iilor de furnizare, de aducerea efectiv a a resurselor
materiale. Ultima act iune a procesului de aprovizionare este reprezentat a de alimen-
tare; aceast a act iune se caracterizeaz a prin trecerea ^ n consum a resurselor aduse de la
furnizor.
Managementul procesului de aprovizionare este reprezentat prin activitatea de
asigurare a elementelor materiale  si tehnice utilizate ^ n product ie. Aceast a activitate
permite realizarea obiectivelor generale ale ^ ntreprinderii prin volum  si structur a adec-
vat a pentru asigurarea unor costuri minime  si a unui pro t maximizat.
Tema lucr arii o reprezint a dezvoltarea unei aplicat ii de aprovizionare, titlul lucrarii
este"Dezvoltarea unei aplicat ii pentru analiza datelor  si managementul aprovizion arii
unei societ at i comerciale", aplicat ie care este util a proceselor economice destinate apro-
vizion arii. Aceast a problem a are o caracteristic a cu aspect clasic, deoarece prezent a
acesteia ^ n cadrul economic este de mare important  a. ^In procesul dezvolt arii dome-
niului economic, numero si dezvoltatori au pus problema cre arii unei aplicat ii care s a
faciliteze achizit ia de produse.
Lucrarea respectiv a cuprinde aspecte at^ at teoretice c^ at  si practice privind concepte
de proiectare  si implementare a sistemului, cu cateva secvent e de cod, diagrama de
clase  si imagini sugestive pentru a ^ ntelege u sor dezvoltarea proiectului. Lucrarea este
1

Introducere Introducere
structurat a ^ n cinci capitole, ecare avand mai multe subcapitole  si care urm aresc ^ n
detaliu prezentarea domeniului aplicat iei, tehnologiile utilizate, procesul de dezvoltare,
implementarea  si testarea aplicat iei.
^In concluzie, procesul de aprovizionare este indispensabil ^ n atent ia oric arei com-
panii, iar problema dezvolt arii unui sistem pentru a facilita act iunea de aprovizionare
este una clasic a. Cu toate acestea, tema lucr arii abordeaz a o problem a clasic a care este
adus a ^ n actualitate prin intermediul tehnologiilor utilizate, Visual Studio ^ mpreun a cu
C#.
Motivat ie
Informatizarea domeniului economic a reprezentat avansarea  si dezvoltarea semni-
cativ a a proceselor economice. Procesul de aprovizionare reprezint a o problem a clasic a
prin care se efectueaz a furnizarea unui anumit produs de c atre o societate comercial a.
Aplicabilitatea procesului de aprovizionare a fost facilitat a de adaptarea proceselor
economice la cele informatice, ^ ntruc^ at aplicact ia prezentat a ^ n cadrul acestei lucr ari
este practic a societ at ilor comerciale c^ at  si ^ ntreprinderilor mari sau restr^ anse.
Motivat ia dezvolt arii acestei aplicat ii este conturat a de interesul personal ^ n do-
meniul economic  si solut ionarea problemei clasice de aprovizionare. Aceast a abordare
a problemei economice, utilizeaz a tehnologii moderne de dezvoltare a aplicat iilor prin
adaptarea acesteia la un sistem informatic de analiz a a datelor  si de management al
aprovizion arilor din cadrul societ at ilor. ^In consecint  a, nevoia dezvolt arii aplicat iilor
economice const a ^ n facilitarea proceselor economice de aprovizionare, precum efec-
tuarea comenzilor, manipularea recept ii, realizarea pl at ilor, vizualizarea stocurilor  si
actualizarea elementelor economice. Aceast a solut ionare poate abordat a prin inter-
mediul informatiz arii proceselor economice.
Abordarea unei astfel de probleme motiveaz a decizia personal a pentru dezvolta-
rea aplicat iei de analiz a a datelor  si management al aprovizion arii, util a societ at ilor
comerciale. Acest proces de aprovizionare se a
 a la baza activit at ilor economice, iar
abordarea unei aplicat ii software speci ce va u sura procesul economic prin minimizarea
costurilor  si reducerea timpului de procesare  si abordare a unui proces de aprovizionare.
Pentru a putea util a aprovizionarea, ^ ntr-o societate comercial a este nevoie  si
de existent a aspectului care se leag a de v^ anzarea sau utilizarea bunurilor obt inute ^ n
urma aprovizion arii. De aceea, procesul de aprovizionare este ^ n str^ ans a leg atur a cu
procesul de v^ anzare, iar analiza datelor se refer a la analiza proceselor de aprovizionare
^ n raport cu v^ anzarea. ^In consecint  a, lucrarea descrie ^ n detaliu procesul de aprovizio-
nare, iar analiza datelor prezint a o abordare diferit a, aceast a analiz a se re
ect a doar
^ n vizualizarea stocului disponibil.
2

Capitolul 1
Prezentarea domeniului aplicat iei
1.1 De nitia problemei
Aprovizionarea reprezint a un proces complex, iar obiectivul principal al acestui
proces const a ^ n asigurarea complet a  si complex a a cererilor de consum ale rmei cu
resurse materiale aduse de la furnizori, f ar a a prezenta ruptur a de stoc ^ ntre dou a
aprovizion ari, adic a, la un moment dat cererea s a e mai mare dec^ at oferta, av^ and ^ n
nal un cost minim de achizit ie  si un pro t maximizat.
Cu alte cuvinte, prin termenul de aprovizionare se poate ^ nt elege"drumul" parcurs
de un produs de la un furnizor, trec^ and prin toate etapele acesteia,  si ajung^ and ^ n nal
la un client.
Figura 1.1 : Lant  de aprovizionare
Cei care furnizeaz a bunuri sau servicii c atre distribuitori, comerciant i sau alt i
agent i economici poart a numele de furnizori  si se reg asesc ^ n majoritatea domeniilor
existente ^ ntr-o economie. Ace stia, ^ n general, nu interact ioneaz a direct cu consumato-
3

Prezentarea domeniului aplicat iei De nitia problemei
rul nal; ei ofer a pret uri mici client ilor care sunt de acord s a semneze un contract pe
o perioad a ^ ndelungat a sau client ilor care au comenzi cu cantit at i mari.
Clientul sau consumatorul este persoana care bene ciaz a de produsele sau serviciile
cump arate pentru satisfacerea nevoilor personale.
Cererea este lansat a de un client  si reprezint a nevoile de bunuri sau servicii care ^ l
satisfac pe acesta; ea depinde  si de nevoile de consum, venitul disponibil al consumato-
rilor, pret ul bunurilor  si serviciilor, precum  si de voint a de cump arare a consumatorilor.
Oferta este^ n str^ ans a leg atur a cu cererea, ea reprezint a cantitatea de bunuri sau servicii
oferite spre v^ anzare de un agent economic ^ ntr-o anumit a perioad a de timp.
Stocurile sunt cantit at i de materii prime, materiale, semifabricate, produse nite,
consumabile sau unit at i f acute cu scopul desf a sur arii cu
uiditate a unei activit at i pro-
ductive, comerciale. ^In teoria stocurilor sunt prezentate dou a metode pentru refacerea
stocului:
.Metoda Periodic a, unde aprovizionarea se face la aceea si perioad a de timp. Dez-
avanajul este c a poate ap area ruptur a de stoc dac a cererea dep a se ste oferta ^ ntr-o
anumit a perioad a de timp.
.Metoda Relaxare, se aprovizioneaz a de ecare dat a cu aceia si cantitate. La
aceast a metod a nu se t ine cont de perioada de timp. Atunci c^ and se ajunge la
nivelul de sigurant  a se realizeaz a aprovizionarea  si de aceea nu se poate produce
nici ruptur a de stoc.
Figura 1.2 : Metoda Relaxare  si Metoda Periodic a
O aplicat ie de aprovizionare ofer a posibilitatea unui utilizator s a realizeze o comand a,
introduc^ and un furnizor  si o list a de produse. Utilizatorul are posibilitatea s a recept ioneze
sau s a vizualizeze o comand a facut a anterior, poate s a pl ateasc a o comand a recept ,ionat a,
s a  stearg a sau s a modi ce o factur a.
4

Prezentarea domeniului aplicat iei Aplicat ii existente
Titlul lucr arii este \Dezvoltarea unei aplicat ii pentru analiza datelor  si manage-
mentul aprovizion arii ^ ntr-o societate comercial a", iar tema o reprezint a dezvoltarea
unei aplicat ii cu ajutorul c areia un utilizator ^  si poate alege o list a de produse de la un
furnizor. Aceast a aplicat ie monitorizeaz a evident a facturilor  si pl at ile efectuate c atre
ecare furnizor.
1.2 Aplicat ii existente
1.2.1 Microsoft Dynamics NAV
Produsul Microsoft Dynamics NAV este un sistem de plani care a resurselor
^ ntreprinderilor. Este o parte a familiei Microsoft Dynamics, creat a special pentru
aplicat iile nanciare, relat ii cu client i, management, lant uri de aprovizionare, analiz a
a piet ei  si comert  electronic.
Microsoft Dynamics NAV provine din suita de aplicat ii contabile Navision, cump arat a
^ n anul 2002 de c atre rma Microsoft.
Figura 1.3 : Microsoft Dynamics NAV – aprovizionare
Aplicat ia cont ine funct ii integrate ce ofer a suport pentru urmatoarele module:
.Management pentru aprovizion ari
.Management nanciar
.Distribut ii
.Relat ii cu client ii
.V^ anz ari
.Managementul resurselor umane
.Managementul serviciilor
Modulul aprovizionare permite gestionarea relat iei cu furnizorii, ^ ncep^ and de la
5

Prezentarea domeniului aplicat iei Aplicat ii existente
^ nregistrarea ofertei de cump arare  si naliz^ andu-se cu realizarea recept iei  si^ nregistrarea
facturii. ^In plus, acest modul ofer a instrumente pentru optimizarea stocurilor.
Principalele functionalit at i ale modulului aprovizionare sunt:
.Se pot realiza recept ii multiple  si facturi multiple din comanda de cump arare;
.Se pot actualiza datoriile furnizorilor;
.Ofer a posibilitatea ^ nregistr arii ofertelor furnizorilor, se pot emite comenzi  si se
memoreaz a facturi de aprovizionare;
.Asigur a gestionarea recept iilor part iale;
.Permite gestionarea pret urilor  si tarifelor pe furnizori sau pe tipuri de furnizori
 si pe articole sau perioade de valabilitate;
.Poate sugera pl at i c atre furnizori^ n funct ie de unele criterii speci cate (prioritate,
posibile reduceri, data de scadent  a, etc.).
1.2.2 bcAchizit ii
^In martie 2011 breg COMPUTERS a dezvoltat o nou a facilitate pentru activitatea
de aprovizionare ^ n cadrul aplicat iei bcManager Professional ERP (Enterprise Resource
Planning). bcAchizit ii este un program de aprovizionare, modul al bcManager Profes-
sional ERP.
bcAchizit ,ii este un modul utilizat ^ n plani carea  si desf a surarea activit at ii de apro-
vizionare. S-au implementat mai multe modalit at i de calcul a cantit at ii care trebuie
aprovizionat a ^ ntr-o perioad a de timp, ^ n acest mod, utilizatorul bene ciaz a de
exibi-
litate  si poate opta pentru varianta potrivit a ec arei situat ii. Aplicat ia propune mai
mult i furnizori pentru ecare produs, oferindu-i utilizatorului posibilitatea de a- si alege
furnizorul preferat.
Figura 1.4 : Diagrama bcAchizit ii
Un avantaj al acestei aplicat ii ^ l reprezint a faptul c a pot introduse ^ n sistem toate
6

Prezentarea domeniului aplicat iei Aplicat ii existente
costurile care pot afecta costul de recept ie, cum ar : transport, comisioane, cheltuieli
vamale sau alte cheltuieli. De asemenea, se poate opta pentru calculul cantit at ii de
aprovizionat ^ n funct ie de comenzile client ilor sau ^ n funct ie de istoricul activit at ii. Un
alt avantaj ^ l presupune calculul necesarului de aprovizionat, acesta poate calculat
pentru una sau mai multe gestiuni, pentru o anumit a categorie de produse sau pentru
un furnizor.
1.2.3 SeniorERP
SeniorERP este o aplicat ie lansat a ^ n 2003 de compania Senior Software  si repre-
zint a un modul de aprovizionare al sistemului ERP (Enterprise Resource Planning).
Aplicat ia parcurge urm atorii pa si: ^ ncepe de la estimarea necesarului de aprovizio-
nare, urm^ and comanda de achizit ie, sosirea documentelor scale, gestiunea recept iei de
bunuri  si naliz^ andu-se cu leg aturi c atre modulele de contabilitate, v^ anz ari, stocuri.
Figura 1.5 : Aprovizionare ^ n ERP – Comenzi de achizit ie
Comenzile de achizit ie/ furnizor joaca un rol important ^ n cadrul procesului de
aprovizionare; este necesar a  si recomandat a urm arirea complet a a
uxurilor speci ce,
astfel ^ nc^ at s a poat a asigurat a  si controlat a calitatea produsului.
Aplicat ia ofer a posibilitatea de a vizualiza ^ n timp real informat ii despre stocuri,
pret uri, client i sau furnizori, deoarece SeniorERP funct ioneaz a ^ n modul de lucru on-
line.
7

Capitolul 2
Tehnologii utilizate
2.1 Visual Studio Community 2017
Visual Studio include un set de instruct iuni de dezvoltare pentru generarea de
aplicat ii ASP.NET, Servicii Web XML, aplicat ii desktop  si aplicat ii mobile. Visual
Studio este un mediu de dezvoltare integrat (IDE { Integrated Development Environ-
ment) ^ n care se pot dezvolta aplicat ii Web Forms.
Visual Studio se bazeaz a pe simplitate, oferind multiple aplicat ii  si bene cii, cu scopul
de a ^ mbun at at ii ^ ntreaga activitate a dezvoltatorilor, de la design p^ an a la implemen-
tare.
Figura 2.1 : Visual Studio 2017
Visual Studio 2017 a fost lansat pe data de 7 martie 2017  si pentru acesta s-au
dezvoltat mai multe servicii care ajut a la dezvoltarea, testarea  si managementul codului
surs a pentru aplicat iile mobil, web  si cloud.
Prin facilit at ile aduse se num ar a  si urm atoarele:
8

Tehnologii utilizate Platforma .NET
.Visual Studio IDE – s-a redus timpul de ^ nc arcare sau navigare prin cod  si accesul
la serviciile integrate^ n cod, s-au introdus o serie de elemente noi interfet ei gra ce;
.Ofer a suport pentru C# 7.0  si Visual Basic 15;
.Se adaug a noi opt iuni de personalizare  si pachete disponibile pentru instalarea
oine;
.Se adaug a elemente de automatizare ^ n Test Explorer;
.Cu ajutorul noului Visual Studio 2017 se pot crea .NET Standard libraries, .NET
Core apps/libraries,  si ASP.NET web projects  si acestea vor folosi noul format
.csproj;
.Se ^ mbun at at e ste performant a  si stabilitatea;
.Se adaug a noti c ari in timp real pentru valid ari.
2.2 Platforma .NET
.NET este un mediu de dezvoltare software unitar a (Framework) care permite
realizarea, distribuirea  si rularea aplicat iilor desktop Windows  si aplicat iilor WEB.
^In cadrul platformei .NET sunt reunite mai multe tehnologii (ASP, XML, OOP, SOAP,
WDSL, UDDI)  si limbaje de programare (VB, C++, C#, J#), asigur^ and rularea
codului ^ n diferite aplicat ii, indiferent de limbajul de programare utilizat.
Tehnologia .NET are la baz a componenta .NET Framework care este format a din
compilatoare, biblioteci  si alte executabile utile ^ n rularea aplicat iilor .NET.
Figura 2.2 : Arhitectura .NET Framework
CLR (Common Language Runtime) reprezint a platforma de execut ie a programe-
lor  si este utilizat a de toate limbajele. Aceast a platform a include o ma sin a virtual a
ce execut a instruct iunile IL (sau MSIL- Microsoft Intermediate Language) rezultate ^ n
urma compil arii; ma sina folose ste un compilator special numit JIT (Just In Time) care
analizeaz a codul IL corespunz ator apelului unei metode  si produce codul ma sin a. Tot
platforma CLR se ocup a cu gestionarea automat a a memoriei.
9

Tehnologii utilizate Limbajul C#
FLC (Framework Class Library) reprezint a ansamblul de biblioteci necesare ^ n realiza-
rea aplicat iilor desktop sau WEB.
ADO.NET (ActiveX Data Objects) este o component a a platformei .NET Framework
care permite accesarea  si manipularea datelor. Ofer a servicii at^ at pentru lucrul ^ n stil
deconectat de la sursa de date, c^ at  si conectat.
Pentru a se putea face conectarea la sursa de date, trebuie realizat a o leg atur a (cone-
xiune) cu sursa de date ^ nainte de orice operat ie. Clasele din categoria Connection (de
exemplu SQLConnection, OleDbConnection, etc.) cont in date referitoare la sursa de
date (locat ia, numele  si parola contului de acces), metode pentru ^ nchiderea sau des-
chiderea conexiunii, pornirea unei tranzact ii, etc. Aceste clase se g asesc ^ n subspat ii
(SQL Client, OleDb, etc.) ale spat iului System.Data.
De asemenea, conexiunea la sursa de date se poate realiza  si prin program astfel: se
poate instant ia un obiect tip conexiune, preciz^ andu-i ca parametru un  sir de caractere
cont in^ and date despre conexiune.
Platforma ADO.NET include clasa DataSet, DataAdapter  si alte clase cum ar Data-
Table, DataColumn, DataRow sau DataRelation. DataSet-ul poate v azut ca o vedere
^ n memoria bazei de date. Un obiect DataSet cont ine un set de tabele realt ionale care
primesc date de la sursa de date la care este conectat a  si ^ ntoarce modi c arile efectu-
ate ^ napoi la baza de date. DataAdapter realizeaz a conexiunea ^ ntre baza de date  si
DataSet-ul conectat la aceasta. Pentru a manipual datele din sursa de date se folo-
sesc comenzi ca de exemplu InsertCommand, SelectCommand, UpdateCommand sau
DeleteCommand.
2.3 Limbajul C#
Limbajul C# este un limbaj de programare modern, simplu  si orientat pe obiecte
care a ap arut la sf^ ar situl anilor 90  si care deriv a din limbajele C  si C++.
Figura 2.3 : C#
Sursa de inspirat ie pentru numele limbajului o reprezint a notat ia # (diez) din
muzic a, aceast a notat ie indic a faptul c a nota muzical a urmat a de # este mai ^ nalt a cu
un semiton. Este o similitudine cu numele limbajului C++, unde ++ reprezint a at^ at
incrementarea unei variabile cu valoarea 1, c^ at  si faptul c a C++ este mai mult dec^ at
limbajul C.
10

Tehnologii utilizate Microsoft SQL Server 2012
Limbajul C# a fost dezvoltat ^ n cadrul Microsoft, iar principalii creatori sunt Andres
Heilsberg, Scott Wiltamuth  si Peter Golde.
Prin de nit ie, un obiect reprezint a un mod simpli cat de a identi ca un lucru sau
o entitate din lumea real a sau imaginar a. Programarea ^ ntr-un limbaj orientat spre
obiecte ^ nseamn a g asirea unor agent i adaptat i problemei  si care ^  si ^ mpart ^ ntreaga
sarcin a a rezolv arii, ecare din ei specializ^ andu-se ^ n sarcini mai mici.
Principalele caracteristici ale acestui limbaj:
.Este un limbaj de programare simplu, cu circa 80 de cuvinte cheie  si 12 tipuri de
date prede nite;
.Este un limbaj modern, cu productivitate mare in programare;
.Elementele fundamentale ale program arii ^ n C# sunt ^ ncapsularea, mo stenirea  si
polimor smul;
.Este un limbaj orientat pe obiecte;
.Permite dezvoltarea de aplicat ii industrial durabile.
2.4 Microsoft SQL Server 2012
Conceptul de baz a de date (BD) a ap arut ^ n anul 1969 cu ocazia prezent arii primu-
lui raport CODASYL (^ n cadrul unei conferint e care avea la baz a probleme cu limbaje
de gestiune a bazelor de date).
Figura 2.4 : Reprezentarea bazei de date
Prin baz a de date se ^ nt elege orice colect ie de date sau informat ii a
ate ^ n str^ ans a
leg atur a stocate pe un suport extern cu posibilitatea extinderii  si g asirii rapide a aces-
tora.
11

Tehnologii utilizate Microsoft SQL Server 2012
Un pachet software prin care se realizeaz a gestiunea bazei de date, se nume ste Sistem
de Gestiune a Bazei de Date (SGBD), acesta are rolul de a administra baza de date
 si de a oferi interfat a ^ ntre utilizatori  si baza de date. Denumirea a fost preluat a prin
traducerea din limba francez a a not iunii \Systeme de gestion de base de donnees". ^In
limba englez a conceptul utilizat este \Database Management System" (DBMS).
SQL (Structured Query Language) este un limbaj de descriere  si manipulare acceptat
de toate SGBD { urile relat ionale. Limbajul SQL a fost dezvoltat la ^ nceputul anilor
1970 de o echip a de la IBM, ^ n cadrul laboratorului de Cercetare de la San Jose.
Microsoft SQL Server este un SGBD relat ional produs de c atre Microsoft. Prima ver-
siune a ap arut ^ n 1989 cu suport pentru 16 bit i  si rula doar pe OS/2, sistemul de
operare creat de Microsoft  si IBM. Prima versiune de server de baze de date scoas a
de Microsoft, bazat a pe GUI (Graphical User Interface) a fost SQL Server 7.0, iar o
versiune comercial a lansat a pentru arhitectura Intel a fost SQL Server 2000.
Microsoft aduce, odat a cu noua versiune SQL Server 2005, o serie de ^ mbu-n at at iri pen-
tru stocarea  si manipularea datelor XML, facilit at i pentru tratarea erorilor, partit ionarea
tabelelor  si a indec silor.
SQL Server 2008 ofer a suport pentru stocarea de date multimedia  si adaug a noi ti-
puri de date (geometry, geography, hierarchy  si date). Aceast a versiune ofer a facilit at i
pentru lucrul cu date nestructurate, semistructurate sau part iale; dar ofer a suport  si
pentru tabele temporare, tabele virtuale sau indec si de tip hash.
Figura 2.5 : Microsoft SQL Server 2012
Microsoft SQL Server 2012 este prima platform a bazat a pe servicii cloud a r-
mei. Pune la dispozit ia ^ ntreprinderilor utilitare e ciente pentru protect ia datelor,
funct ion^ and astfel pe diverse dispozitive  si surse de date. De la computere, telefoane
 si tablete, pana la centre de date  si cloud-uri publice sau private. SQL Server 2012,
asem an ator predecesorilor s ai, dep a se ste aspectele unui simplu motor de baze de date,
este o colect ie de componente ce pot implementate ^ n mod separat sau ca un grup
pentru formarea platformei de informat ii.
Construit a pe conceptele SQL Server 2008 R2, SQL Server 2012 aduce mari schimb ari
pentru organizat iile de pretutindeni prin capacit at ile sale semni cative. Ofer a^ ntreprinderilor
performant  a optimizat a  si autenticitate, precum  si o varietate de solut ii business.
O facilitate surprinz atoare o reprezint a serviciile de vizualizare a log-urilor (sau ra-
poarte ale activit at ilor), copie oine a bazei de date  si recuperare a datelor.
Drept solut ii de securitate, Microsoft a ^ nregistrat un numar redus al vulnerabilit at ilor
pentru produsul SQL Server, conform sondajului oferit de Institutul Nat ional al Stan-
dardeor  si Tehnologiilor rapoartele efectuate ^ n intervalul anilor 2002-2010 ilustreaz a
12

Tehnologii utilizate Microsoft SQL Server 2012
procentul redus al SQL Server-ului fat  a de expunerea la atacuri informatice.
SQL Server 2012 ofer a trei edit ii de baz a, aceste edit ii au fost dezvoltate conform
cerint elor client ilor,^ n mod invividual ofer a versiuni de 32  si 64 bit i: Enterprise( ^Intreprindere),
Standard, Business Intelligence(Inteligent a Business). Alte distribut ii ale acestui ser-
viciu sunt structurate ^ n trei mari categorii: Developer(Dezvoltator), Web, Express.
Cerint ele hardware (tehnice)  si software (logice) pentru SQL Server 2012 pot varia ^ n
funct ie de componentele sistemului, capacitatea de lucru cu baze de date  si tipul de
procesor folosit.
SQL Server 2012 ofer a ^ mbun at at iri din punct de vedere al situat iilor critice, cum ar
valabilitate maxim a  si recuperare a datelor. Aceste imbun at at iri ofer a ^ ncredere
organizat iilor.
13

Capitolul 3
Procesul de dezvoltare al aplicat iei
Aplicat ia dezvoltat a poart a denumirea "Approvizionare", numele sugereaz a, prin
al aturarea grupului de cuvinte "App" care reprezint a abrevierea termenului Applica-
tion, tema dezvoltat a. Titlul este unul sugestiv, un singur cuv^ ant care une ste dou a
p art i. Prima parte provine din limba englez a de la cuvantul"application" care se
traduce prin"aplicat ie", iar a doua parte este reprezentat a chiar de procesul ^ n sine,
"aprovizionare".
3.1 Documentul de cerint e
3.1.1 Descrierea sistemului
Sistemul t ine evident a comenzilor, facturilor  si pl at ilor lansate de utilizator pentru
aprovizionarea unei societ at i comerciale.
3.1.2 Actori software
Rolurile pe care le poate lua utilizatorul care interact ioneaz a cu sistemul sunt:
.Operator
.S ef de aprovizionare
.S ef nanciar
.Manager product ie
14

Procesul de dezvoltare al aplicat iei Documentul de cerint e
3.1.3 Cerint e funct ionale (F)
F1: Vizualizare  si actualizare oferte
F1.1. – Permite alegerea unui furnizor;
F1.2. – Permite actualizarea pret urilor oric arui produs dore ste operatorul;
F1.3. – Veri c a datele introduse  si a  seaz a mesaj de eroare dac a nu se introduce corect
pret ul;
F1.4. – Permite renunt area modi c arilor f acute;
F1.5. – Permite salvarea modi c arilor  si memorarea schimb arilor f acute.
F2:Comand a nou a
F2.1. – Permite alegerea unui furnizor;
F2.2. – Permite alegerea datei de emitere  si de ^ nregistrare a comenzii;
F2.3. – Permite alegerea listei de produse;
F2.4. – Permite introducerea cantit at ii dorite pentru ecare produs selectat;
F2.5. – Veri c a datele introduse  si se a  se aza mesaj de eroare ^ n cazul ^ n care se
introduce ceva gre sit;
F2.6. – Sistemul calculeaz a prezc tul total dup a introducerea ec arui produs;
F2.7. – Este permis a renunt area la comand a;
F2.8. – Sistemul permite salvarea comenzii, se memoreaz a datele completate  si se
realizeaz a o factur a.
F3: Vizualizare facturi
F3.1. – Permite vizualizarea unei facturi  si cont inutul acesteia;
F3.2. – Permite  stergerea unei facturi;
F3.3. – Sistemul cere con rmare pentru  stergerea unei facturi;
F3.4. – Daca se con rm a, se realizeaz a  stergerea facturii f ar a posibilitatea de a recupera
factura  stears a;
F3.5. – Dac a nu se con rm a nu se realizeaz a schimb ari asupra facturilor existente.
F4: Modi care facturi
F4.1. – Permite ad augarea de produse noi;
F4.2. – Permite ad augarea sau modi carea cantit at ilor pentru ecare produs din list a;
F4.3. – Permite  stergerea de produse din factur a;
F4.4. – Sistemul calculeaz a pret ul total al facturii dup a ecare modi care a acesteia;
F4.5. – Permite renunt area la modi c arile f acute, vechea factur a nu se modi c a;
F4.6. – Permite salvarea facturii, vechea factur a este ^ nlocuit a de factura modi cat a.
F5: Vizualizarea recept iilor
F5.1. – Permite vizualizarea tuturor facturilor  si vizualizarea tuturor recept iilor din
factur a;
F5.2. – Permite  stergerea de recept ii, dac a acetea exist a;
F5.3. – Sistemul cere con rmarea pentru  stergerea recept iilor, dac a se realizeaz a
 stergerea unei recept ii, nu se  sterge  si factura acelei recept ii.
F6: Recept ia unei facturi
F6.1. – Ofer a posibilitatea de a alege o factur a din cele existente;
15

Procesul de dezvoltare al aplicat iei Documentul de cerint e
F6.2. – Sistemul permite recept ia tuturor produselor, sau doar a unor produse din
factur a;
F6.3. – Permite modi carea cantit at ii produselor de recept ionat, dar ^ n caz c a se
introduce o cantitate mai mare decat cantitatea din factur a se a  seaza mesaj de eroare,
iar  seful nanciar poate introduce ^ nca o dat a cantitatea de recept ionat;
F6.4. – Sistemul calculeaz a pret ul total al recept iei dup a ecare modi care;
F6.5. – Permite renunt area sau con rmarea recept iei;
F6.6. – Dac a se con rma, se memoreaza datele recept iei.
F7: Efectuarea unei pl at i
F7.1. – Sistemul ofer a posibilitatea alegerii unui furnizor  si a  seaz a facturile restante
ale acestuia;
F7.2. – Permite alegerea unei facturi  si permite modi carea sumei care urmeaz a a
platit a;
F7.3. – Sistemul a  seaz a un mesaj de eroare dac a suma modi cat a este mai mare decat
suma din factur a  si ^ i ofer a posibilitatea  sefului nanciar s a introduc a alt a sum a;
F7.4. – Permite alegerea unei trezorerii, iar sistemul a  seaz a contul  si moneda ^ n care
se plate ste;
F7.5. – Permite con rmarea pl at ii  si se memoreaz a datele recept iei;
F7.6. – Permite renunt area la acea plat a, nu se produc modi c ari asupra facturilor
restante.
F8: Vizualizarea pl at ilor
F8.1. – Permite vizualizarea tuturor pl at ilor facute;
F8.2. – Permite  stergerea unei pl at i;
F8.3. – Sistemul cere con rmarea pentru  stergerea unei pl at i, dac a se realizeaz a
 stergerea unei pl at i, aceasta nu mai poate recuperat a.
F9: Vizualizare stoc produse
F9.1. – Permite alegerea unei date  si vizualizarea stocului de produse la acea dat a
(numele produsului  si cantitatea care este ^ n stoc la data respectiv a);
F9.2. – Permite vizualizarea stocului ^ n detaliu (data c^ and s-a introdus un anumit
produs ^ n stoc, unitatea de masur a, cantitatea care s-a introdus);
F9.3. – Permite arhivarea stocului la orice dat a dore ste managerul de product ie.
F10: Vizualizarea arhivelor
F10.1. – Sistemul a  seaz a datele c^ and s-a realizat o arhiv a la stocul de produse;
F10.2. – Permite alegerea unei date pentru a a  sa arhiva detaliat a (denumire produs,
unitate de masur a, pret ul de achizit ie, cantitatea achizit ionat a);
F10.3. – Sistemul ofer a posibilitatea  stergerii unei arhive  si cere con rmarea.
F11: Actualizare produse
F11.1. – Permite introducerea de produse noi pentru ecare furnizor;
F11.2. – Sistemul veri c a datele introduse, ^ n caz de eroare a  seaz a mesaj cores-
punz ator;
F11.3. – Permite  stergerea de produse, dar dac a acestea sunt utilizate ^ n facturi
 stergerea nu poate realizat a;
F11.4. – Sistemul permite modi carea produselor;
16

Procesul de dezvoltare al aplicat iei Documentul de cerint e
F11.5. – Sistemul permite renunt area sau con rmarea modi c arilor f acute asupra pro-
duselor.
F12: Actualizare Unitate de M asur a  si Cot a TVA
F12.1. – Permite ad augarea de unit at i noi de m asur a sau TVA, ^ n cazul ^ n care se
introduce aceea si valoare de dou a ori sistemul a  seaz a mesaj de eroare;
F12.2. – Permite  stergerea unei unit at i de m asur a sau a unei cote de TVA;
F12.3. – Pemite modi carea acestora;
F12.4. – Permite con rmarea sau renunt area modi c arilor f acute.
F13: Actualizare trezorerie
F13.1. – Permite introducerea de noi trezorerii  si pentru ecare trezorerie introdus a,
managerul de product ie trebuie s a introduc a moneda ^ n care se face plata  si contul
curent;
F13.2. – Sistemul veri c a datele introduse  si ^ n caz de eroare a  seaz a mesaj cores-
punz ator;
F13.3. – Permite modi carea trezoreriilor existente;
F13.4. – Permite  stergerea acestora;
F13.5. – Este permis a con rmarea dup a actualizarea trezoreriei sau renunt area la mo-
di c arile f acute.
F14: Actualizare furnizori
F14.1. – Permite introducerea de noi furnizori, ^ n cazul ^ n care se introduce de dou a
ori acela si furnizor, sistemul a  seaz a un mesaj de avertizare;
F14.2. – Permite modi carea furnizorilor existent i;
F14.3. – Permite  stergerea de furnizori;
F14.4. – Permite vizualizarea datoriilor pentru ecare furnizor;
F14.5. – Permite vizualizarea pl at ilor efectuate pentru ecare furnizor;
F14.6. – Permite con rmarea sau renunt area modi carilor f acute pentru actualizarea
furnizorilor.
3.1.4 Cerint e nefunct ionale (CN)
CN1 – Utilizatorul nu trebuie s a urmeze un instructaj pentru a folosi aplicat ia,
este su cient s a urm areasc a manualul.
CN2 – Aplicat ia se bazeaz a pe interfet e gra ce.
CN3 – Acuratet ea aplicat iei – aplicat ia trebuie s a realizeze calcule cu dou a zecimale
exacte.
CN4 – Robustet e { aplicat ia veri c a datele introduse de utilizator, dac a acestea sunt
incorecte, aplicat ia a  seaz a mesaj de eroare  si ^ i permite utilizatorului s a introduc a
date corecte.
17

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
3.2 Descrierea cazurilor de utilizare
3.2.1 Vizualizare  si actualizare oferte
Descriere: Descrie interact iunea dintre sistem  si operator pentru actualizarea
ofertelor  si interactiunea dintre client  si sistem pentru vizualizarea acestora.
Actori software: Operator (principal).
Eveniment declan sator: Operatorul cere actualizarea ofertelor.
Precondit ii: Sistemul trebuie s a aib a memorat cel putin un furnizor cu cel putin un
produs.
Postcondit ii: Sistemul a memorat modi carile asupra listei de oferte.
Referint e ^ ncruci sate: F1.1. – F1.5.
Flux principal:
Operator Sistem
1. Cere vizualizarea ofertelor.
2. Cere alegerea unui furnizor.
3. Alege un furnizor.
4. A  seaz a lista de produse.
5. Cere actualizarea ofertelor.
6. Permite modi carea pret urilor produselor.
7. Introduce noile preturi.
8. Veri ca datele introduse.[A1]
9. Cere memorarea ofertelor.[A2]
10. Memoreaza datele modi cate.
Tabela 3.1 : Fluxul principal, vizualizare  si actualizare oferte
Fluxuri alternative [A]:
[A1] Operatorul introduce caractere sau litere ^ n locul pret urilor.
1. Sistemul a  seaz a mesaj de eroare.
2. Fluxul continua cu pasul  sase din
uxul principal.
[A2] Operatorul cere renuntarea la modi c arile f acute asupra ofertelor.
1. Sistemul nu memoreaz a schimb arile facute asupra pret urilor.
2. Sistemul a  seaz a lista init ial a de oferte.
3. Fluxul principal se ^ ncheie.
3.2.2 Comand a nou a
Descriere: Descrie comportamentul sistemului  si interact iunea dintre  seful de
aprovizionare  si sistem pentru ad ugarea unei comenzi.
18

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
Actori software: S ef de aprovizionare (principal).
Eveniment declan sator: S eful de aprovizionare solict a o nou a comand a.
Precondit ii: Sistemul trebuie s a funct ioneze corect.
Postcondit ii: Sistemul a creat  si a memorat o noua factur care cont ine datele introduse
^ n comand a de  seful de aprovizionare.
Referint e ^ ncruci sate: F2.1. { F2.8.
Flux principal:
S ef de aprovizionare Sistem
1. Cere ad augarea unei comenzi noi.
2. Cere introducerea unui furnizor,
a datei de emitere  si de ^ nregustrare
a comenzii  si adaugarea listei de produse.
3. Completeaza datele cerute.
4. Veri c a datele introduse.[A1]
5.Calculeaz a valoarea total a a comenzii.
6. Cere memorarea datelor.[A2]
7. Memoreaz a datele introduse.
8. Creaz a o factur a nou a.
9. A  seaz a mesaj de nalizare a comenzii.
Tabela 3.2 : Fluxul principal, comand a nou a
Fluxuri alternative [A]:
[A1] Datele introduse sunt incorecte din punct de vedere semantic.
1. Sistemul a  seaz a un mesaj de eroare.
2. Fluxul continu a cu pasul doi din
uxul principal.
[A2] S eful de aprovizionare nu memoreaz a datele.
1. Sistemul nu memoreaz a datele noii comenzi.
2. Sistemul a  seaz a mesaj de informare, nu s-a creat o nou a factur a  si datele au fost
 sterse.
3. Sistemul gole ste toate c^ ampurile completate de  seful de aprovizionare  si se ^ ncheie

uxul principal.
3.2.3 Vizualizare facturi
Descriere: Descrie comportamentul dintre  seful nanciar  si sistem pentru vizua-
lizarea facturilor  si cont inutul acesteia.
Actori software: S ef nanciar (principal).
Eveniment declan sator: S eful nanciar cere vizualizarea facturilor existente.
Precondit ii: Sistemul trebuie s a memorat datele a cel put in o factur a.
Postcondit ii: S eful nanciar a vizualizat facturile existente.
Referint e ^ ncruci sate: F3.1. – F3.5.
19

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
Flux principal:
S ef nanciar Sistem
1. Cere vizualizarea facturilor existente.
2. A  seaz a facturile memorate.
3. Cere  stergerea unei facturi.
4. Cere con rmarea pentru  stergere.
5. Con rm a  stergerea.[A1]
6. S terge factura selectat a.
7. A  seaz a facturile care au r amas.
Tabela 3.3 : Fluxul principal, vizualizarea facturilor
Fluxuri alternative [A]:
[A1] S eful nanciar nu con rm a  stergerea facturii.
1. Sistemul nu realizeaz a  stergerea acelei facturi.
2. Fluxul principal se ^ ncheie.
3.2.4 Modi carea unei facturi
Descriere: Descrie interact iunea dintre  seful nanciar  si sistem pentru modi ca-
rea unei facturi existente.
Actori software: S ef nanciar (principal).
Eveniment declan sator: S eful nanciar solicit a modi carea unei facturi memorate
anterior.
Precondit ii: Sistemul trebuie s a memorat cel put in o factur a.
Postcondit ii: Sistemul trebuie s a ^ nlocuiasc a vechea factur a cu cea modi cat a de seful
nanciar.
Referint e ^ ncruci sate: F4.1. – F4.6.
Fluxuri alternative [A]:
[A1] Nu s-a introdus corect cantitatea produsului ad augat sau cantitatea unui
produs existent.
1. Se a  seaz a mesaj de eroare.
2. S eful nanciar poate introduce iar acea cantitate.
3. Fluxul continu a cu pasul doi din
uxul principal.
[A2] S eful nanciar cere renunt area la acea modi care de factur a.
1. Datele modi cate nu sunt memorate.
2. Se a  seaz a un mesaj de informare speci c^ and c a modi carea nu a avut loc.
3. Fluxul principal se ^ ncheie.
Flux principal:
20

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
S ef nanciar Sistem
1. Cere modi carea unei facturi.
2. A  seaz a factura cerut a.
3. Adaug a un produs nou sau
modi c a o cantitate din factur a
4. Veri ca datele introduse.[A1]
5. Calculeaz a pret ul total al facturii.
6. Cere  stergerea de produse din factur a.
7.Realizeaz a  stergerea pentru ecare
produs speci cat.
8. Calculeaz a pret ul total al facturii.
9. Cere salvarea facturii modi cate.[A2]
10. Memoreaz a datele.
11.^Inlocuie ste vechea factur a cu cea
modi cat a.
12. A  seaz a un mesaj de con rmare,
modi carea a fost facuta cu succes.
Tabela 3.4 : Fluxul principal, modi carea unei facturi
3.2.5 Vizualizarea recept iilor
Descriere: Descrie interact iunea dintre managerul de product ie  si sistem pentru
vizualizarea recept iilor.
Actori software: Managerul de product ie (principal).
Eveniment declan sator: Managerul de product ie cere vizualizarea recept iilor efec-
tuate p^ an a la acel moment.
Precondit ii: Sistemul are memorat a cel put in o recept ie.
Postcondit ii: Managerul de product ie a vizualizat recept iile existente.
Referint e ^ ncruci sate: F5.1. – F5.3.
Flux principal:
Manager de product ie Sistem
1. Cere vizualizarea recept iilor.
2. A  seaz a toate facturile  si
recept iile existente pentru ecare factur a.
3. Cere  stergerea unei recept ii.
4. Cere con rmare penru a face  stergerea.
5. Con rma  stergerea recept iei selectate.[A1]
6. Realizeaz a  stergerea recept iei
7. A  seaz a mesaj cu  stergere efectuat a.
Tabela 3.5 : Fluxul principal, vizualizarea recept iilor
21

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
Fluxuri alternative [A]:
[A1] Managerul de product ie nu con rm a  stergerea recept iei.
1. Nu se realizeaz a  stergerea recept iei.
2. Se a  seaz a un mesaj de informare.
3. Se ^ ncheie
uxul principal.
3.2.6 Recept ia unei facturi
Descriere: Prezint a interact iunea dinte  seful nanciar  si sistem pentru recept ia
unei facturi.
Actori software: S ef nanciar (principal).
Eveniment declan sator: S eful nanciar cere recept ia unei facturi existente.
Precondit ii: Sistemul trebuie s a memorat cel putin o factur a care mai are produse
de recept ionat.
Postcondit ii: Sistemul a memorat recept ia facturii speci cate de  seful de product ie.
Referint e ^ ncruci sate: F6.1. – F6.6.
Flux principal:
S ef nanciar Sistem
1. Cere recept ia unei facturi.
2. A  seaz a lista cu produse, cantit at ile
acestora  si pret ul din factur a.
3. Modi c a cantitatea unui produs.[A1]
4.Calculeaz a pret ul total al recept iei.
5. S terge un produs din factur a.
6. Cere con rmare pentru  stergere.
7. Con rm a  stergerea produsului.[A2]
8. Calculeaz a pret ul total al recept iei.
9. A  seaz a lista cu produsele r amase.
10. Cere con rmarea recept iei.[A3]
11. Memoreaz a datele din recept ie.
12. A  seaz a mesaj de informare cu recept ie
nalizat a.
Tabela 3.6 : Fluxul principal, recept ia unei facturi
Fluxuri alternative [A]:
[A1] Cantitatea introdus a de seful nanciar este mai mare dec^ at cantitatea din
factur a sau a introdus un  sir de caractere.
1. Sistemul a  seaz a un mesaj de eroare  si ^ i ofer a posibilitatea  sefului nanciar s a
introduc a alt a cantitate.
2. Fluxul continu a cu pasul doi din
uxul principal.
22

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
[A2] S eful nanciar nu con rm a  stergerea produsului speci cat.
1. Sistemul nu realizeaz a modi c ari asupra listei de produse.
2. Fluxul continu a cu pasul nou a din
uxul principal.
[A3] Cere renuntarea la recept ia acelei facturi.
1. Sistemul nu memoreaz a datele recept ie.
2. Sistemul a  seaz a mesaj de informare pentru a sublinia faptul c a nu s-a realizat
recept ia facturii.
3. Se incheie
uxul principal.
3.2.7 Efectuarea unei pl at i
Descriere: De ne ste comportamentul sistemului  si interact iunea acestuia cu  seful
nanciar pentru efectuarea unei pl at i.
Actori software: S ef nanciar (principal).
Eveniment declan sator: S eful nanciar solicit a efectuarea unei pl at i.
Precondit ii: Sistemul trebuie s a aib a memorat a o recept ie care nu a fost platit a.
Postcondit ii: Sistemul memoreaz a plata recept iei speci cate de  seful nanciar.
Referint e ^ ncruci sate: F7.1. – F7.6.
Flux principal:
S ef nanciar Sistem
1. Cere efectuarea unei pl at i.
2. Cere alegerea unui furnizor
3. Alege un furnizor.
4. A  seaz a o list a cu facturile restante.
5. Cere alegerea unei facturi.
6. Alege o factura.
7. A  seaz a datele din factura speci cat a.
8. Modi ca suma de plat a.[A1]
9. Calculeaz a totalul de plat a.
10. Cere alegerea unei trezorerii.
11. Alege o trezorerie.
12. Completeaz a contul  si moneda ^ n care se face
transferul de bani.
13. Cere con rmarea plat ii.[A2]
14. Memoreaz a datele speci cate.
15. A  seaz a mesaj de informare c a plata
s-a facut cu succes.
Tabela 3.7 : Fluxul principal, efectuarea unei pl at i
Fluxuri alternative [A]:
[A1] Suma introdus a este mai mare decat suma din recept ie sau s-a introdus un
23

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
 sir de caractere.
1. Sistemul a  seaz a un mesaj de eroare  si ^ i ofer a posibilitatea  sefului nanciar s a
introduc a alt a sum a de plata.
2. Fluxul continu a cu pasul  sapte din
uxul principal.
[A2] S eful nanciar nu con rm a salvarea pl at ii. 1. Nu se salveaz a plata care a fost
solicitat a.
2. Sistemul a  seaza un mesaj de informare cu privire la plata care nu a avut loc.
3. Fluxul principal se ^ ncheie.
3.2.8 Vizualizarea pl at ilor
Descriere: Prezint a interact iunea dintre sistem  si managerul de product ie pentru
vizualizarea pl at ilor efectuate c atre ecare furnizor.
Actori software: Manager de product ie (principal).
Eveniment declan sator: Managerul de product ie cere vizualizarea tuturor pl at ilor
existente.
Precondit ii: Sistemul trebuie s a aib a memorat a cel putin o plat a c atre un furnizor.
Postcondit ii: Managerul de product ie a vizualizat pl at ile existente.
Referint e ^ ncruci sate: F8.1. – F8.3.
Flux principal:
Managerul de product ie Sistem
1. Cere vizualizarea pl at ilor.
2. A  seaz a pl at ile existente.
3. Cere  stergerea unei pl at i.
4. Cere con rmare pentru  stergere.
5. Con rma  stergerea pl at ii selectate.[A1]
6. Realizeaz a  stergerea pl at ii.
7. A  seaz a mesaj cu  stergere efectuat a.
Tabela 3.8 : Fluxul principal, vizualizarea pl at ilor
Fluxuri alternative [A]:
[A1] Managerul de product ie nu con rma  stergerea pl at ii selectate.
1. Nu se realizeaz a schimb ari asupra Pl at ilor.
2. Sistemul a  seaz a un mesaj de informare.
3. Fluxul principal se ^ ncheie.
24

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
3.2.9 Vizualizare stoc produse
Descriere: Prezint a interdependent a dintre sistem  si managerul de product ie
pentru vizualizarea stocului de produse.
Actori software: Manager de product ie (principal).
Eveniment declan sator: Managerul de product ie solicit a vizualizarea stocului de
produse la o anumit a dat a.
Precondit ii: Sistemul trebuie s a salvat cel put in o recept ie de produse pentru a putea
vizualiza produsele din stoc, altfel sistemul nu are ce s a a  seze  si prin vizualizarea de
produse din stoc managerului de product ie ^ i apare o list a vid a.
Postcondit ii: Managerul de product ie a vizualizat produsele din stoc la data introdus a
de acesta.
Referint e ^ ncruci sate: F9.1. – F9.3.
Flux principal:
Manager de product ie Sistem
1. Cere vizualizarea stocului de produse.
2. Cere alegerea unei date pentru
a  sarea stocului.
3. Selecteaz a data dorit a.[A1]
4.Cere a  sarea produselor din stoc.
5. A  seaz a produsele din stoc la data
speci cat a.
6. Cere vizualizarea stocului ^ n detaliu.
7. A  seaz a datele cerute.
8. Cere arhivarea stocului.[A2]
9. Salvez a datele arhivei.
10. Creaz a o arhiv a noua cu produsele
din stoc.
11. A  seaz a mesaj de nalizare a arhivei.
Tabela 3.9 : Fluxul principal, vizualizare stoc produse
Fluxuri alternative [A]:
[A1] Managerul de product ie nu selecteaz a nici o dat a  si cere a  sarea produselor
din stoc.
1. Sistemul selecteaz a implicit data curent a ca ind data la care se va face vizualizarea
produselor din stoc.
2. Fluxul continu a cu pasul cinci din
uxul principal.
[A2] Managerul de product ie nu cere arhivarea stocului.
1. Sistemul nu creaz a nici o arhiv a cu stocul a  sat managerului de product ie.
2. Se ^ ncheie
uxul principal.
25

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
3.2.10 Vizualizarea arhivelor
Descriere: Descrie comportamentul sistemului  si interact iunea dintre acesta cu
managerul de product ie pentru vizualizarea arhivelor f acute asupra stocului de produse
la un moment dat.
Actori software: Manager de product ie (principal).
Eveniment declan sator: Managerul de product ie solicit a vizualizarea arhivelor efec-
tuate asupra stocului de prosuse.
Precondit ii: Sistemul a memorat cel put in o arhiv a asupra stocului de produse, altfel
lista de arhive este goal a.
Postcondit ii: Managerul de product ie a vizualizat arhivle efectuate asupra stocului
de produse.
Referint e ^ ncruci sate: F10.1. – F10.3.
Flux principal:
Manager de product ie Sistem
1. Cere vizualizarea arhivelor.
2. Cere selectarea unei date din cele
existente.[A1]
3. Selecteaz a data dorit a.
4. A  seaz a arhiva detaliat a
5. Cere  stergerea unei arhive.
6. Cere con rmare pentru a putea face
 stergerea.
7. Con rm a  stergerea arhivei selectate.[A2]
8. S terge arhiva selectat a din list a.
9. A  seaz a arhivele care au r amas dup a
 stergere.
Tabela 3.10 : Fluxul principal, vizualizarea arhivelor
Fluxuri alternative [A]:
[A1] Nu exist a nici o arhiv a memorat a.
1. Sistemul a  seaz a lista vid a care ar trebuit s a cont in a datele la care s-a f acut
arhiva.
2. Se ^ ncheie
uxul principal.
[A2] Managerul de product ie nu con rm a  stergerea arhivei selectate.
1. Nu se modi c a lista de arhive.
2. Fluxul continu a cu pasul patru din
uxul principal.
26

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
3.2.11 Actualizare produse
Descriere: Prezint a comportamentul  si interact iunea sistemului cu operatorul
pentru actualizarea produselor.
Actori software: Operator (principal).
Eveniment declan sator: Operatorul cere actualizarea produselor.
Precondit ii: Sistemul trebuie s a aib a memorat cel put in un furzizor pentru ca opera-
torul s a poat a ad auga produse acestuia ^ n cazul ^ n care nu sunt produse de actualizat.
Postcondit ii: Sistemul a memorat modi c arile facute de operator asupra produselor.
Referint e ^ ncruci sate: F11.1. – F11.5.
Flux principal:
Operator Sistem
1. Cere actualizarea produselor.
2. A  seaz a lista de produse existente.
3. Introduce un produs nou.
4. Veri c a dac a a mai fost introdus.[A1]
5. A  seaz a lista complet a de produse.
6. S terge un produs din list a.
7. Veri c a dac a produsul speci cat apare
^ n facturi.[A2]
8. A  seaz a lista de produse dup a
 stergerea produsului.
9. Modi c a un produs.
10. Veri c a datele introduse.[A3]
11. A  seaz a modi c arile f acute.
12. Cere con rmarea modi c arilor.[A4]
13. Salveaz a modi c arile f acute.
14. A  seaz a mesaj de nalizare.
Tabela 3.11 : Fluxul principal, actualizare produse
Fluxuri alternative [A]:
[A1] Produsul introdus de operator exist a deja ^ n lista de produse.
1. Sistemul a  seaz a mesaj de avertizare  si ^ i ofer a posibilitatea operatorlui s a introduc a
alt produs.
2. Fluxul continu a cu pasul doi din
uxul principal.
[A2] Produsul pe care operatorul dore ste s a ^ l  stearg a apare ^ n facturi.
1. Sistemul a  seaz a mesaj de eroare, produsul speci cat nu poate  sters.
2. Sistemul nu efectueaz a  stergerea.
3. Fluxul continu a cu pasul doi din
uxul principal.
[A3] Datele introduse de operator sunt incorecte din punct de vedere semantic.
1. Sistemul a  seaz a mesaj de eroare.
27

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
2. Sistemul ^ i ofer a posibilitatea operatorului s a corecteze gre selile f acute.
3. Fluxul continu a cu pasul doi din
uxul principal.
[A4] Operatorul nu con rm a modi c arile f acute asupra produselor.
1. Sistemul nu salveaz a modi c arile f acute.
2. Sistemul a  seaz a mesaj de informare, modi c arile nu au fost efectuate.
3.2.12 Actualizare unitate de m asur a  si cot a TVA
Descriere: Descrie interact iunea dintre sistem  si operator pentru actualizarea
unit at ii de m asur a  si cota TVA.
Actori software: Operator (principal).
Eveniment declan sator: Operatorul solicit a actualizarea unit at ii de m asur a  si cota
TVA.
Precondit ii: Sistemul trebuie s a funct ioneze corect.
Postcondit ii: Sistemul a memorat modi c arile f acute de operator.
Referint e ^ ncruci sate: F12.1. – F12.4.
Flux principal:
Operator Sistem
1. Cere actualizarea unit at ii de m asur a
 si cotei TVA.
2. A  seaz a lista cu unit at i de m asur a
 si cote TVA exitente.
3. Introduce o unitate de m asur a
sau o cot a TVA.
4. Veri c a dac a a mai fost introdus aceast a
unitate de masur a sau cota TVA.[A1]
5. A  seaz a lista complet a de unit at i de
m asur a  si cota TVA.
6. Modi c a o unitate de m asur a
sau cot a TVA.
7. Veri c a modi c arile f acute.[A2]
8. S terge un element din liste.
9. A  seaz a listele f ar a elementul  sters.
10. Con rm a modi c arile f acute.[A3]
11. Salveaz a schimbarile efectuate.
12. A  seaz a mesaj de nalizare a
operatiei de actualizare.
Tabela 3.12 : Fluxul principal, actualizare UM  si cot a TVA
Fluxuri alternative [A]:
[A1] Operatorul a introdus o valoare duplicat a.
28

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
1. Sistemul a  seaz a mesaj de eroare.
2. Fluxul continu a cu pasul doi din
uxul principal.
[A2] Operatorul a introdus o valoare incorect a din punct de vedere semantic.
1. Sistemul a  seaz a mesaj de eroare.
2. Fluxul continu a cu pasul doi din
uxul principal.
[A3] Operatorul nu con rm a modi c arile facute.
1. Sistemul nu memoreaz a modi c areile efectuate de operator.
2. Sistemul a  seaz a listele init iale cu unit at i de masur a  si cote TVA.
3. Se ^ ncheie
uxul principal.
3.2.13 Actualizare trezorerie
Descriere: Descrie comportamentul sistemului  si interact iunea dintre acesta si
operator pentru actualizarea trezoreriilor.
Actori software: Operator (principal).
Eveniment declan sator: Operatorul acceseaz a actualizare trezorerie. Precondit ii:
Sistemul trebuie s a act ioneze corect la interact iunea cu operatorul.
Postcondit ii: Sistemul a memorat modi c arile realizate de operator.
Referint e ^ ncruci sate: F13.1. – F13.5.
Flux principal:
Operator Sistem
1. Cere actualizare trezorerie.
2. A  seaz a trezoreriile existente.
3. Introduce o nou a trezorerie.
4. Veri c a datele introduse.[A1]
5. A  seaz a lista complet a cu trezorerii
6. Modi c a o trezorerie existent a.
7. Veri c a datele introduse.[A2]
8. A  seaz a modi c arile f acute.
9. S terge o trezorerie.
10. A  seaz a modi c arile efectuate.
11. Cere memorarea modi c arilor.[A3]
12. Salveaz a modi c arile efectuate de operator.
13. A  seaz a mesaj de nalizare.
Tabela 3.13 : Fluxul principal, actualizare trezorerie
Fluxuri alternative [A]:
[A1] Operatorul a introdus o valoare duplicat ^ n lista de trezorerii.
1. Sistemul a  seaz amesaj de eroare  si ^ i ofer a posibilitatea utilizatorului s a introduc a
29

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
alt a trezorerie f ar a a memora valoarea duplicat.
2. Fluxul continu a cu pasul doi din
uxul principal.
[A2] Datele introduse de operaator sunt incorecte din punct de vedere semantic.
1. Sistemul a  seaz amesaj de eroare  si ^ i ofer a posibilitatea operatorului s a corecteze
gre seala efectuat a.
2. Fluxul continu a cu pasul doi din
uxul principal.
[A3] Operatorul nu con rm a salvarea modi c arilor efectuate.
1. Sistemul nu salveaz a modi c arile f acute de operator.
2. Sistemul a  seaz a lista de trezorerii init ial a.
3.Se ^ ncheie
uxul principal.
3.2.14 Actualizare furnizori
Descriere: Prezint a interact iunea dintre sistem  si operator pentru actualizarea
furnizorilor.
Actori software: Operator (principal).
Eveniment declan sator: Operatorul solicit a actualizarea furnizorilor.
Precondit ii: Sistemul trebuie s a funct ioneze corect la interact iunea cu operatorul
pentru actualizarea furnizorilor.
Postcondit ii: Sistemul a memorat modi c arile facute de operatoe asupra furnizorilor.
Referint e ^ ncruci sate: F14.1. – F14.6.
Fluxuri alternative [A]:
[A1] Operatorul a introdus de dou a ori acela si furnizor.
1. Sistemul a  seaz a mesaj de eroare, oferindu-i posibilitatea operatorului de a introduce
alt furnizor.
2. Sistemul nu memoreaz a valoarea duplicat a.
3. Fluxul continu a cu pasul doi din
uxul principal.
[A2] Datele introduse de operator sunt incorecte din punct de vedere semantic.
1. Sistemul a  seaz a mesaj de eroare.
2. Sistemul nu memoreaz a schimb arile efectuate de operator.
3. Fluxul continu a cu pasul doi din
uxul principal.
[A3] Operatorul nu con rm a salvarea modi c arilor f acute asupra furnizorilor.
1. Sistemul nu salveaz a modi c arile f acute de operator asupra furnizorilor.
2. Sistemul a  seaz a lista init ial a de furnizori.
3. Se ^ nchiei
uxul principal.
Flux principal:
30

Procesul de dezvoltare al aplicat iei Descrierea cazurilor de utilizare
Operator Sistem
1. Cere actualizare furnizori.
2. A  seaz a furnizorii existent i.
3. Introduce un furnizor nou.
4. Veri c a datele introduse.[A1]
5. A  seaz a lista complet a cu furnizori.
6. Modi c a datele unui furnizor existent.
7. Veri c a datele introduse.[A2]
8. Actualizeaz a lista cu furnizori.
9. S terge un furnizor.
10. Actualizeaz a lista cu furnizori.
11. Cere vizualizarea datoriilor.
12. A  seaz a datoriile c atre acest furnizor.
13. Cere vizualizarea pl at ilor efectuate
c atre furnizorul speci cat.
14.A  seaz a pl at ile c atre acest furnizor.
15.Cere salvarea modi c arilor
efectuate.[A3]
16. Salveaz a modi c arile f acute.
17. A  seaz a mesaj de salvare cu succes.
Tabela 3.14 : Fluxul principal, actualizare furnizori
31

Procesul de dezvoltare al aplicat iei Diagrama cazurilor de utilizare
3.3 Diagrama cazurilor de utilizare
Figura 3.1 : Diagrama cazurilor de utilizare
32

Procesul de dezvoltare al aplicat iei Diagrame de activit at i
3.4 Diagrame de activit at i
Diagrama de activit at i a cazului de utilizare Comand a
nou a
Figura 3.2 : Diagrama de activit at i: Comand a nou a
33

Procesul de dezvoltare al aplicat iei Diagrame de activit at i
Diagrama de activit at i a cazului de utilizare Vizua-
lizarea facturilor
Figura 3.3 : Diagrama de activit at i: Vizualizarea facturilor
34

Procesul de dezvoltare al aplicat iei Diagrame de activit at i
Diagrama de activit at i a cazului de utilizare Modi -
carea unei facturi
Figura 3.4 : Diagrama de activit at i: Modi carea unei facturi
35

Procesul de dezvoltare al aplicat iei Diagrame de activit at i
Diagrama de activit at i a cazului de utilizare Recept ia
unei facturi
Figura 3.5 : Diagrama de activit at i: Recept ia unei facturi
36

Procesul de dezvoltare al aplicat iei Diagrame de secvent e
3.5 Diagrame de secvent e
Diagrama de secvent e pentru cazul de utilizare
Comand a nou a
Figura 3.6 : Diagram a de secvent e – Comand a nou a
37

Procesul de dezvoltare al aplicat iei Diagrame de secvent e
Diagrama de secvent e pentru cazul de utilizare
Recept ia unei facturi
Figura 3.7 : Diagram a de secvent e – Recept ie factur a
38

Procesul de dezvoltare al aplicat iei Diagrame de secvent e
Diagrama de secvent e pentru cazul de utilizare
Efectuarea unei pl at i
Figura 3.8 : Diagram a de secvent e – Plat a facturi
39

Procesul de dezvoltare al aplicat iei Diagrama de clase
3.6 Diagrama de clase
Figura 3.9 : Diagrama de clase
3.7 Proiectarea bazei de date
O baz a de date reprezint a un sistem proiectat ^ n vederea utiliz arii unui mecanism
organizat, ce ofer a funct ii de stocare, actualizare, accesare a datelor  si informat iilor.
Interog arile (Query) au rolul de a c auta informat ii ^ n baza de date cu ajutorul unor
criterii. Cea mai utilizata comand a din instruct iunile SQL este comanda SELECT,
40

Procesul de dezvoltare al aplicat iei Proiectarea bazei de date
aceasta are urmatoarea sintax a:
SELECT [DISTINCT] lista_coloane FROM tabel
[WHERE conditie1]
[HAVING conditie2]
[GROUP BY lista_coloane2 ]
[ORDER BY lista_coloane3 [ASC/DESC]]
Clauzele speci cate ^ n paranteze p atrate sunt opt ionale, ^ n nal aceast a comand a
a  seaz a coloanele speci cate ^ n clauza SELECT din tabelul speci cat ^ n clauza FROM,
av^ and restrict iile din clauzele WHERE  si HAVING.
Tabelele au rolul cel mai important deoarece ^ n ele se stocheaz a toate informat iile din
baza de date.
Figura 3.10 : Adaugare tabel ^ n Microsoft SQL Server
Tabelele, ^ n Microsoft SQL Server, se pot crea prin click dreapta pe Tables + New
Table sau prin urm atoarea comanda:
CREATE TABLE [dbo.][nume_tabel]
([nume_coloana] [tip_data] NULL/NOT NULL);
Rapoarete (Reports) au rolul de a prelua informat ii din baza de date pentru a putea
tip arite.
Formularele (Forms) sunt destinate introducerii sau vizualizarii datelor ^ n tabelele ba-
zei de date  si reprezint a interfat a cu utilzatorul s au.
3.7.1 Tabele  si relat ii ^ ntre tabele
^In acest subcapitol, ecare tabel din baza de date va detaliat^ mpreun a cu relat iile
dintre acestea  si tipurile ec arei coloane.
41

Procesul de dezvoltare al aplicat iei Proiectarea bazei de date
O cheie primar a nu admite valoarea null, este unic a ^ ntr-un tabel  si reprezint a c^ ampul
sau combinat ia de c^ ampuri care identi c a ^ n mod unic ecare ^ nregistrare din acel
tabel.
Cheia str ain a stabile ste o relat ie ^ ntre dou a coloane, admite valori duplicat  si un tabel
poate avea mai multe chei str aine. Tabelul care cont ine cheia str ain a se nume ste tebel
copil, iar tabelul care cont ine coloana la care se face referint a se nume ste tabel p arinte.
Furnizor
IdFurnizor – uniqueidenti er, not null (cheie primar a)
DFurnizor – nvarchar(50), not null
Localitate – nvarchar(50), not null
Adres a – nvarchar(50), not null
CotaTVA
CotaTVA – int, not null
UM
Um – nvarchar(50)
Produs
IdProdus – uniqueidenti er, not null (cheie primar a)
DProdus – nvarchar(50), not null
Um – nvarchar(50), not null (cheie str ain a – tabelul p arinte este UM)
CotaTVA – int, not null (cheie str ain a – tabelul p arinte este CotaTVA)
Stocabil – bit
Pret  v^ anzare – money, not null
IdFurnizor – int, not null (cheie str aina – tabelul p arinte este Furnizor)
Trezorerie
IdTrezorerie – uniqueidenti er, not null (cheie primar a)
DTrezorerie – nvarchar(50), not null
Cont – nvarchar(50), not null
Moneda – nvarchar(50), not null
FacturareAchizit ie
IdFacturareAchizitie – uniqueidenti er, not null (cheie primar a)
NrDocument – int, not null
DataDocument – date, not null
DataIntregistrarii – date, not null
IdFurnizor – int, not null (cheie str ain a – tabelul p arinte este Furnizor)
FacturareAchizit ieDetaliu
IdFacturareAchizitieDetaliu – uniqueidenti er, not null (cheie primar a)
Nrc – int, not null
PretAchizitie – money, not null
Cantitate – decimal, not null
CotaTVA – int, not null
Valoare – money, not null
42

Procesul de dezvoltare al aplicat iei Proiectarea bazei de date
ValoareTVA – money, not null
IdProdus – int, not null (cheie str ain a – tabelul p arinte este Produs)
IdFacturareAchizitie – int, not null (cheie str ain a – tabelul p arinte este FacturareAchi-
zitie)
Recept ie
IdReceptie – uniqueidenti er, not null (cheie primar a)
NrDocument – int, not null
DataDocument – date, not null
Recept ieDetaliu
IdReceptie – int, not null (cheie str ain a – tabelul p arinte este Receptie)
Nrc – int, not null
Cantitate – money, not null
Valoare – money, not null
ValoareTVA – money, not null
IdFacturareAchizitieDetaliu – int, not null (cheie str ain a – tabelul p arinte este Factu-
rareAchizitieDetaliu)
Cheia primar a este constituit a din coloanele IdReceptie  si Nrc.
Plat a
IdPlata – uniqueidenti er, not null (cheie primar a)
TipDocument – nvarchar(50), not null
DataDocument – date,not null
IdTrezorerie – int, not null (cheie str ain a – tabelul p arinte este Trezorerie)
IdFurnizor – int, not null (cheie str ain a – tabelul p arinte este Furnizor)
NrDocument – int, not null
Plat aDetaliu
IdPlata – int,not null (cheie str ain a – tabelul p arinte este Plata)
Nrc – int, not null
Suma – money, not null
IdFacturareAchizitie – int, not null (cheie str ain a – tabelul p arinte este FacturareAchi-
zitie)
Cheia primar a este format a din coloanele IdPlata  si Nrc.
Operat ii
IdOperatie – uniqueidenti er, not null (cheie primar a)
DOperatie – nvarchar(50), not null
StocProduse
IdOperatie – int, not null (cheie str ain a – tabelul p arinte este Operatii)
IdAchizitieDetaliu – int, not null (cheie str ain a – tabelul p arinte este FacturareAchizi-
tieDetaliu)
Cantitate – money, not null
Data – date, not null
StocProduseArhiv a
Data – date, not null
43

Procesul de dezvoltare al aplicat iei Proiectarea bazei de date
IdAchizitieDetaliu – int, not null (cheie str ain a – tabelul p arinte este FacturareAchizi-
tieDetaliu)
Cantitate – money, not null
Datorii
IdFacturareAchizitie – int, not null (cheie str ain a – tabelul p arinte este FacturareAchi-
zitie)
ValoareFactura – money, null
Platit – money, null
Restant – money, null
Curier
Denumire – nvarchar(50), not null (cheie primar a)
PretKm – money, not null
Ora se
DOras – nvarchar(50), not null (cheie primar a)
Km – money, not null
3.7.2 Diagrama entit at i – asociere
Figura 3.11 : Structura bazei de date – Diagrama Entit at i Asociate
44

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
3.8 Proiectarea Form-urilor  si a DataSet-
urilor
Prin intermediul ferestrelor (lb.eng. Forms) sunt puse la dispozit ie clase speciali-
zate pentru crearea formularelor, utilizarea butoanelor, a casetelor de text sau a listelor
de derulare, etc. Construirea ferestrelor este u soar a, bazat a pe opt iunea selectare  si
plasare (lb. eng. "drag and drop"). Toate instrumentele pentru construirea Form-ului
se g asesc ^ n fereastra Toolbox.
^In cadrul ferestrelor din aplicat ia prezent a este des utilizat instrumentul DataGrid-
View, deoarece prin intermediul acestuia sunt a  sate datele din tabelele SGBD-ului
utilizat.
Cu ajutorul obiectelor DataSet  si DataAdapter sunt permise prelucr ari asupra
bazei de date, prelucr ari ce constau ^ n operat ii de selectare,  stergere, modi care sau
ad augare. Aceste obiecte gestioneaz a automat conexiunea cu sursa de date, astfel ^ ncat
legatura se face doar c^ and este necesar.
Un DataSet mai poate cont ine  si clase de tipul DataTable, DataColumn, DataRow sau
DataRelation. ^In general, un DataTable nu este legat la sursa de date, acesta joac a
rolul de tabel virtual ^ n baza de date. ^In obiectul de tip DataColumn se memoreaz a
numele  si tipul unei coloane, un obiect DataRow se memoreaz a o linie din DataTable,
iar constr^ angerile sunt folosite pentru a impune restrict ii asupra valorilor din coloane.
Un obiect DataSet reprezint a un set de tabele relat ionale, acesta obt ine date  si trimite
modi c ari ^ napoi c atre baza de date folosindu-se de serviciile oferite de DataAdapter.
Pentru a selecta, modi ca sau  sterge date din baza de date se folosesc comenzi precum
DeleteCommand, InsertCommand, SelectCommand, UpdateCommand.
Metoda de populare cu date a unei tabele dintr-un DataSet este Fill()  si se permite
speci carea numelui obiectului din DataSet ^ n care se depun datele, sau a numelui
tabelului existent ^ n DataSet. Dupa cum se speci c a  si ^ n numele acestei metode,
metoda Updare realizeaz a transferul modi c arilor efectuate asupra tabelei din DataSet
c atre baza de date cu care este ^ n leg atur a.
Pentru proiectarea DataSet-urilor aplicat iei Approvizionare s-a ales realizarea unui
DataSet pentru ecare fereastr a folosit a, deoarece este mai usor de utilizat. ^In conti-
nuare se va prezenta c^ ate o schem a logic a pentru a surprinde utilitatea ferestrelor  si
DataSet-urile ata sate ec arei ferestre ^ mpreun a cu componet a acestuia.
Actualizare/Vizualizare
Aceast a schem a surprinde ^ ntr-un mod detaliat procesul de actualizare  si vizua-
lizare care este prezent ^ n mai multe ferestre, cum ar ^ n actualizarea furnizorilor,
produselor, ofertelor, unitate de m asur a  si cota de TVA. ^In prim a faz a, la deschiderea
ferestrei de vizualizare / actualizare, utilizatorul nu se pot efectua modi c ari asupra ba-
zei de date. Singura opt iune accesabil a de c atre un utilizator, la momentul deschiderii
ferestrei, este de a vizualiza datele existente. Prin accesarea butonului de actualizare,
utilizatorul nu mai are restrict ii, el poate modi ca, adauga, chiar  si  sterge ^ nregistr ari
45

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
Figura 3.12 : Schema logic a – Vizualizare / Actualizare
din baza de date. Dup a ecare modi care, utilizatorul r amane tot in meniul de actu-
alizare. Singurul mod de a p ar asi actualizarea este prin a con rma sau a renunt a la
modi c arile f acute.
DataSet-ul asociat acestei scheme logice pentru cazul de utilizare Vizualizare /
Actualizare produse are urm atoarea component  a:
Figura 3.13 : DataSet-ul pentu fereastra vizualizare/actualizare produse
Acesta este compus dintr-un TableAdapter denumit Produs, care face leg atura cu
tabelul Produs din baza de date. Este nevoie de acest TableAdapter pentru a putea
vizualiza datele din sursa de date, dar  si pentru a le putea actualiza de ecare dat a
c^ and se dore sete actualizarea. Interogarea folosit a este una clasic a, este nevoie de un
singur tabel (tabelul Produs)  si sunt preluate toate coloanele acestuia pentru a a  sate
46

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
^ n fereastra utilizatorului.
SELECT IdProdus, DProdus, Um, CotaTVA, Stocabil, PretVanzare, IdFurnizor
FROM Produs
ORDER BY DProdus;
Pentru opt iunea de actualizare a produselor este nevoie de un TableAdapter cu furni-
zori, deoarece ecare produs apart ine unui furnizor, iar utilizatorul nu poate introduce
un produs f ar a s a speci ce furnizorul care det ine acel produs. Pe l^ ang a furnizor, un
produs mai cont ine o unitate de m asur a  si o cot a de TVA, iar pentru acestea s-au
introdus TableAdapter-ul UM  si TableAdapter-ul CotaTVA pentru a face leg atrua cu
baza de date  si pentru a putea alege o unitate de m asur a care exist a in baza de date,
la fel  si o valoare TVA. Interog arile folosite pentru aceste tabele sunt:
SELECT IdFurnizor, DFurnizor FROM Furnizor;
SELECT Um FROM UM;
SELECT CotaTVA FROM CotaTVA;
Comand a nou a
Urm atroarea schem a logic a este pentru fereastra care realizeaz a o comand a nou a.
^In aceast a schem a se evident iaz a opt iunile pe care le poate accesa utilizatorul aplicat iei.
Figura 3.14 : Schema logic a pentu fereastra comand a nou a
Odata cu deschiderea ferestrei pentru o comand a nou a, utilizatorul intr a in modul
de completare comand a. Aplicat ia ofer a posibilitatea modi c arii comenzii, aceast a
modi care se refer a at^ at la modi carea unui r^ and din comand a c^ at  si la ad augare sau
 stergere de produse.
Pentru a p ar asi aceast a fereastr a, utilizatorul are de ales ori prin memorarea comenzii
efectuate p^ an a ^ n momentul de fat  a, ori prin renunt area la acea comand a.
47

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
DataSet-ul asociat ferestrei pentru crearea unei noi comenzi cont ine trei obiecte.
Un TableAdapter pentru furnizori, deoarece pentru a alege un produs, trebuie ales
^ nt^ ai furnizorul care furnizeaz a acel produs. DataSet-ul mai cont ine un TableAdapter
pentru produse, deoarece utilizatorul trebuie s a ^  si aleaga o list a de produse din cele
furnizate de furnizori. S i, de asemenea, un obiect DataTable (FacturareDetaliu) care
va cont ine lista propriu-zis a de produse pe care le alege un utilizator la un moment
dat. Acest DataTable nu are leg atur a cu baza de date, el cont ine o colect ie de coloane,
de randuri  si constrangeri.
Figura 3.15 : DataSet-ul pentu fereastra comand a nou a
Interog arile pentru cele dou a DataTable sunt simple, cu ajutorul lor se obt in
informat ii dintr-un tabel (pentru DataTable Furnizor se obt in informat ii de tabelul
Furnizor, iar pentru DataTable Produs din tabelul Produs).
SELECT IdFurnizor, DFurnizor, CodFiscal, Localitate, Adresa FROM Furnizor;
SELECT IdProdus, DProdus, Um, CotaTVA, Stocabil, PretVanzare, IdFurnizor
FROM Produs ORDER BY DProdus;
Pentru realizarea DataTable-ul FacturareDetaliu s-a introdus c^ ate o coloan a cu un  si
un tip de dat a. Realizarea acestui obiect a fost pentru a memora datele care se introduc
de ecare dat a cand de acceseaz a comand a nou a,  si s-a ales DataTable deoarece dup a
ecare renunt are sau con rmare, acest tabel va  sters din memorie ca s a e gol pentru
48

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
o nou a comand a. Structura acestuia este urm atoarea (nume coloan a  si tipul de dat a):
.Nrc – System.Int32
.DProdus – System.String
.PretAchizitie – System.Decimal
.UM – System.String
.Cantitate – System.Decimal
.CotaTVA – System.Int32
.Valoare – System.Decimal (aceast a coloana are  si formul a de calcul: PretAchizi-
tie*Cantitate)
.ValoareTVA – System.Decimal (formula de calcul: Valoare*CotaTVA/100)
.IdProdus – System.Int32
.IdAchizitieDetaliu – System.Int32
Majoritatea coloanelor se completeaz a automat din baza de date sau se completeaz a
automat prin formula de calcul dup a ce utilizatorul ^  si alege un produs. El nu poaate
s a modi ce ^ n comand a dec^ at cantitatea de produs pe care o dore ste.
Vizualizarea recept iilor
Schema logic a pentru vizualizarea recept iilor prezint a aspecte semni cative ^ n ve-
derea ^ nt elegerii utiliz arii sistemului.
Figura 3.16 : Schema logic a pentru fereastra de vizualizare a recept iilor
Prin schema abordat a se evident iaz a aspectele generale pentru visualizarea recept iilor
 si a facturilor. Sistemul ofer a posibilitatea vizualiz ari tuturor recept iilor f acute pentru
o anumit a factur a, dar a  seaz a  si facturile recept ionate part ial sau nerecept ionate.
DataSet-ul ata sat acestei scheme are urm atoarea component  a:
49

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
Figura 3.17 : DataSet-ul asociat ferestrei de vizualizare a recept iilor
Cele dou a obiecte TableAdapter FacturareAchizitie  si FacturareAchizitieDetaliu
sunt componente ce se reg asesc  si ^ n DataSet-ul pentru vizualizarea facturilor. Aceste
obiecte fac posibil a a  sarea facturilor la modul general prin data ^ nregistr arii, denumi-
rea furnizorului  si valoarea total a a facturii, dar  si a  sarea ^ n detaliu a ec arei factur a
prin component a acesteia.Interog arile folosite pentru a  sarea facturilor sunt:
SELECT f.IdFacturareAchizitie, f.NrDocument, fact.DataDocument,
f.DataInregistrarii, f.IdFurnizor, Furnizor.DFurnizor,
SUM(fDet.Valoare) AS TotalValoare, SUM(fDet.ValoareTVA) AS TotalTVA
FROM Furnizor INNER JOIN
FacturareAchizitie AS f ON Furnizor.IdFurnizor =
f.IdFurnizor INNER JOIN FacturareAchizitieDetaliu AS fDet
ON f.IdFacturareAchizitie = fDet.IdFacturareAchizitie
GROUP BY f.IdFacturareAchizitie, f.NrDocument, f.DataDocument,
f.DataInregistrarii, f.IdFurnizor, Furnizor.DFurnizor
ORDER BY f.DataDocument DESC, f.NrDocument DESC
SELECT fDet.IdFacturareAchizitieDetaliu, fDet.Nrc, fDet.PretAchizitie,
fDet.Cantitate, fDet.CotaTVA,
fDet.Valoare, fDet.ValoareTVA, fDet.IdProdus, fDet.IdFacturareAchizitie,
Produs.DProdus, Produs.Um, Produs.Stocabil
FROM FacturareAchizitieDetaliu AS fDet INNER JOIN
Produs ON fDet.IdProdus = Produs.IdProdus
ORDER BY fDet.IdFacturareAchizitie, fDet.Nrc
Tabelele Receptie  si ReceptieDetaiu sunt realizate pentru a a  sa recept iile la modul ge-
neral reprezentate prin data recept iei, num arul documentului  si pret ul total al recept iei,
50

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
dar  si a  sarea ^ n detaliu a ec arei recept ii.
SELECT SUM(r.Valoare) AS TotalValoare, SUM(r.ValoareTVA) AS TotalTVA,
Receptie.IdReceptie, Receptie.NrDocument, Receptie.DataDocument,
fDet.IdFacturareAchizitie
FROM Receptie INNER JOIN ReceptieDetaliu AS r ON Receptie.IdReceptie =
r.IdReceptie INNER JOIN FacturareAchizitieDetaliu AS fDet ON
r.IdFacturareAchizitieDetaliu = fDet.IdFacturareAchizitieDetaliu
GROUP BY Receptie.IdReceptie, Receptie.NrDocument,
Receptie.DataDocument, fDet.IdFacturareAchizitie
SELECT r.IdReceptie, r.Nrc, r.Cantitate, r.Valoare, r.ValoareTVA,
Produs.DProdus, Produs.Um, fDet.CotaTVA,
fDet.PretAchizitie, r.IdFacturareAchizitieDetaliu
FROM ReceptieDetaliu AS r INNER JOIN
FacturareAchizitieDetaliu AS fDet ON r.IdFacturareAchizitieDetaliu =
fDet.IdFacturareAchizitieDetaliu INNER JOIN
Produs ON fDet.IdProdus = Produs.IdProdus
DataSet-ul cuprinde un DataTable denumit Ramase ^ n care se a  seaz a lista de produse
care nu au fost recept ionate din factura selectat a, incluz^ and toate speci cat iile ec arui
produs. Structura coloanelor acestuia este urm atoarea (nume coloan a  si tipul de date
asociat):
.IdFacturareAchizitie – System.Int32
.Nrc – System.Int32
.Dprodus – System.String
.PretAchizitie – System.Decimal
.UM – System.String
.Cantitate – System.Decimal
.Valoare – System.Decimal
.ValoareTVA – System.Decimal
.CotaTVA – System.Int32
.IdFacturareAchizitieDetaliu – System.Int32
Recept ia unei facturi
^In continuare, este prezentat a schema logic a a ferestrei pentru recept ia unei facturi.
Prin aceast a schem a sunt puse ^ n evident  a opt iunile de care dispune utilizatorul ^ n
momentul recept iei.
Dup a vizualizarea facturilor, utilizatorul aplicat iei are posibilitatea de a recept iona
o factur a. ^In fereastra pentru recept ie de factur a este permis a modi carea datelor.
C^ ampul din tabel care poate modi cat este cantitatea unui produs recept ionat;
aceast a cantitate poate mai mic a sau egal a cu cantitatea din factur a.
Pentru a ^ nchide aceast a fereastr a este pus a la dispozit ie opt iunea de con rmare, dar
51

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
Figura 3.18 : Schema logic a pentru fereastra recept ia unei facturi
 si de renunt are. Astfel utilizatorul poate recept iona factura aleas a sau poate renunt a
la recept ia facturii selectate ^ n cazul ^ n care s-a produs o modi care nedorit a.
DataSet-ul acestei ferestre cont ine dou a obiecte TableAdapter, unul denumit Re-
ceptiiFacute  si cel alalt ReceptieDetaliu.
Figura 3.19 : DataSet-ul pentru fereastra recept ia unei facturi
Recept ia unei facturi presupune detectarea facturii de recept ionat, a  sarea datelor
din factur a  si con rmarea recept iei. Prin DataSet-ul ferestrei de recept ie a unei facturi,
se subliniaz a faptul c a seste necesar a o referint  a c atre factur a pentru a se putea realiza
recept ia. Leg atura ^ ntre factur a  si repect ia acesteia este pus a ^ n evident  a prin existent a
metodei parametrizate Fill.
Metoda Fill cont ine ^ n declarat ie un parametru marcat prin folosirea simbolului @,
care se modi c a de ecare dat a c^ and este apelat a metoda  si care realizeaz a transferul
52

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
unui parametru, ^ n cazul de prezent se trimite identi catorul unic al facturii pentru
care se realizeaz a recept ia.
Interogarea pentru realizarea obiectului TableAdapter ReceptieDetaliu are urm atoarea
structur a  si realizeaz a dispunerea facturii pentru care s-a solicitat recept ia cu toate
informat iile necesare: denumire produs, cantitatea de recept ionat, unitatea de m asur a,
TVA-ul, pret ul de achizit ie al unui produs, valoarea total a a facturii cu  si f ar a TVA.
SELECT fDet.IdFacturareAchizitieDetaliu, fDet.Nrc, fDet.PretAchizitie,
fDet.CotaTVA,fDet.Valoare, fDet.ValoareTVA,
fDet.IdFacturareAchizitie, fDet.IdProdus, Produs.DProdus,
Produs.Um, fDet.Cantitate, fDet.Cantitate AS CantMaxs
FROM FacturareAchizitieDetaliu AS fDet INNER JOIN
Produs ON fDet.IdProdus = Produs.IdProdus
WHERE (fDet.IdFacturareAchizitie = @Param1)
ORDER BY fDet.Nrc
Interogarea care furnizeaz a obiectul ReceptiiFacute se caracterizeaz a prin complexitate,
aceasta realizeaz a calculul recept iilor existente pentru o anumit a factur a speci cat a.
Este o interogare parametrizat a  si are urm atoarea sintax a:
SELECT fDet.IdFacturareAchizitieDetaliu, ReceptieDetaliu.Cantitate
FROM ReceptieDetaliu INNER JOIN FacturareAchizitieDetaliu AS fDet ON
ReceptieDetaliu.IdFacturareAchizitieDetaliu = fDet.IdFacturareAchizitieDetaliu
WHERE (fDet.IdFacturareAchizitie = @Param1)
Efectuarea unei Pl at i
Figura 3.20 : Schema logic a pentru fereastra efectuarea unei pl at i
Prin aceast a schem a logic a sunt evident iate act iunile de care dispune utilizatorul ^ n
momentul realiz arii unei pl at i. Dup a deschiderea ferestrei, prima opt iune este de a
53

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
alege un furnizor pentru a face posibil a plata. Urm atorul pas este de a alege lista de
facturi care urmeaz a a pl atite. Pentru ecare factur a, utilizatorul are posibilitatea de
a modi ca suma de plat a. ^Inchiderea acestei ferestre se realizeaz a prin dou a metode,
ori este efectuat a plata  si se salveaz a facturile pl atite, ori se renunt  a la efectuarea pl at ii.
Figura 3.21 : DataSet-ul asociat ferestrei Efectuarea unei pl at i
DataSet-ul asociat acestei ferestre ^ nglobeaz a trei obiecte de tip TableAdapter  si un
obiect DataTable. TableAdapter-ul Furnizor este conceput pentru a permite vizualiza-
rea furnizorilor. Obiectul Datorii memoreaz a, dup a cum speci c a  si numele acestuia,
datoriile c atre ecare furnizor. Prin intermediul trezoreriei se realizeaz a schimbul mo-
netar.
Interog arile care au generat aceste obiecte din DataSet au urm atoarea structur a:
SELECT IdFurnizor, DFurnizor, CodFiscal, Localitate, Adresa
FROM Furnizor
ORDER BY DFurnizor;
SELECT Datorii.IdFacturareAchizitie, f.NrDocument, f.DataDocument,
SUM(Datorii.ValoareFactura) AS Valoare, SUM(Datorii.Platit) AS Platit,
0 AS Restant
FROM Datorii INNER JOIN FacturareAchizitie AS f ON
Datorii.IdFacturareAchizitie = f.IdFacturareAchizitie
GROUP BY Datorii.IdFacturareAchizitie, f.NrDocument, f.DataDocument
ORDER BY f.DataDocument, f.NrDocument;
SELECT IdTrezorerie, DTrezorerie, Cont, Moneda
FROM Trezorerie;
DataTable-ul Plata a fost realizat pentru a putea gestiona facturile ce urmeaz a a
54

Procesul de dezvoltare al aplicat iei Proiectarea Form-urilor  si a DataSet-urilor
pl atite. Acesta are urm atoarea structur a (nume coloan a  si tipul de date asociat):
.Nrc – System.Int32
.NrFactura – System.Int32
.DataFactura – System.DateTime
.Suma – System.Decimal
.IdFactura – System.Int32
.SumaMaxima – System.Decimal
55

Capitolul 4
Implementare
Implementarea aplicat iei Approvizinare s-a realizat ^ n mediul de dezvoltare inte-
grat Microsoft Visual Studio Community 2017, folosind limbajul de programare C#
 si utiliz^ and Microsoft SQL Server pentru a memora baza de date necesar a stoc arii
informat iilor utilizate ^ n aplicat ie.
De ecare dat a cand se alege crearea unui program nou, se genereaz a automat clasa
Program.cs care cont ine o metoda, metoda main care lanseaz a in execut ie fereastra
principal a a aplicat iei.
Figura 4.1 : Fereastra pricnipal a
Aceast a fereastr a este format a din meniul principal, care este alc atuit din opt iuni ^ n
vererea realiz arii aprovizion arii  si numele aplicat iei.
FacturareAct.cs reprezint a clasa asociat a form-ului FacturareAct care realizeaz a edita-
rea unei comenzi noi, salvarea acesteia  si modi carea unei facturi.
56

Implementare Implementare
Figura 4.2 : FacturareAct.cs
Funct ia adaugaInregistrareComenzi() realizeaz a ad augarea unei ^ nregistr ari ^ n ta-
belul FacturareAchizitie din baza de date. Aceast a act iune se realizeaz a prin execut ia
interog arii din variabila cmd.CommandText. Informat iile care se introduc ^ n baza de
date sunt preluate din interfat  a.
Variabilele con  si cmd sunt variabile globale,con realizeaz a conexiunea cu baza de
date, iar prin intermediul variabilei cmd se transmit comenzi SQL prin care se obt in
informat ii din sursa de date. Aceste variabile se declar a ^ n felul urm ator:
private SqlConnection con = new SqlConnection();
private SqlCommand cmd = new SqlCommand();
57

Implementare Implementare
Figura 4.3 : Funct ia de ad augare a unei ^ nregistr ari ^ n comand a
Figura 4.4 : Facturare.cs
Facturare.cs este clasa pentru fereastra care a  seaz a facturile^ nregistrate^ n sistem.
Prin intermediul acesteia, utilizatorul are posibilitatea de a ad auga o comand a nou a,
de a modi ca o factur a sau poate  sterge o factur a.
Funct ia btnStergeFactura Click(object sender, EventArgs e) este apelat a prin ap asarea
butonului S terge factura din fereastra Facturare.cs. ^In aceast a funct ie sunt declarate
vaariabilele con  si cmd pentru realizarea conexiunii cu baza de date  si pentru a trimite
informat ii c atre aceasta.
cmd.ExecuteNonQuery();
Aceast a comand a este folosit a pentru a executa comanda SQL memorat a ^ n variabila
cmd. Funct iile Open()  si Close() se apeleaz a pentru a deschide si a ^ nchide conexiunea
58

Implementare Implementare
Figura 4.5 : Funct a care realizeaz a  stergerea unei facturi
cu baza de date.
Figura 4.6 : ReceptieAct.cs
ReceptieAct.cs este clasa prin care se efectueaz a recept ia unei facturi. Aceast a fereastr a
a  seaz a o factur a selectat a de utilizator pentru a memora o recept ie si ofer a posibilitatea
modi c arii unor cantit at i de recept ionat a unor produse.
Funct ia scadeReceptiiFacute() realizeaz a modi carea datelor din fereastr a dac a factura
selectat a de utilizator a suferit  si alte recept ii anterioare, oferind spre vizualizare doar
produsele r amase de recept ionat.
Plata.cs reprezint a clasa ata sat a ferestrei prin care se efectueaz a o plat a, iar Pla-
59

Implementare Implementare
Figura 4.7 : Funct ia prin care se actualizeaz a o recept ie
taVizualizare.cs clasa pentru vizualizarea pl at ilor.
Figura 4.8 : Plata.cs  si PlataVizualizare.cs
Funct ia facturiRestante() realizeaz a calculul facturilor pentru care nu s-a realizat plata
pentru a putea a  sate ^ n fereastra cu efectuarea pl at ilor. Aceast a funct ie are nevoie
de variabilele con  si cmd pentru a manipula datele din baza de date. Init ial se reali-
zeaz a conexiunea cu sursa de date prin intermediul variabilei con.ConnectionString.
Prima comand a SQL este de a  sterge ^ nregistr arile din tabelul Datorii pentru a putea
introduce datoriile furnizorului selectat de utilizator prin a doua instruct iune SQL.
Ultima instruct iune SQL introduce ^ n tabelul Datorii suma achitat a c atre furnizorul
selectat.
Ultima linie de cod, apelarea metodei Fill s-a realizat pentru a expune modi c arile rea-
lizate la nivelul bazei de date dup a ecare select ie de furnizor, aceast a metod a a  seaz a
datoriile furnizorului selectat de utilizator.
60

Implementare Implementare
Figura 4.9 : Funct ie pentru calculul facturilor restante
Figura 4.10 : StocProduse.cs
StocProduse.cs reprezint a clasa cu ajutorul c areia se realizeaz a vizualizarea sto-
cului de produse la o anumit a dat a. Prin intermediul acestei clase se realizeaz a at^ at
calculul stocului c^ at  si arhivarea stocului calculat.
Metoda adaugaStocCalculatInArhiva() realizeaz a ad augarea stocului de produse cal-
culat pentru o anumit a dat a calendaristic a ^ n arhiva acestora.
61

Implementare Implementare
Figura 4.11 : Metoda pentru ad augarea unei arhive
62

Capitolul 5
Concluzii
Lucrarea a prezentat proiectarea  si implementarea aplicat iei Approvizionare care
urm are ste procesul de aprovizionare. Aplicat ia prezint a caracteristici comune altor
aplicat ii de aprovizionare, ea ind u sor de ^ nt eles  si de utilizat. A fost implemen-
tat a cu ajutorul limbajului de programare C#  si prin intermediul IDE Visual Studio
Community 2017.
Scopul principal al aplicat iei este s a faciliteze achizit ia de bunuri de la un fur-
nizor oferindu-i posibilitatea utilizatorului s a aleag a ce produse dore ste astfel ^ nc^ at
cheltuielile s a e c^ at mai mici.
Approvizionare este o aplicat ie destinat a rmelor care au nevoie s a se t in a la curent
cu nout at ile de pe piat  a, s a vizualizeze ^ n permanent  a ofertele furnizorilor  si s a realizeze
comenzi de produse, av^ and principalul scop mic sorarea cheltuielilor  si obt inerea unui
venit c^ at mai mare.
Principalele etape ale aplicat iei sunt:
1.Ofeta, unde utilizatorul poate compara ofertele de la toti furnizorii existent i ^ n
aplicat ie;
2.Comanda care ^ i ofer a utilizatorului posibilitatea de a lista produsele preferate  si
de a le comanda de la furnizori;
3.Factura, care se realizeaz a odat a ce se ^ nregistreaz a o comand a;
4.Recept ia produselor, aplicat ia t ine evident a recept iilor f acute, ofer a posibilitatea
utilizatorului s a recept ioneze toat a comanda sau doar o parte din aceasta;
5.Efectuarea pl at ilor, de asemenea, aplicat ia t ine evident a pl at ilor efectuate de
companie;
6.Vizualizarea stocului de produse disponibil la o anumit a dat a;
7.Actualizarea resurselor disponibile in baza de date, produse, furnizori, unitate de
masur a, TVA  si trezorerie.
63

Bibliogra e
[1] Constantin G al at an, Susuna G al at an, Curs de C#: Programare ^ n Visual Studio
2008, Editura L&S Info-mat, Bucure sti, 2008;
[2] Ross Mistry, Misner Stacia, Introducing Microsoft SQL Server 2012,Microsoft
Press,Redmond, Washington,2012;
[3] Introducere ^ n limbajul C#  si .NET Framework
(https://msdn.microsoft.com/en-us/library/z1zx9t92.aspx )
[4] Site-ul o cial bcAchizit ii
(http://www.bcmanager.ro/sites/default/ les/bcAchizitii.pdf)
[5] Site-ul o cial Microsoft Dynamics NAV
(https://www.microsoft.com/en-us/dynamics365/nav-overview)
[6] Pas cu pas Microsoft Visual C#
(https://ptgmedia.pearsoncmg.com/images/9780735681835/samplepages/9780735681835.pdf)
[7] Site-ul o cial SeniorERP
(http://www.seniorerp.ro)
64

Similar Posts