Lucrare de disertaț ie [627044]
UNIVERSITATEA ROMÂNO AMERICANĂ
FACULTATEA DE INFORMATICĂ MANAGERIALĂ
Lucrare de disertaț ie
Proiectarea unui produs software de
tip ERP pentru FAST Curier
Coordonator științific:
Prof. Univ. Dr. Cornelia Paulina Botezatu
Absolvent: [anonimizat] 2017
2
Cuprins
Introducere ………………………….. ………………………….. ………………………….. …………………….. 3
Capitolul I ………………………….. ………………………….. ………………………….. ……………………….. 4
Studiul si analiza sistemului existent la SC FAST Courier ………………………….. ………………… 4
1.1.Prezentarea unității economico -sociale ………………………….. ………………………….. …. 4
1.2.A ctivitățile desfășurate în unitatea economică ………………………….. ……………………. 7
1.3.Sistemul de conducere ………………………….. ………………………….. …………………………. 9
1.4.Studiul sistemului condus ………………………….. ………………………….. …………………… 10
Capitolul II ………………………….. ………………………….. ………………………….. …………………….. 15
Tehnologii utilizate pentru dezvoltarea aplicației ………………………….. ……………………….. 15
2.1.PHP ………………………….. ………………………….. ………………………….. ……………………… 15
2.2.MySQL ………………………….. ………………………….. ………………………….. …………………. 16
2.3.HTML5 ………………………….. ………………………….. ………………………….. …………………. 16
2.4.CSS 3 ………………………….. ………………………….. ………………………….. ……………………. 17
2.5.Javascript ………………………….. ………………………….. ………………………….. ……………… 18
Capitolul I II ………………………….. ………………………….. ………………………….. ……………………. 19
Proiectarea aplicației informatice ………………………….. ………………………….. …………………. 19
3.1.Definirea obiectivelor aplicației informatice ………………………….. ……………………… 19
3.2.Proiectarea logică și fizică ieșirilor ………………………….. ………………………….. ……….. 20
3.3.Proiect area intrarilor ………………………….. ………………………….. ………………………….. 27
3.4.Proiectarea bazei de date ………………………….. ………………………….. …………………… 33
3.5.Proiectarea interfeței aplicației ………………………….. ………………………….. …………… 37
3.6.Propuneri de dotare cu echipamente IT și costuri aferente ………………………….. …. 38
Capitolul IV ………………………….. ………………………….. ………………………….. ……………………. 39
Prezentarea aplicației ERP „Cargo” ………………………….. ………………………….. ……………….. 39
4.1.Cerințele hardw are și software ale aplicației ERP ………………………….. ………………. 39
4.2.Descrierea funcționalitatilor aplicației ………………………….. ………………………….. ….. 39
Concluzii ………………………….. ………………………….. ………………………….. ……………………….. 48
Bibliografie ………………………….. ………………………….. ………………………….. ……………………. 49
Anexe ………………………….. ………………………….. ………………………….. ………………………….. . 51
3
Introducere
Aceasta lucrare are ca scop dezvoltarea unei soluț ii software pentru FAST C urier
România. Aceasta presupune proiectarea unei aplicații de tip ERP ce permite adaugarea de
clienti in sistem , precum si efectuarea de actiuni tipice activitatii de curierat .
Funcționalităț ile aplicaț iei au fost selectate pe baza necesităț ilor unei firme de
curierat ș i clienț ilor acesteia , fiind oferite soluții pentru generarea de AWB și comanda
curier, precum și generarea de rapoarte conținând diverse activităț i, pe interval de data .
Aceasta soluție software oferă angajaț ilor companiei posibilitatea de:
-a adauga în sistem clienț i noi;
-a efectua diverse ra poarte asupra istoricului clienț ilor;
-a crea documente de transport ;
-a vizualiza documentele de transport generate cumulate î n borderouri ;
-a crea comanda de curier ;
-a vizualiz a comenzile de curiler generate.
Pentru dezvoltarea aplica ției web au fost utilizate tehnologii consacrate precum
PHP, pentru partea de back -end, MySQL , pentru stocarea informațiilor î n baza de date ,
HTML 5 pentru afișarea elementelor î n paginil e web , CSS 3 pentru stilizarea elementelor
în pagina și Javascript pentru posibilitatea de a crea și afișa conț inut dinamic . Tehnologiile
menț ionate ante rior permit crearea unei aplicații uș or de utilizat pentru anga jați, dar ș i ușor
de dezvoltat pe viitor .
4
Capitolul I
Studiul si analiza sistemului existent la SC FAST Courier
1.1.Prezentarea unității economico -sociale
1.1.1. Scurt istoric
Compania FAST Curier SRL a fost infiintață în anul 2000 și își a re sediul
central în Șoseaua Mihai Bravu, nr. 32, Bucure sti.
Evoluția companiei in timp :
În 2003 , numărul angajaț ilor a ajuns la 700 de persoane .
În 2008 au fost efectuate investiții importante pentru a putea ț ine pasul cu cererea
aflată în cre ștere și pentru a rămâne la nivelul concurenț ei.
În anul 2010 a avut loc o alt ă investiție importantă, fiind achiziționată o bandă de
sortare a coletelor, ce eficientiza fluxul de cântărire ș i cartare .
În anul 2014 , numărul angajaților s -a dublat, acesta ajungâ nd la 1 .400 de persoane.
Anul 2016 a marcat achiziț ionarea u nei benzi de sortare pentru plicuri, fiind fluidizat
fluxul ce necesit a pâna atunci implicarea factorului uman, luc ru ce uneori putea duce la
sortări incorecte, respectiv î ntarziei in livrare ;
Flota de autovehicule a beneficiat constat de investiții pentru extindere și
mentenanță, numărul mașinilor fiind în continuă creștere, acest lucru fiind impus de
numă rul de exped ieri ce urma o rată ascendentă
5
Evoluția flotei FAST Curier :
Graficul nr. 1 .1. ”Evoluția f lotei de autovehicule în perioada 2000 -2017 ”
Din graficul nr. 1 .1. reiese o creștere susținută a numă rului de autovehicule
din flota companiei FAST Curier, aceasta atingând un numă r de 2 .050 de mașini,
în anul 2017.
Graficul nr. 1.2. ”Analiza profitului net în raport cu cifra de afaceri în per ioada 2012 -2016 ”
6
Graficul nr. 1.3. ”Evoluția activelor în perioada 2012 -2016 ”
Graficul nr. 1.4. ”Evoluția solvabilităț ii globale în perioada 2012 -2016 ”
Graficul nr. 1.5. ”Evoluția datoriilor totale în perioada 20 12-2016”
7
1.2.Activită țile desfășurate în unitatea economică
FAST Courier oferă o gamă diversificată de tipuri de servicii de curierat rapid , atat
pe teritoriul Romaniei, cât și internaț ional.
– FAST Clasic , utilizat pentru livrarea coletelor în 24 de ore de la preluarea
acest ora de că tre un curier ;
– FAST Next Day , prin interm ediul că ruia livrarea coletului se face în ziua urm atoare
preluării, pâ nă în ora 11 ;
– FAST Express , care presupune livrarea coletel or in aceeași zi;
– FAST International, ce presupune livrarea de colete sau pl icuri în afara Româ niei.
Serv cii speciale:
– FAST Campus , ce presupune livrare a de colete în campusurile facultăț ilor, cu un
tarif special pentru studenț i;
– FAST Check, prin intermediul că ruia i se ofer ă posibilitatea destinat arului de a
verifica pachetul , înainte de a achita valoarea rambursului că tre curier ;
– FAST Point, ce oferă clienț ilor posibilitatea de a ridica o expediție dintr -o locaț ie
fixă;
– FAST Colector , care permite transferul sumei rambursul ui în contul bancar al
expeditorului ;
– FAST Locker, ce permite posibilitate de a ridica un colet din dulapuri speciale,
amplasate î n zone centrale .
8
Poziționarea în sfera economică :
Furnizorii:
– Ericsson
– Siemens
– Honeywell
– Zebra
– Intermec
– Microsoft
Concurența:
– Urgent Curier
– Nemo Express -Fan Courier
– UPS
– TNT
– Dragon Star Curier
– SameDay Curier
– Bookurier
Prestatorii de servicii:
– Enel
– Covi Construct
– BGS (Divizia de securitate)
– Vodafone
– RCS RDS
9
1.3.Sistemul de conducere
Firma FAST Curier este compusa dintr -un numar total de 13 departamente principale :
– Econ omic
– Acquisitions
– Export
– IT
– Marketing
– Distribution
– Sales
– Auto
– Legal
– Customer care
– Human resources
– Regional management
– Administration
Directorul general trebuie să îndeplinească urmatoarele atribuții:
Analizarea și să stabilirea principalelor obiective ale companiei;
Particip area la ședințele interne;
Participarea la ședințele externe pentru dezvoltarea activitații;
Se ocupe de semnarea contractelor cu div erși parteneri .
Managerii de departamente trebuie să indeplinească urmatoarele atribuții:
Coordonarea activităților din departament ele aferente ;
Asistarea unei bune funcționari a proceselor interne din departamente ;
Crearea de rapoarte privind procesele si angajații din departamentul aferent .
10
1.4.Studiul sistemului condus
Cu un numă r total de peste 2 .700 de angajați , ce este î n crestere , FAST Curier este
o companie în continuă dezvoltare .
Angajații dispun de training specializat, axat pe necesităț ile departamentului din care
fac parte, a cest lucru având ca efect prestarea unor servicii c ât mai bune de catre aceș tia.
Buna pregatire a angajaților este un element cheie în succesul pe care î l poate avea
o companie.
Fiecare departa ment este condus de un man ager ș i un manager astistent care se ocup ă
de prioritizarea activităților ș i de atribuirea acestora.
11
Organigrama companiei FAST Curier
Figura nr. 1.1 . ”Organigrama companiei FAST Curier
12
1.5.Studiul sistemului informațional al companiei
1.5.1. Siste mul informațional al companiei
Sistemul informațional cuprinde o serie de aplicaț ii specifice fiecarui tip de
activitate:
Dashboard – permite vizualizare î n timp real a statusurilor ;
ERP Cargo – permite adaugarea de clienti si generarea de documente de
transport si rapoarte ;
Comenzi – permite î nregistrarea de comenzi de curier atat din dispecerat , cât
și din cereri pe email, precum ș i generarea de rapoarte ;
CRM – permite adaugarea de clienti si personalizare in detaliu a acestora .
Aplicația dezvoltata la baza acestei lucrări este strâns legată de sistemul actual,
existând nevoia sincronizarii cu celelalte date din sistem . Utilizand job -uri si triggeri SQL,
informațiile sunt transmise si actualizate constant.
Un element cheie in activitatea de curierat es te PDA -ul (Asistent Personal Digital),
utilizat de curieri pentru a scana expeditii, pentru a introduce si pentru a actualiza date in
sistem.
Figura nr. 1.2. ” Terminal PDA”
13
Figura nr. 1.3 . ”Diagrama serverelor si aplicatiilor ”
14
1.5.2. Analiza cr itică a sistemului actual și identificarea neajunsurilor existente
în funcționarea sistemului existent
Printre cele mai importante neajunsuri în funcț ionarea sistemului actual se numară :
– defectarea fizică a PDA -ului;
– bug-uri aparute î n cad rul aplicaț iilor web sau a s istemului de operare a PDA –
ului;
– defecț iuni ale server -ului pe care sunt stocate aplicațiile ș i bazele de date a le
acestora .
1.5.3. Direcții de perfecționare a sistemului actual
Principalele elemente ale sistemului informatic ce necesită o mentenanță și atenție
continuă sunt terminalele PDA, ale căror sisteme de operare, asemînă toare cu Windows
Mobile , au nevoie de up-date-uri pentru a dispune de cele mai recente funcționalităț i. Pentru
ca un terminal PDA să beneficieze de un up -date de software este necesar ca acesta să fie
pus î ntr-un dock special, ce se află î n sediile companiei.
În cazul î n care un dispozitiv nu are cele mai recente modifică ri de software, pot
apărea probleme de func ționare sau neconcordanțe în informațiile înregistrate și t ransmise
de acesta că tre serverele interne .
Un alt element foarte important este buna funcț ionare a serverului ce stocheaza și
prelucrează informaț iile preluate de la dispozitivel e mobile utilizate de curieri. Î n caz ul unei
defecțiuni se pot pierde informa ții importante și poate fi sistată activitatea de livrare.
15
Capitolul II
Tehnologii utilizate pentru dezvoltarea aplicației
Pentru dezolvatarea aplicației ERP au fost utilizate tehnologii open source
consacrate, precum :
2.1.PHP
PHP este un limbaj open source , server side, utilizat pentru generarea de pagini web
dinamice. Acesta poate fi rulat pe orice sisteme de operar e și poate prelua și prelucra
informaț ii de la baze de date precum MySQL și Microsoft SQL.
Utilizarea limbajului de programare PHP necesită disponibilitatea unui server,
precum Apache sau Microsoft IIS cat și a pachetului PHP. Pentru dezvoltarea acestei
aplicaț ii, a fost folosit pachetul XAMPP, ce instaleaza serverul
Apache, PHP și confera acces în interfaț a PHPMyAdmin pentru gestionar ea bazelor
de date.
Un foarte mare avantaj al limbajului PHP îl rep rezinta posibiliatatea de utlilizare
împreuna cu HTML, pentru a crea pagini web și afișarea de elemente în funcț ie de diverse
cond iții.
Printre punctele forte ale utilizarii PHP se mai en umera:
– trimiterea de headere HTTP ;
– setarea de sesiuni ;
– setarea de coockie -uri;
– posibiliatea utiliză rii unui framework ;
– documentaț ia bine redactata ;
– este un limbaj de programare în continua dezvoltare ce primește constant
îmbunătăț iri.
16
2.2.MySQL
MySQL e ste cel mai utilizat sistem de gestionare a bazelor de date open source.
Folosirea acestuia este facilitată și de faptul că la instalarea suitei XAMPP ce include
serverul Apache și PHP este instalat ș i MySQL . Cea mai comună interfață de interogare
date ș i adăugare sau modificare tabele este PhpMyAdmin, o interfață grafică inclusă de
pachet ul XAMPP ce permite pe langa acțiunile menționate anterior și adăugarea de
utilizatori ș i setarea de drep turi de acces a acestora la conț inutul bazelor de date.
PhpMyAdmin permite și următoarele posibilităț i:
crearea de baze de date ;
ștergerea de baze de date ;
importul bazelor de date ;
exportul bazelor de date ;
adăugarea și modificarea tabelel or aferente unei baze de date ;
replicarea bazelor de date .
MySQL este un SGBD foa rte v ersatil, acesta fiind utilizat ș i cu alte limbaje de
programare, p recum Python, C Sharp sau C++ și permite contectarea ș i la alte interfe țe
grafice pentru interogarea datelor și efectuarea de operaț iuni asuprea structurii bazelor d e
date, precum MySQL Workbench.
2.3.HTML5
HTML 5 a fost dezvoltat pentru a acoperi multe dintre zonele în care versiunea
precedentă avea nev oie de API -uri externe sau, pur ș i simplu , nu putea oferi nicio soluț ie
pentru afiș area de elemente precum clipuri video sau audio .
Principalele inova ții ale HTML 5:
Posibilitatea de a adauga în pagini web elemente multimedia;
Introducerea Canvas, ce p ermite „desenarea” de elemente î ntr-o pagina web
cu ajutorul Javascript, nemaifiind necesară utilizarea FLASH .
17
De exemplu, pentru a dese na un cerc intr -o pagina HTML, sintaxa arata in felul
urmator:
var d = document.getElementById("new Canvas");
var canv = d .getContext("2d");
canv .beginPath();
canv .arc(96,51,41,0,2*Math.PI);
canv .stroke();
Posibilitatea de a adauga campuri pentru selectie de data si ora prin
intermediul elementului <input type=”date”>, lucru care in trecut era posibil doar
prin intermediul unor plugin -uri.
-Doctype -ul utilizat de HTML5 este unu mult mai scurt si mai simplu, avand urmatoarea
forma : <!DOCTYPE html>
Totuși, î n cadrul de zvoltarii unei aplicații web cu HTML5, trebuie luat în calcul ș i
ce tipuri de browsere vor folosi utilizatorii, deoarece unele versiuni nu suporta elementele
introduse de acesta.
De exemplu, pentru o încarcare corectă a unui element de tip <video>, este n ecesară
utilizarea unei versiuni mai mare sau egală cu 4 pentru Google Chrome.
Figura 2 .1: ”Versiunea minima necesar ea a browserelor web pentru afiș area unui tag <video> ”
2.4.CSS 3
CSS (Cascading Style Sheets) este folosit pentru a tribuirea de stil elementelor d e
HTML dintr -o pagina web.HTML și CSS stau la baza majorității aplicaț iilor web.
Includerea st ilurilor CSS se poate face într -o pagină HTM prin intermediul tag -urilor
<style>, sau prin adăugarea unui link către fiș ierul CSS, a dou a metodă menționată fiind ș i
cea recomandat ă.
18
Printre cele mai inovative noutăț i introduse de CSS, putem enumara:
o Afișare de elemente 3D;
o Noul Box Model;
o Afișare de fundaluri multiple ;
o Efecte aplicate asupra textului ;
o Introducerea unei game largi de f onturi ;
o Animaț ii.
2.5.Javascript
Javascript este perfect î n utilizarea împreună cu HTML și CSS, acesta permitând
adăugarea de comportament dinamic asupra elementelor dintr -o pagina web.
O foarte bună adiț ie pentru Javascript este jQuery , ce facilitează manilpularea
elementolor din DOM și include o gama vasta de funcț ii folosite pentru transformarea
paginilor în unele câ t mai dinamice , prin adă ugarea de efecte vizuale, preluare și afișare de
informaț ii.
Printre cele mai utilizate fun cții oferite de jQuery în cadrul dezvoltării acestei
aplicaț ii au fost addClass(), ce permite adă ugarea unei clase asuprea unui element și
removeClass(), ce ofer ă posibilitatea șt ergerii unei cl ase aferente unui element HTML.
Adaugarea și ș tergerea de clas e sunt foarte utile atu nci când se doreș te ap licarea de
diverse stiluri CSS în funcț ie de un eveniment, de exemplu, schimbarea culorii unui buton
din meniu, la accesarea unei anumite pagini.
Jquery poate fi utilizat ș i pentru crearea de diferite tipuri de tranziț ii asupra
elemen telor î n mișcare, cum ar fi scroll intr -o lista sau o galerie de imagini.
19
Capitolul III
Proiectarea aplicației informatice
3.1.Definirea obiectivelor aplicației informatice
Aplicația dezvoltată are ca obiectiv facilitarea atât a fluxului operațional , cât ș i a
fluxului business din cadrul unei firme de curierat, înglobâ nd funcționalităț i specifice.
Dupa logarea î n contul personal, un angajat al firmei are la dispozi ție urmatoarele
acțiuni:
adăugare de clien ți noi în sistem ;
editarea conturilor de cli enți deja existente ;
generare de documente de transport pe conturile clienț ilor;
plasarea de comenzi pe conturile clien ților;
vizualizarea de borderouri ;
generarea de rapoarte efectuate la nivel de client ;
generarea de rapoarte efectuate la nivel general ;
salvarea de destinatari ș i maparea acestora pe conturile de clienț i;
vizualizare a de documente de tansport .
20
3.2.Proiectarea logică și fizică ieșirilor
Aplicația ERP va cuprine urmatoarele ieșiri:
3.2.1. Vizualizare borderou in care sunt cumulate toa te documentele de transport
generate pe parcursul un ei zile, pe contul unui client.
Vor fi afișate informatii precum:
număr document de transport ( AWB );
nume le destinatar ului e xpeditiei ;
număr ul de plicuri ;
număr ul de colete ;
data și ora generării AWB -ului;
valoarea rambursului .
Figura 3.1: ”Pagina „Borderouri” ”
21
3.2.2. Vizualizare raport AWB -uri generate pe contul unui client:
În această pagină există posibilitat ea de a genera un raport ce conț ine documentele
de transport generate pe un cont, av ând opțiunea de filtrare dupa numă rul de AWB sau dupa
un interval de data.
Informatiile vor fi afisate sub forma de tabel si vor contine :
AWB – ul
numele expeditorul ui;
numele destinatarului ;
data generă rii documentului de transport ;
numărul de plicuri ;
numă rul de colete ;
valoarea rambursului;
ultimul status al expeditiei ;
Figura 3.2 : ”Pagina „Raport AWB Client” ”
22
3.2.3. Vizualizare raport comenzi generate pe contul unui client :
În această pagină se poate genera un raport ce conți ne informaț ii despre comenzile
de curier generate pe contul unui client, filtrarea fiind posibilă î ntr-un interval de date.
Raportul va contine informatii precum:
număr ul comenzii
data comenzii
ora comenzii
numă rul plicurilor
numă rul coletelor
greutatea totala a pachetului
persoana de contact a expeditorului
telefon ul persoanei de contact a expeditorului
Figura 3.3 : ”Pagina „Raport comenzi Client” ”
23
3.2.4. Vizualizare raport AWB -uri generate la nivel global :
În aceasta pagină există posibilitat ea de a genera un rapor t ce conț ine documentele
de transport generate pe un cont, având opțiunea de filtrare după numar ul de AWB sau dupa
un interval de data.
Informatiile vor fi afisate sub forma de tabel si vor contine :
-AWB – ul
-nume le expeditor uli (clientului)
-data gener arii documentului de transport
-numă rul de plicuri
-numărul de colete
-valoarea rambursului
-ultimul status al AWB -ului
Figura 3.4 : ”Pagina „Raport AWB general ””
24
3.2.5. Vizualizare raport comenzi generate la nivel global:
În aceasta pagina se po ate genera un raport ce contine informatii despre comenzile
de curier generate in cadrul aplicatiei ERP , filtrarea fiind posibila intr -un interval de date.
Raportul va contine informatii precum:
număr ul de comanda
numele clientului
data comenzii
ora comen zii
numă rul de plicuri aferent comenzii
numă rul de colete aferent comezii
greutatea totala a pachetelor aferente comenzii
persoana de contact a expeditorului si telefonul acestia
Figura 3.5 : ”Pagina „Raport comenzi general” ”
25
3.2.6 . Salvare detali i destinatar pe contul unui client
Pagina „Destinatari salvaț i” permite unui utilizator salvarea pe contul de client setat
în prealabil, a destina tarilor ce vor putea fi selectaț i din pagina de generare expediere.
Astfel, nu mai este necesara completarea tuturor detaliilor unui destinatar la fiecare
generare de AWB, acesta putand fi selectat din lista afisata in pagina.
Prin interfata se introduc informatii precum:
nume destinatar
telefon destinatar
email destinatar
judet si localitate destinatar
strada destinatar
numar destinatar
cod postal destinatar
bloc, scara, etaj si apartament destinatar
Figura 3.6 : ”Pagina „Destinatari salvati” ”
26
3.5.7 . Generare etichetă AWB
Pe forma etichetei de AWB ce trebuie printat ă, sunt afi șate toate informațiile legate
de o expediție:
numă rul de AWB
data și ora generă arii AWB -ului
numele, adresa și telefonul expeditorului
numele, adresa ș i telefonul destinatarului
valoarea rambursului (suma solicitata de expeditor)
valoarea costului de transport aferent expeditț ei
valoarea totală (suma solicitata de expeditor + valoarea transportului)
persoana care plateș te expediția
persoana care plateș te transportul sumei de ramburs
numărul de plicuri
numă rul de colete
greutatea expediț iei
Figura 3.7 : ”Forma fizi că a unui document de transport ”
27
3.3.Proiectarea intrarilor
Aplicația va conți ne urmă toarele intrari:
3.3.1. Logarea în aplicaț ia ERP
Pagina de logare în aplicație es te una clasică, dispunând de câ mpuri de tip text:
Utilizator
Parola
Pagina de login este prima pagină pe care este direcționat un user care accesează
link-ul aplicaț iei și are urmă torul format:
Figura 3.7 : ”Formatul pagi nii logare in aplicaț ie”
28
3.3.2. Adăugare client nou
Pagina de Adaugare client va conține urmatoarele câmpuri:
Nume (lungime maximă admisă de 50 de caractere );
Telefon (lungime maximă admisă de 20 de caractere );
Email ( lungime maximă admisă de 50 de caractere );
Județ (selectabil din lista predefinită );
Localitate (selectabilă din lista pr edefinită );
Strada (lungime maximă admisă de 80 de caractere) ;
Nr. (lungime maximă admisă de 10 de caractere) ;
Cod poștal ( lungime maximă admisă de 7 de caractere) ;
Bloc ( lungime maximă admisă de 20 de caractere) ;
Scara (lungime maximă admisă de 10 de caractere );
Etaj ( lungime maximă admisă de 10 de caractere );
Apartament ( lungime maximă admisă de 10 de caractere );
Tarif de baza: valoarea setata in acest camp reprezinta tariful de baza
utilizat p entru calcularea v alorii transportului unei expediț ii;
Tarif pe KG: valoarea setată în acest camp se inmulțește cu numă rul de KG
aferent unei expedi ții (înmulțirea se face începâ nd cu al doilea KG)
Exemplu calculare tarif expediere:
Tarif de baza = 18 L ei
Tarif pe KG = 2 Lei
Greutate colet = 4 KG
Valoare transport = 18 + (3 * 2) = 24 Lei
29
Pagina de “Adaugare client” va avea urmatorul format:
Figura 3.8 : ”Formatul pagi nii de adă ugare client ”
30
3.3.3. Generare AWB
Pagina de generare AWB dispune de următoarele câmpuri:
Nume, ce permite introducerea a 50 de carcatere;
Telefon, ce permite introducerea a 20 de caractere;
Email, ce permite introducerea a 50 de caractere;
Județ , selectabil din lista ;
Localitate, selectabila din lista ;
Strada, ce permite introducerea a 80 de caractere;
Număr , ce permite introducerea a 10 caractere;
Cod poștal, ce permite introducerea a 7 caractere;
Bloc, ce permite introducerea a 20 de caractere;
Scara, ce permite introducerea a 10 caractere;
Etaj, ce permite int roducerea a 10 caractere;
Apartament, ce permite introducerea a 10 caractere;
Înalțime;
Lățime:
Lungime;
Plata expediției la (expeditor sau destinatar);
Ramburs, (expeditor sau destinatar) ce permite introducerea unei valori
maxime de 9 000 de Lei;
Plata tra nsport ramburs;
Conț inut, ce permite introducerea a 50 de caractere ;
Observatii, ce permite introducerea a 50 de caractere .
31
Designul paginii „AWB nou” :
Figura 3.8 : ”Formatul pagini i „AWB nou” ”
32
3.3.4. Plasare c omanda :
Pagina de Plasare coma nda permite introducerea urmatoarelor informatii :
Numă rul de colete;
Număr ul de plicuri;
Greutatea totală a pachetului, în kg;
Înalțime a pachetului ;
Lățime a pachetului ;
Lungime a pachetului ;
Persoana de contact expeditor ;
Telefon persoana de contact expedi tor;
Observații.
Pagina “Plasare comanda” are urmatorul format:
Figura 3.9 : ”Formatul paginii „Plasare comanda” ”
33
3.4.Proiectarea bazei de date
Pentru gestionarea optimă a tuturor datelor este utilizata o baz a de date relațională
în MySQL ce conținând următoarele tabele:
– Adrese , unde sunt stocate detalii le adreselor atat pentru clientii salvati in
aplicatie cat si pentru destinatari ;
Figura 3.1 0: ”Tabela Adrese ”
– Tabela Awb conține toate informaț iile ce ap ar pe un document de transport;
Figura 3.11 : ”Tabela Awb ”
34
– În tabela Awb_status , așa cum sugerează ș i numele sunt stocate toate
statusurile prin care trece un AWB ș i data fiecarui eveniment ;
Figura 3.12 : ”Tabela Awb_status”
– AWB -urile generate pe par cursul unei zile sunt cumulate î ntr-un Borderou ,
ale carui i nformații sunt stocate în tabela cu acelaș i nume ;
Figura 3.13 : ”Tabela Borderou ”
– În tabela borderou_detalii se salveaza număr ul fiecarui document de
transport conț inut de un borderou;
Figura 3.14 : ”Tabela Borderou _detalii ”
– Detaliile clien ților salvați î n siste m, precum nume, telefon, email și
adresa_id, pe baza căr uia se extrag informațiile legate de adresa, se află î n
tabela Clienti ;
Figura 3.15 : ”Tabela Clienti ”
35
– Comenzi le sunt stocate î n tabela Comenzi , cu detalii precu m, clientul pentru
care s -a efectuat comanda, dimensiunile ș i greutatea pachetului, perso ana de
contact a expeditorului și informațiile acesteia;
Figura 3.16 : ”Tabela Comenzi ”
– Statu surile comenzilor sunt salvate î n tabela Comenzi_status ;
Figura 3.1 7: ”Tabela Comenzi_status ”
– În tabel a Destinatari se stocheaza toate detaliile destinatarilo r, precum
nume, telefon, email ș i adresa ;
Figura 3.18 : ”Tabela Destinatari ”
36
– În tabela destinatari_salvati se face legatura î ntre un destinatar și un
expeditor a tunci câ nd destinatarul este salvat și mapat pe un client anume;
Figura 3.19 : ”Tabela Destinatari_salva ți”
– Numele județelor sunt stocate î n tabela Judete ;
Figura 3.20 : ”Tabela Judete ”
– Numele localităților și județele de care acestea aparț in sunt s alvate în tabela
Localitati ;
Figura 3.21 : ”Tabela Localitati ”
– Tabela Status conține denumirile st atusurilor ce sunt utilizate atâ t pentru
AWB -uri, cât și pentru comenzi de curieri;
Figura 3.22 : ”Tabela Status ”
37
– În tabela Tarife se salveaza tar ifele confi gurate la salvarea în sistem a unui
client;
Figura 3 .23: ”Tabela Tarife ”
– Tabela Users conține date l egate de userii ce se pot loga în aplicația internă
pentru a efectua opraț iunile permise de aceasta.
Figura 3.24 : ”Tabela Users ”
3.5.Proiectarea interfeței aplicației
Dupa logare a in aplicatie , un utilizator este redirectionat catre pagina “AWB nou”.
În partea de sus a aplicatiei web sunt afisate:
lista de selectare clien t pe care se vor efectua opertaț iuni;
butonul “Client nou”, folos it pentru adăugare de clienț i in sistem;
butonul “Editare client”, folosit pentru modificarea detaliilor clientului
selectat in prealabil ;
butonul de Logout .
Figura 3.2 5: ”Meniul aplicatiei ERP ”
38
Pentru o lizibilitate optim ă, câmpurile prin intermediu l cărora su nt introduse
informații î n sistem a u o așezare în pagină cât mai cursivă și simetrică .
Câmpurile de filtrare după data au fost create utilizând -se câ mpuri de tip „date”
introduse prin HTML5, ce permit afiașa rea unui calendar din care se poate se lecta data
dorită .
Figura 3.26 : ”Calendar pent ru selectarea datei de filtrare”
3.6.Propuneri de dotare cu echipamente IT și costuri aferente
Datorită faptului că pentru dezvoltarea aplicaț iei web au fost utilizate tehnologii
software open -source, cos turile au putut fi reduse considerabil, fiind necesare achizi ții doar
pe partea de hardware, după cum urmează :
Server Dell PowerEdge R730xd 16.999 Lei
Cablu reț ea 700 Lei
Catalyst 2960 -X 48 GigE PoE 740W 5.934 Lei
Total 23.633 Lei
39
Capitolul IV
Prezentarea aplicației ERP „Cargo”
4.1.Cerințele hardware și software ale aplicaț iei ERP
Aplicația ERP „Cargo” poate fi accesată online, utilizând orice browser web, precum
Google Chrome, Internet Explorer , Firefox, sau Safari, nefiind necesare capabilita ți foarte
puternice din partea unităț ii hardware de pe care se face accesul.
Având în vedere faptul că pentru dezvoltarea aplica ției au fo st utilzate tehnologii de
ultimă generație, este recomandată utilizarea unu i browser cu o versiune updatată , pentru a
asigura compatibilitatea cu toate elementele web ale aplicaț iei.
4.2.Descrierea funcționalitatilor aplicației
Dupa loga rea in a plicație, utilizatorul este direcționat că tre pagina „AWB nou”, care
preia rolul de pagina de start, fiind accesibil , de asemenea , întreg meniul ce conține și
paginile :
Borderou AWB -uri;
Plasare Comanda ;
Raport AWB client ;
Raport comenzi client ;
Raport AWB general ;
Raport comenzi general ;
Destinatari salvați;
Client nou ;
Editare client .
Figura 4.1 : ”Meniul principal al aplicatiei ERP ”
40
La click pe comanda “Client nou” , se accesează o pagina î n care se pot introduce
clien ți în sistem, cu detalii precu m nume, telefon , email, adresa, tarif de baza ș i tarif pe kg.
Figura 4.2 : ”Pagina „Client nou””
41
La click pe butonul “Editare client” se acceseaz ă o pagină in care se pot edita
detaliile clientului selectat în prealabil din lista afiș ată în parte a stângă a aplica ției.
Figura 4.3 : ”Pagina „Editare client””
42
Prin accesarea paginii “AWB nou” se pot genera expediț ii pe contul clientului
selectat.
Figura 4.4 : ”Pagina „AWB nou””
43
După completarea formularului de AWB și actionarea butonului “Sa lveaza AWB”,
este g enerat documentul de transport și utilizatorul este direcționat către pagina în care este
afișată ș i forma de AWB ce trebuie printată .
Pe eticheta AWB apar structurat e urmatoarele informatii:
detaliile expeditorului (nume, adresa, telef on);
detaliile destinat arului (nume, adresa, telefon);
valoarea rambursului ;
valoarea transportului ;
valoarea totală ;
numarul de AWB ;
data si ora generarii expediț iei;
numarul de plicuri ;
numarul de colete ;
greutatea expediț iei;
persoana care plateș te tran sportul expedi ției;
persoana care plateș te transportul rambursului .
Figura 4.4 : Eticheta AWB
44
Toate AWB -urile generate pe par cursul une i zile sunt cumulate î ntr-un borderou, al
cărui scop este facilitarea accesului la expedi ții, fiind afiș ate informaț ii, precum numă rul de
AWB, destinatarul, numă rul de plicuri ș i colete. Tot î n acesta pagină există și posibilitatea
de a printa documentele de transport ce trebuie predate curierului.
Figura 4.5 : ”Pagina „Borderou AWB -uri””
Pentru a ob ține un raport cu AWB -urile generate pe parcursul mai multor zile pe
contul unui client, se va utiliza meniul „R aport AWB c lient”, ce permite că utarea de
expedi ții după un interval de data, dar ș i după un numar de AWB, î n cazul î n care se doreș te
găsirea unei expedi ții anume.
Figura 4.6 : ”Pagina „Raport AWB client” ”
45
După generarea tuturor expediț iilor dorite pe parc ursul unei zile, este necesar să fie
efectuată o comandă de curier, acest lucru î nsemnâ nd să se înregistrează în sistem cererea
ca un curier să se prezinte la adre sa expeditorului pentru a prelua coletele și plicurile spre
livrare.
Este suficientă generare a unei comenzi de curier pe zi ș i completarea detaliilor
precum numar total de plicuri ș i colete, greutate, dimensiuni ș i observaț ii.
Figura 4.7 : ”Pagina „Plasar e comanda” ”
46
Pentru a obț ine un raport cu comenzile de curier generate pe parcursul a mai multor
zile pe contul unui client, se va utiliza meniul „Rapor t comenzi client”, ce permite că utarea
de comenzi după un interval de dată .
Figura 4.8 : ”Pagina „Raport comenzi client” ”
Aplicatia ERP permite și generarea de rapoarte ce conț in comenzile generate la nivel
global, prin intermediul meniului „Raport comenzi general” .”
Figura 4.9 : ”Pagina „Raport comenzi general” ”
47
Un utilizator poate genera ș i un raport ce c onține toate AWB -urile generale la nivel
global, filtrâ nd după un interval de dată , utilizâ nd meniul „Raport AWB general”.
Raportul va conț ine informaț ii precum : numele clientu lui, numă rul de AWB, data
generă rii AWB -ului, numă rul de plicuri, numă rul de cole te și valoarea rambursului.
Figura 4.10 : ”Pagina „Raport AWB general” ”
48
Concluzii
Aplicația ERP ”Cargo ” a fluidizat fluxul de lucru al angajaț ilor FAST Curier, fiind
implementate o serie de funcț ionalităț i esenț iale unei aplicaț ii necesare unei fir me de
curierat . Operatorii ce utilizează produsul software ”Cargo ” dispun de o interfață simplă
prin intermediul căreia pot adă uga clienț i noi î n sistem , pot modifica detaliile clienți lor
existenț i, pot genera expediț ii, comenzi de curier și rapoarte .
Pentru o vizibilitate c ât mai bună, dar și ușurarea activităț ii desfaș urate î n cadru l
aplicaț iei, sunt disponibile rapoarte ce permit filtră ri după interv ale de dată sau un număr de
AWB, p e contul unui client selectat. Î n cazul î n care se doreș te ob ținerea unui raport gener al
despre AWB -urile sa u comenzile de curier generate î n cadrul companiei, se pot utiliza
meniurile dedicate ce permit fi ltrarea dupa un interval de data.
Un alt avantaj al produsului software ”Cargo” este faptul că acesta este unul online,
accesibil prin web , eventuale le adiț ii de funcț ionalităț i fiind facilitate de faptul că
modifică rile trebuie aplicate o singură dată, în sursele aplicaț iei și vor fi vizibile pentru toț i
utilizatorii.
49
Bibliografie
Botez atu C ., Căruțașu G., Chetrariu D., Arhitectura calculatoarelor personale și
sisteme de operare specifice, Editura Universul Juridic, București, 2005
Botezatu C., Proiectarea sistemelor informa tice. Metode sistemice, Edit ura
ProUniversitaria, Buc, 2007;
Chichernea V., G.Garais, Baze de date. Sistemul FoxPro vol.II, Editura
Prouniversitaria, 2006;
Ionel I., SGBD Oracle – Ghid aplicativ pentru realizarea solutiilor informatice,
Editura ProUn iversitaria, 2007
Ioniță, G. Bădescu, Baze de date. Organizare, proiectare și implementare, Editura
All, București, 1995
Moise M., Sisteme informatice cu baze de date, Editura Pro -Universitaria, București,
2008;
Documentaț ia PHP http://php.net/docs.php;
Documentația MySql http://d ev.mysql.com/doc;
Documentați a jQuery http://api.jquery.com/;
http://www.w3schools.com/html/;
http://www.w3schools.com/css /;
http://www.w3schools.com/js/;
https ://www.javascript.com/resources;
https://www.the -art-of-web. com/html/html5 -form -validation/;
https ://www.wufoo.com/html5/example/;
https://www.webrefrence.com/a uthoring/css3/index.html;
https://www.css3.info/previe w/;
50
https://www.developer.mozilla.org/en –
US/docs/Web /API/GlobalEventHandles/onclick;
https://www.codexworld.com/dynamic -dependent -select -box-using -jquery -ajax-
php/;
https://www.sitepoint.com/community/t/ country -state-city-dropdown -list/2438 ;
http://api.jquery.com/jquery.ajax/ ;
51
Anexe
– Adăugare client
session_start ();
require_once ("connection _sql.php");
$name = $_POST["name"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$street = $_POST["street"];
$number = $_POST["number"];
$zip_code = $_POST["zip_code "];
$block = $_POST["block"];
$stair = $_POST["stair"];
$floor = $_POST["floor"];
$apartment = $_POST["ap"];
$city_id = $_POST["city_id"];
$tarif_baza = $_POST["tarif_baza" ];
$tarif_kg = $_POST["tarif_kg" ];
unset($errors);
$errors = array();
$query_adresa = "INSERT INTO adrese (strada, nr, cod_postal, bloc, etaj,
scara, apartament, localitate_id)
VALUES (' $street, '$number, '$zip_code , '$block',
'$stair, '$floor, '$apartment', {$city_id} )";
if (mysqli_query ($connection , $query_adresa )) {
//echo "New record created successfully ADRESA DEST" ."<br>";
} else {
echo "Error: " . $query_adresa . "<br>" .
mysqli_error ($connection _sql);
$errors[] = "Eroare adaugare a dresa";
}
$adress_id = mysqli_insert_id ($connection _sql);
$query_client ="INSERT INTO clienti (nume, email, telefon, adresa_id)
VALUES (' $name', '$email', '$phone, $adress_id)";
if (mysqli_query ($connection , $query_client )) {
//echo "New record created successfully DEST" ."<br>";
} else {
echo "Error: " . $query_client . "<br>" .
mysqli_error ($connection _sql);
$errors[] = "eroare adaugare client" ;
}
$client_id = mysqli_insert_id ($connection _sql);
52
$query_tarif ="INSERT INTO tarife (client_id, tarif_baza, tarif_kg)
VALUES ( $client_id , '$tarif_baza ', '$tarif_kg ')";
if (mysqli_query ($connection _sql, $query_tarif )) {
//echo "New record created successfully TARIF" ."<br>";
} else {
echo "Error: " . $query_client . "<br>" .
mysqli_error ($connection _sql);
$errors[] = "eroare adaugare tarif" ;
}
– -Adăugare destinatar
session_start ();
require_once ("connection _sql.php");
$client_id = $_SESSION ["selected_client_id" ];
$name = $_POST["name"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$street = $_POST["street"];
$number = $_POST["number"];
$zip_code = $_POST["zip_code "];
$block = $_POST["block"];
$stair = $_POST["stair"];
$floor = $_POST["floor"];
$apartment = $_POST["ap"];
$city_id = $_POST["city"];
unset($errors);
$errors = array();
$query_adresa_dest = "INSERT INTO adrese (strada, nr, cod_postal, bloc,
etaj, scara, apartament, localitate_id)
VALUES (' $street, '$number, '$zip_code ', '$block',
'$stair, '$floor, '$apartment', {$city_id} )";
if (mysqli_query ($connection _sql, $query_adresa_dest )) {
} else {
echo "Error: " . $query_adresa_dest . "<br>" .
mysqli_error ($connection _sql);
$errors[] = "Eroare adaugare adresa" ;
}
$adress_id = mysqli_insert_id ($connection _sql);
$query_dest ="INSERT INTO destinatari (nume, email, telefon, adresa_id)
VALUES (' $name', '$email', '$phone, $adress_id)";
if (mysqli_query ($connection _sql, $query_dest )) {
} else {
echo "Error: " . $query_dest . "<br>" .
53
mysqli_error ($connection _sql);
$errors[] = "Eroare adaugare client" ;
}
$destinatar_id = mysqli_insert_id ($connection _id);
$query_client_dest = "INSERT INTO destinatari_salvati (client_id,
destinatar_id)
VALUES ( {$client_id }, {$destinatar_id } )";
if (mysqli_query ($connection _sql, $query_client_dest )) {
//echo "New record created successfully DEST" ."<br>";
} else {
echo "Error: " . $query_client_dest . "<br>" .
mysqli_error ($connection );
$errors[] = "Eroare adaugare client" ;
}
– Generarea AWB
session_start ();
require_once ("connection _sql.php");
$client_id = $_SESSION ["selected_client_id" ];
$name = $_POST["dest_na me"];
$email = $_POST["dest_email" ];
$phone = $_POST["dest_phone"];
$street = $_POST["dest_street"];
$number = $_POST["dest_number"];
$zip_code = $_POST["dest_zip_code "];
$block = $_POST["dest_bloc k"];
$stair = $_POST["dest_stair"];
$floor = $_POST["dest_floor"];
$apartment = $_POST["dest_ap" ];
$nr_plic = $_POST["nr_plic "];
$nr_cole t = $_POST["nr_colet"];
$weight = $_POST["weight"];
$height = $_POST["height"];
$width = $_POST["width"];
$length = $_POST["length"];
$payment_at = $_POST["payment"];
$rbs = $_POST["ramburs" ];
$payment_rbs = $_POST["payment_rbs "];
$city_id = $_POST["city"];
$query_adresa_dest = "INSERT INTO adrese (strada, nr, cod_postal, bloc,
etaj, scara, apartament, localitate_id)
VALUES (' $street, '$number, '$zip_code ', '$block',
'$stair, '$floor, '$apartment', {$city_id} )";
if (mysqli_query ($connection _sql, $query_adresa_dest )) {
//echo "New record created successfully ADRESA DEST" ."<br>";
} else {
echo "Error: " . $query_adresa_dest . "<br>" .
mysqli_error ($connection _sql);
}
54
$adresa_id = mysqli_insert_id ($connection _sql);
$query_destinatari ="INSERT INTO destinatari (nume, email, telefon,
adresa_id)
VALUES (' $name', '$email', '$phone, $adresa_id )";
if (mysqli_query ($connection _sql, $query_destinatari )) {
//echo "New record created successfully DEST" ."<br>";
} else {
echo "Error: " . $query_destinatari . "<br>" .
mysqli_error ($connection _sql);
}
$destinatar_id = mysqli_insert_id ($connection _sql);
$query_tarif = "SELECT tarif_baza, tarif_kg
FROM tarife
WHERE client_id = {$client_id} LIMIT 1 " ;
$result_tarif = mysqli_query ($connection _sql, $query_tarif );
if (mysqli_num_rows ($result_tarif ) > 0) {
while($row = mysqli_fetch_assoc ($result_tarif )) {
$tarif_baza = $row["tarif_baza" ];
$tarif_kg = $row["tarif_kg"];
}
} else {
echo "Tarif inexistent" ; exit;
}
$val_awb = $tarif_baza + ($tarif_kg * $greutate );
$today_date = date("Y-m-d");
$query_awb_number = "SELECT awb_number, DATE(data) AS data_awb
FROM awb WHERE client_id = {$client_id}
AND DATE(data) = ' {$today_date }'
ORDER BY data DESC LIMIT 1 " ;
$result_awb_number = mysqli_query ($connection _sql, $query_awb_number );
if (mysqli_num_rows ($result_awb_number ) > 0) {
while($row = mysqli_fetch_assoc ($result_awb_number )) {
$awb_vechi = $row["awb_number" ];
$last_awb = substr($awb_vechi , strpos($awb_vechi , "_") + 1) +
1;
$awb_nou = date("dmY").$client_id ."000_".$last_awb ;
}
} else {
$awb_nou = date("dmY").$client_id ."000_1";
}
$_SESSION ["awb_number" ] = $awb_nou ;
$query_awb ="INSERT INTO awb (awb_number,client_id, destinatar_id,
nr_plicuri, nr_colete, inaltime,
55
latime, lungime, greutate, plata_la,
ramburs, plata_transp, va l_awb)
VALUES (' $awb_nou ','$client_id ', '$destinatar_id ',
'$nr_plic ', '$nr_colet ', '$height,
'$width, '$length, '$weight, '$payment', '$rbs',
'$payment_rbs ', '$val_awb ')";
if (mysqli_query ($connection _sql, $query_awb )) {
} else {
echo "Error: " . $query_awb . "<br>" . mysqli_error ($connection _sql);
}
$query_awb_status ="INSERT INTO awb_status (awb_number, status_id)
VALUES (' $awb_nou ', 'In asteptare')" ;
if (mysqli_query ($connection _sql, $query_awb_s tatus)) {
} else {
echo "Error: " . $query_awb_status . "<br>" .
mysqli_error ($connection _sql);
}
$today = date("Y-m-d");
$query_borderou_ actual = "SELECT borderou_id, DATE(data) AS data_awb
FROM borderouri WHERE client_id = {$client_id } AND DATE(d ata) = ' {$today
}' ORDER BY data DESC LIMIT 1 " ;
$result_borderou_ actual = mysqli_query ($connection _sql,
$query_borderou_ actual);
if (mysqli_num_rows ($result_borderou_ actual) > 0) {
while($row = mysqli_fetch_assoc ($result_borderou_ actual)) {
$borderou_id = $row["borderou_id" ];
}
} else {
$query_borderouri ="INSERT INTO borderou (client_id, finalizat)
VALUES (' $client_id ', 0)";
if (mysqli_query ($connection _sql, $query_borderouri )) {
} else {
echo "Error: " . $query_borderouri . "<br>" .
mysqli_error ($connection _sql);
}
$bord_id = mysqli_insert_id ($connection _sql);
}
$query_borderou_details ="INSERT INTO borderou_detalii (borderou_id,
awb_number, deleted)
VALUES (' $bord_id', '$awb_nou ', 0)";
if (mysqli_query ($connection _sql, $query_borderou_ details)) {
header("location:view_awb.php" );
} else {
echo "Error: " . $query_borderou_ details . "<br>" .
mysqli_error ($connection _sql);
}
56
mysqli_close ($connection _sql);
– Adăugare comand ă de curier
session_start ();
require_once ("connection _sql.php");
$client_id = $_SESSION ["selected_client_id" ];
$nr_plic = $_POST["nr_plic "];
$nr_colet = $_POST["nr_colet "];
$weight = $_POST["weight"];
$height = $_POST["height"];
$width = $_POST["width"];
$length = $_POST["length"];
$pers_contact = $_POST["pers_contact" ];
$phone = $_POST["phone"];
$obs = $_POST["obs"];
$query_cmd = "INSERT INTO comenzi (client_id, nr_plicuri, nr_colete,
greutate, inaltime, latime, lungime, pers_contact, telefon, obs)
VALUES (' $client_id ', '$nr_plic ', '$nr_colet ',
'$weight, '$height,'$width, '$length, '$pers_contact ', '$phone,
'$obs')";
if (mysqli_query ($connection _sql, $query_cmd)) {
header("location:../ istoric_comenzi.php" );
} else {
echo "Error: " . $query_cmd . "<br>" .
mysqli_error ($connection _sql);
}
– Raport general comenzi
session_start ();
require("header.php" );
require_once ("includes/connection _sql.php");
$client_id = $_SESSION ["selected_cli ent_id"];
?>
<script type="text/javascript" >
$(document ).ready( function (){
$("h5.raport_comenzi_menu" ).addClass( "active_menu" );
$("h5.creeaza_awb_menu" ).removeClass( "active_menu" );
});
</script>
<br><br><br>
<form name="raport_comenzi" action="raport_comenzi.php"
method="POST">
<label class="awb_lbl ">De la:</ label>
<input type="date" name="data_1" value="<?php echo
57
isset($_POST["data_1"]) ? $_POST["data_1"]:""; ?>">
<br>
<label class="awb_lbl bold" >Pana la:</ label>
<input type="date_1" name="data_2" value="<?php echo
isset($_POST["data_2"]) ? $_POST["data_2"]:""; ?>">
<br><br>
<input type="submit" value="Cautare" >
<br><br>
<table id="tabelC" border="0" cellpadding= "4" cellspacing= "0"
style="margin-bottom:2em; width: 1180px;">
<tbody><tr align="left">
<td id="textbox "><strong>Numar comanda</ strong></td>
<td id="textbox "><strong>Client</ strong></td>
<td id="textbox "><strong>Data</strong></td>
<td id="textbox "><strong>Ora</strong></td>
<td id="textbox "><strong>Plic</strong></td>
<td id="textbox "><strong>Colet</strong></td>
<td id="textbox "><strong>Greutate</ strong></td>
</tr>
<?php
if(isset($_POST["data_1"]) AND isset ($_POST["data_2"]) AND
($_POST["data_1"] <= $_POST["data_2"])) {
$data_filter1 = $_POST["data_1"];
$data_filter2 = $_POST["data_2"];
$query_comenzi = "SELECT co.id_ comanda , co.data,
nr_plicuri, co.nr_colete , co.greutate, co.pers_contact, co.telefon,
cl.nume
FROM comenzi co
LEFT JOIN clienti cl on cl.client_id = co.client_id
WHERE DATE(co.data) >= ' {$data_filter1}' AND
DATE(co.data)<= ' {$data_filter2}'
ORDER BY co.id_comanda DESC " ;
$result_ cmd = mysqli_query ($connection _sql, $query_comenzi );
if (mysqli_num_rows ($result_cmd ) > 0) {
while ($row = mysqli_fetch_as soc($result_ cmd)) {
$date = strtotime ($row["date"]);
$data_format ed = date("d/m/Y" , $date);
$ora_format ed = date("H:i",$date);
?>
<tr bgcolor= "#FFFFFF" >
<td style="width:110px; height: 34px;"><?php
echo $row["id_comanda" ]; ?></td>
<td><?php echo $row["nume"]; ?></td>
<td><?php echo $data_formated ; ?></td>
<td><?php echo $ora_formated ; ?></td>
<td><?php echo $row["nr_plic "]; ?></td>
<td><?php echo $row["nr_colet "]; ?></td>
<td><?php echo $row["greut"]; ?></td>
</tr>
<?php }
58
}else{
echo "<br>"."Nu exista nici o comadna "."<br>";
}
}else {
echo "Selectati intervalul de data.";
}?>
</tbody>
</table>
</form>
<?php
require("footer.php" );
?>
59
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: Lucrare de disertaț ie [627044] (ID: 627044)
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.
