F 271.13Ed.3 Document de uz intern [614464]
F 271.13/Ed.3 Document de uz intern
Anexa 8
MINISTERUL EDUCAȚIEI NAȚIONALE
UNIVERSITATEA PETROL – GAZE DIN PLOIEȘTI
FACULTATEA: ȘTIINȚE ECONOMICE
DEPARTAMENTUL: CIBERNETICĂ, INFORMA TICĂ ECONOMICĂ, FINA NȚE
ȘI CONTABILITATE
PROGRAMUL DE STUDII: TEHNOLOGII INFORMATICE PENTRU AFACERI
FORMA DE ÎNVĂȚĂMÂNT: (IF/FR/ID): IF
Vizat
Facultatea …………….
(semnătura și ștampila) Aprobat,
Director de departament,
• (grad didactic, numele, prenumele și
semnătura)
Lect. univ. dr. Tudorică Bogdan
PROIECT DE DIPLOMĂ/LUCRARE DE LICENȚĂ SAU DISERTAȚIE
TEMA: APLICA ȚIE WEB CU BAZE DE DATE NOSQL
• Conducător științific:
• (grad didactic, numele, prenumele și
semnătura)
• Lect. univ. dr. B ucur Cristian
•
Consultant științific (dacă e cazul)
(grad didactic, numele, prenumele și
semnătura)
Absolvent:
(numele, prenumele și semnătura)
MANTA IONELIA ELIS
PLOIEȘTI
2019
CUPRINS
INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. 2
1.TIPURI DE BAZE DE DATE ………………………….. ………………………….. ………………………….. ……… 2
1.1.SCURTĂ PREZENTARE ………………………….. ………………………….. ………………………….. …….. 2
1.2.LIMBAJUL SQL VS NOSQL ………………………….. ………………………….. ………………………….. .. 2
1.3.DIFERENTE INTRE BAZELE DE DATE SQL SI CELE NOSQL ………………………….. …….. 3
1.4.AVANTAJELE SI DEZAVANTAJELE BAZELOR DE DATE NOSQL ………………………… 4
2.TEHNOLOGII UTILIZATE ………………………….. ………………………….. ………………………….. ………… 5
2.1.PREZENTAREA BAZEI DE DATE NOSQL – MONGODB ………………………….. …………….. 5
2.2.MODELUL DE DATE MONGODB ………………………….. ………………………….. …………………… 6
2.3.LIMBAJUL PHP ………………………….. ………………………….. ………………………….. ………………….. 7
3.DISTRIBUTIA COMERCIALA A MARFURILOR ………………………….. ………………………….. …… 9
3.1.SCURTA PREZENTARE ………………………….. ………………………….. ………………………….. …….. 9
3.2.FUNCTIILE DISTRIBUTIEI MARFURILOR ………………………….. ………………………….. …… 11
3.3.CANALELE SI CIRCUITELE DE DISTRIBUTIE ………………………….. …………………………. 13
3.4.DISTRIBUTIA FIZICA ………………………….. ………………………….. ………………………….. ………. 18
4.APLICATIE INFORMATICA – APLICATIE WEB CU BAZE DE DATE NOSQL. SITE WEB
PENTRU O FIRMA DE DISTRIBUTIE ………………………….. ………………………….. …………………….. 25
4.1. DIAGRAME UML ………………………….. ………………………….. ………………………….. ……………. 26
4.2. INTERFATA GRAFICA SI CODUL UTILIZAT ………………………….. ………………………….. . 28
4.3. ANALIZA STATISTICA A DATELOR ………………………….. ………………………….. …………… 37
CONCLUZII ………………………….. ………………………….. ………………………….. ………………………….. ….. 40
BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. …………………………. 41
2
INTRODUCERE
Lucrarea de fa ță își propune să scoată în eviden ță rolul bazelor de date in cadrul
firme lor, indiferent de obiectul de activitate pe care îl au. În acest caz am ales ca exemplu o
firmă care isi desfășoară activitatea în domeniul distribu ției mărfurilor.
Orice întreprindere trebuie să analizeze constant evenimentele evenimentele ce îi
influențează direct și indirect activitatea , având nevoie de modalit ăți rapide și eficiente de
stocare si accesare a datelor pe baza cărora vor pute a ulterior să facă previz iuni și să ia
deciziile potrivite în vederea cre șterii producativității și implicit a veniturilor.
Astfel , aplicatiile informatice vin în ajutorul întrep rinderilor, simplifică munca angajaț ilor și
susține ac tivitatea economică a firmelor.
Aplica ția web din cadrul acestei lucrări a fost realizată pentru o companie fictivă de
distribu ție a mărfurilor , dorindu -se prezentarea organiză rii, din punct de vedere informatic,
în cadrul unei firme de dimensiuni medii , aceasta av ând un parc auto format din 8 camioane
care distribuie marfa en -gros în întreaga țar ă.
Lucrarea es te structurtă in patru capitole astfel : în primul capitol sunt descrise cele
doua mari tipuri de baze de date, SQL și NoSQL, cu scoaterea în evidenț ă a caracteristicilor,
asem ănarilor și deose birilor dintre e le și avantajele folosirii bazelor de date NoSQL ; cel de –
al doilea capitol prezinta tehnologiile u tilizate in crearea aplicatiei informatice și an ume
bazele de date MongoDB și limbajul PHP. În capitolul 3 am prezentat activitatea de
distribu ție, ce reprezint ă, care sunt func țiile și caracteristici le sale, iar ultimul capitol prezinta
aplica ția și detali i tehnice despre modul în care a fost proiectat ă si im plementată.
3
1. TIPURI DE BAZE DE DATE
1.1. SCURTĂ PREZENTARE
Organizatiile au nevoie să stocheze cantitatile mari de date pentru a le putea folosi
mai tarziu la realizarea unor previziuni si analize de bussines, cu scopul de a obtine un avantaj
competitiv.
Firmele stochează datele, in mare parte, in baze de date relationale, pentr u a le putea accesa
ori de cate ori este nevoie si a realiza intr -un mod mai facil analizele de piată necesare. Pe
lângă acestea, in ultima perioadă s -a dezvoltat un nou concept de baze de date non relationale
numite NoSQL (Not Only SQL).
Conform unui stud iu realizat de Universitatea Southern California cantitatea de date
adaugată în 2006 a fost de 161 de exabytes. Doar un an mai tarziu, în 2007 capacitatea totală
s-a ridicat la 295 de exabytes, o creștere cu aproape 200%. Altfel spus, există o cantitate ma re
de informație în lume și aceasta crește exponențial. De aici survine și nevoia de baze de date
web ce suportă cantități mari de date.
1.2. LIMBAJUL SQL VS NOSQL
Limbajul SQL și sistemele de baze de date relaționale bazate pe acesta constituie unul
dintre
cele mai importante tehnologii de fundație din industria computerelor. A fost dezvoltat in
cadrul companiei IBM de către Donald D. Chamberlin și Raymond F. Boyce în anul 1974.
Pe lânga aceasta, alte două dintre cele mai mari companii de software din lume folosesc
limbajul SQL – Oracle si Google. Exemple: MySql, Oracle, Sqlite, Postgres și MS -SQL.
Bazele de date NoSQL, supranumite si “Noua generatie de baze de date”, oferă un
mecanism de stocare si recuperare a datelor ca re sunt modelate in alte mijloace decât relatiile
tabelare utilizate in bazele de date relationale. Au aparut la sfarsitul anilor ’60, fără insă a
purta numele de NoSQL. Popularitatea lor a crescut la inceputul secolului XXI, devenind
din ce in ce mai uti lizate in aplicatiile web de mari dimensiuni.
4
In 1998, Carlo Strozzi a folosit prima dată termenul de NoSQL, reprezentând numele bazei
sale de date relaționale open -source fără interfață SQL. Termenul a fost reintrodus în 2009
de către Eric Evans în cadru l unui eveniment cu tema baze de date distribuite open -source.
O definiție a bazelor de date NoSQL este dată de site -ul nosql -database.org. Acesta
caracterizează bazele de date NoSQL ca noua generație de baze de date ce îndeplinesc
următoarele condiții: nu sunt relaționale, sunt distribuite, open -source și se caracterizează
prin scalabilitate orizontală. In prezent există companii care au dezvoltat propriile baze de
date NoSQL, printer acestea se numără Amazon si Google. Acestea au dezvoltat Dynamo și
Big Table ce stau la baza multor alte baze de date NoSQL existente acum pe piață. Exemple:
MongoDB, BigTable, Redis, RavenDb, Cassandra, Hbase, Neo4j și CouchDb.
1.3. DIFERENTE INTRE BAZELE DE DATE SQL SI CELE NOSQL
a. Bazele de date SQL sunt baze de date relational e, in timp ce bazele de date NoSQL
sunt
numite baze de date non -relationale sau distribuite.
b. Bazele de date SQL au o schema predefinită; cele NoSQL au o schemă nestructurată;
c. Bazele de date SQL sunt structurate pe tabele, având n rânduri de date; cele NoSQ L
sunt bazate pe documente, perechi de chei -valoare, baze de date grafice. Acestea din
urmă nu au definitii standard pe care sa le respecte;
d. Bazele de date SQL sunt scalabile pe vertical (cresterea incărcării se poate realiza
prin cresterea RAM, CPU, SSD p e un singur server), în timp ce bazele de date NoSQL
sunt scalabile pe orizontală (se poate creste numarul de servere pentru gestionarea
volumelor mai mari de date).
e. Bazele de date SQL sunt scalate prin creșterea puterii calului hardware -ului. Bazele
de date NoSQL sunt scalate prin creșterea serverelor de baze de date din grupul de
resurse pentru a reduce sarcina.
f. Bazele de date SQL sunt mai stabile, promit atomicitatea si integritatea datelor si
astfel sunt potrivite pentru aplicatiile bazate pe tranzacti i mari, complexe pe de alta
parte, cele NoSQL sunt mai flexibile și sunt mai usor de adaptat la schimbările ce
apar în decursul anilor.
5
g. Proprietătile bazelor de date SQL se prescurtează ACID (atomicitate, consistență,
izolare și durabilitate), iar cele re feritoare la NoSQL sunt reprezentate de teorema
CAP (toleranță consistenței, disponibilității și partiționării).
Conform unui studiu realizat de 451 Group Research intitulat MySQL vs. NoSQL
and NewSQL (un set de baze de date care isi propune sa adauge mod elului relational
functionalitatile si performantele caracteristice modelului NoSQL). Intre anii 2009 și 2011 s –
a înregistrat o scădere în utilizarea MySQL de la 82% la 73%. Studiul a fost efectuat asupra
unui eșantion compus din 347 de utilizatori de baze de date opensource. 49% din respondenți
au abandonat soluțiile MySQL pentru a migra la soluții NoSQL. Astfel se poate observa
amenințarea directă pe care o presupune NoSQL asupra MySQL.
1.4. AVANTAJELE SI DEZAVANTAJELE BAZELOR DE DATE
NOSQL
Avantaje:
a. Ajută la gestionarea volumelor mari de date structurate, semi -structurate și
nestructurate
b. Foloseste programarea orientată obiect, ușor de utilizat și flexibilă
c. Manipularea datelor obiect se realizează prin furnizarea de către utilizator a cheii
primare a obiectul ui – avantaj ce este dat de folosirea modelului DHT (
Distributed Hash Table ) a serverelor
d. Arhitectură eficientă, de tip scale -out, în locul unei arhitecturi monolitice
costisitoare
e. Procesarea se face online, la o performanță înaltă deoarece sistemul este proiectat
astfel încât să nu fie dependent de componentele hardware.
f. Acestea permit un transfer mare de date, în comparație cu RDBMS -urile ( ). Ca
de exemplu, Google este capabil să proceseze date la nivelul zecilor petabyte într –
o zi prin abordarea MapR educe
g. Sistemele NoSQL se potrivesc foarte bine și în tehnologia Cloud, care se bazează
pe virtualizare.
6
Dezavantajele:
a. Dar pentru moment, securitatea este un factor limitator pentru implementarea
NoSQL.
a. Consistența datelor – datele nu rămân consecvente i n timp ce se deplasează; există
riscul ca datele de pe noduri diferite să nu se sincronizeze .
b. Lipsa standardizării – limbajul de proiectare si interogare variază in functie de diverse
produse NoSQL. Aceasta poate ingreuna invătarea bazelor de date NoSQL.
c. Se folosesc modele non -normalizate ceea ce poate duce la suprapunerea obiectelor
din baza de date.
d. Fiind un tip de baze de date relativ nou si inca in dezvoltare, suportul oferit pentru
acestea este limitat iar persoanele calificate in folosirea lor sunt ma i putine decât cele
pentru bazele de date SQL.
e. Necesită cunostinte solide pentru a fi instalate si mentinute.
2. TEHNOLOGII UTILIZATE
2.1. PREZENTAREA BAZEI DE DATE NOSQL – MONGODB
MongoDB este una dintre cele mai folosite baze de date NoSQL, scrisă in C++, este
liber de utilzat, are o schema dinamică, urmă reste modelul cheie valoare si lucrează cu date
stocate in format document JSON.
Este usor de utilizat deoarece porneste de la conceptele de baze de date traditionale, iar
principala deosebire constă in faptul că in MongoDB nu există câmpuri predefinite, sau
scheme pentru câmpurile dintr -un document, iar tipurile lor pot să varieze in functie de
utilitate. Imaginea de ansamblu asupra datelor poate fi usor modificată datorită faptului că
nu este obligatoriu ca o colectie să aiba structură omogenă.
Aceasta e ste ideală atât pentru proiecte mici, de test, cât și pentru proiecte ce implică un
volum mare de date.
7
2.2. MODELUL DE DATE MONGODB
Un sistem MongoDB are următoarea structură: un set baze de date -> un set de colecții
-> un set de documente -> un set de câm puri -> o pereche cheie -valoare.
O cheie este un nume (string), iar o valoare poate fi orice tip de dată: string, integer, float, un
document, etc.
Figura 2.2.1. Paralela MySQL vs MongoDB
Sursă: https://ro.wikipedia.org/wiki/MongoDB
Caracteristicile MongoDB:
a. MongoDB stochează datele sub formă de documente (obiecte)
b. Disponibilitatea – Procesul de failover asigură disponibilitatea automată a datelor.
c. Partitionarea datelor pe orizontală se face autom at. Scrierile si citirile sunt distribuite
pe partitii.
d. Limbajul de interogare păstrează in mare parte principiile C++ si SQL, dar cu unele
imbunătatiri
e. Modificările sunt făcute rapid operatiile de actualizare sunt atât atomice cât si
traditionale.
f. Pot fi stocate fisiere de dimensiuni mari fără a complica stiva de date.
8
g. Dintre bazele de date NoSQL existente, MongoDB este una dintre cele mai folosite
si astfel se pot accesa online tutoriale, cărti si forumuri.
h. Instalarea este facilă si se poate realiza pe Wi ndows, Linux, Ubuntu si OS X.
Avantajele utilizării MongoDB
a. Viteza – in cazul interogărilor simple, această bază de date răspunde rapid deoarece
toate datele sunt stocate intr -un singur documente si sunt astfel eliminate operatiile
de conectare.
b. Gestionab il – este ușor de utilizat atât pentru dezvoltatori, cât și pentru administrator.
c. Schemă dinamică – există posibilitatea de a vă schimba schema de date fără a
modifica datele deja existente
d. Scalabilitate – ca orice tip de bază de date NoSQL, Mongo este sc alabilă pe
orizontală.
Companiile care folosesc acest tip de bază de date fac parte din domenii diverse: Google,
Ebay, Adobe, EA, Cisco, UPS, Facebok, etc.
2.3. LIMBAJUL PHP
PHP (Php: Hypertext Processor) este un limbaj de programare folosit astăzi pe scară
lagră pentru dezvoltarea paginilor dinamice si aplicatiilor web.
Este unul din cele mai importante limbaje de programare web open -source și server -side,
există versiuni disponibile pentru aproape toate web serverele și pentru toate sistemele de
operare.
PHP a fost creat de către Rasmus Lerdorf, în anul 1994 ca o extensie a
limbajului Perl, și apoi ca o serie de CGI-uri compilate. Acesta l -a folosit initial pentru a
genera un curriculum vitae și pentru a urmări numărul de vizitatori ai unui site.
Mai târziu a evoluat în PHP/FI 2.0 si apoi proiectul a început să ia amploare după ce Zeev
Suraski și Andi Gutmans, de la Technion au lansat o nouă versiune a interpretorului PHP
(PHP 3.0) în vara anului 1998 . La inceput acest limbaj se numea Personal Home Page Tool s,
dar ulterior Suraski si Gutmans i -au schimbat și numele în acronimul actual. Cei doi au rescris
baza limbajului, producând astfel și Zend Engine în 1999. În mai 2000 a fost lansat PHP 4.0,
având la bază Zend Engine 1.0.
9
In urma unui stidiu realizat in 2 002 de Netcraft, s -a constatat că, din 37 de milioane de
domenii studiate, PHP -ul apare pe 9 milioane, fiind astfel unul dintre cele mai populare
limbaje server -side.
Popularitatea sa este in crestere datorită următoarelor caracteristici :
a. Familiaritatea : sintaxa limbajului este foarte ușoară combinând sintaxele unora
din cele mai populare limbaje Perl sau C;
b. Simplitatea : sintaxa limbajului este destul de liberă. Nu este nevoie de includere
de biblioteci sau de directive de compilare, codul PHP inclus înt r-un document
executându -se între marcajele speciale;
c. Eficiența : PHP -ul se folosește de mecanisme de alocare a resurselor, foarte
necesare unui mediu multiutilizator, așa cum este web -ul;
d. Securitate : PHP -ul pune la dispoziția programatorului un set flexi bil și eficient
de măsuri de siguranță;
e. Flexibilitate : fiind apărut din necesitatea dezvoltării web -ului, PHP a fost
modulariat pentru a ține pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat
de un anumit server web, PHP -ul a fost integrat pentru numeroasele servere
web existente: Apache, IIS, Zeus, server, etc.;
f. Gratuitate : este probabil cea mai importantă caracteristică a PHP -ului.
Dezvoltarea PHP -ului sub licență open -source a determinat adaptarea rapidă a
PHP-ului la nevoile web -ului, eficien tizarea și securizarea codului.
g. securizarea codului.
PHP este simplu de utilizat, fiind un limbaj de programare structurat, ca și C-ul, Perl-ul sau
începând de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinație a celor trei.
Datorită modularității sale poate fi folosit și pentru a dezvolta aplicații de sine stătătorare, de
exemplu în combinație cu PHP-GTK sau poate fi folosit ca Perl sau Python în linia de
comandă. Probabil una din cele mai importante facilități ale limbajului este conlucrarea cu
majoritatea bazelor de date relaționa le, de la MySQL și până la Oracle , trecând prin MS Sql
Server , PostgreSQL , sau DB2 .
PHP poate rula pe majoritatea sistemelor de operare, de la UNIX , Windows , sau Mac OS
X și poate interacționa cu majoritatea serverelor web . Codul dumneavoastră PHP este
10
interpretat de serverul WEB și generează un cod HTML care va fi văzut de utilizator
(clientului -browserului – fiindu -i transmis numai cod HTML).
Arhitectura tip LAMP a deve nit populară în industria web ca modalitate rapidă, gratuită și
integrată de dezvoltare a aplicațiilor. Alături de Linux, Apache și Mysql, PHP reprezintă
litera P, deși uneori aceasta se referă la Python sau Perl. Linux ocupă rolul de sistem de
operare pentru toate celelalte aplicații, MySQL gestionează bazele de date, Apache are rol de
server web, iar PHP are rol de interpretator și comunicator între acestea.
PHP foloseste extensii specifice pentru fișierele sale: .php, .php3, .ph3, .php4, .inc, .phtml.
Aceste fișiere sunt interpretate de catre serverul web iar rezultatul este trimis în formă de text
sau cod HTML către browser -ul clientului.
(https://ro.wikipedia.org/wiki/PHP )
3. DISTRIBUTIA COMERCIALA A MARFURILOR
3.1. SCURTA PREZENTARE
„Evoluția economiei atat la nivel global cat si național scoate în evidenă faptul că
informatizarea a ctivitațiilor și organizarea bazelor de date a devenit în mod progresiv un
sector foarte dinamic, aparatul economico -comercial cunoscand foarte mari schimbări pe
toate planurile, incepand cu metodele de vânzare, forme de distribuție, activitați de
aprovizi onare – repartiție.”(Vasile Robu ,2009)
Activitatea de distribuție reprezinta o componentă însemnată a activității comerciale.Astfel,
rolul primordial al distribuției este acela de a regulariza mișcarea bunurilor și serviciilor, între
producție și consum ș i de a satisface nevoile consumatorilor, furnizându -le servicii ca:
proximitatea prețului de vânzare, posibilitatea de a alege dintr -un sortiment larg bunurile și
serviciile ce corespund cel mai bine nevoilor și exigențelor lor etc.
Un produs iti atinge s copul atunci cand ajunge la consumatorul final, astfel marfa parcurge
un drum care nu este deloc simplu. Distributia si logistica sunt cele care asigura circulatia
marfurilor, legatra dintre producator si consumatorul final.
Din punct de vedere macroeconom ic, distributia este definita pe baza sistemului de relatii ce
au loc între trei domenii:
11
– productia – realizarea de bunuri necesare consumatorilor;
– consumul de bunuri pentru satisfacerea utilizatorului final;
– distributia – transferul de bunuri prin r aporturile comerciale de la producator la con-
sumator.
Figura 3.1.1 Transferul bunurilor de la producator la consumator
Sursa: http://www.scritub.com/economie/DISTRIBUTIA -MARFURILOR951972415.php
Astfel, distribuia se refera la toate acele activitati care asigura trecerea marfurilor de la un
producator, la agenti econimici utilizatori sau la consumatorul final.
Rolul distributiei:
– Transmite producatorului informati utile d e la consummator
– Regularizeaza miscarea bunurilor intre productie si consum; realizeaza legatura
dintre producator si consumator prin actiuni de transport, stocare, manipulare,
demontare sau asamblare, ambalare, vînzare.
– Satisfice consumatorul prin livrare a produsului de care are nevoie
– Finalizeaza activitatea economica a societatilor comerciale si incheie ciclul economic
al produselor
Din punct de vedere microeconomic, procesul de distributie trebuie sa cuprinda activitati
speciale de marketing legate de t ransportul marfurilor, astfel se are in vedere relatia dintr cele
patru componente ale marketingului mix: produsul, pretul, plasare (distributia) si promovarea
produsului.
Figura 3.1.2. Componentele marketingului mix
12
Sursa: http://www.scritub.com/economie/DISTRIBUTIA -MARFURILOR951972415.php
Comercantii au ca scop mentinerea unui produs pe piata in conditii de rentabilitate,
iar distributia ajuta la indeplinirea acestui obiectiv, realizand un proces amplu care incepe in
momentul in care un produs este lansat si se incheie atunci cand acesta ajunge in proprietatea
consumatorului final si nu nu bazeaza doar pe simplul transport al marfurilor de la producator
la consumator.
Distributia este insotita de fluxuri ce apar intre producator si consumator:
– Fluxul produsului
– Fluxul negocierilor
– Fluxul titlului de proprietate
– Fluxul informational
– Fluxul promotional
Distribuia se realizeaza pe doua cai:
– Contact direct intre producator si beneficiar
– Canale specializare – producatorul si cumparatorul nu vin in contact direct
3.2. FUNCTIILE DISTRIBUTIEI MARFURILOR
Distributia fizica (Logistica)
Ansamblul activitatilor care permit deplasarea fizica a bunurilor de la producator la
consumator si cuprinde urmatoarele functii:
a. formarea asortimentului comercial si livrarea: transformarea ofertei de produse în
loturi, expedierea lor catre destinatar sau predarea catre beneficiari;
b. transportul si manipularea: deplasarea în spatiu si transferul produsu lui spre locul lui
de stocare si distributie;
c. receptia: verificarea cantitativa si calitativa a loturilor de marfuri; în mod obisnuit, ea
se efectueaza de catre beneficiar, la sediul acestuia. În unele cazuri însa, receptia se
efectueaza la furnizor în mom entul pregatirii loturilor pentru expediere;
13
d. stocarea: asigura reglarea în timp si spatiu a ofertei si a cererii. Perioada de stocare si
verigile unde se realizeaza aceasta, depind de natura marfurilor, particularitatile
productiei si ale consumului, modul de organizarea a distributiei, precum si de factori
subiectivi.
Serviciile oferite suplimentar
Acestea depinde de anumiti factori si pot consta in:
– Servicii materiale: preasamblare, asamblare, sortare, instalare, intretinere sau
reparare.
– Servicii de fina ntare: un intermediar poate achita catre furnizor contravaloarea
bunurilor inainte de a fi vandute sau cand producatorii finanteaza distribuitorii prin
amânarea platii dupa vânzarea marfii;
– Servicii de promovare si informare: afisarea pretului, publicitate la locul vanzarii,
actiuni de promovare a vanarilor sau comunicarea caracteristicilor produselor.
Distributia inversa
Se refera la componentele materiale recuperabile dupa consum, la deseuri, ambalaje, care
parcurg drumul invers, de la consumator la produ ctie, unde se încorporeaza într -un nou ciclu
economic.
Aceasta presupune efectuarea unor operatiuni de manipulare suplimentare, care comporta
anumite circuite si cheltuieli specifice: receptia de la consumator, trierea, încarcarea,
descarcarea, operatiuni de evidenta.
3.3. CANALELE SI CIRCUITELE DE DISTRIBUTIE
Canale de distributie
In analiza distributiei vor fi luate in calcul urmatoarele elemente:
a. Apart commercial: se refera la firmele de comert si de distributie precum si la zone,
localitati, judete sau tar i;
14
b. Retea de distributie: persoanele fizice sau juridice care intervin in distributia unui
produs;
c. Circuit de distributie: drumul parcurs de un produs de la stadiul de productie la cel de
consum, si este format de un ansamplu de agenti economic ice au rol d e intermediary;
d. Canal de distributie: reprezinta categorille de intermediari de acelasi tip, angosistii
formeaza un canal, iar detailistii alt canal. Cu cat drumul pe care il parcurge marfa
este mai lung si trece prin mai multe canale, cu atat pretul sau d e vanzare va creste;
3.3.1. Circuitele de distributie a marfurilor
a. Circuitul direct producator -consumator : producatorul vinde direct consumatorului
final. Este specific, în primul rând, serviciilor, datorita unor particularitati ale acestora
(intangibilitatea si inseparabilitatea de producator) care creeaza imposibilitatea
miscarilor în spatiu; de aceea vânzarea lor se realizeaza adesea concomitent cu
producerea si consumul serviciilor respective.
b. Circuitul scurt , producator -intermediar -consumator: acest tip de ci rcuit, cu un singur
intermediar intervine într -o mare masura în cazul bunurilor de utilitate productiva si
bunurilor de consum, dar în masura diferita. În cazul produselor cu destinatie
productiva, intermediarii apar atât ca angrosisti cât si ca detailisti între unitatile
producatoare pe de o parte si consumatorii care pot fi unitati publice (regii autonome
si unitati comerciale) sau agenti economici particulari, pe de alta parte. În cazul
bunurilor de consum final, este vorba despre produsele pe care detai listii le
achizitioneaza direct de la producator.
c. Circuitul lung, producator -intermediar -intermediar -consumator, alcatuit din doua
verigi intermediare consecutive, este specific pietei bunurilor de consum, în pozitia
de intermediari fiind un angrosist si u n detailist. Acest circuit de distributie se impune
în cazul circulatiei marfurilor cu asortiment complex, cu cerere sezoniera sau a celor
care impun efectuarea unor operatiuni prealabile (ambalare, paletizare,
containerizare). În unele cazuri, angrosistul desfasoara si activitati cu amanuntul,
vânzând produsele direct consumatorului final.
15
d. Alte circuite, în practica, marfurile pot trece si prin circuite cu mai mult de doi
intermediari, (circuite foarte lungi) dar acest fapt duce la cresterea costurilor
distributiei si implicit, a pretului de vânzare la consumatorul final.
Canale pentru produse de consum
Canalul A – angrositii preiau marfurile de la producatori si le distribuie catre consumatorul
final prin intermediul agentilor economici detailisti. Un exem plu ar fi producatorii de bauturi
sau de tigari; acestia vand angrosistilor care vand detailistilor si de aici marfa ajunge la be-
neficiar.
Canalul A
A B
Producator Producator
↓
↓ Agent sau broker
↓
Angrosist Angrosist
↓ ↓
Detailist Detailist
↓ ↓
Consumatori Consumatori
Figura 3.4.1 Canalele de distributie pentru produsele de consum
16
Canalul B – In acest caz, marfa ajunge de la producator la angrosist prin inter mediul agentilor,
apoi produsele isi urmeaza cursul ca in cazul canalului A si anume: angosist – detailist –
consumator final.
Canale pentru produsele industriale
Daca o anumita linie de produse industriale este tintita de un numar mare de clienti, fabrica ntul
poate folosi un canal care include distribuitorii industriali, comerciantii care au drept de
proprietate asupra produsului.
Canalul C
C D E
Producator Producator Producator
↓ ↓ ↓
Distribuitor industrial Agent Agent
↓ ↓ ↓
Cumparator industrial Cumparator industrial Distribuitor industrial
Cumparator industrial
Figura 3.4.2. Canale de distributie pentru produsele industriale
Canalul D – prin acest canal, legatura dintr e producator si cumparatorul final este realizata de
agenti. Fabricantul care prefera folosirea canalului D este de obicei acela care nu detine un
departament de marketing pentru a afla informatii referitoare la cerintele pietei.
Canalul E – marfa este tra nsportata de la agentii conomici producatori la distribuitorii
industriali si apoi la cumparatorii industriali. Este o varianta a canalului D, potrivita pentru un
fabricanta care nu a are o forta de vanzarea prea mare.
Canalele multiple de distributie
17
In functie de nevoile si cerintele pietei pe care activeaza, un fabricant poate folosi, in acelasi
timp, mai multe canale de distributie.
Integrarea verticala a unui canal de distributie reprezinta combinarea a doua sau mai multor
etape ale acestuia sub incid enta managementului.
Integrarea orizontala a canalului de distributie se refera la combinarea institutiilor la acelasi
nivel de operare sub o singura conducere.
Mare parte dintre sistemele de distributie din prezent îmbraca si forme
complexe: corporativa, administrativa sau contractuala.
Canale de distributie
Pentru a alege cel mai potrivit canal trebui analizate avantajele si dezavantajele fiecaruia.
Canalul direct este singurul posibil pentru anumite produse: bunuri de echipament majore
(de exemplu IBM p entru marile sisteme informatice).
Canalul scurt are urmatoarele avantaje:
a. Distribuia marfurilor este mai usor controlata;
b. Producatorul detine in permanenta contactul cu piata;
c. Produsul ajunge mai repede la beneficiar;
d. Garantia unui serviciu post – vanzar e mai bun.
Dezavantajele canalului scurt:
a. recrutarea si organizarea unei forte de revânzare pentru monitorizarea detailistilor;
b. necesitatea controlarii activitatii promotionale pentru a asigura participarea tuturor
detailistilor;
c. cresterea sarcinilor admin istrative (facturari) si logistice (transport);
d. aparitia unor eventuale conflicte în cazul unei repartitii proaste a punctelor de
vânzare.
Canalul lung are urmatoarele avantaje:
a. asigura o larga prezentare a produsului cu un minim de cheltuieli;
18
b. producato rul poate avea un departament de vanzare redus deoarece lansarea si
plasarea produselor este realizata de angrosisti
Dezavantaje:
a. controlul asupra distributiei nu este atat de mare ca in cazul canalului scurt;
b. creste dependenta fata de agentii economici an grosisti;
c. pierdea contactului cu beneficiarul final;
d. posibile conflicte cu marii distribuitori.
Circuitele de distributie
Acestea pot fi:
a. Simple sau complexe (caracteristica data de numarul de stadii);
b. Traditionale – atunci cand produsul trece prin canale de distributie lungi;
c. Asociat sau integrat
d. Diverificat – atunci cand face apel la diferitele forme de comert.
Circuitele de distributie prezinta si o clasificare mai complexa:
a. circuitul ultrascurt : vânzare directa producator -consumator;
b. circuitul scurt pr oducator – întreprindere de vânzare prin corespondenta;
c. circuitul scurt producator – detailisti, în care producatorul nu îi selectioneaza detailis-
tii;
d. circuitul scurt producator – detailisti, în care producatorul îi selectioneaza detailistii,
care pot bene ficia de o zona de exclusivitate;
e. circuitul scurt producator – grosist – detailisti (circuitul traditional);
f. circuitul producator – grosist – detailisti înlantuiti: în acest circuit grosistii si detailistii
au încheiat un contract asa -zis de lant voluntar. Grosistul poate cumpara de la fabri-
cant prin intermediul unui grup de cumparare;
19
g. circuitul lung producatori – grupuri de cumparare independente – detailisti . Functia de
gros esteexercitata de o organizatie creata în consum de detailisti care cumpara de la
fabricati prin intermediul unei centrale de referinta care selectioneaza producatorii si
produsele;
h. circuitul lung producator – centrale de cumparare si service (joaca rolul de francizor)
– detailistifrancizati;
i. circuitele marelui comert : producator – centrale de cumparare -mari întreprinderi
de distributie;
j. circuitul marelui comert : producator – magazin de detail al marelui comert. Magazi-
nele seaprovizioneaza direct de la fabricant.
Retele de distributie
Întreprinderile au la dispozitie posibilitati multi ple de organizare ale unei retele de
distributie. Ele trebuie sa tina cont în primul rând daca produsul este dirijat catre toti
comerciantii sau la un numar redus si în al doilea rând de tipul de legatura de natura juridica
care trebuie avuta în vedere cu distribuitorii.
Strategia de distributie reprezinta în prima instanta suma strategiilor particulare care
se aplica celor trei componente: canal, circuit, retea, identificându -se uneori cu una din aceste
strategii, în special cu cea a canalului de distribut ie.
3.4. DISTRIBUTIA FIZICA
Consideratii privind logistica de distributie
Sistemul logisticii de distributie este alcatuit din patru parti functionale:
1. Input: inregistrarea în sistem a obiectivelor procesului de transfer al produselor. Se refera
la:
– activitatile logisticii în domeniul deciziei proiectarii depozitelor, a procesului de depozitare,
transportului, ambalarii si coordonarii comenzilor;
– impulsuri de comanda, respectiv informatii asupra atingerii obiectivelor sistemului;
– informatii din siste mele superioare, care sunt necesare pentru realizarea scopului propus.
20
2. Proces : toate activitatile necesare pentru realizarea logisticii de distributie.
3. Output : este materializat prin service -ul de livrare atins în procesul logistic. Componentele
service-ului de livrare:
– termenul de livrare;
– promptitudinea livrarii;
– calitatea livrarii;
– flexibilitatea livrarii.
Managementul logisticii de distributie – prin care se întelege planificarea, organizarea
si controlul activitatii logistice – doreste ob tinerea nivelului dorit al serviciilor, în limita
costurilor necesare atingerii acestui scop. Cu alte cuvinte, sistemul logistic de distributie al
unei întreprinderi trebui sa asigure produsul potrivit, în cantitatea potrivita, la timpul si locul
potrivit cu costuri minimale.
Activitatile logisticii de distributie
Activitatile logistici de distributie sunt diferite in funtie de: natura produselor, tipul
canalului de distributie, destinatia produselor sau dimensiunea producatorului. Luand in
calcul acesti fa ctori putem vorbi de activitati precum:
Activitatea de proiectare si organizarea depozitelor
Îndeplinirea functiei de gross de catre un angrosist presupune derularea în depozitul
comercial a unui flux tehnologic complet compus din urmatoarele
procese: preluare (receptie), depozitare (stocare) si livrare . În general, pentru orice suprafata
comerciala care întruneste atributele de depozit, fluxul tehnologic se compune din: intrare –
pastrare – depozitare – stocare – vânzare – livrare.
Activitatea de depozitar e
Avand in vedere ca activitatile de productie si consum au timpi diferiti de realizare, este
absolut necesara activitatea de depozitare a marfurilor pana la momentul vanzatii. Este
important ca firmele sa aleaga locul de depozitare a produselor in functie de factori precum
zona, tipul si cantiteatea marfurilor produse.
În functie de amplasarea principalelor zone: receptie, depozitare, expeditie, într -un depozit,
exista trei variante de flux de marfuri:
21
– circulatia marfurilor în linie dreapta: când zonele de receptie si expeditie sunt
paralele fiind asezate pe cele doua laturi opuse ale depozitului;
– circulatia marfurilor în arc de cerc de 90o când zonele de receptie si expeditie sunt
amplasate perpendicular pe doua laturi alaturate ale depozitului;
– circulatia marfurilor în arc de cerc de 180o când zonele de receptie si expeditie sunt
amplasate pe aceiasi latura a depozitului.
La amenajarea interioara a depozitului trebuie cunoscute urmatoarele elemente:
– sistemul constructiv al depozitelor : suprafata si înaltime; numarul nivelelor pe care
se desfasoara suprafata depozitului; dotarea cu rampe de încarcare – descarcare;
– conditiile de depozitare – determinate de specificul produselor; cerinte speciale de
temperatura si umiditate, necesitatea accesului pen tru controlul periodic si efectuarea de
operatii de întretinere a produselor în timpul depozitarii; asigurarea respectarii ordinii
"primul produs intrat – primul produs iesit" (FIFO);
– modul de ambalare : natura, forma geometrica si rezistenta mecanica la stivuire a
ambalajelor de transport;
– tipul de palete folosit: simple, cu montanti, lada, speciale.
În sfârsit, la implantarea detaliata a grupelor de marfuri în halele de depozitare,
trebuie sa se aiba în vedere urmatoarele criterii:
– caracteristicile m arfurilor: frecventa de livrare, volum, greutate, gradul de
complementaritate a diferitelor articole;
– cerinte tehnice: particularitatile de manipulare, de stivuire a ambalajelor colective,
de dotare cu anumite utilaje specifice.
Activitatea de transport
Transportul este un element elential al activitatii logistice deoarece are efect direct
asupra pretului de vanzare al produselor, performantele de livrare si conditiile in care se afla
produsele atunci cand ajung la beneficiar. Exista cinci tipuri de trans port: : rutier, feroviar,
pe apa, prin aer si transporturi speciale.
22
Transportul rutier – este folosit pe o scara larga fiind întâlnit în toate zonele unde poate fi
realizata infrastructura necesara. Principalele caracteristici ale sistemului de transport auto
sunt urmatoarele:
– mobilitate ridicata: marea varietate a mijloacelor auto, posibilitatea utilizarii pe orice
fel de drumuri, viteze variabile de deplasare;
– flexibilitate ridicata determinata de varietatea constructiva a mijloacelor de transport
ceea ce permite transportul oricarui tip de marfuri în conditii diferite de ambalare, forma
fizica sau prezentare;
– investitii reduse necesare organizarii parcului de mijloace de transport. Investitiile
predominante sunt cele pentru organizarea activitatii de întretinere – reparatii;
– mijloacele de transport realizeaza cele mai eficiente legaturi între celelalte sisteme
de transport si au cea mai mare eficienta pe distante scurte;
– stationarile între punctul de încarcare – descarcare sunt reduse ca numar si durata,
fapt ce -i determina pe multi producatori si comercianti sa recurga la acest sistem atunci când
doresc efectuarea operativa a unor transporturi terestre chiar în cazul distantelor mari.
Transportul feroviar – reprezinta unul dintre cele mai iefti ne mijloace de transport.
Particularitati:
– regularitatea circulatiei în toate anotimpurile, ziua si noaptea, si aproape în orice
conditii meteorologice;
– capacitatea de transport foarte mare si efectuarea transporturilor pe distante lungi si
foarte lung i;
– viteza de transport este mai redusa, dar înregistreaza o tendinta de crestere continua
sub incidenta progresului tehnic actual;
– necesita investitii mari comparativ cu transportul auto atât în ceea ce priveste
mijloacele de transport cât si în ceea c e priveste retelele de circulatie;
– costul întretinerii mijloacelor de transport feroviar si a liniilor de cale ferata este de
asemenea mai mare comparativ cu cel aferent mijloacelor de transport auto.
Transportul naval – poate transporta o cantitate ins emnata de marfuri.
23
Pe de o parte, costul transportului pe apa este foarte scazut, dar pe de alta parte transportul
pe apa este cel mai lent mod de transport, fiind influentat uneori si de conditiile
meteorologice. Principalele caracteristici ale acestui t ip de transport sunt urmatoarele:
– raza de actiune foarte mare asigurând legaturi între zone ale globului situate la
distante foarte mari, fiind sub acest aspect singurul sistem care poate realiza acest fel de
legaturi;
– sistemul este adecvat în special pentru transportul marfurilor de masa cu valoare
unitara redusa la care costul transportului este mai important decât durata acestuia;
– necesita un numar mare de transbordari si transporturi auxiliare care influenteaza
costul total al transportului;
– transporturile fluviale si maritime sunt mult mai lente si mai putin punctuale decât
cele feroviare, auto si aeriene;
– utilizarea lor este conditionata de accesul la caile de navigatie;
– riscul în transportul naval este mai ridicat.
Transportul aerian – se face in general pentru marfuri si loturi nu farte voluminoase. Pretul
acestuia il depaseste pe al celui feroviar sau rutier, insa firmele apeleaza la el deoarece este
cu mult mai rapid.
Particularitati:
– permite expedierea ritmica a produselor în zone in accesibile altor mijloace de
transport;
– viteza mare asigura operativitatea servirii clientilor;
– regularitatea transporturilor, adica posibilitatea desfasurarii acestuia dupa un
program precis atât ziua cât si noaptea;
– elimina o serie de cheltuieli cu depozitarea marfurilor si a transbordarilor care cer
timp si uneori duc la deteriorarea marfurilor;
– necesita investitii mari pentru asigurarea mijloacelor de transport si a infrastructurii
pentru exploatarea acestora.
24
Transporturile speciale : aceste tra nsporturi se efectueaza cu mijloace neconventionale
si au o pondere redusa în totalul transporturilor de marfuri la nivelul unei economii nationale.
În aceasta categorie se include: transportul cu funiculare si teleferice, transportul prin
conducte, transp orturi feroviare specifice.
Activitatea de ambalare
"Functia de baza a oricarui ambalaj este aceea de a proteja continutul sau în timpul
operatiunilor de deplasare, depozitare si utilizare. Acest criteriu joaca un rol important în
alegerea formei, dimensiu nii si materialelor ce vor fi utilizate. În plus, exista si tendinta de a
subordona aceste aspecte practice necesitatilor promotionale si celor legate de aspect".
(Michael, J. Daker, Marketing, Editura stiintifica si Tehnica, Bucuresti, 1973, p. 313)
Ambal ajul trebuie sa respecte urmatoarele cerinte:
– piata: natura consumatorilor, posibilitatile financiare;
– produsul: caracteristici mecanice, componente;
– utilizarea produsului: manipulare, sistemul de închidere -deschidere a
ambala jului;
– transportul;
– reteaua de distributie: organizarea interioara a magazinelor, necesitatea de a
marca – produsul, conditii de depozitare;
– reglementari juridice: norme, uzante, teste oficiale.
Este necesar ca ambalajul sa pr otejeze cat mai bine produsul, sa aiba volum si greutate cat
mai mici astfel incat cheltuielile de transport sa fie minime.
Adaptarea ambalajului la un anumit produs reprezinta un proces complex care presupune
identificarea:
– functiilor pe care ambalajul trebuie sa le asigure;
– mijloacelor prin care se pun în functiune aceste functii;
– obiectivele care se doresc a fi atinse.
25
Onorarea comenzilor
Distributia fizica începe de la momentul primirii unei comenzi de la un client si se incheie
cand produsele acestuia ajung la beneficiarul final. Scurtarea ciclului comanda -plata este
deosebit de importanta; cu cât derularea acestui ciclu dureaza mai mult, cu atât clientii sunt
mai putin satisfacuti, iar profiturile firmei sunt mai m ici.
Acest ciclu presupune mai multe etape, printre care care amintim:
– transmiterea comenzilor de la agentul de vânzari;
– înregistrarea comenzii si verificarea capacitatii de plata a clientului;
– planificarea productiei si a stocurilor;
– expedierea ca tre client a marfurilor comandate si a facturii;
– încasarea banilor de la clienti.
In prezent, se folosesc calculatoarelor electronice pentru a gestiona acest ciclu. Fluxurile
informatice sunt folosite astfel:
– ca baza pentru proiectarea si dirij area sistemului de distributie;
– pentru controlul fluxului de produse de la furnizor la client.
Figura 3.4.1. Diagrama fluxului de date pentru derularea comenzilor
Sursa: Ristea, A. L ., Op. cit, p. 81.
26
Datele de identificare a unei comenzi se re fera la: numarul comenzii, data acesteia,
adresa clientului, denumirea, codul articolului, cantitatea, pretul, termenul de livrare,
rabatul comercial, si în anumite cazuri, codul sau numele clientului.
Preluarea unei comenzi presupune:
– verificari : cantitatea si posibilitatea de satisfacere a comenzii;
– eliberarea documentului de livrare: calculul, dispozitia de livrare, confirmarea
comenzii, date statistice;
– supravegherea fisierului destinat stocurilor de marfuri.
(Sursa: http://www.scritub.com/economie/DISTRIBUTIA -MARFURILOR951972415.php )
4. APLICATIE INFORMATICA – APLICATIE WEB CU BAZE DE
DATE NOSQL. SITE WEB PENTRU O FIRMA DE DI STRIBUTIE
4.1. DIAGRAME UML
Figura 5.1.1. Diagrama use case – monitorizare auto
27
Figura 5.1.2. Diagrama de activitate – inregistrare comanda noua
28
4.2. INTERFATA GRAFICA SI CODUL UTILIZAT
Codul pentru realizarea conexiunii cu baza de date:
<?php sessio n_start();
/* MongoDB Connection */
$mongo=new MongoClient();
/* Selecting Database */
$db=$mongo ->emlogit;
/* Selecting Collection/table */
$collection=$ db->user; ?>
PRIMA PAGINA
Figura 4.2.1. Prima index.php
29
In panoul MONGOADMIN o inregistrare arata astfel:
Figura 4.2.2. Inregistrare in panoul MongoAdmin
Pagina de login a utilizatorilor
Figura 4.2.3. Login_user.php
30
Codul pentru logarea unu i utilizator:
<form class="container" action="login_user_config.php" method="post">
<!–<form class="form animate" action="index_user.php"> –>
<div class="intro -info">
<h2> BINE AI VENIT! </h2>
</div>
<div class="intro -info">
<label st yle="color:white" for="uname"><b>Nume utilizator</b></label>
<input type="text" name="user" required></br>
<label style="color:white" for="psw"><b>Parola</b></label>
<input type="password" name="parola" required></br></br>
<button c lass="btn -get-started scrollto" type="submit">Login</button> </div>
Login_user_config.php:
<?php
session_start();
if(isset($_POST['user']) && isset($_POST['parola'])){
$user = ($_POST['user']);
$parola = ($_POST['parola']);
if(empty($u ser)){
header("Location:login_user.php?stare=fail1");
}
if(empty($parola)){
header("Location:login_user.php?stare=fail2");
}
$con = new MongoClient();
// Select Database
if($con){
$db = $con ->emlogit;
// Select Collection
31
$collection = $db ->user;
$qry = array("user" => $user, "parola" => $parola); //$pass_hash
$result = $collection ->findOne($qry);
if(!empty($result)){
header("Location:init.php");
$_SESSION['user'] = $user;
$_SESSION['nume'] = $result['nume'];
}else{
header("Location:login_user.php?stare=error1");
}
}else{
die("Mongo DB not con nected!");
}
} ?>
(Sursa: https://www.youtube.com/watch?v=xit3lUyUWD8 )
Pagina de gestionare a clientilor
Figura 4.2.4 Init.php
32
Codul pentru cautarea unei inregistrari in baza de date ( cautarea se realizeaza dupa
canpul “cui”) si afisarea intro pagina noua a rezultatelor gasite :
<form class="container" action="search_client.php" method="post">
<!–<form class="form animate" action="index_user.php"> –>
<div class="intro -info">
</div>
<div class="intro -info">
<label style="color:white" for="uname"><b></b></label>
<input type="text" placeholder="Cui" name="search" required>
<button class="btn -get-started scrollto" name="submit" type="submit">Cauta </button>
<a href="creare_client.php"><button class="btn -get-started scrollto"
type="button">Client nou</button></a>
<a href="creare_auto.php"><button class="btn -get-started scrollto" type="button">Auto
nou</button></a>
</div>
</form>
In pagi na INIT.PHP se verifica daca exista cui -ul specificat de utilizator
$result=$db ->client ->find(array("cui" => new MongoRegex('/' . $_POST['search']. '/i')));
if(empty($_POST['search'] || !isset($_POST['search']) )){
echo "empty";
}else{
foreach ($re sult as $res) { … }
Daca acesta exista in baza de date, va fi afisat tabelul ce contine toate campurile respective:
Figura 4.2.5. Search_client.php
33
Prin apasarea butonului “Modifica” se poate Actualiza orice camp, astfel:
Figura 4.2.6. Edit_client.php
Codul pentru actualizarea unei inregristrari:
if(isset($_POST['update']))
{
$id = $_POST['id'];
$user = array (
'cui' => $_POST['cui'],
'nume' => $_POST['nume'],
'cc' => $_POST[' cc'],
'da' => $_POST['da'],
'rep' => $_POST['rep'],
'adresa' => $_POST['adresa'],
'telefon' => $_POST['telefon'],
'email' => $_POST['email'],
'data' => new Mong oDate(strtotime($_POST['data']))
);
34
// Verifica daca exista campuri necompletate. Daca exista va aparea un mesaj de eroare
$errorMessage = '';
foreach ($user as $key => $value) {
if (empty($value)) {
$errorMessa ge .= $key . ' field is empty<br />';
}
}
if ($errorMessage) {
// print error message & link to the previous page
echo '<span style="color:red">'.$errorMessage.'</span>';
echo "<br/><a href='javascript:self.hi story.back();'>Go Back</a>";
} else {
//updating the 'tabela1' table/collection
$db->client ->update(
array('_id' => new MongoId($id)),
array('$set' => $user)
);
//redirectig to the display page. In our case, it is index.php
header("Location: client_x.php");
}
} // end if $_POST
?>
<?php
//getting id from url
$id = $_GET['id'];
//selecting data associated with this particular id
$result = $db->client ->findOne(array('_id' => new MongoId($id)));
$cui = $result['cui'];
$nume = $result['nume'];
$cc = $result['cc'];
35
$da = $result['da'];
$rep = $result['rep'];
$adresa = $result['adresa'];
$telefon = $result['telefon'];
$email = $result['email'];
$data = $result['data'];
?>
Pagina pentru crearea clientului
Figura 4.2.7. Creare_client.php
36
Codul pentru adaugarea in baza de date a unei noi inregistrari:
if((empty($_POST['cui'])) || empty($_POST['nume'])|| empty($_POST['cc']) ||
empty($_POST[' da']) || empty($_POST['adresa']) || empty($_POST['rep']) ||
empty($_POST['telefon']) || empty($_POST['email']) || empty($_POST['data']))
{
header("Location:creare_client.php?info=eroare2");
}elseif($_POST)
{
$insert= array(
'cui'=> $_POST['cui'],
'nume'=> $_POST['nume'],
'cc'=> $_POST['cc'],
'da'=> $_POST['da'],
'adresa'=> $_POST['adresa'],
'rep'=> $_POST['rep'],
'telefon'=> $_POST['telefon'],
'email'=> $_POST ['email'],
'data'=> new MongoDate(strtotime($_POST['data']))
);
// Insert Operation
if($collection ->insert($insert))
{
header("Location:client_x.php?info=ok");
}
else {
header("Location:creare_client.php?info=eroare1");
}
}
37
4.3. ANALIZA STATISTICA A DATELOR
Figura 4.3.1 Evolutia numarului de clienti
<?php
Codul pentru realizarea unui grafig de evolutie a clientilor, pe luni, cu inregistrarile din
baza de date:
$mongo=new MongoClient();
$db=$mongo ->emlogit;
$collection = $db ->client;
$array = array();
for($i=1; $i<=12; $i++){
if($i >= 10){
$start = new MongoDate(strtotime(date('2019 -'.$i.'-01')));
$end = new Mongo Date(strtotime(date('2019 -'.$i.'-31')));
}else{
$start = new MongoDate(strtotime(date('2019 -0'.$i.' -01')));
$end = new MongoDate(strtotime(date('2019 -0'.$i.' -31')));
}
38
$cursor = $collection ->find(array("data" => array('$gt' => $start, '$lte' => $end)));
array_push($array, $cursor ->count());
}
?>
<script type="text/javascript" src="lib/jquery/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
// Drawing a pie chart with padding and labels that are outside the pie
new Chartist.Pie('#pieChart', {
series: <?php echo $array ?>
}, {
fullWidth: true,
height:'300px',
chartPadding: 30,
labelOffset: 50,
labelDirection: 'explode'
});
new Chartist.Line('#lineChart', {
labels: ['January' , 'February' , 'March' , 'April' , 'May', 'June' , 'July' , 'August',
'September' , 'October' , 'November', 'December'],
series: [
<?php echo json_encode($array) ?>
]
}, {
height:'300px',
fullWidth: true,
chartPadding: {
right: 40
},
axisX: {
onlyInteger: true
39
},
axisY: {
onlyInteger: true
},
referenceValue: 1,
plugins: [
Chartist.plugins.tooltip()
],
showArea: true,
});
});
</script>
Figura 4.3.2 Evolutia cheltuielilor
Codul pentru realizarea graficului ce reflecta evolutia cheltuielilor cu parcul auto, pe luni,
cu inregistrarile din baza d e date:
$mongo=new MongoClient();
$db=$mongo ->emlogit;
0.00200,000.00400,000.00600,000.00800,000.001,000,000.001,200,000.001,400,000.00
January February March April May June JulyCHEL T UIEL I CU PARCUL AUT O
40
$collection = $db ->auto;
$array = array();
for($i=1; $i<=12; $i++){
if($i >= 10){
$start = new MongoDate(strtotime(date('2019 -'.$i.'-01'))) ;
$end = new MongoDate(strtotime(date('2019 -'.$i.'-31')));
}else{
$start = new MongoDate(strtotime(date('2019 -0'.$i.' -01')));
$end = new MongoDate(strtotime(date('2019 -0'.$i.' -31')));
}
$cursor = $collection ->find(array("data" => array('$gt' => $start, '$lte' => $end)));
array_push($array, $cursor ->count());
}
?>
<script type="text/javascript" src="lib/jquery/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
// Drawing a pie chart with padding and labels that are outsi de the pie
new Chartist.Pie('#pieChart', {
series: <?php echo $array ?>
}, {
fullWidth: true,
height:'300px',
chartPadding: 30,
labelOffset: 50,
labelDirection: 'explode'
});
new Chartis t.Line('#lineChart', {
labels: ['January' , 'February' , 'March' , 'April' , 'May', 'June' , 'July' , 'August',
'September' , 'October' , 'November', 'December'],
series: [
41
<?php echo json_encode($array) ?>
]
}, {
height:'300px',
fullWidth: true,
chartPadding: {
right: 40
},
axisX: {
onlyInteger: true
},
axisY: {
onlyInteger: true
},
referenceValue: 1,
plugins: [
Chartist.plugins.tooltip()
],
showArea: true,
});
});
</script>
42
CONCLUZII
În concluzie, tema aleasă a fost, interesantă și atractivă din punct de vedere economic
si informatic. În ceea ce priveș te domeniul economic, tema a fost interesantă deoarece a
presupus cercetarea unui domeniu dinamic ce implică costuri foarte ridicate și trebuie să fie
optimizat. Din punct de vedere informatic, atractivitatea temei s -a manifestat prin găsirea
unei soluții de adminstrare a domeniului economic studiat.
Cercetarea a presupus o documentare riguroasă în domeniul bazelor de date și al
dezvoltării web și s -a finalizat cu realizarea unei aplicații web ce utilizează o bază de date
NoSQL și este aplicabilă oricărei firme d in domeniul transporturilor. Aplicația creată oferă
posibilitatea administrării acestei activități prin ținerea unei evidențe a personalului și vehic-
ulelor și oferirea unor rapoarte al căror rol este acela de a ajuta la luarea de decizii.
Soluția informati că realizată poate fi extinsă, iar una dintre primele idei de extindere
este implementarea unui modul care să permită localizarea autovehiculelor pe hartă atunci
când acestea sunt în deplasare și un alt modul care să calculeze drumurile minime pentru
optim izarea transporturilor. Pot fi extinse și facilitățile deja existente, prin adăugarea unui
număr mai mare de situații de ieșire (grafice, rapoarte).
43
BIBLIOGRAFIE
1. http://amityouk.blogspot.com/
2. http://blog.chapagain.com.np/php -mongodb -very -simple -add-edit-delete -view -crud –
beginner -tutorial/
3. http://www.scritub.com/economie/DISTRIBUTIA -MAR FURILOR951972415.php
4. https://docgo.net/doc -detail.html?utm_source=baze -de-date-nosql
5. https://en.wikipedia.org/wiki/NoSQL
6. https://ro.wikipedia.org/wiki/MongoDB
7. https://ro.wikipedia.org/wiki/MongoDB
8. https://rria.ici.ro/wp -content/uploads/2012/12/06 -art.-Ularu -si-Puican -revizuit.pdf
9. https://vichhaiy.wordpress.com/2014/01/page/12/
10. https://www.channelfutures.com/cloud -2/the -limitations -of-nosql -database -storage –
why-nosqls -not-perfect
11. https://www.mongodb.com/scale/advantages -of-nosql
12. https://www.mongodb.com/what -is-mongodb
13. https://www.quora.com/What -is-the-difference -between -an-SQL -DBMS -versus -a-
non-SQL -database
14. https://www.youtube.com/watch?v=xit3lUyUWD8
15. https://www.scribd.com/doc/310800920/Lucrare -Licenta -Aplicatie -web-cu-baze-
de-date-gestionare -logistica
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: F 271.13Ed.3 Document de uz intern [614464] (ID: 614464)
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.
