Aplica ție pentru managementul stocurilor într-un depozit [600385]
Universitatea POLITEHNIC Ă Bucure ști
Facultatea Automatică și Calculatoare
Departamentul Automatică și Informatică Industrială
LUCRARE DE LICENȚĂ
Aplica ție pentru managementul stocurilor într-un depozit
Coordonator : Absolvent: [anonimizat].dr.ing. Mihnea Moisescu Pașcu Alexandru Constantin
2018
2 CUPRINS
1. Introducere ………………………….. ………………………….. ………………………….. …………………….. 3
1.3 Prezentare pe scurt a capitolelor ………………………….. ………………………….. ………………….. 6
2. Descrierea problemei abordate ………………………….. ………………………….. …………………………. 7
2.1 Descrierea problemei abordate ………………………….. ………………………….. …………………… 7
2.2 Studiu asupra realizărilor similare din domeniu ………………………….. ………………………. 15
2.3 Stabilirea funcționalităților sistemului/aplicației ………………………….. ……………………… 17
3. Analiza metodelor de rezolvare a problemei și selectarea solu ției tehnice …………………….. 19
3.1 Descrierea tehnologiilor disponibile ………………………….. ………………………….. …………. 19
3.2 Alegerea tehnologiilor utilizate ………………………….. ………………………….. ………………… 20
4. Considerente legate de dezvoltarea aplica ției ………………………….. ………………………….. …… 26
4.1 A rhitectura aplica ției ………………………….. ………………………….. ………………………….. …… 26
4.2 Implementarea aplicației ………………………….. ………………………….. ………………………….. 30
4.3 Implementarea interfeței ………………………….. ………………………….. ………………………….. . 35
5. Studiu de caz/scenariu de utilizare ………………………….. ………………………….. ………………….. 38
CONCLUZII ………………………….. ………………………….. ………………………….. ………………………. 48
BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. …………………. 49
3 1. Introducere
1.1 Scopul si obiectivele lucr ării de licen ță
Un sistem automatizat contribuie la administrarea eficient ă a stocurilor de componente
hardware dintr -o companie. Tocmai de aceea, am optat pentru alegerea acestei teme ca și lucrare
de licen ță. Datorit ă unui astfel de sist em, angaja ților li se u șureaz ă munca în ceea ce prive ște
vizualizarea produselor din stoc, vizualizarea clien ților care le cump ără, a furnizorilor care le
vând, vizualizarea facturilor de v ânzare sau cum părare etc.
O aplica ție pentru managementul stocuril or unei companii producătoare de componente
hardware, este util ă pentru ținerea eviden ței corecte a produselor și, de asemenea, în distribuirea
corespunz ătoare c ătre clien ți. Pentru a men ține clien ții satisf ăcuți, pentru a preveni ca unele
produse s ă se deterioreze sau pentru a elimina diverse gre șeli ce ar putea fi costisitoare este
important ă utilizarea unui software de gestiune. Optimizarea sistemului de gestiune a stocurilor
reprezint ă pilonul principal al respectivei afaceri, pentru c ă ajută la economisirea timpului și
efortului de a lucra manual cu facturile sau stocurile din cadrul companiei .
Prin intermediul unui sistemului informatic, toate datele din cadrul companiei sunt
înregistrate în baza de date. Astfel, toate companiile, institu țiile, f irmele utilizeaz ă bazele de
date pentru organizare. Unul dintre numeroasele avantaje ar fi: datele se pot centraliza cu
ușurință și, în același timp pot fi găsite într -un mod rapid și eficient .
Oricât de complexe ar fi stocurile sau oric ât de mare ar fi n umărul de produse ce urmeaz ă
să fie distribuite, o aplica ție pentru managementul stocurilor într-un depozit va contribui la
răspunderea în mod corespunz ător a așteptărilor clien ților și va aduce un plus de valoare
organiza ției. Sistemul de gestionare se poate extinde pentru a permite administrarea c ât mai
eficient ă a informa țiilor necesare în procesul de v ânzare -cump ărare.
Software -ul pentru managementul stocurilor prezint ă avantaje precum : eficientizarea
forței de v ânzare și prin urmare cre șterea cereri i din partea clien ților, centralizarea produselor,
a facturilor de v ânzare, respectiv cump ărare sau cre șterea productivit ății în privin ța angaja ților
care utilizeaz ă aplica ția.
4 1.2 Descrierea domeniului din care face parte tema de licență
Fiind într-o continu ă dezvoltare, tehnologia le permite companiilor produc ătoare de
diverse dispozitive (care contribuie la conectarea oamenilor) s ă fie printre cele mai profitabile.
Unitățile centrale de procesare, spa țiile de stocare sau memorii reprezint ă, de fapt,
componentele hardware ale unui calculator. Acest lucru este definit ca ma șina pe care este rulat
un sistem de operare ce are ata șate mai multe periferice precum : tastatur ă, mouse, imprimant ă
etc. Tot aici se pot include și securitatea electronic ă, servere le sau dispozitivele de stocare
utilizate în centrele de date ale mai multor corpora ții. Fiind nefolositoare una f ără alta,
componentele de tip hardware și software stocheaz ă și modific ă date împreun ă.
Piața PC -urilor a crescut rapid și de aceea cele mai multe companii produc și vând cât
mai multe componente hardware și software. O parte din companii sunt fabricante de
componente hardware, au propria lor marca, iar produsele lor sunt destinate v ânzării. O alt ă
parte se ocup ă doar cu dezvoltarea de aplica ții software. Intel și AMD fabric ă procesoare de
calculator și diverse echipamente high -end. Microsoft și Google sunt produc ătoare de software.
Este important ca o companie ce se ocup ă cu sistemele informatice (PC -uri, servere,
imprimante, notebook -uri etc) să aibă câteva din urm ătoarele tr ăsături: satisfacerea nevoilor
clien ților, fidelizarea clien ților existen ți, adaptarea la preferin țele clien ților printr -o calitate
bună a execu ției, tehnologie de ultim ă genera ție etc.
Între companiile de hardware exist ă o concuren ță destul de intens ă. Un motiv ar fi faptul
că pe pia ța PC -urilor au loc presiuni mari asupra pre țurilor deoarece, produsele au devenit în
mare parte m ărfuri. Un alt motiv ar fi existen ța pe pia ță a unor produse inovatoare, spre
exemplu: desktop -uri ultra -mini, tablete etc. Totu și, corpora țiile de hardware cele mai de succes
se afl ă în str ăinătate. Datorit ă acestui lucru, un procent enorm este reprezentat de v ânzările
interna ționale. Cele mai mari companii produc ătoare de componente hardware sunt în China și
Japonia. În acest domeniu, sunt tot mai mul ți produc ători ce fabric ă produse peste grani ță și
permite externalizarea lor. Produc ția o fac în China sau Filipine pentru că munca este mai pu țin
costisitoare aici, iar design -ul are loc în Statele Unite.
Compania ofer ă clien ților avantaje precum fiabilitate, pre țuri rezonabile, durabilitate a
produselor. Computerele (PC sau Mac) prezint ă o func ționalitate maxim ă, contribuind la
oferirea celei mai bune experien țe pentru clien ți. Pentru unii din ace știa, func ționalitatea
înseamn ă un computer care s ă aibă cea mai mare memorie, o perioad ă mare de garan ție și să
fie c ât mai u șor de utilizat. Cel mai vizibil segment pentru pi ața de produse hardware îl
constituie pia ța PC -uri mai ales pentru c ă ele sunt di n ce în ce mai necesare la locul de muncă,
5 în școli, laboratoare, la domiciliu. Multe PC -uri au capacitatea de a înlocui stațiile de lucru
specializate și de a fi utilizate pentru redarea 3D sau editare video. Calculatoarele portabile
reprezintă o parte to t mai mare din piața calculatoarelor personale.
Perifericele sunt produse externe adăugate la computer, spre exemplu mouse, difuzoare,
stick de memorie, monitoare, scanere, imprimante. Există mai multe servere,spre exemplu
cutiile mari care țin Internetul împreună. Pe lângă serverele Web care transmit fi șierele HTML
și imaginile care apar pe ecran, există și servere de rețea locală ( LAN), servere de rețea WAN,
servere de mail, de fișiere, de baze de date etc. Atunci când doi „clienți” (calculatoare) sunt
conecta ți printr -o rețea este implicat și un server.
Principalii clien ți ai companiei sunt diferite întreprinderi mari, furnizori de servicii, dar
și întreprinderi de m ărime mic ă sau medie. Ei au nevoie de solu ții performante care s ă le aduc ă
satisfac ție și să le ușureze c ât mai mult munca acas ă sau la locul de munc ă. Inova ția este extrem
de important ă pentru realizarea acestui lucru. Pentru a fi stimulat ă trebuie menținute capacitǎțile
de dezvoltare internă cum ar fi actualizarea continu ă de anumite in strumente de ultim ă genera ție
monitorizate în func ție de oferta și cererea clien ților.
Organiza ția se ocup ă cu v ânzarea produselor c ătre clien ți și cump ărarea lor de la
furnizori. Componente hardware sunt cump ărate de la furnizor cu un anumit pre ț și sunt vândute
cu un pre ț mai mare clien ților pentru a ob ține profit. Bugetarea cifrei de afaceri a inventarului
este esen țială în planificarea pentru viitor, pentru profesioni știi IT. Acest lucru poate fi realizat
știind ce produse exist ă în stoc, nevoile de înlocuire a lor, perioada de garan ție.
Tot printr -un sistem automatizat, compania poate avea acces și la informa ții referitoare
la clien ții săi sau la furnizori . Ținând legătura clien ții și furniz orii se pot rezolva problemele
legate de calitatea produselor , defectele acestora dar și alte cereri sau oferte.
Într-un depozit, exist ă de obicei un num ăr mare de produse și tocmai de aceea este
necesar un sistem prin intermediul c ăruia acestea s ă poată fi găsite u șor de c ătre angaja ți.
Produsele sunt organizate, în general, pe rafturi și locuri. Atunci când un angajat caută un
anumit produs cerut de clienți, trebuie să verifice dacă acesta există în stoc și dacă da, pe ce loc
și raft se află. Tocmai de aceea, un software pentru gestiunea din cadrul unei companii t rebuie
sa aibă implementată o astfel de funcție pentru găsirea produselor oferind echipei de angaja ți
optimizarea inventa rului.
6 1.3 Prezentare pe scurt a capitolelor
În primul capitol al acestei lucr ări au fost descrise motivele pentru care a fost aleasă
aceast ă temă ca și lucrare de licen ță precum și obiectivele care vor urma sa fie atinse. Urm ătorul
subpunct al acestui capitol conține o descriere a domeniului hardware, a produselor ce se v ând
pe aceast ă piață, precum și a rela țiilor cu furni zorii si clien ții.
În al doilea capitol se va prezenta activitatea ce s e desfășoară în cadrul un ei companii
pentru vânzarea produselor hardware. Se va descri e modul în care angaja ții se ocup ă de
gestionarea produselor, adic ă vânzarea lor c ătre clie nți și achizi țioanarea de la furnizori.
Totodat ă va fi exemplificat și motivul pe ntru care angaja ții au nevoie de un sistem automatizat
pentru a își desfășura activitatea. Într-un alt subpunct al capitolului doi vor fi prezentate și alte
sisteme pentru gestionarea produ selor din cadrul altor companii . În al treilea subpunct urmeaz ă
să fie stabilite pe scurt obiectivele sistemului și anume: v ânzarea și cump ărarea produselor,
întocmirea facturilor de v ânzare (leg ătura cu clien ții) și de cump ărare (legatura cu furnizorii),
avizelor de transport a mărfii, vizualizarea stocurilor existente în depozit , eviden ța angaja ților
companiei (aceștia sunt și utilizatorii aplica ției).
Al treilea capitol va fi destinat descrierii tehnologiiilor utilizate pentru rezolvarea
problemei, g estionarea stocurilor companiei . În primul subpunct vor fi enumerate și prezentate
pe scurt câteva din tehnologiile disponibile pe pia ță pentru implementarea unui astfel de sistem.
Următorul subpunct va con ține tehnologiile care au fost alese și avantajele acestora.
Capitolul patru va prezenta arhitectura aplica ției, implementarea și testarea acesteia.
Arhitectura aplica ției va urm ări procesele prin care utilizatorul va trece prin cadrul sistemului.
Cu ajutorul diagramelor UML vor fi exemplificate aceste pr ocese și modul de execu ție. Ca și
diagrame se vor alege diagramele de stare pen tru fiecare obiect în parte, prez entarea stărilor
prin care trec ace stea. Implementarea aplica ției va conține proiectarea schemei bazei de date și
exemplificarea modului de lucr u în cadrul interfe ței. Testarea aplica ției va consta în validarea
câmpurilor d in interfa ță și tratarea erorilor .
Capitolul cinci va descrie utilizarea aplica ției. Se va prezenta modul de func ționare al
sistemului.
Concluziile vor enumera motivele pentru care un sistem automatizat este necesar pentru
organizarea eficient ă a activit ății companiei . Vor fi prezentate și câteva solu ții ulterioare de
dezvoltare al e aplica ției din punct de vedere al optimiz ării și al performan ței.
7 2. Descrierea problemei aborda te
2.1 Descrierea problemei abordate
În foarte multe întreprinderi, în timpul orelor de lucru, calculatoarele, serverele sunt
supuse unor presiuni destul de mari . Desktop -urile, laptop -urile, serverele și imprimantele sunt
printre cele mai folosite, deoarece sunt elemente esențiale în cadrul unei organizații. Acesta este
un motiv important pentru necesitatea administrării corecte a stocurilor în baz ă.
Monitorizarea și gestionarea sistemelor de securitate, rețelei de infrastructură,
telefoniei, serverelor ajută la alertarea angajaților în legătură cu potențiale accidente, în acest
fel evitând impactul asupra clienților. Echipa de angajați este responsabilă cu livrarea și
implementarea de soluții IT pentru o varietate de companii. Pentru serviciil e de teren, compania
asigură cel mai bun inginer care să rezolve un incident într -un timp destul de scurt. Toate datele
referitoare la incidentul produs sunt redirecționate către PDA -ul inginerului. Astfel sunt
furnizate informații despre incident în timp real. Vehiculele cu care se deplasează inginerii au
dispozitive de urmărire, și în acest fel pot găsi repede și ușor locația clientului și timpul de
sosire. Mentenanța și asistența IT asigură o rezolvare rapidă a problemelor pe care le întâmpină
clienții.
Compania trebuie să aibă un inventar al produselor deținute în stoc. Acesta este un task
destul de complex și necesită mult timp având în vedere că gestionarul trebuie să administreze
detaliile legate de componentele hardware, seria lor, garanția și mult e alte informații. Folosind
o bază de date pentru a stoca toate aceste detalii rezolvă multe probleme. Se vor putea accesa
ușor informații despre computerele din rețea, se pot găsi rapid variante de servicii prin care sunt
proiectate produse complete adapt ate cerințelor clienților.
Scopul unei baze de date care să conțină informații despre stocurile aflate în cadrul
companiei este foarte importantă, astfel încât se poate forma o viziune completă și actualizată
a componentelor rețelei. Accesând baza, utiliza torii vor afla exact categoria din care fac parte
dispozitivele respective sau ce este instalat pe fiecare dispozitiv în parte. Pentru orice interval
de timp dat, baza de date furnizează starea actuală a oricărui dispozitiv. Cel mai important
beneficiu al acestui inventar este faptul că salvează munca fizică. De fapt, cei mai multi oameni
spun că primele minute ale unui apel telefonic se pierd încercând să identifice profilul
componentelor hardware ce au probleme. Acest timp însă, poate fi folosit încercând direct
rezolvarea problemei. Organizarea stocurilor într -un sistem de management prin baza de date
are avantaje precum: controlarea redundanței, menținerea integrității informației,
8 restricționarea accesului la date astfel încât doar anumiți utilizatori p utând avea acces, etc.
Această bază de date are un administrator ce monitorizează performanța acesteia precum și
accesul utilizatorilor.
Cunoscând cerințele clienților, personalul din organizație poate anticipa mult mai bine
cererile de producție. Totodat ă, angajații vor beneficia și de o relație foarte bună cu clienții. Pe
baza unor rapoarte zilnice trimise către distribuitor, acesta reînoiește stocurile după cum este
necesar. Producătorul observă ce produse se vând și face tot posibilul să satisfacă ceri nțele
clienților săi.
Pentru un control adecvat al gestiunii stocurilor, este esențial să se țină evidența
vânzărilor. În mod tradițional, unele companii utilizează foi de calcul pentru a urmări gestiunea
stocurilor însă acest lucru cauzează marjă de eroa re. Pentru o gestionarea mai precisă și pentru
un control cât mai adecvat, este indicat să se utilizeze aplicații pe calculator, deoarce în acest
mod gestiunea poate fi urmărită într -un mod cât mai fiabil. Prin această modalitate, gestiunea
stocurilor se poate menține în mod metodic și cu actualizări în timp real. Atunci când un produs
este vândut, returnat sau adus în firmă pentru popularea stocului, conturile sunt actualizate în
toate sistemele în momentul în care are loc modificarea. În plus, este împie dicată pierderea
datelor din gestiune.
Gestiunea stocurilor în lanțul de distribuție urmărește următoarea secvență: solicitarea
de stocuri noi de la compania din sediul central; oficiul central emite comenzi de cumpărare
către vânzător ; furnizorul livrează bunurile; depozitul primește bunurile, apoi depozitează și
distribuie firmei; firma primește bunurile; bunurile sunt vândute clienților. Gestionarea
inventarului în lanțul de aprovizionare implică gestionarea cantităților fizice, precum și
costurile bunur ilor în fluxul lor prin lanțul de aprovizionare. În gestionarea prețurilor de cost
ale mărfurilor pe tot parcursul lanțului de aprovizionare, se folosesc mai multe metode de calcul
al costurilor: retail method (CMP) – metoda costului mediu ponderat, FIFO (primul intrat –
primul ieșit, și anume cele mai vechi elemente din stoc sunt primele vândute), LIFO (opusul
pentru FIFO, ultimul intrat – primul ieșit, și anume ultimele bunuri intrate in stoc sunt primele
vândute), metoda ultimului preț de achiziție, met oda Bottle Neck1.
Gestionarea stocurilor este un bun major care reprezintă un capital legat. Gestionarea
eficientă a acțiunilor permite, prin urmare, unei întreprinderi să se elibereze de capital.
Controlul eficient al stocurilor necesită întelegerea mixul ui de tipuri diferite de stocuri și
1BACKOFFICE, Basic Inventory Management Techniques For Better Businesses, Sep 27, 2016
9 recunoșterea cerințelor privind stocul respectiv. Acest lucru contribuie la păstrarea stocului la
un nivel rezonabil, echilibrând nevoia de surplus de aprovizionare cu necesitatea de a reduce
capitalul legat. Există patr u categorii principale de stoc sau inventar: materii prime și
componente (stocuri care sunt gata să fie utilizate în producție), lucrări în curs (bunuri
neterminate ce se află încă în producție), bunuri finalizate/produse finite (sunt gata să fie
folosite) , consumabile (stoc care va fi utilizat în exploatarea zilnică a afacerii și va trebui să fie
actualizat, spre exemplu: hârtia de copiator, tușul de imprimanta, etc.).
Există două abordări principale ale managamentului stocurilor:
– Managementul de stocare p eriodică: este potrivit pentru întreprinderile mici cu un
inventar mic și este mult mai ieftin decât sistemele electronice. Aceast ă metodă nu
este eficientă pentru companiile mari, deoarece stocarea fizică este consumatoare de
timp.
– Managamentul stocului p ermanent: se bazează pe sistemul electronic. Această
metodă este mai scumpă, însa oferă o indicație mai exactă și actualizată a nivelului
stocurilor și elimină riscul de eroare umană.
Gestionarea eficien tă, nu numai că economisește bani, dar îmbunătățește și fluxul de
numerar. Atunci când există un sistem solid de gestionare a stocurilor, se ș tie exact ce produs
există și pe baza vânzărilor, se va determina aproximativ perioada în care produsul respectiv va
fi epuizat. În acest mod, se poate înlocui la timp produsul.
Eficiența vânzărilor se bazează pe capacitatea comerciantului de a furniza bunurile
potrivite consumatorului, în calitatea corectă, în cantitatea potrivită, la locul și momentul
potrivit. Întregul proces de vânzare depinde de gestionarea eficie ntă a inventarului.
Administrarea stocurilor este o zona care diferențiază companiile , cu succes sau fără succes.
Controlul stocurilor nu este doar o problemă de gestionare a materialelor sau de
depozitare. Departamentele de achiziționare, primire, ingine rie, afișare și contabilitate
contribuie la corectitudinea metodelor și înregistrarea corectă a inventarului. Gestionarea
incorectă a stocurilor va contribui la întarzierea bunurilor către client, lipsa stocurilor,
achiziționarea unui inventar greșit și st ocarea unui inventar mult prea mare.
Inventarul reprezintă o lista detaliată a tuturor produselor din stoc. Un sistem de inventar
este setul de politici și controale care monitorizează nivelurile de inventar și determină ce
niveluri ar trebui menținute ș i când stocul ar trebui să fie completat. Obiectivele unei gestiuni
a stocurilor sunt: să se știe câte unitați trebuie comandate, flexibilitatea, menținerea unei
independențe a operațiunilor, variație în cererea de produse, garanție pentru timpul de livra re,
avantaj față de dimensiunea comenzii de achiziție, etc. Î n termeni uzuali, gestiunea reprezint ă
10 felul în care o companie își urmărește ș i admini strează stocurile (de materii prime, consumabile,
mărfuri, obiecte inventar, etc.). De exemplu, dacă gestiun ea din firmă necesită depozite mai
mari și costuri inutile de întreținere și supraveghere, este de fapt primul indiciu în luarea unor
decizii greșite în planificarea acesteia .
Uneori, stocurile sunt menținute la un nivel ridicat pentru a avea grijă de fl uctuațiile
cererii și de timp; în unele cazuri, sunt menținute de tedința de creștere a prețului produselor de
bază sau reducerea achiziției lor. Gestiunea acestor stocuri este un activ curent și este prezentat
în bilant la valoarea costului de achiziție. Una din definiții pentru acest inventar este aceea că
poate fi utilizată pentru a face referire la un total de elemente care sunt deținute pentru vânzare
în cursul normal al activității, fie sunt în curs de producție pentru vânzare. Gestiunea stocurilor
este o funcție de importanță centrală în firme sau companii care se ocupă cu vânzarea de produse
hardware. Îmbunătățirea disponibilității produselor și reducerea investițiilor totale în capitalul
de lucru este o forță pe care majoritatea managerilor trebuie să o susțină și să sprijine, prin
urmare, obiectivele firmelor de vânzare. Câteva dintre motivele pentru care administrarea
stocurilor în cadrul unei companii sau firme este importantă sunt: asigurarea continuității
activităților de vânzare prin furnizarea corectă și la timp a bunurilor, diferite variații în cererea
clienților, reducerea costului de deținere a inventarului prin utilizarea unei tehnici adecvate,
siguranța împotriva modificărilor de preț și inflație, variații în performanțele de funcționare,
profit față de reducerile preț/calitate, economie de transport.
Există și anumiți factori care conduc la un control scăzut al stocurilor. Acești factori
sunt:
-cumpărarea en -gross pentru a beneficia de reducere sau pentru a reduce costurile de
cumpărare atunci când achiziția de bunuri este mai mare comparativ cu
vânzarea/consumul, „over stocking”, și anume din cauza acestor motive poate duce la
un serviciu slab pentru clienți;
– anularea ordinelor de livrare și a livrarilor necorespunzătoare și neregulate poate
conduce la stocarea en -gross.
Procesul de gestionare a stocurilor se referă la procesul de determinare a cantității de
inventar pe care o companie ar trebui să o aibă în orice moment. Gestionarea eficientă a
stocurilor vizează menținerea echilibrului adecvat între satisfacția clientilor și profiturile
companiei.
Ideea este să asiguri produse suficiente cererii clientilor, fără a cheltui prea mult pentr u
a le obține. Procesul stocurilor necesită urmărirea nivelului lor, determinarea costului stocului,
calcului costului legat de transport, manipulare și stocare, analiza datelor anterioare privind
11 vânzările. Procesul este afectat însă, de numeroși factori externi, cum ar fi perioada din an,
starea economiei și cerințele de schimbare ale publicului, precum și alți factori interni ca
dimensiunea depozitului, relația cu furnizorii și capitalul disponibil2.
Înainte de a presupune că sistemul funcționează efici ent, este o idee bună să ne punem
urmatoarele întrebări:
– În mod regulat, aveți clienți care comandă componente hardware care nu se află în
stoc?
– Avem depozitul aglomerat cu inventar/bunuri în exces care se deplasează încet și
care ocupă spațiu de stocare?
– Deseori deținem o cantitate mare de produse nevândute?
Menținerea cantității adecvate de stocuri este un act delicat de echilibrare. Dacă stocul
este prea mic, există riscul de a dezamăgi clienții sau de a deteriora imaginea companiei.
Consumatorii onli ne își doresc să comande, astfel încât să își satisfacă nevoile. Mulți au
arătat că sunt dispuși să plătească prețuri mai mari pentru transport în aceeași zi, sau pentru
preluarea din firmă pentru a se asigura că își obțin produsul cât mai repede posibil. Pe de altă
parte, dacă stocul este prea mare, există riscul unui stoc mort sau „deadstock” care ar avea
nevoie de lichidare. Acest tip de stoc ar ocupa un spațiu de depozitare care ar putea fi utilizat
pentru stocarea altor produse, iar costurile de păstra re a stocurilor (închirierea depozitului,
asigurarea, utilitățile, securitatea și costul forței de muncă) trebuie să fie luate din profiturile
altor produse, mai de succes. Odată ce compania are un „deadstock”, o soluție ar fi îmbinarea
cu alte produse sau returnarea către furnizor.
Calculul valorii corecte a inventarului necesită estimarea nevoilor pe baza cererii. Acest
lucru poate consuma foarte mult timp dacă se lucrează pe metoda foii de calcul. De aceea, cu
un sistem robust de gestionare a stocurilor se pot obține date exacte și detaliate privind vânzările
de componente hardware. Prin intermediul unui astfel de sistem putem urmări mai eficient
mișcarea stocurilor în depozitul de hardware. Această gestionare eficientă evidențiază zonele
afacerii pentru îmbunătățire și pentru a deveni mai profitabile. Un motiv pentru care este
important să avem un sistem de administrare corect al produselor, îl reprezintă faptul că
urmărirea eficientă a inventarului va scoate în evidență problemele cu stocurile deteriora te,
comenzile neprelucrate sau lipsa și practicile slabe de control a stocurilor. De asemenea,
gestionarea corectă va permite afacerii să urmărească cele mai bine vândute produse, împotriva
celor care nu au o fluctuație atât de ridicată. Cunoașterea celor mai performante produse va
2 Essentials of Inventory Management, Max Muller, 2011, ISBN 978 -0814416556
12 influența apoi strategia de cumpărare pentru a crește profitabilitatea. Un alt motiv este că se
poate evidenția orice lipsă de produse populare și în acest mod putem comanda mai multe
produse de la furnizori. Software -ul potrivit va permite și analizarea vânzărilor și profitului,
precum și revizuirea oricărei strategii de stabilire a prețurilor. Asigurarea faptului că există cea
mai bună gestionare a stocurilor pentru firmele hardware este cheia succesului. Va permite, în
esență, angajaților să petreacă mai putin timp căutând în mod ineficient produse sau urmărind
inventarul manual și analizând mai mult timp și planificând creșterea.
Cunoașterea nevoilor specifice este vitală pentru alegerea instrumentelor esențiale
pentru constru irea unui sistem adecvat de gestionare. Trecerea de la metode manuale la un
sistem automatizat poate economisi, de asemenea, și foarte mulți bani. Trebuie să se știe când
să se restabilească stocul anumitor articole/bunuri, ce cantitate trebuie să existe î n stoc, ce preț
trebuie să se plătească (precum și când să se vândă și la ce preț). Metoda de gestionare a
stocurilor este dependentă și de prognoza vânzărilor, ceea ce înseamnă că firma trebuie să aibă
înregistrări exacte de vânzări pentru a permite plani ficarea corectă a nevoilor de inventar și
pentru a comunica în timp util aceste nevoi furnizorilor de produse. Acest lucru permite
raționalizarea varietății produselor stocate și concentrarea asupra celor care aduc profit. Se
folosesc o varietate de date p entru a ține evidența stocurilor precum costul bunurilor, cantitatea
bunurilor și informații referitoare la proces.
În industria de distribuție a componentelor hardware, distribuitorii se confruntă cu o
serie de provocări. Deși există foarte mulți pe piață , industria hardware tinde să fie concentrată
în rândul câtorva brand -uri cheie, reprezentând partea covârșitoare a cotei de piață. În
consecință, aceste companii atrag majoritatea veniturilor din acest sector. Din acest motiv,
companiile mici au puțin cap ital de rezervă pentru a -și promova marca, ceea ce duce la
ignorarea produselor lor.
Este important să urmărim detaliile legate de componentele hardware, cum ar fi data
înregistrării în stoc, data ieșirii din stoc către un client care este tot o firmă ce a re nevoie de
componente hardware pentru a -și desfășura activitatea, garanția, locația clientului pentru a veni
la mentenanță. O companie producătoare de astfel de bunuri trebuie să fie tot timpul la curent
cu informații legate de gestionarea contractelor v ânzătorului, facturi, comenzi de achiziție sau
detalii legate de expirarea perioadei de mentenanță. Fiind tot timpul la curent cu aceste
informații în sistemul de administrare a componentelor, este ușor să se știe când trebuie
prelungit un contract cu furn izorul de produse hardware. Sunt utile și rapoartele referitoare la
utilizarea curentă a materialelor împreună cu modelul lor, ultimile date de actualizare, numele
administratorilor care au instalat actualizările etc.
13 Prezența unei baze de date în sistemul de gestioanare a stocurilor este deosebit de
importantă. Conține detalii legate de produse, cantități, informații legate de clienți, furnizori,etc.
Înlocuiește metodele manuale de control al inventarului și reduce timpul de lucru.
Baza de date oferă o im agine exactă și actualizată a nivelurilor stocurilor pentru fiecare
produs. În acest mod se asigură stocuri suficiente care să satisfacă cererea clie nților, fără a fi
suprasolicitată. Supraîncărcarea provoacă costuri inutile și reduce profiturile, în timp ce
stocurile necorespunzătoare pot duce la pierderi de vânzări, reducând rentabilitatea. Informațiile
din baz ă oferă rapoarte utile în identificarea tendințelor. Acoperă utilizarea stocurilor pe o
perioadă de timp și identifică cererea clienților. Baza de date ajută și la îmbunătățirea
productivității în firmă. În loc să verificăm cantitățile de pe rafturi, putem rula rapoarte privind
nivelurile de stocuri sau putem seta un job care să ruleze în bază și să semnaleze alerte atunci
când stocurile ating o anum ită cantitate. Managementul stocurilor este axa sistemului de
aprovizionare în jurul căruia se învârt procesele de intrare și ieșire a produselor. Prin
înregistrarea corectă a datelor, actualizarea și urmărirea acestora, companiile pot face față
provocăril or pe de o parte și, pe de altă parte, să se folosească de potențialul imens oferit.
Sistemul de gestionare al bazelor de date relaționale permite utilizatorilor să își mențină
și să își construiască datele de -a lungul timpului. Tabelele din cadrul acestor baze de date permit
căutarea prin întregul sistem de informații. Atâta timp cât informațiile sunt stocate într -un
format previzibil și secvențial, utilizatorii pot găsi cu ușurință informațiile de care au nevoie.
Este foarte important să înțelegem ce avem , unde se află în depozit, atunci când stocul de
produse intră și iese, deoarece se pot preveni eventualele fraude. Trebuie să se mențină și
echilibrul stocurilor în depozite și să se evite pierderea unei vânzări, deoarece nu sunt suficiente
produse pentru a completa o comandă.
Un element cheie al acestui „plan” de gestionare a stocurilor este acela de a avea un
sistem de vânzări care să ia în considerare toate aspectele legate de inventar. Ceea ce înseamnă
nu doar ce se află pe rafturile depozitului , ci c apacitatea de gestionare a mărfii . Prin această
modalitate, angajații companiei pot gestiona din interfață . De asemenea, este important ca
angajații cu locații multiple să poată urm ări inventarul în timp real în toate locațiile companiei.
Acest lucru este posibil prin intermediul unui sistem automatizat unde toți utilizatorii se pot
loga și gestiona intrările, respectiv ieșirile din stoc.
Preluarea comenzilor a fost identificată de mult timp ca fiind cea mai intensă și
costisitoare activitate pentru aproap e fiecare depozit. Costul de preluare a comenzilor este
estimat la 55% din totalul cheltuielilor de exploatare a depozitului. Orice performanță
necorespunzătoare pentru culegerea comenzilor poate duce la servicii nesatisfăcătoare și costuri
14 operaționale ri dicate pentru depozitul său și, prin urmare, pentru întregul lanț de aprovizionare.
Pentru a funcționa eficient, procesul de selectare a comenzilor trebuie să fie proiectat robust și
optim controlat.
Această lucrare oferă o imagine de ansamblu a literaturi i asupra problemelor tipice de
luare a deciziilor în proiectarea și controlul proceselor manuale de colectare a comenzilor. Cele
mai multe companii încearcă să reducă costurile și să îmbunătățească productivitatea în
depozitele și centrele lor de distribuți e. Din aceste motive, specialiștii din domeniul depozitării
consideră că alegerea comenzilor este cea mai importantă zonă pentru îmbunătățirea
productivității.
Organizarea operațiunilor de primire a comenzilor are un impact direct asupra
performanței cent rului de distribuție și, prin urmare, asupra lanțului de aprovizionare. De la
momentul în care o comandă este lansată în depozit și până cand produsul ajunge la destinație,
există o mare oportunitate pentru erori. Chiar dacă depozitele implică adesea inves tiții și costuri
mari, avantajele sunt următoarele:
– Economie de transport.
– Economie de producție (politica de producție a stocurilor).
– Politica de servicii pentru clienții firmei.
– Diferențele de timp și spațiu între producători și client.
– Asigurarea depozitării temporare a materialelor care urmează a fi reciclate sau
eliminate.
– Furnizarea unei loca ții pentru livrarea direct ă.
Operatorii din industria de distribuție a hardware -ului sunt responsabili pentru
achiziționarea și distribuția componentelor ha rdware destinate companiilor care au cereri mari3.
3 Design and control of warehouse order picking , René de Koster, Tho Le -Duc, Kees Jan Roodbergen , 2007
15
2.2 Studiu asupra realizărilor similare din domeniu
În acest subcapitol sunt propuse diferite aplica ții software pentru managementul
stocurilor de componente hardware din cadrul altor companii aseman ătoare .
Una dintre aceste aplica ții destinate controlului stocurilor se nume ște Simple Inventory
Control. Este o aplica ție de gestionare a inventarului pentru windows. Prezint ă cu usuri nță
gestionarea cantit ăților stocurilor, transferuril or între loca ții, precum și setarea unor alerte de
stocuri la nivel inferior. Caracteristicile aplica ției sunt: interfa ța cu utilizatorul este simpl ă și
intuiti vă, nivelurile stocurilor sunt gestionate pe categorii, pe loca ții, pe furnizori, furnizeaz ă
informa ții actualizate și corecte despre unit ățile aflate în stoc. Acest software ține eviden ța
produse lor și asigur ă numărul lor fizic înregistrat în stocuri. Ofer ă o metod ă rapid ă și ușoară de
a înregistra informații specifice categoriilor de produse, loca țiilor și furnizorilor, oferind acces
instantaneu la cele mai importante date. Aceast ă aplica ție poate salva datele în OneDrive, astfel
încât ele să poată fi accesate din diferite dispozitive. Func ția de raportare ofer ă capabilit ăți
puternice de c ăutare uti lizând mai multe criterii și include exportul rapoartelor în fișiere
WORD, PDF și EXCELL4.
Figura 1: Simple Inventory Control
O alt ă aplica ție destinat ă managementului stocurilor este Dynamic Inventory Software.
Este destinat ă întreprinderilor mici și mijlocii și poate fi instalat ă la sediu sau stocat ă în Cloud.
Ajută utilizatorii s ă gestioneze , să monitorizeze inventarul și să urmareasc ă întregul proces de
vânzări și achizi ții. Genereaz ă și scaneaz ă coduri de bare pentru produse și de asemenea
genere ază și rapoarte pentru produse. Suport ă importul și exportul de date din foi de calcul și
accesul la date de inventar de pe dispozitive mobile cum ar fi tablete și smartphone -uri. Produsul
oferă un sistem de puncte de v ânzare pentru controlul inventarului și sisteme care urm ăresc
4Simple Inventory Control, Website, http://smartapps.me.uk/
16 comenzile de achizi ție, de v ânzări. Sistemul total de gestionare a infrastructurii ajut ă utilizatorii
să maximizeze finan țarea și recuperarea indirect ă a costurilor, precum și îmbun ătățirea timpului
de func ționare al echipamentelor și rețelelor. O caracteristic ă puternic ă a acestui software o
constituie sistemul de coduri de bare5.
Figura 2: Dynamic Inventory
Un alt exemplu de aplica ție care este destinat ă managementul stocurilor se nume ște
RightControl. Aplica ția const ă într-un sistem sofisticat de control al stocurilor care ofer ă un
software de facturare u șor de utilizat, un sistem de control al inventarului și de gestionare a
depozitului. Chiar dac ă aceast ă aplica ție este destinat ă întreprinderilor mici, ea ofer ă o
platform ă sigur ă, rentabil ă și fiabil ă pentru eficientizarea gestion ării inventarului și gestionarea
procesului de v ânzări de la solicitarea ini țială până la livrarea final ă.
Software -ul este conceput pentru a oferi un acces facil la infomațiile detalia te ale
inventarului în momente diferite ale procesului de gestionare. RightControl prezintă diverse
formate pentru a se potrivi diferitelor întreprinderi încep ând de la start -up-uri p ână la
întreprinderile care se extind și care necesit ă un sistem de tip c lient pentru mai mul ți utilizatori6.
5Dynamic Inventory, Website, https://www.softwareadvice.com/inventory -management/dynamic -inventory –
profile/
6 RightControl, Website, http://www.losoftware.co.uk/
17
Figura 3 : RightControl
2.3 Stabilirea funcționalităților sistemului/aplicației
Aplica ția permite etape de la introducerea produselor de inventar p ână la controlul
vânzărilor. Perfect pentru companie , programul este rapid și ușor de utilizat. Cea mai mare
problem ă pentru o companie este gestiunea depozitului cu un num ăr mare de produse. Tocmai
de aceea, beneficiaz ă de un sistem de puncte de v ânzare util pentru gestionarea componentelor
hardware, func ție important ă a software -ului pentru c ă, păstreaz ă eviden ța fiec ărui element care
este v ândut și cump ărat în timp real.
În modul acesta, afacerea știe întotdeauna ce produse sunt în stoc, ce produse sunt la
comand ă și ce costuri și prețuri sunt pentru ei. Fluxul de lucru este simplificat fiindc ă, angaja ții
nu mai trebuie s ă verifice în depozitul propriu zis unde sunt produsele pentru a r ăspunde
cererilor clien ților. Acestia utilizeaz ă facilit ățile sistem ului de gestiune a stocuri lor și astfel pot
răspunde clien ților în legatur ă cu produsele solicitate (dacă sunt sau nu în stoc). Tot prin
intermediul sistemului, pot fi gestiona ți și angaja ții.
Cu un sistem performant, comp ania poate oferi un serviciu bun și eficient de rela ții cu
toți clien ții. Sistemul sof tware ofer ă: adăugarea cu usurin ță și gestionarea întregului inventar,
utilizarea paginii de produse pentru a introduce noi produse în stoc, v ânzările se realizeaz ă rapid
prin interfa ța intuitivă și simplă a aplica ției, facturile de v ânzare și cump ărare se introduc u șor
iar pl ățile și vânzările sunt gestionate mult mai eficient de utilizatori.
18 Datele confiden țiale ale utilizatorilor sunt stocate în baza de date și astfel sunt
securizate. Fiecare utilizator are creden țiale unice pentru logare în sistem. De și compania are
mai multe loca ții, în diverse ora șe, sistemul poate fi folosit de oriunde, angaja ții put ând lucra
chiar și de acas ă. Fiind un software bazat pe web opera țiunile pot fi controlate de ori unde.
Produsele sunt definite la nivel central, fiecare produs are propriile date unice, evit ându-se astfel
confuzia atunci c ând utilizatorii au de a face cu mai multe produse.
Aplica ția permite introducerea acestor date unice și ofer ă posibilitatea de stocare a lor
în baza de date. Func ționalitatea acesta adu ce beneficii atunci cand este necesar ă urmărirea
produ sului în caz de garan ție sau service.
De asemenea, software -ul se asigur ă că utilizatorii nu v ând de doua ori produsul cu
acela și cod unic de indentificare, ceea ce spore ște acurate țea datelor și condu ce la o raportare
analitic ă perfect ă. Fiecare produs are un num ăr pentru stocul ini țial, reprez entând valoarea de
plecare . Aplica ția permite ca utilizatorul s ă ștearg ă și să modifice înregistr ările.
Tot prin intermediul aplica ției ce men ține eviden ța stocurilor pentru depozit , este
controlat ă și cump ărarea de produse, nu doar v ânzarea acestora. Pentru comanda de achizi ție,
în aplica ție sunt prezente c âmpuri pentru numele funizorului, produse, pre țul și cantitatea
acestora. Factura de cump ărare este f olosit ă pentru a dovedi c ă a fost adus în stoc un anumit
produs precum și cât a pl ătit compania pentru el. Dup ă efectuarea facturii de cump ărare, pre țul
de cump ărare se va majora astfel încât compania să obțină profit.
Factura de v ânzare, documentul emis în momentul v ânzării con ține informa ții
referitoare la produsele v ândute și la clientul care le -a achizi ționat.
19 3. Analiza metodelor de rezolvare a problemei și selectarea solu ției tehnice
3.1 Descrierea tehnologiilor disponibile
PHP
Php este un limbaj de programare frecvent utilizat de perso anele care doresc s ă
construiasc ă site-uri simple și dinamice. Chiar de la debutul s ău în anul 1995, foarte mul ți
programatori îl aleg pentru dezvolt ări web. Fiind at ât de popular pe pia ță, aproximativ 70 la
sută din site -urile web îl folosesc. Limbajul folose ște acelea și func ții ca și ale sistemului și
anume: de creare, de deschidere, de citire, de scriere, de închidere a fi șierelor.
Se poate integra cu urm ătoare a serie de baze: MySQL, PostgreSQL, Orac le, Sysbase, Informix
și Microsoft SQL Server.
Php-ul este utilizat și pentru :
– gestionarea formulelor (adun ă datele din fi șier, salveaz ă datele într-un fi șier,
returneaz ă date utilizatorului).
– Se pot ad ăuga, șterge, modifica elemente din baza de date.
– Poate cripta datele .
– Poate restric ționa utilizatorii s ă salveze anumite pagini ale site -ului.
Principalele caracteristici ale acestui limbaj sunt: simplitate, eficien ță, securitate,
flexibilitate, familiaritate. Pentru utilizarea lui este necesar ca pe sta ția respectiv ă să fie instalate
următoarele:
– Un software Web Server (Microsoft Internet Information Server).
– Baza de date (Oracle , MySQL , SQL Server).
– PHP Parser (utilizat pentru procesarea instruc țiunilor de script PHP)7.
ORACLE
Baza de date Oracle reprezint ă unul dintre motoarele bazei de date rela ționale, fiind
printre cea mai de încredere și frecvent utilizat ă. O caracteristic ă important ă este faptul c ă
arhitectura este împărțită în parte logic ă și fizic ă. Pentru computerele distribuite pe scar ă largă,
locația datelor este irelevant ă și transparent ă pentru utilizator. Permite o structur ă fizică
modular ă, care poate fi ad ăugată și modificat ă fără a afecta activitatea bazei de date. Împărțirea
7 Learning PHP, MySQL, JavaScript, CSS & HTML5: A Step -by-Step Guide to Creating Dynamic Websites ,
Robin Nixon, 2014, ISBN 978-1491949467
20 resurselor în acest mod permite re țele de date flexibile a căror capacitate poate fi ajustat ă.
Prezint ă următoarele caracteristici:
– Gruparea tranzac țiilor: abilitatea de a grupa mai multe tranzac ții pentru prelucrarea
seturilor Oracle. Versiunea Microsoft SQL este limitat ă la executarea fiec ărei
tranzac ții individual într-o ordine consecutiv ă. Oracle ofer ă o scalabilitate mai mare
față de versiunile secven țiale ale SQL Server.
– Performan ță îmbun ătățită: se pot utiliza mai multe servere pentru a lucra în aceea și
bază de date prin caracteristica Real Applica tion Cluster.
– Versatilitate: ofer ă flexibilitatea de a rula baza de date în orice sistem de operare.
Este compatibil cu versiunile anterioare și exist ă posibilitatea de a face un upgrade
fără a pierde datele.
– Costurile: reprezint ă un dezavantaj, deoarece taxele de licen țiere pot fi de zece ori
mai mari pentru Oracle. Fiind un limbaj complex și specializat, este dificil de g ăsit
administrator de baze de date califica ți pentru a rula sistemul.
– Dificultate: este mai dificil de învățat și operat8.
3.2 Alegerea tehnologiilor utilizate
Tehnologiile utilizate în respectiva lucrare sunt: SQL SERVER, ASP.NET MVC
ASP.NET MVC
ASP.NET este un cadru de dezvoltare pentru construirea de pagini web și site -uri web cu
scripturi HTML, CSS și JavaScript. Este un web application server -side framework, folosit în
dezvoltarea web pentru a produce pagini web dinamice. Prezintă trei modele diferite de
dezvoltare: Web Pages, MVC (Model -View -Controller) și Web Forms. Pentru această lucrare
este utili zat ca și mediu de dezvoltare, Microsoft Visual Studio.
Web Pages oferă o modalitate ușoară de a combina codul HTML, CSS și sever code.
Avantajele acestuia sunt:
– Ușor de învățat, de înțeles și de utilizat .
– Utilizează un model de aplicație SPA (Application Single Page) .
8Oracle Database 12c The Complete Refence, K evin Loney, Bob Bryla, 2012, ISBN -13: 978 –
0071801751
21 – Similar cu PHP și ASP clasic .
– Limbi de scripting VB (Visual Basic) sau C # (ascuțite) .
Web Forms sunt pagini pe care utilizatorii le solicită folosind browser -ul lor. Aceste
pagini pot fi scrise folosind o combinație de cod HTML, client scri pt, controale de server și cod
server. Când un utilizator solicită pagini, aceastea sunt compilate și executate pe server de către
framework. Apoi, framework -ul generează HTML -ul pe care serverul îl poate afișa. O pagină
ASP.NET Web Forms prezintă informaț ii utilizatorului în orice browser sau dispozitiv client.
Varianta Web Forms este:
– Bazată pe tehnologia Microsoft ASP.NET, în care codul care rulează pe server și
generează dinamic ieșirea pagini web în browser sau dispozitiv client.
– Compatibilă cu orice browser sau dispozitiv mobil. O pagină Web ASP.NET redă
automat codul corect HTML compatibil cu browserul pentru funcții precum stiluri,
layout și așa mai departe.
– Compatibil cu orice limbaj acceptat de limbajul de rutare comun .NET, cum ar fi
Microsoft Visual Basic și Microsoft Visual C #.
– Construit pe Microsoft .NET Framework. Aceasta oferă toate avantajele cadrului,
inclusiv un mediu gestionat, siguranța de tip și moștenirea.
– Flexibil deoarece puteți adăuga controale create de utilizator și de la terțe părți.
ASP.NET Web Forms oferă separarea codului HTML și a altor coduri UI din logica
aplicației ,o suită bogată de controale de server pentru sarcini comune, inclusiv accesul la date,
date puternice de legare a datelor, cu suport de mare instrument, supo rt pentru scripting pe
partea clientului care se execută în browser, sprijin pentru o varietate de alte capabilități,
inclusiv rutarea, securitatea, performanța, internaționalizarea, testarea, depanarea, gestionarea
erorilor .
Tipul Model -View -Controller(M VC) ce separă aplicația în 3 componente principale:
model, view și controller.
Modelul reprezintă obiectele ce semnifică datele aplicației (de exemplu o listă de
înregistrări din baza de date) și de asemenea folosesc validare logică pentru a impune reguli
acestor date. Deseori, modelele de obiecte preiau date din baza de date, dar și stochează date în
baza de date. View -urile afișeaz ă interfața utilizatorului (afișeaza înregistrările din baza de date).
Sunt fișiere sablon pe care aplicația le utilizează pe ntru a genera dinamic r ăspunsuri HTML.
Interfața utilizatorului se creează cu datele din model. Pentru view MVC suportă tipuri .cshtml
ce reprezintă cod c# cu tag -uri HTML.
22 Controllere -le sunt componente care gestionează cereri de la browser, preiau datel e din
model și specifică templete -uri de view ce returnează răspunsuri către browser. Spre deosebire
de view care afișeaza doar informația, controller -ul răspunde utilizatorului, gestionează valorile
și pasează aceste valori către model. Diferite metode a le unui controller pot fi rezultatul mai
multor view -uri.
Varianta de programare MVC este o alternativă mai ușoară la ASP.NET (Web Forms)
tradițional. Este un cadru ușor de verificat, este integrat cu toate funcțiile ASP.NET existente,
cum ar fi Pagini Mas ter,Securitate și Autentificare.
Avantaje ale ASP.NET MVC:
– Este mult mai ușor să administrezi complexitatea aplicației, împărțind -o în model, view
și controller.
– Dezvoltatorii au control absolut asupra comportamentului aplicației .
– Ofera suport pentru test -driven components.
– Se potrivește foarte bine pentru aplicații web ce sunt dezvoltate de un număr mare de
developeri și pentru web designeri ce au nevoie de control foarte mare asupra
comportamentului aplicației.
În respectiva lucrare se va folosi o aplic ație ce suportă operațiile create, update,delete și
afișarea de infomații stocate în baza de date.
O aplicație web ASP.NET MVC are următoarea structură de foldere: informații despre
aplicație (Properties, References); foldere -le aplicației (App_Data, Content, Controlllers,
Models, Scripts, Views); fișierele de configurare (Global.asax, packages.config,
Web.config). Folderul App_Data este utilizat pentru a stoca datele aplicației. Folderul Content
conține fi șiere statice precum fișiere css, iconițe și imagini. Visual Web Developer a daugă în
mod automat un folder themes în folderul Content. Acest folder themes conține poze și stiluri
jQuery. De asemenea, Visual Web Developer ad augă și un fișier css, Site.css în folderul
Content. Fișierul css este folosit pentru editare atunci când se dorește schimbarea stilului
aplicației. Folderul Controllers conține clasele Controller (MVC impune ca toate fișierele
controller să se termine cu acest cuvânt „Controller”) responsabile cu cererile și răspunsurile
către uti lizator. Visual Web Developer creează un Home Controller (pentru paginile Home și
About) și un Account Controller (pentru paginile de Log In). Controller -ele sunt responsabile
cu procesarea cererilor de la utilizator, manipularea lor, salvarea datelor și t rimiterea unui
răspuns către utilizator. Folderul Views stochează fișierele HTML ce au legatură cu interfața
pe care o vede utilizatorul. Folderul Views conține câte un folder pentru fiecare Controller.
23 Visual Web Developer a creat un folder Account, un fo lder Home și un folder Shared
(în cadrul folderului Views). Folderul Account conține pagini pentru înregistrare și logare.
Folderul Home este folosit pentru a stoca pagini ale aplicației precum Home page și About
page. Folderul Shared este utilizat pentru a stoca view -uri împărțite între controllere (pagini
master și layout). Folderul Scripts conține fișierele JavaScript ale aplicației. By default, Visual
Web Developer „umple” acest folder cu fișiere standard MVC, AJAX și jQuery9.
Fișierul _Layout.cshtml reprezintă layout -ul pentru fiecare pagină din aplicație. Este
localizat în folderul Shared din cadrul folderului Views. Pentru a modifica output -ul HTML se
utilizează HTML Helpers (@Url.Content: conținutul URL sau @HTML.ActionLink – aici se
inserează link -ul HTML). Sintaxa Razor – Folderul Views conține fișiere cu extensia .cshtml.
Acestea pot conține cod C# și cod HTML, CSS și JavaScript. Codul C# este scris utilizând
sintaxa Razor (ex. @ViewBag.Title – aici este inserat titlul paginii sau @RenderBody –
conținutul paginii este inserat aici). Conexiunea către baza de date este adăugată în fișierul
Web.config. În tagul <connectionString></connectionString> este adăugată această
conexiune10.
Ciclul de viață pentru ASP.NET MVC este reprezentat de secvența de evenimente ce
are loc de fiecare dată când un request Http este întreținut de aplicație. Punctul de început la o
aplicație ASP.NET MVC este „routing”. După ce o platformă ASP.NET primește o cerere, își
dă seama cum ar trebui să fie administrat sau întreți nut de către URL Routing Module. Modulele
sunt componente .NET care se pot conecta la ciclul de viață al aplicației și adăuga
funcționalitate. Framework -ul MVC convertește ruta într -un controller concret care se ocupă
de cereri (request -uri). Dupa ce contr oller-ul a fost creat, următorul pas major este Action
Execution. O componentă numită action invoker găsește și selectează acțiunea apropiată care
invocă controller -ul. Microsoft Visual Studio, IDE dezvoltat de Microsoft, este utilizat pentru
a dezvolta p rograme pe calculator, pagini web, aplicații web, servicii web și aplicații mobile.
Folosește ca și platforme de dezvoltare: Windows API, Windows Forms, Windows Presentation
Foundation. Include un code editor ce suportă IntelliSense11.
9 C# 6.0 and the .NET 4.6 Framework, Seventh Edition, Andrew Troelsen and Philip Japikse, Apress, 2015,
ISBN:9781484213339
10 Applied ADO.NET: Building Data -Driven Solutions, Mahesh Chand and David Talbo t, Apress, 2003,
ISBN:9781590590737
11 Pro ASP.NET MVC 5, Adam Freeman, 2013, ISBN 978 -1-4302 -6529 -0
24 SQL SERVER
Bazele de date reprezintă colecții de date și sunt utilizate pentru a le stoca. Prin
intermediul calculatorului, o bază de date este pusă în aplicare printr -un software. Acest
software poate controla modul în care sunt stocate datele în baz ă. De obicei, bazele de d ate sunt
stocate într -o locatie și sunt administrate de un server de baze de date. Stocarea datelor este o
bază de date, care este de fapt o colecție de tabele cu coloane.
Microsft SQL Server este un sistem de management pentru baze de date relațion ale
dezvoltat de Microsoft. Este un produs software, cu funcția de a stoca și prelua date cerute de
alte aplicații software. Aceste aplicații pot rula pe același computer sau pe computere diferite.
SQL Server Management Studio reprezintă principalul tool de interfață și suportă environment
pe 32, respectiv 64 -bit. SQL Server există în diferite ediții, cu seturi de trăsături și opțiuni de
preț capabile să satisfacă nevoile utilizatorilor:
– Enterprise: special pentru întreprinderile mari cu date complexe, d ata warehousing, și
baze de date Web -enabled. Are toate caracteristicile SQL Server, iar licența acestui
produs este cea mai scumpă.
– Standard: destinat organizațiilor de mărime medie. Suportă e -commerce și data
warehousing.
– Workgroup: pentru organizațiile mici. Nu există limită de dimensiune sau utilizatori și
poate fi folosit pentru baze de date backend sau pentru web servere mici.
– Express: prezintă câteva din caracteristici și limitează dimensiunea bazelor de date și a
utilizatorilor. Poate fi folosit ca un înlocuitor pentru o bază de date Access.
SQL Server este un server de baze de date ce implementează SQL (Structered Query
Language). SQL, reprezintă un limbaj standard pentru a accesa și manipula baze de date. A
devenit un standard pentru ANSI în 1986 ș i pentru ISO în 1987.
SQL este folosit de către administratorii de baze de date sau de către developeri ce scriu
scripturi de integrare a datelor sau analiști de date ce doresc să creeze și să execute interogări
analitice. De asemenea, SQL SERVER a spori t suportul pentru analizele de date mari și alte
aplicații avansate de analiză prin SQL SERVER R SERVICES.
SQL este construit în jurul unei structuri de tabelă care conectează elementele de date
aferente în tabele diferite unul față de celălalt, evitând î n acest mod necesitatea stoc ării
redundante a datelor în mai multe locuri dintr -o baz ă. Modelul relațional oferă, de asemenea, și
alte constrângeri de integritate pentru a menține acuratețea datelor.
25 SQL SERVER suportă diferite tipuri de date, include tipu ri primare precum Integer,
Float, Decimal, Char, Varchar (caractere string cu lungime variabilă) și altele. Permite de
asemenea, definirea și utilizarea tipurilor compuse definite de utilizator. Spa țiul de stocare
alocat unei baze de date este împărțit în pagini numerotate secvențial, fiecare având o
dimensiune de 8 KB. O pagină este unitatea de bază pentru operațiile intrare/ie șire din SQL
SERVER. O pagină este marcată cu un antet de 96 de octeți care stochează metadatele despre
pagină, inclusiv numărul de pagină, tipul paginii, spațiul liber de pe fiecare pagină și id -ul
obiectului care o deține. Pentru stocarea fizică a unui tabel, rândurile sunt împărțite într -o serie
de partiții ce sunt numerotate de la 1 la n. Dimensiunea partiției este user -defined ș i toate
rândurile sunt stocate într -o singură partiție.
Procedurile stocate acceptă valori trimise ca și parametri de intrare de către client. Ele
trimit rezultatele prin parametri de ieșire. Procedurile stocate pot apela func ții definite de alte
proceduri memorate, inclusiv aceeași procedură stocată de un număr setat de ori. Spre deosebire
de alte interogări, procedurile stocate au un nume asociat. Acesta este utilizat în timpul rulării
pentru a se rezolva interogările reale.
Prin intermediul procedurilor stocate este îmbunătățită performanța și este redus traficul
în retea, deoarece codul nu trebuie trimis de la client de fiecare dată. Planurile de execuție sunt
de asemenea, stocate în cache12.
Arhitectura generală este repreze ntată de: Client (unde este inițiată cererea), Interogarea
sau Query (SQL Query care este un limbaj de nivel inalt), Unități logice – Logical units (cuvinte
cheie, expresii, operatori,etc.), Protocoale (în SQL Server sunt patru protocoale: Shared
memory: p entru conexiuni locale; Named pipes: pentru conexiuni în LAN; TCP/IP: pentru
conexiuni în WAN și VIA: cere un hardware special ce trebuie instalat de vânzător).
SQL Server Management Studio este o aplicație software ce a fost prima dată lansată cu
Micros oft SQL Server 2005 și este folosită pentru a configura și administra toate componentele
din cadrul Microsoft SQL Server. Este un mediu integrat pentru a administra infrastructura SQL
Server. Oferă o interfață utilizatorului și un grup de tool -uri care int eracționează cu SQL Server.
Ofera tool -uri care configurează, administrează instanțe ale Microsoft SQL Server13.
12 Beginng T -SQL, Kathi Kellenberger, Scott Shaw, 2014, ISBN 978 -1484200476
13 Pro SQL Server Internals, Dmitri Korotkevitch, 2014, ISBN 978 -1-4842 -1963 -8
26 4. Considerente legate de dezvoltarea aplica ției
4.1 Arhitectura aplica ției
Cu ajutorul diagramelor UML se poate construi arhitectura aplica ției, deoarece acestea
definesc structura și procesele sistemului, urm ărind de asemenea și modul de execu ție.
Diagrama de stare
Diagrama de stare este utilizat ă pentru a defini st ările diferite prin care trece un obiect
în timpul ciclului de via ță. Valorile acestuia (stările) se schimb ă în func ție de evenimente ,
reprezent ând tranzi ția de la o stare la alta.
Diagrama de stare a utilizatorului (persoana care acceseaz ă aplica ția): Pentru a utiliza
modulele aplica ției este nece sar să introduc ă în câmpurile corespunz ătoare datele sale unice și
anume username și parola . Al doilea pas constituie validarea datelor introduse. Dac ă numele de
utilizator și parola sunt completate corect, utilizatorul ob ține acces în cadrul aplica ției. În cazul
în care datele au fost introduse gre șit și nu se reg ăsesc în baz ă, acesta va trebui s ă le reintroduc ă.
Figura 4: Diagrama de stare pentru utilizator
27 Diagrama de stare a facturilor (v ânzare și cump ărare): Sunt întocmite între companie și
clien ți, respectiv între companie și furnizori. Persoanele care introduc facturi în sistem sunt
angaja ții companiei , adic ă utilizatorii aplica ției. Procesul prin care trece o factur ă atunci c ând
este creat ă presupune validarea informa țiilor, precum și completarea tuturor c âmpurilor. Dac ă
datele ad ăugate sunt corecte, atunci factura este inserat ă în baz ă. În figura de mai jos sunt
descrise st ările prin care trec facturile în procesul de ad ăugare în sistem.
Figura 5: Diagrama de stare pentru facturi (de v ânzare și cump ărare)
Diagrama de stare a produsului: Etapele prin care produsul trece în cadrul companiei
sunt: achizi ționarea de la furnizori, ad ăugarea în sistem și întocmirea facturii de cump ărare.
Inserarea produsului în baz ă presupune verificarea datelor completate de c ătre utilizatori în
câmpurile aferente. Dac ă exist ă câmpuri necompletate sau completate gre șit, utilizatorul este
nevoit s ă reintroduc ă datele. Dac ă informa țiile au fost completate corect, produsul este ad ăugat
în baz ă.
28
Figura 6: Diagrama de stare pentru produs
Diagrama de stare pentru categoria de produse: categoria este selectat ă de utilizator în
momentul inser ării unui produs în baza de date. Dac ă utilizatorul nu selecteaz ă nicio categorie,
acesta es te nevoit s ă repete procesul.
Figura 7: Diagrama de stare pentru categorie
29 Diagrama de stare pentru furnizor: furnizeaz ă produse companiei.
Figura 8: Diagrama de stare pentru furnizor
Diagrama cazurilor de utilizare
Scopul diagramei cazurilor de u tilizare este de a exemplifica aspectul dinamic al unui
sistem.
Figura 9: Diagrama cazurilor de utilizare a bazei de date
30 4.2 Implementarea aplica ției
Proiectarea schemei bazei de date
Pentru implementarea unei aplica ții, proiectarea bazei de date este esen țială, deoarece
serve ște la indentificarea rela țiilor dintre tabele, formarea entit ăților și nu în ultimul rând la
întemeierea diagramei. Baza de date cuprinde urm ătoarele tabele : Utilizatori, Produs, Orase,
Furnizor, Ang ajat, Categorie, Departament, Contacte, Client, FacturaVanzare,
FacturaCumparare, FCTranzactie si FVTranzactie.
Mai jos sunt descrise rela țiile dintre aceste tabele:
Angajat – Utilizatori (1:1)
Angajat – Orase (1:M)
Produs – Categorie (1:M)
Client – Orase (1:M)
Contacte – Client (1:M)
Furnizor – Orase (1:M)
Factur aCumparare – Furnizor (M:M)
FacturaVanzare – Client (M:M)
Tabela Angajat cuprinde informa ții legate de angaja ții companiei, ei fiind în acela și
timp și utilizatorii aplica ției. Ea este alc ătuită din:
– AngajatId (este cheia primară a tabelei cu ajutorul căreia angajații pot fi identificați)
– Nume
– Prenume
– CNP
– Mail
– Telefon
– Departament (se pot vizualiza departamentele din care fac parte angajații)
– Adresa
– OrasId (reprezintă id -ul orașului unde are domiciliul angajatul)
Tabela Client con ține informa ții despre clien ții companiei. Cu ajutorul acestei tabele,
angaja ții pot observa care sunt firmele care au achizi ționat produse din depozit. Este alc ătuită
din:
– ClientId (cheia primară a tabelei)
– Nume
31 – CUI (codul unic de identificare)
– Adresa
– OrasId
– ContIBAN
– Banca
Tabela Departament cuprinde departamentele din cadrul companiei. Ea con ține:
– DepartamentId (cheia primară a tabelei, identificator pentru id -ul fiec ărui
departament)
– Denumire
Tabela FacturaCumparare afi șează informa ții cu privire la facturile încheiate cu
furnizorii companiei în momentul achizi ționării componentelor hardware. C âmpurile tabelei
sunt:
– FacturaId (cheia primara a tabelei)
– Data_Ora_Factu rare (conține informații legate de data și ora la care s -a încheiat
tranzacția)
– FurnizorId (fiind cheie externă, ea realizează comunicația cu tabela Furnizor prin care
sunt afisate id -urile furnizorilor cu care s -a încheiat o factură)
– AngajatId (cheie ex ternă prin care este afișat id -ul angajatului care a achiziționat
componente pentru depozit)
– Serie
– Numar
– TVA
Tabela FacturaVanzare este similar ă cu tabela FacturaCumparare. Aici sunt afi șate
informa ții cu privire la facturile încheiate între companie și client. Este alc ătuită din
următoarele c âmpuri:
– FacturaId (cheie primară ce conține câte un id pentru fiecare factură)
– Data_Ora_Facturare (data și ora la care s -a încheiat tranzacția)
– ClientId (este afișat id -ul clientului pentru care s -a întocmit factura)
– AngajatId (este afișat id -ul angajatului care a întocmit factura)
– Serie
– Numar
– TVA
32 Tabela FVTranzactie cuprinde informa ții cu privire la facturile de v ânzare și anume la
tranzac țiile încheiate între companie și client. Con ține următoarele c âmpuri:
– TranzactieId (id -ul fiecarei tranzacții)
– FacturaId (afișează id -ul fiecărei facturi de vânzare încheiate cu clientul)
– ProdusId (este afișat id -ul produsului care a fost vândut)
– Cantitate (este afișată cantitatea de produse vândute)
– Pret (este afișat prețul de vânzare a produsului)
Tabela FCTranzactie este similar ă cu tabela FVTranzactie. În aceast ă tabel ă sunt
afișate informa ții detaliate legate de facturile de cump ărare întocmite între companie și
funizor. Este alcatuit ă din urm ătoarele c âmpuri:
– TranzactieId (cheie primară care afișează id -ul fiecarei tranzacții)
– FacturaId (cheie externă care afișează id -ul facturii de cumpărare)
– ProdusId (cheie externă care afișează id -ul produsului care a fost cumpărat)
– Cantitate (cantitatea p rodusului cumpărat)
– Pret (prețul produsului cumpărat)
Tabela Produs con ține toate produsele companiei, at ât cele care intră în stoc (depozit),
cât și cele care ies. Aceasta con ține urm ătoarele c âmpuri:
– ProdusId (id -ul produsului)
– DenumireProdus
– PerioadaGarantie
– CategorieId (este afișat id -ul categoriei din care face parte produsul)
– Pret
– StocInitial.
Tabela Utilizator este alc ătuită din utilizatori (fiind în acela și timp și angaja ții
companiei) care pot accesa aplica ția. C âmpurile tabelei sunt:
– UtilizatorId
– Username
– Parola
– TipUtilizator (Tipul de utilizator poate avea doua valori: 1 este consacrat pentru
administratorul aplicației care are drepturi depline pentru a realiza orice modificare
asupra aplicației și 0 pentru utilizatori i (angajații com paniei) aplicației care au drep turi
doar de operare.
33 De asemenea în baz ă au fost create mai multe proceduri și view -uri:
– FacturiDeCumparare,
– FacturiDeVanzare,
– DetaliiPentruFacturiCumparare,
– DetaliiPentruFacturiVanzare,
– ContacteClienti,
– TotalCumparariPlus StocInitial,
– TotalCumparari
– TotalVanzari
– vwFacturiProduse,
– StocActual, TotalStocuri_In
– vwFacturi
– vwClienti.
Cu ajutorul procedurilor FacturiCumparare și FacturiVanzare în interfa ță vor fi afi șate
facturile întocmite cu furnizorii și cu clien ții companiei.
Folosind procedurile DetaliiPentruFacturiCumparare și DetaliiPentruFacturiVanzare se
vor afi șa detaliile pentru fiecare fiecare factur ă de vânzare sau cump ărare încheiate cu furnizorii
și clien ții companiei.
Prin ContacteClienti sunt afi șate persoanele de contact pentru fiecare client al companiei
și în acest mod se poate p ăstra leg ătura cu aceștia pentru remedierea diferitelor probleme.
View -ul TotalCumparari afi șează totalul valorilor produselor, precum și cantitatea total ă
a produselor care au intrat în stoc (depozit) de la furnizor prin factura de cump ărare.
TotalCumparariPlusStocInitial afișează stocul inițial din depozit al produse lor plus
produsele achiziționate de la furnizori ce intră în sistem.
TotalVanzari afișează totalul valor ii produselor, precum și cantitatea totală a produselor
care au ieșit din depozit . Acestea au fost vândute unui anumit client pe factură.
TotalStocuri_In reprezintă totalul intrărilor din TotalCumparariPlusStocInitial minus
ieșirile din TotalVanzari.
StocActual afișează produsele aflate în depozit , cantitatea și valoarea din view -ul
TotalStocuri_In.
View -ul vwFurnizori este utilizat în interfață la pagina de Furnizori, unde se poate
realiza o filtrare după numele furnizorului.
View -ul vwClienți este utili zat în interfață la pagina de Clienți, unde se poate realiza o
filtrare după numele clientului.
34 Figura de mai jos reprezintă diagrama corespunzătoare tabelelor din baza de date.
Figura 10: Diagrama bazei de date
35 4.3 Implementarea interfe ței
Interfața a fost implementată utilizând tehnologia ASP.NET MVC. Pentru autentificare
se creează o pagină de tip cshtml numită Autentificare. Funcționalitatea implică definirea unui
model (clasă) Utilizator cu id, username, parolă și tipul utilizatorului ca și câmpuri. Acțiunea
din controller gestionează cererile de la browser și returnează un View (pagina de autentificare).
De aceea, sunt create în controller două acțiuni de autentificare, o dată având atributul HttpGet
(cerere de tip get atunci când utiliz atorul accesează pagina) și o dată atributul HttpPost (cerere
de tip post atunci când utilizatorul apasă butonul de submit). În metoda de tip post au fost
implementate validări pentru datele introduse în câmpurile din pagină și conexiunea către baza
de dat e. După deschiderea conexiunii, se verifică dacă informațiile completate se regăsesc în
bază, în tabela Utilizator, prin interogare de tip select.
Figura 11: Metoda Autentificare din controller
Ulterior, username -ul, parola și tipul utilizatorului (dacă este administrator sau nu) sunt
salvate într -o sesiune. În pagină sunt construite două text -box-uri, unul pentru numele
utilizatorului și celălalt pentru introducerea parolei.
Figura 12: Salvarea în sesiune
Pentru facturile de vânzare și cumpăr are a fost creat un model (clasă). Câmpurile sunt
corespunzătoare celor din baza de date, din tabelele facturilor. În controller sunt construite
metode de tip ActionResult pentru fiecare tip de factură. Aici se deschid conexiuni către baza
de date și inter ogari de tip select de unde sunt preluate facturile existente. Pentru afișarea lor în
pagini (în tabele), au fost create fișiere de tip cshtml (view -uri).
Pe lângă tabele, în view -uri sunt prezente și link -uri de introducere a noilor facturi.
Acestea dir ecționează utilizatorul către alte pagini. Pentru crearea lor au fost necesare fișiere
36 cshtml, unde au fost adăugate câmpuri pentru întocmirea de facturi. Controller -ul apelează
view -urile prin metode de tip ActionResult cu atributele HttpGet și HttpPost. La introducerea
de facturi (vânzare și cumpărare) este necesar să se precizeze clientul sau furnizorul. Tocmai
de aceea, în metoda aferentă cererii de tip get sunt implementate interogări de tip select pentru
preluarea clienților și furnizorilor existenți în bază. Apoi, aceste informații sunt afișate în
combo -box-urile din view -uri. În cealaltă metodă, pentru post, au fost implementate validări
pentru completarea corectă a câmpurilor, precum și conexiunea către bază.
Stocurile au fost afișate într -un tabe l în cadrul view -ul Stocuri. Pentru acest lucru, în
controller, în metoda aferentă, s -a deschis conexiunea. Informațiile au fost aduse prin
interogarea de tip select din view -ul StocActual creat în baza de date (conține stocurile existente
în companie la u n moment dat).
Figura 13: Metoda Stocuri din controller
Datele despre produse au fost preluate din model (conține următoarele câmpuri : id-ul
produsului, denumire, preț, perioada de garanție, stoc inițial, id -ul categoriei din care face parte
produsu l, precum și denumirea acesteia) și afișate în tabel in view -ul Produse. În metoda
ActionResult din controller, datele au fost extrase printr -o comandă, din tabelele Produs și
Categorie din bază.
Figura 1 4: Metoda Produse din controller
Sunt prezent e în pagină și funcționalități de adăugare, modificare și ștergere a
produselor. Controller -ul preia datele din model (clasa Produs). Astfel, metoda specifică
37 adăugării conține validări ale informațiilor introduse, deschiderea conexiunii și interogare de
tip insert (acțiunea butonului de submit ce inserează produsul în bază).
Modul de implementare al acțiunii de modificare este asemănător cu cel anterior.
Diferența este reprezentată, în cazul acesta, de o interogare de tip update.
Ștergerea produsului este obținută prin interogare de tip delete. În fișierul de tip cshtml
sunt construite două butoane pentru Da și Nu (dacă utilizatorul vrea sau nu să șteargă produsul).
Acțiunea din controller este implementată pentru butonul Da, iar pentru butonul Nu, este ape lată
funcția javascript din view.
Categoriile conțin un tabel pentru afișare și un link către adăugarea unei categorii noi.
Modelul definit este reprezentat de clasa Categorie. Controller -ul gestionează cererile de la
browser pentru afișare și adăugare. Af ișarea constă în preluarea informațiilor din baza de date
prin interogarea de tip select. Adăugarea include verificările pentru validări, conxiunea către
baza de date și interogarea de tip insert. Metoda specifică adăugarii returnează templete -ul de
view ( fișierul de tip cshtml care include controalele corespunzătoare).
Informațiile despre furnizori sunt afișate într -un tabel, în cadrul view -ului. Metoda
ActionResult din controller preia datele din modelul Furnizori. Informațiile din bază sunt
obținute pri n interogarea de tip select. De asemenea, sunt preluate din baza de date și facturile
încheiate cu fiecare furnizor în parte. Pentru accesarea lor, în view sunt prezente link -uri care
direcționează utilizatorul către aceste pagini. Astfel în cadrul fiecăru i link este transmis id -ul
facturii pentru furnizorul respectiv. Acțiunile de modificare și ștergere ale furnizorului sunt și
ele implementate în controller și sunt asemănătoare cu cele de la produse. Clienții sunt afisați,
ca și furnizorii, într -un tabel, în view -ul Clienti. În controller este implementată metoda care
preia datele aferente clientului din bază. Fiecărui client din tabel îi corespunde o anumită
factură. De aceea, în link -ul Facturi este transmis id -ul clientului respectiv. Spre deosebire de
furnizori, clienții au și persoane de contact (link -urile Persoane de contact) din tabel. Pentru
afișarea lor, în link este transmis id -ul clientului. În controller este creată conexiunea și apelată
funcția din baza de date ce aduce contactele pentru fiec are client.
Figura 1 5: Metoda ActivitateCuClientul din controller
38 5. Studiu de caz/scenariu de utilizare
Aplicația este utilă pentru sistemul de gestionare a stocurilor într-un depozit și al
facturilor într-o companie care conține produse hardware . Prin intermediul ei, utilizatorii se pot
loga și accesa stocurile, pot modifica stocurile, pot adăuga produse noi, clienți noi sau furnizori
noi, pot vizualiza facturile de vânzare (legătura cu clienții) sau facturile de cumpărare (legătura
cu furnizori i) sau pot vizualiza persoane le de contact de la clienții companiei . Aplicația are
următoarele pagini prezente în meniu: Start (pagina de început); Activitate ce conține în
submeniu: Facturi vânzare, Facturi cumpărare și Stocuri; Gestiune ce are ca și subm eniu
Produse și Categorii; Firme cu Furnizori și Clienti; Personal cu submeniu: Angajați,
Departamente și Orașe.
Aplicația se deschide cu pagina de autentificare. În cadrul acestei pagini utilizatorii se
pot autentifica folosind username și parola, astfel încât pot intra în sistemul de gestiune al
stocurilor și al facturilor. Fără a se conecta, aceștia nu pot vizualiza ce este în sistem. Utilizatorii
sunt stocați în tabela Utilizatori din baz ă, aceasta având pe lângă id , username si parola, și o
coloana Ti pUtilizator ce are ca valori 1 și 0. Valoarea 1 este pentru administrator, iar valoarea
0 pentru ceilalți utilizatori.
Figura 16: Autentificare
De asemenea, utilizatorul se poate deconecta din aplicație apăsând click pe Log out din
bara de meniu.
După logare utilizatorul este direcționat către prima pagină și anume Start. În Activitate
din bara de meniu se află un submeniu cu Facturi Vânzare, Facturi Cumpărare și Stocuri din
depozit .
39 Facturi Vânzare afișează un tabel cu toate facturile încheiate cu toți clienții companiei .
Acest tabel conține id -ul facturii, data și ora facturării, numele clientului pentru care a fost
încheiată factura , o coloană ce conține un link numit Detalii ,o coloan ă pentru Printare Factura
și o coloană pentru Printare aviz de insotire marfa . Pagina prezintă și funcționalitatea de
adăugare a unei facturi noi.
Figura 17: Facturi de vânzare
La click pe link -ul Detalii,utilizatorul este direcționat către pagina Detalii unde sunt
afișate detaliile produselor (id-ul produsului, denumirea, cantitatea, perioada de garanție și
prețul) aferente fiecărei facturi în parte.
Figura 18: Detalii pentru facturile de vânzare
La ap ăsarea butonului de Printare Factura , va fi afi șată pe alt ă pagin ă factura pentru
printare. Aceasta con ține în partea din st ânga compania pentru care s -a realizat aplica ția, iar în
partea dreapta sunt afi șate datele clientului pentru care s -a emis factura. În partea de jos a
facturii sunt afi șate produsele, cantitatea fiecarui produs în parte , prețul produsului, valoarea
produsului și totalul facturii.
40
Figura 19: Factur ă fiscal ă
Avizul de înso țire al mărfii este asem ănător cu Factura Fiscala, diferen ța constă în fa ptul
că ace sta este întocmit în momentul livrării produselor.
Figura 20: Aviz de însoțire marfă
Facturi Cumpărare conține un tabel de afișare a facturilor încheiate cu toți furnizorii
companiei . Tabelul cuprinde: id -ul facturii, data și ora facturării, numele furnizorului , un link
41 Detalii , un link Printare Factura și un link către Printare aviz de însotire marf a ca și în cazul
facturilor de vânzare. Este prezentă și aici funcționalitatea de a adăuga facturi noi în sistem.
Figura 21: Facturi de cumpărare
La click pe link -ul Detalii se deschide pagina unde sunt afișate detaliile pentru fiecare
factură încheiată cu respectivul furnizor din tabel. Detaliile sunt afișate într -un tabel,
asemănător celui de la pagina cu detaliile facturilor de vânzare.
Figur a 22: Detalii pentru facturile de cumpărare
La click pe link -ul Printare Factura , ca și în cazul facturilor de vânzare , este afi șată o
pagin ă ce con ține factura întocmit ă cu furnizorii companiei.
Pagina Stocuri afișează un tabel ce cuprinde stocurile a ctuale, curente de produse din
depozit . Coloanele tabelului sunt produs id, denumire produs, categorie, cantitate, valoare.
Informațiile din tabel sunt afișate folosind view -ul StocActual din baza de date.
Figura 23: Stocur i
42 În meniul Gestiune există submeniul Produse și Categorii. La click pe Produse,
utilizatorul poate vedea un tabel cu produsele depozitului . În tabel sunt afișate informații despre
produse și anume id -ul, numele, categoria din care face parte produsul, prețu l, stocul inițial
(prezent și în pagina Stocuri sub denumirea de cantitate), perioada de garanție și încă două
coloane de modificare și ștergere. Pentru afișarea acestor informații din tabel s-a creat un join
între tabelele Produs și Categorie din baz ă.
Coloana Traseu conține câte un link către fiecare produs. La click pe aceste link -uri
utilizatorul este direcționat către o pagină unde este afișat drumul optim pentru găsirea
produsului în depozit. Pentru găsirea soluțiilor posibile s -a implementat algorit mul
Backtracking . Acest algoritm este utilizat pentru a capta soluțiile anumitor probleme de calcul.
Pentru obținerea rezultatului final, stiva este completată nivel cu nivel și astfel vor fi
generate soluțiile parțiale. Pentru ca soluțiile finale și cele parțiale să fie considerate bune, este
necesar să îndeplinească condițiile de validare și anume ca fiecare distanță parcursă pentru a
găsi drumul cel mai eficient să nu se repete. În cazul de faț ă pentru implementarea metodei de
backtraking a fost creată o matrice cu șapte linii și nouă col oane. S -au considerat componentele
0 (fiind culoarul pe unde se poate trece pentru a ajunge la produs) și 1 (fiind rafturile). S -a
inițializat locul de plecare ca fiind ușa de intrare în depozit.
Coloana Modificare conțin e link -uri pentru fiecare produs. Când utilizatorul apasă click
pe un link de modificare, aferent unui produs, este direcționat către o pagină unde sunt afișate
câmpurile corespunzătoare produsului (text-box-uri pentru nume,stoc inițial, preț, perioada
garanție i și un combo -box pentru categorie). Utilizatorul poate modifica informațiile din aceste
câmpuri.
Coloana Ștergere conține link -uri unde utilizatorul poate da click și șterge produsele.
Înainte de a șterge un produs utilizatorul este direcționat într -o pagină nouă unde este întrebat
dacă își dorește sigur ștergerea produsului din sistem. Utilizatorul nu are dreptul de a șterge
produse aflate pe facturile de vânzare sau cumpărare.
De asemenea, pagina conține și un link Adăugare produs, unde utilizatoru l poate adăuga
un produs nou. Pagina de adăugare produs are câmpuri reprezentate de text -box-uri pentru
numele produsului, stocul inițial, prețul și perioada de garanție, și un combo -box unde sunt
afișate categoriile din baza de date. Pentru a aduce catego riile în combo -box, s-a realizat o
interogare din baza de date.
43
Figura 24: Produse
Pagina Categorii conține un link Adăugare Categorie. Utilizatorul poate adăuga o
categorie nouă de produse la click pe acest link. În pagina de adăugare categorie sunt prezente
câmpurile Nume și Ordine afișare și butonul Adăugare. Câmpul Ordine afișare ajută la afișarea
categoriilor după o anumită ordine stabilită de utilizator.
Figura 25: Adăugare categorie nouă
În meniul Firme există submeniul Furnizori și Clien ți. Pagina de furnizori cuprinde un
tabel unde sunt afișate informații despre furnizorii firmei adică: id, nume, cui , adresa și facturi
de la furnizorii companiei .
44
Figura 26: Furnizori
La click pe link -urile de facturi se vor afișa facturile corespunz ătoare, încheiate cu
fiecare furnizor .
Pagina conține și un link Adăugare furnizor. În momentul cand se apasă click pe acest
link, se deschide o pagină nouă ce conține câmpuri corespunzătoare pentru adăugarea unui
furnizor nou.
Figura 27: Adăugare furnizor nou
Link -urile de modificare și ștergere permit utilizatorului dreptul de a modifica datele
despre furnizori în cazul în care firma respectiv ă își schimb ă denumirea, CUI -ul sau adresa,
precum si dreptul de a șterge un furnizor dac ă se încheie colaboararea cu acesta sau atunci c ând
respectiva firm ă se desfiin țează.
45 Pagina clienți afișează ca și în cazul furnizorilor,un tabel cu informații corespunzătoare:
id, nume, cui, adresa, facturi, persoane de contact. În pagin ă este prezentă și o filtrare,astfel
utilizatorii pot căuta un client după nume. Pagina prezintă și un link de Adăugare client.
Figura 28: Clien ți
Coloana Facturi conține link -uri pentru fiecare client. La click pe aceste link -uri se
deschid pagin i unde sunt afișate fa cturile încheiate cu respectivul client. Facturile conțin id -ul
lor, necesar pentru a le indentifica și data și ora factur ării.
Coloana Persoane de contact conține link -uri unde utilizatorii pot vizualiza persoanele
de contact pentru client, precum și alte informații referitoare la acestea (nume, prenume, telefon
și mail). Astfel pot fi contactați angajați ai firmei respective (clientul companiei), în cazul în
care apar diverse probleme sau pentru asigurarea transportului produselor.
– Numele și Prenumele sunt cele din cartea de identitate . Astfel se poate păstra
legatura cu persoana respectivă.
– CNP -ul este confidențial. Acesta este necesar pentru a verifica persoana, dar și
pentru detaliile din factură.
– Telefonul este important pentru c ă ajuta la negocierea cu angajatul companiei
care este clientul companiei .
– Email -ul este utilizat pentru schimb de informații, pentru a trimite diferite
oferte clientului.
Link -urile de modificare și ștergere ofer ă utilizatorilor drepturi de a modifica și șterge
clien ții din sistem. Modificarea are loc atunci c ând firma client își schimb ă denumirea, CUI -ul
sau adresa. Ștergerea se întâmplă atunci c ând se încheie colaborarea cu firma client, sau atunci
când aceasta se desfiin țează.
46
Figura 29: Persoane de contact
În bara de meniu a aplicației se afl ă Personal cu submeniul Angajați, Departamente și
Orașe. La click pe Angajați, se va deschide o pagină ce conține un tabel cu angajații companiei
(informa ții referitoare la angajați). În tabel există și opțiunea de modificare și ștergere a
angaja ților din sistem. Dac ă angajatul își schimb ă domiciliul sau este repartizat la un alt
departament administratorul poate ef ectua aceste modific ări. Dac ă angajatul demisionează
poate fi șters din cadrul sistemului.
De asemenea, se poate introduce și un angajat nou la click pe link -ul Introducere angajat
nou. În momentul adăugarii unui angajat, se creează pentru acesta și credențialele pentru logare.
Figura 30: Angajați
47 În continuare, avem Orașe. La click se va de schide această pagină ce conține un tabel
cu orașele unde compania are contacte (clienți, furnizori sau angajați ).
Figura 31: Orașe
Pagina Departamente conține un tabel unde sunt afișate departamentele din companie .
Figura 32: Departamente
Aplica ția prezint ă și o pagin ă care afișează un grafic ce reflect ă cantit ățile de produse
vândute în cadrul companiei.
Figura 33: Grafic vânz ări
48 CONCLUZII
În concluzie, o aplicație pentru managementul stocurilor într -un depozit de componente
hardware este necesar ă pentru angajații (utilizatorii) companie i, deoarece le ușurează foarte
mult munca și pot accesa într -un mod rapid stocurile, intrările și ieșirile în și din depozit ,
facturile încheiate etc. Centralizarea datelor și actualizarea stocurilor din depozit se realizează
prin intermediul bazei de date.
Aplicatia software ajută foarte mult la organizarea eficientă a companiei , a administrării
acest eia, deoarece interfața oferă utilizatorului o modalitate ușoara de a lucra și de a ține
controlul asupra st ocurilor și facturilor. În acest mod, pot satisface și cererile clienților, pot
asigura livrarea eficientă a produselor sau pot ține legătura cu persoane de contact de la aceștia .
Așadar, aplicația este eficientă și din punct de vedere al menținerii unei î nregistrări
exacte a cantității stocurilor. Astfel, compania nu va avea capacitatea de a lua decizii fără
cantități precise de inventar, și își poate pierde clienții.
Aplicația poate fi îmbunătățită prin a realiza și varianta aplicației de mobil. În acest mod,
utilizatorii ar putea să se conecteze pe telefon, atunci când apar situații urgente ce trebuie
rezolvate cât mai repede. De asemenea, o alta solutie de îmbun ătățire a aplicatiei ar fi și
menținerea unui raport cu cei mai fideli clien ți, și astfel compania le poate oferi acestora diverse
promo ții și reduceri. Codurile de bare pot reprezenta și ele o solu ție pentru a dezvolta ulterior
sistemul software al companiei . Implementarea unei func ționalit ăți pentru codurile de bare ar
fi foarte util ă deoarece, ofer ă mai mult ă vitez ă și precizie. Codurile de bare de pe etichetele
produselor ar putea fi utilizate la func ționalitatea de vindere a produsului și de efectuare a
facturii de v ânzare.
49 BIBLIOGRAFIE
I. Cărti și alte lucr ări de specialitate
1. Chand , Mahesh , and Talbot , David , Applied ADO.NET: Building Data -Driven
Solutions, Apress, 2003, ISBN:9781590590737 ;
2. Freeman , Adam , Pro ASP.NET MVC 5 , 2013 , ISBN 978 -1-4302 -6529 -0;
3. Kellenberger , Kathi , and Shaw , Scott , Beginng T -SQL, 2014, ISBN 978 –
1484200476 ;
4. Korotkevitch , Dimitri , Pro SQL Server Internals, ISBN 978 -1-4842 -1963 -8,
2014 ;
5. Loney, Kevin, and Bryla, Bob, Oracle Database 12c The Complete Refence,
2012, ISBN -13: 978 -0071801751;
6. Muller , Max, Essentials of Inventory Management, 2011, ISBN 978 –
0814416556 ;
7. Nixon, Robert, Learning PHP, MySQL, JavaScript, CSS & HTML5: A Step –
by-Step Guide to Creating Dynamic Websites , 2014, ISBN 978-1491949467 ;
8. Roodbergen , Kees Jan , René de Koster , Tho Le -Duc, Design and control of
warehouse order picking , 2007;
9. Troelsen , Andrew , and Japikse , Philip , C# 6.0 and the .NET 4.6 Framework,
Seventh Edition, Apress, 2015 , ISBN:9781484213339 .
II. Surse Internet
1. RightControl, Website, http://www.losoftware.co.uk/ ;
2. Simple Inventory Control , Website, http://smartapps.me.uk/ ;
3. Dynamic Inventory, Website,
https://www.softwareadvice.com/inventory -management/dynamic -inventory –
profile/ ;
4. BACKOFFICE, Basic Inventory Management Techniques For Better
Businesses, Sep 27, 2016,
https://www.shopkeep.com/blog/basic -inventory -management –
techniques#step -1;
5. STORE OPERATIONS, Inventory Management Solutions, Ian 16, 2016
https://www.shopkeep.com/blog/inventory -management -solutions .
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplica ție pentru managementul stocurilor într-un depozit [600385] (ID: 600385)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
